일요일, 3월 3, 2024
디파이KyberSwap 공격자는 자금을 빼내기 위해 '무한 자금 결함'을 사용했습니다 — DeFi 전문가

KyberSwap 공격자는 자금을 빼내기 위해 ‘무한 자금 결함’을 사용했습니다 — DeFi 전문가

Ambient Exchange 창립자인 Doug Colkitt의 소셜 미디어 스레드에 따르면 KyberSwap에서 4,600만 달러를 빼낸 공격자는 공격을 수행하기 위해 “복잡하고 신중하게 설계된 스마트 계약 익스플로잇”에 의존했습니다.

KyberSwap 공격은 개별 풀에 대한 여러 공격으로 구성되었으며 각 공격은 서로 거의 동일하다고 Colkitt는 말했습니다. 작동 방식을 설명하기 위해 Colkitt는 Ethereum의 ETH/wstETH 풀 활용을 고려했습니다. 이 풀에는 Ether(ETH)와 Lido Wrapped Staked Ether(wstETH)가 포함되어 있습니다.

공격자는 다음과 같이 시작했습니다. 차용 블록체인 데이터에 표시된 대로 플래시 대출 플랫폼 Aave의 10,000 wstETH(당시 2,300만 달러 가치). Colkitt에 따르면, 공격자는 670만 달러 상당의 토큰을 풀에 쏟아 부었고, 그 결과 가격이 1wstETH당 0.0000152ETH로 폭락했습니다. 이 가격대에서는 사고팔려는 유동성 공급자가 없었으므로 유동성은 0이 되어야 했습니다.

그런 다음 공격자는 3.4 wstETH를 예치하고 0.0000146에서 0.0000153 가격 사이에서 매수 또는 매도를 제안했으며, 예금 직후 0.56 wstETH를 인출했습니다. 콜킷은 공격자가 “후속 수치 계산을 완벽하게 맞추기 위해” 0.56 wstETH를 인출했을 수도 있다고 추측했습니다.

공격자는 이러한 입출금을 수행한 후 2차, 3차 스왑을 수행하였다. 두 번째 스왑에서는 가격이 0.0157 ETH로 인상되어 공격자의 유동성이 비활성화되어야 했습니다. 세 번째 스왑에서는 가격이 0.00001637까지 다시 올랐습니다. 이 역시 공격자가 자체 유동성 임계값으로 설정한 가격 범위를 벗어났습니다. 이제 최고 가격보다 높았기 때문입니다.

이론적으로 마지막 두 번의 스왑은 공격자가 자신의 유동성을 이용하여 사고 팔았기 때문에 아무 것도 달성하지 못했어야 했습니다. 왜냐하면 다른 모든 사용자는 이 값보다 훨씬 낮은 최소 가격을 설정했기 때문입니다. Colkitt는 “수치적 버그가 없다면 누군가는 자신의 유동성을 가지고 왔다 갔다 하는 것일 뿐이며 모든 흐름은 0(수수료 제외)이 될 것입니다.”라고 덧붙였습니다.

그러나 가격 범위의 상한과 하한을 계산하는 데 사용되는 산술의 특성으로 인해 프로토콜은 처음 두 스왑 중 하나에서 유동성을 제거하지 못하고 최종 스왑 중에 다시 추가했습니다. 결과적으로 풀은 “원래 LP 포지션의 유동성을 두 번 계산”하게 되었고, 이로 인해 공격자는 최소한의 ETH로 3,911 wstETH를 받을 수 있었습니다. 공격자는 공격을 수행하기 위해 첫 번째 스왑에서 1,052 wstETH를 버려야 했지만 플래시 대출금을 갚은 후 여전히 2,859 wstETH(현재 가격으로 670만 달러)의 이익을 얻을 수 있었습니다.

공격자는 여러 네트워크의 다른 KyberSwap 풀에 대해 이 공격을 반복한 것으로 보이며 결국 총 4,600만 달러의 암호화폐 전리품을 탈취했습니다.

Colkitt에 따르면 KyberSwap에는 이러한 공격이 가능하지 않도록 하기 위해 ComputeSwapStep 함수 내에 안전 장치 메커니즘이 포함되어 있습니다. 그러나 공격자는 스왑에 사용된 숫자 값을 안전 장치가 트리거되는 범위 바로 바깥에 유지했습니다. 콜킷이 말했듯이:

“’도달 수량’은 틱 경계에 도달하기 위한 상한이 …22080000으로 계산된 반면, 공격자는 스왑 수량을 …220799999로 설정했습니다. 이는 이 익스플로잇이 얼마나 신중하게 설계되었는지를 보여줍니다. 검사에 실패했습니다.

Colkitt는 이 공격을 “내가 본 것 중 가장 복잡하고 신중하게 설계된 스마트 계약 공격”이라고 말했습니다.

코인텔레그래프가 보도한 대로 KyberSwap은 11월 22일에 4,600만 달러에 악용되었습니다. 팀은 4월 17일에 취약점을 발견했지만 해당 사건으로 인한 자금 손실은 없었습니다. 거래소의 사용자 인터페이스도 2022년 9월에 해킹당했지만 해당 사건으로 인해 모든 사용자가 보상을 받았습니다. 11월 22일 공격자는 자금의 일부를 반환하기 위해 협상할 의향이 있다고 팀에 알렸습니다.


RELATED ARTICLES

회신을 남겨주세요

귀하의 의견을 입력하십시오!
여기에 이름을 입력하십시오.

가장 인기 있는