stamenne/V-TAP-Vulnerability-and-Threat-Intelligence-Pipeline

GitHub: stamenne/V-TAP-Vulnerability-and-Threat-Intelligence-Pipeline

一个面向企业 GRC 场景的漏洞与威胁情报聚合管道,旨在将多源异构的安全风险数据统一采集、清洗并规范化,为合规报告和风险评估提供结构化数据支撑。

Stars: 0 | Forks: 0

# V-TAP-Vulnerability-and-Threat-Intelligence-Pipeline ## 项目概述 如今,网络安全是所有组织的重要组成部分。人们通常认为网络安全是一个主要涉及人员抗击黑客的实操领域。虽然这是事实,但网络安全还有另一面往往被忽视:非技术层面。尽管讨论不足,但非技术层面对于维持技术层面的运作至关重要。具体来说,非技术网络安全分析师必须执行的一项任务是风险评估。为了防止网络攻击并保护组织的数据安全,风险评估是必要的,但挑战在于如何获取安全风险数据。 本项目名为 V-TAP,是 Vulnerability and Threat Intelligence Aggregation Pipeline(漏洞与威胁情报聚合管道)的缩写。V-TAP 将是一个专为网络安全 GRC 领域设计的分布式系统,旨在解决现代组织安全团队在收集安全风险数据以用于合规性报告和风险评估时面临的问题。 ## 大数据问题 企业安全团队在收集用于合规性报告、基于风险的优先级排序和事件响应上下文的数据时,面临着通常被称为“多样性”的问题。风险数据高度分散在多个领域中,包括公开的漏洞源、供应商威胁情报 API 和内部资产扫描。整理这些信息既繁琐又耗时,使分析师的注意力偏离了主要任务:分析这些威胁。如前所述,V-TAP 将充当漏洞与威胁情报聚合管道。这个大数据系统的主要目标是整理来自多个异构源的安全风险数据,并创建一个干净的数据集,以用于企业安全团队的报告和评估。 ## 技术栈 V-TAP 基于多层大数据堆栈设计,以确保可扩展性: * 存储层:HDFS 是用于分布式文件存储的主要工具 * 语法层:JSON 和 Parquet,用于实用且有组织的存储 * 数据模型:Spark DataFrames,用于 schema 验证 * 处理层:Apache Spark,用于并行 map、join 和 reduce 任务 * 数据存储层:MongoDB,用于保存整理后的安全风险记录文件 * 查询层:Spark SQL,用于查询和 GRC 报告 ## 数据源 该管道将从以下三个安全风险源摄取数据: + NIST NVD:包含 JSON 格式的历史 CVE 记录 + CISA KEV:一个已知被积极利用的漏洞目录 + AlienVault OTX:威胁情报指标 ## 项目结构 Stack Architecture Diagram ## 环境设置与依赖 本系统需要 Python 3.10 或更高版本以及 pip。所需的 Python 包包括 requests 和 python-dotenv。要安装所有必需的包,请运行: ``` pip install -r requirements.txt ``` 该管道从外部 API 摄取数据,因此需要以下 API 及相应的 API 密钥: + NVD API + CISA KEV Catalog(无需 API 密钥) + AlienVault OTX 要存储密钥,请在项目根目录下创建一个 .env 文件,其中包含来自 NVD 和 OTX 的密钥。示例 .env 文件内容: ``` NVD_API_KEY=enter_key_here OTX_API_KEY=enter_key_here ``` ## 如何运行 要运行此管道,请执行以下操作: ### 克隆仓库 在您的设备上打开终端并运行: ``` git clone https://github.com/stamenne/V-TAP-Vulnerability-and-Threat-Intelligence-Pipeline cd V-TAP-Vulnerability-and-Threat-Intelligence-Pipeline ``` ### 安装必需的包 要安装所有必需的包,请运行以下命令: ``` pip install -r requirements.txt ``` ### 创建包含 API 密钥的 .env 文件 创建一个 .env 文件并添加 API 密钥,如上所述。 ### 运行脚本 共有三个用于 NVD、KEV 和 OTX 的数据获取脚本,以及一个运行这三个脚本的主脚本。 要单独运行脚本,请使用以下命令: #### NVD 获取 ``` python src/ingestion/fetch_nvd.py ``` #### KEV 获取 ``` python src/ingestion/fetch_kev.py ``` #### OTX 获取 ``` python src/ingestion/fetch_otx.py ``` 要运行 main.py,请使用以下命令: #### 主页 ``` python src/ingestion/main.py ``` ## 当前状态 目前,该管道可以成功地从三个 API 来源(NVD、CISA KEV 和 AlienVault OTX)摄取漏洞和威胁情报数据。摄取脚本会根据需要发出请求,检索少量数据样本,并将原始 JSON 保存到 data/raw 内的正确文件夹中。该管道正在开发中,具有一个处理阶段,可将原始 JSON 转换为用于查询的规范化格式。最后一步将是创建一个实际上可查询的输出。 ## 未来里程碑 + **里程碑 3:** 完成实施
标签:ESC4, ETL, GitHub, GPT, GRC, HDFS, Homebrew安装, JavaCC, Open Source Intelligence, OSINT, 企业安全, 分布式系统, 合规报告, 响应大小分析, 大数据, 威胁情报, 安全运营, 密码管理, 开发者工具, 情报收集, 扫描框架, 插件系统, 数据管道, 数据聚合, 无线安全, 漏洞分析, 漏洞研究, 漏洞管理, 目录扫描, 网络安全, 网络资产管理, 资产扫描, 路径探测, 软件工程, 逆向工具, 隐私保护, 风险优先级