INTELLIGENCE REPORT
TLP:CLEAR
Log4Shell(CVE-2021-44228): JNDI RCE와 장기 침해 헌팅
Log4j 공급망 노출 식별, callback 분석과 안전한 검증 절차
취약점 개요
Log4Shell은 Log4j 2의 message lookup과 JNDI 기능이 공격자 제어 문자열을 처리하면서 원격 객체 조회와 코드 실행으로 이어질 수 있는 취약점이다. HTTP Header, 사용자명, 채팅 메시지처럼 “로그에 남는 값”이 공격 입력이 될 수 있었다.
침해 분석
탐지 시 원문 ${jndi:뿐 아니라 lower/upper lookup과 문자 분할을 사용한 난독화 변형을 고려한다. 서버에서 외부 DNS·LDAP·RMI로 향한 callback, Java 프로세스의 셸 생성, 임시 디렉터리의 class/JAR, 컨테이너 재배포 시점을 함께 본다.
안전한 PoC 검증
운영 환경에 LDAP/RMI payload를 전달하지 않는다. 우선 SBOM과 파일 해시 기반 scanner로 영향 라이브러리를 찾고, 폐쇄형 랩에서는 직접 운영하는 DNS canary로 callback 여부만 확인한다.
find /opt /srv -type f -name 'log4j-core-*.jar' -print 2>/dev/null
방어용 도구: logpresso/CVE-2021-44228-Scanner, CISA Log4j Scanner.
스캐너가 JAR를 찾지 못해도 shaded·nested JAR와 상용 제품 내부 의존성이 남을 수 있다. 실행 이미지와 빌드 의존성을 모두 확인한다.
대응
- 영향 Log4j를 벤더 권고 수정 버전으로 교체
- 이미지·패키지 cache를 지우고 재빌드
- 과거 callback과 Java 자식 프로세스 조사
- 임시 완화책을 영구 수정으로 간주하지 않기