기타/IT관련 정보

Log4j 보안 취약점에 관하여

철매존 2022. 2. 24. 23:57
728x90
반응형

Log4j 보안 취약점

Log4j란?

Log4j란 java/kotlin등의 코딩 도중 해당 프로그램의 로그를 기록해주는 라이브러리이다.

해당 보안 취약점이 일어난 배경

Log4j는 위에서 설명했듯, 코딩 도중에 프로그램의 로그를 기록해 준다.

그런데 이 방법은 JNDI(java naming and directory interface)를 사용하여 자바가 디렉토리를 통해 데이터를 찾을 수 있도록 하는 방식을 사용한다.
이 JNDI에서 LDAP가 문제가 되었는데, Log4j 에서 ${jndi:}를 사용하면 hello 객체를 실행하게 한다.
그리고 이를 사용하면 log4j로그가 남겨질 수 있는 모든 곳에 해당 방식을 사용하여 공격이 가능해지게 된다.

그래서 어떤 문제가 생기는가?

먼저 Log4j는 굉장히 많은 곳에서 사용한다. 실질 java기반의 소프트웨어를 사용하는 곳에서는 거의 모두 사용한다고 볼 수도 있을 것이라 생각한다.
따라서 많은 기업들이 공격의 대상이 될 수 있다.

또한 이 보안 취약점은 0 Day Vulnerability에 해당한다.
이는 해당 보안 취약점의 경우 공격자가 매우 빠르고 쉽게 공격할 수 있다는 것으로, 위에서 설명한 ${jndi:공격~} 을 하기만 하면 된다.

RCE취약점을 갖고 있다.
RCE(Remote Code Execution)이란 유효성 검사 없이 쉘 명령을 바로 실행할 수 있다는 것이다.
즉, 공격 대상의 Shell 권한을 획득하는 것이라 볼 수 있어 시스템에 악성 스크립트를 직접 삽입하는 등의 공격을 할 수 있다.
그리고 이 RCE취약점의 공격을 매우 쉽게, 많은 대상에게 진행할 수 있다.

해결 방안

  • java8 이상의 버전을 사용하고 있는 경우, Log4j 버전을 2.17.1이상으로 올린다.
  • java7 사용시 2.12.4 버전을 사용하면 된다고 한다.
반응형