DEV Community

Juno Kim
Juno Kim

Posted on

끊이지 않는 취약점: 디파이 프로토콜이 해킹에 취약한 이유를 파헤치다

지난 10년간 탈중앙화 금융(DeFi)은 블록체인 분야에서 가장 혁신적인 변화를 가져온 기술 중 하나로 부상했다. 디파이 프로토콜은 퍼블릭 블록체인 위에 불변의 스마트 계약을 활용해, 대출, 차입, 거래, 보험 등 전통적인 금융 서비스를 무허가적이고 투명하며 검열 저항적인 방식으로 재구축하고 강화하는 것을 목표로 한다. 금융의 민주화, 중개자 감소, 그리고 전례 없는 금융 혁신을 촉진하겠다는 약속은 수조 달러의 가치와 활기찬 개발자 및 사용자 커뮤니티를 끌어모았다. 종종 "돈의 레고(money legos)" 혁명이라 불리는 디파이의 급속한 성장은 구성 가능성(composability)의 힘을 보여주었으며, 이를 통해 프로토콜들은 서로 통합되고 그 위에 구축되어 복잡한 금융 생태계를 만들어가고 있다. 그러나 이러한 폭발적인 성장에는 끊이지 않고 우려스러운 도전 과제가 동반되었는데, 바로 디파이 프로토콜이 해킹과 익스플로잇에 취약하다는 점이다. 매년 수십억 달러가 다양한 공격 경로를 통해 이들 프로토콜에서 유출되고 있으며, 이는 사용자에게 막대한 재정적 손실을 안기고 신뢰를 훼손하며, 그렇지 않아도 밝은 산업 전망에 그림자를 드리우고 있다. 정교한 재진입 공격부터 복잡한 오라클 조작, 그리고 치명적인 브릿지 침해에 이르기까지, 디파이 보안의 풍경은 위험천만한 고양이와 쥐의 게임과도 같다. 이 글은 피상적인 설명을 넘어, 디파이 프로토콜이 왜 계속해서 악의적인 행위자들의 주요 표적이 되는지에 대한 근본적인 기술적, 아키텍처적, 운영적 이유를 깊이 파고들고, 전문가의 관점에서 이러한 보안 침해의 근본 원인과 메커니즘을 분석하고자 한다. 디파이의 개념적 토대는 스마트 계약에 있다. 이는 코드 라인에 직접 조건이 작성된 자체 실행 계약이다. 이들 계약은 주로 이더리움에서, 그리고 점차 다른 레이어 1 및 레이어 2 솔루션에서 퍼블릭 블록체인 위에서 작동한다. 스마트 계약의 매력은 불변성과 결정론적 실행에 있다. 한 번 배포되면, 인간의 개입이나 신뢰할 수 있는 제삼자 없이 정확히 프로그래밍된 대로 실행된다. 이러한 "코드는 곧 법(code is law)" 원칙은 디파이의 가장 큰 강점이자 가장 중요한 취약점이다. 디파이의 부상은 2018년부터 2020년경 MakerDAO, Compound, Uniswap과 같은 기반 프로토콜이 길을 닦으면서 상당한 주목을 받기 시작했다. 이들 프로토콜은 자동화되고 신뢰가 필요 없는 금융 프리미티브의 잠재력을 입증했다. "돈의 레고" 개념은 이러한 프로토콜들이 어떻게 상호 연결되고 구성될 수 있는지를 설명하며, 개발자들이 기존 디파이 서비스를 쌓아 올려 복잡한 애플리케이션을 구축할 수 있게 한다. 이러한 구성 가능성은 혁신과 효율성을 촉진하지만, 동시에 공격 표면을 기하급수적으로 증가시킨다. 하나의 기본 "레고 블록"에 있는 취약점은 전체 생태계에 걸쳐 연쇄적인 영향을 미 미칠 수 있어, 보안 감사와 위험 평가를 매우 복잡하게 만든다. 많은 디파이 프로토콜의 오픈소스 특성은 투명성과 커뮤니티 검토를 촉진하지만, 잠재적 공격자들도 전체 코드베이스를 면밀히 조사할 수 있다는 의미이기도 하다. 전통적인 금융 기관이 폐쇄적인 환경에서 운영되는 것과 달리, 디파이 프로토콜은 모든 코드 라인, 모든 거래, 모든 상태 변경이 공개적으로 보이는 공개된 경기장이다. 이러한 투명성은 스마트 계약이 종종 막대한 양의 암호화폐를 직접 제어한다는 사실과 결합되어, 이들을 정교한 해커들에게 매우 매력적이고 가치 있는 표적으로 만든다. 지난 몇 년간 디파이 해킹으로 인한 총 손실은 지속적으로 수십억 달러에 달했으며, Chainalysis나 PeckShield와 같은 블록체인 보안 기업의 보고서는 이러한 재정적 약탈의 규모를 정기적으로 강조하며, 그 근본 원인에 대한 더 깊은 이해가 시급함을 보여준다. 디파이 프로토콜 해킹의 원인은 블록체인 기술, 스마트 계약 설계, 그리고 더 넓은 생태계의 내재적 특성에서 비롯된 다면적인 요소들을 가지고 있다. 이러한 취약점들은 몇 가지 핵심 영역으로 분류할 수 있다. 가장 먼저 스마트 계약 자체의 취약점이다. 이는 종종 논리적 오류, 부적절한 상태 관리, 또는 개발자들이 잘못된 가정을 한 데서 비롯된 코드 자체의 결함이다. 대표적인 사례로 재진입 공격이 있다. 이 고전적인 취약점은 공격자가 계약의 상태(예: 잔액)가 업데이트되기 전에 취약한 계약의 함수를 반복적으로 호출할 수 있게 한다. 가장 악명 높은 예는 2016년 The DAO 해킹으로, 공격자가 withdraw 함수를 재귀적으로 호출하여 이더리움의 상당 부분을 유출했다. 현대의 솔리디티(Solidity) 계약은 검사-효과-상호작용(checks-effects-interactions) 패턴과 OpenZeppelin의 ReentrancyGuard를 사용해 이를 완화하지만, 사용자 정의 구현은 여전히 취약할 수 있다. 다음으로 논리적 오류와 버그가 있다. 이는 프로토콜의 비즈니스 로직에 있는 모든 결함을 포괄하는 광범위한 범주다. 여기에는 잘못된 계산, 엣지 케이스의 부적절한 처리, 또는 결함 있는 상태 전환이 포함될 수 있다. 예를 들어, 대출 프로토콜의 이자 계산이나 담보 비율에 버그가 있다면 자금을 유출하거나 청산을 피하기 위해 악용될 수 있다. 로닌 브릿지(Ronin Bridge) 익스플로잇은 비록 프라이빗 키 침해를 포함했지만, 궁극적으로 브릿지의 검증자 서명 관리 방식에 있는 치명적인 논리적 결함을 활용하여 무단 인출을 가능하게 했다. 접근 제어 문제도 중요하다. 부적절하게 보호된 관리 기능이나 소유자 권한은 치명적일 수 있다. 계약 소유자만을 위한 기능(예: 계약 일시 중지, 로직 업그레이드, 특정 자금 인출)이 강력한 접근 제어를 갖추지 못하면, 이를 통제하는 공격자가 특권 작업을 실행할 수 있다. 이는 종종 다중 서명 지갑 설정이나 키 관리의 결함과 관련이 있다. 정수 오버플로/언더플로(Integer Overflow/Underflow)는 현대 솔리디티에서 SafeMath가 기본적으로 포함되면서 덜 만연하지만, 오래된 계약이나 사용자 정의 산술 연산을 사용하는 계약은 취약할 수 있다. 이는 산술 연산 결과가 데이터 타입의 범위를 벗어나 "랩 어라운드"될 때 발생하며(예: uint256(0) - 12^256 - 1이 됨), 잘못된 잔액이나 계산이 악용될 수 있다. 디파이 프로토콜은 종종 오라클이라고 불리는 외부 데이터 피드에 의존하여 오프체인 정보(자산 가격 등)를 블록체인으로 가져온다. 이러한 오라클을 조작하는 것은 치명적인 결과를 초래할 수 있다. 공격자들은 유동성이 낮은 분산형 거래소(DEX)에서 가격을 가져오는 프로토콜을 악용할 수 있다. 유동성이 낮은 풀에서 대규모 거래를 실행함으로써 자산 가격을 인위적으로 부풀리거나 하락시킨 다음, 이 조작된 가격을 다른 디파이 프로토콜에서 자신에게 유리하게 사용할 수 있다(예: 과대평가된 담보에 대해 차입하거나 담보 부족 포지션을 청산하는 등). 플래시 론(Flash Loan) 익스플로잇도 빈번하다. 플래시 론은 단일 거래 블록 내에서 상환되어야 하는 무담보 대출을 허용하는 합법적인 디파이 프리미티브이지만, 오라클 조작의 벡터로 자주 사용된다. 공격자는 막대한 플래시 론을 받아 이를 사용하여 DEX에서 자산 가격을 조작하고, 조작된 가격을 사용하여 취약한 대출 또는 거래 프로토콜에서 수익성 있는 거래를 실행한 다음, 플래시 론을 상환할 수 있다. 이 모든 과정이 몇 초 안에 이루어진다. 2021년 PancakeBunny 익스플로잇은 플래시 론이 가격 피드를 조작하고 볼트에서 자금을 유출하는 데 사용된 대표적인 사례이며, Cream Finance 또한 오라클 조작을 활용한 여러 플래시 론 공격을 겪었다. 크로스체인 브릿지 취약점 또한 간과할 수 없다. 브릿지는 서로 다른 블록체인 간의 자산 전송을 가능하게 하는 핵심 인프라이다. 이들의 복잡성과 종종 중앙화된 구성 요소는 이들을 고가치 표적으로 만든다. 많은 브릿지는 여러 검증자 또는 다중 서명 지갑에 의존하여 체인 간 거래를 확인하고 중계한다. 서명 확인 과정의 취약점은 공격자가 대상 체인에서 무단 자산을 발행하거나 브릿지의 잠긴 준비금에서 자금을 유출할 수 있게 한다. 2022년 Wormhole 브릿지 익스플로잇에서는 공격자들이 서명을 위조하여 솔라나에서 120,000 wETH를 발행했고, 이는 브릿지의 이더리움 측을 효과적으로 고갈시켰다. 만약 브릿지의 다중 서명 지갑이나 검증자 세트를 제어하는 프라이빗 키가 침해된다면, 공격자들은 단순히 사기성 거래에 서명할 수 있다. 2022년 로닌 브릿지(Ronin Bridge) 해킹은 9개의 검증자 프라이빗 키 중 5개가 침해되어, 공격자들이 6억 달러 이상의 이더리움과 USDC를 유출할 수 있었다. 이는 기술적 취약점 외에도 운영 보안 실패를 강조한다. 브릿지는 종종 릴레이어(relayer)나 오라클을 사용하여 체인 간 메시지를 전달한다. 이러한 구성 요소가 크로스체인 메시지를 검증하거나 해석하는 방식의 결함은 악용되어 무단 인출이나 자산 발행으로 이어질 수 있다. 때로는 '버그'가 코드 자체에 있는 것이 아니라, 프로토콜을 지탱하는 경제 모델이나 게임 이론에 있을 때도 있다. 복잡한 보상 구조나 유동성 채굴 인센티브를 가진 프로토콜은 의도치 않은 허점을 가지고 설계될 수 있다. 합리적인 행위자들은 시스템을 조작하여 보상을 유출하거나 토큰 분배를 조작할 수 있는데, 이는 기술적으로 스마트 계약 코드를 위반하지 않으면서도 가능하다. 다른 익스플로잇과 결합되는 경우가 많지만, 프로토콜의 본딩 커브, AMM 풀 또는 스테이킹 메커니즘이 대규모의 조직적인 인출이나 조작에 대해 강력하게 설계되지 않았다면 유동성 고갈 공격에 취약할 수 있다. 이러한 범주들은 종종 겹치며, 정교한 공격은 여러 벡터를 결합하는 경우가 많다(예: 플래시 론으로 오라클을 조작한 후 논리적 오류를 악용하는 것). 디파이의 상호 연결성은 단일 실패 지점이 생태계 전반에 걸쳐 취약점의 연쇄 반응을 일으킬 수 있음을 의미한다. 특정 사건들을 살펴보면 디파이 익스플로잇의 메커니즘과 영향에 대한 중요한 통찰력을 얻을 수 있다. 2016년 The DAO 해킹은 이더리움 역사상 재진입 공격의 파괴적인 잠재력을 보여준 기념비적인 사건이다. 탈중앙화 자율 조직인 The DAO는 토큰 보유자가 관리하는 벤처 캐피탈 펀드로 설계되었다. 그러나 splitDAO 함수의 치명적인 결함으로 인해 공격자는 내부 잔액이 업데이트되기 전에 인출 함수를 재귀적으로 호출할 수 있었고, The DAO의 이더리움 약 3분의 1(당시 약 5천만 달러 상당)을 유출했다. 커뮤니티의 대응은 논쟁적인 하드포크로 이어져 이더리움(ETH)과 이더리움 클래식(ETC)으로 분리되었고, 이는 스마트 계약 취약점이 얼마나 심오한 영향을 미 미치는지 강조한다. 2021년 PancakeBunny는 바이낸스 스마트 체인(Binance Smart Chain)의 이자 농사 프로토콜로, 플래시 론 공격과 오라클 조작이 결합된 공격의 희생양이 되었다. 공격자는 대규모 BNB 플래시 론을 받아, PancakeSwap에서 대량의 BUNNY를 매수하여 BNB/BUNNY 가격을 조작했다. 이후 조작된 BUNNY를 PancakeSwap의 가격을 오라클로 사용하는 PancakeBunny 볼트에 예치했다. 이를 통해 공격자는 인위적으로 낮은 가격에 엄청난 양의 BUNNY를 발행하고, 이를 다시 시장에 덤핑하여 가격을 폭락시킨 후 플래시 론을 상환하여 상당한 이익을 챙겼다. 이 공격으로 사용자들은 2억 달러 이상의 손실을 입었고 BUNNY 가격은 급락했다. 2022년 Wormhole 브릿지는 이더리움, 솔라나 및 다른 체인을 연결하는 인기 있는 크로스체인 브릿지로, 서명 확인 과정의 취약점으로 인해 대규모 익스플로잇을 겪었다. 공격자는 브릿지의 솔라나 측에 있는 verify_signatures 함수의 결함을 악용하여 거래에 대한 유효한 서명을 위조할 수 있었다. 이를 통해 이더리움에 상응하는 금액을 예치하지 않고도 솔라나에서 120,000 wETH를 발행할 수 있었고, 브릿지의 ETH 준비금을 효과적으로 고갈시켰으며, 총 3억 2천만 달러 이상의 손실이 발생했다. 이후 Jump Crypto가 손실된 자금을 보충했지만, 이 사건은 크로스체인 인프라의 치명적인 보안 위험을 부각시켰다. 2022년 로닌 브릿지(Ronin Bridge)는 Axie Infinity의 로닌 사이드체인을 이더리움에 연결하는 브릿지로, 현재까지 가장 큰 암호화폐 해킹 중 하나를 경험했다. 공격자들은 브릿지에서 인출을 승인하는 데 필요한 9개의 검증자 프라이빗 키 중 5개를 장악했다. 이는 소셜 엔지니어링과 가스 없는 RPC 노드의 백도어를 악용한 조합을 통해 이루어졌다. 대부분의 검증자 키를 장악한 공격자들은 무단 인출 거래에 서명할 수 있었고, 당시 6억 달러가 넘는 173,600 ETH와 2,550만 USDC를 유출했다. 이 사건은 분산형 생태계 내에서 운영 보안 침해와 중앙 집중식 실패 지점이 얼마나 심각한 결과를 초래하는지 보여주었다. 이러한 사례들은 익스플로잇이 고립된 사건이 아니라, 다양한 공격 벡터에 의해 주도되는 시스템적인 문제이며, 각 벡터는 특정 기술적 또는 운영적 약점을 활용한다는 것을 잘 보여준다. 보안 관행의 지속적인 발전에도 불구하고, 몇 가지 내재된 한계와 계속되는 도전 과제들이 디파이 해킹이 끊이지 않는 이유로 작용한다. 불변성은 검열 저항성과 투명성을 보장하지만, 동시에 스마트 계약이 버그와 함께 배포되면 쉽게 패치할 수 없다는 의미이기도 하다. 발견된 모든 취약점은 프로토콜에 미리 구축된 업그레이드 메커니즘(이는 종종 중앙화 위험을 초래한다)이 없거나 사용자에게 복잡한 마이그레이션 프로세스를 요구하지 않는 한 영구적인 공격 벡터가 된다. 이러한 "한 번 배포하면 영원히 실행"되는 패러다임은 복잡한 소프트웨어 개발에서는 거의 달성하기 어려운, 거의 완벽한 코드를 처음부터 요구한다. 디파이의 "돈의 레고" 아키텍처는 혁신적이지만, 복잡한 상호 의존성의 웹을 생성한다. 하나의 기본 프로토콜에 있는 버그는 그 위에 구축된 다른 많은 프로토콜에 취약점을 만들 수 있다. 이러한 복잡성의 기하급수적인 증가는 포괄적인 보안 감사를 어렵게 만든다. 감사자들은 개별 계약을 평가하는 것뿐만 아니라, 더 넓은 생태계 내에서 이들이 어떻게 상호작용하는지, 그리고 통합 계층에서 잠재적인 새로운 행동이나 취약점을 이해해야 하기 때문이다. 보안 감사는 만병통치약이 아니다. 평판 좋은 기업의 보안 감사는 중요한 단계이지만, 완벽하지는 않다. 감사자들은 특히 매우 복잡하거나 새로운 프로토콜에서 미묘한 버그를 놓칠 수 있다. 감사의 범위가 제한될 수도 있고, 감사가 완료된 후에 새로운 공격 벡터가 나타날 수도 있다. 더욱이, 감사 후 변경 사항이나 통합은 원래 검토의 일부가 아니었던 새로운 취약점을 도입할 수 있다. 위에서 언급된 일부 프로토콜을 포함하여 많은 해킹된 프로토콜들이 여러 차례 감사를 받았다는 사실은 엄격한 검토조차 절대적인 보안을 보장하지 못한다는 것을 증명한다. 코드 외에도 인적 요소가 중요한 역할을 한다. 여기에는 개발자가 버그를 도입하는 경우, 팀이 프라이빗 키나 관리자 접근에 대한 강력한 운영 보안을 구현하지 못하는 경우, 또는 소셜 엔지니어링 공격에 희생되는 경우가 포함된다. 예를 들어, 로닌 브릿지 해킹은 주로 키 관리가 불충분했던 운영 보안 실패였다. 디파이 공간의 경쟁이 치열하고 빠르게 변화하는 특성은 종종 새로운 기능과 프로토콜의 신속한 배포를 장려한다. 이러한 시장 경쟁은 때때로 보안이 뒷전으로 밀리거나 서둘러져, 철저한 테스트, 공식 검증, 그리고 광범위한 버그 바운티 프로그램에 충분한 시간이 할애되지 않는 결과를 낳을 수 있다. 업계가 성숙해지고 있지만, 보편적으로 채택된 보안 표준, 모범 사례 및 규제 감독은 여전히 진화 중이다. 이러한 파편화된 환경은 프로젝트 간의 보안 품질이 매우 다양할 수 있음을 의미하며, 사용자가 위험을 정확하게 평가하기 어렵게 만든다. 이러한 한계들은 디파이를 보호하는 것이 단순히 기술적인 도전이 아니라, 코드, 아키텍처, 인간 행동, 그리고 산업 표준을 다루는 전체적인 접근 방식이 필요한 시스템적인 문제임을 강조한다. 디파이 프로토콜 해킹이라는 만연한 문제는 최첨단 기술, 인간의 오류 가능성, 그리고 탈중앙화 금융의 고위험 환경이 복합적으로 작용한 결과다. 스마트 계약의 불변성, 오픈소스 특성, 그리고 상당한 가치에 대한 직접적인 통제라는 내재적 특성은 이들을 매력적인 표적으로 만든다. 우리는 재진입 및 논리적 오류와 같은 근본적인 스마트 계약 결함부터 오라클 조작과 같은 외부 의존성, 그리고 크로스체인 브릿지의 치명적인 약점에 이르기까지 다양한 계층에서 취약점이 어떻게 나타날 수 있는지 보았다. 디파이 혁신을 정의하는 구성 가능성은 또한 위험을 증폭시켜 개별 취약점을 시스템적 위협으로 전환시킨다. 수십억 달러의 손실과 신뢰의 약화에도 불구하고, 디파이의 약속은 여전히 매력적이다. 무허가적이고 투명하며 효율적인 금융 서비스를 제공하는 능력은 전통적인 시스템이 따라올 수 없다. 그러나 디파이가 주류 채택을 달성하고 혁명적인 잠재력을 실현하려면, 업계는 무엇보다 보안을 최우선으로 해야 한다. 이는 지속적인 보안 연구 개발에 막대한 투자를 하고, 포괄적인 감사와 함께 엄격한 공식 검증 방법을 채택하며, 화이트햇 해커에게 인센티브를 제공하기 위한 활발한 버그 바운티 프로그램을 육성하고, 프라이빗 키 관리 및 프로토콜 거버넌스를 위한 엄격한 운영 보안 관행을 구현하는 다각적인 접근 방식이 필요하다. 개발자와 사용자 모두를 위한 교육은 더욱 보안에 대한 인식이 높은 생태계를 조성하는 데 필수적이다. 개발자는 처음부터 안전한 코딩 관행과 위협 모델링을 받아들여야 하며, 사용자는 디파이 프로토콜과 상호작용할 때 내재된 위험과 필요한 실사를 이해해야 한다. 궁극적으로, 익스플로잇에 대한 지속적인 싸움은 이 기술의 초기 단계를 증명하는 증거다. 악의적인 행위자들의 끊임없이 진화하는 전술로 인해 해킹은 지속적인 위협으로 남을 가능성이 높지만, 업계의 성숙도 증가와 강력한 보안 조치에 대한 약속은 더욱 탄력적이고 신뢰할 수 있는 탈중앙화 금융의 미래를 향한 희망적인 길을 제시한다. *** 면책 조항: 이 글은 정보 및 교육 목적으로만 작성되었으며, 재정, 투자 또는 법률 자문을 구성하지 않습니다. 암호화폐 시장은 변동성이 매우 크고 본질적으로 위험합니다. 독자는 투자 결정을 내리기 전에 자체 조사를 수행하고 자격을 갖춘 전문가와 상담해야 합니다. 필자는 10년 경력의 전문 암호화폐 및 블록체인 연구원이며, 이 내용은 이용 가능한 정보와 산업 지식을 바탕으로 한 필자의 전문적인 의견을 반영합니다.

※ 본 칼럼은 정보 제공을 목적으로 하며, 투자 권유가 아닙니다. 모든 투자 결정은 본인의 판단과 책임 하에 이루어져야 합니다.

Top comments (0)