침해사고/위협동향

[주간 블록체인] 웜홀‧클레이스왑도 당했다?…‘디파이 해킹’의 거의 모든 것

박현영


[디지털데일리 박현영기자] 한 주간 블록체인‧가상자산 업계 소식을 소개하는 ‘주간 블록체인’입니다.

이번주는 탈중앙화 금융(De-fi, 디파이) 서비스들의 수난시대였습니다. 우선 솔라나의 브릿지 솔루션 ‘웜홀(Wormhole)’이 무려 3900억원치 가상자산을 탈취당했습니다. 올해 들어 발생한 디파이 해킹 피해 규모 중엔 가장 크고, 지금까지 발생한 디파이 피해 규모 중에서도 두 번째로 큽니다.

국내 디파이 서비스도 예외는 아니었습니다. 국내 디파이 프로젝트 중 가장 대중적으로 많이 알려져있는 ‘클레이스왑(Klay)’이 해킹을 당했는데요. 탈취당한 가상자산은 약 22억원어치입니다.

솔라나 웜홀에 비해선 피해 규모가 작지만, 클레이스왑은 카카오의 퍼블릭 블록체인 플랫폼 ‘클레이튼’을 기반으로 하는 디파이 서비스 중 가장 유명합니다. 클레이튼의 기축통화 클레이(KLAY)에 투자한 투자자들이 많은 만큼, 클레이스왑을 사용하는 국내 투자자들도 그만큼 많습니다. 때문에 국내에서는 어느 정도 파장이 일 것으로 보입니다.

디파이 서비스들은 유독 해킹에 취약한 경우가 많죠. 디파이 서비스들이 발전하면서 그에 맞춰 해킹 수법도 다양화되고 있는데요.

이번주 <주간 블록체인>에서는 디파이가 해킹에 취약한 이유와 함께 이번 웜홀 및 클레이스왑 해킹에 쓰인 수법을 알아보겠습니다. 또 해킹 수법이 어떻게 다양화되고 있는지, 디파이 사용자들은 무엇을 눈여겨봐야 하는지 함께 살펴보겠습니다.

◆디파이, 왜 유독 해킹에 취약할까

디파이는 블록체인 상 스마트컨트랙트로 구동되는 금융 서비스를 말합니다. 가상자산을 거래하거나 예치해서 이자를 받는 일련의 과정들이 모두 스마트컨트랙트에 의해 자동으로 이루어지는 것이죠. 탈중앙화거래소(DEX)나 대출, 즉 랜딩(Lending) 서비스 등은 모두 디파이의 한 종류입니다.

스마트컨트랙트를 기반으로 하므로 디파이 서비스에선 사용자의 신용도를 검증할 필요가 없습니다. 또 중개기관이 없는 만큼 가상자산을 예치할 경우 더욱 높은 이자율을 보장합니다. 중개기관에게 가던 비용이 사용자에게 갈 수 있기 때문입니다. 이자율도 특정 기업이나 플랫폼이 결정하는 게 아니라 사용자들이 얼마나, 어떻게 이용하는지에 따라 자동으로 조절됩니다.

이 같은 장점 덕분에 지난 2020년부터 디파이 시장은 폭발적으로 성장했습니다. 이더리움, 솔라나, 테라 같은 블록체인 플랫폼 프로젝트의 경우, 해당 플랫폼을 기반으로 하는 디파이 예치금 규모가 프로젝트의 성패를 좌우하기도 했고요.

그러나 세상에 장점만 있는 건 존재하지 않나 봅니다. 스마트컨트랙트로 구동되는 것은 장점이자 단점이기도 했습니다.

스마트컨트랙트, 즉 코드로 구동되는 것이므로 코드에 보안 취약점이 있으면 해킹의 대상이 되기 쉬웠던 것입니다. 금융 서비스인 만큼 항상 돈이 몰려있으니 취약점을 발견해 공격하면 얼마든지 자금도 빼낼 수 있는 것이죠.

