QR 코드를 스캔하여 다운로드하세요.
BTC $75,614.77 -0.60%
ETH $2,329.44 -1.07%
BNB $622.66 -1.69%
XRP $1.43 -0.38%
SOL $85.61 -1.34%
TRX $0.3298 +0.57%
DOGE $0.0946 -1.31%
ADA $0.2475 -1.43%
BCH $441.18 -0.95%
LINK $9.22 -1.93%
HYPE $43.42 -2.10%
AAVE $91.66 -17.70%
SUI $0.9549 -0.80%
XLM $0.1701 +0.73%
ZEC $331.30 +2.42%
BTC $75,614.77 -0.60%
ETH $2,329.44 -1.07%
BNB $622.66 -1.69%
XRP $1.43 -0.38%
SOL $85.61 -1.34%
TRX $0.3298 +0.57%
DOGE $0.0946 -1.31%
ADA $0.2475 -1.43%
BCH $441.18 -0.95%
LINK $9.22 -1.93%
HYPE $43.42 -2.10%
AAVE $91.66 -17.70%
SUI $0.9549 -0.80%
XLM $0.1701 +0.73%
ZEC $331.30 +2.42%

TokenPocket 환전 서비스 제공자가 해킹당했습니다. 당신이 얼마나 많은 "무한 권한"을 활성화했는지 빨리 확인하세요

Summary: 초 2100만 달러가 도난당했습니다. 모든 web3 사용자들은 이 글을 읽어야 합니다.
OdailyNews
2022-10-02 12:28:38
수집
초 2100만 달러가 도난당했습니다. 모든 web3 사용자들은 이 글을 읽어야 합니다.

저자: Loopy Lu, 행성일보 Odaily

오늘, 크로스체인 DEX 집계기 Transit Swap이 공격을 받아 많은 사용자의 자금이 지갑에서 인출되었습니다. 현재까지 예상 손실은 2100만 달러를 초과합니다.

도난이 발견된 후, Transit Swap 기술팀은 긴급히 서비스를 중단하였고, 계약은 완전히 중단되어 어떤 작업도 수행할 수 없습니다. 발행 전 Transit Swap 공식은 이전 해킹 사건의 원인이 코드 오류라고 발표했으며, 현재 해커의 IP, 이메일 주소 및 관련 체인 주소가 확인되었습니다. Transit Swap 팀은 해커를 추적하고 해커와 소통하여 사용자 손실을 회복하기 위해 최선을 다할 것이라고 밝혔습니다.

또한, 보안 팀 PeckShield는 해커 자금의 흐름을 확인했습니다.

image

이전 도난 사건과는 달리, Transit Swap은 TokenPocket 지갑의 즉시 교환 서비스 제공업체입니다. 이는 많은 사용자에게 "무감각 도난"의 매끄러운 경험을 제공했으며, 암호화 시장의 "어두운 숲"의 무서운 법칙을 다시 한번 명확히 했습니다. 지갑의 편리한 "즉시 교환" 서비스조차 도난의 위험이 존재합니다.

즉시 교환이란 무엇인가?

현재 거의 모든 지갑은 DeFi 기능을 통합하고 있으며, 일부 지갑은 사용 편의성을 고려하여 "즉시 교환"이라는 개념을 만들어 적용하고 있습니다.

즉시 교환이란, 지갑과 깊이 통합되어 제품 내에서 더 명확한 독립 진입점과 간소화된 작업 흐름을 제공하며, 더 편리한 작업을 가능하게 합니다. 즉시 교환을 사용하는 사용자는 암호 자산 거래를 편리하고 빠르게 완료할 수 있습니다. 예를 들어, "승인" 작업은 일반적으로 거래 과정에서 간단한 원클릭으로 통합되어 사용자는 거의 인식하지 못합니다.

또는 지갑 내장 통합으로 인해 사용자는 자연스럽게 더 큰 신뢰를 가지게 되며, 어느 정도 방어 의식이 낮아질 수 있습니다. 그러나 본질적으로는 지갑 앱에 통합된 DEX일 뿐이며, 다른 DEX와는 차이가 없습니다. 이는 이번 보안 사건에 위험을 남겼습니다.

계약 권한 부여에는 얼마나 많은 위험이 잠재되어 있는가?

