Alqaly/smart-city-ids

GitHub: Alqaly/smart-city-ids

面向智慧城市 IoT 场景的 Kubernetes 原生入侵检测研究原型,整合 Falco、Suricata 与 LLM 辅助分析,支持治理控制的自动化响应。

Stars: 1 | Forks: 0

# 智慧城市 IDS 面向智慧城市场景 IoT 工作负载的 Kubernetes 原生入侵检测与响应平台,集成了: - **Falco**(运行时/容器检测) - **Suricata**(网络检测) - **LLM 辅助告警分析**(多 Provider 路由/故障转移) - **治理控制的 Kubernetes 响应动作**(手动/辅助/自主) 本仓库包含: - 一个可工作的演示器/原型系统,以及 - 毕业项目/答辩文档及支持材料。 ## 范围(外部评审人员必读) 这是一个**研究/毕业设计原型**,而非生产级 SOC 平台。部分内容面向演示(IoT 模拟器、攻击脚本、评审准备文档),而核心运行时组件是真实且可测试的。 为避免声明过时造成的混淆: - 以此 `README.md` + [`docs/INDEX.md`](docs/INDEX.md) 作为**当前入口** - 将 `docs/_archive/` 和 `docs/archive/` 视为**历史存档** - 通过实时端点(`/health`、`/api/metrics`)和 `kubectl` 验证运行时声明 ## 系统功能 - 在 Kubernetes 中监控 IoT 及平台工作负载 - 接入来自 Falco 和 Suricata 转发器的告警 - 执行 LLM 分析(支持 Provider 故障转移;实际可用性取决于密钥/额度/配额) - 在自动化执行前应用治理策略 - 将告警存储于 PostgreSQL,支持内存降级及自动恢复至数据库 - 提供 Web Dashboard(`/ui`)及运维 API ## 快速开始(演示/本地验证) ### 1. 环境预检 ``` bash scripts/pre-demo-check.sh ``` 此项检查会验证: - 集群可达性 - 核心 Pod - Dashboard/API 可用性 - 登录 - **数据库持久化模式**(并检测 `memory-fallback`) ### 2. 打开 Dashboard ``` xdg-open http://localhost:30800/ui 2>/dev/null || open http://localhost:30800/ui ``` 默认演示凭据: - `admin / admin` ### 3. 运行实时攻击演示(可选) ``` bash scripts/run-live-attacks.sh --duration 30 --show-alerts 3 ``` ## 访问入口(典型 K3s NodePort 配置) | Service | URL | |---|---| | Dashboard | `http://localhost:30800/ui` | | Health | `http://localhost:30800/health` | | Metrics API | `http://localhost:30800/api/metrics` | | Prometheus | `http://localhost:31106` | | Grafana | `http://localhost:30300` | 如果你在本地使用 `uvicorn` 运行 `ids-api`,UI/API 可能在 `http://localhost:8000`。 ## 项目结构(高层概览) | Path | Purpose | |---|---| | `services/` | IDS API、转发器、服务组件 | | `smart-city-services/` | IoT 模拟器(交通摄像头、医疗、停车等) | | `k8s-manifests/` | Kubernetes 清单及平台配置 | | `scripts/` | 部署、验证、演示及运维自动化脚本 | | `docs/` | 技术文档、运维手册、Q&A、学术支持、存档 | | `CAPSTONE_2_REPORT.*` | 最终报告交付物 | ## 文档(权威索引) 从这里开始: - [`docs/INDEX.md`](docs/INDEX.md) — 权威文档地图 + 信任模型 按受众分类的关键文档: ### 外部专家 / 评审人员 - [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) - [`docs/HOW_IT_WORKS.md`](docs/HOW_IT_WORKS.md) - [`docs/API_REFERENCE.md`](docs/API_REFERENCE.md) - [`docs/SECURITY_MODEL.md`](docs/SECURITY_MODEL.md) - [`docs/OPERATIONS.md`](docs/OPERATIONS.md) ### 演示 / 运维人员 - [`docs/DEMO_DAY_RUNBOOK.md`](docs/DEMO_DAY_RUNBOOK.md) - [`docs/DEMO_QA_CHECKLIST.md`](docs/DEMO_QA_CHECKLIST.md) - [`docs/DEMO_CHEAT_SHEET.md`](docs/DEMO_CHEAT_SHEET.md) - [`docs/LLM_CONTROL_AND_TROUBLESHOOTING.md`](docs/LLM_CONTROL_AND_TROUBLESHOOTING.md) ### 学术 / 答辩 - [`docs/EXAMINER_QA_30.md`](docs/EXAMINER_QA_30.md) - [`docs/EXAMINER_IOT_QA_20.md`](docs/EXAMINER_IOT_QA_20.md) - [`docs/ACADEMIC_CONTEXT.md`](docs/ACADEMIC_CONTEXT.md) - [`docs/CAPSTONE_EVIDENCE_MATRIX.md`](docs/CAPSTONE_EVIDENCE_MATRIX.md) ## LLM Provider 说明(运行现状) 系统支持多个 Provider(如 Kimi、xAI、OpenAI、Anthropic、Gemini),但运行时健康状态取决于: - 有效的 API 密钥 - 配额/计费 - 模型访问权限 - Provider 侧服务中断 Dashboard 显示的 Provider 状态可能是: - 已配置但不可用(密钥/配额无效) - 因多次失败处于熔断冷却期 - 运行正常但空闲 这是多 Provider 韧性设计下的预期行为。 ## 数据库持久化行为(重要) `ids-api` 使用 PostgreSQL 作为主存储,当数据库不可用时可降级为内存存储。 近期修复: - 服务现在会在瞬态数据库启动/竞态失败后**自动重试 DB 连接并恢复至 PostgreSQL** - `scripts/pre-demo-check.sh` 会显式报告持久化降级 在分享截图/声明前请先执行此检查: ``` curl -s http://localhost:30800/health | jq '{status, storage_type, components}' ``` ## 常用命令 ``` # 部署代码更改 (基于 ConfigMap 的热重载路径) bash scripts/deploy-code.sh # 演示就绪 (更广泛的检查) bash scripts/demo-readiness.sh --quick # E2E 验证 (快速) bash scripts/e2e-verbose-test.sh --quick # 完整脚本验证 bash scripts/comprehensive-test.sh ``` ## 分享本仓库(建议) 在分享给专家前: 1. 运行 `bash scripts/pre-demo-check.sh` 2. 确认数据库已连接(非 `memory-fallback`) 3. 使用 [`docs/INDEX.md`](docs/INDEX.md) 引导他们查看当前文档 4. 避免引用已存档文档作为当前行为依据 ## 许可证 参见 [`LICENSE`](LICENSE)。
标签:CISA项目, DLL 劫持, Falco, HTTP/HTTPS抓包, IoT仿真, JSONLines, LLM分析, Metaprompt, PostgreSQL, SOAR, StruQ, Suricata, TGT, Web截图, 入侵检测系统, 大语言模型, 威胁情报, 子域名突变, 安全仪表盘, 安全数据湖, 安全编排与自动化响应, 安全运营中心, 容器安全, 开发者工具, 异常检测, 态势感知, 攻防演练, 敏感词过滤, 智慧城市, 测试用例, 物联网安全, 现代安全运营, 策略控制, 网络安全, 网络映射, 网络流量分析, 自定义请求头, 请求拦截, 逆向工具, 防御治理, 隐私保护, 零信任, 高可用架构