느린 안개: pGALA 사건의 근본 원인은 GitHub에서 개인 키 평문이 유출된 것입니다
ChainCatcher 메시지에 따르면, 11월 4일 BNB 체인 상의 한 주소가 10억 달러 이상의 pGALA 토큰을 무작위로 발행하고 PancakeSwap을 통해 판매하여 이익을 얻었으며, 이로 인해 GALA가 일시적으로 20% 이상 하락했습니다. 느린 안개 분석 결과는 다음과 같습니다:
pGALA 계약은 투명 프록시(Transparent Proxy) 모델을 사용하며, 세 가지 특권 역할이 존재합니다: Admin, DEFAULTADMINROLE 및 MINTER_ROLE.
Admin 역할은 프록시 계약의 업그레이드 및 프록시 계약 Admin 주소 변경을 관리하는 데 사용되며, DEFAULTADMINROLE 역할은 논리 내의 각 특권 역할(예: MINTERROLE)을 관리합니다. MINTERROLE 역할은 pGALA 토큰 발행 권한을 관리합니다.
이 사건에서 pGALA 프록시 계약의 Admin 역할은 계약 배포 시 투명 프록시의 proxyAdmin 계약 주소로 지정되었으며, DEFAULTADMINROLE 및 MINTER_ROLE 역할은 초기화 시 pNetwork에 의해 제어되도록 지정되었습니다. proxyAdmin 계약에는 owner 역할도 존재하며, owner 역할은 EOA 주소이고, owner는 proxyAdmin을 통해 pGALA 계약을 업그레이드할 수 있습니다.
그러나 느린 안개 보안 팀은 proxyAdmin 계약의 owner 주소의 개인 키가 GitHub에 노출되었음을 발견했습니다. 따라서 이 개인 키를 얻은 사용자는 언제든지 proxyAdmin 계약을 제어하여 pGALA 계약을 업그레이드할 수 있습니다.
proxyAdmin 계약의 owner 주소는 70일 전(2022년 8월 28일)에 교체되었으며, 그가 관리하는 또 다른 프로젝트 pLOTTO는 공격을 당한 것으로 의심됩니다.
투명 프록시의 구조 설계로 인해 pGALA 프록시 계약의 Admin 역할 변경은 proxyAdmin 계약에 의해 시작될 수밖에 없습니다. 따라서 proxyAdmin 계약의 owner 권한이 상실된 후 pGALA 계약은 언제든지 공격받을 위험에 처해 있습니다.
결론적으로, pGALA 사건의 근본 원인은 pGALA 프록시 계약의 Admin 역할의 owner 개인 키가 GitHub에 유출되었고, 그 owner 주소가 70일 전에 악의적으로 교체되어 pGALA 계약이 언제든지 공격받을 위험에 처해 있다는 것입니다. (출처 링크)