Cointime

Download App
iOS & Android

SharkTeam: Prisma Finance 공격 분석

2024년 3월 28일, Prisma Finance는 플래시 대출 공격을 받아 프로젝트에서 약 1,221만 달러의 손실을 입었습니다.

SharkTeam은 이번 사건에 대한 기술적 분석을 실시하고 보안 예방 조치를 요약했으며, 후속 프로젝트가 이를 통해 교훈을 얻고 블록체인 산업을 위한 보안 라인을 공동으로 구축할 수 있기를 바랍니다.

공격자 1: 0x7e39e3b3ff7adef2613d5cc49558eab74b9a4202 (약칭: 0x7e39)

공격 계약 1: 0xd996073019c74b2fb94ead236e32032405bc027c (약칭 0xd996)

공격자 2: 0x7fe83f45e0f53651b3ed9650d2a2c67d8855e385

공격 계약 2: 0x4148310fe4544e82f176570c6c7b649290a90e17

공격 대상 계약: 0x1cc79f3f47bfc060b6f761fcd1afc6d399a968b6

공격에는 16개의 트랜잭션이 포함되어 있으며 첫 번째 공격 트랜잭션을 예로 들어 보겠습니다.

0x00c503b595946bccaea3d58025b5f9b3726177bbdc9674e634244135282116c7

공격 과정은 다음과 같습니다.

1. 주소 0x56a201b872b50bbdee0021ed4d1bb36359d291ed(약어로 0x56a2)에 있는 대상 계약의 모든 담보 및 부채를 읽습니다.

반환 결과는 다음과 같습니다.

반환 결과는 다음과 같습니다.

주소 0x56a2에는 대상 계약의 담보로 총 1,745 wstETH가 있고 총 부채는 1,442,100 mkUSD입니다.

2. 공격자 0x7e39는 공격 계약 0xd996을 통해 mkUSD 부채 계약의 flashLoan 기능을 호출합니다.

파라미터 수신자는 MigrateTroveZap으로 설정되어 있으며 금액은 위에서 쿼리한 모든 부채입니다.

그런 다음 수신기(여기서는 MigrateTroveZap)의 onFlashLoan 함수가 flashLoan 함수에서 호출됩니다.

onFlashLoan 기능은 우선 플래시론을 통해 원래의 부채를 모두 상환하고, 수취인에게 담보를 인출한 후, 수취인은 일정 금액의 담보를 다시 담보로 받아 일정 금액의 부채를 빌리게 됩니다. 다음과 같은 두 가지 주요 기능이 있습니다.

(1) closeTrove 기능, 부채를 상환하고 troverManager에서 수신자에게 모든 담보(1745.08 swtETH)를 인출합니다(여기서는 MigrateTroveZap 계약이 있습니다).

(2) openTrove 기능, 수신자는 463.18 wstETH를 troverManager에 다시 담보로 제공하고 1,443,598 mkUSD의 부채를 발생시킵니다.

위 데이터를 보면 flashLoan 기능이 실행된 후 troverManager에서 추출되고 주소 0x56a2에 속하는 담보가 여전히 수신자에 유지되며 금액은 약 1745.08 – 463.18 = 1281.90 wstETH임을 알 수 있습니다.

3. 공격자 0x7e39는 계약 0xd996을 공격하여 플래시 대출을 통해 Balancer로부터 1 wstETH를 빌렸습니다.

그런 다음 1 wstETH를 모기지하고 2000mkUSD의 부채를 빌리고 수수료를 더하면 총 부채는 2200mkUSD입니다.

4. 2단계와 유사하게 mkUSD 부채 계약에서 flashLoan 함수를 호출합니다. 여기서 매개변수 수신자는 여전히 MigrateTroveZap으로 설정되어 있으며 금액은 1 wstETH를 약속한 후 전체 부채, 즉 2000 mkUSD입니다. FlashLoan 함수에서는 수신기의 onFlashLoan 함수가 호출된 후 closeTrove 및 openTrove 함수가 호출됩니다.

