
CVSS, EPSS 및 CISA 알려진 악용 취약성 데이터를 다운로드하고 집계하여 통합 JSON/CSV 파일 및 SQLite 데이터베이스로 만듭니다. 취약성 스캐너 보고서(예: OpenVAS)를 보강하여 우선 순위에 따른 수정을 지원합니다. 선택적 Logstash 파이프라인 및 PowerBI 대시보드 템플릿을 포함합니다.
Common Vulnerability Scoring System (CVSS)는 컴퓨터 시스템 보안 취약점의 심각성을 평가하기 위한 무료 개방형 업계 표준입니다.
Exploit Prediction Scoring System (EPSS)는 소프트웨어 취약점이 실제 환경에서 악용될 가능성을 추정합니다.
CISA는 알려진 악용 취약점 목록을 게시합니다.
이 프로젝트는 세 가지 소스에서 정보를 다운로드하여 하나의 목록으로 결합합니다.
스캐너는 CVE 번호와 CVSS 점수를 보여주지만, 'exploitabilityScore' 또는 'userInteractionRequired'와 같은 세부 정보를 내보내지 않는 경우가 많습니다. EPSS 점수를 추가하면 환경에 맞는 임계값을 기준으로 필터링하고 우선 처리할 작업을 선택할 수 있는 더 많은 옵션을 얻을 수 있습니다.
이 정보를 사용하여 OpenVAS와 같은 취약점 스캐너가 제공하는 정보를 보강하여 수정 작업의 우선순위를 정할 수 있습니다.
PowerBI와 같은 도구를 사용하여 취약점 스캐너의 결과를 리포지토리의 스크립트로 다운로드한 정보와 결합할 수 있습니다.
다운로드 후 필요한 정보가 추출되고 형식이 지정되며 출력 파일이 생성됩니다.
CVSS, EPSS 및 모든 CVE 정보의 결합 파일을 사용할 수 있습니다. 출력은 json 및 csv 형식으로 제공됩니다.
또한 정보는 sqlite 데이터베이스로 가져옵니다.
목표는 성능이나 효율성이 아니었습니다.
대신 스크립트는 간단한 방식으로 작성되었습니다. 이해하기 쉽고 추적 가능하도록 여러 단계로 구성되어 있습니다. 중간 단계의 파일은 디스크에 기록되어 필요에 따라 명령을 더 쉽게 조정할 수 있습니다.
bash, jq, sqlite3만 사용하여 초보자에게 매우 친숙하고 jq 사용법을 보여줍니다.
이 리포지토리에는 PowerBI 템플릿 파일이 있는 데모 폴더가 포함되어 있습니다. 필요에 따라 조정할 수 있는 대시보드를 생성합니다.

가져오기가 작동하려면 OpenVAS 보고서가 csv 형식이어야 합니다.

PowerBI는 생성된 CVE.json 파일을 사용하여 관계를 만듭니다:

PowerBI는 https://aka.ms/pbiSingleInstaller에서 무료로 다운로드할 수 있으며, 사용하기 위해 Microsoft 계정이 필요하지 않습니다.
cron이 예약에 따라 다운로드 스크립트를 실행할 때까지 기다리거나.
또는 다음을 실행하여 수동으로 다운로드 스크립트를 실행할 수 있습니다:
docker exec -it vulnerability-tables-cron bash /opt/scripts/download.sh
세 개의 도커 컨테이너가 있습니다.
cron 컨테이너는 일주일에 한 번(월요일 06:00) 정보를 다운로드하고 파일을 출력 디렉토리에 저장합니다.
curl과 wget을 사용하여 파일을 다운로드합니다. jq는 json 작업에 사용됩니다.
filebeat 컨테이너는 json 파일을 읽고 logstash 컨테이너로 전달합니다.
logstash 컨테이너는 OpenSearch 인스턴스로 전송하거나, Azure Log Analytics에 업로드하거나, 기타 지원되는 출력으로 보내는 데 사용할 수 있습니다.
Filebeat와 logstash는 선택 사항이며 편의를 위해 포함되어 있습니다.
여러 출력 파일이 생성됩니다. 예상 크기는 다음과 같습니다:
316K CISA_known_exploited.csv
452K CISA_known_exploited.json
50M CVSS.csv
179M CVSS.json
206M CVE.json
56M CVE.csv
6.7M EPSS.csv
12M EPSS.json
49M database.sqlite
모든 CVE에 대해 다음 정보를 기대할 수 있습니다:
grep -i 'CVE-2021-44228' CVE.json | jq
{
"CVE": "CVE-2021-44228",
"CVSS2_accessComplexity": "AV:N/AC:M/Au:N/C:C/I:C/A:C",
"CVSS2_accessVector": "NETWORK",
"CVSS2_authentication": "MEDIUM",
"CVSS2_availabilityImpact": "NONE",
"CVSS2_baseScore": "COMPLETE",
"CVSS2_baseSeverity": "COMPLETE",
"CVSS2_confidentialityImpact": "COMPLETE",
"CVSS2_exploitabilityScore": "9.3",
"CVSS2_impactScore": "null",
"CVSS2_integrityImpact": "8.6",
"CVSS2_vectorString": "10",
"CVSS3_attackComplexity": "null",
"CVSS3_attackVector": "null",
"CVSS3_availabilityImpact": "null",
"CVSS3_baseScore": "null",
"CVSS3_baseSeverity": "null",
"CVSS3_confidentialityImpact": "null",
"CVSS3_exploitabilityScore": "null",
"CVSS3_impactScore": "null",
"CVSS3_integrityImpact": "null",
"CVSS3_privilegesRequired": "null",
"CVSS3_scope": "null",
"CVSS3_userInteraction": "null",
"CVSS3_vectorString": "null",
"CVSS3_acInsufInfo": "null",
"CVSS3_obtainAllPrivilege": "null",
"CVSS3_obtainUserPrivilege": "null",
"CVSS3_obtainOtherPrivilege": "null",
"CVSS3_userInteractionRequired": "null",
"EPSS": "0.97095",
"EPSS_Percentile": "0.99998",
"CISA_dateAdded": "2021-12-10",
"CISA_RequiredAction": "For all affected software assets for which updates exist, the only acceptable remediation actions are: 1) Apply updates; OR 2) remove affected assets from agency networks. Temporary mitigations using one of the measures provided at https://www.cisa.gov/uscert/ed-22-02-apache-log4j-recommended-mitigation-measures are only acceptable until updates are available."
}