SIEM日志管理Skill siem-logging

SIEM日志管理技能专注于配置和使用安全信息和事件管理系统,实现集中式安全监控、威胁检测、日志聚合和合规审计。关键词:SIEM、日志聚合、威胁检测、合规、安全审计、安全监控。

安全运维 0 次安装 0 次浏览 更新于 3/23/2026

名称: siem-logging 描述: 配置安全信息和事件管理(SIEM)系统进行威胁检测、日志聚合和合规。用于实施集中式安全日志记录、编写检测规则或满足云和本地基础设施的审计要求。

SIEM日志记录

目的

使用SIEM平台(Elastic SIEM、Microsoft Sentinel、Wazuh、Splunk)配置全面的安全日志基础设施,以检测威胁、调查事件和保持合规审计轨迹。此技能涵盖平台选择、日志聚合架构、检测规则开发(SIGMA格式和平台特定)、警报调整以及符合法规(GDPR、HIPAA、PCI DSS、SOC 2)的保留策略。

何时使用此技能

使用此技能当:

  • 跨基础设施实施集中式安全事件监控
  • 编写身份验证失败、权限提升、数据外泄的威胁检测规则
  • 为多云环境(AWS、Azure、GCP、Kubernetes)设计日志聚合
  • 满足日志保留和审计轨迹的合规要求
  • 调整安全警报以减少误报和警报疲劳
  • 计算高容量安全日志(TB/天级别)的成本
  • 将安全日志记录与事件响应工作流程集成

SIEM平台选择

快速决策框架

根据以下选择SIEM平台:

预算考虑:

  • 无限制预算 → Splunk Enterprise Security(企业功能、已验证规模)
  • 中等预算(每年5万-50万美元) → Microsoft Sentinel或Elastic SIEM(云原生、灵活)
  • 紧张预算(每年<5万美元) → Wazuh(免费、开源XDR/SIEM)

基础设施上下文:

  • 大量Azure投资 → Microsoft Sentinel(原生集成、内置SOAR)
  • 大量AWS投资 → AWS Security Lake + OpenSearch(AWS原生)
  • 多云或本地 → Elastic SIEM或Wazuh(平台无关)

数据容量:

  • >1 TB/天 → Splunk或Elastic Cloud(已验证规模)
  • 100 GB - 1 TB/天 → Microsoft Sentinel或Elastic SIEM
  • <100 GB/天 → Wazuh或Sentinel 50 GB层级

团队专业知识:

  • Elasticsearch经验 → Elastic SIEM(熟悉工具)
  • Microsoft/Azure专业知识 → Microsoft Sentinel(Azure生态系统)
  • 通才或有限资源 → Wazuh(学习曲线最易)

平台比较摘要

平台 成本 部署 最适合
Elastic SIEM $$$ 云/自托管 多云、定制需求、DevOps团队
Microsoft Sentinel $$$ 云(Azure) 重度Azure组织、内置SOAR、云优先
Wazuh 免费 自托管 成本敏感、中小企业、合规要求
Splunk ES $$$$$ 云/本地 大型企业、大规模、无限制预算

详细功能比较,请见references/platform-comparison.md

检测规则

通用格式:SIGMA规则

SIGMA提供通用检测规则格式,可编译为任何SIEM查询语言(Elastic EQL、Splunk SPL、Microsoft KQL)。

SIGMA规则结构:

title: 单一源多次登录失败尝试
id: 8a9e3c7f-4b2d-4e8a-9f1c-2d5e6f7a8b9c
status: stable
description: 检测潜在暴力攻击(10分钟内10+次失败登录)
author: 安全团队
date: 2025/12/03
references:
  - https://attack.mitre.org/techniques/T1110/
tags:
  - attack.credential_access
  - attack.t1110
logsource:
  category: authentication
  product: linux
detection:
  selection:
    event.type: authentication
    event.outcome: failure
  timeframe: 10m
  condition: selection | count() by source.ip > 10
level: high

编译SIGMA到平台特定:

# 安装SIGMA编译器
pip install sigma-cli

# 编译到Elastic EQL
sigmac -t es-eql sigma_rule.yml

# 编译到Splunk SPL
sigmac -t splunk sigma_rule.yml

# 编译到Microsoft KQL
sigmac -t kusto sigma_rule.yml

平台特定检测格式

Elastic EQL(事件查询语言):

