Sharatmenon/aiops-sec-agent
GitHub: Sharatmenon/aiops-sec-agent
基于 LangGraph 的云原生安全运营多智能体系统,跨九个平台数据源关联日志并自动生成带有 MITRE ATLAS 标记和分阶段补救措施的结构化事件报告。
Stars: 0 | Forks: 0
# aiops-sec-agent
一个用于云原生安全运营的 LangGraph 多 agent 系统。关联跨 9 个平台源的日志,使用 MITRE ATLAS 技术标记对告警进行分类,并使用 Claude AI 作为推理引擎生成结构化的事件报告。
## 架构
由 supervisor graph 编排的四个专用 agent:
- **log_correlation_agent** — 从 Istio、Keycloak、ArgoCD、Kubernetes、OpenBao、Kafka、MinIO、CloudNativePG 和 Spark 摄取日志;使用 DuckDB SQL 跨源进行关联
- **alert_triage_agent** — 按严重程度对告警进行分类,映射到 MITRE ATLAS 技术(AML.T0010、T0029、T0034、T0040),区分操作故障与对抗性活动
- **remediation_agent** — 生成分层的补救措施(即时 / 短期 / 配置更改 / 监控),并为敏感操作设置人工批准门控
- **supervisor** — LangGraph StateGraph 编排器;在 agent 之间进行路由并编译最终报告
## 技术栈
| 层级 | 技术 |
|-------|-----------|
| Agent 框架 | LangGraph 1.x |
| 推理引擎 | Anthropic Claude (claude-sonnet-4-6) |
| 日志关联 | DuckDB |
| MCP 服务器 | kubectl、ArgoCD、log-query (Docker Compose) |
| 平台源 | Istio · Keycloak · ArgoCD · K8s · OpenBao · Kafka · MinIO · CNPG · Spark |
## 威胁覆盖范围 (MITRE ATLAS)
| 技术 | 名称 |
|-----------|------|
| AML.T0010 | 凭据访问 |
| AML.T0010.001 | 暴力破解 |
| AML.T0029 | ML 服务拒绝 |
| AML.T0034 | 资源劫持 |
| AML.T0040 | ML 供应链妥协 |
## 快速开始
```
git clone https://github.com/Sharatmenon/aiops-sec-agent.git
cd aiops-sec-agent
python3.11 -m venv .venv311 && source .venv311/bin/activate
pip install -r requirements.txt
cp .env.example .env # add your ANTHROPIC_API_KEY
python3 main.py --output report.md
```
## 示例输出
该 agent 会生成一份结构化的事件报告,包括:
- 包含根本原因的执行摘要
- 带有 UTC 时间戳的完整事件时间线
- 带有 MITRE ATLAS 标签和严重性评级的告警列表
- 当前平台状态(Pod、ArgoCD 应用、基础设施)
- 带有针对敏感操作人工批准门控的分阶段修复措施
有关完整的示例输出,请参阅 [`report.md`](report.md)。
## MCP 服务器(可选)
包含三个 MCP 服务器,用于实时连接集群:
```
docker compose up -d
```
- **kubectl-mcp** — Pod 健康状况和集群状态
- **argocd-mcp** — GitOps 同步状态
- **logquery-mcp** — 结构化日志查询
当连接到实时集群时,请在 `tools.py` 中将 stub 工具替换为 MCP 工具。
## 用例
构建为云原生环境下 AI 驱动安全运营的作品集演示。相同的模式适用于任何运行 Kubernetes 工作负载的平台——只需替换 `logs/` 中的日志源,并更新 `db.py` 中的 DuckDB 查询即可进行适配。
## 许可证
MIT
标签:DLL 劫持, 人工智能, 多智能体, 大语言模型, 子域名突变, 安全运营, 库, 应急响应, 扫描框架, 文档安全, 用户模式Hook绕过, 网络调试, 自动化, 请求拦截, 逆向工具, 配置错误