보호나라 Apache Log4j 보안 업데이트 권고 통합/임시대응 방안 및 없는 내용 추가(굵은 글씨) ver.2022.01.21

□ 개요
o Apache 소프트웨어 재단은 자사의 Log4j 2에서 발생하는 취약점을 해결한 보안 업데이트 권고[1]
o 공격자는 해당 취약점을 이용하여 악성코드 감염 또는 정상 서비스 중지 등의 피해를 발생시킬수 있으므로, 최신 버전으로 업데이트 권고
※ 관련 사항은 참고사이트 [2] 취약점 대응가이드를 참고 바랍니다.
※ 참고 사이트 [3]를 확인하여 해당 제품을 이용 중일 경우, 해당 제조사의 권고에 따라 패치 또는 대응 방안 적용

□ 주요 내용
o Apache Log4j 1.x 에서 발생하는 원격코드 실행 취약점(CVE-2022-23307)[4]
o Apache Log4j 1.x에서 발생하는 SQL Injection 취약점(CVE-2022-23305)[5]
o Apache Log4j 1.x에서 발생하는 원격코드 실행 취약점(CVE-2022-23302)[6]
o Apache Log4j 2에서 발생하는 서비스 거부 취약점(CVE-2021-45105)[7]
o Apache Log4j 2에서 발생하는 원격코드 실행 취약점(CVE-2021-45046)[8]
o Apache Log4j 2에서 발생하는 원격코드 실행 취약점(CVE-2021-44832)[9]
o Apache Log4j 2에서 발생하는 원격코드 실행 취약점(CVE-2021-44228)[10]
o Apache Log4j 1.x에서 발생하는 원격코드 실행 취약점(CVE-2021-4104)[11]
o Apache Log4j 1.x 에서 발생하는 원격코드 실행 취약점(CVE-2020-9493)[12]
o Apache Log4j 1.x, 2에서 발생하는 SMTP 메시지 가로채기(man-in-the-middle) 공격 취약점(CVE-2020-9488)[13]
o Apache Log4j 1.x에서 발생하는 원격코드 실행 취약점(CVE-2019-17571)[14]
o Apache Log4j 2에서 발생하는 원격코드 실행 취약점(CVE-2017-5645)[15]
※ Log4j : 프로그램 작성 중 로그를 남기기 위해 사용되는 자바 기반의 오픈소스 유틸리티

□ 영향을 받는 버전
o CVE-2022-23307 : 원격 코드 실행 취약점 / CVSS 기준 N/A
- 1.x 버전
※ Chainsaw를 사용하지 않는 경우 취약점 영향 없음
o CVE-2022-23305 : SQL Injectin 취약점 / CVSS 기준 N/A
- 1.x 버전
※ JDBCAppender를 사용하지 않는 경우 취약점 영향 없음
o CVE-2022-23302 : 원격 코드 실행 취약점 / CVSS 기준 N/A
- 1.x 버전
JMSSink를 사용하지 않는 경우 취약점 영향 없음
o CVE-2021-45105 : 디도스 공격 취약점 / CVSS 기준 7.5점
- 2.0-alpha1 ~ 2.16.0 버전
※ 취약점이 해결된 버전 제외(Log4j 2.3.1, 2.12.3 및 이후 업데이트 버전 제외)
o CVE-2021-45046 : 정보 노출 및 원격 코드 실행 취약점 / CVSS 기준 9.0점
- 2.0-beta9 ~ 2.15.0 버전
※ 취약점이 해결된 버전 제외(Log4j 2.3.1, 2.12.2, 2.12.3 및 이후 업데이트 버전 제외)
o CVE-2021-44832 : 임의 코드 실행 취약점 / CVSS 기준 6.6점
- 2.0-beta7 ~ 2.17.0 버전
※ 취약점이 해결된 버전 제외(Log4j 2.3.2, 2.12.4 및 이후 업데이트 버전 제외)
o CVE-2021-44228 : 원격 코드 실행 취약점 / CVSS 기준 10점
- 2.0-beta9 ~ 2.14.1 버전
※ 취약점이 해결된 버전 제외(Log4j 2.3.1, 2.12.2, 2.12.3 및 이후 업데이트 버전 제외)
o CVE-2021-4104 : 원격 코드 실행 취약점 / CVSS 기준 8.1점
- 1.x 버전
※ JMSAppender를 사용하지 않는 경우 취약점 영향 없음
o CVE-2020-9493 : 원격 코드 실행 취약점 / CVSS 기준 9.8점
- 1.x 버전
Chainsaw를 사용하지 않는 경우 취약점 영향 없음
o CVE-2020-9488 : SMTP 메시지 가로채기(man-in-the-middle) 공격 / CVSS 기준 3.7점
- 1.x 버전
- 2.0-alpha1 ~ 2.13.2 버전
※ SmtpAppender를 사용하지 않는 경우 취약점 영향 없음
o CVE-2019-17571 : 임의 코드 실행 취약점 / CVSS 기준 9.8점
- 1.x 버전
※ SocketServer를 사용하지 않는 경우 취약점 영향 없음
o CVE-2017-5645 : 임의 코드 실행 취약점 / CVSS 기준 9.8점
- 2.0-alpha1에서 2.8.1 버전
※ SocketServer를 사용하지 않는 경우 취약점 영향 없음

