1. 사건 개요

CVE-2021-44228

[1], 아파치 소프트웨어 재단의 자바 언어로 제작된 Log4j 라이브러리[2]를 사용하는, 대부분의 인터넷 서비스에서 매우 중대한 보안 취약점이 발견된 사건. (From 나무위키[0])

이 취약점을 이용하면 공격자는 관리자 권한을 획득할 수 있습니다.

본 취약점은  패치가 적용되어도 향후 수년에 걸쳐서 문제가 될 수 있습니다.
이유는 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. 내부 블로그