KYoussefAI/snort_rag_rule_generator

GitHub: KYoussefAI/snort_rag_rule_generator

一个基于 RAG 的 NLP 项目,用于从自然语言描述生成 Snort IDS 入侵检测规则。

Stars: 0 | Forks: 0

# Snort RAG 规则生成器 - NLP 迷你项目 + Devoir 3 一个防御性的 NLP/RAG 项目,用于从自然语言描述的网络攻击中生成有效的 Snort IDS 规则。 ## 项目内容 - 存储在 `data/processed/final_snort_dataset.csv` 中的**官方 Person 1 检索数据集**。 - 存储在 `data/knowledge_base/` 中的真实 Snort 规则的**可信来源知识库**。 - 一个**将可信规则扩展为实验行**的旧版脚本:`python -m snort_rag.generate_dataset --multiplier 20`。 - 七种 Devoir 3 架构: - 无 RAG 的基线 - 经典 RAG - 带重排序的 RAG - 混合 RAG(TF-IDF 稠密回退 + BM25 融合) - 多跳 RAG - 图 RAG - 智能体 RAG - `results/comparison_metrics.csv` 中的指标和比较表。 - `results/embedding_tsne.png` 中的 t-SNE 嵌入可视化。 - 带 PDF 上传功能的 Gradio 仪表板,用于扩展知识库。 - `docs/` 中的技术报告。 ## 安装说明 ``` python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r requirements.txt pip install -e . ``` ## 构建真实规则知识库 ``` python scripts/fetch_real_sources.py ``` 输出: - `data/knowledge_base/trusted_rule_kb.csv` - `data/knowledge_base/trusted_rule_kb.jsonl` - `data/knowledge_base/fetch_summary.json` ## 官方 Person 1 数据集 应用程序、Devoir 3 运行器和检索层使用的官方数据集是: - `data/processed/final_snort_dataset.csv` - `data/processed/final_snort_dataset.jsonl` - `data/processed/dataset_summary.json` - `data/processed/person1_rules.rules` 此数据集是私人的、受控的、可手动审核的,是 Person 1 和整个项目默认检索语料库的主要数据集。 导出的 Person 1 规则已通过强化的验证器在本地预先验证。这不能替代 Snort 运行时验证。 提交状态: - 官方 Person 1 数据集为 `data/processed/final_snort_dataset.csv`。 - 最终数据集是私人的、受控的、在 10 种攻击类型间平衡,并且包含 200 行。 - 旧版可信规则扩展生成器仅作为实验代码保留在存储库中。 - 旧的 50 万行生成文件未包含在最终提交的项目中。 ## 旧版数据集生成器 旧版生成器需要可信的真实规则知识库,并为每个真实规则创建 多行自然语言描述,仅用于旧版实验。 ``` python -m snort_rag.generate_dataset --multiplier 10 # 更大数据集 python -m snort_rag.generate_dataset --multiplier 30 ``` 如果手动运行实验,旧版输出为: - `data/experiments/legacy_generated/snort_generated_dataset.csv` - `data/experiments/legacy_generated/snort_generated_dataset.json` - `data/experiments/legacy_generated/snort_generated_dataset.jsonl` - `data/experiments/legacy_generated/snort_generated_dataset_summary.json` 这些文件仅是旧版实验工件。旧版生成器不再写入 `data/processed/`,且不得用作官方 Person 1 数据集工作流。 ## 运行 Devoir 3 比较 ``` python -m snort_rag.run_devoir3 ``` 输出: - `results/comparison_metrics.csv` - `results/detailed_devoir3_results.csv` - `results/embedding_tsne.png` ## 启动仪表板 ``` python -m snort_rag.app_gradio ``` 该仪表板允许您选择 RAG 架构、生成 Snort 规则、检查检索到的文档,并添加 PDF 作为新的知识来源。 ## 项目结构 ``` src/snort_rag/ package source code data/knowledge_base/ persisted trusted-source real Snort rules data/raw/ source manifest data/processed/ official Person 1 dataset data/experiments/legacy_generated/ legacy trusted-rule expansion outputs only notebooks/ Devoir 3 notebook results/ metrics and t-SNE plot docs/ report files scripts/fetch_real_sources.py trusted-source rule ingestion ``` ## 示例 ``` from snort_rag.architectures import SnortRAGArchitectures rag = SnortRAGArchitectures("data/processed/final_snort_dataset.csv") result = rag.agentic_rag("Detect SQL injection with UNION SELECT in HTTP URI") print(result["generated_rule"]) print(result["explanation"]) ``` ## 免责声明 这是一个用于教育目的的防御性 IDS 规则生成项目。每个生成的规则在投入生产使用前,仍需在真实的 Snort 安装中使用 Snort 的配置测试模式进行验证。
标签:Apex, DNS枚举, Gradio, Mutation, NLP应用, PDF处理, RAG架构, Ruby, 入侵检测系统, 可视化, 安全数据湖, 技术报告, 机器学习, 架构比较, 检索增强生成, 深度学习, 知识库, 网络安全, 网络安全工具, 网络调试, 自动化, 规则生成, 评估指标, 逆向工具, 隐私保护