toplogo
Sign In

사전에 계획된 공격 폭로: 공격자 계약 식별을 통한 취약한 재진입 취약점 탐지


Core Concepts
본 연구에서는 공격자 계약을 식별하여 실제 악용 가능한 재진입 취약점을 효과적으로 탐지하는 BlockWatchdog 도구를 제안한다. BlockWatchdog은 계약 간 정적 데이터 흐름 분석을 통해 공격자 계약의 콜백 로직을 추적하여 취약한 피해자 계약을 식별한다.
Abstract
본 연구는 재진입 공격을 수행하는 공격자 계약의 특징을 분석하기 위해 281건의 공격 사례를 조사했다. 이를 통해 공격자 계약이 fallback() 함수, ERC 토큰의 후크 함수, 사용자 정의 인터페이스를 활용하여 재진입 공격을 수행하는 3가지 유형을 확인했다. 이를 바탕으로 BlockWatchdog은 계약 간 정적 데이터 흐름 분석을 수행한다. 먼저 입력 계약의 중간 표현(IR)을 추출하고 외부 호출 정보를 분석한다. 그 다음 계약 간 제어 흐름 그래프(xCFG)와 호출 그래프(xCG)를 구축하여 데이터 흐름 분석을 수행한다. 마지막으로 공격자 계약 식별 패턴을 적용하여 실제 악용 가능한 재진입 취약점을 탐지한다. 실험 결과, BlockWatchdog은 421,889개의 이더리움 계약 바이트코드에서 113개의 공격자 계약을 식별했으며, 이를 통해 약 9억 달러 규모의 이더와 토큰 손실을 확인했다. 현존하는 재진입 취약점 탐지 도구들은 이 중 18개의 피해자 계약만 탐지할 수 있었다.
Stats
이더리움 계약 421,889개 중 113개의 공격자 계약 식별 약 9억 달러 규모의 이더와 토큰 손실 확인 현존 도구들은 식별된 피해자 계약 159개 중 18개만 탐지 가능
Quotes
"BlockWatchdog은 공격자 계약을 식별하여 실제 악용 가능한 재진입 취약점을 효과적으로 탐지한다." "BlockWatchdog은 계약 간 정적 데이터 흐름 분석을 통해 공격자 계약의 콜백 로직을 추적하여 취약한 피해자 계약을 식별한다."

Key Insights Distilled From

by Shuo Yang,Ji... at arxiv.org 03-29-2024

https://arxiv.org/pdf/2403.19112.pdf
Uncover the Premeditated Attacks

Deeper Inquiries

BlockWatchdog이 식별하지 못한 공격자 계약의 특징은 무엇인가?

BlockWatchdog이 식별하지 못한 공격자 계약은 주로 두 가지 유형으로 나눌 수 있습니다. 첫 번째 유형은 외부 호출을 통해 이익을 얻지 않고 getter 함수를 사용하는 경우입니다. 이러한 경우에는 외부 호출을 통해 이익을 얻는 과정이 없으므로 BlockWatchdog이 잘못 식별할 수 있습니다. 두 번째 유형은 권한 확인 메커니즘을 사용하는 경우로, 일부 계약은 msg.sender를 전송 대상으로 사용하거나 hook 함수의 호출자를 제한하는 데 사용할 수 있습니다. 이러한 경우에도 외부 호출을 통해 공격을 수행하는 의도가 없는 경우가 있을 수 있습니다.

BlockWatchdog의 탐지 정확도를 높이기 위한 방법은 무엇이 있을까?

BlockWatchdog의 탐지 정확도를 높이기 위한 방법으로는 다음과 같은 접근 방법이 있을 수 있습니다. 메모리 값을 통해 호출 대상 주소와 함수 서명을 복구할 수 없는 경우에 대비하여 런타임 중에 메모리 값을 확인할 수 있는 방법을 개발하여 외부 호출의 전체 호출 체인을 복구할 수 있도록 합니다. 함수 서명 불일치로 인한 오류를 최소화하기 위해 더 정확한 함수 서명 식별 기능을 개발하여 외부 호출을 식별하고 분석할 때 더 정확한 정보를 제공합니다. 잘못된 긍정 결과를 최소화하기 위해 getter 함수를 통해 외부 호출을 수행하는 경우와 권한 확인 메커니즘을 사용하는 경우를 식별하고, 이러한 경우에 대한 예외 처리를 개발하여 정확도를 향상시킵니다.

BlockWatchdog의 기술을 활용하여 이더리움 생태계의 보안을 향상시킬 수 있는 다른 방법은 무엇이 있을까?

BlockWatchdog의 기술을 활용하여 이더리움 생태계의 보안을 더욱 향상시킬 수 있는 다른 방법으로는 다음과 같은 접근 방법이 있을 수 있습니다. 새로운 보안 패턴 및 공격 유형에 대한 지속적인 감지 및 분석: BlockWatchdog을 지속적으로 업데이트하여 새로운 보안 패턴 및 공격 유형을 식별하고 분석하여 보안 취약점을 조기에 탐지합니다. 스마트 계약 개발자 교육 및 보안 가이드 제공: BlockWatchdog을 활용하여 스마트 계약 개발자들에게 보안 교육 및 가이드를 제공하여 보다 안전한 스마트 계약을 개발하고 배포할 수 있도록 지원합니다. 실시간 보안 모니터링 및 대응 시스템 구축: BlockWatchdog을 기반으로 실시간 보안 모니터링 및 대응 시스템을 구축하여 이더리움 생태계의 보안 상황을 실시간으로 모니터링하고 보안 이슈에 신속하게 대응할 수 있도록 합니다.
0
visual_icon
generate_icon
translate_icon
scholar_search_icon
star