
CVE-2021-44228 및 관련 log4j 문제를 위한 스캔 및 패치 도구.
최신 버전 다운로드 링크:
| Linux x64 (glibc2.17+, RHEL7+) | Windows 및 기타 모든 플랫폼 |
|---|---|
| Linux 바이너리 다운로드 | Java .jar 다운로드 |
🚑 참고: SAS 9.4 또는 SAS Viya 3.x 배포 환경에 패치를 적용하려는 SAS 고객은 SAS Help Center 문서에 제공된 특정 지침을 따르시기 바랍니다.
이 프로젝트는 logpresso/CVE-2021-44228-Scanner의 초기 포크로, 처음에는 아카이브를 재귀적으로 검사하고 tar/gz 압축을 지원하도록 수정되었습니다. 포크 이후 이 프로젝트는 원본과 병행하여 발전해 왔으며, 코드의 대부분이 재작성되었음에도 불구하고 많은 유사한 기능을 구현하고 있습니다. 원본의 'fix' 기능은 일부 깊은 중첩 엣지 케이스를 지원하고 실패 및 롤백에 더 관대한 patch 메서드로 대체되었지만, 탐지 메커니즘(scan 명령)은 원본과 매우 유사한 방식으로 계속 작동합니다.
이 도구의 버전은 Releases 페이지에서 다운로드하거나 이 페이지 상단의 링크를 통해 다운로드할 수 있습니다. 네이티브 이미지는 EL7 이상에서 실행되는 독립 실행형 실행 파일입니다. jar 파일은 JRE 1.8+에서 java -jar로 실행할 수 있습니다. 현재 이 방법이 다른 플랫폼과 이전 버전의 glibc(Windows, AIX, Solaris 등 포함)에서 실행하는 가장 좋은 방법입니다.
네이티브 이미지를 다운로드한 후 실행하기 전에 chmod +x를 수행해야 합니다.
명령 구문은 .jar를 호출하든 네이티브 실행 파일을 호출하든 동일합니다. 예를 들어, 다음은:
./loguccino help
기능적으로 다음과 동일합니다:
java -jar ./loguccino-all.jar help
loguccino help 명령은 사용 가능한 명령에 대한 문서를 제공합니다.
./loguccino scan /path/to/approot
이 명령은 /path/to/approot의 모든 하위 디렉터리를 탐색하며, 중첩된 모든 .tar.gz, .tgz, .tar, .zip, .ear, .war 및 .jar 아카이브를 재귀적으로 탐색합니다.
작업 디렉터리에 loguccino-scan-[datetime].csv라는 .csv 파일이 생성되며, 다음 데이터가 포함됩니다:
/opt/sas/config/Lev1/Web/Staging/sas.webreportstudio4.4.21w47AIX.ear/install/deploy/21w47SASConfig/Lev5/Web/Staging/sas.webreportstudio4.4.21w47AIX.earopt/sas/config/Lev1/Web/Staging/sas.webreportstudio4.4.21w47AIX.ear::sas.webreportstudio.war::WEB-INF/lib/log4j-core-2.1.jarscan 명령에 대한 자세한 정보는 ./loguccino help scan을 통해 확인할 수 있습니다.
취약점이 발견되면 loguccino-scan-[datetime].csv가 patch 명령의 입력으로 사용됩니다:
./loguccino patch ./loguccino-scan-23122021003311.csv
이 명령은 발견된 각 취약점을 제거하고, 패치된 각 파일의 백업이 포함된 loguccino-patch-[timestamp] 디렉터리를 생성합니다. 파일이 여러 취약점에 대해 패치된 경우(예: 여러 도구 또는 소프트웨어 릴리스를 포함하는 더 큰 백업 아카이브), 실패 시 단계별 롤백을 가능하게 하기 위해 프로세스의 각 단계에서 패치된 파일의 여러 버전이 백업됩니다.
참고:
디스크의 파일을 패치한다고 해서 호스트에서 이미 실행 중인 프로그램 버전이 패치되는 것은 아닙니다. 패치를 적용하기 전에 관련 서비스/애플리케이션을 중지하고 패치 후 다시 시작해야 변경 사항이 적용된다는 점을 기억하세요.
patch 명령에 대한 자세한 정보는 ./loguccino help patch를 통해 확인할 수 있습니다.
취약점을 스캔할 때 일부 아카이브가 손상된 것으로 보고될 수 있습니다(압축 방법이 아카이브 확장자와 일치하지 않는 중첩 아카이브에서도 발생합니다). scan 명령은 이러한 경로를 logpresso-scan-[datetime].log에 출력합니다. 중요한 것으로 간주되는 경우, 이러한 아카이브는 실제로 손상되었는지 확인하기 위해 수동으로 압축을 풀고 검사(또는 스캔)해야 합니다.
버그나 예기치 않은 동작이 발생하면 이슈를 열고 버그를 재현하는 단계와 기타 배경 정보를 첨부해 주세요.
코드에 대한 풀 리퀘스트와 업데이트는 언제든 환영합니다.