Back to Blog

Web3 보안의 열쇠: BlockSec이 DeFi 해킹에 맞서는 방법

Phalcon
September 5, 2023
4 min read

Web3의 끊임없이 진화하는 세계에서 보안의 중요성은 아무리 강조해도 지나치지 않습니다. 약세장 상황에도 불구하고, DeFi 해킹과 사기의 급격한 증가는 심각한 우려를 낳고 있습니다. 수많은 피해자들이 힘들게 번 돈을 잃은 후 도움을 요청하고 있으며, 이는 문제의 심각성과 예방 조치의 절실한 필요성을 부각시키고 있습니다.

BlockSec 소개

저희 블록체인 플랫폼은 著名한 투자자와 고객의 지원을 받아 2021년에 설립되었습니다. 플랫폼은 보안 연구자들이 트랜잭션을 분석하는 데 널리 사용되는 Phalcon Explorer를 비롯한 다양한 제품을 제공합니다. 또한 커뮤니티에 무료로 제공되는 MetaDockMetaSleuth도 제공합니다.

Web3에서 보안이 중요한 이유

Web3에서 보안의 중요성은 명백합니다. 약세장 상황에서도 DeFi 해킹과 사기의 증가는 우려스러운 수준입니다. 돈을 잃은 후 도움을 요청하는 피해자의 수가 증가하고 있다는 것은 문제의 심각성과 이러한 공격으로 인한 파산을 예방하기 위한 지원의 필요성을 보여줍니다.

DeFi 해킹이 매우 흔한 이유

오늘날 DeFi 해킹이 흔한 데에는 여러 가지 이유가 있습니다.

  • 첫째, 공격자들은 이러한 해킹을 통해 상당한 이익을 얻을 수 있기 때문에 경제적 동기를 가지고 있습니다.
  • 둘째, 충분한 자격을 갖춘 개발자의 부족이 프로토콜의 취약점에 기여합니다. 많은 개발자들이 보안보다 기능에 집중하며 블록체인 보안에 대한 충분한 교육이 부족합니다.
  • 또한 대학에서 블록체인 보안에 관한 강좌가 제한적이어서 커뮤니티 내 자격을 갖춘 전문가 부족으로 이어집니다.
  • 마지막으로, 일부 해킹은 조직적인 해킹 그룹이나 국가 차원의 조직에 의해 시작됩니다. 이러한 그룹들은 높은 은밀성과 지속성을 가지고 있으며, 금융 기관, 군사 조직 및 암호화폐 거래소를 특별히 표적으로 삼아 막대한 이익을 추구합니다. 이들의 고도화된 공격 방법과 풍부한 자원은 DeFi 프로젝트에 더욱 큰 위협이 됩니다.

DeFi 프로토콜의 보안

프로토콜 보안에 대해 논의할 때, 많은 사람들은 DeFi 프로토콜의 주요 해결책으로 코드 감사를 떠올립니다. 그러나 코드 감사만으로는 높은 비용과 시간 소모적인 특성으로 인해 충분하지 않습니다. 자격을 갖춘 감사 서비스는 비용이 많이 들고, 그 과정은 수개월이 걸릴 수 있어 시간적 제약이 있는 일부 프로토콜에는 비현실적입니다.

더욱이 이 분야에서 자격을 갖춘 감사자가 부족하여 전문 지식 활용에 어려움이 있습니다. 결과적으로 일부 프로토콜은 포괄적인 보안 조치 없이 출시될 수밖에 없으며, 이는 해결되지 않은 취약점과 잠재적 위협으로 이어질 수 있습니다.

Web3에서 선제적 접근 방식이 중요한 이유

DeFi 프로토콜의 보안을 보장하기 위해서는 선제적 접근 방식이 필수적입니다. 이는 프로토콜이 단순히 배포되고 방치될 수 없음을 의미합니다. 프로토콜 내의 진행 중인 활동을 적극적으로 모니터링하고 잠재적인 공격에 자동으로 대응할 준비가 되어 있어야 합니다.

이러한 선제적 접근 방식의 중요성은 다음과 같은 이유로 Web2에 비해 Web3에서 더욱 높아집니다.

  • 첫째, Web3는 더 많은 공격 벡터를 도입하며 블록체인의 개방성으로 인해 선의의 사용자와 악의적인 사용자 모두 스마트 컨트랙트의 소스 코드에 쉽게 접근하고 분석할 수 있습니다.
  • 둘째, 블록체인 트랜잭션의 익명성으로 인해 공격자들의 활동 추적이 어렵기 때문에, 취약점 악용이 공격자들에게 수익성이 높아집니다.
  • 셋째, 플래시 론의 가용성으로 인해 공격자들은 금융 능력을 증폭시킬 수 있는데, 이는 공격 실행에 상당한 자본이 필요했던 Web2와는 다릅니다.
  • 마지막으로, 특정 프라이빗 트랜잭션 서비스가 악의적인 트랜잭션을 숨기는 데 악용될 수 있습니다.

결과적으로, Web3의 고유한 특성으로 인해 프로토콜과 사용자에 대한 해로운 공격이 발생하기는 더 쉬워지는 반면, 공격자를 추적하고 식별하기는 더 어려워집니다.

저희 시스템의 작동 방식

저희는 블록체인 산업에서 BlockSec Phalcon이라는 프로토타입 시스템을 개발했습니다. 2022년 2월부터 저희는 코드 감사를 넘어 DeFi 해킹과 관련된 특정 과제를 극복하는 방법을 적극적으로 탐구해 왔습니다.

BlockSec Phalcon은 저희가 블록체인의 트랜잭션을 면밀히 모니터링할 수 있게 해줍니다. 이러한 트랜잭션을 모니터링하고 자동으로 대응함으로써, 공격 트랜잭션을 재생하고 공격 컨트랙트의 핵심 로직을 복제하여 기반 기술을 재구성할 수 있습니다.

이 과정을 통해 새로운 구제 스마트 컨트랙트를 합성할 수 있습니다. 그런 다음 구제 트랜잭션을 전송하여 저희 트랜잭션이 공격 트랜잭션보다 빠르게 블록체인에 기록될 수 있도록 합니다. 이 접근 방식을 활용하여 더 빠르게 행동하고 블록체인 내에서 선도적인 위치를 확보함으로써 공격 트랜잭션을 완전히 차단할 수 있는 잠재력을 갖추고 있습니다.

"공격" 컨트랙트 구성 방식

이 메커니즘 또는 시스템의 핵심은 공격 트랜잭션과 "공격" 컨트랙트를 자동으로 재구성하는 방법입니다. 기본 아이디어는 공격 트랜잭션과 공격 스마트 컨트랙트에서 가장 중요한 것이 무엇인지 고려하는 것으로, 핵심 요소는 스마트 컨트랙트 내의 공격 로직입니다.

기본 아이디어는 단순하지만, 실제로는 그렇게 간단하지 않습니다. 저희는 일련의 기술적 과제에 직면합니다. 가장 중요한 점은 스마트 컨트랙트 내의 기본 블록 재사용을 처리하는 방법입니다. 컴파일러는 종종 블록 재사용을 활용하여 더 작은 코드를 생성하는데, 이는 코드 크기 축소에서 일반적인 관행입니다. 이 과정에서 저희는 이백 년 이상 사용되고 발전해 온 기술인 바이너리 코드 재작성의 개념에서 영감을 받았습니다. 따라서 저희는 이 아이디어를 활용하여 바이트코드 재작성 기술에 적용합니다.

저희가 달성한 주목할 만한 이정표

저희 시스템을 활용하여 여러 프로토콜 공격 트랜잭션을 성공적으로 차단하고 상당한 유동성 손실을 회복했습니다. 예를 들어, 올해 ParaSpace의 500만 달러 손실을 회수하고 작년에는 Saddle Finance의 380만 달러를 회복했습니다. 다음 논의에서는 이러한 트랜잭션을 어떻게 차단했는지 설명하기 위한 대표적인 사례를 소개하겠습니다.