그러나 여기서 closeTrove 및 openTrove 함수의 매개변수 계정은 더 이상 위의 주소 0x56a2가 아니라 1 wstETH를 약속하는 공격 계약 0xd996입니다.

(1) closeTrove 기능, 부채를 상환하고 troverManager에서 수신자에게 모든 담보(1swtETH)를 인출합니다(이것은 여전히 ​​MigrateTroveZap 계약입니다). 이때 수신기에는 1281.90 +1=1282.90 wstETH가 있습니다.

(2) openTrove 기능, 수신자는 1282.80 wstETH(거의 전부)를 troverManager에 다시 담보로 제공하고 2001.8 mkUSD의 부채를 발생시킵니다.

실제로 여기 담보에 있는 1281.80 wstETH는 공격 계약 0xd996에 속하지 않고 위 주소 0x56a2에 속합니다.

5. 마지막으로 공격자 0x7e39는 공격 컨트랙트 0xd996을 통해 별도로 closeTrove 함수를 호출하여 저당권 1282.80 wstETH를 공격 컨트랙트 0xd996으로 추출했다.

플래시 대출을 상환한 후에도 공격자는 여전히 1281.80 wstETH, 즉 약 230만 달러의 수익을 올렸습니다.

이 사건의 근본 원인은 프로젝트 계약에 공격자가 이 취약점을 이용하여 다른 계정 주소에서 약속된 자산을 얻을 수 있는 논리 및 권한 확인이 있다는 것입니다.

공격자가 최종적으로 획득한 wstETH는 troverManager 계약의 원래 주소 0x56a2의 담보였으며, mkUSD 계약의 flashLoan 기능을 통해 MigrateTroveZap 계약의 onFlashLoan 기능의 매개 변수를 맞춤화하고 MigrateTroveZap을 사용하여 담보로 변환했습니다. 공격 계약을 사용하여 계약을 공격한 후 추출합니다.

공격자는 mkUSD 계약의 flashLoan 기능과 MigrateTroveZap 계약의 onFlashLoan 기능을 통해 다른 계좌 주소의 담보 및 인출을 조작합니다.

(1) onFlashLoan 함수의 수신자는 계정의 모든 담보를 수신하므로 수신자가 신뢰할 수 있는지 확인해야 하기 때문에 flashLoan 함수에는 매개변수 수신자 주소에 대한 확인이 부족합니다.

(1) onFlashLoan 함수의 수신자는 계정의 모든 담보를 수신하므로 수신자가 신뢰할 수 있는지 확인해야 하기 때문에 flashLoan 함수에는 매개변수 수신자 주소에 대한 확인이 부족합니다.

(2) onFlashLoan 기능은 closeTrove, openTrove 기능 모두 운영중인 계정의 자산이기 때문에 계정 주소 확인이 부족하므로 계정에 권한 확인을 추가해야 합니다.

이 두 개의 주소 매개변수를 확인하는 것 외에도 flashLoan 기능의 수량 매개변수와 구현 로직을 확인하는 것도 필요할 수 있습니다.

이 공격에 대응하여 우리는 개발 과정에서 다음과 같은 예방 조치를 따라야 합니다.

(1) 프로젝트의 설계 및 개발 과정에서 특히 자산 양도와 관련된 경우 논리의 무결성과 엄격함이 유지되어야 하며, 발신자가 기능 연구 권한에 대한 검증을 강화해야 합니다. , 호출 함수, 함수 매개변수, 전송 로직 등은 모두 안전하고 신뢰할 수 있습니다.

(2) 프로젝트가 온라인으로 진행되기 전에 계약 감사를 수행할 전문 제3자 감사팀을 찾아야 합니다.

