
IBM QRadar SIEM 安全事件關聯分析實戰AQL 查詢、自定義規則與 Offense 管理的完整工作流【免費下載鏈接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0項目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills導讀本文基于 Anthropic-Cybersecurity-Skills 倉庫中的correlating-security-events-in-qradar技能文檔系統講解如何利用 IBM QRadar SIEM 的 AQLAriel Query Language、自定義關聯規則Correlation Rule、構建模塊Building Block與 Offense 管理機制跨網絡、端點和應用日志源檢測多階段攻擊。讀完本文你將掌握用 AQL 圍繞單個 Offense 展開溯源、用失敗登錄 成功登錄模式構建可復用的關聯規則、用事件與流數據 JOIN 發現橫向移動和數據外滲、用 Reference Set 做動態白名單/監控名單、以及用腳本和 API 將整個排查流程自動化。該技能面向 SOC 分析師與檢測工程師定位于soc-operations子域映射 NIST CSF 2.0 的 DE.CM-01、DE.AE-02、RS.MA-01、DE.AE-06 能力以及 MITRE ATTCK 的 T1078有效賬戶、T1110.003口令噴灑、T1021遠程服務、T1071.001應用層協議、T1041經 C2 通道外傳等手法。適用場景包括調查 QRadar Offense、構建檢測規則、降低誤報噪聲以及從單點事件監控向基于行為的關聯分析演進。使用前提與邊界何時使用該技能SOC 分析師需要調查 QRadar Offense并跨多個日志源關聯事件檢測工程師需要構建自定義關聯規則以識別多階段攻擊需要開展告警調優降低 Offense 誤報率、提升信號質量團隊正從基礎事件監控遷移到基于行為的關聯分析。明確不適用的場景日志源接入與解析Log Source Onboarding / Parsing那需要 QRadar 管理員權限和 DSM 編輯器知識不在本技能范圍內。環境前提IBM QRadar SIEM 7.5且已啟用 Offense 管理具備 AQL 基礎可編寫臨時的事件與流查詢日志源已正確歸一化并映射了 QIDWindows、防火墻、代理、端點用戶角色擁有 Offense 管理、規則創建與 AQL 搜索權限已配置 Reference Set/Map用于白名單和監控名單管理。Step 1用 AQL 調查一個 OffenseAQLAriel Query Language是 QRadar 內置的類 SQL 查詢語言用于檢索 events、flows 與 offenses 三類數據。調查一個 Offense 的第一步是把它包含的全部貢獻事件拉出來建立時間線。打開一個 Offense 后用INOFFENSE()函數查詢該 Offense 的全部關聯事件SELECT DATEFORMAT(startTime, yyyy-MM-dd HH:mm:ss) AS event_time, sourceIP, destinationIP, username, LOGSOURCENAME(logSourceId) AS log_source, QIDNAME(qid) AS event_name, category, magnitude FROM events WHERE INOFFENSE(12345) ORDER BY startTime ASC LIMIT 500隨后以可疑源 IP 為軸心檢索它在該時間段內的全部活動判斷是否為單一事件還是系統性行為SELECT DATEFORMAT(startTime, yyyy-MM-dd HH:mm:ss) AS event_time, destinationIP, destinationPort, username, QIDNAME(qid) AS event_name, eventCount, category FROM events WHERE sourceIP 192.168.1.105 AND startTime NOW() - 24*60*60*1000 ORDER BY startTime ASC LIMIT 1000這里涉及幾個關鍵 AQL 函數完整清單見倉庫的 AQL 函數參考函數作用QIDNAME(qid)將 QID 解析為可讀的事件名稱LOGSOURCENAME(id)將日志源 ID 解析為日志源名稱INOFFENSE(id)過濾屬于指定 Offense 的事件DATEFORMAT(ts, fmt)格式化時間戳NOW()返回當前時間毫秒CATEGORYNAME(cat)將類別 ID 解析為類別名稱注意startTime的單位是毫秒因此24 小時前要寫成NOW() - 24*60*60*1000。Step 2構建自定義關聯規則Building Block Correlation Rule檢測暴力破解后成功登錄這類多階段攻擊正確的做法是分層構建先做一個只產生事件、不產生 Offense 的 Building Block再基于它構建產生 Offense 的關聯規則。這樣 Building Block 可以被多條規則復用也讓誤報排查更加精細。規則 1 —— 暴力破解檢測Building BlockRule Type: Event Rule Name: BB: Multiple Failed Logins from Same Source Tests: - When the event(s) were detected by one or more of [Local] - AND when the event QID is one of [Authentication Failure (5000001)] - AND when at least 10 events are seen with the same Source IP in 5 minutes Rule Action: Dispatch new event (Category: Authentication, QID: Custom_BruteForce)規則 2 —— 暴力破解成功關聯規則Rule Type: Offense Rule Name: COR: Brute Force with Subsequent Successful Login Tests: - When an event matches the building block BB: Multiple Failed Logins from Same Source - AND when an event with QID [Authentication Success (5000000)] is detected from the same Source IP within 10 minutes - AND the Destination IP is the same for both events Rule Action: Create offense, set severity to High, set relevance to 8設計要點Building Block 用Dispatch new event動作輸出一個自定義 QID如Custom_BruteForce本身不觸發 Offense避免中間態誤報關聯規則通過同一源 IP 10 分鐘時間窗 相同目標 IP三個條件把失敗與成功兩次行為綁定成一條攻擊鏈只有完整的攻擊序列才會生成 OffenseQID5000000/5000001是 QRadar 對認證成功/失敗的通用歸一化編號實際部署時應與自身的 QID 映射核對。Step 3用 AQL 做跨數據源關聯認證失敗 × 網絡流發現橫向移動把events表和flows表做LEFT JOIN以認證類別事件 高頻失敗源 伴隨大流量的組合來捕捉橫向移動跡象SELECT e.sourceIP, e.destinationIP, e.username, QIDNAME(e.qid) AS event_name, e.eventCount, f.sourceBytes, f.destinationBytes FROM events e LEFT JOIN flows f ON e.sourceIP f.sourceIP AND e.destinationIP f.destinationIP AND f.startTime BETWEEN e.startTime AND e.startTime 300000 WHERE e.category Authentication AND e.sourceIP IN ( SELECT sourceIP FROM events WHERE QIDNAME(qid) Authentication Failure AND startTime NOW() - 3600000 GROUP BY sourceIP HAVING COUNT(*) 20 ) AND e.startTime NOW() - 3600000 ORDER BY e.startTime ASC這條查詢的邏輯鏈是1 小時內失敗認證超過 20 次的源 IP子查詢再去匹配這些源 IP 在事件前后 5 分鐘300000 毫秒內的流量記錄觀察其是否緊接著發起新的網絡連接——典型的暴力破解成功后的橫向移動模式。DNS 查詢 × 出站流量發現數據外滲將指向非內部 DNS 服務器的異常高頻 DNS 查詢與大體積出站流量關聯識別經 DNS 或非常規端口外傳的數據SELECT sourceIP, destinationIP, SUM(sourceBytes) AS total_bytes_out, COUNT(*) AS flow_count FROM flows WHERE sourceIP IN ( SELECT sourceIP FROM events WHERE QIDNAME(qid) ILIKE %DNS% AND destinationIP NOT IN ( SELECT ip FROM reference_data.sets(Internal_DNS_Servers) ) AND startTime NOW() - 86400000 GROUP BY sourceIP HAVING COUNT(*) 500 ) AND destinationPort NOT IN (80, 443, 53) AND startTime NOW() - 86400000 GROUP BY sourceIP, destinationIP HAVING SUM(sourceBytes) 104857600 ORDER BY total_bytes_out DESC要點解析reference_data.sets(Internal_DNS_Servers)直接在內聯子查詢里讀取 Reference Set把內部 DNS 服務器排除在外HAVING SUM(sourceBytes) 104857600過濾出出站超過 100 MB 的會話destinationPort NOT IN (80, 443, 53)排除常規 Web/HTTPS/DNS 流量聚焦可疑端口的外傳通道。Step 4用 Reference Set 做上下文增強Reference Set 是 QRadar 的動態查找表適合承載白名單、監控名單和外部情報等會變的數據。用 API 創建和管理它比手動在 UI 里維護更可審計、可重復。創建名為Known_Pen_Test_IPs的 IP 類型 Reference Set并設置LAST_SEEN超時與 30 天 TTL# Create reference set via QRadar API curl -X POST https://qradar.example.com/api/reference_data/sets \ -H SEC: YOUR_API_TOKEN \ -H Content-Type: application/json \ -d { name: Known_Pen_Test_IPs, element_type: IP, timeout_type: LAST_SEEN, time_to_live: 30 days } # Add entries curl -X POST https://qradar.example.com/api/reference_data/sets/Known_Pen_Test_IPs \ -H SEC: YOUR_API_TOKEN \ -d value10.0.5.100隨后在規則條件中引用它實現排除已知良性行為 突出關鍵資產Test: AND when the Source IP is NOT contained in any of [Known_Pen_Test_IPs] Test: AND when the Destination IP is contained in any of [Critical_Asset_IPs]倉庫 api-reference.md 還給出了完整的 Reference Data API 用法包括創建POST /reference_data/sets、追加條目POST /reference_data/sets/{name}?value...和讀取集合內容GET /reference_data/sets/{name}三個操作都可以用SEC請求頭攜帶 API Token 完成。Step 5調優 Offense 生成降低誤報誤報治理的第一步是量化誤報來源。下面的 AQL 從近 30 天標記為 False Positive 關閉原因的 Offense 中統計貢獻事件按 QID 和日志源的分組找出最大的誤報制造者-- Find top false positive generators SELECT QIDNAME(qid) AS event_name, LOGSOURCENAME(logSourceId) AS log_source, COUNT(*) AS event_count, COUNT(DISTINCT sourceIP) AS unique_sources FROM events WHERE INOFFENSE( SELECT offenseId FROM offenses WHERE status CLOSED AND closeReason False Positive AND startTime NOW() - 30*24*60*60*1000 ) GROUP BY qid, logSourceId ORDER BY event_count DESC LIMIT 20拿到榜單后的調優手段把高頻誤報源加入 Reference Set 排除條件如 Step 4 的Known_Pen_Test_IPs對噪聲規則的閾值做差異化提升例如服務賬號場景把10 次失敗登錄提升為25 次因為服務賬號的自動化重試天然高頻開啟 Offense Coalescing讓相關聯的事件聚合成單個 Offense降低分析師逐個處理的負擔。Step 6構建關聯監控儀表盤用 QRadar Pulse 構建自定義儀表盤將關聯效果量化為兩個核心指標在途 Offense 構成與平均關閉時長。-- Active offenses by category SELECT offenseType, status, COUNT(*) AS offense_count, AVG(magnitude) AS avg_magnitude FROM offenses WHERE status OPEN GROUP BY offenseType, status ORDER BY offense_count DESC -- Mean time to close offenses SELECT DATEFORMAT(startTime, yyyy-MM-dd) AS day, AVG(closeTime - startTime) / 60000 AS avg_close_minutes, COUNT(*) AS closed_count FROM offenses WHERE status CLOSED AND startTime NOW() - 30*24*60*60*1000 GROUP BY DATEFORMAT(startTime, yyyy-MM-dd) ORDER BY day第一個查詢告訴你哪些攻擊類別正在產生最多 Offense 以及平均 Magnitude 有多高第二個查詢按天統計平均關閉耗時毫秒除以 60000 換算為分鐘是衡量檢測質量與分析師效率的直觀信號。用 API 與腳本自動化關聯工作流上述手動操作都可以通過 QRadar REST API 與 scripts/agent.py 自動化。該腳本實現了一個QRadarClient客戶端封裝了 AQL 檢索、Offense 管理、Reference Set 操作和規則列表查詢。class QRadarClient: def __init__(self, host, api_token, verify_sslFalse): self.base_url fhttps://{host}/api self.headers { SEC: api_token, Content-Type: application/json, Accept: application/json, }search_aql(query)通過POST /ariel/searches?query_expression...提交查詢輪詢任務狀態直至COMPLETED后拉取結果最多等待 60 秒超時返回錯誤get_offenses()/get_offense_details()/close_offense()分別對應 Offense 管理 API 的列表、詳情與關閉操作關閉時還會自動追加一條備注create_reference_set()/add_to_reference_set()封裝了 Reference Set 的創建與條目追加默認verify_sslFalse即關閉證書校驗——生產環境應顯式開啟并配置合法證書。腳本內置了兩個開箱即用的檢測查詢可直接作為關聯分析起點brute_force_aql()24 小時內按源 IP、目標 IP、用戶名分組統計認證失敗事件HAVING COUNT(*) 10輸出暴力破解候選lateral_movement_aql()24 小時內排除域控reference_data.sets(Domain_Controllers)后統計單個源 IP 連接的不同目標 IP 數量HAVING COUNT(DISTINCT destinationIP) 5提示橫向移動跡象。運行方式設置環境變量后執行export QRADAR_HOSTqradar.example.com export QRADAR_TOKENyour_api_token python agent.py report # 生成在途 Offense 匯總報告 python agent.py offenses # 列出在途 Offense python agent.py offense 12345 # 查看指定 Offense 詳情 python agent.py brute-force # 執行暴力破解檢測查詢 python agent.py lateral-movement # 執行橫向移動檢測查詢 python agent.py aql SELECT ... # 執行任意 AQL 查詢結合 api-reference.md 中的 Offense 管理 API你還可以在腳本基礎上擴展自動關閉誤報 Offense的能力# List open offenses curl -s https://qradar/api/siem/offenses?filterstatus%3DOPEN -H SEC: $TOKEN # Get offense details curl -s https://qradar/api/siem/offenses/12345 -H SEC: $TOKEN # Close offense curl -X POST https://qradar/api/siem/offenses/12345?closing_reason_id1statusCLOSED \ -H SEC: $TOKEN # Add note to offense curl -X POST https://qradar/api/siem/offenses/12345/notes \ -H SEC: $TOKEN -H Content-Type: application/json \ -d {note_text: Investigation completed}核心概念速查術語定義AQLAriel Query Language — QRadar 的類 SQL 查詢語言用于檢索事件、流和 OffenseOffenseQRadar 的關聯告警單元將多個事件/流歸并為一個可調查的條目Building Block可復用的規則組件只對事件分類而不直接產生 Offense作為關聯規則的輸入MagnitudeQRadar 計算的 Offense 嚴重度綜合 relevance相關性、severity嚴重性與 credibility可信度三因子得出 1-10 分值Reference SetQRadar 中的動態查找表用于規則內的白名單、監控名單與外部數據增強QIDQRadar Identifier — 將廠商特定事件映射到歸一化類別的唯一數字 IDCoalescingQRadar 將相關事件歸并為單一 Offense 的機制用于降低分析師工作量工具鏈與典型場景工具鏈IBM QRadar SIEM企業級 SIEM 平臺提供事件關聯、Offense 管理與 AQL 查詢引擎、QRadar Pulse自定義可視化儀表盤框架、QRadar API自動化 Reference Set、Offense 與規則部署的 REST 接口、QRadar Use Case Manager將檢測規則映射到 MITRE ATTCK 覆蓋度、QRadar Assistant基于 AI 的自然語言調查輔助。典型場景暴力破解到淪陷關聯同源 IP 的失敗認證與隨后的成功登錄橫向移動鏈追蹤單一源在多個內部主機上的認證事件序列C2 信標關聯周期性 DNS 查詢與訪問非常規域名時的低熵載荷權限提升關聯用戶組變更如加入管理員組與此前的可疑認證數據外滲關聯大體積出站流量與此前的內網偵察活動。標準化輸出Offense 調查報告模板技能文檔給出了一套可直接復用的 Offense 調查輸出格式保證每次排查產出一致的可審計結論QRADAR OFFENSE INVESTIGATION — Offense #12345 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Offense Type: Brute Force with Subsequent Access Magnitude: 8/10 (Severity: 8, Relevance: 9, Credibility: 7) Created: 2024-03-15 14:23:07 UTC Contributing: 247 events from 3 log sources Correlation Chain: 14:10-14:22 — 234 Authentication Failures (EventCode 4625) from 192.168.1.105 to DC-01 14:23:07 — Authentication Success (EventCode 4624) from 192.168.1.105 to DC-01 (user: admin) 14:25:33 — New Process: cmd.exe spawned by admin on DC-01 14:26:01 — Net.exe user /add detected on DC-01 Sources Correlated: Windows Security Logs (DC-01) Sysmon (DC-01) Firewall (Palo Alto PA-5260) Disposition: TRUE POSITIVE — Escalated to Incident Response Ticket: IR-2024-0432該模板把 Offense 元數據類型、Magnitude、創建時間、貢獻事件數、關聯時間線失敗→成功→進程創建→賬戶操作、跨日志源證據Windows 安全日志、Sysmon、防火墻與處置結論定性、升級、工單號組織在一起天然適合寫入工單系統或作為證據留存。小結從 AQL 溯源、Building Block 分層規則到事件與流的跨源 JOIN、Reference Set 上下文增強再到誤報調優、Pulse 儀表盤與 API 自動化本文完整覆蓋了在 QRadar 上實施基于行為的關聯分析所需的核心能力。整個技能以soc-operations子域為定位對應的文檔、API 參考與自動化腳本均已隨倉庫開源Apache-2.0可作為 SOC 團隊落地 QRadar 關聯檢測的直接參考。【免費下載鏈接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0項目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考