[Xangle Digest]
※해당 컨텐츠는 외부에서 기발간 된 컨텐츠입니다. 컨텐츠에 대한 추가적인 주의사항은 본문 하단에서 확인해주세요.
목차
I. 들어가며
II. 2023년 3분기 돌아보기
III. 오딧 시장의 현실 (Reality Check)
IV. 개발팀과 유저의 해킹 피해 최소화를 위한 제언
V. 마치며
Appendix
I. 들어가며
2023년 암호화폐 시장은 블랙해커와 화이트해커의 전쟁터라고 볼 수 있을 정도로 수많은 해킹 사건이 발생했다. INF크립토랩은 1,500개 이상의 프로젝트를 감사한(Audit) 세계 최대 스마트컨트랙트 감사 업체 해큰(Hacken)과 함께 2023년의 실제 사례들을 바탕으로 공동 리서치를 발행해 대표적인 해킹 사례, 오딧 시장의 현실, 개발팀과 유저의 해킹 피해를 최소화를 위한 기본 수칙 등 대해서 이야기해보려고 한다.
II. 2023년 3분기 돌아보기
2023년 3분기의 총 해킹 피해 금액은 9,311억원($727m)으로 2분기보다 두배 이상 증가했다. 3분기의 해킹 건수는 117건으로 2분기보다 줄어들었지만 3분기에 가장 큰 피해액을 기록한 멀티체인(Multichain) 브릿지 해킹 사건에서만 무려 2,974억원($231m)의 피해가 발생하며 총 피해 금액을 키웠다.
해킹 피해 사례를 유형별로 나눠보면, 접근 제어 해킹(Access Control Breach)이 가장 심각했다. 겨우 8건의 해킹 사례로 피해 금액이 6,059억원($449m)에 달했기 때문이다. 이는 코드 결함이 아니라 인간의 실수(Human Factor)가 크립토 보안의 가장 큰 취약점이라는 것을 의미한다.
건수 기준으로는 러그풀 피해가 가장 많았다. 2023년 3분기 117건의 해킹 피해 중 약 67%가 러그풀이다. 러그풀로 인한 총 피해 금액은 644억원($49.8m)으로 3위에 그쳤지만, 해커들이 실행하기에 가장 쉬운 해킹 방식이기 때문에 상당히 많은 건수가 발생한 것이다. 반대로 유저 입장에서는 가장 방지하고 피하기 쉬운 해킹이 바로 러그풀이다. 따라서 러그풀에 대한 기본적인 이해와 방지 대책을 숙지하는 것은 필수적이다. 아래에서는 접근 제어 해킹과 러그풀에 대해 조금 더 자세히 알아보겠다.
1. 접근 제어 해킹 (Access Control Breach)
접근 제어 해킹은 큰 금액을 탈취하는 사례가 많다. 접근 제어 해킹이란 해커들이 시드문구나 프라이빗키를 해킹하여 우리가 흔히 부르는 핫월렛, 개인 지갑, EOA(External Owned Accounts)에 대한 통제권을 탈취하면서 시작된다.
해커들이 EOA에 대한 권한을 탈취하고 EOA가 접근 권한을 가진 컨트랙트까지 추가적으로 서명 및 해킹이 가능해지기 때문에 피해가 기하급수적으로 커지는 경우가 다수 존재한다. 다중 서명(Multi-Signature) 혹은 개인 서명으로 관리되는 다양한 브릿지 해킹 사례들이 가장 대표적인 예시다.
사실 이러한 해킹 사례들은 대부분 코드적 결함보다는 인간적 요소(Human Factor) 때문에 발생하는 경우가 많다. 매번 서명이 필요한 컨트랙트 자동화를 위해 프라이빗 키를 불러오는 작업을 간편화하는 과정에서 프라이빗키를 클라우드에 업로드 해둘 때, 키 파일이 클라우드 해킹을 통해 탈취당하거나, 서버가 해킹당하는 등의 이유로 발생한다.
멀티체인과 비슷한 형태로 2023년 9월에 해킹된 믹신 네트워크 (Mixin Network)도 대표 사례이다. 크로스체인 네트워크로 알려진 믹신 네트워크는 프라이빗 키를 보관하고 있던 클라우드 데이터베이스가 해킹되며 약 1,830억원($142m)을 해킹당했다. 2023년 2분기에 발생한 아토믹 지갑(Atomic Wallet) 해킹 사건도 있다. 아토믹 지갑 역시 접근 제어 해킹으로 약 1,480억원($115m)의 피해를 입었다.
다양한 프로젝트들과 브릿지들이 앱 위에서 발생하는 다양한 활동에 프라이빗키 서명 자동화를 필수적으로 요구하기 때문에 클라우드나 서버에 프라이빗키를 평문으로 보관하는 방식이 가장 큰 리스크로 보여진다. 추가로 컨트랙에는 문제가 없지만, 다양한 컴퓨터나 서버들이 기존에 존재하는 Web2 방식의 해킹을 통해 스토리지나 비밀번호가 해킹되었을 경우에도 접근 제어 해킹으로 이어지는 경우가 다수 존재한다.
참고로 키 보관을 위한 프레임 워크는 CCSS: https://cryptoconsortium.org/standards-2/ 에서 확인할 수 있다.
2. 러그풀 (Rug-Pull)
1) 러그풀 패턴
러그풀이 가장 많은 해킹 사례를 기록된 이유는 해킹 방법이 가장 쉽기 때문이다. 특히 밈코인이나 신규 저시총 코인들에서 자주 보여지는 러그풀 현상은 대체로 비슷한 프로세스로 발행하게 된다. 가장 대표적인 패턴은 아래와 같다.
#1: 토큰 공장
해커는 밈토큰이나 악의적인 방법으로 사용할 토큰들을 대규모로 발행하는 토큰 공장을 가동한다. 다양한 이름으로 표기가 될 토큰들을 끊임없이 찍어내는 방법이다. 실제로 이러한 케이스들은 Etherscan에서 쉽게 찾아볼 수 있다.
#2: 유동성 공급
공장에서 발행된 토큰들의 패턴은 매우 유사하다. 토큰이 생성된 이후 탈중앙화거래소(DEX)의 LP 유동성 공급용으로 사용되는 것이다.
#3: 프로모션 및 광고
이후 해당 토큰과 관련된 다양한 광고들이 텔레그램, 트위터, 디스코드 등 채널들로 배포된다. 흔히 ‘밈(meme)’이나 ‘큰 수익의 가능성이 있다’ 등의 문구로 포장이 되어서 확산된다.
#4: 시장 조작
해커들은 며칠에서 몇주간의 트레이딩 기간을 가지며 차트를 조작하고, 프리미엄이 붙은 LP 풀에서 유동성을 회수한다. 이때 해커는 토큰의 추가 발행 등을 통해 유동성에 있던 이더리움과 USDT 등의 자산을 최대한 확보하려 노력한다.
#5: 엑시트
해커는 모든 자산을 탈취한 이후 트위터, 디스코드, 홈페이지 등을 모두 삭제하고 잠적한다.
#6: 시장 붕괴
토큰의 가치는 0에 수렴하는 가격으로 붕괴하게 되며, 가치가 0에 수렴하는 토큰들을 보유한 홀더들, 가치가 0에 수렴하는 토큰으로 가득 찬 유동성 풀만 남게 된다.
2) 보안 감사(Audit)의 부재와 취약점 지적의 외면
프로젝트의 러그풀 가능성을 파악하기 위해서는 제 3자의 컨트랙 보안 감사가 필수적이다. 컨트랙 보안 감사 업체들은 보안 감사 리포트를 통해 토큰을 전반적으로 리뷰하고 취약점들을 파악하여 투자자들에게 이를 고지할 수 있다. 2023년 3분기에 발생한 78건의 러그풀 프로젝트 중 겨우 12개의 프로젝트만이 특정 종류의 보안 감사를 진행한 것으로 파악되었다.
여기서 중요한 부분은 보안 감사를 통해 일부 잠재적인 러그풀을 방지할 수는 있어도 완전한 방지책이 되진 못한다는 점이다. 보안 감사 보고서에서 낮은 점수를 받고 취약점을 지적당한 프로젝트가 많지만, 생태계에 익숙하지 않은 대다수의 유저들이 단순히 보안 감사를 받았다는 이유로 프로젝트가 안전하다고 믿는 경우가 많다.
#1 매그네이츠 파이낸스 (Magnate Finance)의 예시
가장 대표적인 예시가 매그네이츠 파이낸스이다. 보안 감사를 진행한 이력 (https://github.com/MagnateArb/Audits/blob/main/SmartContract_Audit_Solidproof_MagnateProtocol.pdf)이 있었기에 대다수의 유저들이 프로젝트가 안전하다고 믿었다.
하지만 유저들은 보안 감사 리포트 내용을 확인하지 않고 보안 감사를 진행하였다는 사실에만 주목하여 프로젝트를 신뢰하고 계속해서 이용했다. 결국 보안 감사가 진행된 뒤 3개월이 지나고 컨트랙 배포자는 오라클 조작을 통해 다양한 LP 유동성을 다수의 트랜잭션으로 탈취하였다. 이 사건으로 65억원($5m)에 달하는 피해가 발생했으며 다수 언론들이 이 사건을 보도했다.
해큰의 공동 창립자이자 CEO인 디마 부도린(Dyma Budorin)은 러그풀 사건들에 대해 다음과 같이 조언했다.
“많은 사람들이 빠르고 쉽게 돈을 벌기 위해 접근하였기에 몇 가지 간단한 원칙에 지배되어 있다. 가격이 상승하는 토큰을 구매하기 위해 FOMO를 하는 경향, 큰 돈을 위한 욕심, 빠르고 쉽게 돈을 벌겠다는 생각이다.
페페(PEPE)나 시바(SHIBA) 코인과 같은 케이스에서 100달러를 가지고 1000배 이상의 수익을 낸 사람들의 성공 신화는 사실이다. 하지만 모든 사람들이 자신들도 짧은 시간에 막대한 수익률을 달성할 수 있다는 기대에 위험 신호들을 간과하며 투자하고 있다.
사기꾼들은 이러한 경향을 확실히 파악하고 있으며 성공적이었던 프로젝트들을 비슷하게 흉내 내며 유저들에게 접근한다. 가짜 웹사이트, 가짜 트위터 계정 등을 활용해 성공적이었던 프로젝트들을 언급하며 사람들의 FOMO를 자극한다.
암호화폐에 투자하는 것 역시 단순한 클릭 몇 번으로 가능하기에 사람들의 충동적인 결정이 쉽게 투자로 이어진다. 특히 가짜 인플루언서들, 봇들, 가짜 웹페이지들을 통해서 러그풀을 주도하는 것은 노력이 많이 드는 일도 아니기에 러그풀 사건이 빈번하게 일어나고 있다.
따라서 유저들은 다들 자신들이 어떠한 정보를 보고 있는지 그리고 그 정보가 어디에서 왔는지를 파악하는데 각별한 주의가 필요하다.”
III. 오딧 시장의 현실 (Reality Check)
스마트컨트랙트 감사(Audit)가 무조건적인 보안을 보장하는 것은 아니다. 단편적인 예시로 올해 3분기 발생한 117건의 해킹 중 39건은 스마트컨트랙트 감사를 받은 프로젝트에서 발생했다. 그렇다면 스마트컨트랙트 감사를 받았음에도 해킹을 막지 못한 이유는 무엇일까?
#1 오래된 스마트컨트랙트 감사 보고서(Audit)
우선은 너무 오래된 스마트컨트랙트 감사에서 발생하는 문제다. 대표적인 사례로 밸런서(Balancer)가 있다. 밸런서는 2021년 다양한 스마트컨트랙트 감사 업체들에게 감사를 받았지만, 이후 보안 시스템을 업데이트하지 않았고 디파이 시장의 발전과 변화 이후 2023년 3분기 플래시 론 해킹 공격을 당했다. 밸런서는 공격을 받은 유동성 풀에서 자금을 회수하려 했지만, 오래된 보안 시스템들이 무너지며 26억원($2m) 이상의 해킹 피해가 발생했다.
#2 스마트컨트랙트 감사 이후의 변경 사항들
스마트컨트랙트 감사 이후 코드 변경이 생기는 경우 보안 문제를 야기하고, 스마트컨트랙트 감사의 유효성을 떨어뜨린다.
대표 사례로 2023년 7월에 발생한 아카디아 파이낸스(Arcadia Finance) 해킹 사건이 있다. 아카디아 파이낸스는 2023년 3월 2일에 네더민트(Nethermint)에서 보안 감사를 진행하였지만, 감사 이후 이더리움 메인넷과 옵티미즘에 기존에 감사 받은 코드에서 크게 수정된 컨트랙이 배포되었다. 그 결과 5.9억원($455k) 이상의 해킹 피해가 발생했다.
#3 완전하지 않은 보안 감사
보안 감사의 허점 중 하나는 감사 업체들이 실수로 특정 파일들을 보안 감사의 영역에서 누락하는 경우이다. 대표 사례로는 익섹트리 파이낸스(Exactly Finance)가 있다. 13개 이상의 보안 감사 업체에서 감사를 진행했음에도 DebtManager.sol 파일이 감사에서 누락되었고, 결과적으로 이 주변부(Peripheral) 컨트랙이 재진입 공격을 당하면서 93억원($7.2m)의 대규모 해킹 피해가 발생하였다.
#4 간과된 취약점들
아무리 자세히 진행된 보안 감사에서도 가끔씩 취약점들을 놓치는 경우가 존재한다. 이러한 사례들은 감사 업체에게 끊임없는 교육, 전문성 향상, 감사 프로세스 준수 등을 지속적으로 상기시켜주고 있다. 보다 확실한 보안 감사를 위해서는 다수의 전문 감사인(Auditor)을 고용하여 취약점을 파악하는 것이 필수적이다.
IV. 개발팀과 유저의 해킹 피해 최소화를 위한 제언
프로젝트는 평판이 좋은 감사 업체에게 감사를 받는 것이 확률적으로는 가장 안전한 방법일 것이다. 하지만 해킹 피해를 보다 완벽하게 방지하기 위해서는 유저와 프로젝트에서 할 수 있는 최소한의 조치들이 존재한다.
#1 보안 감사(Audit)가 되었는지 확인
다양한 프로젝트들이 보안 감사가 끝난 이후에는 이에 대한 인증을 홈페이지 등을 통해 표시해준다.
보안 감사가 완료되었다고 해서 100% 안전을 보장할 수는 없지만, 다양한 곳에서 보안 감사가 진행되었다는 사실만으로도 보안 감사가 되지 않은 프로젝트 대비 취약점이 발견될 확률이 기하급수적으로 감소한다.
해큰이 파악한 2023년 3분기 117개의 해킹 사례들 중 78건(66.6%)이 보안 감사 자체가 실행되지 않았던 프로젝트에서 발생했으며, 보안 감사가 완료된 프로젝트 중 해킹 피해가 발생한 경우는 단 9건(7.7%)에 불과했다. 물론 다양한 러그풀이 포함된 통계이기에 보안 감사 자체가 모든 해킹에 효과적이라고 볼 순 없지만, 보안 감사가 완료된 프로젝트들과 그렇지 않은 프로젝트들 간 큰 차이가 발생한다는 점은 확실하다.
#2 직접 보안 감사 업체에서 공개한 감사 리포트의 감사 날짜, 코드 일치 여부 확인
보안 감사를 진행한 업체들은 대부분 진행한 감사 리포트를 자신들의 홈페이지에 공개한다.
실제 보안 감사 회사들의 홈페이지에 올라와 있는 감사 리포트를 통해 프로젝트들이 감사를 실제로 받고 로고 디스플레이 등을 통해 감사 완료를 주장하고 있는지, 혹은 감사를 진행한 적도 없지만, 거짓으로 보안 감사를 진행하였다고 이야기하고 있는지 1차적으로 확인이 가능하다.
추가로 리포트를 살펴보게 된다면, 어떤 영역에서 취약점이 있는지 파악이 가능하며, 전반적인 점수로 프로젝트를 평가해주는 보안 감사 업체들 역시 다수 존재한다. 개발 지식이 바탕이 된다면 리포트를 직접 보면서 프로젝트를 평가할 수 있으며, 개발 지식이 존재하지 않는다고 해도 전반적인 점수와 글들을 통해 프로젝트의 안전성에 대한 평가를 내릴 수 있다.
또한 보안 감사 리포트들의 작성 날짜를 토대로 프로젝트들의 보안이 현재도 유효한지 검토해볼 수도 있다. 코드 자체가 변경되지 않은 컨트랙의 경우 대체로 보안 감사의 유효성이 유지되지만, 컨트랙이 수정된 경우에는 보안 감사가 사실상 의미 없어지기 때문에 날짜와 코드베이스가 동일한지 확인해보는 것이 좋다.
해큰과 같은 대형 보안 감사 업체들의 경우 대다수가 현재까지 진행한 모든 보안 감사 내역들, 감사한 날짜들 그리고 보안 감사 리포트 자체를 공개하면서 유저들과 프로젝트들이 이를 확인하고 활용할 수 있도록 제공하고 있다. 보안 감사 리포트가 무척이나 중요한 부분임에도 불구하고, 보안 감사 내역들과 리포트들을 공개하지 않는 감사 업체들도 물론 다수 존재한다.
#3 보안 감사 진행 내역 없이 Bytecode로만 표기되는 컨트랙은 비교적 주의가 필요
배포된 다양한 컨트랙들은 기본적으로 Bytecode 형식으로 익스플로러에서 확인이 가능하다 (ex.Etherscan). Byte 코드 역시 개발자들이 해석하는 게 불가능한 것은 아니지만 상당한 시간과 노력이 필요하다.
반대로 개발자들 및 일반인들이 쉽게 읽고 이해할 수 있는 컨트랙 소스 코드(Contract Source Code)의 경우는 컨트랙 배포와 함께 자동 생성되는 것이 아닌 배포자가 직접 등록하고 Etherscan에서 Bytecode와 맞는지 확인 이후에 Etherscan에 업로드 되는 정보들이다.
물론 컨트랙 소스 코드가 인증되었다고 해서 100% 안전하다고는 절대로 말할 수 없다. 하지만 적어도 바이트코드만을 보여주고 있는 컨트랙보다는 대중과 개발자들이 더 쉽게 리뷰하고 확인 가능한 상태에서 계속해서 해킹 없이 생존하고 있는 컨트랙이라는 점에서 비교적 신뢰도를 더 높게 평가할 수 있다고 판단된다.
반대로 바이트코드만이 컨트랙 배포 과정에서 공개되고 별개의 소스코드는 비공개로 가지고 있는 컨트랙들의 경우 역시 100% 위험하다고는 할 수 없지만, 비교적 적은 개발자들과 일반인들의 검증이 이루어졌고, 소스코드가 인증되어서 공개되어 있는 컨트랙들 보다는 비교적 위험할 확률이 더 있다고 볼 수 있다. 블록체인 산업은 그 투명성과 공개성에 철학을 두고 있으나 이를 지키지 않는 다는 것 자체도 하나의 위험 요소로 인식될 수 있다.
#4 보안 감사 업체들의 내부 프로세스 확인
보안 감사 업체들도 각각의 내부 감사 프로세스에 따라서 안정성과 신뢰의 평가가 극과 극으로 나뉜다. 쉬운 예시로 한 명의 보안 감사 전문가가 하나의 프로젝트를 전부 감사하는 경우, 다수의 전문가들이 팀을 이루어서 감사를 진행하는 경우, 주니어가 단독으로 감사를 진행하고 마무리하는 경우, 툴킷을 이용해서 자동화된 감사 과정을 진행하는 경우 등 그 종류가 무척이나 다양하다.
이에 따라서 보안 감사 업체들의 평판과 신뢰도가 크게 나뉘며, 산업에서 크게 인정받지 못하는 보안 감사 업체 역시 존재하는 것이 현실이다.
가장 이상적인 보안 감사 업체 및 보안 감사는:
1. 경력이 입증된 보안 감사 전문가들이
2. 필요한 툴들을 올바르게 활용하여
3. 개인이 아닌 팀으로
4. 다수의 과정을 걸쳐 완료되는
보안 감사라고 할 수 있다.
이와 비슷한 예시 중 하나가 해큰 (Hacken)의 보안 감사 과정이다. 보안 감사에서부터 팀 리드 리뷰까지 팀 자체가 프로젝트에 매진하여 보안 감사의 완전성과 신뢰도를 높이는 작업을 반복한다.
세계에서 가장 인정받는 보안 감사 업체들 역시 다수의 팀원과 시니어 개발자가 반복되는 작업과 정해진 프로세스에 따라서 보안 감사의 완전성과 신뢰도를 높이는 서비스들을 제공하고 있다.
반대로 내부 보안 감사 과정에서 안정성과 완전성이 부족하다고 평가받는 스마트컨트랙트 보안 감사 업체들 역시 다수 존재하기에 특정 기업들의 보안 감사를 받은 프로젝트들을 조금 더 객관적으로 평가하기 위해서는 다양한 보안 감사 업체들의 내부 프로세스에 대한 이해가 필수적이다.
#5 Rekt 리더보드, Rekt 데이터베이스를 통한 레퍼런스 확인
보안 감사를 완료한 프로젝트들 중에서도 조금 더 안전한 프로젝트들을 찾기 위해서는 프로젝트들이 활용한 보안 감사 업체들의 레퍼런스 확인이 무척이나 중요하다. 추가로 린디 효과(Lindy Effect)를 기반으로, 해킹 없이 오래된 프로젝트들 역시 보안적으로 안전할 확률이 높기에 해킹 피해 없이 얼만큼의 기간이 지났는지 확인하는 것 역시 무척이나 중요하다.
업계 평판을 통해서 이를 개인적으로 판단하는 것 역시 가능하고, 데이터의 도움을 받아 조금 더 확실한 결론을 내릴 때에는 Rekt 리더보드 역시 도움이 된다.
Rekt 리더보드에서는 70개 이상의 대규모 해킹 사건들과 해킹 당한 프로젝트들의 보안 감사를 담당하였던 보안 감사 업체들의 이름이 표기되어 있다. 보안 감사 업체들 역시 완벽하지 않고, 또한 해킹 시점이 보안 감사 이후에 스마트컨트랙트 업그레이드 된 이후, 즉 변경되고 감사 받지 않은 부분에서 해킹이 발생한 경우들도 있기에 무조건적으로 데이터가 맞다고 주장할 수는 없으나 레퍼런스를 위해 참고하는 자료로는 충분히 활용이 가능하다.
추가로 De.Fi의 Rekt 데이터 베이스 역시 다수의 해킹되었던 프로젝트들과 보안 감사를 진행하였던 회사들 그리고 이에 대한 내용들을 공개하고 있다.
V. 마치며
이번 리포트에서는 주요 해킹 유형과 보안 시장, 유저와 프로젝트에 대한 제언을 포괄적으로 다뤄보았다. 스마트컨트랙트 산업은 아직 초창기의 산업이며 그렇기에 수많은 블랙해커와 화이트해커들의 전쟁이 진행되고 있다.
산업이 성장하기 위해서는 올바르고 안전한 보안 감사의 문화, 그리고 다양한 개발자들과 유저들이 쉽게 확인하고 검증할 수 있는 보안 감사 툴들이 계속해서 개발되어야 한다. 크립토 프로젝트들은 다양한 혁신을 이끌고 있지만, 혁신에 뒤따르는 보안적 책임은 혁신의 속도에 맞춰 가지 못하고 있다는 의견도 다수 존재한다.
따라서 업계 주요 관계자들이 다양한 해킹 사례들을 연구하고 일반 유저들의 인식을 개선하기 위해 끊임없이 노력해야 할 것이다. 또한 보안 감사 업체도 지속적인 노력을 통해 크립토 보안 체계 강화에 힘쓸 필요가 있다. 더 빠르고 멋진 혁신과 함께 더 안전한 크립토 생태계가 만들어지길 희망한다.
Appendix. 파트너사 소개
해큰은 Web3를 보다 안전한 곳으로 만들기 위해 노력하는 세계 최대의 블록체인 스마트컨트랙트 보안 감사 업체 중 하나다. 2017년 설립된 이후로 1,200개의 프로젝트의 스마트컨트랙트를 감사하였으며, 2022년 감사한 프로젝트들의 제로 해킹 (zero-exploit)를 달성하였다.
해큰은 150명 이상의 글로벌 인재를 보유한 수직 통합 기업으로서 60명 이상의 인증된 엔지니어와 10명의 CCSSA를 보유하고 있어 블록체인 보안의 모든 수준에서 고품질의 솔루션을 제공한다. 180개 이상의 Web3 프로젝트가 해큰을 신뢰할 수 있는 보안 파트너로 등재하고 있다.