NodeNestor/Sentinel
GitHub: NodeNestor/Sentinel
一个 AI 驱动的自主安全监控系统,整合扫描、审计、监控、关联分析和自动修复,为没有安全团队的中小型环境提供即插即用的全天候安全防护。
Stars: 0 | Forks: 0
# Sentinel
**自主 AI 安全团队** —— 为任何环境提供即插即用的安全监控。
Sentinel 是一个 AI 驱动的安全监控系统,扮演着完整安全团队的角色。将其部署在你的网络、服务器或 Kubernetes 集群上,它就会持续扫描、分析、关联并响应安全威胁 —— 7x24 小时全天候,无需雇佣安全人员。

## 功能特性
- **发现** 你的整个攻击面 —— 主机、端口、服务、容器
- **扫描** 每个软件包、镜像和二进制文件中的已知 CVE
- **审计** 针对 CIS 基准的配置情况
- **监控** 实时日志以检测入侵模式
- **检测** 配置漂移 —— 发现不应发生的变更
- **关联** 所有数据,利用 MITRE ATT&CK 构建攻击叙事
- **修复** 自动化处理(封禁 IP、终止容器、隔离 Pod)或向你发出警报
- **报告** 合规状态并生成 PDF 报告
- **对话** 与你聊天 —— 提问、下达指令、获取解释
## 快速开始
**Docker Compose** (推荐):
```
curl -fsSL https://raw.githubusercontent.com/NodeNestor/Sentinel/main/scripts/install.sh | bash
```
**Kubernetes / Helm**:
```
helm repo add sentinel https://nodenester.github.io/Sentinel
helm install sentinel sentinel/sentinel -n sentinel --create-namespace
```
**手动安装**:
```
git clone https://github.com/NodeNestor/Sentinel.git
cd Sentinel
cp .env.example .env # edit with your AI provider + API key
docker compose up -d
open http://localhost:3000
```
## 安装说明
### Docker Compose (推荐)
一行命令安装 —— 自动检测操作系统,提示配置 AI 提供商,生成安全密码,并启动所有服务:
```
curl -fsSL https://raw.githubusercontent.com/NodeNestor/Sentinel/main/scripts/install.sh | bash
```
非交互模式 (用于 CI/自动化):
```
export AI_PROVIDER=anthropic
export ANTHROPIC_API_KEY=sk-ant-...
curl -fsSL https://raw.githubusercontent.com/NodeNestor/Sentinel/main/scripts/install.sh | bash -s -- --non-interactive
```
### Kubernetes / Helm
```
helm repo add sentinel https://nodenester.github.io/Sentinel
helm install sentinel sentinel/sentinel -n sentinel --create-namespace
```
或从源码安装:
```
git clone https://github.com/NodeNestor/Sentinel.git
cd Sentinel
helm dependency build charts/sentinel
helm install sentinel ./charts/sentinel -n sentinel --create-namespace \
--set ai.provider=anthropic \
--set ai.anthropicApiKey=sk-ant-...
```
交互式 Kubernetes 安装程序:
```
./scripts/install-k8s.sh
```
### 手动安装 / 开发模式
```
git clone https://github.com/NodeNestor/Sentinel.git
cd Sentinel
cp .env.example .env # edit with your settings
docker compose up -d
```
## 部署矩阵
| 环境 | 方法 | 网络扫描 | K8s 扫描 | 自动修复 |
|------------|--------|:---------------:|:------------:|:----------------:|
| 家庭网络 | Docker Compose | 完整 | 不适用 | IP 封禁 |
| 单服务器 | Docker Compose | 完整 | 不适用 | IP 封禁, 服务重启 |
| Kubernetes | Helm Chart | 受限* | 完整 | Pod 隔离, Secret 轮换 |
| 云端 VM | Docker Compose | 完整 | 不适用 | IP 封禁 |
\*K8s 中的网络扫描需要 `hostNetwork: true`
## 更新
```
# Docker Compose
./scripts/install.sh --update
# Kubernetes
helm upgrade sentinel sentinel/sentinel -n sentinel
```
## 架构
```
┌──────────────────────────────────────────────────────┐
│ Dashboard (Chat + Visualizations) │
└────────────────────────┬─────────────────────────────┘
│ REST + WebSocket
┌────────────────────────┴─────────────────────────────┐
│ AI Correlation Engine │
│ MITRE ATT&CK │ Risk Scoring │ Auto-Remediation │
└────────────────────────┬─────────────────────────────┘
│ Redis Streams
┌─────────┬─────────┼─────────┬──────────┐
NetScout VulnHunter Config LogWatcher Drift
(nmap) (trivy) Auditor (real-time) Detector
(CIS)
```
## 扫描 Agent
| Agent | 功能 | 间隔 |
|-------|-------------|----------|
| **NetScout** | 网络扫描 —— 主机发现、端口/服务检测、 rogue 设备 | 5 分钟 |
| **VulnHunter** | CVE 扫描 —— 容器镜像、软件包、EPSS + CISA KEV 增强 | 1 小时 |
| **ConfigAuditor** | 配置错误审计 —— SSH、权限、Docker、K8s、默认凭据、TLS | 24 小时 |
| **LogWatcher** | 日志监控 —— 暴力破解、权限提升、可疑命令 | 实时 |
| **DriftDetector** | 变更检测 —— 新容器、用户、Cron 任务、二进制文件、配置更改 | 15 分钟 |
## AI 集成
Sentinel 可连接任何 AI 后端。选择其一:
### 选项 1: Claude API (Anthropic)
```
AI_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-...
```
### 选项 2: 任何兼容 OpenAI 的端点
适用于 vLLM, LM Studio, llama.cpp, LocalAI, text-generation-webui,或任何实现 OpenAI chat completions API 的服务器。
```
AI_PROVIDER=openai-compatible
OPENAI_BASE_URL=http://localhost:8080/v1
OPENAI_API_KEY=not-needed
OPENAI_MODEL=your-model-name
```
### 选项 3: Ollama (本地)
```
AI_PROVIDER=ollama
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=llama3.1
```
AI 层负责处理:
- **分诊** —— 优先处理发现的问题,并用通俗易懂的语言解释
- **关联** —— 将事件串联成攻击叙事
- **对话** —— 回答问题,接收指令,解释 CVE
- **主动警报** —— 决定哪些信息值得通知你
- **报告** —— 生成执行摘要、合规报告
## 仪表盘
暗色主题安全仪表盘,地址为 `http://localhost:3000`,包含 8 个页面:
| | |
|---|---|
|  |  |
| **概览** —— 安全态势评分、发现、事件、Agent 状态 | **发现** —— 可筛选表格、MITRE ATT&CK 标签、批量操作 |
|  |  |
| **网络** —— 力导向拓扑图、可疑流量 | **合规** —— CIS 基准、PDF 导出 |
|  |  |
| **资产** —— 主机清单、风险评分、端口、漏洞 | **事件** —— 关联的攻击叙事、杀伤链 |
|  |  |
| **聊天** —— 与 Sentinel 对话、提问、下达指令 | **设置** —— 扫描间隔、警报、通知、试运行 |
## 对话示例
```
You: What's the riskiest thing on my network right now?
Sentinel: Host 192.168.1.50 has 3 critical CVEs including CVE-2024-3094
(xz backdoor, CISA KEV listed). Port 22 is exposed with password
auth enabled. Risk score: 92/100. Want me to block external SSH access?
You: Run a full scan
Sentinel: Triggered all 5 agents. NetScout found 2 new devices, VulnHunter
found 7 new CVEs (1 critical). Full results on the dashboard.
You: Explain CVE-2024-3094
Sentinel: This is the xz utils backdoor...
```
## 威胁情报
利用来自免费威胁源的数据丰富发现结果:
| 数据源 | 提供内容 |
|------|-----------------|
| **CISA KEV** | 已确认在野外被积极利用的 CVE |
| **EPSS** | CVE 被利用的概率 (0-100%) |
| **abuse.ch** | 恶意 URL、C2 服务器 IP、恶意软件哈希 |
| **GreyNoise** | 过滤良性扫描器 (Shodan, Censys) |
| **AbuseIPDB** | 社区报告的恶意 IP 信誉 |
## 自动修复
Sentinel 可以自动响应威胁 (默认禁用):
| 动作 | 触发条件 | 可逆性 |
|--------|------|-----------|
| 封禁 IP | 已知恶意 IP 攻击你的网络 | 是 (自动过期) |
| 终止容器 | 容器运行加密挖矿程序或反向 Shell | 是 (K8s 重启) |
| 隔离 Pod | 受损 Pod 通过 NetworkPolicy 隔离 | 是 |
| 轮换 Secret | 检测到凭据泄露 | 不适用 |
通过 `DRY_RUN=false` 启用。仪表盘设置中提供熔断开关。
## 合规性
自动化合规检查并生成 PDF 报告:
- **CIS Docker Benchmark** —— 14 项检查
- **CIS Linux Benchmark** —— 17 项检查
- **NIST CSF 2.0** —— 从发现结果映射
- **PCI DSS** —— 相关控制项
## CLI
```
# 检查安全态势
sentinel status
# 列出最近发现
sentinel findings --severity critical
# 提问
sentinel ask "any suspicious activity today?"
# 交互式聊天
sentinel ask
# 触发扫描
sentinel scan
# 生成报告
sentinel report executive
```
## 配置
所有设置均可通过环境变量或 `config/default.json` 配置。关键设置:
```
# 扫描
SCAN_SUBNET=auto # auto-detect or 192.168.1.0/24
SCAN_INTERVAL=300 # NetScout interval (seconds)
# 告警
ALERT_LEVEL=medium # minimum severity to notify
DRY_RUN=true # disable auto-remediation
# 通知
SLACK_WEBHOOK_URL=...
DISCORD_WEBHOOK_URL=...
# Threat Intel(可选,免费层级)
GREYNOISE_API_KEY=...
ABUSEIPDB_API_KEY=...
```
## 开发
```
# 启动依赖项
docker compose up -d postgres redis
# 安装
npm install
# 以开发模式运行(更改时自动重启)
npm run dev
# 运行数据库迁移
npm run migrate
```
## 技术栈
- **运行时:** Node.js 20+
- **数据库:** PostgreSQL 16 (知识图谱 + 发现结果)
- **事件总线:** Redis Streams
- **AI:** Claude API / OpenAI 兼容 / Ollama
- **仪表盘:** Express + 原生 HTML/JS + WebSocket
- **扫描:** nmap, trivy, arp-scan, masscan
- **部署:** Docker Compose / Helm / bare metal
## 许可证
MIT
标签:AI安全, AI风险缓解, AMSI绕过, Anthropic, Chat Copilot, CISA项目, CIS基准, Claude, Cloudflare, CVE检测, Docker, FTP漏洞扫描, Helm, MITM代理, MITRE ATT&CK, PDF报告生成, SOAR, Web截图, Web报告查看器, 威胁检测, 子域名突变, 安全大模型, 安全监控系统, 安全编排, 安全防御评估, 容器安全, 异常检测, 搜索引擎查询, 测试用例, 网络安全, 自主安全团队, 自动响应, 自动驾驶安全, 自定义脚本, 请求拦截, 隐私保护