본문 바로가기

디파이(DeFi)/BNB체인

[BSC] PancakeBunny 해킹 사건 정리

안녕하세요, 디온입니다. 오늘(5월 20일) 우리나라 시간으로 오전 7시 34분경에 바이낸스 스마트 체인(BSC) 기반의 대표 일드 애그리게이터 및 옵티마이저인 팬케이크버니(PancakeBunyy)에서 대량의 해킹 사태가 발생하였습니다.

해당 해킹 사건은 Uniswap v2의 포크인 팬케이크스왑에 남아 있는 플래시론 기능과 오라클 데이터를 기반으로 LP토큰(BNB-USDT, BNB-BUNNY)의 가치를 측정하는 버그를 악용한 것으로 해당 해킹으로 인해 개당 약 150달러에 해당하던 BUNNY토큰의 가격이 약 1.8달러 수준까지 한순간에 급락하게 되었습니다.

본 포스팅에서는 해당 사건에 대해서 간략하게 요약하여 정리해보도록 하겠습니다. 보다 자세한 내용은 펙실드의 원인 분석 포스팅 및 DeFi Farmer Prof. Um의 미디엄 포스팅을 참고하시면 되겠습니다.

1. 플래시론(Flash Loan)이란?

최근 들어서 플래시론(Flash Loan)에 의한 해킹 사고가 계속해서 벌어지고 있는데, 플래시론의 경우에는 한 번의 트랜잭션에 여러 가지 루트의 거래를 한 번에 담아서 아주 짧은 기간동안의 초단기 대출을 실행하는 것으로 대출 → 스왑, 유동성 공급, 유동성 제거 → 스왑 → 대출 상환이 한 번의 트랜잭션으로 완료가 되어야 합니다.

만약 해당 트랜잭션을 실행할 때 마지막에 대출을 상환할 수 있는 충분한 자금이 해당 계정에 남아 있지 않은 경우에는 GAS 수수료만 지불되고 실제 트랜잭션은 완료되지 않습니다. 따라서 코드와 시스템의 취약점을 잘 알고 있는 전문가가 사전에 치밀하게 공격 루트를 설계하고 실행하는 관계로 일반 사용자들은 이용할 수 없는 기능입니다.

2. 팬케이크스왑에 플래시론이 있나?

이번 팬케이크버니 플래시론 공격 시 해커는 팬케이크스왑의 플래시론 기능을 사용했는데, 이는 팬케이크스왑이 Uniswap v2를 포크하면서 남아 있었던 기능으로 일반 사용자들이 이용하는 팬케이크스왑의 프론트엔드에서는 확인이 불가능했습니다.

어찌되었든 해커는 플래시론 기능을 사용하여 팬케이크스왑에서 BNB를, ForTube에서 USDT를 빌리는 것을 시작으로 공격을 시작하였습니다.

3. 사고의 요약

  • 해커는 PancakeSwap 7개 풀과 ForTube Bank에서 230만 개의 BNB와 296만 USDT를 플래시론으로 빌립니다
  • 7886 BNB와 296만 USDT를 WBNB/USDT 유동성 풀에 공급하고 144.45K의 LP토큰을 받습니다
  • WBNB/USDT풀에서 231만 개의 BNB를 USDT로 스왑합니다
  • 해커의 LP토큰의 가치가 순간적으로 엄청나게 치솟습니다

  • VaultFlipToFlip에서 gerReward()를 콜하여 유동성 공급에 대한 BUNNY토큰 보상을 청구합니다

  • 약 697만 개의 BUNNY가 해커의 계정으로 들어오게 됩니다

  • 해커는 플래시론 상환을 위해 BUNNY를 곧바로 덤핑합니다

결과적으로 해커는 플래시론으로 대출받은 금액을 모두 상환하고도 220만 개 정도의 BUNNY를 추가로 획득하는 효과가 있었습니다. 해커는 일부를 Anyswap을 통해 ETH로 교환하여 탈출한 것으로 확인되며 이 해킹 공격을 통해 약 4,000만 달러의 이익을 남겼습니다.

 

[암호화폐(디지털자산) 거래소 거래수수료 할인 가입링크 안내]

① 바이낸스(Binance.com) 가입링크 (거래수수료20% 페이백) : 바로가기
② 바이낸스 선물 가입링크 (1달간 거래수수료 10% 페이백) : 바로가기
③ 고팍스(GOPAX) 거래소 가입링크 (가입즉시 5,000원 원화 또는 코인지급) : 바로가기
④ FTX파생상품 거래소 가입링크 (거래수수료 5% 페이백) : 바로가기
⑤ 코인원(Coinone) 거래소 가입링크 (거래수수료 10% 페이백) : 바로가기
⑥ 폴로닉스(PolonieX) 거래소 가입링크 (거래수수료 10% 페이백) : 바로가기
⑦ OKEx 거래소 가입링크 (110달러 리워드+40달러 수수료쿠폰) : 바로가기
⑧ 코인리스트(CoinList) 토큰세일 플랫폼 가입링크 (100달러 이상 거래시 10달러 상당의 BTC지급) : 바로가기
⑨ 후오비 글로벌 가입링크 : 바로가기
⑩ 후오비 코리아 가입링크 : 바로가기