Fabi2708/cti-psi

GitHub: Fabi2708/cti-psi

基于 C 语言和 libsodium 实现的隐私保护私有集合求交工具,用于在双方不暴露完整数据集的前提下比对共享的威胁情报 IOC 指标。

Stars: 1 | Forks: 0

# 用于威胁情报共享的私有集合求交 本仓库包含了一个**私有集合求交(PSI)**的简单实现,使用了真实的网络威胁情报数据。 该项目演示了双方如何在不向对方暴露完整数据集的情况下,识别出共享的入侵指标(IOC)。 本项目使用的数据集来源于 [abuse.ch ThreatFox](https://threatfox.abuse.ch/)。 该 PSI 实现使用 **C** 语言编写,基于 [libsodium 加密库](https://libsodium.org/)。 ## 概述 威胁情报共享对于提升网络防御能力和识别恶意基础设施至关重要。然而,由于隐私、运营和安全方面的顾虑,各组织通常不愿共享原始的 IOC 数据集。 私有集合求交(PSI)提供了一种隐私保护的解决方案,允许双方在不暴露不匹配条目的情况下,计算其数据集的交集。 本仓库使用分割在双方之间的 IOC 数据集模拟了该场景: - Alice - Bob ## 使用的技术 - C - Python - [libsodium](https://libsodium.org/) - CSV/TXT 数据集 ## 数据集 原始的 IOC 数据集获取自: - [abuse.ch 的 ThreatFox](https://threatfox.abuse.ch/) 预处理脚本会清洗并提取 IOC 值,例如: - 域名 - IP 地址 - URL - 文件哈希值 随后,清洗后的数据集将被分割为独立的多个数据集,代表参与 PSI 的两个不同组织。 ## PSI 场景 本项目模拟了一个威胁情报共享环境,其中: - Alice 拥有一份 IOC 数据集 - Bob 拥有另一份 IOC 数据集 使用私有集合求交,双方可以在不暴露其完整威胁情报源的情况下,识别出重叠的恶意指标。 ## 运行项目 ### 编译 ``` gcc psi.c -lsodium -o psi ``` ### 运行 ``` ./psi ``` ## 预处理工作流 Python 脚本用于在执行 PSI 之前准备数据集。 ### 清洗数据集 ``` python3 clean_dataset.py ``` ### 分割数据集 ``` python3 split_dataset.py ``` 这将生成: - `alice_dataset.txt` - `bob_dataset.txt` ## 目的 创建本仓库是出于与以下相关的教育和研究目的: - 私有集合求交(PSI) - 隐私保护计算 - 网络威胁情报共享 - 网络安全研究 ## 参考 - [abuse.ch ThreatFox](https://threatfox.abuse.ch/) - [libsodium 文档](https://doc.libsodium.org/) - [私有集合求交 – 维基百科](https://en.wikipedia.org/wiki/Private_set_intersection)
标签:abuse.ch, Burp项目解析, IOC, libsodium, MPC, PETs, PSI, Python, ThreatFox, 多方安全计算, 失陷标证, 威胁情报, 威胁情报共享, 安全计算, 客户端加密, 密码学, 密码管理, 开发者工具, 恶意IP, 恶意URL, 恶意域名, 手动系统调用, 文件哈希, 无后门, 网络威胁情报, 网络安全, 网络安全, 逆向工具, 隐私保护, 隐私保护, 隐私增强技术, 隐私计算, 隐私集合求交