BoaThor/CVE-Resources

GitHub: BoaThor/CVE-Resources

聚合免费可靠的 CVE 安全公告与漏洞信息资源列表,并附带数据抓取、变更监控和可用性检查工具,帮助安全团队高效获取和跟踪产品漏洞情报。

Stars: 4 | Forks: 3

# CVE-Resources 这是一个包含安全公告和通用漏洞枚举(CVE)信息 URL 的列表,旨在简化查找关于产品漏洞及相关 OSINT 流程的免费、最新且可靠信息的过程。 ## 动机 ## 关注点 最初的重点是企业 IT,包括工业自动化、相关软件和免费资源。 ## 状态 目前,136 个 CVE-Resources 包含 29 个元数据库(其中 5 个元数据库包含 PoC/Exploit 相关信息,例如,KEV - 已知被利用漏洞),以及 105 个特定于供应商的资源。 ## 条目 共有 2 种类型的条目。 来自项目或公司(例如 Ubuntu)的直接资源 (可免费访问的)元 CVE 数据库的次要资源,如 OpenCVE.io 类型由 JSON 对象的“type”字段指示。 ## 贡献 欢迎随时添加资源 ``` 1.) that are meaningful 2.) validated to be not malicious 3.) uptodate and maintain ``` 并且满足 ``` 4.) not already part of the list 5.) reliable and trustworthy 6.) free to access ``` 同时,如果发现资源存在以下情况,欢迎移除或替换 ``` 7.) are malicious 8.) pay-walled 9.) out of maintenance ``` ## 结构 初始时,一个对象将提供 4 个字段,分别是: 1. Supplier - 一个必填字符串,用于表示信息提供者和/或产品供应商。 2. Location(URL、RSSFeed 等) - 一个必填字符串,用于指示信息来源。 3. Comments - 一个可选字符串 - 用于描述该资源。 4. Type - 可以是“supplier-specific”或“meta-database” ## 数据格式 初始数据格式为 JSON。该列表是一个对象数组/列表,对象包含上述列出的 4 个属性。 ### Schema 数组 [ {Key-Value-Pair1, Key-Value-Pair2, Key-Value-Pair3, Key-Value-Pair4}, {Key-Value-Pair1, Key-Value-Pair2, Key-Value-Pair3, Key-Value-Pair4} ] ### CSV 格式 CSV 版本可在文件 cve_resource_list_alpha.csv 中获取。 CSV 版本以逗号(,)分隔。 CSV 包含头信息。 属性的顺序为 Supplier,location,comment,type。 ### HTML 格式 可自动生成的 HTML 格式 CVE 资源集合可在 cveresources_fetched_DD-MM-YYYY.html 中获取。 ## 工具 ### EUVD-Scraper File EUVD-Scraper.ps1 #### 概述 此 PowerShell 脚本用于检索并可视化以下机构发布的最新安全漏洞: EUVD (ENISA) NVD (NIST) KEVin(由 GTFKD 提供的 CISA KEV) Red Hat Security - Security Data Api 从 ENISA 的 EUVD、NVD 和 KEVin 接收的数据可以进行过滤(如果已配置),并按预期严重程度(CVSS)进行排序。 结果将保存在 UTF-8 编码的 HTML 报告中,包含基本的严重性高亮显示以及指向源报告(例如 NVD 和/或 EUVD 中的报告)的可点击链接。 #### 技能要求 具备执行程序的能力,以及关于 CVE、CVSS 和 EPSS 评分的基础知识。 #### 系统要求 操作系统:任何已安装 PowerShell 的系统 PowerShell 版本:7.x 或更高版本(为了正确处理 REST 和支持 UTF-8 所需) 网络连接:需要从 EUVD API、NIST NVD API、KEVin API、Red Hat Security Data API 获取数据。 磁盘空间:极少 - 只需几 KB 的可写空间用于保存 HTML 报告和可选的日志。 #### 配置 在程序顶部提供了一个用于全局配置的代码块: - 从当前日期起回顾漏洞的天数 $DaysToLookBack = 2 # 默认值:2 天 - 包含的最低 CVSS 分数 (0-10) $MinimumScore = 5 # 默认值:5(中等严重性及以上) - 获取漏洞的最大数量(0 表示无限制) $MaxVulnerabilities = 1000 # 默认值:1000(10 页 * 100 条)用于 ENISA EUVD - 获取 API 页面的最大数量(每页最多包含 100 条)用于 ENISA EUVD $MaxPages = 10 # 默认值:10 页 - 每页条数(API 最大值为 100) $PageSize = 100 # 默认值:每页 100 条 - 仅在网络和 API 性能出现问题时更改此项 - 用于评定为“严重”级别的 CVSS 分数 (0-10) $MinCritCVSS = 9 # 默认值 9 - 可以映射到您内部的漏洞严重性阈值 - 用于评定为“严重”级别的 EPSS 分数 (0-100) $MinCritEPSS = 10 # 默认值 10 - 可以映射到您内部的漏洞严重性阈值 - 仅报告已知被利用的漏洞(0 或 1) $OnlyExploited = 0 #(默认值 0) - NVD 并不直接提供此信息 - 启用调试日志 $EnableDebugLogging = $true # 默认值:true - 描述字段的最大长度。(1 - 无限制) - 截断部分将以“...”标示 $DiscLength = 400 #(默认值 400) - 作为 CSV 格式的、不区分大小写的文本过滤器,例如 ("cisco;red hat;jenkins;nodejs") - 用于评估供应商名称、产品名称和描述。 $filterString = "" #(默认值 "") - 不区分大小写且不区分单词边界的过滤字符串。 $priorityString = "" #(默认值 "") #### 功能 数据检索: 分页(最多 1000 条记录)从 ENISA 的公共 API 获取漏洞数据。 从 NIST 的 NVD 公共 API 获取漏洞数据(目前限制为 2000 条记录) 通过 KEVin 公共 API 从 CISA KEV 获取漏洞数据。 默认行为:过滤出 CVSS >= 5 且发布日期在最近 2 天内的漏洞。 日志记录: 所有操作和响应都将记录在带有时间戳的日志文件(EUVD_Debug_*.log)中。 数据规范化: 将来自(目前)3 个来源的数据统一转换为一种“简单”、易于解析且可扩展的通用对象格式。 HTML 报告生成: 根据严重程度对漏洞进行排序和颜色编码(可配置),并输出 HTML 表格。 显示 ID、CVE 引用、发布日期、分数、供应商、漏洞利用状态和描述。 输出: 将在执行目录中创建 2 个文件 - *.log 包含 JSON 对象、状态和错误信息 - *.html 包含生成的 HTML 代码 该可执行文件会生成一个自包含、易于阅读的 .html 报告文件。 完成后会自动在默认浏览器中打开该报告。 #### 使用方法 Windows 用户: 1. 保存脚本(例如,命名为 euvd-vulnscan.ps1)。 2. 右键单击该脚本并选择“使用 PowerShell 运行”(请确保您使用的是 PowerShell 7)。 3. 等待浏览器打开并显示您的 HTML 报告。 4. 日志将保存在同一目录中,用于调试或审查。 5. 可能需要不时地手动清理旧报告和日志。 #### 故障排除 主要存在 2 个问题: 接口不稳定 - 即使在短短的开发期间,API Endpoints、API 命令和返回的数据结构,以及 API 的访问策略、可用性和性能,都被证明是不稳定的。变更可能在没有任何提前期、警告或文档的情况下发生。 封禁/屏蔽/速率限制 - 如果接口遭到一定数量(通常未定义)的请求或流量冲击,API Endpoints 可能会临时或永久封禁您/您的 IP。 大多数计数器会在 24 小时内重置。 ### Scrappi.pl Scrappi is a minimal web-scraper. The idea behind scrabbi is to identify changes to websites, such as static CVE and Security Advisory link lists. Scrappi reads the CVE-resources JSON from this repository. Scraps all URLs (from the "location" field). Creates a MD5 checksum of the fetched BLOB than Stores all of it in a local DB (urls.db), writes error during processing to scrabbi_error.log and detected changes to scrabbi_change.log. A detected change indicates that the URLs content might have changed e.g., new CVEs added. This does not work for dynamically created pages (like GitHub hosted Advisory Boards) and web-application DB interfaces (for obvious reasons). Scrappi 也可用于监控 JSON 格式的静态网页列表的任何类型变更,例如,网页篡改、劫持,或者仅仅是为了识别您喜欢的博客上的更改。 它还能测量性能 - 获取数据所花费的时间 - 并可以指示性能问题。 Scrappi 可在安装了 Perl 5.38.2 的 Linux 和 Windows 系统上运行,并使用标准的预装 Perl 库,如 DBI 和 Time:HiRes。 如果您想改进 Scrappi,请与我们取得联系。 ### CVE-resources-http-status-check.pl 现已提供由 Perl 编写的 HTML 生成器 CVE-resources-http-status-check.pl。该工具会获取最新发布的 cve_resources_list_alpha_sorted.JSON,检查 JSON 文件中列出的所有 location URL,并生成一个包含每个 URL 的 HTTP 响应代码的输出文件 cveresources_fetched_.html。输出文件为纯简单的 HTML 格式。 为了维护最新的资源列表,需要检查 CVE 资源(URL、URI)的可用性、可访问性和变更情况。 本项目将不定期生成并提供该状态生成器输出文件的更新版本。 状态代码 404 和 500 表示资源位置存在问题。状态 200 表示正常。状态 403 表示可能需要授权。 要执行此工具,需要最新版本的 Perl 5 解释器。请下载文件 JSON2HTM_Formatter.pl 并 执行“perl CVE-resources-http-status-check.pl”。已通过 Strawberry Perl 5.38.2 测试。应该可在 Windows 和 Linux 上运行。 Perl 及其包含的库应包含在 path 环境变量中。 ### JSON2HTM_Formatter.pl 现已提供由 Perl 编写的 HTML 生成器 JSON2HTM_Formatter.pl。该工具会获取最新发布的 cve_resources_list_alpha_sorted.JSON 并生成纯简单的 HTML 格式输出文件 cveresources_fetched_.html。 要执行此工具,需要最新版本的 Perl 5 解释器。请下载文件 JSON2HTM_Formatter.pl 并 执行“perl JSON2HTM_Formatter.pl”。已通过 Strawberry Perl 5.38.2 测试。应该可在 Windows 和 Linux 上运行。 Perl 及其包含的库应包含在 path 环境变量中。 ### 更多格式 欢迎添加其他机器可读的格式,例如 YML、XML、书签 甚至是数据库表导出,如 MySQL、MariaDB、PostgreSQL、MongoDB 和其他 Key-Value 存储系统。 ## 行动倡议 欢迎大家随时贡献、维护并保持信息的更新。欢迎任何形式的帮助。 感谢,Boa
标签:AI合规, Homebrew安装, 后端开发, 多模态安全