또 디파이 서비스들은 ‘탈중앙화’를 지향하는 만큼 개발 코드를 오픈소스로 깃허브에 공개하는 경우가 많습니다.

때문에 다른 서비스의 코드를 참고해 새로운 디파이 서비스들을 만들어내는 경우가 많은데요. 이 과정에서 보안 취약점이 생길 때가 많습니다. 다른 서비스의 코드를 새로운 서비스로 복사해오는 과정에서 검수를 제대로 하지 않으면 취약점이 생길 수 있는 것입니다. 디파이 서비스들의 코드를 잘 알고 있는 해커라면 이런 취약점을 이용하기 용이하겠죠.

이 밖에도 디파이 서비스 중 탈중앙화거래소(DEX)는 대형화된 중앙화 거래소에 비해 거래량, 즉 유동성이 부족한 경우가 많습니다. 유동성이 부족한 만큼 가격 조작을 하기도 쉽죠. 보안 취약점을 이용해 해킹을 한 다음, 해킹으로 취득한 물량으로 가격 조작을 해서 더 많은 금액을 탈취하는 사례도 많습니다.

◆디파이 해킹의 대표주자, 플래시론 공격

이처럼 디파이는 해킹의 대상이 되기 쉬운데요. 문제는 디파이 서비스들이 점차 발전하면서 해킹 수법도 다양화되고 있다는 것입니다.

예전에는 디파이 해킹 대부분이 ‘플래시론 공격’을 통해 이뤄졌습니다. ‘플래시론(Flash Loan)’이란 블록체인의 블록 1개가 만들어지는 짧은 시간 안에 무담보로 대출을 받고 상환하는 것을 말합니다.

디파이 서비스 중 대부분이 가상자산을 담보로 또 다른 가상자산을 대출하는 형태가 많은데요. 플래시론을 이용할 경우 무담보로 대출을 받은 후 즉시 상환하면 됩니다. 대출을 받는 거래(트랜잭션)를 만들고 이 거래가 블록에 저장되기 전에 상환하는 것입니다. 블록에 저장되어 완전한 거래기록으로 남아야 하는데, 완전한 거래가 되기 전에 대출과 상환이 모두 일어나는 것으로 보면 됩니다.

플래시론 공격은 말 그대로 플래시론을 이용한 공격인데요. 해커는 플래시론을 통해 가상자산을 대출받은 후, 대출받은 금액을 이용해 디파이 서비스에서 가격을 조작할 수 있습니다. 이후 대출받은 금액을 상환하고 중간 과정에서 일으킨 가격 조작을 통해 차익을 얻는 방식입니다.

지난해 플래시론 공격을 받은 디파이 서비스 팬케이크버니를 예로 들면, 해커는 디파이 서비스 ‘팬케이크스왑’에서 먼저 대량의 바이낸스코인(BNB)을 빌렸습니다. 이후 팬케이크스왑에서 빌린 BNB 중 일부를 스테이블코인인 테더(USDT)로 맞교환했습니다.

팬케이크스왑에서는 중간자의 개입 없이 토큰과 토큰이 맞교환되는 방식으로 거래가 이뤄집니다. 대량의 BNB를 USDT로 교환할 경우, BNB가 대량으로 매도되는 셈이므로 팬케이크스왑에서의 BNB 가격이 하락하게 되겠죠. 때문에 또 다른 디파이 서비스인 ‘팬케이크버니’와 팬케이크스왑 간 BNB의 가격 차이가 발생합니다. 이 가격 차이를 이용해 해커는 차익을 얻었습니다.
해커가 플래시론 공격으로 차익을 얻는 과정./출처=체인링크 미디엄 블로그 (Chainlink Medium)
해커가 플래시론 공격으로 차익을 얻는 과정./출처=체인링크 미디엄 블로그 (Chainlink Medium)
이 같은 플래시론 공격은 팬케이크버니뿐 아니라 버거스왑, 벨트파이낸스 등 다른 디파이 서비스 해킹에도 쓰였는데요. 이번 웜홀 해킹에 쓰인 방식은 좀 달랐습니다. 웜홀 자체가 좀 더 발전된 형태의 디파이 솔루션이기 때문입니다.

