선제적 위협 방지를 통한 Web3 보안

Mar 01 2023
By BlockSec 소개 지난 3년 동안 우리는 DeFi 생태계에서 여러 보안 사건을 관찰했습니다. 위협을 방어하기 위해 코드 중심 방법, e.

By BlockSec

이 이미지는 이스라엘의 아이언 돔 미사일 실드가 작동하는 방식입니다. — BBC News

소개

지난 3년 동안 우리는 DeFi 생태계에서 여러 보안 사고를 관찰했습니다. 위협을 방어하기 위해 커뮤니티에서는 정적 코드 감사, 스마트 계약 스캐닝 도구 또는 동적 퍼징과 같은 코드 중심 방법을 채택합니다. 효과를 보였지만 코드 중심 접근 방식만으로는 보안 문제와 프로젝트 사용자의 자산을 해결할 수 없다고 주장합니다. 예를 들어, 평판이 좋은 여러 코드 감사 회사에서 취약한 계약을 감사한 여러 사례가 있습니다 .

우리는 기존의 코드 중심 접근 방식 외에도 위협을 방어하기 위해 보다 사전 예방적인 위협 방지 솔루션이 존재해야 한다고 생각합니다. 우리는 2021년 말경에 이 아이디어를 내부적으로 심의했고 2022년 초에 IronDome이라는 시스템을 개발했습니다 . 그 이후로 우리는 내부적으로 BlockSec에 시스템을 배포했습니다. 2022년 IronDome은 여러 공격을 성공적으로 차단하고 2022년 4월 Saddle Fiance에 대한 익스플로잇을 방지하고 380만 달러를 구조한 사례를 포함하여 500만 달러 이상의 사용자 자산을 저장했습니다 .

이 블로그에서는 IronDome의 시스템 아키텍처와 성공 사례에 대해 자세히 설명합니다. 또한 위협 방지의 향후 방향에 대한 시스템의 한계와 통찰력에 대해 논의할 것입니다.

높은 수준의 시스템 아키텍처

IronDome의 기본 아이디어는 보류중인 Ethereum 풀을 듣고 우리의 트랜잭션 사전 실행 시스템 Mopsus를 통해 공격 트랜잭션을 감지 하고 취약한 자산을 안전한 계정으로 이동할 구조 트랜잭션을 자동으로 합성하여 공격을 차단하고 전면 FlashBot에 의한 공격 트랜잭션 실행. 다음 그림은 아키텍처를 보여줍니다.

시스템 아키텍처 개요

멤풀 모니터링

IronDome은 맞춤형 Geth 클라이언트를 통해 메모리 풀에서 보류 중인 트랜잭션을 수신합니다. 중요한 점은 우리 시스템이 트랜잭션을 즉시 듣고 가능한 한 많은 트랜잭션을 들어야 한다는 것입니다.

공격 탐지

보류 중인 각 트랜잭션은 공격 감지 모듈에 제공됩니다. 이러한 트랜잭션은 아직 체인에 없기 때문에 트랜잭션 사전 실행 엔진인 Mopsus를 활용하여 이러한 트랜잭션을 사전 실행하고 트랜잭션의 런타임 상태 및 결과를 기반으로 공격(악성) 트랜잭션을 감지합니다.

구조 Tx 합성

공격 트랜잭션의 경우 IronDome은 복구 트랜잭션과 해당 보조 계약을 자동으로 합성합니다. 복구 트랜잭션은 취약한 계약을 "악용"하기 위해 공격 트랜잭션과 유사한 방법을 따르지만 공격자가 제어하는 ​​계정 대신 보안 계정(멀티 시그 계정)으로 수익을 전송합니다. 예를 들어 공격 계약과 유사한 보조 계약을 자동으로 배포할 수 있지만 토큰 전송 주소를 보안 계정으로 대체할 수 있습니다. 물론 일부 공격 트랜잭션에는 더 복잡한 접근 방식을 사용해야 합니다.

구조 트랜잭션을 위해서는 공격 트랜잭션 전에 체인에 만들어야 합니다. 현재 시스템에서는 이러한 목적으로 FlashBot을 활용하고 있습니다. 첫째, 다른 사람들이 우리의 구조 tx를 들을 수 없도록 해야 합니다. 둘째, 우리는 구조 트랜잭션을 블록 상단에서 만들기 위한 몇 가지 전략을 취할 수 있습니다.

대표성공사례

