Sooua
登录
返回文章列表
QRadar··1 分钟阅读

REST API 开发

QRadar 提供完整的 RESTful API,支持 SIEM 数据查询、配置管理、系统管理。

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 开发最佳实践

  1. 始终指定 Version Header — 避免升级后 API 变更
  2. 使用 Authorized Service Token — 不要使用用户名密码
  3. 处理分页 — 大量数据使用 Range Header
  4. 异常处理 — 处理 429(限流)、500(服务端错误)
  5. 日志记录 — 记录 API 调用日志便于排查

上一章:04 - 自定义 DSM 开发 下一章:06 - App 开发

分享

评论

登录 后参与讨论。

加载中…

相关文章