본문 바로가기
IT KNOWLEDGE

Log4j 보안 취약점에 대해 알아봅시다

by BTC_sklee 2022. 8. 16.

이전 글

  • #1 네이버클라우드자격증 에 대해 알아봅시다 [보기]
  • #2 Azure자격증에 대해 알아보자! [보기]
  • #3 AWS Certified Solutions Architect Professional 자격증에 대해 알아보자! [보기]
  • #4 Datadog 자격증에 대해 알아봅시다! [보기]
  • #5 CKA 자격증에 대해 알아봅시다! [보기]
  • #6 ITIL Foundation Certifications 자격증에 대해 알아보자! [보기]
  • #7 IT 자격증의 기본! 정처기(정보처리기사)에 대해서 알아봅시다 [보기]
  • #8 Google Cloud 자격증에 대해 알아봅시다! [보기]
  • #9 LFCS[Linux Foundation Certifications]에 대해 알아보자! [보기]
  • #10 Alibaba Cloud 자격증에 대해 알아봅시다 [보기]
  • #11 오라클 클라우드 자격증에 대해 알아보자! [OCI Architect (Professional)] [보기]
  • #12 리눅스 마스터에 대해 알아보자![1급+2급] [보기]
  • #13 네트워크 관리사 2급 자격증에 대해 알아보자 [보기]
  • #14 CISM(국제공인정보보호관리자) 자격증에 대해 알아보자 [보기]
  • #15 파이썬 마스터에 대해 알아보자!   [보기]
  • #16 CCNA 자격증에 대해 알아봅시다 [보기]
  • #17 OCP에 대해 알아보자! [보기]
  • #18 PMP(프로젝트 관리 전문가)에 대해 알아보자! [보기]

IT 자격증에 대한 모든것

 


지난주 까지는 IT자격증에 대한 모든 것 에 대한 주제로 매주 업로드했었습니다.

폭넒은 지식을 전달해드리고자 이번주부터는 다른 주제를 선정해 보았습니다.

 

 

--->   보안/해킹 관련 이슈

업무 시스템 전반에 클라우드, AI, 빅데이터 등 ICT 기술이 지속적으로 확대 적용되고 있으며, 팬데믹 이슈의 장기화로 재택근무와 원격 수업 등 디지털 전환(DT)을 통한 비대면 활동이 일상화되면서 보안 이슈 역시 빠르게 증가하고 있습니다. 
최근 눈에 띄는 보안 이슈를 돌아보고, 빠르게 변화하는 디지털 환경에서 관심을 기울여야 할 보안 위협은 어떤 것들이 있는지 살펴보겠습니다.

Log4j란 ?
JAVA를 사용하여 Log를 남기는 도구
프로그램은 유지와 관리를 위해서 기록을 남기기 때문에 Log4j는 거의 전 세계 대부분의 JAVA 기반 서버와 응용 프로그램에서 사용하고 있습니다.

 

2021년 12월 처음 발견됐으며, 공격자가 원격으로 감염시키는 해킹 방법이 공개되면서 화두가 되기 시작했습니다.

해당 취약점을 악용해 공격자가 특정 메시지를 입력하면 공격자는 원격지에서 컴퓨터 서비스 권한을 탈취할 수 있습니다. Log4j 취약점은 많은 소프트웨어와 플랫폼에서 사용하는 도구이기에 컴퓨터 사상 최악의 취약점으로 평가됩니다.

JAVA 프로그램을 이용하지 않더라도 미들웨어에서 JAVA와 Log4j를 사용할 수 있기 때문에 해당 취약점을 이용해 많은 프로그램이 공격 받아 위험에 처할 수 있기 때문에 주의해야 합니다.

 

 

동작과정

 

 

 Log4j 취약점 버전과 확인 방법

각 취약점마다 영향을 받는 Log4j 버전은 약간 다릅니다.

