IBM QRadar MCP服务器
一种模型上下文协议(MCP)服务器,提供对IBM QRadar安全情报平台的全面访问。直接从您的AI助手查询日志、事件、违规、代理(日志源)、资产等。
特性
核心能力(16种工具)
🔍 事件和日志查询
- 自定义AQL查询:对事件和流执行Ariel查询语言(AQL)查询
- 近期事件:快速检索最新的安全事件
- 网络流量:查询网络流量数据
🚨 犯罪管理
- 列出罪行:使用过滤选项获取所有安全违规行为
- 犯罪详情:检索有关特定罪行的详细信息
- 按状态筛选:按严重程度查询打开、关闭或违规
🖥️ 日志源(代理)
- 列出日志源:查看向QRadar发送数据的所有代理/收集器
- 日志源详细信息:获取特定日志源的配置和状态
- 日志源类型:浏览可用的日志源类型
🌐 资产管理
- 列出资产:查询发现的网络资产
- 按IP搜索:按IP地址查找资产
- 资产详细信息:获取详细的资产信息
📊 分析和规则
- 列表规则:浏览检测规则
- 规则详细信息:查看规则配置和逻辑
- 筛选规则:查找启用/禁用的规则
🗂️ 参考数据
- 参考集:访问威胁情报列表
- 参考数据:查询特定参考集内容
⚙️ 系统信息
- 系统信息:QRadar版本和配置
- 服务器状态:检查QRadar服务器运行状况
高级功能(25个附加工具)🆕
- 📝 犯罪管理:添加注释、更新状态、指定违规行为、关闭原因
- 💾 保存的搜索:执行和管理预配置的AQL查询
- 🎨 自定义属性:使用用户定义的事件/流丰富功能
- 🏢 域管理:多租户域配置和查询
- 🌐 网络层次结构:接入网络拓扑和网段定义
- 🔍 发现工具:反思可用字段、类别和数据库
- 🧩 积木:管理可重用的规则组件
- 👥 用户管理:查看用户以进行进攻分配和协作
- 📊 报告:访问已安装的应用程序和报告模板
共计:41个用于完成安保行动的综合工具
看 进展_功能.md 有关所有高级功能的详细文档
安装
🚀 快速入门指南
- ⚡ 5分钟设置: QUICK_DEPLOY.md -快速跑步
- 📖 完整指南: GETTING_STARTED.md -详细演练
- ✅ 部署检查表: 部署中心_CHECKLIST.md -逐步验证
先决条件
- Python 3.10或更高版本
- 具有API访问权限的IBM QRadar实例
- 来自QRadar的API身份验证令牌
- AI客户端:Claude Desktop或任何当地法学硕士(Ollama、LM Studio等)
💡 新:您现在可以使用 本地开源LLM 而不是克劳德!看 LOCAL_LLM_GUIDE.md 用于设置。
设置
- 克隆存储库:
git clone
cd IBMQradarMCP- 安装依赖项:
pip install -r requirements.txt- 配置环境变量:
cp .env.example .env编辑 .env 使用您的QRadar凭据文件:
QRADAR_HOST=your-qradar-host.com
QRADAR_API_TOKEN=your-api-token-here
QRADAR_VERIFY_SSL=true获取QRadar API令牌
- 登录您的QRadar控制台
- 引导到 管理员 > 授权服务
- 点击 创建授权服务
- 提供名称并选择适当的权限
- 将生成的令牌复制到您的
.env文件
用法
运行MCP服务器
python -m src.server服务器将根据MCP协议启动并通过stdio(标准输入/输出)进行通信。
使用AI客户端进行配置
选项1:克劳德桌面
将此配置添加到您的Claude Desktop配置文件中:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"qradar": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "/path/to/IBMQradarMCP",
"env": {
"QRADAR_HOST": "your-qradar-host.com",
"QRADAR_API_TOKEN": "your-api-token",
"QRADAR_VERIFY_SSL": "true"
}
}
}
}选项2:本地LLM(Ollama、LM Studio等)🆕
Ollama快速入门:
# 1. Install Ollama
brew install ollama # or visit ollama.com
# 2. Download a model
ollama pull llama3.1:8b
# 3. Run setup script
./setup_local_llm.sh
# 4. Start the local client (choose one):
# Option A: Web UI (recommended - beautiful interface) 🌟
./start_webui.sh
# Then open http://localhost:5000
# Option B: Terminal client (simple, lightweight)
python3 local_llm_client.py本地LLM接口可用:
- 🌟 Web用户界面 -美丽、现代的网络界面(新!)
- 💻 终端客户端 -命令行界面
- 🔧 Continue.dev -VS代码集成
- 🖥️ LM工作室 -带GUI的桌面应用程序
- 🌐 打开WebUI -高级web界面
- 🔐 2001年1月 -注重隐私的桌面应用程序
支持的本地LLM:
- ✅ Ollama(推荐)
- ✅ LM工作室
- ✅ Continue.dev(VS代码)
- ✅ 打开WebUI
- ✅ 2001年1月
📖 指南: - WEB_UI_GUIDE.md -漂亮的web界面设置🌟 - LOCAL_LLM_GUIDE.md -完整的本地LLM指南
可用工具
事件和日志查询工具
qradar_search_events
使用AQL(Ariel查询语言)搜索事件。
参数:
query(必填):AQL查询字符串timeout(可选):查询超时(秒)(默认值:60)max_wait(可选):等待结果的最长时间(默认值:300)
示例:
Search for failed login attempts in the last 24 hours:
SELECT sourceip, username, eventcount FROM events WHERE category=1003 LAST 24 HOURSqradar_get_recent_events
获取最新的安全事件。
参数:
limit(可选):要返回的事件数(默认值:50)fields(可选):要返回的字段名数组
qradar_search_flows
使用AQL搜索网络流。
参数:
query(必填):流的AQL查询字符串timeout(可选):查询超时(秒)max_wait(可选):等待结果的最长时间
进攻工具
qradar_get_offenses
从QRadar获取违规行为(安全事件)。
参数:
filter(可选):筛选字符串(例如,“status=OPEN”)fields(可选):逗号分隔的字段列表range(可选):结果范围(例如,“0-49”)
qradar_get_offense_by_id
获取有关特定犯罪的详细信息。
参数:
offense_id(必填):犯罪ID
日志源(代理)工具
qradar_get_log_sources
列出所有日志源(代理/收集器)。
参数:
filter(可选):筛选字符串(例如,“enabled=true”)fields(可选):逗号分隔的字段列表
qradar_get_log_source_by_id
获取特定日志源的详细信息。
参数:
log_source_id(必填):日志源ID
qradar_get_log_source_types
获取可用的日志源类型。
资产工具
qradar_get_assets
列出QRadar发现的网络资产。
参数:
filter(可选):筛选器字符串fields(可选):逗号分隔的字段列表
qradar_search_assets_by_ip
按IP地址搜索资产。
参数:
ip_address(必填):要搜索的IP地址
参考数据工具
qradar_get_reference_sets
列出所有参考数据集。
qradar_get_reference_set_data
从特定的参考集中获取数据。
参数:
ref_set_name(必填):参考集的名称
系统信息工具
qradar_get_system_info
获取QRadar系统信息。
qradar_get_servers
获取QRadar服务器/主机信息。
规则工具
qradar_get_rules
列出分析规则。
参数:
filter(可选):筛选器字符串fields(可选):逗号分隔的字段列表
qradar_get_rule_by_id
获取特定规则的详细信息。
参数:
rule_id(必填):规则ID
查询示例
以下是配置MCP服务器后,您可以向AI助手询问的一些示例查询:
安全监控
- “显示所有严重程度较高的公开违规行为”
- “最近一个小时发生了什么安全事件?”
- “搜索过去24小时内失败的SSH登录尝试”
网络分析
- “显示来自IP 192.168.1.100的所有网络流”
- “当今网络流量中最大的源IP是什么?”
资产管理
- “列出我网络中的所有资产”
- “查找IP为10.0.0.50的资产信息”
- “当前连接了哪些日志源?”
威胁调查
- “显示犯罪ID 1234的详细信息”
- “哪些参考集包含IP 8.8.8.8?”
- “列出所有启用的检测规则”
AQL查询示例
事件查询
登录尝试失败:
SELECT sourceip, username, eventcount
FROM events
WHERE category=1003
LAST 24 HOURS严重事件:
SELECT sourceip, destinationip, qid
FROM events
WHERE severity >= 7
LAST 1 HOURS来自特定IP的事件:
SELECT *
FROM events
WHERE sourceip='192.168.1.100'
LAST 7 DAYS流查询
按字节排列的热门演讲者:
SELECT sourceip, destinationip, SUM(sourcebytes) as total_bytes
FROM flows
GROUP BY sourceip, destinationip
ORDER BY total_bytes DESC
LAST 1 HOURS与特定端口的连接:
SELECT sourceip, destinationip, destinationport
FROM flows
WHERE destinationport=443
LAST 24 HOURS安全考虑
- API代币安全:永远不要将API令牌提交到版本控制
- SSL验证:保持
QRADAR_VERIFY_SSL=true生产中 - 最小特权:使用QRadar授权服务,只需最低限度的权限
- 网络安全:确保与QRadar的安全网络连接
- 代币轮换:定期轮换API代币
故障排除
连接问题
Error: QRadar API request failed- 验证
QRADAR_HOST正确(没有https://) - 检查防火墙规则是否允许连接到QRadar
- 确保API端口(通常为443)可访问
身份验证错误
Error: 401 Unauthorized- 验证
QRADAR_API_TOKEN是正确的 - QRadar中的校验令牌尚未过期
- 确保授权服务具有所需的权限
SSL证书错误
Error: SSL verification failed- 对于开发,set
QRADAR_VERIFY_SSL=false - 对于生产,将QRadar证书添加到受信任的证书中
查询超时
Error: Search timed out- 增加
max_wait参数 - 缩小查询时间范围
- 在AQL中使用更具体的过滤器
发展
项目结构
IBMQradarMCP/
├── src/
│ ├── __init__.py
│ ├── qradar_client.py # QRadar API client
│ └── server.py # MCP server implementation
├── pyproject.toml # Project metadata
├── requirements.txt # Dependencies
├── .env.example # Environment template
└── README.md # Documentation测试
在调试模式下运行服务器:
python -m src.server使用示例MCP客户端进行测试或与Claude Desktop集成。
API 参考
此MCP服务器使用IBM QRadar REST API v15.0。更多信息:
作者
拉姆·克里希纳·卡塔夸尔
许可证
有关详细信息,请参阅LICENSE文件。
贡献
欢迎投稿!请随时提交拉取请求或未决问题。
支持
对于问题和疑问:
- 检查故障排除部分
- 审查QRadar API文件
- 在GitHub上打开一个问题
更新日志
版本0.2.0
- 🎉 25种新的高级工具 已添加(共:41个工具)
- ✨ 增强的进攻管理:笔记、状态更新、分配、结束
- 💾 保存搜索执行和管理
- 🎨 自定义属性发现和查询
- 🏢 多租户域名管理
- 🌐 网络层次结构访问
- 🔍 发现工具:字段、类别、数据库
- 🧩 积木式管理
- 👥 用户分配管理
- 📊 报告和应用程序列表
- 📚 全面的高级功能文档
版本0.1.0
- 初始版本
- 支持AQL的事件和流查询
- 犯罪管理
- 日志源(代理)信息
- 资产查询
- 参考数据访问
- 系统信息
- 规则浏览
