IT Security/Vulnerability

취약점) CVE-2021-45105 PoC / Log4j2 취약점 테스트

로픽 2021. 12. 21. 00:26
300x250

CVE-2021-45105 PoC / Log4j2 취약점 테스트


CVE-2021-45105 공개 후 해당 취약점에 대한 PoC도 github에 공개되었습니다.

핵심 공격 구문은 ${${::-${::-$${::-$}}}} 입니다.

보안공지 및 기사를 확인했을때
공격자가 'X-Api-Version' 헤더에 특정 문자열(${${::-${::-$${::-$}}}})을 포함한 요청을 대상 서버에 전송하는 경우, log4j에서 로그를 저장하는 과정에서 StackOverFlow 오류를 발생시켜 해당 프로세스가 종료될 수 있다고 합니다.


* PoC 테스트

(모바일 환경에서 이미지 확인이 어려울 수 있습니다)

- 제공된 환경에서 테스트시 "Infinite loop in Property ....." 란 에러메시지를 출력합니다.
- 이때 웹서비스가 다운되지 않지만 여러 차례 공격시도 후 Console에서 로그를 확인하면 중간에 에러로그가 발생하거나 로그가 출력되지 않는것이 확인되었습니다.

 

* PoC 공격시도 후

공격시도를 하지 않았지만 에러로그 출력

 

API Call에 대한 응답은 있으나 Console에서 로그가 출력되지 않음.


환경에서 따라 해당 공격에 영향도는 다르겠지만 Infinite loop로 인한 영향은 있는 것으로 보입니다.


* PoC 변형 테스트

- X-Api-Version 헤더와 다른 헤더로 공격구문을 실행해도 영향이 있습니다.
(이 경우 웹 소스코드를 변경해야함. / Ex) @RequestHeader("X-Api-Version") > @RequestHeader("X-For-Forward"))
- 패턴 레이아웃에 ${ctx:loginId} 자체를 사용하는 것이 문제를 일으키는 것으로 보입니다.


- 공격 구문을 변형하여 테스트 ${${::-${::-$${::-$ 까지 포함시 공격에 영향이 있습니다.
* 영향없는 공격구문
${${::-${::-$}}}
${${::-${::-$${:::::-$}}}}
${${::-${::-$${lopic:lopic:-$}}}}
${${::-${::-$${lopiclopiclopiclopiclopiclopiclopiclopic::-$}}}}


* 영향있는 공격구문
${${::-${::-$${::-$${::-$}}}}}
${${::-${::-$${::-$lopiclopiclopiclopiclopiclopiclopiclopic}}}}


* 취약점 완화

1) PatternLayout 에서 ${ctx:loginId} 또는 $${ctx:loginId} 를 제거하거나 (%X, %mdc, or %MDC) 로 변경.

//취약한 상태 <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n ${ctx:apiVersion} ${ctx:clientRef}"/> </Console> //취약점 조치 <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n %X ${ctx:clientRef}"/> </Console>

${ctx:loginId} 변경 후



2) Apache Log4j 2.17.0 으로 패치 (Log4j 2.15 이상 버전 사용시 Java 8이상 필요)
https://logging.apache.org/log4j/2.x/download.html

 

Log4j – Download Apache Log4j 2

<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apa

logging.apache.org


* 결론 (Production 환경에서 취약점 영향은 더욱 클 수 있습니다)

- HTTP 헤더에 공격구문을 포함하여 Dos 공격 가능
- X-Api-Version 헤더 외 다른 헤더를 통한 공격 가능
- 일정 수준의 공격구문에서 실행 가능
- 보안 솔루션으로 어느정도 방어가 가능할 것으로 보이나 완벽한 취약점 조치를 위해 패치 및 소스코드 수정필요.






참고자료

출처 : PoC github https://github.com/cckuailong/Log4j_dos_CVE-2021-45105

 

GitHub - cckuailong/Log4j_dos_CVE-2021-45105: Log4j_dos_CVE-2021-45105

Log4j_dos_CVE-2021-45105. Contribute to cckuailong/Log4j_dos_CVE-2021-45105 development by creating an account on GitHub.

github.com


출처 : 안랩 ASEC https://asec.ahnlab.com/ko/29893/

 

[공지] Log4j 신규 취약점 (CVE-2021-45105) - Log4j 2.17.0 - ASEC BLOG

2021년 12월 18일 Log4j 2.16.0 버전에서 동작하는 CVE-2021-45105 취약점이 추가로 공개되었다. (CVSS 7.5) 1. 취약한 제품 버전 Log4j 2.0-beta9 ~ 2.16.0 버전 2. 취약점 공격 기법 취약점 공격은 Log4j를 사용하는 응

asec.ahnlab.com


출처 : 보안뉴스 https://www.boannews.com/media/view.asp?idx=103443

 

[긴급] 로그4j 신규 취약점 ‘CVE-2021-45105’과 패치 ‘Log4j 2.17.0’ 나와

log4j의 신규 취약점과 새로운 패치가 나와 보안담당자들의 시급한 업데이트가 요구된다. 아파치재단은 12월 18일 ‘Log4j 2.16.0’ 버전에서 동작하는 CVE-2021-45105 취약점을 추가로 공개했다. 안랩 ASE

www.boannews.com

 

반응형