2021년 12월 13일에 발표된 바에 따르면 Log4j 2.0-beta9부터 2.14.1 버전과(2.12.2 제외) 하위 버전인 1.x까지 영향을 받았습니다. 그러나, 12월 15일 발표된 바에 따르면 우회 공격을 할 경우 최신 버전인 2.15.0도 위험하다는 발표가 있었습니다.

1.CVE-2021-44228: Apache Log4j 2에서 발생하는 원격코드 실행 취약점 (Log4j 2.0-beta9 ~ 2.14.1버전, 2.12.2 제외)

2.CVE-2021-45046: Apache Log4j 2에서 발생하는 서비스 거부 취약점 (Log4j 2.0-beta9 ~ 2.12.1 및 2.13.00 ~ 2.15.0)

3.CVE-2021-4104: Apache Log4j 1.2에서 발생하는 원격코드 실행 취약점 (Log4j 1.x)

 

취약한 Log4j를 사용하고 있는지 확인하기

1. Log4j를 사용 중인 제품에 관한 정보는 아래에서 확인이 가능합니다.

https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592

2. 리눅스에서 log4j 설치 여부 확인하기: 아래 명령어를 입력하시면 됩니다. 이 방법으로 log4j-core 버전도 확인하실 수 있습니다.

- find / -name 'log4j*'

3. 윈도에서 log4j 설치 여부 확인하기

4. 공개 도구를 사용하는 방법도 있습니다.

- Syft와 Grype 도구를 사용하는 방법: https://github.com/anchore/grype

- 취약점 스캐너를 사용하는 방법: https://github.com/logpresso/CVE-2021-44228-Scanner

 

 조치 방법

먼저, 최신 버전으로 업데이트를 하는 게 최선의 방법입니다.

 

현재 날짜를 기준으로 Log4j 최신 버전이 변경되었습니다. 최신 버전 정보를 수시로 확인하며 업데이트 하시면 됩니다.

https://logging.apache.org/log4j/2.x/download.html 에서 최신 버전 확인이 가능합니다.

다만, 빠른 시간 내에 라이브러리를 업데이트 하고 재 검증하는 게 현실적으로 어려울 수 있는데, 버전에 따른 선제 조치를 아래와 같이 취할 수 있습니다.

1. Log4j 버전이 2.0-beta9부터 2.10.0일 경우: JndiLookup 를 log4j-core 에서 제거하는 방법이 있습니다. 라이브러리 경로에서 아래 명령을 실행하면 JndiLookup.class 가 제거됩니다.

zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

2. Log4j 버전이 2.10부터 2.14.1인 경우: lo4j2.formatMsgNoLookups 또는 LOG4J_FORMAT_MSG_NO_LOOKUPS 환경 변수를 true로 설정하면 됩니다.

3. JVM 옵션으로 JndiLookup 기능을 제한 하는 방법: -Dlog4j2.formatMsgNoLookups=true 옵션과 함께 애플리케이션을 실행합니다.

java -Dlog4j2.formatMsgNoLookups=true -jar myapp.jar

4. Log4j 버전이 1.x인 경우: JMSAppender 사용 확인 후 코드 수정을 하거나 삭제하시면 됩니다.

 

출처: https://www.boannews.com/media/view.asp?idx=105394

 

불편이 불안보다 낫습니다

Log4j 취약점 피해 예방을 위해 한국인터넷진흥원 보호나라&KrCERT/CC에서는 취약점을 해결할 보안 업데이트를 권고하고 있습니다. 사용하고 있는 서버 프로그램에 대한 지속적인 보안 업데이트를 진행하는 등 취약점에 대한 관심을 기울여야 합니다.

 

참고> KISA 인터넷 보호나라&KrCERT 사이트- 보안공지가 올라오는 자료실

https://krcert.or.kr/data/secNoticeList.do

'IT KNOWLEDGE' 카테고리의 다른 글

[보안] DDOS란?  (0) 2022.08.19
List, 배열  (0) 2022.08.17
PowerShell - Profile 설정하기  (0) 2022.08.10
PowerShell - Alias (별칭) 사용하기  (0) 2022.08.10
[Python] 옵셔널 파라미터  (0) 2022.08.09

댓글