◆진화한 디파이 솔루션 ‘브릿지’…해킹 수법도 브릿지 이용

웜홀은 서로 다른 블록체인 플랫폼을 연결하는 브릿지 솔루션입니다. 2020년만 해도 디파이 자금 대부분이 이더리움 블록체인에 쏠려 있었고, 이에 솔라나나 아발란체 같은 플랫폼 프로젝트들은 브릿지 솔루션을 출시해 이더리움에 몰린 자금을 끌어오기 시작했습니다.

솔라나가 선보인 웜홀은 이더리움 블록체인은 물론 바이낸스스마트체인, 테라 등 다른 블록체인 플랫폼 상 자산이 솔라나 블록체인 상으로 오고 갈 수 있게 하는 브릿지 역할을 맡았습니다. 웜홀 덕에 솔라나 블록체인 상 디파이 예치금 규모가 큰 폭으로 늘기도 했죠.
'웜홀' 모식도./출처=웜홀 깃허브
'웜홀' 모식도./출처=웜홀 깃허브
해커는 이 ‘브릿지’가 가진 장점을 이용했습니다. 웜홀 해킹에 쓰인 수법을 이해혀려면 먼저 ‘래핑(Wrapping)’ 코인을 알아야 하는데요.

래핑은 ‘포장하다(Wrap)’에서 비롯된 말로, 다른 블록체인 플랫폼을 기반으로 하는 가상자산을 포장해오는 것을 말합니다. 솔라나 블록체인 상에서 발행된 ‘WETH’는 이더리움(ETH)과 같은 가치를 지니는 것으로, 이더리움 블록체인 상에 존재하는 ‘ETH’를 포장해온 형태입니다. 원래 이더리움(ETH)은 이더리움 블록체인 상에 존재하기 때문에, 솔라나 블록체인 상에서도 ETH를 쓰기 위해 이런 이런 ‘래핑 코인’들을 만들어낸 것입니다.

해커는 솔라나 블록체인 상에서 12만WETH를 발행한 후, 그 중 9만 3750WETH를 웜홀의 브릿지 기술을 활용해 이더리움 블록체인 상으로 옮긴 다음 진짜 이더리움(ETH)으로 인출했습니다.

웜홀은 ‘가디언(Guardian)’이라고 불리는 노드(네트워크 참여자)들에 의해 운영되는데요. 이 가디언들은 토큰 발행, 거래 등 블록체인 상에서 일어나는 ‘메시지’들을 모니터링하고 정당한 메시지일 경우 서명합니다. 가디언 다수가 서명하면 온전한 거래로 처리되는 방식입니다.

웜홀 측이 트위터를 통해 밝힌 바에 따르면, 웜홀의 서명 검증 과정에는 보안 취약점이 존재했습니다. 해커는 이 취약점을 이용해 ‘메시지’를 위조했고, 12만WETH를 발행하는 게 정당한 거래처럼 보이게 함으로써 엄청난 물량의 WETH를 발행했던 것입니다. 이후 브릿지 솔루션을 활용해 WETH를 이더리움 블록체인으로 옮기고 원조 이더리움(ETH)으로 바꿔 인출한 것이죠.

정리하자면 브릿지 솔루션 자체는 디파이 사용자들의 편리함을 높여주는 고도화된 기술인데요. 해킹 수법 역시 이 고도화된 기술을 활용하는 방식으로 발전한 것입니다.