SharkTeam의 비전은 Web3 세계를 보호하는 것입니다. 이 팀은 블록체인 및 스마트 계약의 기본 이론에 능숙한 전 세계의 숙련된 보안 전문가와 수석 연구원으로 구성되어 있습니다. 위험 식별 및 차단, 스마트 계약 감사, KYT/AML, 온체인 분석 등을 포함한 서비스를 제공하며 지능형 지속 위협(Advanced Persistant Threat, Advanced Persistant Threat)에 효과적으로 대처할 수 있는 온체인 지능형 위험 식별 및 차단 플랫폼 ChainAegis를 만들었습니다. 지속적인 위협) Web3 세계. , APT). Polkadot, Moonbeam, Polygon, Sui, OKX, imToken, Collab.Land 등 Web3 생태계의 다양한 분야의 주요 플레이어와 장기적인 협력 관계를 구축했습니다.

공식 홈페이지: https://www.sharkteam.org

트위터: https://twitter.com/sharkteamorg

텔레그램: https://t.me/sharkteamorg

디스코드: https://discord.gg/jGH9xXCjDZ

댓글

모든 댓글

Recommended for you

  • 미국 상원 은행위원회 위원장은 스테이블코인 수익률 관련 새로운 조항 초안이 이르면 이번 주에 공개될 수 있다고 밝혔습니다.

    코인타임(Cointime) 보도에 따르면, 상원 은행위원회 위원장인 팀 스콧(Tim Scott) 상원의원은 DC 블록체인 서밋에서 의원들이 이번 주 초에 최소한 스테이블코인 관련 조항을 포함한 새로운 법안 초안을 볼 수 있을 것이라고 밝혔습니다. 스콧 의원은 스테이블코인 수익률이 법안에서 가장 많이 논의된 사안이지만, 의원들은 계속해서 이 문제를 논의하고 있다고 언급했습니다. 그는 "이번 주 안에 검토할 첫 번째 초안을 받을 수 있을 것으로 생각합니다. 이번 주말까지 그렇게 된다면, 적어도 법안의 기본 틀이 마련되고 있는지 알 수 있을 것입니다. 그렇게 된다면, 우리는 더 나은 상황에 놓일 수 있을 것입니다."라고 말했습니다. 그는 또한 스테이블코인 수익률 문제에 대한 진전은 민주당 소속 앤젤라 올스브룩스(Angela Alsobrooks) 상원의원, 공화당 소속 톰 틸리스(Thom Tillis) 상원의원, 그리고 백악관 관계자인 패트릭 위트(Patrick Witt)의 노력 덕분이라고 덧붙였습니다. 그는 지난 한 달간 진행된 협상에서 도널드 트럼프 대통령과 그의 가족이 추진하는 암호화폐 사업에 대한 의원들의 우려, 주요 규제 기관의 초당적 대표성 부족, 그리고 고객확인제도(KYC) 규정 등 해결되지 않았던 다른 쟁점들도 논의되었다고 밝혔습니다. 스콧 의원은 또한 "윤리적 문제와 정족수 문제에 대한 합의에 거의 도달했다고 생각합니다. 상대방에게도 중요한 문제라는 것을 알고 있기 때문에 우리도 이 부분을 다루고 있습니다. 몇몇 인사 지명에 대해서도 진전이 있어 다행입니다. 디파이(DeFi)는 마크 워너 상원의원이 집중적으로 관심을 기울여 온 분야이며, 자금세탁방지(AML)는 매우 중요한 부분입니다. 따라서 이러한 문제들에 대해 진전이 있다고 생각합니다."라고 말했습니다.

  • 골든 모닝 브리핑 | 3월 18일 밤 주요 변동 사항

    21:00-7:00 주요 키워드: 팬텀, 스트라이프, 오토노머스, 이란 1. 이란은 미국과 이스라엘이 자국 영토를 이용하는 것을 허용하는 국가에 대해 합법적으로 공격할 수 있다고 주장했습니다. 2. 미국 상품선물거래위원회(CFTC): 팬텀 지갑은 브로커 등록이 필요하지 않습니다. 3. 애리조나 주 법무장관, 예측 마케팅 업체 칼시(Kalshi)에 대해 형사 고발 조치를 취했습니다. 4. 미국 국무부는 전 세계 모든 대사관에 "즉시" 보안 평가를 실시하도록 지시했습니다. 5. 로빈후드 벤처 캐피털, 스트라이프와 일레븐랩스에 약 3,500만 달러 투자. 6. GSR, 오토노머스와 아키텍을 5,700만 달러에 인수하여 암호화폐 펀드 운용 플랫폼 구축. 7. 미국 증권거래위원회(SEC)와 상품선물거래위원회(CFTC), 대부분의 디지털 자산은 증권이 아니라는 새로운 암호화폐 가이드라인 발표.

  • 미국 증권거래위원회(SEC)와 상품선물거래위원회(CFTC)는 암호화폐에 대한 새로운 의견을 발표하며, 대부분의 디지털 자산은 증권 범주에 속하지 않는다고 밝혔습니다.

    코인타임은 3월 18일 미국 증권거래위원회(SEC)와 상품선물거래위원회(CFTC)가 암호화폐에 대한 68페이지 분량의 가이드라인 문서를 발표했으며, 대부분의 디지털 자산은 증권이 아니라고 밝혔다고 보도했습니다. 이 새로운 설명은 스테이블코인, 디지털 상품, 그리고 "디지털 상품" 토큰의 분류를 자세히 설명하며, SEC는 이 모든 것들이 증권이 아니라고 명시했습니다. 또한 "비증권 암호화 자산"이 어떻게 증권이 될 수 있는지 설명하고, 채굴, 프로토콜 스테이킹, 에어드롭에 연방 증권법이 어떻게 적용되는지 명확히 했습니다. SEC는 또한 비증권 디지털 자산이 어떻게 투자 계약의 대상이 될 수 있는지에 대해서도 설명했습니다. SEC는 설명에서 "발행자가 투자자를 공동 사업에 투자하도록 유도하고 필요한 경영 업무를 수행하겠다는 약속이나 진술을 하며, 구매자가 그로부터 수익을 기대할 만한 이유가 있을 때, 비증권 암호화 자산은 투자 계약의 대상이 된다"고 밝혔습니다.

  • 마스터카드는 스테이블코인 회사인 BVNK를 최대 18억 달러에 인수할 계획입니다.

    코인타임(Cointime) 보도에 따르면 마스터카드(Mastercard)는 스테이블코인 인프라 스타트업인 BVNK를 최대 18억 달러(조건부 대가 3억 달러 포함)에 인수할 계획입니다. 이번 인수는 BVNK와 코인베이스(Coinbase)의 약 20억 달러 규모의 합병 협상이 결렬된 지 불과 4개월 만에 이루어졌습니다. 양사는 화요일 공동 성명을 통해 이번 거래를 공식적으로 확인했습니다.

  • 비트코인이 7만 5천 달러를 돌파했습니다.

    시장 데이터에 따르면 비트코인(BTC)이 75,000달러를 돌파하여 현재 75,033.01달러에 거래되고 있으며, 24시간 동안 2.83% 상승했습니다. 시장 변동성이 매우 크므로 투자 시 위험 관리에 유의하시기 바랍니다.

  • FusnChain 메인넷이 곧 출시됩니다. 이는 세계 최초의 금융 거래용 퍼블릭 블록체인으로, PayFi 시대의 온체인 금융 거래 인프라를 열어갈 것입니다.

    글로벌 웹3 인프라 환경에 역사적인 패러다임 전환이 임박했습니다. 암호화폐 세계와 실물 현금 흐름을 연결하는 데 전념하는 공식 네트워크인 FusnChain이 메인넷 출시를 공식 발표했습니다.

  • 비트코인이 71,500달러를 돌파했습니다.

    시장 데이터에 따르면 비트코인(BTC)이 71,500달러를 돌파하여 현재 71,510.19달러에 거래되고 있으며, 24시간 동안 1.06% 상승했습니다. 시장 변동성이 매우 크므로 투자 시 위험 관리에 유의하시기 바랍니다.