시가총액: $2.2006T 0.82%
거래량(24시간): $38.5475B -31.41%
공포와 탐욕 지수:

39 - 두려움

  • 시가총액: $2.2006T 0.82%
  • 거래량(24시간): $38.5475B -31.41%
  • 공포와 탐욕 지수:
  • 시가총액: $2.2006T 0.82%
암호화
주제
암호화
소식
cryptostopics
비디오
최고 암호화

언어 선택

언어 선택

통화 선택

암호화
주제
암호화
소식
cryptostopics
비디오

블록 체인에 대한 재입국 공격은 어떻게 발생합니까?

Reentry attacks exploit smart contract vulnerabilities by repeatedly calling functions before transactions complete, risking fund drainage if not secured properly.

2025/04/11 20:21

재입국 공격 소개

재진입 공격 은 블록 체인 스마트 계약, 특히 금융 거래를 처리하는 악용 유형입니다. 이러한 유형의 공격은 계약 코드의 취약점을 활용하여 공격자가 초기 거래가 완료되기 전에 반복적으로 함수를 호출 할 수있게합니다. 이러한 공격이 어떻게 발생하는지 이해하는 것은 개발자와 사용자가 자산을 보호하고 블록 체인의 무결성을 유지하는 데 중요합니다.

재입국 공격의 역학

재진입 공격은 일반적으로 자금 양도와 관련된 현명한 계약을 목표로합니다. 이 공격은 계약이 내부 상태를 업데이트하기 전에 자금을 외부 주소로 보내는 계약의 논리에서 결함을 이용합니다. 작동 방식은 다음과 같습니다.

  • 초기 호출 : 공격자는 취약한 스마트 계약에서 기능을 호출하는 거래를 시작하며, 이는 공격자의 주소로 자금을 보내도록 설계되었습니다.
  • 외부 통화 : 계약이 내부 상태 (예 : 발신자의 잔액을 줄이기)를 업데이트하기 전에 자금을 공격자 주소로 보냅니다.
  • 재입국 : 공격자의 주소는 자금을 받으면 동일한 기능을 자동으로 호출하도록 설정되어 초기 거래가 완전히 처리되기 전에 계약을 다시 시작합니다.
  • 루프 :이 프로세스는 여러 번 반복 할 수있어 계약의 논리가 최종적으로 해당 상태를 업데이트하거나 자금이 부족할 때까지 공격자가 계약의 자금을 배수 할 수 있습니다.

취약한 스마트 계약 코드

