728x90
반응형
- CVE-2021-44228
- Logging Framework
log4j ?
- 서비스 동작 과정에서 일어나는 모든 기록을 남겨 침해사고 발생 및 이상징후를 점검하기 위해 필수적으로 필요한 기능이다. 무료로 제공되는 오픈소스 프로그램으로 Java 기반의 모든 어플리케이션에서 사용할 수 있다.
취약점에 따른 피해
- 원격의 공격자가 이 취약점을 통해 악성코드 유포, 중요 데이터 탈취, 임의의 파일 다운로드 및 실행 등이 가능하다.
취약한 log4j를 사용하고 있는지 확인하는 방법
- log4j를 사용하는 제품에 관한 정보는 아래 링크에서 확인할 수 있다.
https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592
- log4j 설치 여부 확인(Linux)
- dpkg -l | grep log4j
- find / -name 'log4j*'
- log4j 설치 여부 확인(Windows)
- Window Explorer의 검색 기능 (log4j 검색)을 이용
- 취약점 스캐너를 사용하는 방법
- 아래 링크에서 스캐너를 실행하여 취약 여부 확인
https://github.com/logpresso/CVE-2021-44228-Scanner
log4j의 버전 확인 방법
- log4j-core 버전 확인
- dpkg -l | grep log4j
- find / -name 'log4j*'
- Java Spring Framework Maven 사용 시
- log4j가 설치된 경로의 pom.xml 파일을 열어 **"log4j-core"**로 검색
- 검색 결과 **"<version>사용버전</version>"**으로 확인
버전에 따른 조치 방법
- log4j 2.15버전 이상으로 업데이트
https://logging.apache.org/log4j/2.x/download.html
- 즉시 업데이트가 어려운 경우 버전에 따른 해결 방안
- 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로 설정
- 2.0-beta9 ~ 2.10.0 : JndiLookup 클래스를 경로에서 제거
해당 취약점 탐지를 위한 패턴 작성 방법
- 아래 링크 참조를 통해 log4j 를 검색 후 탐지 정책 확인이 가능하다.
https://rules.emergingthreatspro.com/open/suricata-5.0/rules/emerging-exploit.rules
* 내부 시스템 환경에 따라 다르게 동작할 수 있으며, 시스템 운영에 영향을 줄 수 있으므로 충분한 검토 후 적용이 필요, 또한 우회의 가능성이 있으므로 지속적인 업데이트가 필요
참고 : 한국인터넷진흥원 - Q&A 형식으로 알아보는 Apache log4j 취약점 대응 가이드
728x90
반응형