Bitculator

Android에서 Bitculator 받기

시가총액:

$2.74 T

24시간 거래량:

$14.43 B

10월 03 청산:

$1.40 M

회원가입

Bitculator · 학습

Integer Overflow Attack

크립토 용어로 Integer Overflow Attack의 뜻은 무엇인가요?

# 400·업데이트 10월 2026·2 분 소요

정수 오버플로 공격은 정수 오버플로 공격 이 수학 연산의 결과가 시스템이 처리하기에 너무 커서 '오버플로'가 발생하고 잠재적으로 취약점을 생성할 수 있을 때 발생합니다.

정수 오버플로우 공격이란?

정수 오버플로우 공격은 프로그램의 숫자가 최대값에 도달하고 다시 순환될 때 발생하여 공격자가 잔액이나 한도를 왜곡하도록 만듭니다. 암호화폐에서 그 순환은 “토큰이 충분한가요?” 같은 확인이 아니오여야 할 때 예스가 되도록 바꿀 수 있습니다. 낡은 자동차의 주행계가 999999에서 000000으로 바뀌는 것을 상상해 보세요, 다만 돈이 걸려 있습니다.


신화

“현대 컴파일러는 이것을 불가능하게 만든다.”는 식으로 말하지만 완전히 그렇진 않습니다. 많은 스마트 컨트랙트들이 여전히 체크되지 않은 산술, 커스텀 수학, 또는 어셈블리 코드 일부를 사용하여 오버플로우 버그를 재도입합니다.


정수 오버플로우 공격의 작동 원리

토큰 컨트랙트를 무대 삼아 간단한 시연을 해보겠습니다.

  • 단계 1: 컨트랙트는 고정 크기의 정수로 잔액을 저장하고, 금액을 더하거나 빼거나 곱하는 함수를 가집니다.
  • 단계 2: 공격자가 최대값을 넘는 입력값을 선택하여 순환으로 초소형 값이나 0과 같은 값으로 만듭니다.
  • 단계 3: 그 순환이 체크를 뒤집습니다. 예: 순환 후 잔액이 거대하게 보이거나 전송 한도가 아주 작아져서 require가 통과합니다.
  • 단계 4: 공격자가 얻지 않아야 할 토큰을 발행하거나 상한을 우회하거나 자금을 이동합니다.
  • 단계 5: 그들은 거래나 브리지들을 통해 이익을 옮겨가고 아무도 눈치채지 못할 때까지 남겨 둡니다.

실제 사례: 몇몇 ERC 20 토큰들이 한 번에 큰 수량을 발행할 수 있게 하는 배치 오버플로우 버그를 보유해 공격자들이 터무니없는 공급을 발행한 뒤 거래소에 이를 매도한 적이 있습니다. 그렇습니다, 그런 일이 일어났습니다.


왜 정수 오버플로우 공격이 중요한가

토큰을 보유하고 있거나 앱을 개발하거나 DeFi에서 거래한다면 이 문제에 관심을 가져야 합니다. 이는 숫자에 관한 것이고 숫자가 암호화폐를 좌우합니다.

  • 이점: 이렇게 작동 원리를 아는 것은 초기 의심 신호를 포착하고 현금 보호에 도움이 됩니다.
  • 관점: 산술 버그는 시대를 초월합니다. 새로운 체인과 도구가 등장하지만 수학적 실수는 여전히 전문가들에게 노출됩니다.
  • 관련성: 토큰 공급 수학, 보상 시스템, NFT 카운터, 그리고 사용자 잔액을 다루는 대중적인 dApps에서 볼 수 있습니다.

팁

솔리디티에서 산술은 기본적으로 체크되도록 하고 unchecked 블록은 작게 유지하며 감사받아야 합니다. 극한 값으로 테스트를 하는 퍼즈 테스트를 추가하고, 행복한 경로뿐만 아니라 다양한 경우를 시도해 보세요.


정수 오버플로우 공격의 주요 특징

다른 버그들과의 차이점은:

  • Wraparound: 숫자가 최대값에서 0으로 루프처럼 점프합니다.
  • Silent: 수학이 unchecked인 경우 native 오류가 없으므로 실패가 합법적인 결과처럼 보입니다.
  • Triggerable: 종종 사용자가 제어하는 입력으로 정확한 순간을 강요할 수 있습니다.
  • Repeatable: 한 번 발견되면 공격자는 이를 스크립트로 만들어 여러 대상에 걸쳐 실행할 수 있습니다.

Variations

가장 일반적으로 들을 수 있는 주요 변형들, 같은 계열이지만 다른 경로:

  1. Underflow: 뺄셈이 0 아래로 내려가 거대한 값으로 래핑됩니다.
  2. Addition: 잔액이나 공급에 더해 최대치를 넘겨 다시 작은 숫자로 돌아갑니다.
  3. Multiplication: 보상 승수나 스케일링 계수가 값을 한계치를 넘게 폭발시킵니다.
  4. Counter: 토큰 ID나 공급 카운터가 순환되어 상한을 넘겨도 발행이 계속됩니다.

리마인더

Intger Overflow Attack는 솔리디티만의 현상은 아닙니다. Vyper, Rust, Move 또는 커스텀 어셈블리에서도 나타날 수 있으며, 공개적으로 알려진 익스플로잇들이 잔액이나 공급과 관련된 unchecked 수학으로 요약되었습니다.


예시

보상 함수가 사용자가 제공한 숫자에 큰 보너스를 곱하면 값이 순환되어 상한 체크를 통과하고, Integer Overflow Attack으로 공격자가 의도보다 훨씬 많은 토큰을 발행합니다.


재미있는 사실

레벨 256의 킬 스크린이 있는 아케이드 고전 게임? 그 악명 높은 멈춤 현상은 정수 오버플로우에서 비롯되었으며, 심지어 레트로 게임에서도 암호화폐 버그를 미리 보여줄 수 있음을 증명했습니다.


Wrap-Up

정수 오버플로우 공격을 숫자가 한 바퀴를 도는 것과 도둑들이 그 틈을 스쳐 지나가는 것이라고 생각해 보세요; 수학을 체크 상태로 유지하면 더 안심할 수 있습니다.

빠진 내용이 있나요?

여러분의 의견이 정확성을 유지하는 데 큰 도움이 됩니다. 잘못되었거나 누락된 내용이 있으면 문의해 주세요.

문의