재입국 공격이 어떻게 실행될 수 있는지 이해하려면 Ethereum Smart Contracts에 사용되는 프로그래밍 언어 인 Solidity로 작성된 취약한 스마트 계약의 단순화 된 예를 살펴 보겠습니다.

 contract VulnerableContract { mapping(address => uint) public balances; function withdraw(uint amount) public { require(balances[msg.sender] >= amount, 'Insufficient balance'); // Send funds to the caller (bool success, ) = msg.sender.call{value: amount}(''); require(success, 'Transfer failed'); // Update the balance balances[msg.sender] -= amount; } function deposit() public payable { balances[msg.sender] += msg.value; }

}

이 예에서 withdraw 기능은 먼저 자금을 발신자에게 보내고 잔액을 업데이트합니다. 이 시퀀스를 사용하면 공격자가 잔액이 업데이트되기 전에 계약을 재진입 할 ​​수 있습니다.

재입국 공격 실행

재입국 공격을 실행하려면 공격자는 자금을 수령 할 때 withdraw 기능을 자동으로 호출 할 수있는 악의적 인 계약을 설정해야합니다. 다음은 이러한 악성 계약의 단순화 된 예입니다.

 contract AttackContract { VulnerableContract public vulnerableContract; constructor(address _vulnerableContractAddress) { vulnerableContract = VulnerableContract(_vulnerableContractAddress); } function attack() public { vulnerableContract.withdraw(vulnerableContract.balances(address(this))); } receive() external payable { if (address(vulnerableContract).balance >= msg.value) { vulnerableContract.withdraw(msg.value); } }

}

  • 공격 계약 배포 : 공격자는 AttackContract 배치하고 VulnerableContract 계약의 주소로 초기화합니다.
  • 공격 시작 : 공격자는 AttackContract 에서 attack 함수를 호출하여 VulnerableContract 에서 withdraw 기능을 호출합니다.
  • Reintry Loop : 자금을 받으면 AttackContractreceive 기능이 자동으로 다시 withdraw VulnerableContract 배출하는 루프를 만듭니다.

재입국 공격 방지

재입국 공격을 방지하기 위해 개발자는 외부 통화가 이루어지기 전에 계약의 내부 상태가 업데이트되도록해야합니다. 다음은 재진입 공격에 저항력이있는 VulnerableContract 작업의 업데이트 버전입니다.

 contract SecureContract { mapping(address => uint) public balances; function withdraw(uint amount) public { require(balances[msg.sender] >= amount, 'Insufficient balance'); // Update the balance first balances[msg.sender] -= amount; // Then send funds to the caller (bool success, ) = msg.sender.call{value: amount}(''); require(success, 'Transfer failed'); } function deposit() public payable { balances[msg.sender] += msg.value; }

}

이 보안 버전에서는 자금이 전송되기 전에 잔액이 업데이트되어 재진입 시도를 방지합니다.

재입국 공격의 실제 사례

재입국 공격의 가장 악명 높은 사례 중 하나는 2016 년 이더 리움 블록 체인의 DAO 해킹 입니다. DAO (분산 된 자율 조직)는 벤처 캐피탈 펀드로 운영되도록 설계된 스마트 계약이지만 위에서 설명한 것과 유사한 취약성을 포함했습니다. 공격자는이 취약점을 악용하여 DAO에서 약 360 만 개의 ETH를 배출하여 이더 리움 블록 체인의 단단한 포크로 공격을 역전시켰다.

또 다른 예는 2017 년의 패리티 월렛 핵 으로, 공격자들은 패리티 다중 서명 지갑에서 재진입 취약성을 악용하여 150,000 개 이상의 도난을 초래했습니다.

자주 묻는 질문

Q : 리센트 공격을 블록 체인에서 실시간으로 감지 할 수 있습니까? A : 재입국 공격을 실시간으로 감지하는 것은 블록 체인의 분산 특성으로 인해 어려울 수 있습니다. 그러나 일부 블록 체인 플랫폼 및 보안 회사는 고급 모니터링 도구 및 이상 탐지 알고리즘을 사용하여 재입국 공격을 나타낼 수있는 의심스러운 패턴을 식별합니다. 이러한 도구는 상당한 손상이 발생하기 전에 사용자와 개발자에게 잠재적 인 취약점을 알릴 수 있습니다.

Q : 모든 스마트 계약은 재진입 공격에 취약합니까? A : 아니요, 모든 스마트 계약이 재진입 공격에 취약한 것은 아닙니다. 자금 양도와 관련이 없거나 외부 전화를하지 않는 계약은 일반적으로 민감하지 않습니다. 그러나 내부 상태를 업데이트하기 전에 자금을 외부 주소로 보내는 계약은 위험에 처할 수 있습니다.

Q : 재진입 공격으로부터 자신을 보호하기 위해 사용자가 취할 수있는 단계는 무엇입니까? A : 사용자는 스마트 계약, 특히 많은 돈을 처리하는 계약과 상호 작용하는 것에주의를 기울여 자신을 보호 할 수 있습니다. 그들은 계약의 코드 및 감사 보고서를 조사하고 평판이 좋은 플랫폼을 사용하며 자금을 안전한 지갑에 보관해야합니다. 또한 Smart Contract Security의 일반적인 취약점 및 모범 사례에 대한 정보를 유지하면 사용자가 더 안전한 결정을 내릴 수 있습니다.

Q : 개발자는 어떻게 스마트 계약이 재진입 공격에 대해 안전을 보장 할 수 있습니까? A : 개발자는 외부 통화가 이루어지기 전에 계약의 내부 상태가 업데이트되는 'Checks-Effects-Interaction'패턴과 같은 모범 사례를 따르면 스마트 계약을 확보 할 수 있습니다. 또한 철저한 코드 감사를 수행하고 공식적인 검증 도구를 사용하며 블록 체인 공간의 최신 보안 지침 및 취약점을 업데이트해야합니다.

부인 성명:info@kdj.com

제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!

본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.

관련 지식

모듈형 블록체인이란 무엇이며 차세대 빅 트렌드인 이유는 무엇입니까?

모듈형 블록체인이란 무엇이며 차세대 빅 트렌드인 이유는 무엇입니까?

2026-06-20 02:19:37

시장 변동성 패턴 1. Bitcoin 가격 변동은 거시경제적 불확실성 기간 동안 단일 거래 세션 내에서 5%를 초과하는 경우가 많습니다. 2. 약세장 단계에서 BTC와 알트코인의 상관관계는 0.85 이상으로 상승하며 이는 독립적인 가격 조치가 감소했음을 나타냅니다. 3...

계정 추상화란 무엇이며 Web3에 왜 중요한가요?

계정 추상화란 무엇이며 Web3에 왜 중요한가요?

2026-06-17 14:39:56

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 블록당 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 20...

영지식 증명이란 무엇이며 개인 정보를 어떻게 보호합니까?

영지식 증명이란 무엇이며 개인 정보를 어떻게 보호합니까?

2026-06-17 12:59:37

시장 변동성 패턴 1. Bitcoin 유동성이 낮은 기간에는 단일 거래 세션 내에서 가격 변동이 5%를 초과하는 경우가 많습니다. 2. BTC와의 알트코인 상관관계는 지난 18개월 동안 평균 0.85 이상을 기록했는데, 이는 Bitcoin의 방향성에 대한 강한 의존성을...

zk-Rollup은 무엇이며 왜 모두가 그것에 대해 이야기하고 있습니까?

zk-Rollup은 무엇이며 왜 모두가 그것에 대해 이야기하고 있습니까?

2026-06-25 06:39:37

시장 변동성 패턴 1. Bitcoin의 가격 변동은 ETF 유입 보고서 또는 거시경제 데이터 발표와 같은 유동성이 높은 이벤트 중에 5%를 초과하는 급격한 장중 변동을 보이는 경우가 많습니다. 2. BTC와 알트코인의 상관관계는 지난 2년 동안 강화되었으며, 상위 50...

Chainlink란 무엇이며 블록체인 오라클은 어떻게 작동합니까?

Chainlink란 무엇이며 블록체인 오라클은 어떻게 작동합니까?

2026-06-19 13:00:17

시장 변동성 패턴 1. Bitcoin 및 이더리움을 포함한 주요 암호화폐에서 24시간 이내에 15%를 초과하는 가격 변동이 정기적으로 발생합니다. 2. 아시아 거래 시간 중 유동성 격차로 인해 무기한 스왑 시장에서 연쇄 청산이 발생하는 경우가 많습니다. 3. 1,000...

블록체인에서 오라클이란 무엇이며 왜 필요한가요?

블록체인에서 오라클이란 무엇이며 왜 필요한가요?

2026-06-21 19:39:38

정의 및 핵심 기능 1. 블록체인의 오라클은 분산 네트워크에서 작동하는 스마트 계약에 외부 데이터를 제공하는 신뢰할 수 있는 제3자 서비스입니다. 2. 블록체인 가상 머신의 결정적이고 격리된 실행 환경으로 인해 스마트 계약은 가격 피드, 일기예보, API 응답과 같은 ...

모듈형 블록체인이란 무엇이며 차세대 빅 트렌드인 이유는 무엇입니까?

모듈형 블록체인이란 무엇이며 차세대 빅 트렌드인 이유는 무엇입니까?

2026-06-20 02:19:37

시장 변동성 패턴 1. Bitcoin 가격 변동은 거시경제적 불확실성 기간 동안 단일 거래 세션 내에서 5%를 초과하는 경우가 많습니다. 2. 약세장 단계에서 BTC와 알트코인의 상관관계는 0.85 이상으로 상승하며 이는 독립적인 가격 조치가 감소했음을 나타냅니다. 3...

계정 추상화란 무엇이며 Web3에 왜 중요한가요?

계정 추상화란 무엇이며 Web3에 왜 중요한가요?

2026-06-17 14:39:56

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 블록당 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 20...

영지식 증명이란 무엇이며 개인 정보를 어떻게 보호합니까?

영지식 증명이란 무엇이며 개인 정보를 어떻게 보호합니까?

2026-06-17 12:59:37

시장 변동성 패턴 1. Bitcoin 유동성이 낮은 기간에는 단일 거래 세션 내에서 가격 변동이 5%를 초과하는 경우가 많습니다. 2. BTC와의 알트코인 상관관계는 지난 18개월 동안 평균 0.85 이상을 기록했는데, 이는 Bitcoin의 방향성에 대한 강한 의존성을...

zk-Rollup은 무엇이며 왜 모두가 그것에 대해 이야기하고 있습니까?

zk-Rollup은 무엇이며 왜 모두가 그것에 대해 이야기하고 있습니까?

2026-06-25 06:39:37

시장 변동성 패턴 1. Bitcoin의 가격 변동은 ETF 유입 보고서 또는 거시경제 데이터 발표와 같은 유동성이 높은 이벤트 중에 5%를 초과하는 급격한 장중 변동을 보이는 경우가 많습니다. 2. BTC와 알트코인의 상관관계는 지난 2년 동안 강화되었으며, 상위 50...

Chainlink란 무엇이며 블록체인 오라클은 어떻게 작동합니까?

Chainlink란 무엇이며 블록체인 오라클은 어떻게 작동합니까?

2026-06-19 13:00:17

시장 변동성 패턴 1. Bitcoin 및 이더리움을 포함한 주요 암호화폐에서 24시간 이내에 15%를 초과하는 가격 변동이 정기적으로 발생합니다. 2. 아시아 거래 시간 중 유동성 격차로 인해 무기한 스왑 시장에서 연쇄 청산이 발생하는 경우가 많습니다. 3. 1,000...

블록체인에서 오라클이란 무엇이며 왜 필요한가요?

블록체인에서 오라클이란 무엇이며 왜 필요한가요?

2026-06-21 19:39:38

정의 및 핵심 기능 1. 블록체인의 오라클은 분산 네트워크에서 작동하는 스마트 계약에 외부 데이터를 제공하는 신뢰할 수 있는 제3자 서비스입니다. 2. 블록체인 가상 머신의 결정적이고 격리된 실행 환경으로 인해 스마트 계약은 가격 피드, 일기예보, API 응답과 같은 ...

모든 기사 보기

User not found or password invalid

Your input is correct