[사이버 보안] 아파치 Log4j 취약점 이슈


코로나로 인한 펜데믹은 우리에게 언텍트 시대를 강제하게 되었습니다.

우리는 이제 업무와 경제생활, 교육 등을 포함한 많은 활동들을 온라인으로 대체하고 있는데, 변화하는 온라인 위주의 생활 환경에 맞춰 대두되는 문제가 바로 온라인 보안 영역입니다.


전 세계적으로 하루에 약 10,000건 이상의 보안 이벤트가 발생하며, 백만개 이상의 멀웨어(Malware), 6만개 이상의 신규 악성 도메인이 생성됩니다.


우리는 휴대폰과 노트북, 타블렛과 같이 온라인에 연결된 개인 디바이스를 평균 2개 이상 사용하고 있으며 IoT 제품의 사용량도 폭발적으로 늘어났습니다.

하지만 갑작스럽게 노출된 온라인 환경에 맞춰 보안의 중요성을 의식하지 못해 피해를 입는 경우가 많이 발생합니다.


그에 따라 인포라드는 사이버 보안과 그에 관련된 여러가지 정보들을 정리 해보겠습니다.

이번 시간에는 지난 2021년 12월에 발생한 아파치의 Log4j 취약점 이슈에 대해 알아보겠습니다.

 

아파치(Apache) Log4j





아파치 Log4j는 아파치 HTTP 서버를 포함한 아파치 소프트웨어 프로젝트를 지원하는 비영리 재단인 아파치 소프트웨어 재단(Apache Software Foundation)에서 체키 굴쿠(Ceki Gülcü)가 2001년 1월 8일에 발표한 자바(Java)기반의 로깅 유틸리티입니다.


Log4j는 코딩 중 프로그램의 로그를 기록해주는 라이브러리로, 개발자가 제품의 문제나 정보를 식별하기 위해, 그리고 프로그램을 개발하는 도중에 디버깅 등을 위해 어플리케이션 안에 다양한 데이터의 로그 기록을 남기는 목적으로 사용됩니다.

로깅되는 데이터는 일반 사용자가 어플리케이션을 이용하며 입력하는 데이터가 포함될 수 있습니다.


아파치 Log4j 개발팀은 Log4j의 후속으로 Log4j 2버전을 개발했습니다.

Log4j 2버전은 전작이 가지고 있던 문제점들을 보완하고 확장성을 더 높이기 위해 개발되었으며, 아파치 로깅 서비스 프로젝트 관리 위원회는 2015년 8월 5일, Log4j 1버전의 수명이 만기에 도달했고, 사용자들은 Log4j 2버전으로 업그레이드 할 것을 권고한다고 발표했습니다.

현재 Log4j 1버전은 지원이 중단되었습니다.


Log4j는 오픈소스로 제공되는 무료 로깅 라이브러리로, 현재 전 세계에서 사용되고 있는 대부분의 자바 웹 프로그래밍 서버, 특히 기업용 소프트웨어와 어플리케이션 전반에서 사용되고 있는 라이브러리입니다.

버락 오바마 전 미국 대통령 정부의 사이버 보안 위원회 위원인 톰 켈러만(Tom Kellermann)은 아파치를 '어플리케이션 세계와 컴퓨터 환경 사이를 연결하는 다리의 거대한 기둥 중 하나'라고 설명했습니다.

 

아파치 Log4j의 취약점 이슈


아파치 소프트웨어 재단은 중국 알리바바 클라우드 보안팀의 Chen Zhaojun으로부터 2021년 11월 24일, Log4j의 치명적인 취약점을 발견했다는 정보를 비공개로 전달받았습니다.


Log4Shell 이라는 이름으로 불린 이 취약점은 TCP/IP 상에서 디렉토리 서비스를 조회하고 수정하는 응용 프로토콜인 LDAP(Lightweight Directory Access Protocol)와 디렉토리 서비스에서 제공하는 데이터 및 객체를 발견하고 참고하기 위한 자바 API인 JNDI(Java Naming and Directory Interface) 요청을 검사하지 않는 Log4j의 특성을 이용해 공격자가 임의의 자바 코드를 서버 또는 기타 컴퓨터에서 실행할 수 있고 민감한 정보를 유출할 수 있도록 만들어줍니다.


쉽게 말해 공격자가 Log4Shell 취약점을 이용해 서버에 침입하고 자신이 원하는 코드를 입력할 수 있으며, 일반 사용자의 컴퓨터까지 침입할 수 있다는 것입니다.