우리는 2022년 초에 IronDome을 배포했습니다. 이 시스템은 여러 공격을 성공적으로 탐지하고 차단했습니다. 다음 표에는 몇 가지 성공 사례가 요약되어 있습니다.

다음 타임라인은 2022년 4월 말에 우리 시스템이 Saddle Finance 를 위해 380만 달러를 구조한 방법을 보여줍니다. 특히 우리 시스템은 공격 트랜잭션을 감지하는 전체 프로세스를 완료하고 구조 tx를 1초 이내에 자동으로 합성했습니다. 우리는 구조된 모든 자금을 Saddle Finance에 반환했습니다. 원본 hack tx 에 대한 링크를 클릭 하고 복구 tx는 다음과 같습니다.

  • 원본 해킹 tx:https://etherscan.io/tx/0xd9bc83688e8eddde39bd9073c363665b1419d475dd4498e81b52cce41d7c76b3
  • 우리의 구조 TX:https://etherscan.io/tx/0x9549c0cb48ec5a5a2c4703cbbbbea5638028b2d8c8adc103220ef1c7fe5e99a3

우리는 시스템에서 보안 윤리를 중요하게 생각합니다. 우리 시스템은 사용자의 자산을 구제하기 위해 취약한 계약을 "악용"하고 있지만 이러한 조치에는 윤리적 문제가 없다고 생각합니다.

  • 첫째, 우리 시스템은 취약한 계약을 적극적으로 악용하지 않습니다. 보류 중인 공격 트랜잭션을 감지한 경우에만 반응하고 유사한 트랜잭션을 자동으로 합성합니다(공격 트랜잭션 차단). 처음부터 공격 트랜잭션을 생성하지 않습니다.
  • 둘째, 영향을 받는 프로토콜과 적극적으로 소통하고 저장된 자금을 반환합니다.

IronDome이 그 효과를 입증했지만 시스템에는 여전히 몇 가지 제한 사항이 있습니다. 다음에서는 이러한 제한 사항을 설명하고 위협 사전 예방에 대한 추가 지침에 대해 논의합니다.

  • 첫째, 우리 시스템은 mempool에서 보류중인 tx를 수신합니다. 공격자가 일부 개인 거래 서비스(예: FlashBot)를 활용하는 경우 공격 거래는 mempool에 있지 않으므로 탐지할 수 없습니다. 이 문제를 해결하기 위해 공격 거래를 탐지하고 차단하기 위해 민간 거래 서비스 제공업체와 협력을 요청합니다(악성 거래를 탐지하는 방법은 우리 시스템과 유사합니다.) . 보류 중인 도구는 여전히 체인에서 공격 tx를 감지하고 추가 공격 트랜잭션을 방지하기 위해 구조자 tx를 보낼 수 있습니다. 많은 경우에 하나 이상의 공격 트랜잭션이 있습니다.
  • 둘째, 보안은 군비 경쟁입니다. 우리는 공격자가 구조 거래를 합성하기 위한 기준을 높이는 사례를 보았습니다. 예를 들어 공격 트랜잭션을 여러 트랜잭션으로 분할하고 수익 주소를 난독화할 수 있습니다. 이러한 문제는 해결될 수 있지만 군비 경쟁은 멈추지 않을 것입니다. 우리는 이러한 문제를 해결하기 위한 솔루션을 연구하고 있습니다.
  • 셋째, 공격 tx 전에 체인에서 구조 거래를 만드는 방법은 여전히 ​​열린 질문입니다. 일부 입찰 전략은 구조 트랜잭션이 블록에 포함될 가능성을 높일 수 있지만 100% 보장할 수는 없습니다.

[1] BlockChain 공격을 "차단 가능"하게 만드는 방법 | 작성자: BlockSec | 중간

[2] 블록: Stablecoin DEX Saddle Finance가 1,000만 달러에 해킹당했습니다.

[3] Lend Exploit Post-Mortem — HomeCoin(mirror.xyz)

[4] Equalizer Finance on Twitter: “Ethereum과 BSC의 금고에서 자금을 회수했습니다. 이제 팀은 Polygon 및 Optimism 체인에서 자금을 회수하기 위해 노력하고 있습니다. 공격자를 차단하고 자산을 보호하고 반환한 @BlockSecTeam에게 큰 감사를 드립니다!” / 트위터

[5] FSWAP on Twitter: “FSWAP 유동성 진행에 대한 공격 내역” / Twitter

[6]https://forta.org/blog/blocksec-and-forta-work-to-secure-web3-beyond-audits/

[7]https://forta.org/blog/the-future-of-threat-prevention-in-web3/