mubalachandar/SecOps
GitHub: mubalachandar/SecOps
基于 Node.js 与 Gemini AI 构建的开源云安全运营平台,通过实时摄取 AWS CloudTrail 日志并结合大模型进行自动化威胁检测与事件分诊。
Stars: 1 | Forks: 0
# 🛡️ SecOps AI Copilot
```
____ _ _ ___ ____ _ _ _
/ ___| ___ ___/ | ___ ___ / \ |_ _| / ___|___ _ __ (_) | ___ | |_
\___ \ / _ \/ __| |/ _ \/ __| / _ \ | | | | / _ \| '_ \| | |/ _ \| __|
___) | __/ (__| | (_) \__ \ / ___ \ | | | |__| (_) | |_) | | | (_) | |_
|____/ \___|\___|_|\___/|___/ /_/ \_\___| \____\___/| .__/|_|_|\___/ \__|
|_|
```
**AI 驱动的安全运营中心 —— 使用 Gemini AI 进行分类的实时 AWS CloudTrail 威胁检测。**








## 🌟 核心功能
* **📡 实时 CloudTrail 日志摄取**:每 5 分钟安全轮询一次 S3,以持续监控基础设施。
* **⚙️ 自定义检测引擎**:内置 10 条映射至 MITRE ATT&CK 的规则,可即时评估 JSON 模式,替代昂贵的 GuardDuty 设置。
* **🧠 Gemini 1.5 Pro AI 分诊**:自主的事件分析,生成 0-100 的风险评分、攻击叙述以及修复步骤。
* **📊 交互式 React 仪表板**:实时更新的图表、指标和严重性分布。
* **🛠️ 完整的 CRUD 检测规则**:实时的规则管理,并支持针对模拟 JSON payload 进行实时规则测试。
* **🎯 攻击模拟**:内置 5 种模拟场景,可安全触发告警,用于演示和培训。
* **🔐 基于 RBAC 的 JWT 身份验证**:安全的访问控制,包含 `admin`、`analyst` 和 `viewer` 角色。
* **🐳 生产级 Docker 部署**:通过 Docker Compose 编排的多阶段 Dockerfile,并带有 Nginx 反向代理。
* **✅ GitHub Actions CI/CD**:自动化的单元测试、安全扫描(TruffleHog、npm audit)以及 EC2 部署。
## 🏗️ 架构概述
```
+-------------+
| Browser |
+------+------+
| HTTPS (Port 443)
+------v------+
| Nginx | <--- Reverse Proxy & SSL Termination
+--+-------+--+
| |
Port 80 | | Port 5000
+---------v-+ +-v-----------+ +-------------------+
| React | | Node.js +------> | AWS CloudTrail S3 |
| Frontend | | Backend | +-------------------+
+-----------+ +-+---+---+---+
| | |
+------------+ | +-------------+
| | |
+----v-------+ +-----v-------+ +------v-------+
| PostgreSQL | | Redis Cache | | Gemini AI |
| (Neon.tech)| | (Upstash) | | (API via SDK|
+------------+ +-------------+ +--------------+
```
## 🛠️ 技术栈
| 组件 | 技术 | 选择原因 |
|-----------|------------|-----------------|
| **Frontend** | React + Vite + Tailwind | 极速的 HMR、组件驱动架构以及高度可定制的实用优先 CSS。 |
| **Backend** | Node.js + Express | 事件驱动、非阻塞 I/O,非常适合轮询流和处理并发的 AI API 请求。 |
| **Database** | PostgreSQL (Neon.tech) | Serverless 扩展、支持用于原始事件存储的 JSONB,以及未来可用的 pgvector 就绪支持。 |
| **Cache** | Redis (Upstash) | Serverless Redis,用于 JWT 封锁列表、速率限制和检测规则缓存。 |
| **AI Engine** | Google Gemini 1.5 Pro | 海量的上下文窗口(高达 2M token),可精准分析大型 CloudTrail payload。 |
| **Auth** | JWT + bcrypt | 具有安全哈希密码(salt rounds: 12)的无状态身份验证。 |
| **Deployment**| Docker + Nginx + EC2 | 容器化环境确保了开发、测试和生产环境之间的一致性。 |
| **CI/CD** | GitHub Actions | 集成、快速的 pipeline,用于语法检查、Jest 覆盖率和自动化部署。 |
## 🚀 快速开始
**前置条件:** Node 18+、Docker、AWS 账户(模拟功能可选)。
1. **克隆仓库:**
git clone https://github.com/yourusername/secops-ai-copilot.git
cd secops-ai-copilot
2. **复制 env 文件并填写凭证:**
cp .env.example .env
# 使用你的 Gemini API Key、Neon DB URL、Upstash Redis URL 编辑 .env 文件
3. **安装依赖:**
cd backend && npm install
cd ../frontend && npm install
4. **填充数据库:**
cd backend && npm run seed
5. **启动开发服务器:**
docker-compose up -d
# 或者手动运行:在前端和后端目录中分别执行 npm run dev
6. **打开应用程序:** `http://localhost:5173`
### 演示凭证
- **Admin:** `admin@secops.local` / `Admin@123456`
- **Analyst:** `analyst@secops.local` / `Analyst@123456`
## 📡 API 端点
| 方法 | 路径 | 描述 | 需要身份验证 |
|--------|------|-------------|---------------|
| `POST` | `/api/v1/auth/login` | 进行身份验证并获取 JWT | 否 |
| `GET` | `/api/v1/analytics/dashboard`| 获取关键指标和图表 | 是 |
| `GET` | `/api/v1/alerts` | 列出安全告警 | 是 |
| `POST` | `/api/v1/alerts/:id/analyze` | 触发 Gemini AI 分析 | 是 |
| `GET` | `/api/v1/cloudtrail/events` | 获取已摄取的原始事件 | 是 |
| `POST` | `/api/v1/cloudtrail/simulate`| 触发攻击模拟 | 是 (Admin) |
| `GET` | `/api/v1/rules` | 管理检测引擎规则 | 是 |
## 🛡️ MITRE ATT&CK 覆盖范围
| 规则名称 | 战术 | 技术 | 严重性 |
|-----------|--------|-----------|----------|
| Root 账户使用 | 权限提升 | T1078 - Valid Accounts | Critical |
| 无 MFA 的控制台登录 | 凭证访问 | T1111 - Two-Factor Bypass | High |
| CloudTrail 日志记录已禁用 | 防御规避 | T1562.008 - Disable Cloud Logs | Critical |
| EC2 实例枚举 | 发现 | T1087 - Account Discovery | Low |
| 未经授权的安全组修改 | 防御规避 | T1562.007 - Disable Network Traffic Routing | High |
| IAM 用户创建 | 持久化 | T1136.003 - Cloud Account | Medium |
| S3 存储桶公共访问拦截已移除 | 凭证访问 / 数据泄露 | T1530 - Data from Cloud Storage | High |
| Secrets Manager 密钥被访问 | 凭证访问 | T1528 - Steal Application Access Token | Critical |
| 启动大型 EC2 实例 | 资源劫持 | T1496 - Resource Hijacking (Cryptomining) | Medium |
| 未知区域活动 | 初始访问 | T1190 - Exploit Public-Facing App | High |
## 📜 许可证
在 MIT 许可证下分发。查看 `LICENSE` 了解更多信息。
标签:AI辅助分析, AMSI绕过, AWS CloudTrail, Docker, GNU通用公共许可证, MITM代理, Node.js, PostgreSQL, 威胁检测, 安全运营, 安全防御评估, 扫描框架, 搜索引擎查询, 测试用例, 自定义脚本, 请求拦截