tum-esi/CyberSecDome-DAIR

GitHub: tum-esi/CyberSecDome-DAIR

基于强化学习的网络安全事件动态响应 API,根据入侵数据智能推荐处置策略并支持通过反馈持续优化模型。

Stars: 0 | Forks: 0

# DAIR REST API 本项目使用 Flask 实现了 DAIR 的 REST API。该系统利用 Q-learning(或 Deep Q-Learning)来为网络入侵提供应对建议。 ## 目录 - 安装 - API 使用 - 端点 ## 安装 1. 克隆仓库: git clone https://github.com/tum-esi/CyberSecDome-DAIR.git cd CyberSecDome-DAIR 2. 创建新的 Python 环境: python -m venv .dairenv 3. 激活虚拟环境: source .dairenv/bin/activate 仅适用于 Q-Learning: 4. a) 安装必要的包: pip install -r requirements_QLearning.txt 仅适用于 Deep Q-Learning: 4. b) 安装必要的包: pip install -r requirements_dqn.txt ## DAIR API ### 使用方法 运行 DAIR: ``` python dair_api.py ``` API 将通过您的 IP 地址(自动识别)的 `1234` 端口提供访问。 ### 端点 ### `POST /receive_playbook` 接收入侵数据并返回建议的响应。 * **URL**:/receive_playbook * **方法**:POST * **请求体**: ``` { "incident_id": 123, "source_ip_address": "192.168.1.1", "target_ip_address": "192.168.1.1", "source_port": 8080, "target_port": 50, "transport_protocol": ["TCP", "UDP"], "app_protocol": ["HTTP", "FTP"], "attack_type": "DOS", "severity": 5 } ``` * **响应**: ``` { "responses": [["Do Nothing"], ["Block IP", "Alert Admin"]] } ``` ### `POST /give_feedback` 接收关于建议响应的反馈,以更新 Q-learning 模型。 * **URL**:/give_feedback * **方法**:POST * **请求体**: ``` { "incident_id": 123, "feedback": [1, -1] } ``` * **响应**:HTTP 返回代码(如果成功则为 `200`) ### `GET /get_ai_state` 获取 Q-Table 的序列化状态。 * **URL**:/get_ai_state * **方法**:GET * **响应**:(MIME 类型 `application/octet-stream`) ``` \x80\x04\x95\xd2\x00\x00\x00\x00\x00\x00\x00}\x94(K\x01\x85\x94KP\x85\x94K\x00\x85\x94K\x00\x85\x94K\x00K\x06t\x94\x8c\x15numpy.core.multiarray\x94\x8c\x0c_reconstruct\x94\x93\x94\x8c\x05numpy\x94\x8c\x07ndarray\x94\x93\x94K\x00\x85\x94C\x01b\x94\x87\x94R\x94(K\x01K\x06\x85\x94h\t\x8c\x05dtype\x94\x93\x94\x8c\x02f8\x94\x89\x88\x87\x94R\x94(K\x03\x8c\x01<\x94NNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00t\x94b\x89C0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x99\x99\x99\x99\x99\xb9\xbfR\xb8\x1e\x85\xebQ\xc8\xbf\x94t\x94bs. ``` ### `POST /send_ai_state` 发送 Q-Table 的序列化状态。 * **URL**:/send_ai_state * **方法**:POST * **请求体**: ``` \x80\x04\x95\xd2\x00\x00\x00\x00\x00\x00\x00}\x94(K\x01\x85\x94KP\x85\x94K\x00\x85\x94K\x00\x85\x94K\x00K\x06t\x94\x8c\x15numpy.core.multiarray\x94\x8c\x0c_reconstruct\x94\x93\x94\x8c\x05numpy\x94\x8c\x07ndarray\x94\x93\x94K\x00\x85\x94C\x01b\x94\x87\x94R\x94(K\x01K\x06\x85\x94h\t\x8c\x05dtype\x94\x93\x94\x8c\x02f8\x94\x89\x88\x87\x94R\x94(K\x03\x8c\x01<\x94NNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00t\x94b\x89C0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x99\x99\x99\x99\x99\xb9\xbfR\xb8\x1e\x85\xebQ\xc8\xbf\x94t\x94bs. ``` * **响应**:HTTP 返回代码(如果成功则为 `200`) 本项目获得了欧盟资助项目 CyberSecDome(协议编号:101120779)的资金支持。详情:https://cybersecdome.eu/
标签:DNS 反向解析, Flask, Mr. Robot, Python, REST API, 库, 应急响应, 强化学习, 无后门, 网络安全, 逆向工具, 配置错误, 隐私保护