BlockChain

Solidity 취약점 카테고리화

부산대보금자리 2022. 1. 11. 17:54

취약점을 체계화하기 위해 주제 조사 진행하여 아래 Keyword 연구 간행물 조사 진행함

  1. Survey
  2. Smart Contract
  3. Vulnerability
  4. Common pattern
  5. Known attack
  6. Solidity

 

추가적으로 Solidity 공 문서, Smart Contract Weakness Classfication(SWC) 등의 웹사이트 활용하였음

 

: 최소 2 언급된 것을 고려(= 논문일 최소 또는 ) & 악용될 있는 약점

 

  • 결과

 

취약점 약자 CWE Systemazation
tx.origin으로 인한 인증 Atx CWE-284
Blockhash 사용 BU CWE-668
Call to the unknown CU CWE-669
Untursted Callee의 Delegate Call DUC CWE-669
Dos by External Contract EC CWE-669
Dos costly Patterns and Loops CPL CWE-400
Ether Lost in Transfer ELT CWE-20
Exception Disorder ED CWE-703
Freezing Ether FE CWE-691
Gasless send Gs CWE-400
Generationg Randomness GR CWE-330
Integer Overflow/Underflow IOU CWE-682
Lack of Transactional Privacy LTP CWE-668
악의적인 라이브러리 ML CWE-20
서명 재전송 공격 MPRA CWE-345
재전송 공격 Re CWE-20
Requirement Violation RV CWE-345
Secrecy Failure SF CWE-668
Short Addresses SA CWE-20
Timestamp Dependency TD CWE-668
Transaction Ordering Dependence TOD CWE-691
Typecast Ty CWE-345
Unchecked Call Return Values UV CWE-703
Unchecked Send Us CWE-703
Under-Priced Opcode UpO CWE-400
Unprotected Ether Withdrawal UEW CWE-284
Unprotected selfdestruct Usd CWE-284
Visibility of Exposed Functions VEF CWE-284

 

 = 28개의 취약점

 

  • CWE(=Common Weakness Enumeration) 카테고리 활용

 

 

  • 유형별

1. Uncheked input, verification

  1. 부적절한 입력 유효성 검사(= short address, Ether Lost in transfer, Requirement violation, malicious library)
  2. 예외적인 상황의 부적절한 확인 또는 처리 (=unchecked call return values ,unchecked send, exception disorder)
  3. 데이터 신뢰성의 불충분한 검증 : (= typecast , signature attack)

 

2. Code misuse

  1. 불충분한 랜덤 값의 사용 (= generationg randomness)
  2. 못된 영역에 리소스 노출  (= secrecy Failure, lack of transactional privacy, timestamp dependency, blockhash 사)
  3. 부적절한 엑세스 제어 : (= tx.origin, visibility of exposed function,,unprotected self destruct ,unprotected ether withdrawal)

3. The logic of the code

  1. 불충분한 제어 흐름 관리(=freezing ether ,reenterency, transaction ordering dependency)
  2. 통제되지 않은 자원 소비 : (=dos costly patterns and loops, gasless send, under-priced opcode)
  3. 역간의 잘못된 리소스 전송 : ( =call to the unknown, untrusted callee delegate call ,dos by external contract)

4. Wrong Operation

  1. 부정확한 계산(=integer overflow/under flow)

 

  • 정리 순서

위험도 높은 ,  Code level -> low level 순으로 진행

'BlockChain' 카테고리의 다른 글

Solidity 취약점 #2  (0) 2022.01.12
Solidity 취약점 #1  (0) 2022.01.11
Solidity #5  (0) 2022.01.10
Solidity #4  (0) 2022.01.07
Solidity #3  (0) 2022.01.06