SIEM 与安全运营中心(SOC)建设

SIEM 选型与架构、日志采集与分析、Sigma 规则、威胁狩猎、SOC 分层运营、SOAR 自动化编排与事件响应流程。

开篇:SOC——网络安全的神经中枢

安全运营中心(Security Operations Center, SOC)是企业网络安全防御体系的核心。一个成熟的 SOC 能够 7×24 小时监控网络威胁、检测异常行为、响应安全事件、 Hunting 未知威胁。而 SIEM(Security Information and Event Management)系统是 SOC 的技术基石,负责收集、归一化、关联分析海量安全日志。

本章将介绍 SIEM 的选型与架构设计、威胁狩猎方法论、SOC 团队的分层运营模式,以及 SOAR(安全编排自动化响应)的实战应用。


一、SIEM 选型对比

产品部署方式优势劣势适用场景
Splunk Enterprise Security本地/云功能最全、生态丰富、搜索语言强大价格昂贵(按数据量计费)大型企业、预算充足
Elastic Security (SIEM)本地/云开源、可扩展性好、成本可控需要较多定制开发技术能力强的中大型企业
Microsoft Sentinel云原生Azure 集成好、按分析量计费、内置 AI深度绑定 Azure 生态Azure 用户、混合云环境
IBM QRadar本地/云关联规则成熟、合规报告丰富学习曲线陡峭、扩展成本高金融、电信等传统行业
Wazuh开源/本地完全开源免费、轻量级 Agent社区支持为主、功能相对简单中小型企业、初创公司
OpenSearch Security开源AWS 开源分支、与 Elastic 兼容生态相对 Elastic 较小开源优先、AWS 用户

一句话总结:SIEM 选型没有"最好",只有"最适合"——大型企业选 Splunk/QRadar,云原生选 Sentinel,技术团队强选 Elastic/Wazuh。


二、日志采集架构

2.1 日志来源

┌─────────────────────────────────────────────────────────────┐
│                       日志来源层                             │
├─────────────────────────────────────────────────────────────┤
│  终端安全      │  EDR 告警、进程创建、文件操作、注册表变更   │
│  网络设备      │  防火墙日志、IDS/IPS 告警、NetFlow、DNS    │
│  服务器        │  操作系统日志、认证日志、进程审计           │
│  应用系统      │  Web 访问日志、API 调用、业务审计日志       │
│  云服务        │  CloudTrail/Activity Log、VPC Flow Log    │
│  身份认证      │  AD/LDAP 日志、SSO 日志、MFA 事件          │
└─────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────┐
│                       采集传输层                             │
├─────────────────────────────────────────────────────────────┤
│  Filebeat    │  轻量级日志采集器,专为 Elasticsearch 设计   │
│  Fluentd     │  通用日志路由器,支持多种输入输出            │
│  Vector      │  高性能日志管道(Rust 编写)                 │
│  Syslog      │  传统日志传输协议(UDP/514, TCP/6514)       │
│  Cribl       │  日志可观测性管道,支持过滤和路由            │
└─────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────┐
│                       处理存储层                             │
├─────────────────────────────────────────────────────────────┤
│  归一化      │  CEF、LEEF、ECS(Elastic Common Schema)  │
│  富化        │  威胁情报关联、GeoIP、资产信息              │
│  索引        │  时序存储、冷热分层、压缩归档               │
└─────────────────────────────────────────────────────────────┘

2.2 Filebeat 配置示例

# /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: filestream
  id: nginx-access
  enabled: true
  paths:
    - /var/log/nginx/access.log
  parsers:
    - ndjson:
        target: ""
        add_error_key: true
  fields:
    service: nginx
    log_type: access
  fields_under_root: true

- type: filestream
  id: auth-log
  enabled: true
  paths:
    - /var/log/auth.log
  fields:
    service: ssh
    log_type: authentication

