랜섬웨어를 빠르게 분류하기 위해 어떠한 암호화 로직을 사용하는지 파악하고 있는 것이 중요하다.
자세한 내용은 해당 보고서를 읽어보면, 굉장히 좋다!
https://www.fsec.or.kr/common/proc/fsec/bbs/163/fileDownLoad/3091.do
간단하게 필요한 부분만 발췌해서 메모해보자.
먼저, 암호화 알고리즘은 대칭키 암호와 공개키 암호로 구분할 수 있는데, 대칭키 암호는 속도가 빠르지만 암/복호화에 동일한 키를 사용하기에 키 확보시에 복구가 가능하다.
공개키 암호는 공개키를 확보해도 개인키를 모르면 복호화가 불가능해서 공격자입장에서는 유리할 수 있지만, 암호화 속도가 느리다는 단점이 있다.
이에따라 공격자는 파일 암호화에는 속도가 빠른 대칭키 암호 알고리즘을 사용하고, 파일 암호화에 사용한 대칭키는 공개키를 통해 암호화한다.
랜섬웨어 파일 암호화에 사용되는 알고리즘은 주로 윈도우에서 제공하는 WinCrypt API 및 오픈 소스를 주로 사용한다.
아래는 이 게시물의 거의 모든 정보를 참고한 보고서에서 가져온 표이다.
구분 | 주요 알고리즘 | 대표 랜섬웨어 |
대칭키 | Salsa20 알고리즘 | Sodinokibi(REvil) 랜섬웨어 |
ChaCha20 알고리즘 | Conti 랜섬웨어 | |
RC4 알고리즘 | Clop 랜섬웨어 | |
AES 알고리즘 | Nemty 랜섬웨어 | |
공개키 | RSA 알고리즘 | Clop 랜섬웨어 |
Curve25519 알고리즘 | Babuk 랜섬웨어 |
WinCrypt API
- CryptGenKey
- CryptExportKey
- CryptDestroyKey
- GetTickCount : 난수 획득
1) Salsa 20 알고리즘
64바이트의 평문과 동일한 구성의 64바이트 키 스트림을 단순 연산(XOR, 덧셈, 시프트)으로 총 20라운드의 연산 과정을 통해 암호화를 수행한다.
키 값이 32바이트일 경우 "expand 32-byte k", 16바이트 일 경우 "expand 16-byte k" 문자열이 상수로써 사용된다.
2) ChaCha20 알고리즘
Salsa20 구성요소(expand 32-byte k)의 배치 순서가 변경되었다. 또한, QR연산시 7,8,12,16의 상수를 사용하여 4바이트의 WORD값을 두 번 연산한다.
3) RC4 알고리즘
데이터 암/복호화, 네트워크 패킷 암호화, 파일 암호화 시에 사용!
추가적으로 분석하면서 얻는 것들이 있으면 게시글을 계속 수정하고, 위에 언급한 보고서를 숙지해야겠다.
'Rev > Info' 카테고리의 다른 글
BAT 2 EXE (0) | 2022.06.16 |
---|---|
How to Debug (0) | 2022.03.31 |
Python - Subprocess Error (0) | 2022.03.20 |
[Malware] Cobalt Strike (0) | 2022.02.25 |
Find Windows OS (ASLR) (0) | 2022.02.21 |