ERC20 토큰의 관리 권한을 바로잡을 수는 없을까? (with 취약점)

“zk Capital에서 보내주는 주간 메일(This Week in Blockchain Research Issue #119)에서 하나를 골라 읽어보았다.”

이 글은 2021년 7월 17일 arXiv에 올라온 ‘Rectifying Administrated ERC20 Tokens [1]’ 논문에 관한 내용을 다룬다.


현재 수백만개의 이더리움 스마트 컨트랙트를 통해 수천억 달러에 달하는 자산이 운용되고 있다. 그 중에서도 ERC20 토큰은 이더리움에서 가장 많이 쓰이고 있는 스마트 컨트랙트 유형이다.

이더리움에는 Externally Owned Accounts (EOAs)와 Contract Accounts (CAs), 이 두 가지 유형의 계정이 존재한다.


  1. EOA의 경우 연결된 private key로 제어하며, 다른 EOA나 CA에게 메시지를 보낼 수 있다. 하지만 사용자가 지정한 코드를 실행할 수는 없다.
  2. CA의 경우 사용자가 지정한 코드를 실행할 수는 있지만 owner를 결정하기 위한 private key를 가지진 않는다.

EOA 컨트랙트는 개발자에 의해 배포가 되는데, 이 안에 소유권, 역할 기반의 접근 제어 및 기타 특수 권한에 대한 내용을 수동으로 정의한다. 논문에서는 수많은 스마트 컨트랙트가 OpenZeppelin Contracts 라이브러리의 여러 루틴을 이용하여 위와 같은 내용들을 정의하고 있다고 한다.

최근 연구 자료[2]에 따르면 약 580만 개의 스마트 컨트랙트 중 적어도 210만 개 이상이 OpenZeppelin Contracts 라이브러리의 onlyOwner 함수 변경자(modifier)를 사용하고 있으며, 이는 특정한 유저(ex. owner)만이 함수 변경자로 구현된 스마트 컨트랙트 함수를 호출할 수 있도록 한다.



자세히 보기

The Eye of Horus, 이더리움 스마트 컨트랙트에 대한 공격 탐지 분석 프레임워크

본 내용은 The Eye of Horus: Spotting and Analyzing Attacks on Ethereum Smart Contracts [1] 논문에 대한 내용을 다루고 있다.


이더리움은 블록체인 상 튜링 완전한(turing-complete) 스마트 컨트랙트 개념을 도입함으로써 디지털 자산을 거래하는데에 큰 변혁을 일으켰다. 프로그램의 일종인 스마트 컨트랙트는 블록체인을 거쳐 실행 및 저장되며, 변조 방지(tamper-resistant) 특성으로 인해 한 번 배포되면 수정이 불가능하다.

지난 수 년간 이더리움이 꾸준히 성장해오는 동안 수많은 스마트 컨트랙트들이 배포되었고, 이 가운데 취약한 컨트랙트를 이용해 자금을 탈취하려는 시도들도 꾸준히 발생했다. 많은 사람들에게 잘 알려진 The DAO 해킹 사건이나 Parity wallet 해킹 사건 등으로 인해 상당한 자금이 해커에 의해 도난당하거나 이더리움 블록체인 네트워크 상에 영원히 동결되어 자산을 사용할 수 없는 사태가 벌어지기도 했다.

이러한 상황에 맞춰 스마트 컨트랙트 취약점을 찾기 위해 많은 연구가 이루어졌고 OYENTE, Vandal, VeriSmart, SODA 등 정적, 동적 분석을 이용한 다양한 취약점 탐지 툴들이 생겨났다. 하지만 논문에서는 대부분의 툴들이 스마트 컨트랙트의 바이트 코드 분석에만 초점을 맞추고 있으며, 각 컨트랙트 별 트랜잭션이나 행동들에 관해서는 잘 다루고 있지 않다고 주장하고 있다.

또한, 대부분은 이더리움 클라이언트를 수정해야 하거나, 길고 복잡한 공격 탐지 스크립트를 작성해야 한다는 것을 전제로 하는 경우가 있다고 하며, 공격 탐지 이후에 도난당한 자산에 대해서 직접적으로 추적하는 툴은 없다라고 표현하고 있다.

이 논문의 저자는 위와 같은 내용을 바탕으로 하여 Horus라는 이름의 공격 탐지 프레임워크를 제안하였다. 해당 프레임워크는 이전 블록체인 데이터로부터 스마트 컨트랙트 공격들을 자동으로 탐지하고 분석할 수 있는 기능을 가지고 있다. 또한, 이더리움 계정 간 도난당한 자산의 흐름을 추적하고 정량화 할 수 있는 수단도 제공하고 있다.

그렇다면 이 Horus에 대해 자세히 한 번 들여다보도록 하자.



The Horus Framework

자세히 보기