output.elasticsearch:
  hosts: ["https://es01:9200"]
  username: "filebeat_writer"
  password: "${ES_PASSWORD}"
  ssl:
    certificate_authorities: ["/etc/filebeat/ca.crt"]
  index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}"

# 处理器:富化日志
processors:
  - add_host_metadata:
      when.not.contains.tags: forwarded
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  - geoip:
      database_file: /usr/share/GeoIP/GeoLite2-City.mmdb
      field: source.ip
      target_field: source.geo
      ignore_missing: true

一句话总结:日志采集的核心挑战是"格式不统一"——通过 Filebeat/Fluentd 标准化采集,通过 ECS 等通用 Schema 归一化存储,才能为后续分析奠定基础。


三、Sigma 规则

3.1 Sigma 规则格式

Sigma 是一种通用的日志检测规则格式,类似"YARA for logs"。

# sigma/rules/linux/lnx_susp_ssh_login.yml
title: Suspicious SSH Login
description: Detects suspicious SSH login patterns
status: stable
logsource:
  product: linux
  service: auth
  category: authentication
detection:
  selection:
    - Facility: authpriv
      ProcessName: sshd
      Message|contains:
        - 'Failed password'
        - 'Invalid user'
  timeframe: 5m
  condition: selection | count() > 5
falsepositives:
  - Legitimate users forgetting passwords
level: medium
tags:
  - attack.initial_access
  - attack.t1078
  - attack.t1110

3.2 Sigma 生态工具

# 转换 Sigma 规则为目标平台格式
# 转为 Elasticsearch DSL
sigmac -t es-qs -c config/elk-linux.yml rules/linux/lnx_susp_ssh_login.yml

# 转为 Splunk SPL
sigmac -t splunk -c config/splunk-windows.yml rules/windows/

# 转为 Kibana Alert
sigmac -t kibana -c config/elastic.yml rules/

# Sigma CLI(PySigma)
sigma convert -t splunk rules/
sigma list targets  # 查看支持的输出格式

一句话总结:Sigma 的价值在于"规则写一次,到处运行"——安全研究人员共享 Sigma 规则,每个组织根据自身 SIEM 平台转换为对应查询语法。


四、威胁狩猎(Threat Hunting)

4.1 方法论

威胁狩猎流程:

1. 假设驱动(Hypothesis-Driven)
   "攻击者可能通过未打补丁的 VPN 漏洞进入网络"
   ↓
2. 数据采集
   收集 VPN 日志、认证日志、端点 EDR 数据
   ↓
3. 模式识别
   - 异常登录时间(非工作时间)
   - 异常地理位置(从未访问过的国家)
   - 异常 User-Agent(自动化工具特征)
   ↓
4. 调查分析
   - 时间线重建
   - 横向移动检测
   - 数据外传检测
   ↓
5. 响应与优化
   - 遏制威胁
   - 更新检测规则
   - 改进防御措施

4.2 MITRE ATT&CK 框架映射

战术技术 ID检测数据源
初始访问T1190(Exploit Public-Facing App)WAF 日志、应用日志
执行T1059(Command-Line Interface)EDR 进程日志、命令行审计
持久化T1547(Boot or Logon Autostart)注册表监控、启动项审计
防御规避T1070(Indicator Removal)日志完整性监控
凭证访问T1003(OS Credential Dumping)LSASS 访问监控、内存保护
横向移动T1021(Remote Services)网络连接日志、认证日志
数据收集T1567(Exfiltration Over Web Service)代理日志、DLP 告警

一句话总结:威胁狩猎从被动告警转向主动探索——基于假设驱动,在数据海洋中寻找"未知的未知"威胁。


五、SOC 分层运营

5.1 三层运营模式

层级职责技能要求响应时间
L1(一线)告警初筛、事件分类、标准处置基础安全知识、SIEM 操作< 15 分钟
L2(二线)深度分析、威胁 Hunting、规则优化日志分析、网络协议、恶意软件< 1 小时
L3(三线)高级威胁分析、逆向工程、事件指挥编程、逆向、取证、攻击技术< 4 小时

