디파이 노리는 ‘플래시론’ 공격, 바이낸스 스마트체인서 더 확산되는 이유는?

박현영 기자 2021.06.04 08:26:21


[디지털데일리 박현영기자] 최근 팬케이크버니, 버거스왑, 벨트파이낸스 등 디파이(De-fi, 탈중앙화 금융) 서비스들이 플래시론 공격을 받아 자금을 탈취당하는 사례가 잇따르고 있다.

공격 대상이 된 디파이 서비스들은 블록체인 플랫폼 ‘바이낸스 스마트체인(BSC)’을 기반으로 하는 경우가 많다. 이에 BSC 기반 서비스들이 더욱 주의를 기울여야 한다는 지적이 제기된다.

◆디파이 위협하는 플래시론 공격은 무엇?

4일 업계에 따르면 지난달 말부터 현재까지 팬케이크버니, 버거스왑, 벨트파이낸스 등 BSC 디파이 서비스들이 잇따라 플래시론 공격을 받았다.

디파이란 블록체인 상 스마트컨트랙트로 구동되는 금융 서비스를 말한다. 거래, 대출 등 금융 서비스의 과정들이 모두 스마트컨트랙트로 자동화돼 이뤄지는 방식이다. 때문에 서비스 내 코드에 보안 취약점이 있을 경우 해킹 등 공격에 취약하다는 단점이 있다.

플래시론 공격은 디파이 서비스들이 가장 흔히 당하는 공격이다. 우선 ‘플래시론(Flash Loan)’이란 블록체인의 블록 1개가 만들어지는 짧은 시간 안에 무담보로 대출을 받고 상환하는 것을 말한다.

일반적으로 디파이 서비스에선 가상자산을 대출하기 위해 다른 가상자산을 담보로 맡겨야 하지만, 플래시론을 이용할 경우 무담보로 대출을 받은 후 즉시 상환하면 된다. 대출을 받는 거래(트랜잭션)를 만들고 이 거래가 블록에 저장되기 전에 상환하는 것이다. 블록에 저장되어 완전한 거래기록으로 남아야 하는데, 완전한 거래가 되기 전에 대출과 상환이 모두 일어나는 것으로 보면 된다.

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

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

팬케이크스왑에서는 중간자의 개입 없이 토큰과 토큰이 맞교환되는 방식으로 거래가 이뤄진다. 대량의 BNB를 USDT로 교환할 경우, BNB가 대량으로 매도되는 셈이므로 팬케이크스왑에서의 BNB 가격이 하락하게 된다. 때문에 또 다른 디파이 서비스인 ‘팬케이크버니’와 팬케이크스왑 간 BNB의 가격 차이가 발생한다.

해커는 팬케이크버니로 가서 나머지 BNB를 BUNNY로 교환하고, 약 700만개의 BUNNY를 획득했다. 그리고 다시 팬케이크스왑에서 대량의 BUNNY를 BNB로 교환함으로써 BUNNY 가격 하락을 유발하고, 다시 BNB를 얻었다. 앞서 언급했듯 팬케이크스왑에서는 BNB 가격이 하락한 상태였으므로 해커는 상대적으로 많은 BNB를 얻게 됐다. 때문에 해커는 빌린 BNB를 다 상환하고도 약 11만 5000개의 BNB를 갖게 됐다. 플래시론 공격을 통해 차익을 얻은 것이다.

◆BSC 기반 디파이 서비스들, 왜 플래시론 공격에 더 취약할까

디파이 서비스들이 플래시론 공격에 끊임없이 노출되는 이유는 무엇일까. 디파이 서비스는 유동성이 적어 가격 조작이 쉽다는 문제점도 있으나, 서비스들 간 스마트컨트랙트를 복사하는 과정에서 발생하는 문제도 있다.

