EOSIO 스마트 계약에서 누락된 인증 오류 찾기
이것은 일련의 블로그 기사입니다. 저는 흔히 볼 수 있는 EOSIO 스마트 계약의 빈틈을 소개한 다음에 EOSIO 빈틈 스캐너Inspect를 사용하여 정적 분석을 실시하여 이러한 빈틈을 발견하는 방법을 설명할 것입니다.
이번 주에 나는 부족한 권한을 주목할 것이다.
취약성
EOSIO에서 개발자는 두 가지 기능을 사용하여 스마트 계약 행동의 권한을 제어할 수 있다. 방법은 발표된 행동 권한이 이 행동을 실행할 수 있는 계정과 같은지 검사하는 것이다.다음과 같습니다.
다음 조작 코드에서 emplace 호출(데이터를 users 테이블에 쓰기) 전에 Require auth() 호출이 있었지만 사용자는 RAM 지불자가 아니기 때문에 모든 사용자가 계약 계정을 사용하여 자신의 RAM을 데이터베이스에 쓸 수 있도록 허락함으로써 계약이 RAM에 의해 공격을 받기 쉽다.
사용자가 RAM에 비용을 지불하고 RAM 충전 공격을 받지 않도록 이 조작을 수정합니다(사용자가 더 이상 RAM에 계약 자원을 사용하지 않기 때문).
Severity
이런 빈틈의 영향은 해커가 가능하다는 것이다:
- RAM에 저장된 데이터를 쓰기/수정/삭제할 때 적절한 인증 검사를 받지 못함
- 표면적으로 스마트 계약의 관리자/특권 사용자만을 위한 통화 기능
- EOSIO에서 램은 무료가 아니기 때문에 해커는 허위 데이터로 스마트 계약의 램을 채우고 dAPP의 자원을 소모하여 합법적인 사용자에 대한 서비스 거부를 초래할 수 있다.
Finding the vulnerability with Inspect
Inspect는 정적 분석이라고 불리는 기술을 채택했다.정적 분석은 컴퓨터 프로그램의 원본 코드나 특정한 중간 표시를 추리하여 실행하는 것이지 실제 실행하는 것이 아니다
Inspect를 사용하여 우리는 WASM 바이너리 코드에 대해 정적 분석을 하고 이를 역컴파일한 다음에 전유의 중간 표시(IR)로 향상시켰다.Inspect에서 IR을 가져와 데이터베이스에 표시하면 우리가 알고 있는 빈틈을 발굴할 수 있습니다
상기 스마트 계약 조작을 포함하는 스마트 계약에서Inspect를 실행하면 다음과 같은 결과를 얻을 수 있습니다:
Auth Violation: ✘ Action: emplaceself1 Insn: ($fel) = db_store_i64($feb, $fec, $fef, $feh, $fej, $fek)
첫 번째 동작은 권한 위반 검사로 정확하게 표시됩니다.Inspect가 WASM 바이트 코드를 조작할 때 EOSIO의 내부 함수db store i64 () 에서 발생한 충돌을 보고합니다. 이 함수는 emplace () 호출에 대응합니다
안전으로 인해 두 번째 행동은 보고되지 않았습니다
실제 분석 장면에서 다음 단계는 이 결과를 원본 코드와 연결하고 이것이 확실히 빈틈인지 확인하는 것이다
또 뭐 있어요?다음은 어떤 빈틈을 알려주고 싶으세요
최초 발표: 2021년 3월 8일 https://klevoya.com
Join Coinmonks Telegram group and learn about crypto trading and investing
Also, Read
- What is Margin Trading
- 최고Crypto Trading Bot|Grid Trading
-
3Commas Review | Pionex Review | Coinrule review -
AAX Exchange Review | Deribit Review | FTX Exchange Review -
NGRAVE ZERO review | Phemex Review | PrimeXBT Review -
Bybit Exchange Review | Bityard Review | CoinSpot Review -
3Commas vs Cryptohopper | Earn crypto interest - 최적 비트코인Hardware wallet |BitBox02 Review
-
Ledger vs Ngrave | Ledger nano s vs x - Crypto Copy Trading Platforms
-
CoinLoan Review | YouHodler Review | BlockFi Review - 최고Crypto Tax Software|CoinTracking Review
- 최적Crypto Lending Platforms |Leveraged Token
-
BlockFi vs Celsius | Hodlnaut Review -
Bitsgap review | Quadency Review | Bitbns Review -
Ellipal Titan Review | SecuX Stone Review -
LocalBitcoins Review | Cryptocurrency Savings Accounts - 최적Blockchain Analysis 도구 |Earn Bitcoin
-
Crypto arbitrage 가이드 | How to Short Bitcoin - 최적Crypto Charting Tool |Best Crypto Exchange
-
How to buy Bitcoin in India? | WazirX Review -
Bitcoin exchange in India | Bitcoin Savings Account -
CoinDCX Review | Crypto Margin Trading Exchanges
Reference
이 문제에 관하여(EOSIO 스마트 계약에서 누락된 인증 오류 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/coinmonks/finding-missing-auth-bugs-in-eosio-smart-contracts-3hkb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)