Always-Try(정보보안 및 일상)

log4j 버전 별 취약점 및 신규 취약점 대응 방안 총 정리 (CVE-2019-17571, CVE-2021-44228, CVE-2021-45046, CVE-2021-4104) 본문

Pen Test

log4j 버전 별 취약점 및 신규 취약점 대응 방안 총 정리 (CVE-2019-17571, CVE-2021-44228, CVE-2021-45046, CVE-2021-4104)

Always-Try 2021. 12. 16. 00:19

이전 포스팅인 CVE-2021-44228 해결 방안으로 나온 log4j 2.1.15 버전이 출시되지 얼마되지 않아 2.1.15 버전에 새로운 취약점이 발견되어 최근 보안 조치를 권고혼란을 주고 있다. 이외에도 log4j 관련 된 다양한 취약점이 발견되고 있는데, 이에 log4j 관련 취약점을 한번 정리해보고자 한다. 참고로 대응 방안에 Java 버전별로 다른 log4j 버전을 제시하는데, 이는 Java 7과 8 버전별로 지원하는 log4j의 버전이 다르기 때문인 점을 참고바란다.

 

1. CVE-2019-17571

  • 취약점 요약: 로그 수집을 위한 소켓기능(SocketServer)에 사용되는 SocketNode 클래스에서 발생하는 취약점
  • 영향 받는 버전: 1.2.x 버전
  • 상세 내용: https://m.blog.naver.com/skinfosec2000/221774181380
  • 대응 방안: log4j 1점대 버전은 더 이상 유지보수가 되지 않으므로 2점대로 업데이트

 

2. CVE-2021-4104

  • 취약점 요약: Log4j 1.2의 옵션인 JMSAppender를 사용하는 경우 CVE-2021-44228과 유사한 방식으로 원격 코드 실행을 초래하는 JNDI 요청을 수행하도록 할 수 있음
  • 영향 받는 버전: 1.2 버전
  • 상세 내용: https://nvd.nist.gov/vuln/detail/CVE-2021-4104
  • 대응 방안: log4j 1점대 버전은 더 이상 유지보수가 되지 않으므로 2점대로 업데이트

위 2가지 취약점을 고려하여 2점대로 업데이트 할 경우, 아래 2가지 취약점에 대한 추가 고려가 필요하다.

 

3. CVE-2021-44228

  • 취약점 요약: Log4j JDNI API에서 LDAP 쿼리를 이용한 취약점
  • 영향 받는 버전: 2.0-beta9 ~ 2.14.1 버전 (java 7 버전을 위해 신규 릴리즈 된 Log4j 2.12.2 제외)
  • 상세 내용: https://always-try.tistory.com/174
  • 대응 방안: Java 8의 경우 Log4j 2.15.0으로 업데이트, Java 7의 경우 Log4j 2.12.2으로 업데이트

하지만, log4j 2.15.0 으로 업그레이드 시는 아래 4번 취약점(CVE-2021-45046)이 존재한다.

 

4. CVE-2021-45046

 

5. 결론

얼마전에 대응 방안이라고 가이드했던 log4j 2.1.15 버전이 출시된지 얼마나 됐다고 새로운 취약점들이 계속 나와 혼란스럽다. 그래도 할 일은 해야지. 마지막으로 지금까지 다룬 취약점의 대응 방안을 요약해보자면 아래와 같다. 

  • log4j 1.2.x 버전을 사용하는 경우: 아래 2가지 고려하여 업데이트
  • Java 8에서 log4j를 사용하는 경우: Log4j 2.16.0으로 업데이트
  • Java 7에서 log4j를 사용하는 경우: Log4j 2.12.2으로 업데이트

힘내자.

 

끝.

Comments