Logpresso log4j2-scan을 이용한 Elasticsearch Log4j 취약점 점검 및 패치
Apache Log4j의 CVE-2021-44228(Log4Shell) 취약점은 원격 코드 실행이 가능한 매우 치명적 보안 이슈입니다.
1. log4j2-scan 소개
log4j2-scan은 Logpresso에서 제공하는 단일 실행 파일 기반의 Log4Shell 취약점 진단 도구입니다.
특징
- Log4j2 CVE-2021-44228, 45046, 45105 탐지
- 중첩된 JAR 파일까지 스캔
- --fix 옵션으로 자동 패치 가능(JAR 내부의 JndiLookup.class 제거)
- GitHub 저장소 : https://github.com/logpresso/CVE-2021-44228-Scanner
2. Elasticsearch 컨테이너 접속
Elasticsearch 컨테이너 셸에 접속합니다.
docker compose exec elasticsearch bash
Log4j 파일이 존재하는 경로를 확인합니다.
find / -name log4j-core-*.jar
ls -l /usr/share/elasticsearch/lib/ | egrep log4j
-rw-r--r-- 1 elasticsearch root 264060 Jul 3 2019 log4j-api-2.11.1.jar
-rw-r--r-- 1 elasticsearch root 1607947 Jul 3 2019 log4j-core-2.11.1.jar
3. log4j2-scan 다운로드 및 설치
다운로드합니다
wget https://github.com/logpresso/CVE-2021-44228-Scanner/releases/download/v1.2.2/logpresso-log4j2-scan-1.2.2-linux.tar.gz
압축 해제
tar xvfz logpresso-log4j2-scan-1.2.2-linux.tar.gz
4. 취약점 스캔
Elasticsearch 설치 경로를 대상으로 스캔을 수행합니다.
./log4j2-scan /usr/share/elasticsearch
[*] Found CVE-2021-44228 vulnerability in /usr/share/elasticsearch/bin/elasticsearch-sql-cli-7.10.2.jar, log4j 2.11.1
Scanned 170 directories and 936 files
Found 1 vulnerable files
Completed in 0.22 seconds
취약한 Log4j 파일이 발견되었습니다.
5. 자동 패치(완화 조치 적용)
--fix 옵션을 사용하면 JAR 내부에서 JndiLookup.class를 제거하여 취약점 동작을 막을 수 있습니다.
./log4j2-scan --fix /usr/share/elasticsearch
This command will remove JndiLookup.class from log4j2-core binaries. Are you sure [y/N]? y
실행 시 확인 메시지가 나옵니다.
[*] Found CVE-2021-44228 vulnerability in /usr/share/elasticsearch/bin/elasticsearch-sql-cli-7.10.2.jar, log4j 2.11.1
Scanned 170 directories and 936 files
Found 1 vulnerable files
Fixed 1 vulnerable files
Completed in 8.17 seconds
6. 패치 완료 확인
다시 스캔을 돌려 정상 처리 여부를 확인합니다.
./log4j2-scan /usr/share/elasticsearch
[*] Found CVE-2021-44228 vulnerability in /usr/share/elasticsearch/bin/elasticsearch-sql-cli-7.10.2.jar, log4j 2.11.1 (mitigated)
Scanned 170 directories and 937 files
Found 1 vulnerable files
Completed in 0.22 seconds
기존 취약점은 남아 있지만 (mitigated) 상태로 표시되며 exploit 동작은 불가능한 상태입니다.
참고URL
- Apache Log4j 2 다운로드 : https://downloads.apache.org/logging/log4j/2.15.0/
'리눅스' 카테고리의 다른 글
| [draft] 우분투에서 motd 메시지를 비활성화하는 방법(.hushlogin) (0) | 2025.11.19 |
|---|---|
| [draft] 리눅스에서 패스워드를 한 줄로 변경하는 방법 (0) | 2025.11.19 |
| [draft] CentOS 7에서 고정 IP 주소를 설정하는 방법 (0) | 2025.11.19 |
| [draft] 애플 맥북 실리콘 M1에서 도커 컨테이너 실행 시 오류 (0) | 2025.11.19 |
| [draft] Mac no matching manifest for linux/arm64/v8 in the manifest list entries 에러 (0) | 2025.11.19 |