취약점을 체계화하기 위해 주제 조사 진행하여 아래 Keyword별 연구 간행물 조사 진행함
- Survey
- Smart Contract
- Vulnerability
- Common pattern
- Known attack
- 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
- 부적절한 입력 유효성 검사(= short address, Ether Lost in transfer, Requirement violation, malicious library)
- 예외적인 상황의 부적절한 확인 또는 처리 (=unchecked call return values ,unchecked send, exception disorder)
- 데이터 신뢰성의 불충분한 검증 : (= typecast , signature attack)
2. Code misuse
- 불충분한 랜덤 값의 사용 (= generationg randomness)
- 잘못된 영역에 리소스 노출 (= secrecy Failure, lack of transactional privacy, timestamp dependency, blockhash 사용)
- 부적절한 엑세스 제어 : (= tx.origin, visibility of exposed function,,unprotected self destruct ,unprotected ether withdrawal)
3. The logic of the code
- 불충분한 제어 흐름 관리(=freezing ether ,reenterency, transaction ordering dependency)
- 통제되지 않은 자원 소비 : (=dos costly patterns and loops, gasless send, under-priced opcode)
- 영역간의 잘못된 리소스 전송 : ( =call to the unknown, untrusted callee의 delegate call ,dos by external contract)
4. Wrong Operation
- 부정확한 계산(=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 |