
CVSS, EPSS, CISA의 알려진 악용 취약점으로 취약점 패치를 간소화하세요. 실시간 위협 정보를 기반으로 작업의 우선순위를 정하고, 경쟁 우위를 확보하며, 최신 트렌드에 대한 정보를 유지하십시오.
CVE Prioritizer는 CVSS, EPSS, CISA의 Known Exploited Vulnerabilities 및 VulnCheck의 커뮤니티 리소스(NVD++, KEV)를 결합하여 취약점 패치 우선순위를 정하는 데 도움을 주는 강력한 도구입니다. 이 도구는 취약점의 악용 가능성과 정보 시스템에 미칠 잠재적 영향에 대한 귀중한 통찰력을 제공합니다.

CVE_Prioritizer는 CVSS와 EPSS 점수 간의 상관관계를 활용하여 취약점 대응 노력을 향상시킵니다. CVSS는 취약점의 기본 속성을 포착하는 반면, EPSS는 데이터 기반 위협 정보를 제공하여 패치 우선순위를 더 잘 정할 수 있도록 합니다.
FIRST 팀은 EPSS 사용자 가이드에서 CVSS와 EPSS를 결합하려는 이유를 훌륭하게 설명했습니다. 다음 내용은 해당 문서에서 발췌한 것입니다.
아래 그림은 2021년 5월 16일 데이터를 기반으로 한 EPSS 및 CVSS 점수 간의 상관관계를 보여줍니다. EPSS는 0과 1(0% 및 100%) 사이의 예측 점수를 생성하며, 점수가 높을수록 악용 가능성이 더 높음을 나타냅니다. 각 점은 하나 이상의 취약점(CVE)을 나타냅니다. 일부 취약점은 설명 목적으로 레이블이 지정되어 있습니다.

먼저, 대부분의 취약점이 플롯의 하단 근처에 집중되어 있고, 오직 소수의 취약점만이 EPSS 점수가 50%(0.5) 이상인 것을 확인하십시오. EPSS와 CVSS 점수 사이에 어느 정도 상관관계가 있지만, 전반적으로 이 플롯은 공격자가 가장 큰 영향을 미치거나 반드시 더 쉽게 악용할 수 있는 취약점(예: 인증되지 않은 원격 코드 실행)만을 대상으로 하는 것이 아니라는 시사점을 제공합니다.
이는 공격자가 가장 심각한 취약점만을 찾고 (사용)한다는 일반적인 가정을 반박하기 때문에 중요한 발견입니다. 그렇다면 네트워크 방어자는 어떤 취약점을 먼저 패치할지 결정할 때 어떻게 선택할 수 있을까요?
CVSS는 취약점의 기본 속성을 포착하는 유용한 도구이지만, 취약점 대응 노력의 우선순위를 더 잘 정하기 위해서는 EPSS와 같은 데이터 기반 위협 정보와 함께 사용되어야 합니다.
논의를 위해 아래 다이어그램을 고려하십시오. 이 다이어그램은 일반적으로 취약점 우선순위를 설명하기 위해 주석이 추가되었습니다.

위에서 설명한 의사 결정 전략은 EPSS의 엄청난 능력을 강조합니다. 일반적으로 수천 또는 수만 개의 노출된 취약점을 처리해야 했던 네트워크 방어자는 이제 더 적은 리소스를 사용하여 악용될 가능성이 훨씬 더 높은 더 많은 취약점을 패치할 수 있습니다. 취약점을 구별하는 이러한 능력은 이전에는 불가능했습니다.
FIRST의 권장 사항과 자체 경험을 기반으로 우선순위 임계값을 개선했습니다. 다음은 개요입니다.
이 접근 방식은 취약점을 5가지 우선순위 수준으로 분류하여 리소스를 보다 효과적으로 할당할 수 있도록 합니다.
| 우선순위 | 설명 |
|---|---|
| Priority 1+ | CISA의 KEV에서 발견된 CVE |
아래는 우리의 접근 방식을 적용한 후 FIRST 권장 사항의 수정된 버전입니다.

참고: 도구를 실행할 때 자체 임계값을 정의하여 결과를 조직의 위험 허용 범위에 맞게 조정할 수 있습니다.
git clone https://github.com/TURROKS/CVE_Prioritizer.git
cd CVE_Prioritizer
pip install -r requirements.txt
pip install --user cve_prioritizer
CVE_Prioritizer를 효과적으로 사용하려면 다음 단계를 따르십시오:
-vc 또는 --vulncheck 사용.-vck 또는 vulnchek_kev 사용 (NVD++에서만 작동).-c를 사용하십시오.-l 뒤에 쉼표로 구분된 CVE 목록을 사용하십시오.-f를 사용하여 CVE ID가 포함된 파일(한 줄에 하나)을 가져오십시오.
python3 cve_prioritizer.py -c CVE-2020-29127

python3 cve_prioritizer.py -l CVE-2020-29127,CVE-2017-16885

또한 CVE 목록이 포함된 텍스트 파일(한 줄에 하나)을 제공할 수 있습니다.
python3 cve_prioritizer.py -f ~\Desktop\CheckTheseCVEs.txt

CVE_Prioritizer는 선호도에 맞게 유연한 출력 옵션을 제공합니다. 기본적으로 CVE-ID 및 우선순위를 포함한 결과 요약을 제공합니다. 그러나 상세 모드를 활성화하여 추가 정보를 얻을 수 있습니다.
사용 가능한 출력 옵션은 다음과 같습니다:
요약 결과 (기본값): CVE-ID 및 우선순위를 포함한 간결한 요약을 제공합니다.

상세 모드: 각 CVE에 대해 다음 정보를 포함한 상세 출력을 활성화합니다:

CSV 파일
-o 또는 --output 플래그를 사용하여 결과를 CSV 파일로 저장할 수 있습니다.
python3 cve_prioritizer.py -f cve_list.txt -o ~/Desktop/prioritized.csv

이것은 사용하는 터미널 출력과 독립적으로 상세 결과를 출력합니다.
지침은 CONTRIBUTING.md를 참조하십시오.
이 프로젝트는 BSD 3-Clause 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하십시오.
질문이나 문제가 있으면 [email protected]로 연락해 주십시오.
즐거운 패치 되세요!
이 도구는 NVD API를 사용하지만 NVD의 보증이나 인증을 받지 않았음을 유의하십시오.
| Priority 1 | 오른쪽 위 사분면의 CVE |
| Priority 2 | 오른쪽 아래 사분면의 CVE |
| Priority 3 | 왼쪽 위 사분면의 CVE |
| Priority 4 | 왼쪽 아래 사분면의 CVE |
-f 플래그를 --nessus 또는 --openvas와 함께 사용하여 Nessus 또는 OpenVAS 스캔 보고서에서 자동으로 CVE를 수집하십시오.-v 또는 --verbose를 사용하십시오.--cvss 및/또는 --epss로 사용자 정의 임계값을 정의하여 결과를 조직의 위험 허용 범위에 맞추십시오.-t 또는 --threads로 동시 스레드 수를 정의하십시오(기본값: 100).