
log4j log4shell 취약점(CVE-2021-44228) 탐지 및 수정
이 도구는 .jar/.war/.ear 파일에서 JndiLookup 클래스를 찾아 제거하여 log4j log4shell 취약점(CVE-2021-44228)을 탐지하고 수정하기 위한 것으로, 무료이며 제로 의존성입니다. 이 도구는 다음 환경에서 테스트되었습니다: - Linux 32비트 및 64비트 - Windows 32비트 및 64비트 - OpenBSD 64비트
이 도구는 Go 프로그래밍 언어로 작성되었으며, 이는 제로 의존성과 어디서나 실행되는 독립 실행형 바이너리를 의미합니다.
바이너리(Windows, Linux, Darwin, OpenBSD)는 여기에서 다운로드하세요: https://github.com/nanitor/log4fix/releases/tag/v4.2.0
파일에서 취약점 검색
log4fix detect </path/to/file.war>
파일에서 취약점을 검색하고 취약한 클래스를 제거합니다.
log4fix fix </path/to/file.war> --overwrite
단일 디렉터리에서 취약점 검색
log4fix scan </path/to/dir>
여러 디렉터리에서 취약점 검색
log4fix scan </path/to/dir/1> </path/to/dir/2>
디렉터리에서 취약점을 검색하고 취약한 파일을 제거합니다. 참고: 이 명령은 취약한 클래스를 포함하는 war/ear/jar 파일을 덮어씁니다.
log4fix scan </path/to/dir> --fix
디렉터리에서 취약점을 검색하고 발견된 취약한 jar/ear/war 파일을 지정된 파일에 기록합니다.
log4fix scan </path/to/dir> --output </path/to/text/file.txt>
덮어쓰기 전에 파일을 백업할 것을 권장합니다. Windows에서는 수정을 적용하기 전에 서비스를 중지해야 할 수 있습니다. 수정이 적용된 후에는 서비스를 다시 시작해야 합니다.
go build
이는 다음 권장 수정 조치와 기능적으로 동일합니다:
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
단, 이 도구는 다른 .jar/.war/.ear 파일 내부로 들어가 log4j-core-*.jar 파일을 찾아 해당 파일에서 JndiLookup 클래스를 제거할 수도 있습니다.
물론 모든 플랫폼에서 작동합니다.