SamiGPT
SamiGPT 是一个基于人工智能的安全调查和事件响应平台,通过模型上下文协议(MCP)为安全运营团队提供案例管理、SIEM分析和CTI丰富的智能自动化。
注: 该项目目前正在积极开发中。随着开发的进展,功能、API和文档可能会发生变化。
演示
观看演示视频,了解SamiGPT的运行情况:
性能和成本
关键指标:
- 每次警报约0.18美元
- 每个代理/标签调查警报大约需要50秒
有关详细的成本和使用数据,请参阅: 成本数据CSV
有关详细的文件和演示材料:
快速开始
SamiGPT可以通过两种方式使用:
方法1:AI控制器(Web界面)
AI控制器提供基于web的界面,并使用Cursor IDE cursor-agent 用于命令执行的二进制文件。
先决条件:
- 必须安装Cursor IDE(从下载 cursor.sh)
- 验证
cursor-agent二进制文件可用:
which cursor-agent
# Should show path like: /usr/local/bin/cursor-agent or ~/.local/bin/cursor-agent步骤:
- 激活虚拟环境:
source venv/bin/activate # On Windows: venv\Scripts\activate- 启动AI控制器web界面:
python3 cursor_agent.py --web --port 8081 --host 127.0.0.1- 打开浏览器:
导航到 http://127.0.0.1:8081 访问web界面。
方法2:MCP服务器(直接集成)
直接使用MCP服务器将SamiGPT工具连接到Cursor、Claude Desktop或其他MCP兼容工具。
步骤:
- 激活虚拟环境:
source venv/bin/activate # On Windows: venv\Scripts\activate- 启动MCP服务器:
python -m src.mcp.mcp_server- 配置您的AI工具 (有关详细说明,请参阅下面的“将MCP服务器连接到AI工具”部分)
注: MCP服务器方法不需要Cursor IDE cursor-agent 二进制-它可以直接与任何兼容MCP的工具配合使用。
概述
SamiGPT充当MCP服务器,将安全调查和响应功能作为AI代理、LLM工具和自动化工作流可以使用的工具。它提供了一个统一的、vendor-neutral API层,该层连接到:
- 案例管理系统 (The Hive,IRIS)
- SIEM平台 (弹性)
- EDR解决方案 (弹性防护)
- 威胁情报 (OpenCTI,本地TIP)
该平台通过SOC层(SOC1、SOC2)组织的智能代理配置文件,实现了自动分诊、调查、关联和响应工作流程。
特性
核心能力
- 自动警报分类:安全警报的智能初步评估和分类
- 事件管理:使用可观察性、注释和时间线跟踪创建、更新和管理安全案例
- SIEM集成:搜索安全事件,以指标为中心,并跨环境关联活动
- EDR响应:端点隔离、进程终止和取证工件收集
- 威胁情报:国际奥委会的丰富性和声誉分析
- 多层SOC工作流程:SOC1(分诊)和SOC2(调查)的结构化工作流程
代理商简介和操作手册
SamiGPT包括预配置的代理配置文件和专门的运行手册:
- SOC1代理:初步警报分诊、富集和假阳性鉴定
- SOC2代理:深入调查、相关性和案例分析
工作流
SamiGPT使用按SOC层组织的结构化工作流。下图说明了执行流程:
代理配置文件流
此图显示了代理配置文件的组织方式,以及路由规则如何将案例引导到适当的SOC层代理。
初始警报分类(SOC1)
初始警报分流工作流程处理新的安全警报,执行快速评估、丰富,并确定是创建病例还是关闭假阳性。
案例分析(SOC2)
SOC2案例分析工作流程执行深入调查、SIEM分析、CTI丰富、关联,并为SOC3升级准备案例。
安装
先决条件
- Python 3.9或更高版本
- pip包管理器
设置
- 克隆仓库:
git clone
cd SamiGPT- 创建并激活虚拟环境:
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项:
pip install --upgrade pip
pip install -r requirements.txt- 配置集成 (见下面的配置部分)
将MCP服务器连接到AI工具
如果你正在使用 方法2:MCP服务器 (请参阅上面的快速入门),配置您的AI工具以连接到MCP服务器:
光标集成
- 打开光标设置→ 特性→ 模型上下文协议
- 添加SamiGPT服务器配置:
{
"mcpServers": {
"sami-gpt": {
"command": "python",
"args": ["-m", "src.mcp.mcp_server"],
"cwd": "/absolute/path/to/SamiGPT"
}
}
}- 重新启动Cursor并开始在聊天中使用SamiGPT工具
Claude桌面集成
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"sami-gpt": {
"command": "python",
"args": ["-m", "src.mcp.mcp_server"],
"cwd": "/absolute/path/to/SamiGPT"
}
}
}其他MCP兼容工具
MCP服务器还可以连接到:
- 打开WebUI (通过MCP配置)
- 其他LLM工具 支持模型上下文协议
建筑
基础设施概述
目录结构
SamiGPT/
├── src/
│ ├── api/ # Generic interfaces (CaseManagementClient, SIEMClient, EDRClient)
│ ├── core/ # Configuration, logging, errors, DTOs
│ ├── integrations/ # Vendor-specific implementations
│ │ ├── case_management/ # TheHive, IRIS integrations
│ │ ├── siem/ # Elastic integration
│ │ ├── edr/ # EDR platform integrations
│ │ ├── cti/ # Threat intelligence integrations
│ │ └── eng/ # Engineering board integrations
│ ├── mcp/ # MCP server, runbook manager, agent profiles
│ ├── orchestrator/ # Workflow orchestration
│ └── web/ # Web UI for configuration
├── run_books/ # SOC tier runbooks and workflows
├── config/ # Agent profiles and configuration
└── client_env/ # Client-specific infrastructure data设计原则
- 供应商中立API:所有集成都实现了通用接口,允许轻松交换安全工具
- 关注点分离:AI/编排器层仅与通用API交互,从不与特定于供应商的代码交互
- 模块化集成:每个供应商集成都包含HTTP客户端、模型、映射器和客户端实现
配置
配置通过以下方式管理 config.json 并且可以通过网络界面或直接进行编辑。
配置文件结构
看 config.json.example 以获取完整的配置模式。关键部分:
iris/thehive:案例管理配置elastic:SIEM配置edr:EDR平台配置cti:威胁情报配置eng:工程板配置(ClickUp、Trello、GitHub)ai_controller:AI控制器web界面设置logging:日志记录配置
使用示例
基本案例操作
# List all open cases
cases = list_cases(status="open")
# Review a specific case
case = review_case(case_id="123")
# Add an observable to a case
attach_observable_to_case(
case_id="123",
observable_type="ip",
observable_value="192.168.1.100",
description="Suspicious source IP"
)SIEM调查
# Search for security events
events = search_security_events(
query="source.ip: 192.168.1.100",
hours_back=24
)
# Get file report
report = get_file_report(file_hash="abc123...")
# Pivot on an indicator
related_events = pivot_on_indicator("192.168.1.100")EDR响应
# Get endpoint summary
endpoint = get_endpoint_summary(endpoint_id="host-123")
# Isolate an endpoint
isolate_endpoint(endpoint_id="host-123")
# Collect forensic artifacts
collect_forensic_artifacts(
endpoint_id="host-123",
artifact_types=["processes", "network", "filesystem"]
)代理配置文件执行
# Execute as SOC1 triage agent
execute_as_agent(
agent_id="soc1_triage_agent",
alert_id="alert-123"
)
# Execute specific runbook
execute_runbook(
runbook_name="initial_alert_triage",
alert_id="alert-123",
case_id="case-456"
)日志记录
SamiGPT提供全面的日志记录:
- MCP服务器日志:
logs/mcp/mcp_all.log,mcp_requests.log,mcp_responses.log,mcp_errors.log - 应用程序日志:
logs/debug.log,logs/error.log,logs/warning.log
发展
添加新集成
- 创建集成目录 在...之下
src/integrations/ - 实现通用接口 从
src/api/ - 添加HTTP客户端、模型和映射器
- 在配置中注册
示例结构:
src/integrations/case_management/new_vendor/
├── __init__.py
├── client.py # HTTP client
├── models.py # Vendor-specific models
├── mapper.py # Vendor ↔ Generic DTO mapping
└── case_client.py # Implements CaseManagementClient运行测试
# Run all tests
pytest tests/
# Run specific integration tests
pytest tests/integrations/case_management/贡献
贡献时:
- 将所有特定于供应商的代码保存在
src/integrations/ - 确保所有集成都实现了中的通用API
src/api/ - 为新集成添加测试
- 根据需要更新文档
许可证
麻省理工学院
支持
对于问题、疑问或贡献,请在存储库上打开问题。
致谢
在文献综述期间,以下项目帮助并激励了我们:
- 基于AI的SOC检测系统 -基于机器学习的SOC平台,具有自主威胁检测功能
- ADK运行手册 -安全调查运行手册和工作流程
