본 내용은 Log4J 취약점이 발견되었을 당시, Elastic Search, Logstash, Kafka 조치를 하며 정리한 내용이다.
취약한 버전
- Apache Log4j 2.x <= 2.15.0-rc1
취약 소프트웨어
참고 URL
https://unit42.paloaltonetworks.com/apache-log4j-vulnerability-cve-2021-44228/
확인된 조치 방법
아래 중 1개 이상 조치
- log4j.2.15.0 rc2 이상의 버전 업그레이드
- JAVA_OPTS=-Dlog4j2.formatMsgNoLookups=true
config/log4j2.properties
에서appender.console.layout.pattern
의%m
을%m{nolookups}
로 변경
참고 URL
https://www.elastic.co/kr/blog/detecting-log4j2-with-elastic-security
https://www.docker.com/blog/apache-log4j-2-cve-2021-44228/
https://stackoverflow.com/questions/70315727/where-to-put-formatmsgnolookups-in-log4j-xml-config-file
회사 내 존재하는 취약 서비스 파악
Elastic Search
확인 결과
- 현재 사용중인 Elastic search 버전:
7.14.0
- Elastic Serach 버전 별 log4j 버전:
2.11.1
log4j 2.11.1
버전은 취약한 버전에 해당됨.
추가로 JVM arguments를 확인했으나, 보안 조치로 제시된 옵션 -Dlog4j.formatMsgNoLookups=true
는 없는 것을 확인 함.
조치 방안
- Elastic Search를 최신 버전으로 업데이트 한다.
- docker-compose.yml의 서비스 ENV에
LOG4J_FORMAT_MSG_NO_LOOKUPS=true
를 작성해준다.
Logstash
logstash V6.8.x
,V7.x
버전 이상 모두 취약하다고 함
확인 결과
- 사용중인 logstash 버전:
7.14
- 사용중인 log4j 버전:
2.14.0
조치 방안
- Logstash를 최신버전으로 업데이트 한다.
- docker-compose.yml 내
ENV LOG4J_FORMAT_MSG_NO_LOOKUPS=true
설정
Kafka
확인 결과
- 사용중인 log4j 버전:
log4j12-1.7.30
해당 버전(log4j 1.x)은 JNDI를 사용할 수 있는 JMS Appender
가 포함되어있지만, JNDI를 사용하지 않으면 취약하지 않다고 함.
조치 방안
confluent Kafka Docker Image의 log4j가 2.15
버전으로 업데이트되어 배포되었음.2.15
버전 또한 계속해서 우회방식으로 취약점이 발생하고 있음.
따라서, 현재 사용하는 버전 1.7.30
의 경우 추가적인 업그레이드 지원이 되지 않아 보안위협에 노출될 수 있으나, JNDI를 사용하지 않음으로, 별도 조치 X
'Tech > ELK' 카테고리의 다른 글
[Elastic Search] wsl에서 esdump시, no space left on device 에러 해결 (0) | 2021.12.09 |
---|---|
[filebeat] 설정 파일 참고 (0) | 2021.12.03 |
[Elastic Search] esdump 활용 (0) | 2021.12.03 |