팬케이크버니, 버거스왑, 벨트파이낸스 등을 비롯해 최근 플래시론 공격을 당한 바이낸스 스마트체인(BSC) 디파이 서비스는 8개에 달한다. 기존에는 디파이 서비스 대부분이 이더리움 블록체인을 기반으로 했으나, 최근에는 BSC 기반 서비스들이 늘고 있다. 이더리움에 비해 거래 수수료가 저렴하고 거래 속도도 빠르기 때문이다.

문제는 BSC 기반 서비스들 대부분이 이더리움 기반 서비스의 코드를 참고해 개발됐다는 점이다. 디파이 서비스 대부분은 스마트컨트랙트 코드를 오픈소스로 공개하기 때문에, 다른 서비스를 만들 때에도 공개된 코드를 복사할 수 있다. 전문가들은 코드를 제대로 이해하지 못한 채 서비스를 개발하면서 보안 취약점이 발생한다고 지적했다.

남두완 스테이블노드(Stable Node) 창립자는 “최근에는 이더리움보다 BSC를 기반으로 하는 디파이 서비스들이 플래시론 공격에 취약한 경우가 많다”며 “이더리움 기반 서비스의 코드를 BSC 기반으로 복사하는 과정에서 실수로 코드를 지워버리는 사례도 있었다”고 설명했다.

BSC의 거래 수수료가 이더리움보다 저렴한 만큼, 플래시론에 과도한 비용이 들지 않는 점도 공격 확률을 높였다. 공격을 감행하는 데 진입장벽이 낮으므로 BSC 기반 서비스들을 주로 공격했다는 설명이다.

◆꾸준한 보안감사가 필수…BSC 커뮤니티도 권고

그렇다면 이 같은 공격을 예방할 수 있는 방법은 없을까. 일반적으로 디파이 서비스들은 스마트컨트랙트 보안감사(오딧)를 받음으로써 해킹 등 공격을 예방한다. 플래시론의 경우에도 가격 조작이 쉽게 발생하지 않도록 하는 기능을 넣고, 그에 대안 보안감사를 진행하며 공격을 예방한다.

보안감사를 받은 경우에도 개발 상 코드 변경이 있을 때마다 감사를 받을 필요가 있다. 일례로 지난달 30일 플래시론 공격에 당한 벨트파이낸스의 경우, 출시 때부터 스마트컨트랙트 보안감사를 받았으나 이후 서비스 운영 과정에서 취약점이 발생했다. 이는 BSC 기반 서비스뿐 아니라 모든 블록체인 기반 디파이 서비스가 주의해야 할 점이기도 하다. 벨트파이낸스 측은 “추가 보안감사를 요청해둔 상태”라고 밝혔다.

BSC 커뮤니티도 꾸준히 보안감사를 받을 것을 권고했다. BSC 커뮤니티는 최근 트위터를 통해 “조직화된 해커들이 BSC를 목표로 노리는 것 같다”며 “보안감사 기업들과 협업하라”고 조언했다. 또 다른 서비스의 코드를 복사해 만든 서비스일 경우, 2~3회 더 감사를 진행하라고 권고했다.

이 밖에도 가격 조작을 막으려면 다양한 출처를 통해 가격 정보를 가져와야 한다. 한 마디로 오라클 문제를 예방해야 한다는 지적이다.

오라클 문제란 가격 정보 같은 외부 데이터를 블록체인 상으로 들여올 때 발생하는 정보의 신뢰성 문제를 말한다. 만약 가격 정보를 들여올 때 하나의 출처만 이용한다면, 그만큼 정보가 조작될 여지가 커진다. 최대한 많은 출처를 활용해야 오라클 문제를 막을 수 있다.
현재 체인링크 같은 오라클 솔루션은 플래시론 공격 방지 기능을 추가해둔 상태다. 단일 출처가 아닌 여러 출처를 활용해 데이터를 수집함으로써 오라클 문제를 예방한다. 최근 플래시론 공격을 당한 팬케이크버니 역시 플래시론 공격 재발을 방지하기 위한 수단으로 체인링크의 솔루션을 활용하겠다고 밝혔다.

<박현영기자> hyun@ddaily.co.kr