sequence by user.name with maxspan=5m
  [process where process.name == "powershell.exe" and
   process.args : ("Invoke-WebRequest", "iwr", "wget")]
  [process where process.parent.name == "powershell.exe"]

Microsoft Sentinel KQL:

SigninLogs
| where TimeGenerated > ago(1h)
| where ResultType != 0  // 失败登录
| summarize FailedAttempts=count() by UserPrincipalName, IPAddress
| where FailedAttempts >= 10

Splunk SPL:

index=web_logs sourcetype=access_combined
| rex field=uri "(?<sql_keywords>union|select|insert|update|delete)"
| where isnotnull(sql_keywords)
| stats count by src_ip, uri
| where count > 5

全面检测规则示例,请见:

  • examples/sigma-rules/ - 通用SIGMA检测规则
  • examples/elastic-eql/ - Elastic特定查询
  • examples/microsoft-kql/ - Microsoft Sentinel查询
  • examples/splunk-spl/ - Splunk搜索
  • references/detection-rules-guide.md - 完整指南

日志聚合架构

集中式架构

所有日志使用单一SIEM实例。适用于:

  • 单区域部署
  • 小到中等容量(<1 TB/天)
  • 单一云提供商或本地
  • 有限安全团队(1-10分析师)

架构:

应用服务器 → 日志传输器(Filebeat/Fluentd)
                   ↓
             日志聚合器(Logstash/Fluentd)
                   ↓
          SIEM平台(Elasticsearch/Splunk/Sentinel)
                   ↓
            安全分析师(仪表板/警报)

分布式架构(多区域)

区域SIEM实例与全局聚合。适用于:

  • 多区域全局部署
  • 数据驻留要求(GDPR、主权)
  • 高容量(>1 TB/天每区域)
  • 低延迟区域分析需求

架构:

全局SIEM(关联、威胁情报)
    ↓
区域SIEM(美国东部) | 区域SIEM(欧洲西部) | 区域SIEM(亚太)
    ↓                        ↓                          ↓
本地日志               本地日志                本地日志

云原生架构

利用托管云服务。适用于:

  • 云优先组织(AWS/Azure/GCP)
  • 避免管理基础设施
  • 弹性工作负载,可变日志容量
  • 云服务成本预算

AWS示例:

CloudTrail + VPC流日志 + GuardDuty
              ↓
       AWS Security Lake(S3数据湖)
              ↓
    OpenSearch(分析) | Athena(SQL查询)

部署示例,请见:

  • examples/architectures/elk-stack-docker-compose.yml
  • examples/architectures/fluentd-kubernetes-daemonset.yaml
  • examples/architectures/aws-security-lake-terraform/
  • examples/architectures/wazuh-docker-compose.yml
  • references/cloud-native-logging.md

日志聚合工具

Fluentd(云原生): CNCF项目,用于Kubernetes和多云环境。适用于容器化应用。

Logstash(Elastic堆栈): 原生Elasticsearch集成。适用于高级解析(grok模式)和数据丰富。

完整配置示例,请见examples/logstash-pipelines/references/cloud-native-logging.md

日志保留与合规

合规要求

框架 最小保留 热存储 温存储 冷存储
GDPR 30-90天 7天 30天 60天
HIPAA 6年 30天 180天 6年
PCI DSS 1年 90天 180天 1年
SOC 2 1年 30天 90天 1年

存储分层策略

热层(SSD,实时):

  • 最近7-30天
  • 实时索引和快速查询
  • 最昂贵($0.10/GB/月)

温层(HDD,近期):

  • 30-90天
  • 只读索引,偶尔搜索
  • 中等成本($0.05/GB/月)

冷层(S3/Blob,归档):

  • 90天至保留限
  • 可搜索快照,罕见查询
  • 最便宜($0.01/GB/月)

成本优化示例:

500 GB/天日志容量,1年保留

热(30天):   15 TB @ $0.10/GB = $1,500/月
温(60天):  30 TB @ $0.05/GB = $1,500/月
冷(275天): 137.5 TB @ $0.01/GB = $1,375/月

总计:$4,375/月 = $52,500/年

vs. 仅热层:$18,250/月 = $219,000/年
节省:76%($166,500/年)

详细保留策略和成本优化,请见:

  • references/log-retention-policies.md
  • references/cost-optimization.md
  • scripts/cost-calculator.py

记录什么(安全事件)