클레이스왑의 사례는 좀 다릅니다. 디파이 서비스의 보안 취약점을 활용한 게 아니라, 클레이스왑 사이트의 SDK 파일을 감염시킨 방법입니다. 구체적으로는 해커가 클레이스왑에 로딩되는 카카오 SDK 스크립트를 변경, 자신의 코드가 실행되도록 악성코드를 제작했습니다. 때문에 사용자가 클레이스왑에서 거래를 실행하면 클레이스왑이 아니라 공격자의 가상자산 지갑 주소로 자산이 직접 전송됐습니다.

대부분 디파이 해킹은 서비스의 코드, 즉 스마트컨트랙트에 결함이 있어서 발생하는데요. 클레이스왑은 이런 경우가 아니었습니다. 다만 디파이 자체가 해킹 대상으로 많이 인식되다 보니 사이트도 공격 대상이 된 것으로 보입니다. 클레이스왑 측은 현재 한국인터넷진흥원(KISA)에 해킹 신고를 했으며, 보상안을 마련 중입니다.

◆결국 답은 예방뿐…스마트컨트랙트 오딧‧버그바운티 등 살펴봐야

디파이 사고가 발생할 때마다 강조되는 건 ‘오딧(Audit)’이라 불리는 스마트컨트랙트 보안감사입니다. 이런 오딧을 전문적으로 하는 보안 기업들이 있는데요. 해당 기업들을 통해 코드에 문제가 없는지 검수를 받아야 한다는 것입니다.

특히 다른 디파이 서비스의 코드를 참고해 새로운 서비스를 만들었다면 더욱 꼼꼼히 감사를 받아야 합니다.

플래시론 공격의 경우, 바이낸스스마트체인(BSC)을 기반으로 하는 디파이 서비스들을 대상으로 감행된 경우가 많았는데요. 이는 BSC 기반 디파이 서비스 대부분이 이더리움 블록체인 기반의 서비스들을 참고해 개발됐기 때문이었습니다. 서비스 코드를 제대로 이해하지 못한 채 복사해오면서 취약점들이 발생한 경우였죠. 이에 BSC 커뮤니티도 “조직화된 해커들이 BSC 기반 서비스를 노린다. 보안감사 기업들과 협업하라”고 권고하기도 했습니다.

또 감사를 받았다고 하더라도, 코드의 변경이 있을 때마다 감사를 받는 것도 중요합니다. 일례로 지난해 플래시론 공격에 당한 벨트파이낸스의 경우, 출시 때부터 스마트컨트랙트 보안감사를 받았으나 이후 서비스 운영 과정에서 취약점이 발생해 해킹 당한 바 있습니다.

디파이 사용자들은 사용하는 서비스가 얼마나 꼼꼼히, 또 얼마나 자주 보안감사를 받는지 살펴볼 필요가 있습니다. 해킹 가능성이 ‘제로(0)’인 서비스는 존재할 수 없기 때문에 예방에 최선을 다하는 게 우선이겠죠. 스마트컨트랙트는 가장 대표적인 예방책입니다.
해킹 당한 후 보안 정책을 보완하겠다고 밝힌 웜홀./출처=웜홀 트위터
해킹 당한 후 보안 정책을 보완하겠다고 밝힌 웜홀./출처=웜홀 트위터
해킹을 당한 서비스들은 감사를 더 자주 받겠다는 계획을 내놓고 있습니다. 웜홀 측은 “여러 보안감사 기업들을 활용해 여러 번 감사를 받겠다”고 밝혔습니다. 또 웜홀은 350만달러(한화 약 42억원) 규모 버그바운티 프로그램도 운영한다고 밝혔습니다.

버그바운티 프로그램이란 보안 취약점을 발견한 사람에게 포상금을 주는 프로그램을 말합니다. 보안감사, 버그바운티 등 보안 취약점을 최대한 없애고 해킹을 예방할 수 있는 제도를 얼마나 많이 마련하는지가 향후 디파이 업계에서 더욱 중요해질 전망입니다.


박현영
webmaster@ddaily.co.kr
기자의 전체기사 보기 기자의 전체기사 보기
디지털데일리가 직접 편집한 뉴스 채널