Tan Phat Digital의 분석에 따르면 탈중앙화 금융(DeFi)과 탈중앙화 애플리케이션(dApp)의 폭발적인 증가는 금융 자율성에 혁명을 가져왔지만 동시에 사이버 범죄의 새로운 시대를 열었습니다. 2022~2023년 동안 스마트 계약 관련 공격 및 사기로 인한 손실은 수십억 달러에 달했으며, 보고에 따르면 2022년에만 37억 달러에 달하는 손실이 발생했습니다. 오늘날 가장 우려되는 점은 의도하지 않은 기술적 취약점뿐만 아니라 '의도적인 악의적 논리'로 설계된 계약의 증가입니다. 이러한 엔터티는 블록체인의 불변성과 사용자의 기술적 이해 부족을 활용하여 되돌릴 수 있는 메커니즘 없이 자산 유용을 실행합니다. 흔히 간과되는 독성 징후를 식별하려면 이더리움 가상 머신(EVM) 아키텍처, 토큰 표준, 블록 브라우저의 작동 절차에 대한 철저한 이해가 필요합니다.
악성 스마트 계약의 성격과 실행 메커니즘
악성 스마트 계약은 단순한 잘못된 코드 조각 그 이상입니다. 이는 사용자 안전에 대한 가정을 깨뜨리도록 프로그래밍된 금융 상품입니다. 스마트 계약의 핵심 특징 중 하나는 자체 실행되고 제3자와 독립적이라는 것입니다. 즉, 일단 거래가 시작되면 오류가 발생할 경우 사용자의 이익을 보호하기 위해 규제 기관이나 은행이 개입할 수 없습니다. 스마트 계약 사기에는 프로젝트 소유자가 유동성 풀(풀)의 모든 자산을 인출할 수 있도록 허용하거나 사용자가 숨겨진 조건을 통해 자금을 인출하는 것을 방지하는 "백도어" 설치가 포함되는 경우가 많습니다.
자세히 보기: 스마트 계약이란 무엇입니까? 스마트 계약에 대해 알아야 할 사항
허니팟 계약의 재진입 및 왜곡 취약성
재진입은 프로토콜에서 자금을 빼내기 위해 계약 논리를 어떻게 활용할 수 있는지 보여주는 전형적인 예입니다. 이 메커니즘은 계약이 내부 잔액 상태를 업데이트할 시간을 갖기 전에 외부 주소(일반적으로 공격자의 계약)를 호출할 때 발생합니다. 이 시나리오에서 공격자는 폴백 기능을 사용하여 단일 거래에서 피해자의 출금 기능을 여러 번 호출하여 실제 잔액을 초과하는 자금을 인출할 수 있도록 합니다.
이 기술이 "허니팟" 계약에 사용되면 위험이 증가합니다. 사기꾼은 계약을 "해킹"할 목적으로 개발자나 취약점 검색 봇을 유인하여 자금을 예치하기 위해 재진입 버그에 취약해 보이는 계약을 의도적으로 배포합니다. 그러나 허니팟 계약에는 추가적인 확인이나 숨겨진 기능이 포함되어 있어 출금이 사실상 불가능하여 해커 자신이 피해자가 됩니다. 이는 dApp과의 상호작용뿐만 아니라 블록체인에서 겉보기에 "나쁜" 계약을 악용하려는 시도에서도 위험이 발생한다는 것을 보여줍니다.
재진입의 일반적인 유형:
재진입 단일 기능: 첫 번째 실행이 끝나기 전에 반복적으로 다시 호출되는 함수입니다. 이로 인해 잔액 데이터의 무결성이 손상되어 무제한 출금이 가능해집니다.
기능 간 재진입: 공격자는 두 가지 다른 기능을 사용하지만 동일한 상태를 공유합니다. 이 유형은 단일 로직 테스트를 통해 탐지하기가 더 어려우며 전역 상태 분석이 필요합니다.
계약 간 재진입: 한 계약의 상태가 업데이트되지 않은 다른 계약의 상태에 따라 달라질 때 발생하며 종종 복잡한 DeFi 프로토콜에서 시스템 로직 오류를 일으킵니다.
액세스 제어 및 발행 로직 위반
악성코드의 가장 일반적인 징후 중 하나 사용자들이 종종 무시하는 것은 과도한 권한을 가진 관리 기능의 존재입니다. mintUnlimitedTokens(), ownerOnlyWithdraw() 또는 blacklist() 함수의 변형과 같은 함수를 사용하면 계약 소유자가 사용자 자산의 운명을 완전히 제어할 수 있습니다. 실제 사례는 mintFromStake() 함수에 액세스 제어 메커니즘이 부족하여 공격자가 4천만 개가 넘는 새로운 토큰을 발행하고 PancakeSwap에서 유동성을 유출할 수 있었던 DMC 프로젝트의 해킹입니다.
부적절한 액세스 제어는 기술적이거나 겉으로는 무해해 보이는 기능 이름으로 위장하는 경우가 많습니다. 사기꾼은 msg.sender 대신 tx.origin을 사용하여 프록시 피싱 공격을 수행하거나 난독화된 소스 코드 깊숙이 숨겨진 소유자 변경 논리(setOwner)를 사용할 수 있습니다. 사용자는 관리 지갑 주소가 실제로 잠겨 있는지(포기) 또는 전체 공급을 조작할 수 있는 개인 지갑의 손에 있는지 확인하지 않고 반짝이는 사용자 인터페이스만 보는 경우가 많습니다.
참조: 승인 사기는 얼마나 위험하며 왜 그렇게 많은 사람들이 함정에 빠지는가?
토큰 승인 기관 및 정교한 피싱 공격으로 인한 위험
토큰 승인 기관 (토큰 승인)은 DeFi 거래의 중추로서 dApp이 사용자를 대신하여 토큰을 사용할 수 있는 권한을 부여합니다. 그러나 이는 사이버범죄자들이 가장 철저하게 악용하는 '아킬레스건'이기도 하다. 사용자가 분산형 거래소(DEX)와 상호 작용할 때 일반적으로 승인 거래에 서명하라는 메시지가 표시됩니다. 일반적으로 dApp에는 사용자가 이 작업을 다시 수행할 필요가 없고 향후 가스 요금을 절약할 수 있도록 범용 승인 권한(무제한 승인)이 필요합니다.
무제한 승인 메커니즘 및 transferFrom 기능
기술적으로 승인(지출자, 금액) 기능은 특정 계약 주소에 대해 블록체인에 "허용" 값을 기록합니다. 사용자가 최대 값($2^{256} - 1$)으로 승인에 서명하는 경우 dApp은 transferFrom() 기능을 통해 언제든지 사용자 지갑에 있는 해당 토큰의 전체 잔액을 인출할 권리가 있습니다. dApp의 계약이 해킹되거나 dApp 자체가 사기 도구인 경우 위험이 발생합니다. 공격자는 사용자의 개인 키를 보유할 필요가 없습니다. 그들은 단순히 사용자가 이전에 자발적으로 부여한 권한에 따라 이체 주문을 실행합니다.
승인 상태별 위험 분석:
무한 승인 사용자: 허용 값이 지갑 잔액보다 크거나 같으므로 언제든지
transferFrom기능이 성공적으로 실행될 수 있으므로 전체 토큰 잔액을 영원히 잃을 위험에 직면합니다.사용자 승인 한도: 일정량의 승인된 토큰만 가져옵니다.
transferFrom기능은 특정 서명 허용 값에 의해 차단됩니다.사용자는 지갑만 연결합니다: 이 상태는 안전하며 블록체인에 기록된
approve거래가 없기 때문에 자산이 손실되지 않으며transferFrom명령이 되돌려집니다(취소).
피싱 동향 및 베트남 남의 악성 서명
베트남에서는 승인 계층을 우회하는 사기 형태가 "사기 에어드롭" 또는 "가짜 기술 지원"이라는 이름으로 극도로 인기를 얻고 있습니다. 사기꾼은 가짜 웹사이트 링크가 포함된 이상한 토큰을 사용자의 지갑으로 보냅니다. 사용자가 보상에 액세스하여 "청구"하려고 시도하면 승인 요청에 서명하거나 허가 서명(EIP-712)을 하도록 유도됩니다. 허가 서명은 사용자가 그 순간 온체인 거래를 하지 않고도 토큰 액세스를 승인할 수 있도록 허용하여 피해자가 가스비가 차감되고 보안에 주관적이라는 사실을 인식하지 못하게 하기 때문에 특히 위험합니다.
또한 로맨스 및 투자 사기의 한 형태인 "돼지 도살"도 악성 스마트 계약을 활용하여 피해자의 자금을 잠급니다. 피해자는 가짜 거래 플랫폼에 자금을 입금하라는 지시를 받습니다. 여기서 실제 자금은 숨겨진 철회 권리가 설정된 계약을 통해 사기꾼의 지갑으로 직접 이체됩니다.
난독화 및 프록시: 악성 계약 클로킹 기술
자동 검색 도구 및 보안 분석가의 탐지를 피하기 위해 공격자는 코드 난독화 기술(난독화)과 복잡한 프록시 구조를 사용하는 경우가 많습니다. 오해의 소지가 있는 함수 이름을 사용하는 것이 일반적인 전술입니다. 예를 들어 본질적으로 자금이 비어 있지만(rugPull) 이름이 safeWithdraw() 또는 emergencyRefund()인 함수입니다.
Delegatecall 및 계약 업그레이드 위험
프록시 모델을 사용하면 하나의 계약(프록시)이 delegatecall 명령을 통해 실행 로직을 다른 계약(구현)에 전달할 수 있습니다. 중요한 점은 delegatecall 명령이 대상 계약의 소스 코드를 실행하지만 호출 계약의 저장 공간을 사용한다는 것입니다. 이를 통해 프로젝트 소유자는 언제든지 논리적 계약 주소를 변경할 수 있습니다. 프로젝트는 초기 감사를 통과하기 위해 완전히 깨끗한 계약으로 시작할 수 있지만 사용자 자금을 갈취하기 위해 악성 버전으로 "업그레이드"할 수 있습니다.
공격자는 또한 프록시 구조의 저장소 충돌을 악용하여 소유자 주소(owner) 또는 트랜잭션 제어 플래그와 같은 중요한 변수를 변경할 수도 있습니다. 이러한 취약점은 Etherscan과 같은 블록 브라우저에서는 직접적인 악성 논리가 포함되지 않은 프록시 주소와의 상호 작용만 볼 수 있기 때문에 일반 사용자가 감지하기 어려운 경우가 많습니다.
악성 스마트 계약 테스트 및 식별 프로세스
Tan Phat Digital은 사용자가 표면 정보에 의존하는 것이 아니라 온체인 데이터에 깊이 들어가 다층 테스트 프로세스를 수행할 것을 권장합니다. 소스 코드의 진위 여부를 확인하는 것이 첫 번째이자 가장 중요한 단계입니다. Etherscan 또는 BscScan에서 검증된 계약에는 녹색 체크 아이콘이 표시되어 커뮤니티가 실제 소스 코드를 검토할 수 있습니다.
유동성 잠금 분석
유동성은 사용자가 토큰을 판매할 수 있는지 여부를 결정하는 요소입니다. 악의적인 프로젝트는 일반적으로 거래 풀에서 유동성을 빼내는 "Rug Pull"을 수행합니다. 사용자는 다음 단계에 따라 블록 브라우저에서 수동 검사를 수행할 수 있습니다.
블록 브라우저에서 해당 토큰의 Token Tracker 페이지로 이동합니다.
초기 유동성 예금 거래를 검색하고 LP(유동성 공급자) 토큰 수신 주소를 확인합니다.
LP 토큰이 "소각" 주소 또는 평판이 좋은 잠금 계약으로 전송되었는지 확인합니다. Credit.
일반적인 유동성 잠금 방법:
주소 소각: LP 토큰을
dEaD로 끝나는 주소로 전송하세요. 누구도 소각된 자산을 인출할 수 없기 때문에 절대적인 신뢰 수준입니다.Unicrypt / PinkSale 플랫폼: 잠금 기간이 있는 중개 스마트 계약을 사용합니다. 높은 신뢰도, 잠금 해제 시간은 플랫폼 웹사이트에서 공개적으로 확인할 수 있습니다.
Dev Wallet(잠금 해제): LP 토큰은 프로그래머의 지갑에 직접 보관됩니다. 신뢰 수준은 매우 낮기 때문에 프로젝트 소유자는 Rug Pull을 수행하기 위해 언제든지 자금을 인출할 수 있습니다.
감사 및 KYC 보고서 평가
프로젝트가 CertiK 또는 Hacken과 같은 부서에서 감사를 받았다고 주장한다고 해서 그것이 완전히 안전하다는 의미는 아닙니다. 사용자는 감사회사의 웹사이트에서 해당 보고서의 진위 여부를 직접 확인해야 합니다. 실제 감사 보고서는 활성 계약 주소 및 GitHub의 소스 코드 커밋과 일치해야 합니다. 사기의 일반적인 징후로는 오타, 일관되지 않은 디자인 또는 감사자의 공식 리더보드 페이지 대신 개인 GitHub 페이지에 대한 링크 등이 있습니다.
선제적 방어 도구 및 전략
Revoke.cash 및 Rabby Wallet으로 승인 권한 관리
토큰 승인을 정기적으로 확인하고 취소하는 것은 필수적인 보안 습관입니다. Revoke.cash는 사용자가 승인한 모든 dApp 목록을 보고 "해지"를 수행하거나 승인 제한을 안전한 수준으로 업데이트할 수 있는 최고의 도구입니다. 한편 Rabby Wallet은 검증되지 않은 계약에 대한 승인이 필요하거나 악의적인 징후가 보이는 경우 빨간색 알림을 표시하는 위험 경고 기능이 내장되어 있어 안전한 지갑으로 간주됩니다.
Disconnect와 Revoke를 구별
흔히 저지르는 실수는 dApp에서 지갑 연결을 해제하면 자산이 보호될 것이라고 믿는 것입니다. 그러나:
연결 해제: 웹사이트에서 지갑 주소와 잔액을 볼 수 있는 권한만 취소합니다. 블록체인에 기록된 승인 권한에는 영향을 미치지 않습니다.
취소: dApp의 토큰 사용 권한을 제거하는 진정한 블록체인 거래입니다. 이는 악의적인 계약이
transferFrom명령을 통해 지갑에서 자금을 인출하는 것을 방지할 수 있는 유일한 조치입니다.
자산 구조 및 화이트햇 구조
지갑이 "Sweeper Bot"에 의해 손상되면 봇이 로드되자마자 자동으로 가스 비용을 빼내기 때문에 남은 자산을 인출하는 것이 극도로 어려워집니다.
도구 복구 및 주요 메커니즘:
Flashbots: 폐쇄형 번들 거래 메커니즘을 사용하고 공개 멤풀을 통과하지 않습니다. index.js 및 개인 키를 구성하려면 기술적 지식이 필요합니다.
해킹된 지갑 복구: 자동 번들 생성을 지원하는 인터페이스를 제공합니다. 트랜잭션이 공용 네트워크에 노출되는 것을 방지하려면 사용자는 특수 RPC로 전환해야 합니다.
Revoke.cash(Exploit Checker): 해당 지갑이 해킹된 dApp 목록에 있는지 확인하세요. 이 도구는 이체된 자금을 저장하지 않고 예방 및 취소 효과만 있습니다.
스마트 계약 보안에 대한 10가지 자주 묻는 질문(FAQ)
dApp에서 지갑 연결을 해제하는 것만으로도 충분히 안전한가요? 아니요. 연결 해제는 웹사이트에서 지갑 잔액을 확인하는 것만 방지합니다. 승인 권한은 블록체인에 남아 있으므로 악의적인 계약이 언제든지
transferFrom명령을 통해 자금을 인출할 수 있습니다. 자산에 대한 액세스를 실제로 취소하려면 취소 명령을 실행해야 합니다.프로젝트의 유동성이 실제로 잠겨 있는지 어떻게 알 수 있나요? 블록 브라우저(Etherscan/BscScan)를 확인해야 합니다. 유동성 토큰(LP 토큰)이 소각 주소(
0x...dEaD) 또는 Unicrypt, PinkSale과 같은 평판이 좋은 잠금 계약으로 6~12개월 이상의 기간으로 전송되면 안전한 것으로 간주됩니다.dApp이 종종 무제한 "승인" 권한을 요청하는 이유는 무엇입니까? dApp은 향후 거래에서 사용자에게 편의성을 제공하고 가스 요금을 절약하기 위해 최대 권한(2256−1)을 요청합니다. 그러나 해당 계약에 악성 코드가 있는 경우 해커는 추가 주문에 서명하지 않고도 지갑에 있는 모든 토큰을 빼낼 수 있습니다.
"허니팟" 계약이란 무엇이며 어떻게 식별합니까? 허니팟은 토큰을 구매할 수 있지만 판매를 방지하는 코드를 설치하는 일종의 계약입니다. Dexscreener를 확인하면 이를 확인할 수 있습니다. 차트에 매수 주문(파란색)만 있고 매도 주문(빨간색)이 없으면 확실히 함정입니다.
내 지갑에 "Sweeper Bot"이 있는 것을 발견하면 어떻게 해야 합니까? 봇이 즉시 돈을 인출하므로 해당 지갑에 돈을 더 추가하지 마십시오. 유일한 해결책은 Flashbots 또는 해킹된 지갑 복구와 같은 도구를 사용하여 봇이 반응하기 전에 자산을 "훔치는" 폐쇄된 거래 번들을 생성하는 것입니다.
감사 보고서는 프로젝트가 완전히 해킹되지 않도록 보장합니까? 아니요. 감사는 특정 시점의 평가일 뿐입니다. 프로젝트는 나중에 프록시 모델을 통해 논리를 변경할 수 있으며, 그렇지 않으면 해커가 감사자가 놓친 오류를 악용할 수 있습니다.
"허가"(EIP-712) 서명은 얼마나 위험한가요? 이것은 "오프라인" 서명 유형이며 가스 비용이 들지 않지만 승인 명령과 동일한 값을 갖습니다. 해커는 피해자가 모르는 사이에 자산을 제어하기 위해 가짜 Airdrop 웹사이트를 통해 사용자를 속여 Permit에 서명하도록 유도하는 경우가 많습니다.
KYC 또는 감사 보고서의 진위 여부를 확인하는 방법은 무엇입니까? 발행자의 웹사이트(예: CertiK Leaderboard)를 직접 방문하여 프로젝트 이름을 검색해야 합니다. 프로젝트 자체에서 제공하는 스크린샷이나 PDF 링크는 쉽게 편집할 수 있으므로 절대 신뢰하지 마세요.
암호화폐 외에 어떤 유형의 '계약 사기'가 인기가 있나요? 일반적인 형태에는 집수리 계약 사기(큰 보증금을 요구한 후 사라지는)와 전화 계약 사기(고가의 요금제에 가입하기 위해 네트워크 사업자를 사칭하여 개인 정보를 얻는 것)가 있습니다.
악의적인 계약에 의해 지갑에서 돈이 인출된 후 돌려받을 수 있습니다. 아니요? 블록체인의 불변적이고 분산된 특성으로 인해 한 번 이루어진 거래는 되돌릴 수 없습니다. 유일한 기회는 도둑이 돈을 이체할 경우 자산을 차단할 수 있도록 중앙화 거래소(CEX)에 신고하는 것입니다.
악성 스마트 계약의 진화는 블록체인 기술이 복잡해질수록 논리적 결함이 더욱 예측 불가능해진다는 것을 보여줍니다. Web3 보안의 미래는 "지속적인 보안" 모델과 실시간 모니터링으로 전환될 것입니다. Tan Phat Digital의 전문가에 따르면 승인 권한 관리 및 자체 검사 기능(DYOR)에 대한 사용자 인식이 높아지는 것이 사이버 범죄자에게 가장 큰 장벽이 될 것입니다. 안전은 깔끔한 코드 라인뿐만 아니라 보안 기술과 시장에 참여하는 각 개인의 경각심의 결합에서 비롯됩니다.
공유








