느린 안개: 2022 블록체인 보안 회고
지난 1년을 돌아보면, 암호화폐 분야에서 많은 새로운 장면, 새로운 응용 프로그램 및 새로운 변화가 나타났습니다. 플레이어도 점차 증가하고 있지만, 보안 문제는 여전히 업계 발전을 괴롭히고 있습니다. 따라서 슬로우미스트는 2022년 업계에서 발생한 주요 보안 사건을 정리하고 이에 대한 분석과 해석을 진행했습니다.
슬로우미스트 해킹 사건 아카이브(SlowMist Hacked) 통계에 따르면, 2022년 보안 사건은 총 295건으로, 손실액은 372억 8천만 달러에 달합니다. 2021년의 979억 5천만 달러에 비해 약 62% 감소했지만, 이는 시장 변동으로 인한 손실 자산은 포함되지 않습니다.
(2022년 보안 사건 통계)
이 중 각 생태계에서 발생한 DeFi, 크로스 체인 브리지, NFT 등의 보안 사건은 245건, 거래소 보안 사건은 10건, 공공 블록체인 보안 사건은 11건, 지갑 보안 사건은 5건, 기타 유형의 보안 사건은 24건입니다.
시간적으로 보면, 5월과 10월에 공격 사건 수가 가장 많아 38건에 달했습니다. 3월에는 손실 금액이 가장 높아 약 7억 달러에 달했습니다.
1. 블록체인 생태계 보안 개요
공공 블록체인
공공 블록체인은 Web3 분야에서 가장 중요한 인프라이며, 업계에서 경쟁이 가장 치열한 트랙 중 하나입니다. 2022년 가장 놀라운 사건은 Terra 사건이었습니다. 5월 8일, 암호화폐 시장에서 역사상 가장 파괴적인 폭락이 발생했습니다. Terra 네트워크의 알고리즘 스테이블코인 UST에서 2억 8천5백만 달러의 대규모 매도가 발생하여 일련의 연쇄 반응을 일으켰습니다. Terra의 네이티브 토큰 LUNA의 가격은 갑작스럽게 예고 없이 연속적으로 폭락하였고, 하루 만에 Luna의 시가총액은 거의 400억 달러가 증발했으며, 전체 생태계 프로젝트의 TVL도 거의 제로에 가까워졌습니다. 이 사건은 아마도 2022년 암호화폐 겨울의 시작 버튼이 되었을 것입니다.
DeFi / 크로스 체인 브리지
DeFi Llama 데이터에 따르면, 12월 말 기준 DeFi의 총 잠금 가치(TVL)는 약 398억 달러로, 전년 대비 75% 급감했습니다. Ethereum은 전체 DeFi TVL의 58.5% (233억 달러)를 차지하며 주도적인 위치를 차지하고 있으며, 그 뒤를 TRON이 43억 달러, BNB 체인이 (BNB) 42억 달러로 따르고 있습니다. 흥미롭게도, 2022년 5월 Ethereum의 TVL은 DeFi에서 35% 감소했으며, TRON의 TVL 비율은 47% 증가했습니다.
SlowMist Hacked 통계에 따르면, 2022년 BNBChain에서 발생한 보안 사건은 약 90건으로, 총 손실 금액은 약 7억 8천5백만 달러로 각 체인 플랫폼 손실 금액 1위를 차지했습니다. Ethereum에서는 약 50건의 보안 사건이 발생했으며, 총 손실 금액은 약 5억 2천8백만 달러로, 그 다음은 Solana에서 발생한 약 11건의 보안 사건으로, 총 손실 금액은 약 1억 9천6백만 달러입니다.
Dune Analytics의 데이터에 따르면, 이더리움 크로스 체인 브리지의 총 잠금 가치(TVL)는 약 83억 9천만 달러로, 상반기 대비 약 31% 감소했습니다. 현재 TVL이 가장 높은 것은 Polygon Bridges(30억 달러)이며, 두 번째는 Arbitrum Bridges(12억 8천만 달러), 그 뒤는 Optimism Bridges(8억 5천만 달러)입니다. 크로스 체인 브리지는 사용자가 암호 자산을 한 체인에서 다른 체인으로 전송할 수 있도록 하여 다중 체인 확장 문제를 해결합니다. 그러나 크로스 체인 브리지의 스마트 계약에 대량의 자금이 포함되어 있고 보안 감사가 부족하여 해커의 주목을 받았습니다.
SlowMist Hacked 통계에 따르면, 2022년 크로스 체인 브리지 보안 사건은 총 15건으로, 손실액은 12억 1천만 달러에 달하며, 이는 2022년 총 손실의 32.45%를 차지합니다.
결론적으로, 프로젝트 측에서는 가능한 한 취약점을 제거하고 보안 위험을 줄이기 위해 효과적인 노력을 기울여야 합니다. 즉, 프로젝트가 출시되기 전에 종합적이고 심층적인 보안 감사를 수행해야 합니다. 또한 각 프로젝트 측에서는 다중 서명 메커니즘을 도입하여 자산 보호를 강화하는 것이 좋습니다. 한편, 각 프로젝트는 프로토콜 간 상호작용이나 다른 프로토콜의 코드를 이식할 때 이식 프로토콜의 구조와 자신의 프로젝트 구조 설계를 충분히 이해하고, 프로토콜 간의 호환성을 잘 유지하여 자금 손실 상황을 방지해야 합니다. 사용자에게는 블록체인 분야의 플레이가 점점 다양해짐에 따라, 투자 전에 프로젝트 배경을 신중히 이해하고 해당 프로젝트가 오픈 소스인지, 감사가 이루어졌는지 확인하며, 프로젝트에 참여할 때 경계를 높이고 프로젝트 위험에 주의해야 합니다.
NFT
NFT는 2022년에 매우 두드러진 성과를 보였으며, NFTScan 데이터에 따르면, 이더리움에서의 NFT 연간 거래 횟수는 1억 9천8백만 회로, 2020년 및 2021년에 비해 현저히 증가했습니다. BNBChain에서의 NFT 연간 거래 횟수는 3억 4천5백만 회, Polygon에서의 NFT 연간 거래 횟수는 7억 9천3백만 회에 달했습니다.
한편, SlowMist Hacked의 불완전한 통계에 따르면, 2022년 NFT 트랙에서 발생한 보안 사건은 약 56건으로, 손실액은 6543만 달러를 초과하며, 이 중 대부분은 피싱 공격으로 인한 것으로, 비율은 약 40% (22건)입니다. 그 다음은 Rug Pull로, 비율은 약 21% (12건)입니다.
지갑 / 거래 플랫폼
2월 8일, 미국 법무부(DOJ)는 2016년 암호화폐 거래소 Bitfinex의 해킹 사건과 관련된 360억 달러의 비트코인을 압수했다고 발표했습니다. 34세의 Ilya Lichtenstein과 그의 31세 아내 Heather Morgan이 뉴욕에서 체포되었으며, 두 사람은 공모하여 돈세탁 및 사기 혐의로 기소되었습니다. 이는 미국 법무부 역사상 최대 규모의 금융 압수 사건입니다.
11월 6일, 바이낸스 창립자 CZ는 모든 남은 FTT를 청산하기로 결정했다고 트윗하며 두 거래소 간의 대립을 촉발했습니다. 알라메다 CEO와 FTX CEO SBF가 연이어 사용자 신뢰를 안정시키고 이전에 공개된 소문을 부인하려고 했지만, 결국 FTX는 유동성 고갈 후 신속하게 파산했습니다. 결국 FTX는 폭락하고 SBF는 체포되었습니다. 중앙화 거래소의 불투명성은 다시 한 번 사람들의 신뢰 위기를 불러일으켰고, 신중한 규제의 부족 문제가 더욱 부각되었습니다. 소비자에 대한 더 엄격한 보호든 기관에 대한 더 명확한 규칙이든, 규제의 발걸음은 점점 더 분명해질 것입니다.
FTX 폭락 이후, 하드웨어 지갑의 판매량이 급증했으며, 사용자 수가 가장 많은 지갑인 MetaMask의 월간 활성 사용자 수는 3000만 명에 달했습니다. Finbold 데이터에 따르면, 상위 21개 암호화폐 저장 APP 애플리케이션을 기반으로, 2022년 1월부터 2022년 10월까지 Android 및 iOS 장치에서의 암호화 지갑 다운로드 수는 약 1억 206만 회에 달했습니다. 이 숫자는 2021년 상승장 기간의 1억 7775만 회 다운로드 수에 비해 낮지만, 2021년을 제외한 어떤 해보다도 높습니다. 월별 세분화 데이터에 따르면, 암호화 지갑 다운로드 수는 연초에 감소세를 보였으나, Terra/Luna 폭락과 FTX 폭락 이후에는 큰 폭으로 증가했습니다.
기타
블록체인 기술의 비가역성과 익명성 특성은 효과적으로 개인 정보를 보호하는 동시에 사이버 범죄에 "보호막"을 제공합니다. 메타버스, NFT 등의 개념이 인기를 끌면서 암호화폐 도난 사건과 사기 사건이 빈번하게 발생하고 있으며, 많은 불법 인사들이 블록체인 깃발을 내걸고 소위 가상 자산을 발행하여 사기를 저지르고 있습니다. 블랙 및 그레이 산업의 발전과 전문성은 이미 상상을 초월하고 있습니다.
중국 인민은행 지급 결제 사무소의 데이터에 따르면, 2021년 사기 자금의 지급 방식 중 암호화폐를 이용한 지급은 은행 송금에 이어 두 번째로 많았으며, 7억 5천만 달러에 달했습니다. 2020년과 2019년에는 각각 1억 3천만 달러, 3천만 달러에 불과했으며, 매년 급격히 증가하는 추세가 뚜렷합니다. 특히 암호화폐 송금은 "살인 판" 사기에서 급속히 증가하고 있습니다. 2021년 "살인 판" 사기 자금 중 1억 3천9백만 달러가 암호화폐로 지급되었으며, 이는 2020년의 5배, 2019년의 25배에 해당합니다.
미국 연방 거래 위원회(FTC)가 발표한 보고서에 따르면, 2021년 초 이후 1년 이상 동안 4만 6천명 이상이 암호화폐 사기를 당했다고 보고했으며, 총 손실액은 10억 달러를 초과했습니다. 보고서에 따르면, 가장 흔한 암호화폐 사기 유형은 투자 관련 사기로, 총 금액 10억 달러 중 5억 7천5백만 달러를 차지하며, 사기꾼에게 가장 많이 지급된 암호화폐는 BTC(70%), USDT(10%), ETH(9%)입니다.
2. 공격 수법
295건의 보안 사건 중 공격 수법은 주로 세 가지로 나눌 수 있습니다: 프로젝트 자체의 설계 결함 및 다양한 계약 취약점으로 인한 공격; Rug Pull, 피싱, 사기 유형의 수법; 개인 키 유출로 인한 자산 손실.
2022년 가장 흔한 공격 수법은 프로젝트 자체의 설계 결함 및 다양한 계약 취약점으로 인한 것으로, 약 92건이 발생하여 10억 6천만 달러의 손실을 초래했으며, 총 사건 수의 40.5%를 차지합니다. 그 중 주요한 것은 플래시 론을 이용한 공격으로, 약 19건이 발생하여 6133만 달러의 손실을 초래했으며, 기타에는 재진입 문제, 가격 조작, 검증 문제 등이 포함됩니다.
개인 키 도난으로 인한 자산 손실 발생률은 약 6%이며, 손실 금액은 7억 4천6백만 달러에 달하며, 계약 취약점 이용에 이어 두 번째로 많습니다. 개인 키 도난 사건 중 가장 큰 손실은 Ronin 사건에서 발생했으며, 그 다음은 Harmony로, 모두 크로스 체인 브리지에서 발생했습니다.
Web3 세계에서 사용자의 보안 인식은 종종 차이가 나며, 이는 사용자에 대한 피싱 공격이 다양하고 빈번하게 발생하는 원인이 됩니다. 예를 들어, 공격자는 악의적인 수단을 사용하여 각 프로젝트의 공식 미디어 플랫폼(예: Discord, Twitter)을 점유하거나 공식 미디어 계정을 위조하여 피싱 Mint, AirDrop 링크를 게시하며, 가끔 진짜 공식 계정의 내용을 전파하여 혼란을 초래합니다. 예를 들어, 검색 엔진의 광고를 이용해 가짜 웹사이트를 홍보하거나 공식 도메인과 매우 유사한 도메인 및 내용을 사용하여 혼란을 주는 경우가 있습니다. 또한, 위조된 이메일이나 매력적인 경품 이벤트를 통해 사용자를 유인하거나, 신규 사용자 정보의 차이를 이용해 가짜 APP 다운로드 링크를 제공하는 경우도 있습니다. 어떤 경우든, 보안 인식을 높이는 것이 가장 필요하며, 만약 자신이 피해를 입었다면 즉시 자산을 이동하고 손실을 방지하며 증거를 보존하고, 필요시 업계 보안 기관의 도움을 요청해야 합니다.
다음으로 가장 혐오스러운 것은 Rug Pull입니다. Rug Pull은 일반적으로 프로젝트 개발자가 프로젝트를 포기하고 자금을 가지고 도망가는 경우를 의미하며, 주로 프로젝트 측의 주도적인 악행입니다. 이는 여러 방식으로 발생할 수 있습니다: 예를 들어, 개발자가 초기 유동성을 시작하고 가격을 올린 후 유동성을 철회하는 경우입니다. 프로젝트 측은 암호 프로젝트를 생성하고 다양한 마케팅 수단을 통해 암호 사용자들의 투자를 유도하며, 적절한 시점에 예고 없이 사용자 투자 자금을 몰래 가져가고 암호 자산을 매각하여 결국 사라지게 됩니다. 또 다른 예로는 웹사이트를 출시하지만 수십만 달러의 예치금이 모인 후에 종료하는 경우입니다. 2022년 Rug Pull 사건은 50건에 달하며, 손실액은 약 1억 8천8백만 달러로, 주로 BSC 생태계 및 NFT 분야에서 발생했습니다.
2022년에는 프론트엔드 악성 공격, DNS 공격 및 BGP 탈취와 같은 새로운 수법도 등장했습니다. 가장 기이한 것은 인위적인 구성 작업 실수로 인한 자산 손실입니다.
3. 피싱/사기 수법
이 섹션에서는 슬로우미스트가 공개한 피싱/사기 수법 중 일부를 선택하여 소개합니다.
브라우저 악성 북마크를 통한 Discord Token 탈취
현재의 브라우저는 모두 내장된 북마크 관리자를 가지고 있으며, 편리함을 제공하는 동시에 공격자에게도 이용될 수 있습니다. 정교하게 구성된 악성 피싱 페이지를 통해 사용자가 저장한 북마크에 JavaScript 코드를 삽입할 수 있습니다. 이 코드를 통해 거의 모든 작업을 수행할 수 있으며, Discord에서 패키징된 webpackChunkdiscord_app 프론트엔드 패키지를 통해 정보를 수집할 수 있습니다. Discord 사용자가 클릭하면, 악성 JavaScript 코드는 사용자가 있는 Discord 도메인 내에서 실행되어 Discord Token을 탈취합니다. 공격자가 프로젝트 측의 Discord Token을 얻으면 프로젝트 측의 Discord 계정 관련 권한을 자동으로 장악할 수 있습니다. 공격자가 Token을 얻는 것은 Discord 계정에 로그인한 것과 같으며, Discord에 로그인할 때와 동일한 모든 작업을 수행할 수 있습니다. 예를 들어, Discord 웹훅 봇을 생성하여 채널에 가짜 공지를 게시하는 등의 피싱을 수행할 수 있습니다. 아래는 피해자가 피싱 북마크를 클릭한 예시입니다:
아래는 공격자가 작성한 JavaScript 코드가 Token 및 개인 정보를 얻은 후, Discord Server의 웹훅을 통해 수신한 예시입니다.
사용자가 웹 버전 Discord에 로그인한 상태에서, 피해자가 피싱 페이지의 안내에 따라 악성 북마크를 추가하고 Discord 웹 버전에서 로그인할 때 해당 북마크를 클릭하면 악성 코드가 실행되어 피해자의 Token 및 개인 정보가 공격자가 설정한 Discord 웹훅을 통해 공격자의 채널로 전송됩니다.
"제로원 구매" NFT 피싱
아래 그림의 피싱 웹사이트에서 서명 내용은 다음과 같습니다.
Maker: 사용자 주소
Taker: 0xde6135b63decc47d5a5d47834a7dd241fe61945a
Exchange: 0x7f268357A8c2552623316e2562D90e642bB538E5 (OpenSea V2 계약 주소)
이는 비교적 일반적인 NFT 피싱 방식으로, 사기꾼이 0 ETH(또는 어떤 토큰)으로 사용자가 승인한 모든 NFT를 구매할 수 있도록 합니다. 즉, 이는 사용자가 NFT 판매 주문에 서명하도록 속이는 것입니다. 사용자가 이 주문에 서명하면 사기꾼은 OpenSea를 통해 사용자의 NFT를 직접 구매할 수 있으며, 구매 가격은 사기꾼이 결정합니다. 즉, 사기꾼은 어떤 자금도 지출하지 않고 사용자의 NFT를 "구매"할 수 있습니다.
또한, 서명 자체는 공격자가 저장하므로 Revoke.Cash 또는 Etherscan과 같은 웹사이트를 통해 서명의 유효성을 취소할 수 없지만, 이전의 주문 승인만 취소할 수 있어 이러한 피싱 위험을 근본적으로 피할 수 있습니다.
Redline Stealer 악성코드에 의한 암호화폐 도난
이 공격은 주로 Discord를 통해 사용자를 새로운 게임 프로젝트의 내부 테스트에 초대하고 "할인 제공" 등의 명목으로 프로그램을 다운로드하도록 유도하는 방식입니다. 일반적으로 압축 파일을 보내고, 압축을 풀면 약 800MB 정도의 exe 파일이 생성됩니다. 사용자가 이 파일을 실행하면, 컴퓨터의 파일을 스캔하고 "Wallet" 등의 키워드가 포함된 파일을 필터링하여 공격자 서버로 업로드하여 암호화폐를 도난하는 목적을 달성합니다.
RedLine Stealer는 2020년 3월에 발견된 악성 트로이 목마 소프트웨어로, 지하 포럼에서 단독으로 판매되고 있습니다. 이 악성 소프트웨어는 브라우저에서 저장된 자격 증명, 자동 완성 데이터 및 신용 카드 등의 정보를 수집합니다. 목표 머신에서 실행될 때, 사용자 이름, 위치 데이터, 하드웨어 구성 및 설치된 보안 소프트웨어 등의 세부 정보를 수집합니다. 최신 버전의 RedLine은 암호화폐 도난 능력을 추가하여, 로컬 컴퓨터에 설치된 디지털 화폐 지갑 정보를 자동으로 스캔하고 원격 제어기로 업로드합니다. 이 악성 소프트웨어는 파일을 업로드하고 다운로드하며, 명령을 실행하고 감염된 컴퓨터에 대한 정보를 정기적으로 발송하는 능력을 가지고 있습니다. 주로 암호화폐 지갑 디렉토리 및 지갑 파일을 스캔합니다:
빈 체크 eth_sign 피싱
지갑을 연결한 후 Claim을 클릭하면 서명 요청 창이 나타나고, 동시에 MetaMask는 빨간 경고를 표시합니다. 그러나 이 팝업만으로는 서명 요청의 내용이 무엇인지 구별할 수 없습니다. 사실 이것은 매우 위험한 서명 유형으로, 기본적으로 이더리움의 "빈 수표"와 같습니다. 이 피싱을 통해 사기꾼은 사용자의 개인 키로 모든 거래에 서명할 수 있습니다.
이 ethsign 방법은 임의의 해시를 서명할 수 있으므로, 서명된 bytes32 데이터에 대해서도 서명할 수 있습니다. 따라서 공격자는 사용자가 DApp에 연결한 후 사용자의 주소를 얻어 계정을 분석하여 임의의 데이터(예: 네이티브 토큰 전송, 계약 호출)를 구성하여 사용자가 ethsign으로 서명하도록 할 수 있습니다.
또한, 사용자가 위의 서명을 거부하면 MetaMask에서 자동으로 또 다른 서명 창이 표시되어 사용자가 주의를 기울이지 못하는 사이에 서명을 속여서 받을 수 있습니다. 서명 내용은 SetApprovalForAll 방법을 사용하며, Approved asset의 목표는 "모든 NFT"로 표시됩니다. 즉, 사용자가 서명하면 사기꾼은 무제한으로 사용자의 모든 NFT를 훔칠 수 있습니다.
이러한 피싱 방식은 사용자에게 매우 혼란스러울 수 있으며, 과거에 우리가 접했던 권한 관련 피싱은 MetaMask에서 공격자가 서명하도록 요구하는 데이터가 직관적으로 표시되었습니다. 그러나 공격자가 eth_sign 방법을 사용하여 사용자가 서명하도록 할 때, MetaMask에서 표시되는 것은 단지 bytes32의 해시일 뿐입니다.
주소 끝자리 동일 + TransferFrom 제로 전송 사기
사용자의 주소 전송 기록에 낯선 주소가 0 USDT를 전송하는 기록이 계속 나타나며, 이 거래는 모두 TransferFrom 함수를 호출하여 완료됩니다. 그 이유는 주로 토큰 계약의 TransferFrom 함수가 전송 금액이 0보다 커야 한다고 강제하지 않기 때문에, 임의의 사용자 계정에서 승인되지 않은 계정으로 0의 거래를 발생시킬 수 있습니다. 악의적인 공격자는 이 조건을 이용하여 체인 상의 활성 사용자에게 TransferFrom 작업을 반복적으로 시도하여 전송 이벤트를 유발합니다.
0 USDT 전송의 괴롭힘 외에도, 공격자는 거래 규모가 크고 빈도가 높은 사용자에게 소량의 토큰(예: 0.01 USDT 또는 0.001 USDT 등)을 지속적으로 에어드롭합니다. 공격자의 주소 끝자리가 사용자 주소 끝자리와 거의 동일하며, 일반적으로 마지막 몇 자리가 같습니다. 사용자가 이전 전송 기록에서 주소를 복사할 때 실수로 잘못 복사하여 자산 손실이 발생할 수 있습니다.
위의 예시는 일부 일반적인 공격 수법과 장면을 보여주는 것일 뿐이며, 실제로는 도가 높으면 마귀도 높다는 말처럼 해커의 공격 수법은 항상 새롭게 발전하고 있습니다. 우리가 할 수 있는 것은 지속적으로 자신의 식견을 높이는 것입니다.
개인 사용자에게는 다음의 보안 법칙 및 원칙을 준수하면 대부분의 위험을 피할 수 있습니다:
두 가지 보안 법칙:
제로 신뢰. 간단히 말해, 의심을 유지하며 항상 의심을 유지하는 것입니다.
지속적인 검증. 당신이 믿으려면, 당신은 의심하는 점을 검증할 수 있는 능력이 있어야 하며, 이러한 능력을 습관으로 만들어야 합니다.
보안 원칙:
네트워크상의 지식은 항상 최소 두 개의 출처 정보를 참조하여 서로 증명해야 하며, 항상 의심을 유지해야 합니다.
격리를 잘 해야 하며, 즉 계란을 한 바구니에 담지 말아야 합니다.
중요한 자산이 있는 지갑은 쉽게 업데이트하지 말고, 필요한 만큼만 사용해야 합니다. 보이는 것이 서명하는 내용입니다. 즉, 당신이 보는 내용은 당신이 서명할 것으로 예상하는 내용이며, 서명 후 결과는 당신이 예상한 것이어야 하며, 절대 사후에 후회하는 일이 없어야 합니다.
시스템 보안 업데이트를 중요시하며, 보안 업데이트가 있을 경우 즉시 조치를 취해야 합니다.
프로그램을 함부로 다운로드하지 말아야 합니다.