아파치 소프트웨어 재단은 2021년 12월 9일 Log4Shell 취약점을 대중에 공개했으며, 컴퓨터 시스템 보안 취약점의 심각도를 평가하기 위한 산업 표준인 CVSS(Common Vulnerability Scoring System)에서 최고 점수인 10점의 심각도를 부여했습니다.

아파치 보안팀은 이 취약점에 영향을 받는 소프트웨어 프로젝트 목록도 게시했는데, 목록에는 아마존 웹 서비스(Amazon Web Service)와 아이클라우드(iCloud), 마인크레프트(Minecraft), 스팀(Steam) 등 전 세계적으로 사용되는 어플리케이션들이 포함되어 있습니다.

전문가들은 Log4Shell을 역사상 가장 크고 치명적인 취약점이라고 설명했습니다.


전 세계의 보안 전문가들이 Log4j의 취약점을 분석하며, 최초의 발견으로부터 3개의 취약점이 더 발견되었습니다.

현재까지 Log4Shell 취약점과 관련된 범죄는 대부분 가상화폐 채굴 소프트웨어를 공격하거나 보안 취약 기기를 좀비 PC로 만드는 봇넷 코드를 심는 수준인 것으로 알려져 있습니다.

하지만 보안 전문가들은 이 취약점을 완전히 극복하는데 최소 몇 달에서 몇 년이 걸릴 것으로 추정하고 있는 만큼 제조사에서 제공하는 최신 버전의 업데이트를 적용하고 국가 사이버 안보 센터 및 인터넷 보호나라(KISA)의 최신 보안 정보를 지속적으로 확인하는 것이 필요합니다.

 

Log4Shell의 대응 방안


국가 사이버 안보센터에서는 아파치 Log4j 취약점과 관련해 보안패치 권고를 공지했으며, 주요 내용은 아래와 같습니다.

해당 페이지 링크 : https://www.ncsc.go.kr:4018/cop/bbs/selectBoardArticle.do


현재 Log4Shell과 관련된 취약점

  • Apahce Log4j 2에 존재하는 원격코드실행 취약점(CVE-2021-44228, CVSS 10.0)

  • Apahce Log4j 2에 존재하는 원격코드실행 취약점(CVE-2021-45046, CVSS 9.0)

  • Apahce Log4j 1.2에 존재하는 원격코드실행 취약점(CVE-2021-4104, CVSS 8.1)

  • Apahce Log4j 2에 존재하는 서비스거부 취약점(CVE-2021-45105, CVSS 7.5)

각 취약점의 영향을 받는 Log4j 버전

  • CVE-2021-44228 : 2.0-beta9 ~ 2.14.1버전(Log4j 2.12.2버전은 제외)

  • CVE-2021-45046 : 2.0-beta9 ~ 2.12.1 및 2.13.0 ~ 2.15.0버전

  • CVE-2021-4104 : 1.2버전(*JMSAppender 미사용시 취약하지 않으므로 해당 기능 사용 여부 확인)

  • CVE-2021-45105 : 2.0-beta9 ~ 2.12.16버전(Log4j-core JAR 파일이 없는 경우 취약점 영향 없음)

조치 방안

  • CVE-2021-44228, CVE-2021-45046 : Java 8(Log4j 2.16.0으로 업데이트) / Java 7(Log4j 2.12.2으로 업데이트) / 업데이트 불가능 시 JndiLookup 클래스를 경로에서 제거

  • CVE-2021-4104 : JMSAppender 사용여부 확인 후 해당기능 중지

  • CVE-2021-45105 : Java 8(Log4j 2.17.0으로 업데이트) / 업데이트 불가능 시 PatternLayout에서 ${ctx:loginId} 또는 $${ctx:loginId}를 (%X, %mdc, or %MDC)로 변경하거나, ${ctx:loginId} 또는 $${ctx:loginId}를 제거

참고 사이트(조치 및 대응방안 : 한국 인터넷 진흥원)

  • https://www.boho.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389

  • https://www.boho.or.kr/data/guideView.do?bulletin_writing_sequence=36390




출처


https://en.wikipedia.org/wiki/Log4j

https://en.wikipedia.org/wiki/The_Apache_Software_Foundation

https://en.wikipedia.org/wiki/Log4Shell

https://www.bbc.com/news/technology-59669297

https://www.ncsc.go.kr:4018/cop/bbs/selectBoardArticle.do

https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389

카테고리