1. 사건 개요
CVE-2021-44228
이 취약점을 이용하면 공격자는 관리자 권한을 획득할 수 있습니다.
본 취약점은 패치가 적용되어도 향후 수년에 걸쳐서 문제가 될 수 있습니다.
이유는 JAVA 프로젝트의 특성상 jar 파일에 포함되어 다양한 프로젝트에 숨겨져 있을 수 있기 때문입니다.
또한, 문제가 되는 class 파일 이름을 교체하고 마치 아무 문제가 없는 파일로 위장할 수도 있습니다.
최우선적으로 웹방화벽에서 공격을 차단해야 합니다.
하지만, 우회 공격으로 계속 진화할 수 있기 때문에 장기적인 관점에서 관리되어야 할 사건입니다.
시스템(서버, PC)에서 발생되는 모든 이벤트에 대하여 실시간 분석하는 방식으로 대응하는 것이
지속적이면서 원천적으로 할 수 있는 방법입니다.
2. 영향 받는 소프트웨어[3]
- Apache Struts
- Apache Solr
- Apache Druid
- Apache Flink
- ElasticSearch
- Flume
- Apache Dubbo
- Logstash
- Kafka
- Spring-Boot-starter-log4j2
- Apache JMeter
- Grails
- Apache Hadoop
- Apache Spark
- …
2-1. 다음 프로젝트는 기본적으로 Log4j를 사용하지 않는 것으로 보이지만 선택적으로 이를 사용하도록 구성할 수 있습니다.[3-1]
- ATG
- Dropwizard
- Hibernate
- Java Server Faces
- Spring Framework
- Apache Tomcat
3. 대응 방법
1) 자체 점검[4]
sudo egrep -I -i -r '\$\{jndi:(ldap[s]?|rmi|dns):/[^\n]+' /var/log
sudo find /var/log -name \*.gz -print0 | xargs -0 zgrep -E -i '\$\{jndi:(ldap[s]?|rmi|dns):/[^\n]+'
2) Snort & Suricata Rule 업데이트[5]
– CVE-2021-44228 관련 22개 업데이트 됨 [6]
3) 웹방화벽 및 웹 로그 Query
(?i)\$(%7b|\{)jndi:((ldap[s]?|rmi|dns)|[\$\{lower\:ldap\}]+):\/[^\n]+
4) 공개된 Scanner : 윈도우, 리눅스
▶ https://github.com/logpresso/CVE-2021-44228-Scanner
4. INDICATORS OF COMPROMISE (IOCS)
▶ https://blog.talosintelligence.com/2021/12/apache-log4j-rce-vulnerability.html
5. Log4shell HoneyPot
▶ https://pastebin.com/1bbZ37dD?s=09
6. Log4j RCE Cheat Sheet
▶ https://www.cyberkendra.com/2021/12/log4shell-advisory-resource-cheat-sheet.html
7. Log4Shell 샘플 코드
▶ https://github.com/christophetd/log4shell-vulnerable-app
▶ https://github.com/tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce
8. 마이크로소프트 대응 방안
▶ https://msrc-blog.microsoft.com/2021/12/11/microsofts-response-to-cve-2021-44228-apache-log4j2/
9. KISA 권고
□ 해결 방안 및 보안 권고 사항
o 2.0-beta9 ~ 2.10.0
– JndLookup 클래스를 경로에서 제거 : zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
o 2.10 ~ 2.14.1
– log4j2.formatMsgNoLookups = true
□ Logback 취약점 발표
o Logback에서 발생하는 원격코드실행 취약점(CVE-2021-42550)
▶ https://krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36396
x. 참고 사이트
[0] https://bit.ly/3lWKNAO [1] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228 [2] https://logging.apache.org/log4j/2.x/security.html [3] https://unit42.paloaltonetworks.com/apache-log4j-vulnerability-cve-2021-44228/ [3-1] https://bishopfox.com/blog/log4j-zero-day-cve-2021-44228 [4] https://gist.github.com/Neo23x0/e4c8b03ff8cdf1fa63b7d15db6e3860b [5] https://rules.emergingthreatspro.com/open/ [6] https://github.com/QubitSecurity/CVE/blob/main/CVE-2021-44228
x. 내부 블로그