birichani-codes/cybersecurity-incident-response-framework-integrating-institutional-knowledge-kalro

GitHub: birichani-codes/cybersecurity-incident-response-framework-integrating-institutional-knowledge-kalro

一个基于 NIST 框架与 SECI 模型的原型系统,旨在捕获机构知识并提升事件响应的一致性与效率。

Stars: 0 | Forks: 0

# 原型框架:利用机构知识改进网络安全事件响应 ## 肯尼亚农业与畜牧业研究组织(KALRO)案例研究 ## 描述 本项目提出一个**原型框架**,通过捕获、构建和集成**机构知识**(组织内个人积累的经验、技能和隐性知识)来增强网络安全事件响应能力。 许多组织依赖于仅存在于长期服务员工头脑中的未记录专家经验。当这些人员离开或不可用时,关键的响应能力就会丢失。本原型展示了如何将隐性个人知识转化为**可搜索、可版本化、可重用的情报**,以支持更快、更有效的事件响应。 设计遵循**NIST网络安全框架原则**、**SECI知识管理**和**MIST设计概念**,以确保模块化、安全性以及与现有工具的集成。 ## 目标 - 探索捕获未记录机构知识的方法 - 将原型集成到网络安全工作流程中 - 展示响应速度和决策能力的提升 - 减少对个人专业知识的依赖(概念验证) - 创建**可搜索、可版本化的机构知识库** - 建立包含衰减检测、版本控制和退役的知识生命周期 ## 关键特性 - **带可选2FA的基于角色的身份验证** - **用于事件监控的交互式React仪表板** - **机构知识捕获与注释** - **检索知识条目的置信度评分** - **版本控制和知识退役生命周期** - **全文搜索与历史事件检索** - **新事件记录时的自动知识建议** - **所有知识条目的贡献者归属** - **未知或不匹配事件的升级工作流** - **所有系统操作的全面审计跟踪** - **与日志和威胁情报源的集成** ![关键特性](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/beb6ea636b171645.png) ## 原型架构 - **表示层** – React SPA(单页应用程序) - **应用层** – Node.js + Express REST API - **知识层** – 标记、索引、版本控制和置信度评分 - **集成层** – 与日志、IDS和外部威胁源的连接 - **数据层** – PostgreSQL持久化存储,用于事件、知识和审计日志 ![原型架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/5bb1bad670171647.png) ## 技术栈 | 层 | 技术 | |---|---| | 前端 | React (Vite) + React Router + Axios | | UI样式 | Tailwind CSS | | 状态管理 | React Context API | | 后端 | Node.js + Express | | 数据库 | PostgreSQL(通过tsvector支持全文搜索) | | 身份验证 | JWT令牌 + bcrypt密码哈希 + 可选TOTP 2FA | | 搜索 | PostgreSQL原生全文搜索 | | 开发工具 | Vite(前端)、Nodemon(后端)、dotenv | ## 用户角色 | 角色 | 权限 | |---|---| | **超级管理员** | 完全访问:管理用户、角色、系统配置 | | **安全分析师** | 记录事件、捕获知识、注释、搜索 | | **查看者** | 对仪表板和知识库的只读访问 | | **系统** | 通过API密钥进行自动日志和警报摄取 | ## 框架一致性 本原型与已建立的框架和设计原则保持一致,以确保**安全性、可扩展性和有效的知识管理**。 ### NIST网络安全功能 提供贯穿整个生命周期的结构化事件管理。 - **识别** — 了解资产、风险及现有机构知识 - **保护** — 通过RBAC、加密和2FA确保安全访问 - **检测** — 监控日志、警报和传入的事件信号 - **响应** — 执行由机构知识指导的缓解策略 - **恢复** — 捕获经验教训,更新知识库,恢复运营 ### SECI知识管理 在组织内捕获和共享机构知识。 - **社会化** — 团队对事件的讨论与协作 - **外部化** — 注释并记录事件见解到知识库 - **组合** — 跨事件和部门整合知识 - **内化** — 将经验教训应用于未来的响应 ### MIST设计原则 确保模块化、安全性和现代系统设计。 - **微服务** — 分离的组件:认证、事件、知识、NLP/标记 - **集成** — 与外部系统(日志、IDS、威胁源)连接 - **安全** — 基于角色的访问控制、加密、2FA、审计日志 - **技术** — React SPA + REST API + PostgreSQL;支持未来的NLP自动化 ### TRIKER知识生命周期 指导完整的机构知识生命周期。 - **触发** — 当事件发生或执行操作时启动工作流 - **记录** — 记录见解、注释和经验教训 - **整合** — 将新知识与现有库合并 - **知识** — 结构化信息以便轻松检索和分析 - **评估** — 评估捕获知识的质量、相关性、准确性和置信度 - **重用** — 将过去知识应用于改进未来的事件响应 ![框架一致性](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/49bd314e55171648.png) ## 知识生命周期管理 本框架的一个关键组成部分是显式管理知识条目生命周期,以防止过时信息误导分析师。 ### 知识条目状态 | 状态 | 含义 | |---|---| | **活跃** | 当前、受信任并推荐使用 | | **取代** | 被新版本替换 — 可见但标记 | | **退役** | 已归档;不再适用或准确 | ### 置信度评分 每个知识条目都带有**置信度评分**(0.0 – 1.0),根据以下因素计算: - 最后使用的时效性 - 成功应用的次数 - 分析师的反馈和评分 - 创建以来的时间(衰减因子) 如果条目未被重用,分数会衰减,促使管理员审查并更新。 ### 版本控制 当现有条目被更新时,旧版本会保留并带有`superseded_by`引用。分析师可以随时查看任何知识条目的完整版本历史。 ### 贡献者归属 每个条目都记录创建者和最后修改者。这支持问责制、信任评估和知识质量审查。 ## 升级工作流 当新事件到达且**未找到匹配知识**时,系统遵循结构化的升级路径,而不是让分析师无所适从: ``` New Incident Logged ↓ Auto-search Knowledge Base ↓ Match Found? ──YES──→ Display suggestions with confidence scores ↓ NO Escalation Flag Set (status: "escalated") ↓ Notify assigned senior analyst / admin ↓ Manual investigation and response ↓ On resolution → Capture new knowledge entry ↓ Knowledge base updated for future incidents ``` 事件状态:`open → investigating → escalated → resolved → closed` ## 审计跟踪 系统中的每个操作都会记录在防篡改的审计日志中,包括: - 用户身份和角色 - 执行的操作(登录、查看、注释、创建、更新、退役、搜索) - 目标实体(事件ID、知识条目ID) - 时间戳 - IP地址和会话元数据 审计日志为只读,仅超级管理员可访问。 ## UML图 ### 1. 用例图 **目的:** 显示谁与系统交互以及他们做什么。 **参与者:** 网络安全分析师、系统管理员、外部系统(例如IDS、日志) **用例:** - 登录/认证 - 检测事件 - 查看事件 - 注释知识 - 搜索知识库 - 检索推荐 - 升级事件 - 管理用户 - 生成报告 - 知识条目的退役/版本控制 ![用例图](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/e80cda2727171649.png) ### 2. 活动图 **目的:** 逐步说明系统的工作流程。 **示例流程:** 开始 → 检测事件 → 检索机构知识 → 决策(找到知识?) → 是:使用建议分析 / 否:升级 → 响应 → 捕获新知识 → 存储 → 结束 ![活动图](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/5104103a2e171650.png) ### 3. 顺序图 **目的:** 显示系统组件之间随时间的交互。 **关键组件:** 用户(分析师)、React前端、Express API、知识库、集成层 1. 用户在React中提交登录表单 2. Express API进行身份验证并返回JWT令牌 3. React存储令牌并加载仪表板 4. 检测或通过React表单记录事件 5. API查询知识库,返回带有置信度分数的匹配项 6. React渲染建议;用户进行注释 7. API保存数据并写入审计日志 ![顺序图](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/622e76c598171652.png) ### 4. 类图 **目的:** 显示系统结构、实体及其关系。 **关键类:** User、Incident、KnowledgeEntry、Annotation、Entity(IP、文件、用户账户)、AuditLog、Report **包含:** - 属性(id、名称、时间戳、置信度分数、版本) - 方法(save()、retrieve()、supersede()、retire()、search()) - 关系(User → KnowledgeEntry一对多,Incident ↔ KnowledgeEntry关联) ![类图](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/6d5eb82222171653.png) ### 5. 组件图 **目的:** 显示系统架构和模块。 **关键组件:** React SPA、Express REST API、认证服务、事件管理、知识管理、NLP/标记引擎、搜索引擎、审计日志、集成层、PostgreSQL数据库 ![组件图](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/410188c401171654.png) ## 数据库架构 ``` users id, name, email, password_hash, role, totp_secret, created_at incidents id, title, type, severity, status, description, entities JSONB, reported_by (FK), assigned_to (FK), created_at, updated_at knowledge id, title, content, tags TEXT[], incident_id (FK), contributor_id (FK), confidence_score, version, superseded_by (FK self-referencing), status, search_vector tsvector, last_used_at, use_count, created_at annotations id, knowledge_id (FK), user_id (FK), note, created_at audit_logs id, user_id (FK), action, target_type, target_id, metadata JSONB, ip_address, created_at ``` ## 原型工作流程(伪算法) ``` BEGIN // MIST: Microservices Initialization 1. Initialize Services: - Auth Service - Incident Service - Knowledge Service - Integration Service - NLP/Tagging Service // NIST: IDENTIFY 2. Load System Context: - assets, users, existing institutional knowledge 3. Authenticate User (React login form → Express API) INPUT: credentials + optional 2FA (TOTP) IF valid THEN issue JWT, store in React context grant role-based (RBAC) access ELSE deny access, log attempt ENDIF // MIST: Integration 4. Collect Incident Data from logs, IDS, threat feeds // NIST: DETECT 5. Detect or Log Incident (React form → POST /api/incidents) IDENTIFY anomalies, type, severity, affected entities 6. Extract Entities: IP address, user account, file hash // NIST: RESPOND 7. Auto-Query Institutional Knowledge Base (GET /api/search) IF match found THEN DISPLAY entries with confidence scores in React UI ELSE SET status = "escalated" NOTIFY senior analyst / admin ENDIF 8. Analyst reviews knowledge, adds annotations, executes response // NIST: RECOVER 9. On incident resolution -> prompt to capture new knowledge RECORD observations, lessons learned, effective mitigations // MIST: Technology 10. Process new knowledge entry (POST /api/knowledge): - NLP tagging and categorization - Confidence score initialization - Version check (supersede existing entry if applicable) - Full-text search index update - Store in PostgreSQL // MIST Security + NIST Protect 11. Enforce Security throughout: - Encrypt data at rest and in transit (HTTPS) - Validate JWT on every API request (Express middleware) - Enforce RBAC per route - Write all actions to audit log // Knowledge Lifecycle 12. Scheduled job: decay confidence scores for unused entries FLAG entries below threshold for admin review RETIRE or UPDATE flagged entries // Continuous Improvement 13. Feedback loop: - Analysts rate knowledge usefulness in React UI - Ratings update confidence scores via API - Reports surface most/least useful knowledge entries END ``` ## 文件夹结构 ``` kalro-ikf/ ├── client/ <- React frontend (Vite) │ ├── public/ │ ├── src/ │ │ ├── main.jsx <- React entry point │ │ ├── App.jsx <- Router setup │ │ ├── context/ │ │ │ └── AuthContext.jsx <- JWT + user state │ │ ├── pages/ │ │ │ ├── Login.jsx │ │ │ ├── Dashboard.jsx │ │ │ ├── Incidents.jsx │ │ │ ├── IncidentDetail.jsx │ │ │ ├── Knowledge.jsx │ │ │ ├── KnowledgeDetail.jsx │ │ │ ├── Search.jsx │ │ │ ├── Reports.jsx │ │ │ └── UserManagement.jsx │ │ ├── components/ │ │ │ ├── Navbar.jsx │ │ │ ├── ProtectedRoute.jsx │ │ │ ├── IncidentCard.jsx │ │ │ ├── KnowledgeCard.jsx │ │ │ ├── ConfidenceBadge.jsx │ │ │ └── AuditLogTable.jsx │ │ └── api/ │ │ └── axios.js <- Axios instance with JWT interceptor │ ├── index.html │ ├── vite.config.js │ └── package.json │ ├── server/ <- Node.js + Express backend │ ├── index.js <- Express entry point │ ├── db.js <- PostgreSQL connection pool │ ├── middleware/ │ │ ├── auth.js <- JWT verification │ │ └── rbac.js <- Role-based access control │ ├── routes/ │ │ ├── auth.js <- Login, register, 2FA │ │ ├── incidents.js <- CRUD + status management │ │ ├── knowledge.js <- Capture, version, retire │ │ ├── search.js <- Full-text + tag search │ │ └── reports.js <- Audit logs, analytics │ └── models/ │ └── schema.sql <- All table definitions + indexes │ ├── .env └── package.json <- Root package with dev scripts ``` ## 开始使用 ### 先决条件 - Node.js v18+ - PostgreSQL 14+ - npm 或 yarn ### 安装 ``` # 克隆仓库 https://github.com/birichani-codes/cybersecurity-incident-response-framework-integrating-institutional-knowledge-kalro.git cd kalro-ikf # 安装后端依赖 cd server && npm install # 安装前端依赖 cd ../client && npm install # 设置环境变量 cp .env.example .env # 使用您的数据库凭据和 JWT 密钥编辑 .env # 运行数据库架构 psql -U postgres -d kalro_ikf -f server/models/schema.sql # 启动后端(来自 /server) npm run dev # 启动前端(来自 /client) npm run dev ``` React应用运行在 `http://localhost:5173`,并代理API请求到 `http://localhost:3000`。 ## 参考资料 - NIST网络安全框架(CSF 2.0)— https://www.nist.gov/cyberframework - Nonaka & Takeuchi, SECI知识创造模型(1995) - MIST微服务设计原则 - KALRO ICT安全策略(内部参考)
标签:KALRO, MIST设计, MITM代理, NIST网络安全框架, React仪表盘, Ruby, SECI知识管理, 事件监控, 全文本搜索, 升级工作流, 原型框架, 双因素认证, 安全可观测性, 安全运营, 扫描框架, 搜素引擎优化, 机构知识, 测试用例, 版本控制, 知识库, 知识生命周期, 知识管理, 网络安全事件响应, 网络安全框架, 置信度评分, 肯尼亚农业与畜牧业研究组织, 自动知识建议, 自定义脚本, 角色基础认证, 贡献者归属