"아무도 당신의 암호 자산을 강제로 가져갈 수 없다"는 것은 투자자들이 블록체인의 특성에 대해 널리 동의하는 것입니다. 체인 상의 자산이 지갑 소유자가 되면, 어떤 강제 수단으로도 이를 이동할 수 없습니다. 그러나 우리가 DEX를 사용하여 체인 상 거래를 할 때, DEX는 어떻게 한 자산을 가져가고 다른 자산으로 전환하는가?

권한 부여가 모든 것의 핵심이 됩니다. 사용자는 DEX에서 자산을 판매하기 전에 먼저 "승인" 작업을 수행해야 하며, 이 작업 이후 계약은 사용자의 특정 토큰을 사용할 권한을 가지게 됩니다.

더 직설적으로 설명하자면: 당신이 권한을 부여하기만 하면, 지갑을 열 필요도, 작업을 수행할 필요도, 개인 키를 사용할 필요도 없이, 해당 계약은 당신의 허락 없이 당신이 권한을 부여한 자산을 지배할 수 있습니다. 이는 이더리움의 메커니즘과 권한 모델에 의해 결정되며, 프로젝트 측의 도덕적 준수, 보안 규범, 코드 감사와는 아무런 관계가 없습니다.

감사 = 안전?

권한 부여 후 계약이 암호 자산을 이동할 수 있는 능력을 가지더라도, 이 능력이 합리적인 범위 내에서 사용된다면 여전히 안전합니다. 그러나 신뢰할 수 있는 보안 기관의 감사를 받았다고 해서 이 능력이 남용되지 않고, 사용자 거래 시 거래액의 필수 자산만 이동된다는 것을 의미할까요?

정적 관점에서 이 논리는 성립합니다. 마치 Uniswap이 사용자의 지갑을 언제든지 비울 수 있는 능력을 가지고 있지만, 실제로 그렇게 하지 않는 것과 같습니다. 그러나 동적 관점에서 이 논리는 여전히 위험합니다.

현대 소프트웨어 개발에서 업그레이드는 필수적인 능력입니다. 스마트 계약도 마찬가지입니다. Solidity 스마트 계약에서는 Transparent와 UUPS 두 가지 업그레이드 방법이 있으며, 이 두 기능을 통해 계약 프록시와 업그레이드는 거의 업계 계약의 표준입니다.

프로젝트 측은 계약을 어떻게 업그레이드할까요? 일반적으로 사용자가 접근하는 계약은 비즈니스 논리를 직접 운영하는 핵심 계약이 아니라 "프록시 계약"입니다. 프록시 계약은 사용자의 요청을 받은 후 이를 핵심 비즈니스 계약으로 전달하고, 비즈니스 계약이 이를 처리합니다. 계약 업그레이드는 간단히 말해, 스마트 계약은 수정할 수 없지만, 사용자가 최종적으로 접근하는 비즈니스 논리를 운영하는 계약은 교체할 수 있습니다. 이는 업계의 일반적인 관행입니다.

가장 안전한 계약조차 "계약 업그레이드"를 수행하면 비즈니스 계약이 변경되며, 이전 감사 보고서는 무용지물이 됩니다.

간단히 말해, 오늘 당신이 상호작용하는 계약은 안전하지만, 내일 같은 프로젝트에 접근할 때 그 안전성이 근본적으로 변화할 수 있습니다. 계약(또는 공격 계약의 해커)은 여전히 당신이 권한을 부여한 모든 자산을 이동할 수 있는 능력을 가질 수 있습니다.

무한 권한 부여는 얼마나 위험한가?

다행히도, 권한 부여는 사용자가 언제든지 지갑이 비워질 위험에 노출된다는 것을 의미하지 않습니다. 권한 부여 메커니즘에는 또 다른 중요한 규칙이 있습니다. 즉, 권한 부여는 수량을 포함합니다. 사용자는 "승인" 계약에 특정 수량의 토큰을 부여하며, 계약은 최대한 이 수량만 사용할 수 있습니다. 지갑에 해당 토큰의 수량이 더 많더라도, 계약은 이를 사용할 수 없습니다.

그러나 위험한 점은 대부분의 DeFi 계약이 사용자의 "무한 권한 부여"를 무분별하게 요구한다는 것입니다. 즉, 기본적으로 사용자가 승인한 토큰 수량이 무한입니다.

