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, 安全插件, 异常检测, 插件系统, 网络安全, 自动化攻击, 隐私保护