Montimage/cti4bc-backend

GitHub: Montimage/cti4bc-backend

面向关键基础设施的网络威胁情报共享平台后端,整合 MISP 实现情报的采集、富化与跨组织互操作。

Stars: 0 | Forks: 0

CTI4BC (CTI for Business Continuity)

## 简介 为 Dynabic 组件收集的用于处理信息共享 (IS) 和网络威胁情报 (CTI) 平台的核心功能。 本项目为所有项目合作伙伴选定的 IS 是 [MISP](https://www.misp-project.org/),这样我们可以共享/优化/测试对每个人都有用的功能,从而在此过程中节省时间。 CTI4BC 是 [Dynabic (欧盟 Horizon Europe) 项目](https://dynabic.eu/)的一个组件。 ## 安装 如需独立使用核心库: ``` # 下载或克隆 repo git clone https://github.com/Montimage/cti4bc-backend # 作为 *development* package 安装 # 这将安装 aiohttp 和 pytest packages pip install -e "./cti4bc-backend/src" # 可选,创建 virtual env # 可选,使用 $PYTHONPATH 安装 ``` ## 配置 - 方案 a - 使用环境变量。*这应该是核心库贡献者的首选方式*。该库需要 url 和 misp api key。推荐的做法是将它们添加到环境变量 `MISP_URL` 和 `MISP_TOKEN` 中(在 /etc/environment 或 .env 文件或 activate 文件等中),但用户可以自行决定是在环境中设置这些凭证,还是在调用 `misp.configure(url, key)` 方法时传入。对于与风险相关的功能,请设置 `RISK_URL` 和 `RISK_TOKEN`。 - 方案 b - 使用显式的 `configure(url,token)` 方法。*这应该是核心库外部使用者的首选方式*。在启动应用程序时,我们可以通过在某些模块上调用 configure() 方法来设置/覆盖端点。 配置参数示例: ``` MISP_TOKEN="kajeucn09876njeudnenSAFBXxs" MISP_URL="https://misp.example.com" RISK_URL="https://risk.example.com" RISK_TOKEN='82jeNajeucneDsxzyq' ``` ## 用法 示例(更多示例请参见 tests 文件夹): ``` import asyncio import cti4bc.misp as misp # (或者) from cti4bc import misp async def main(): try: # Optional # misp.configure(url,api_key) events = await misp.event.list() id = events[0]['id'] event = await misp.event.get(id) print(event) except Exception as e: # handle e.code, e.status print(e) asyncio.run(main()) ``` ### VSCODE 使用提示(仅适用于非默认 VSCODE) 最简单的方法是将该库作为开发包安装(如上文所述),并从安装文件夹启动 VSCODE。运行/调试按钮和自动补全功能应该可以正常工作。 另外,采用其他开发路径也有其原因。例如,有人希望将项目作为子文件夹添加(不在 VSCODE 工作区中,也不作为根文件夹),有人希望将此项目和其他包作为文件夹处理而不通过 pip 安装,或者出于其他任何原因。在这些情况下,VSCODE 将无法找到该包,因此在输入时 `Debug` 或 `Autocomplete (intellisense)` 功能将不可用。额外的配置步骤如下: - 对于运行/调试:为了在运行/调试/或终端中找到模块,请将 PYTHONPATH 添加到环境中。例如,如果使用的是虚拟环境,请将其添加到 `.venv/bin/activate` 中。然后重启 VSCODE 或打开一个新的终端,或者重新激活虚拟环境以使更改生效。PYTHONPATH 类似于 Java 中的 classpath,有了它就可以直接找到并执行代码,无需经过安装步骤。 ``` PYTHONPATH="$PYTHONPATH:/YOUR/DYNABIC/FOLDER/cti4bc/src" export PYTHONPATH ``` - 对于自动补全/intellisense:将以下属性添加到 settings.json(位于用户、工作区或文件夹中)中: ``` "python.analysis.extraPaths": [ "/YOUR/DYNABIC/FOLDER/cti4bc/src" ] ``` ## 库中的模块 ### skeletons 具有默认值的数据类型。这样每个人都可以在此放置一个精心设计的骨架,其他开发人员无需了解该对象,只需获取副本并更新 1 到 2 个字段即可。既然 Python 不是一种编译型、严格类型的语言,那就让我们优先考虑生产力。使用简单的对象,当确实需要复杂对象时,再将其放入 skeletons 列表中。 ### misp 与 MISP 服务器交互的最小操作集合。请参阅您的 MISP 实例中的 `API` 导航选项卡(注意:此模块并不是要成为一个自动生成的、包含所有服务和模型的 OpenAPI。我们会花更多时间处理 Dynabic 数据模型……)。 ## 作为 Django 应用程序安装 1. 前提条件: - Python 3.11 或更高版本 - 用于虚拟环境管理的 pip 和 venv - PostgreSQL 13+(已配置且可访问) 2. 克隆仓库: ``` git clone git@github.com:Montimage/cti4bc-backend.git cd cti4bc-backend ``` 3. 创建并激活虚拟环境: ``` python3 -m venv .venv source .venv/bin/activate ``` 4. 安装依赖项: ``` pip install -r requirements.txt ``` 5. 创建包含所需配置变量的 .env 环境配置文件: ``` # ------------------------------- # Database 配置 (PostgreSQL) # ------------------------------- DB_NAME=cti4bc_db # Name of the PostgreSQL database DB_USER=cti4bc_user # Database username DB_PASSWORD=change-me # Database password DB_HOST=cti4bc-postgres-service # Hostname or service name of the database DB_PORT=5432 # Database port (default for PostgreSQL) # ------------------------------- # Kafka 配置 # ------------------------------- KAFKA_SERVER=kafka-broker:9092 # Kafka bootstrap server address KAFKA_USERNAME=kafka_user # Username for Kafka authentication (if required) KAFKA_PASSWORD=kafka_password # Password for Kafka authentication (if required) # ------------------------------- # Kafka Topics # ------------------------------- CTI_REMOTE_TOPIC= CTI4BC.events # Topic for sharing CTI events with other organizations RISK_TOPIC=RISK4BC.riskProfile # Topic for receiving risk assessment information from RISK4BC ``` 6. 执行数据库迁移并创建管理员用户: ``` python manage.py migrate python manage.py createsuperuser ``` 7. 运行开发服务器: ``` python manage.py runserver ``` ## 部署 CTI4BC 后端可以作为 Docker 容器进行构建和部署。 1. 构建 Docker 镜像 - 标准构建: ``` docker build -t cti4bc-backend . ``` - 适用于 Apple Silicon (M1/M2) 或多平台构建: ``` docker buildx build \ --no-cache \ --platform linux/amd64 \ --build-arg REACT_APP_API_URL= https://your-api-url.com \ -t cti4bc-backend \ --load . ``` ## 致谢 *本项目已获得欧盟 Horizon Europe 研究与创新项目第 101070455 号资助协议的资金支持。* Dynabic (欧盟 Horizon Europe) 项目](https://dynabic.eu/)
标签:Burp项目解析, Django, Python, 后端开发, 威胁情报, 开发者工具, 数据共享, 无后门, 测试用例, 网络安全, 请求拦截, 逆向工具, 隐私保护