jianaphilip/autonomous-ai-firewall-with-Intrusion-Response

GitHub: jianaphilip/autonomous-ai-firewall-with-Intrusion-Response

一个基于混合机器学习与LLM的端到端网络入侵检测原型,实现检测、关联、解释与响应的一体化流程。

Stars: 0 | Forks: 0

# 人工智能驱动的入侵检测系统 生产风格的入侵检测工作流程,结合混合机器学习检测、事件关联、LLM 推理和响应剧本,用于可操作的事件分析。 ## 概述 本项目交付一个端到端的 IDS 管道,能够在历史或实时派生的网络流量数据上运行。 核心能力: - 使用集成置信度评分的混合检测 - 将样本告警关联为分组事件的实例级关联 - 带有自动模板回退的 LLM 辅助推理 - 按严重性划分的 HoneyBadger 响应剧本 - 带有可导出事件工件的 Streamlit 仪表板 ## 当前架构 实现的运行时架构是一个 5 阶段管道: 1. 混合检测引擎 2. 关联引擎 3. 推理层 4. 响应剧本(HoneyBadger) 5. 仪表板与导出层 ### 混合检测模型 实现的检测器组件: - LSTM 代理(带时序特征的 MLP) - CNN 代理(MLP 特征模式学习器) - 随机森林分类器 - 用于异常分数的自编码器风格重建模型 评分公式: - Phybrid = 0.35 * PLSTM + 0.30 * PCNN + 0.35 * PRF - 置信度 = 0.72 * Phybrid + 0.28 * 异常分数 ## 仓库结构 ``` intrusion_project/ data/ raw/ processed/ clean_data.csv engineered_features.csv multi_dataset_combined.csv cache/ notebooks/ 1_data_preprocessing.ipynb 2_feature_engineering.ipynb 3_ml_training.ipynb intelligent_cyber_assistant.py live_data_adapter.py multi_dataset_processor.py streamlit_dashboard.py requirements.txt PROJECT_REPORT.md README.md ``` ## 数据集 支持的数据源: - UNSW-NB15 - CIC-IDS2017(CSV 导出) 组合处理由 multi_dataset_processor.py 处理并生成: - data/processed/multi_dataset_combined.csv ## 快速开始 ### 1. 安装依赖 ``` pip install -r requirements.txt ``` ### 2. 配置环境 ``` copy .env.example .env ``` 在 .env 中设置一个或多个提供者: - OPENAI_API_KEY - GEMINI_API_KEY(或 GOOGLE_API_KEY) ### 3. 可选:构建组合数据集 ``` python multi_dataset_processor.py ``` ### 4. 运行后端管道 ``` python intelligent_cyber_assistant.py ``` ### 5. 运行仪表板 ``` python -m streamlit run streamlit_dashboard.py ``` ## Streamlit 仪表板功能 - 历史 CSV 模式与实时网络模式 - 快速模式开关以降低延迟推理 - 缓存预处理工件以加速重复运行 - 会话结果缓存用于相同参数的重复运行 - 默认折叠重型可视化部分以加快首次渲染 - JSON 与 CSV 事件导出 ## LLM 推理行为 推理层支持 OpenAI 与 Gemini 提供者。 预期行为: - llm_used: 是当提供者调用成功 - llm_used: 否当使用回退模板推理 回退条件包括: - 缺失 API 密钥 - 提供者配额耗尽或 API 错误 - 不支持的模型标识符 说明: - 自动模式下,使用 GPT 模型名称时 OpenAI 为主 - 当配置了 Gemini 密钥与有效模型时,Gemini 回退可用 ## 实施的性能优化 - 通过从训练中排除高基数字段身份列实现特征空间降维 - 数据集准备期间的 NaN 与 inf 清洗 - 特征矩阵的 float32 转换 - 快速模式检测器配置(更小的模型尺寸) - data/processed/cache 上的磁盘预处理缓存 - Streamlit 端结果缓存与可选的缓存清除 ## 故障排除 ### Streamlit 启动但分析显示缓慢 - 在侧边栏启用快速模式 - 降低样本量(例如 2000 到 4000) - 仅在需要全新运行时使用“仅清除缓存结果” ### LLM 卡片显示 llm_used: 否 - 验证 .env 中是否存在 API 密钥 - 确保所选提供者与配置的密钥匹配 - 检查模型名称是否受支持 - 清除缓存结果并重新运行 ### 模型关于 NaN 值的错误 当前预处理逻辑已处理此情况。若再次出现,请重新生成组合数据集并使用更小的样本量运行以隔离损坏的输入切片。 ## 安全注意事项 - 永远不要将 .env 提交到源代码控制 - 如果 API 密钥在日志、截图或聊天中暴露,请轮换密钥 - 将原始与处理后的数据集保存在本地可信存储中 ## 技术栈 - Python、Pandas、NumPy - scikit-learn - Streamlit - Matplotlib、Seaborn - python-dotenv - OpenAI SDK 与 Google 生成式 AI SDK ## 许可与使用 本仓库当前配置为学术与研究风格的实现。如果你计划更广泛的公共分发,请添加明确的许可文件。 *结构化、完整、生产就绪*
标签:AI可解释性, Apex, CIC-IDS2017, CNN, HTTP/HTTPS抓包, Kubernetes, LLM推理, LSTM, Python, Streamlit, UNSW-NB15, 事件关联, 告警管理, 响应编排, 安全仪表盘, 实时分析, 异常检测, 态势感知, 数据预处理, 无后门, 机器学习, 深度学习, 混合模型, 演示分析, 特征工程, 网络威胁检测, 网络流量分析, 自动化响应, 自编码器, 蜜罐, 访问控制, 证书利用, 逆向工具, 随机森林, 集成学习