□ 대응방안
o 제조사 홈페이지를 통해 최신버전으로 업데이트 적용[16]
※ 제조사 홈페이지에 신규버전이 계속 업데이트되고 있어 확인 후 업데이트 적용 필요
- CVE-2021-44228, CVE-2021-45046, CVE-2017-5645
· Java 8 이상 : Log4j 2.17.1 이상 버전으로 업데이트
· Java 7 : Log4j 2.12.4 이상 버전으로 업데이트[17]
· Java 6 : Log4j 2.3.2 이상 버전으로 업데이트[17]
※ log4j-core-*.jar 파일 없이 log4j-api-*.jar 파일만 사용하는 경우 위 취약점의 영향을 받지 않음
o 신규 업데이트가 불가능할 경우 아래의 조치방안으로 조치 적용
- 공통 : log4j*.properties 또는 log4j*.xml 또는 log4j*.yaml 또는 log4j*.yml 또는 log4j*.json 또는 log4j*.jsn 설정파일 또는 DefaultConfiguration 내 코드 삭제
- CVE-2021-45105
· PatternLayout에서 ${ctx:loginId} 또는 $${ctx:loginId}를 (%X, %mdc, or %MDC)로 변경
· ${ctx:loginId} 또는 $${ctx:loginId}를 제거
- CVE-2021-44228, CVE-2021-45046, CVE-2021-44832
· JndiLookup, JdbcAppender 클래스를 경로에서 제거

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

- CVE-2021-4104, CVE-2019-17571, CVE-2022-23302, CVE-2022-23305
· JMSAppender, SocketServer, JDBCAppender, JMSSink 클래스를 경로에서 제거

zip -q -d log4j-1.*.jar org/apache/log4j/net/JMSAppender.class
zip -q -d log4j-1.*.jar org/apache/log4j/net/SocketServer.class
zip -q -d log4j-1.*.jar org/apache/log4j/net/JMSSink.class
zip -q -d log4j-1.*.jar org/apache/log4j/jdbc/JDBCAppender.class

※ log4j 1.x버전 사용자의 경우 추가적인 업그레이드 지원 중지로 인해 다른 보안위협에 노출될 가능성이 높아 최신버전(2.x) 업데이트 적용 권고
- CVE-2020-9488
· SmtpAppender 클래스를 경로에서 제거

zip -q -d log4j-1.*.jar org/apache/log4j/net/SMTPAppender.class
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/appender/SmtpAppender.class

- CVE-2017-5645
· SocketServer 클래스를 경로에서 제거

zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/net/server/AbstractSocketServer.class
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/net/server/TcpSocketServer.class
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/net/server/UdpSocketServer.class

- CVE-2020-9493, CVE-2022-23307
· Apache Chainsaw를 2.1.0이상 버전으로 업데이트
· Chiansaw를 통해 직렬화 된 로그를 읽지 않도록 설정 (※ XMLSocketReceiver로 대체 가능)
· Chainsaw 클래스를 경로에서 제거

zip -q -d log4j-1.*.jar org/apache/logging/log4j/chainsaw/*
또는
zip -q -d log4j-1.*.jar org/apache/log4j/chainsaw/*


□ 탐지정책
o 참고사이트 [2] 취약점 대응 가이드를 참고하여 탐지정책 적용
※ 본 탐지정책은 내부 시스템 환경에 따라 다르게 동작할 수 있으며, 시스템 운영에 영향을 줄 수 있으므로 충분한 검토 후 적용 바랍니다.
※ 공개된 탐지정책(참고사이트 [18])은 우회가능성이 있으므로 지속적인 업데이트가 필요합니다.

□ 참고사이트
[1] apache 보안업데이트 현황 : https://logging.apache.org/log4j/2.x/security.html
[2] 취약점 대응 가이드 : https://www.boho.or.kr/data/guideView.do?bulletin_writing_sequence=36390
[3] 제조사별 현황 : https://github.com/NCSC-NL/log4shell/tree/main/software
[4-1] 취약점 정보 : https://nvd.nist.gov/vuln/detail/CVE-2022-23307
[4-2] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-23307
[5-1] 취약점 정보 : https://nvd.nist.gov/vuln/detail/CVE-2022-23305
[5-2] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-23305
[6-1] 취약점 정보 : https://nvd.nist.gov/vuln/detail/CVE-2022-23302
[6-2] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-23302
[7-1] 취약점 정보 : https://nvd.nist.gov/vuln/detail/CVE-2021-45105
[7-2] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45105
[8-1] 취약점 정보 : https://nvd.nist.gov/vuln/detail/CVE-2021-45046
[8-2] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046
[9-1] 취약점 정보 : https://nvd.nist.gov/vuln/detail/CVE-2021-44832
[9-2] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44832
[10-1] 취약점 정보 : https://nvd.nist.gov/vuln/detail/CVE-2021-44228
[10-2] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228
[11-1] 취약점 정보 : https://nvd.nist.gov/vuln/detail/CVE-2021-4104
[11-2] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-4104

[12-1] 취약점 정보 : https://nvd.nist.gov/vuln/detail/CVE-2020-9493
[12-2] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-9493
[13-1] 취약점 정보 : https://nvd.nist.gov/vuln/detail/CVE-2020-9488
[13-2] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-9488
[14-1] 취약점 정보 : https://nvd.nist.gov/vuln/detail/CVE-2019-17571
[14-2] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-17571
[15-1] 취약점 정보 : https://nvd.nist.gov/vuln/detail/CVE-2017-5645
[15-2] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5645
[16] 신규버전 다운로드 : https://logging.apache.org/log4j/2.x/download.html
[17] Log4j 2.12.4, 2.3.2 다운로드 : https://archive.apache.org/dist/logging/log4j/
[18] 탐지정책 : https://rules.emergingthreatspro.com/open/suricata-5.0/rules/emerging-exploit.rules

□ 기타(보호나라 원글)
https://www.boho.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36397
https://www.boho.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389

'분석 > 취약점' 카테고리의 다른 글

자바 역직렬화 취약점(JAVA Object Deserialization)  (0) 2021.12.30

+ Recent posts