关键事件(必须记录):

  • 身份验证:登录尝试、MFA、密码更改、权限提升
  • 授权:权限更改、角色修改、访问拒绝
  • 数据访问:敏感数据库/文件访问、API调用、导出
  • 网络:连接、防火墙拒绝、VPN、DNS查询
  • 系统:服务更改、配置修改、软件安装

严重级别: 身份验证失败(3+次):高警报 | 权限提升:关键警报 | 数据导出:高警报 | 配置更改:中(无警报)

警报调整与噪声减少

警报生命周期

  1. 检测规则创建 - 保守阈值,部署到生产
  2. 基线期(2-4周) - 收集警报数据,标记真/假阳性
  3. 调整阶段 - 添加白名单、调整阈值、优化关联
  4. 持续改进 - 每周指标审查、月度有效性审查

噪声减少技术

白名单(已知安全模式):

# 示例:允许扫描器IP
- rule_id: brute_force_detection
  whitelist:
    - source_ip: "10.0.0.100"  # 安全扫描器
    - user_agent: "Nagios"      # 监控系统

阈值调整:

# 之前:过于敏感(500警报/天,5%真阳性率)
- rule: failed_login_attempts
  threshold: 5分钟内3次尝试

# 之后:调整后(50警报/天,40%真阳性率)
- rule: failed_login_attempts
  threshold: 10分钟内10次尝试

多事件关联:

# 替代:单一事件警报
- alert_on: "身份验证失败"

# 使用:关联模式
- alert_on:
    - "身份验证失败(5+次)"
    - AND "来自新IP地址"
    - AND "后续成功身份验证"
    - WITHIN: 30分钟

目标警报指标

指标 目标
总警报/天 <100
真阳性率 >30%
平均调查时间 <15分钟
假阳性率 <50%
关键警报/天 <10

全面警报调整策略,请见references/alert-tuning-strategies.md

快速开始

部署Wazuh: git clone https://github.com/wazuh/wazuh-docker.git && cd wazuh-docker/single-node && docker-compose up -d(见examples/architectures/wazuh-docker-compose.yml

创建SIGMA规则:examples/sigma-rules/brute-force-detection.yml SSH暴力检测模板

Elastic Cloud: 在cloud.elastic.co注册,创建安全层部署,在端点安装Elastic Agent

与相关技能集成

可观测性技能:

  • 路由安全日志到SIEM,性能日志到可观测性平台
  • 共享日志聚合基础设施(Fluentd/Logstash)
  • 不同分析目的(安全vs.性能)

事件管理技能:

  • SIEM警报触发事件响应工作流程
  • 与PagerDuty、Opsgenie、ServiceNow集成
  • 关键安全事件的自动化事件创建

安全强化技能:

  • SIEM监控安全配置和合规
  • 检测CIS基准的配置漂移
  • 警报安全策略违规

构建CI流水线技能:

  • 记录CI/CD安全事件(部署、密钥访问)
  • GitHub Actions/GitLab CI与SIEM集成
  • 供应链安全监控

密钥管理技能:

  • 审计所有密钥访问操作
  • HashiCorp Vault/AWS Secrets Manager日志到SIEM
  • 检测未授权密钥访问尝试

参考文档

详细指南

  • references/platform-comparison.md - 全面SIEM平台功能比较
  • references/detection-rules-guide.md - 检测规则格式(SIGMA、EQL、KQL、SPL)
  • references/log-retention-policies.md - 合规要求和保留策略
  • references/cloud-native-logging.md - AWS、Azure、GCP、Kubernetes日志设置
  • references/alert-tuning-strategies.md - 误报减少和警报优化
  • references/cost-optimization.md - 存储分层和成本管理

工作示例

  • examples/sigma-rules/ - 通用SIGMA检测规则(10+示例)
  • examples/elastic-eql/ - Elastic事件查询语言查询
  • examples/microsoft-kql/ - Microsoft Sentinel Kusto查询
  • examples/splunk-spl/ - Splunk搜索处理语言
  • examples/architectures/ - 完整部署示例(Docker、Kubernetes、Terraform)
  • examples/logstash-pipelines/ - Logstash流水线配置

实用脚本

  • scripts/sigma-to-elastic.sh - 转换SIGMA规则到Elastic EQL
  • scripts/cost-calculator.py - 基于容量和保留估计SIEM成本

官方文档