반응형

안녕하세요 유똥입니다.

오늘은 최근에 전세계적으로 보안 이슈가 되고 있는 log4j에 대하여 포스팅 진행하겠습니다.

 

 Log4j 란?

Apache에서 만든 로깅을 위한 자바 기반의 오픈소스 라이브러리로 디버그용 도구로 주로 사용됩니다.

 

 Log4j 취약한 이유

인터넷 서버용 소프트웨어를 사용하고 있으며, 오픈소스 로깅 라이브러리라고 불리우며
로깅 ( 서버나 프로그램 등의 유지 관리를 목적으로 동작 상태를 기록 )
로깅에 대한 동작상태 기록으로 인해 해커들이 모든 컴퓨터에 대한 모든 권한을 취득할 수 있어 전세계 가장 취약한 보안 사례로 최근 이슈가 되었습니다.

 

이 라이브러리에 보안 취약점은 원격코드 실행(RCE : Remote Code Execution ) 로 CVSS 스코어 10점으로 가장 높은 심각도 단계입니다.

 

공격자(해커)가 원하는 코드를 Log4J2를 사용하고 있는 서버에서 실행할 수 있다는건데요. 마스터 권한을 얻었다고 생각하시면 됩니다. 

 

그럼 서버 상에 log4j 설치 여부 및 대응방안에 대하여 알아보겠습니다.

 

 설치 여부 확인

Log4j의 경우 JAVA 기반의 오픈소스 라이브러리 도구 있기 때문에 먼저 java 설치 여부를 봐야합니다.

① 실행중인 JAVA 여부 확인
ps -ef | grep java

② 자바 설치 여부 확인
rpm -qa | grep java

 

JAVA가 설치가 되어 있는 경우 log4j 설치가 되어있을 확률이 높아지며,
log4j 설치 여부를 추가 확인해봐야 합니다.

① log4j 파일 위치 확인
find / -name log4j*

 

아래는 log4j 진단 스캐너 스크립트 입니다.

git clone https://github.com/adilsoybali/Log4j-RCE-Scanner.git
cd Log4j-RCE-Scanner
chmod +x log4j-rce-scanner.sh
./log4j-rce-scanner.sh

해당 스크립트로 실행하시게 되면 
이 도구를 사용하면 여러 주소의 Apache Log4j에서 원격 명령 실행 취약점 CVE-2021-44228을 검색할 수 있습니다.

 

 취약버전 확인

[취약 버전]
2.0-beta9 ~ 2.14.1 버전

1. java 8 이상 : Log4j 2.17.0으로 업데이트
2. java 7 이하 : Log4j 2.12.3으로 업데이트

해당 제품의 버전을 이용중이 신 경우 최신버전(2.15.0)이상 으로 업데이트를 적용하셔야 합니다.

 

 

 대응 방안

최신 버전 설치

wget https://downloads.apache.org/logging/log4j/2.17.0/apache-log4j-2.17.0-bin.tar.gz
gunzip apache-log4j-2.17.0-bin.tar.gz
tar -xvf apache-log4j-2.17.0-bin.tar 

ll
total 16244
-rw-------. 1 root root     6880 Oct 30  2020 anaconda-ks.cfg
drwxr-xr-x. 2 root root     4096 Dec 20 12:06 apache-log4j-2.17.0-bin

cd apache-log4j-2.17.0-bin

pwd
/usr/local/apache-log4j-2.17.0-bin

최신 설치 다운 링크

https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core

https://downloads.apache.org/logging/log4j/

 

Index of /logging/log4j

 

downloads.apache.org

 

 취약점 완화

- 취약점 패치가 어려운 경우 다음의 방법으로 임시 조치를 진행하시면 됩니다.
2.0-beta9 ~ 2.10.0
① JndiLookup 클래스를 경로에서 제거 :

zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

② 2.10 ~ 2.14.1

log4j2.formatMsgNoLookups 또는 LOG4J_FORMAT_MSG_NO_LOOKUPS 환경변수를 true로 설정
java -Dlog4j2.formatMsgNoLookups=true  -jar  apps.jar    
LOG4J_FORMAT_MSG_NO_LOOKUPS=true

③ JndiLookup.class 파일만 삭제

log4j-core.버전.jar 파일을 일반적인 압축 프로그램으로 열어서 org/apache/logging/log4j/core/lookup/JndiLookup.class 파일만 삭제하고 재 압축

④ 2.7 ~ 2.14.1

 로그 출력 시 %m 대신 %m{nolookups} 포맷으로 수정 (patternLayout 패턴 수정)

여기까지 log4j 보안 문제 대응 방안에 대하여 알아보았습니다.

 

도움이 되셨다면 구독과 좋아요

궁금하신 내용이 있으시면 댓글 부탁드리겠습니다.

정리.txt
0.00MB

반응형

'IT > Linux' 카테고리의 다른 글

리눅스 Apache 2.4 modsecurity 설치  (0) 2021.12.25
Ubuntu 20.04 LTS 서버버전 설치  (0) 2021.12.25
IPTABLES 설정 스크립트  (0) 2021.06.20
IPTABLES 개념 및 명령어  (0) 2021.06.20
Nginx + PHP + MySQL 설치 스크립트  (0) 2021.06.18
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
});