image

전형적인 "무한 권한 부여" 작업, 승인 금액이 10의 59제곱에 달함

사용자는 어떻게 방지할 수 있는가?

권한이 없으면 안전 위험이 없습니다. 체인 상 작업을 수행할 때, "승인" 작업을 수행해야 한다면 사용자는 "필요한 만큼, 승인할 만큼"의 원칙을 따라야 합니다. 만약 내가 1000 TOKEN을 판매해야 한다면, 승인 금액을 1000으로 수동으로 수정해야 합니다. 계약의 이동 금액은 누적되므로, 만약 1000을 승인하고 이번 금액이 정확히 1000이라면, 계약의 승인 한도가 정확히 소진됩니다. 이후 계약에 보안 위험이 발생하더라도, 사용자의 지갑에서 어떤 자산도 이동할 수 없습니다.

image

사용자는 승인 금액을 수동으로 수정할 수 있음

이미 권한을 부여한 사용자에게는 권한 취소 작업을 시작할 수 있습니다. (흥미로운 점은 이더리움이 "권한 취소"를 지원하지 않으며, 이 작업은 본질적으로 계약에 "0" 금액의 권한을 부여하는 것입니다.)

자주 사용되는 권한 취소 웹사이트는 다음과 같습니다 (보안 회사 만무 추천):

  1. Dappstar: https://tac.dappstar.io/#/

  2. Revoke: https://revoke.cash/

  3. Approved.zone: https://approved.zone/

  4. Rabby Wallet

또한, 일부 블록체인 탐색기도 사용자가 권한을 확인하고 취소할 수 있도록 지원합니다.

https://cn.etherscan.com/tokenapprovalchecker

https://bscscan.com/tokenapprovalchecker

DeFi 도난, 누가 책임인가?

"어두운 숲"은 체인 상 질서에 대한 널리 퍼진 서술이며, 사용자에게 이 세계의 위험성과 높은 위험성을 상기시킵니다. 그러나 이러한 보안 사건이 반복적으로 발생하는데, 정말로 모든 책임을 사용자 안전 의식에 돌릴 수 있을까요?

이러한 사건에서 DeFi 프로젝트가 사용자 권한을 무제한으로 요구하는 것은 위험의 초기 출처입니다. 거의 모든 프로젝트는 권한을 요구할 때 기본 옵션이 무한 권한입니다. 사용자가 수동으로 수정할 수 있지만, 책임 있는 시장은 투자자 보호와 사용자 교육의 책임을 져야 합니다.

현재까지 얼마나 많은 암호 사용자들이 권한의 위험성을 이해하지 못하고 있을까요? 이러한 환경 속에서 프로젝트 측은 여전히 위험한 무한 권한을 요구하고 있습니다.

DeFi의 권한 남용은 이미 업계의 관행이 되었으며, 이 고위험 상황은 거의 모든 사용자의 자산에 위협이 되고 있습니다. 그 영향은 깊고 광범위하며, 그 위험은 아마도 어떤 보안 위험과도 비교할 수 없을 것입니다. 이 위험은 본질적으로 "아무도 지갑 속의 코인을 가져갈 수 없다"는 단순한 직관을 위반합니다. 이는 업계가 계속 직면해야 할 위험과 도전입니다.

도난 사건이 발생한 후, 신어는 트위터에서 "프로젝트 측에 권한 기능을 규범적으로 사용해 줄 것을 요청합니다. 필요한 만큼만 승인하고, 무한 권한을 주지 말아주세요. 모두가 안심할 수 있도록."이라고 촉구했습니다.

탈중앙화는 기회와 위험으로 가득 차 있습니다. 암호 기술의 초기 비전을 기억하시나요? "당신의 자산을 보호하고, 아무도 당신의 지갑 속 암호 화폐를 빼앗을 수 없다." 건강한 질서의 구축에는 복잡한 코드나 난해한 개념이 필요하지 않습니다. 모든 일반 사용자가 안전하게 암호 기술을 사용할 수 있도록 보장하는 것은 여전히 업계의 모든 참여자들의 공동 노력이 필요합니다.

warnning 위험 경고
app_icon
ChainCatcher Building the Web3 world with innovations.