Ekisa02/aegis-sentry

GitHub: Ekisa02/aegis-sentry

一款 AI 驱动的网络安全监控工具包,通过实时异常检测和规则分析识别网络流量中的可疑行为,并在 Next.js 仪表盘中可视化呈现告警。

Stars: 1 | Forks: 0

# Aegis Sentry AI 驱动的网络安全工具包,具有实时异常检测、基于规则的分析以及 Next.js dashboard。 Aegis Sentry 会接入网络流事件(类似 NetFlow 的 JSON),提取行为特征,应用自适应异常检测器以及流式规则分析,并在现代化的 dashboard 中展示警报。 功能 - 使用稳健的基于 EWMA/MAD 的单特征基线进行实时异常检测 - 流处理规则:端口扫描检测、潜在数据泄露检测 - 通过 Server-Sent Events (SSE) 进行事件流传输 - 用于实时警报和摘要的 Next.js dashboard - 带有共享库的模块化 TypeScript monorepo 顶层架构 ``` [Agents/Producers] | v (HTTP POST /ingest/flow) [Analyzer Service - Fastify] | Feature extraction | EWMA anomaly detector | Rule engine (scan/exfil) v [Alert Bus] ---> [SSE /events] ---> [Next.js Dashboard] \-> [REST /alerts] ``` Monorepo 布局 - apps/web:Next.js dashboard(TypeScript,App Router) - services/analyzer:基于 Fastify 的接入、分析 pipeline、警报流传输 - packages/lib-sec:共享安全库(类型、特征提取、检测器、规则) - packages/config:共享配置 - tests:用于检测器和规则的 Vitest 单元测试 快速开始 前置条件 - Node.js >= 18 - npm >= 9 安装 - npm install 运行服务 - Terminal A(Analyzer):npm run dev:analyzer - Terminal B(Web):npm run dev:web 默认配置 - Analyzer 位于 http://localhost:7070 - Dashboard 位于 http://localhost:3000 - Web 端需要设置 NEXT_PUBLIC_ANALYZER_URL(默认为 http://localhost:7070) 发送示例流 - 正常流 curl -X POST http://localhost:7070/ingest/flow \ -H "Content-Type: application/json" \ -d '{ "srcIp":"10.0.0.5","dstIp":"10.0.0.10", "srcPort":54432,"dstPort":443,"protocol":"TCP", "bytes":12000,"packets":15,"durationMs":1000, "flags":["S","A"],"timestamp":'"$(date +%s%3N)"' }' - 端口扫描模式(触发规则) for p in 21 22 23 25 53 80 110 143 443 3306 8080; do curl -s -X POST http://localhost:7070/ingest/flow \ -H "Content-Type: application/json" \ -d '{ "srcIp":"10.0.0.50","dstIp":"10.0.0.10", "srcPort":40000,"dstPort":'"$p"',"protocol":"TCP", "bytes":200,"packets":2,"durationMs":100, "flags":["S"],"timestamp":'"$(date +%s%3N)"' }' >/dev/null done 配置 - Analyzer - PORT:默认 7070 - CORS_ORIGIN:默认 * - 检测阈值(通过 packages/config) - EWMA alpha、k(阈值)、warmup - 端口扫描窗口和阈值 - Exfil bps 阈值 测试 - npm test 生产环境注意事项 - 接入源应当是受信任且经过身份验证的(例如 mTLS、签名 token) - 背压和持久化默认在内存中进行;在生产环境中请使用 queue/DB - 必须根据您的网络基线调整模型阈值 安全注意事项 - 严禁在未经清理的情况下接入原始的、不受信任的二进制 payload - PII/IP 数据管理:遵守适用的隐私法律 有关详细信息,请参阅 docs/ARCHITECTURE.md 和 docs/API.md。
标签:TypeScript, 安全插件, 异常检测, 插件系统, 网络安全, 自动化攻击, 隐私保护