JampaniKomal/CTI-Gateway
GitHub: JampaniKomal/CTI-Gateway
一个基于Python和SOAP的CTI网关,利用XPath、XSD和XSLT等XML技术对威胁情报源进行解析、验证与转换,以便SIEM平台接入。
Stars: 0 | Forks: 0
# 网络威胁情报 (CTI) 网关
**课程:** XML & Web Services (G7B38XWS)
**专业:** B.Tech 计算机科学与工程(网络安全方向) - 第七学期
本项目是一个功能完备的基于 SOAP 的 Web Service,它聚合实时威胁情报源,使用 XML 技术对其进行解析,并以结构化格式提供服务,以便 SIEM 平台(如 Splunk 或 Wazuh)接入摄取。
## 功能与课程要求达成情况
1. **基于 XML 的请求/响应:** 使用 Python 的 `spyne` 框架提供 SOAP Web Service。
2. **WSDL 契约:** 自动生成健壮的 WSDL 供客户端使用。
3. **XPath 提取:** 使用 `lxml` 和 XPath 从原始 XML 源中提取特定的入侵指标,例如恶意 IP 地址和 CVE 标识符。
4. **Schema 验证 (XSD):** 对提取的数据进行规范化,并根据严格的 `threat_model.xsd` schema 进行验证。如果验证失败,将抛出 SOAP fault。
5. **XSLT 转换:** 使用 `transform_to_siem.xslt` 将已验证的 XML 转换为 HTML SIEM 仪表板。
## 技术栈
- **语言:** Python 3.x
- **SOAP 框架:** `spyne` 和 `werkzeug`
- **XML 处理:** `lxml`(用于 XPath、XSD 和 XSLT)
## 如何运行
1. 创建 Python 虚拟环境:
python -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
*(注意:如果在较新的 Python 版本中从源码安装 `lxml`,请确保已安装 C++ Build Tools)。*
2. 安装依赖:
pip install -r requirements.txt
3. 运行 SOAP 网关:
python app.py
4. WSDL 将可以通过以下地址访问:`http://127.0.0.1:8000/?wsdl`
## 客户端测试
您可以使用 **Postman** 或 **SoapUI** 测试 SOAP endpoint,方法是创建一个新的 SOAP 请求并将其指向 WSDL URL。您可以调用 `GetLatestThreatsXML` 和 `GetThreatDashboardHTML` 等方法。
标签:Python, SOAP, XML, 威胁情报, 开发者工具, 无后门, 逆向工具