API 概述
QRadar 提供完整的 RESTful API,支持 SIEM 数据查询、配置管理、系统管理。
认证方式
授权服务令牌(推荐)
headers = {
"SEC": "<your-authorized-service-token>",
"Version": "26.0",
"Accept": "application/json"
}创建路径:Admin > Authorized Services
核心 API 示例
SIEM 查询
import requests
import urllib3
urllib3.disable_warnings()
base_url = "https://qradar/api"
headers = {"SEC": "<token>"}
# 获取 Offense 列表
r = requests.get(f"{base_url}/siem/offenses", headers=headers, verify=False)
print(r.json())
# 关闭 Offense
offense_id = 12345
r = requests.post(f"{base_url}/siem/offenses/{offense_id}",
headers=headers,
json={"status": "CLOSED", "closing_reason_id": 1},
verify=False
)Ariel 查询
# 提交 AQL 查询
query = "SELECT * FROM events LAST 5 MINUTES"
r = requests.post(f"{base_url}/ariel/searches",
headers=headers, json={"query_expression": query}, verify=False)
search_id = r.json()["search_id"]
# 获取结果
time.sleep(5)
r = requests.get(f"{base_url}/ariel/searches/{search_id}/results", headers=headers, verify=False)
print(r.json())引用集管理
# 添加元素
r = requests.post(f"{base_url}/reference_data/sets/my_set",
headers=headers, json={"value": "192.168.1.100"}, verify=False)
# 获取引用集
r = requests.get(f"{base_url}/reference_data/sets/my_set", headers=headers, verify=False)API 开发最佳实践
- 始终指定 Version Header — 避免升级后 API 变更
- 使用 Authorized Service Token — 不要使用用户名密码
- 处理分页 — 大量数据使用 Range Header
- 异常处理 — 处理 429(限流)、500(服务端错误)
- 日志记录 — 记录 API 调用日志便于排查
上一章:04 - 自定义 DSM 开发 下一章:06 - App 开发