작성자: Sissice
배경
SlowMist 보안팀의 정보에 따르면 2024년 4월 24일 BSC 체인의 YIEDL 프로젝트가 공격을 받았으며 공격자는 약 US$300,000의 수익을 올렸습니다. SlowMist 보안팀은 공격 사건을 분석하고 그 결과를 다음과 같이 공유했습니다.
https://twitter.com/SlowMist_Team/status/1782962346039898473
관련 정보
공격자 주소:
0x322696471792440499b1979e0a440491e870667a
공격받은 계약 주소:
0x4edda16ab4f4cc46b160abc42763ba63885862a4
공격 트랜잭션의 일부:
0x49ca5e188c538b4f2efb45552f13309cc0dd1f3592eee54decfc9da54620c2ec
0x3629ad588ac120163792e92b6c43bd4bdc5bf35cac66eb7f3a0267df93abc849
0x0a89b8670c40b4067b9522a5933c3bf8c44c968103aa642b04c65d49ad9e6457
0x5e468cba495e5f6165418fb9d87d824309c54261055425f33f588dd3b3abbcea
0x8710034dadecfc8c26f651c612f613fffdece6e2f9957b9ec8ab843218168c1d
0x9da398ed274c8cfa774b36003fa8c930d3430d0fc5889b5008830fd6463f68a9
0x2e3d4332f66a334e0170187011ed673dc222f95bf4443b618e08f8052437ef7a
0x5a15fdc57c35f2305aaa0bb95b109ad412b17406d737d137190fe5867393339d
0x8ef3765665cd849cdf9132ab37caf6aa0f891e1f7d9f418f86a6ab6ea38b6f5b
0xa9fa04b033afbed2218679aea92e9429a5f7839d0b4c65358ebf9ba20efcd021
0xa9fa04b033afbed2218679aea92e9429a5f7839d0b4c65358ebf9ba20efcd021
코어를 공격하라
이번 사건의 공격의 핵심은 계약을 사용하여 상환 함수 호출을 처리할 때 사용자가 입력한 외부 매개변수를 완전히 검증하지 못한 데 있습니다. 이 매개변수는 자산 교환을 제어하는 핵심 데이터이며 일반적으로 특정 거래 지침이나 라우팅 정보를 포함합니다. 공격자는 이 외부 매개변수를 악의적으로 구성하여 무단 자산 이전을 달성합니다.
거래 분석
공격자는 회수 함수를 여러 번 호출하여 수량이 0인 자산의 환매를 신청합니다. 이 동작 자체는 무해해 보입니다. 왜냐하면 환매 수량이 0일 때 일반적으로 실제 자금 흐름을 유발하지 않기 때문입니다.
그러나 상환 기능에 따르면 이 기능은 계약에서 허용하는 자산 목록을 순회하며 현재 자산이 사용자가 수신하려는 자산이 아닌 경우 들어오는 dataList 매개변수에 따라 외부적으로 구문 분석한다는 것을 알 수 있습니다. 자산 교환 작업을 실행하려면 1inch Router에서 해당 기능을 호출하세요.
여기에 전달된 dataList는 확인 및 검증되지 않았기 때문에 공격자는 악의적인 값을 구성하여 1inch Router 계약의 unoswapTo 기능을 실행하여 임의적으로 제어 가능한 토큰 교환 작업을 수행할 수 있습니다.
그 결과, Yiedl BULL 계약의 WBNB-ADA 토큰이 공격자의 주소로 BNB로 교환되었습니다.
이러한 방식으로 공격자는 실제로 환매주를 소유하지 않고도 dataList 매개변수에 의해 제어되는 토큰 교환 작업을 실행할 수 있으며, 자신의 자산을 소모하지 않고 계약 자금을 여러 번 동원하여 시장에서 이익을 얻을 수 있습니다.
요약하다
이런 방식으로 공격자는 실제로 환매주를 소유하지 않고도 dataList 매개변수에 의해 제어되는 토큰 교환 작업을 실행할 수 있고, 자신의 자산을 소모하지 않고 계약 자금을 여러 번 동원하여 시장에서 이익을 얻을 수 있습니다.
요약하다
이 공격의 핵심은 함수가 사용자가 입력한 dataList 매개 변수를 완전히 검증하지 못하여 공격자가 악의적인 외부 데이터를 구성하고 1inch를 사용하여 계약에 있는 토큰을 훔칠 수 있다는 것입니다. SlowMist 보안 팀은 프로젝트 당사자가 개발 과정에서 엄격한 매개변수 검증 메커니즘을 구현할 것을 권장합니다. 특히 계약의 자금 운영과 관련하여 모든 외부 호출이 예상되는 행동 사양을 준수하는지 확인하고 철저한 보안 감사를 수행할 것을 권장합니다. 비슷한 사고가 다시는 발생하지 않도록 계약의 논리.
모든 댓글