5.2 关键 KPI

指标说明行业基准
MTTD(Mean Time To Detect)从攻击发生到检测的平均时间< 200 天(全球平均),优秀 < 24 小时
MTTR(Mean Time To Respond)从检测到完全遏制的平均时间< 1 小时(优秀)
告警噪音率误报告警 / 总告警< 10%
事件升级率L1 升级到 L2/L3 的比例20-30%
闭环率已解决事件 / 总事件> 95%

一句话总结:SOC 的效率不仅取决于工具,更取决于流程和人员——清晰的分层职责、明确的 SLA 和持续的人员培训是 SOC 成功的关键。


六、SOAR(安全编排自动化响应)

6.1 Playbook 设计

# 网络钓鱼邮件响应 Playbook
name: Phishing Email Response
version: 1.0

triggers:
  - type: alert
    source: email_security_gateway
    condition: severity >= medium and category == "phishing"

steps:
  1_enrichment:
    - action: virustotal.lookup
      input: "{{ alert.attachments[0].hash }}"
      output: vt_result
    
    - action: whois.lookup
      input: "{{ alert.sender_domain }}"
      output: domain_info
  
  2_containment:
    - action: o365.block_sender
      input: "{{ alert.sender }}"
      condition: vt_result.malicious > 2
    
    - action: edr.isolate_endpoint
      input: "{{ alert.recipient_endpoint }}"
      condition: alert.attachments[0].executed == true
  
  3_investigation:
    - action: siem.search
      query: |
        user={{ alert.recipient }} 
        AND (action=clicked OR action=downloaded)
      timeframe: 24h
  
  4_notification:
    - action: slack.notify
      channel: "#security-incidents"
      message: |
        Phishing alert processed.
        User: {{ alert.recipient }}
        Status: {{ containment_status }}

6.2 开源 SOAR 工具

工具特点
Shuffle开源、可视化 Playbook 编辑器、大量集成
TheHive + Cortex事件管理 + 分析引擎、开源免费
DFIR-IRIS现代事件响应平台、协作功能强

一句话总结:SOAR 将 SOC 从"人力密集型"转向"智能自动化型"——标准化响应流程、缩短 MTTR、释放分析师精力用于更有价值的 Hunting 工作。


FAQ

Q1: SIEM 和日志平台(如 ELK)有什么区别?

ELK 是通用日志分析平台,SIEM 在 ELK 基础上增加了:

  • 预置安全检测规则(Correlation Rules)
  • 威胁情报集成
  • 事件管理(Case Management)
  • 合规报告模板
  • 用户行为分析(UEBA)

Q2: 自建 SOC 和托管 SOC(MSSP)怎么选?

因素自建 SOCMSSP
初期投入高(人员+工具)低(订阅费)
长期成本可控随数据量增长
定制化
响应速度快(内部团队)依赖 SLA
人才要求需自建团队无需自建

建议:小型企业选 MSSP,中大型企业混合模式(MSSP 做基础监控+自建团队做 Hunting)。

Q3: 日志该保留多久?

  • 安全日志:至少 1 年(等保要求)
  • 关键系统日志:3-7 年(金融行业)
  • 热存储(快速查询):30 天
  • 温存储(中等查询):90 天
  • 冷存储(归档):剩余周期

Q4: 如何处理告警疲劳?

  1. 告警聚合:将相关告警合并为单一事件
  2. 基线学习:使用 ML 区分正常行为和异常
  3. 动态阈值:基于历史数据自动调整触发阈值
  4. 白名单:维护已知良性行为的例外列表

相关阅读

  • https://plumephp.com/security-penetration-redteam/ — 渗透测试与红蓝对抗
  • https://plumephp.com/security-devsecops-pipeline/ — DevSecOps 流水线实践

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「安全」更多文章

  1. Kubernetes安全体系:RBAC、PodSecurity与NetworkPolicy实战
  2. 安全合规与数据保护
  3. 渗透测试与红蓝对抗