SoMo: 이더리움 스마트 계약에서 안전하지 않은 함수 수정자를 식별하는 혁신적인 도구
Web3 보안 서비스 제공업체 MetaTrust Labs가 최근 완료한 연구는 이더리움 스마트 계약의 사용자 정의 함수 수정자에 존재하는 중대한 보안 위험을 발견했습니다. "Protected'와 'Private'를 넘어서: 스마트 계약의 사용자 정의 함수 수정자에 대한 경험적 보안 분석"이라는 제목의 ISSTA'23 논문에서 연구팀은 62,000개 이상의 스마트 계약을 조사하여 수정자를 우회할 수 있는 취약한 계약이 411개 발견되었습니다. 이러한 문제를 해결하기 위해 MetaTrust는 새롭게 개발된 도구 SoMo를 유명한 스마트 계약 보안 스캔 서비스 MetaScan에 통합했습니다.
이 연구의 주요 목적은 "우회 가능한 수정자"와 같은 안전하지 않은 수정자를 식별하는 것입니다. 이러한 수정자는 하나 이상의 보호되지 않은 스마트 계약 함수에서 우회될 수 있습니다. 예를 들어, 다음의 "onlyOwner" 수정자는 공용 함수 Mining24()를 호출하여 우회할 수 있습니다. 따라서 공격자는 onlyOwner 수정자로 보호된 민감한 함수를 악용할 수 있습니다.
이러한 취약점을 식별하기 위해 연구자들은 수정자 의존성 그래프(MDG)를 구축하여 수정자와 관련된 모든 제어/데이터 흐름을 포괄하는 새로운 도구 SoMo를 개발했습니다. MDG에서 기호 경로 제약을 생성하고 각 후보 진입 함수에 대해 반복적으로 테스트를 수행했습니다. 결과는 SoMo가 대규모 데이터 세트에서 62,464개의 계약을 분석할 때 정확도가 91.2%에 달한다는 것을 보여주었습니다.
이 연구는 또한 수정자가 실제 상황에서 주로 사용되는 용도를 드러냈습니다. 여기에는 접근 제어, 금융 관련, 계약 상태 및 기타 검사가 포함되며, 아래 표와 같습니다. 이러한 발견은 개발자들이 종종 수정자를 사용하여 보안 민감 작업을 수행하지만, 이들이 잘 보호되지 않을 수 있음을 나타냅니다.
전반적으로 블록체인 기술의 안전성과 신뢰성을 보장하기 위해 해야 할 일이 많습니다. 더 나은 프로그래밍 기술과 테스트 도구를 사용함으로써 우리는 스마트 계약에 대한 공격을 방지하고 우리의 디지털 거래를 안전하게 보호할 수 있습니다. 더 많은 기업과 조직이 다양한 응용 프로그램을 위해 블록체인 기술을 채택함에 따라 스마트 계약의 안전성과 신뢰성을 보장하는 것이 중요합니다. 이 연구는 이러한 목표를 달성하기 위한 중요한 단계입니다.
블록체인 기술이 많은 산업을 혁신할 것으로 기대되지만, 보안은 항상 최우선 고려 사항이어야 합니다. MetaScan과 같은 도구를 사용하고 안전한 프로그래밍 모범 사례를 따름으로써 우리는 블록체인에서 우리의 디지털 거래를 안전하게 보장할 수 있습니다.