
Windows, Linux 및 macOS 호스트에서 JndiLookup.class를 포함하는 Java 패키지를 스캔하여 Log4Shell(CVE-2021-44228, CVE-2021-45046) 노출 여부를 탐지하고 JSON 결과를 보고합니다.
Arctic Wolf Log4Shell 심층 스캔은 CVE-2021-44228 및 CVE-2021-45046의 영향을 받는 Java 애플리케이션 패키지를 탐지하도록 설계되었습니다.
Copyright 2021, Arctic Wolf Networks, Inc.
Arctic Wolf Networks, Inc.는 이 파일을 Apache License, Version 2.0("라이선스")에 따라 사용자에게 라이선스합니다. 라이선스를 준수하지 않는 한 이 파일을 사용할 수 없습니다. 라이선스 사본은 http://www.apache.org/licenses/LICENSE-2.0 에서 확인할 수 있습니다.
관련 법률에서 요구하거나 서면으로 동의하지 않는 한, 라이선스에 따라 배포되는 소프트웨어는 "있는 그대로(AS IS)" 배포되며, 명시적이든 묵시적이든 어떠한 종류의 보증이나 조건도 제공하지 않습니다. 라이선스에서 권한과 제한 사항을 규정하는 특정 언어는 라이선스를 참조하십시오.
이 스크립트는 Log4Shell 취약점의 원인이 되는 Log4J 클래스 JndiLookup.class를 포함하는 Java 애플리케이션을 시스템에서 검색합니다. 애플리케이션 내에서 이 클래스가 발견되면, 스크립트는 해당 애플리케이션이 Log4J 2.16+ 또는 Log4J 2.12.2+를 사용하도록 업데이트되었음을 나타내는 Log4J 업데이트를 찾습니다. 애플리케이션에 JndiLookup.class가 포함되어 있지만 업데이트된 것으로 보이지 않으면, 해당 애플리케이션은 취약한 상태입니다.
추가 세부 사항은 다음을 참조하십시오:
해결 조치에 대해서는 영향을 받는 각 애플리케이션의 공급업체에 문의하십시오.
각 스캔은 다음 결과 중 하나를 갖습니다:
해결 조치에 대해서는 영향을 받는 각 애플리케이션의 공급업체에 문의하십시오.
최신 버전은 여기에서 다운로드하십시오: log4shell_deep_scan_0.3.zip.
실행하려면 관리자 권한으로 명령 프롬프트(cmd.exe)를 여십시오:
> powershell -ExecutionPolicy ByPass -f log4shell_deep_scan.ps1
기본적으로 모든 고정 드라이브가 검색됩니다. 다음과 같이 search_root를 지정하십시오:
> powershell -ExecutionPolicy ByPass -f log4shell_deep_scan.ps1 -search_root C:\START_HERE
결과는 다음과 같이 현재 작업 디렉터리의 파일에 기록됩니다:
log4shell_deep_scan.output.<hostname>.<timestamp>.json
출력 파일의 파일 이름을 지정하려면 다음과 같이 매개변수로 제공하세요:
> powershell -ExecutionPolicy ByPass -f log4shell_deep_scan.ps1 -output_filepath FILENAME_HERE.json
몇 분 정도 걸릴 수 있습니다. 중단하려면 Ctrl-c를 누르세요.
nice 사용을 고려하세요.실행하려면 명령 프롬프트를 여세요:
$ sudo sh log4shell_deep_scan.sh
기본적으로 모든 고정 드라이브가 검색됩니다. 다음과 같이 search_root를 지정하십시오:
$ sudo sh log4shell_deep_scan.sh /START_HERE
결과는 다음과 같이 현재 작업 디렉터리의 파일에 기록됩니다:
log4shell_deep_scan.output.<hostname>.<timestamp>.json
출력 파일의 파일 이름을 지정하려면 다음과 같이 매개변수로 제공하세요:
$ sudo sh log4shell_deep_scan.sh /START_HERE FILENAME_HERE.json
몇 분 정도 걸릴 수 있습니다. 중단하려면 Ctrl-c를 누르세요.
PASS한 스캔의 JSON 출력은 다음과 같이 1개의 항목을 갖습니다:
[
{ "hostname":"DESKTOP-US1234", "scan_ts":"2021-12-16T18:24:46.8919939-06:00", "scan_v":"0.3", "search_root":"C:\\", "result":"PASS", "vulnerable_jar":false }
]
취약한 것으로 판정된 스캔의 JSON 출력에는 다음과 같이 시스템에서 발견된 각 취약한 Java 애플리케이션마다 1개의 항목이 포함됩니다:
[
{ "hostname":"DESKTOP-US1234", "scan_ts":"2021-12-16T18:14:09.7897291-06:00", "scan_v":"0.3", "search_root":"C:\\", "result":"FAIL", "vulnerable_jar":"C:\\Users\\user1234\\Downloads\\apache-log4j-2.12.1-bin\\log4j-core-2.12.1.jar" },
{ "hostname":"DESKTOP-US1234", "scan_ts":"2021-12-16T18:14:09.7897291-06:00", "scan_v":"0.3", "search_root":"C:\\", "result":"FAIL", "vulnerable_jar":"C:\\Users\\user1234\\Downloads\\apache-log4j-2.12.1-bin.jar!log4j-core-2.12.1.jar" },
{ "hostname":"DESKTOP-US1234", "scan_ts":"2021-12-16T18:14:09.7897291-06:00", "scan_v":"0.3", "search_root":"C:\\", "result":"FAIL", "vulnerable_jar":"C:\\Users\\user1234\\Downloads\\log4j-core-2.12.1.jar" }
]
FAIL하고 스캔되지 않은 jar가 있는 스캔의 JSON 출력에는 시스템에서 발견된 취약하거나 스캔되지 않은 각 Java 애플리케이션에 대해 다음과 같이 1개의 항목이 포함됩니다:
[
{ "hostname":"DESKTOP-US1234", "scan_ts":"2021-12-16T18:14:09.7897291-06:00", "scan_v":"0.3", "search_root":"C:\\", "result":"FAIL", "vulnerable_jar":"C:\\Users\\user1234\\Downloads\\apache-log4j-2.12.1-bin\\log4j-core-2.12.1.jar" },
{ "hostname":"DESKTOP-US1234", "scan_ts":"2021-12-16T18:14:09.7897291-06:00", "scan_v":"0.3", "search_root":"C:\\", "result":"FAIL", "vulnerable_jar":"C:\\Users\\user1234\\Downloads\\apache-log4j-2.12.1-bin.jar!log4j-core-2.12.1.jar" },
{ "hostname":"DESKTOP-US1234", "scan_ts":"2021-12-16T18:14:09.7897291-06:00", "scan_v":"0.3", "search_root":"C:\\", "result":"UNKNOWN", "unscanned_jar":"C:\\Users\\user1234\\Downloads\\log4j-3234-2.12.1.jar" }
]
2021년 12월 17일에 릴리스된 버전 0.3에는 다음과 같은 개선 사항과 해결 사항이 포함되어 있습니다:
2021년 12월 17일에 릴리스된 버전 0.2에는 다음과 같은 개선 사항과 해결 사항이 포함되어 있습니다: