본문 바로가기

리눅스

[draft] Logpresso log4j2-scan을 이용한 Elasticsearch Log4j 취약점 점검 및 패치

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/