Software-Engineering-2026-Class/SEPSES-CSKG-LLM-Chatbot-Kelompok-5

GitHub: Software-Engineering-2026-Class/SEPSES-CSKG-LLM-Chatbot-Kelompok-5

基于LLM的网络安全知识图谱聊天机器人,用于风险评估。

Stars: 0 | Forks: 0

# SEPSES-CSKG-LLM-Chatbot-Kelompok-5 ## 一个集成了网络安全知识图谱的LLM聊天界面,用于网络安全风险评估 ## 项目描述 基于LLM的聊天机器人系统,集成了**SEPSES网络安全知识图谱(CSKG)**,用于网络安全分析。实现了**混合RAG + GraphRAG**架构,结合以下功能: - 对SEPSES KG(CVE、CWE、CAPEC、CPE、ATT&CK)的SPARQL查询 - 通过ChromaDB对本地安全日志的语义搜索 - 通过OpenRouter进行多LLM评估(访问100+个不同提供商的模型) ## 小组成员: | 姓名 | 学号 | Github | |-------|------|--------| | Fahmi Abdillah Zain | 24/539422/PA/22904 | FahmiZain16 | | Muhammad Dhafin A. G. | 24/539735/PA/22916 | Lemielll | | Ajie Armansyah Sunaryo | 24/545286/PA/23170 | AjieArmansyahSunaryo | | Satya Wira Pramudita | 24/543649/PA/23102 | satyawirapramudita | ## 开发团队 | 角色 | 姓名 | 分支 | | ------------------- | -------------------------------- | ---------------------- | | 知识架构师 | Ajie Armansyah Sunaryo | `feature/kg-engine` | | RAG 逻辑开发 | Fahmi Abdillah Zain | `feature/rag-logic` | | 全栈UI开发 | Muhammad Dhafin Alfeizar Gandhan | `feature/frontend-ui` | | 评估员与日志开发 | Satya Wira Pramudita | `feature/eval-log-dev` | ## 架构 ``` User Query │ ▼ Streamlit Frontend │ ▼ RAG Pipeline Orchestrator ├── NL2SPARQL → SEPSES SPARQL Endpoint │ CVE / CWE / CAPEC / CPE / ATT&CK └── Vector Search → ChromaDB Local Security Logs (Snort / Syslog / Windows Event) │ ▼ LLM Generator (via OpenRouter API) OpenAI | Google | Anthropic | Meta | Mistral | 100+ models │ ▼ Response + KG Graph Visualization + Source Citations │ ▼ LLM-as-a-Judge Evaluator ``` ## 运行方式 ### 前置条件 - Python 3.10+ - OpenRouter API密钥:[https://openrouter.ai/keys](https://openrouter.ai/keys) - (可选)Docker用于本地Jena Fuseki ### 1. 设置环境 ``` # 克隆仓库 git clone https://github.com/satyawirapramudita/SEPSES-CSKG-LLM-Chatbot.git cd SEPSES-CSKG-LLM-Chatbot # 创建虚拟环境 python -m venv .venv .venv\Scripts\activate # Windows # 安装依赖 pip install -r requirements.txt ``` ### 2. 配置 ``` # 复制模板并填写所需值 copy .env.example .env # 编辑.env文件,添加API密钥和相应配置 ``` ### 3. 运行应用程序 ``` streamlit run frontend/app.py ``` ### 4. 运行评估 ``` # 模拟模式(无需API密钥) python evaluation/run_eval.py --llm openai/gpt-4o-mini google/gemini-flash-latest --mock # 实时模式,使用OpenRouter的各种模型 python evaluation/run_eval.py --llm openai/gpt-4o-mini anthropic/claude-3.5-sonnet --category all ``` ## 📁 项目结构 ``` SEPSES-CSKG-LLM-Chatbot/ ├── .env.example # Template environment variables ├── requirements.txt # Python dependencies ├── docker-compose.yml # Fuseki + Ollama + App services │ ├── kg_engine/ # [Ajie] Knowledge Graph Engine │ ├── sparql_client.py # SEPSES SPARQL endpoint client │ ├── graph_builder.py # NetworkX graph builder │ ├── ontology_schema.txt # SEPSES ontology schema │ └── queries/ # SPARQL query templates │ ├── vulnerability_lookup.rq │ ├── search_by_product.rq │ └── get_capec_from_cve.rq │ ├── rag_logic/ # [Fahmi] RAG Pipeline │ ├── rag_pipeline.py # Main orchestrator │ ├── nl2sparql.py # NL → SPARQL (LangChain) │ ├── multi_hop.py # Multi-hop KG reasoning │ ├── llm_connector.py # GPT/Mistral abstraction │ └── prompt_templates.py # System/user prompts │ ├── log_analysis/ # [Satya] Log Analysis + Vector DB │ ├── log_parser.py # Snort/Syslog/WinEvent/Apache parser │ ├── vector_store.py # ChromaDB wrapper │ └── hybrid_retriever.py # BM25 + Semantic + RRF fusion │ ├── frontend/ # [Dhafin] Streamlit Frontend │ ├── app.py # Multi-page Streamlit app │ └── components/ │ ├── chat_window.py # Chat UI + citations │ ├── graph_visualizer.py # pyvis KG graph │ ├── log_uploader.py # Log file upload │ └── eval_dashboard.py # Evaluation charts │ ├── evaluation/ # [Satya] Evaluation Framework │ ├── benchmark_dataset.json # 30 pertanyaan benchmark │ ├── grader.py # LLM-as-a-Judge pipeline │ ├── run_eval.py # CLI runner │ └── results/ # Output evaluasi │ └── data/ ├── cskg_dumps/ # SEPSES RDF dump files ├── chroma_db/ # ChromaDB persistent storage └── sample_logs/ # Sample security logs └── snort_sample.log ``` ## 主要功能 | 功能 | 描述 | |-------|-----------| | 安全分析 | 通过SPARQL查询SEPSES KG(CVE、CWE、CAPEC、CPE、ATT&CK)进行安全分析 | | 威胁行为者分析 | 多跳遍历CVE→CWE→CAPEC→ATT&CK | | 恶意软件调查 | 通过KG进行恶意软件技术调查 | | 日志分析 | 上传 + 分析Snort/Syslog/Windows事件日志 | | KG QA | 直接对SEPSES CSKG进行问答 | | 图形可视化 | KG实体关系的交互式可视化 | | 多LLM评估 | 通过OpenRouter比较不同的LLM模型 | ## 为什么选择OpenRouter? 本项目使用**OpenRouter**作为统一的API网关,以访问来自不同提供商的100+个LLM模型。优势: | 优势 | 描述 | |------------|-----------| | **单一API** | 一个API密钥即可访问所有模型(OpenAI、Google、Anthropic、Meta、Mistral等) | | **成本效益** | 竞争力和透明度高的价格,按token付费,无需订阅 | | **模型灵活性** | 可以轻松切换模型而无需更改代码 - 只需更改模型名称 | | **无基础设施** | 无需维护Ollama服务器或本地GPU | | **自动回退** | 内置对主要模型失败的备用模型 | | **速率限制** | 内置速率限制和重试逻辑 | **可用的模型:** - **OpenAI**: gpt-4o, gpt-4o-mini, gpt-3.5-turbo - **Google**: gemini-flash-latest, gemini-1.5-pro, gemini-1.5-flash - **Anthropic**: claude-3.5-sonnet, claude-3-opus, claude-3-haiku - **Meta**: llama-3-70b-instruct, llama-3-8b-instruct - **Mistral**: mistral-7b-instruct, mixtral-8x7b-instruct, mixtral-8x22b-instruct - 以及100+个其他模型:[https://openrouter.ai/models](https://openrouter.ai/models) ## SEPSES CSKG数据源 | 数据集 | URL | | ---------------- | -------------------------------------- | | SPARQL端点 | https://w3id.org/sepses/sparql | | RDF存档 | https://w3id.org/sepses/dumps/ | | CVE词汇表 | http://w3id.org/sepses/vocab/ref/cve | | CWE词汇表 | http://w3id.org/sepses/vocab/ref/cwe | | CAPEC词汇表 | http://w3id.org/sepses/vocab/ref/capec | | CPE词汇表 | http://w3id.org/sepses/vocab/ref/cpe | | CVSS词汇表 | http://w3id.org/sepses/vocab/ref/cvss |
标签:Kubernetes, Terrascan, 逆向工具