ParaSpace를 예로 들어보겠습니다. 올해 3월에 공격을 받았지만 공격자들이 치명적인 실수를 저질렀습니다. 충분한 가스를 할당하지 못해 트랜잭션이 되돌려졌습니다. 저희는 블록체인에서 이 트랜잭션을 모니터링하고 식별했습니다. 그런 다음 유사한 구제 컨트랙트를 자동으로 합성했습니다. 블록체인에서 구제 컨트랙트를 실행한 후, BlockSec은 ParaSpace의 500만 달러 손실을 성공적으로 회복했습니다.

또 다른 사례는 Platypus로, 올해 2월에 공격을 받았습니다. 스마트 컨트랙트의 취약점을 악용하여 공격자들은 Platypus DeFi 프로토콜을 공격할 진입점을 찾았습니다. 그러나 그들은 손상된 컨트랙트에서 자금을 인출하는 로직을 설정하는 것을 간과했습니다. 결과적으로 해커들은 손상된 컨트랙트에서 남은 240만 달러를 추출하는 방법이라는 과제에 직면했습니다.

이 시나리오에서 BlockSec은 공격 컨트랙트를 자동으로 분해하는 내부 시스템을 보유하고 있습니다. 휴리스틱 방법을 통해 공격 스마트 컨트랙트에 대한 포괄적인 분석을 수행하여 흥미로운 특징을 발견했습니다.

첫째, 이 컨트랙트의 플래시 론 콜백이 노출되어 있음을 발견했습니다. 둘째, Platypus 풀 컨트랙트가 USDC에 대한 승인을 받은 상태였습니다. 풀 컨트랙트는 공격받은 컨트랙트의 승인을 활용하여 남은 USDC를 인출하도록 업그레이드될 수 있었습니다. 이 아이디어와 PoC를 프로토콜과 공유함으로써 공격 컨트랙트에서 240만 달러를 성공적으로 회수하는 데 도움을 주었습니다.

또 다른 사례는 Transit Swap으로, MEV 봇의 표적이 되었습니다. 저희는 MEV 봇의 주소가 Profanity라는 결함 있는 도구에 의해 생성되었음을 발견했습니다. 이 도구의 취약점을 활용하여 MEV 봇의 개인 키를 계산하고 프로토콜에 변상하기 위해 자금을 회수했습니다.

이 시스템의 효율성을 개선하는 방법

저희는 이 시스템의 효율성을 개선하기 위해서는 신중한 사고와 전략적 행동이 필요하다고 생각합니다.

  • 첫째, 신속하고 선제적인 대응이 필수적입니다. 상황이 발생했을 때 즉시 정보를 수집하고 즉각적인 조치를 취하는 것이 중요합니다.
  • 둘째, 정확성을 유지하는 것이 중요합니다. 과도한 허위 경보를 생성하는 것을 피해야 합니다. 앞서 논의한 바와 같이, 모니터링 도구가 너무 많은 경보를 생성하면 제품의 사용성에 큰 영향을 미칩니다. 따라서 공격자 추적에 집중하기보다는 체계적인 접근 방식을 추구해야 합니다.

BlockSec은 컨트랙트 분석 및 분해를 위한 다양한 도구를 보유하고 있으며, 휴리스틱 방법을 활용하여 세밀한 바이트코드 분석을 수행합니다. 이러한 모든 조치는 포괄적인 시스템을 구축하고 효과적인 제품을 제공하는 것을 목표로 합니다.

Web3의 역동적인 영역에서 보안은 가장 중요합니다. DeFi 해킹의 증가로 인해 선제적인 접근 방식을 채택하고 BlockSec Phalcon과 같은 혁신적인 시스템을 활용하여 프로토콜과 사용자를 보호하는 것이 필수적입니다. 보안 조치의 경계를 지속적으로 넓혀 나감으로써, 저희는 Web3의 안전성과 무결성을 강화하여 안전하고 번영하는 탈중앙화 미래를 위한 길을 열어가기 위해 노력합니다.