You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Docker的Wazuh、Logstash与MISP安全分析模块配置问询

Docker+Wazuh+Logstash+MISP安全分析模块配置答疑

项目背景

开发基于Docker的预防性安全分析模块,集成Wazuh(日志收集/SIEM/威胁检测)、Logstash(数据解析转发)、MISP(威胁情报关联),所有容器部署在secstack Docker网络,构建流水线:Wazuh检测威胁 → Logstash处理富集 → MISP关联分析。首次开展该类项目,现针对提供的配置文件答疑。


提供的配置文件

Wazuh - Filebeat配置文件

filebeat.modules:
  - module: wazuh
    alerts:
      enabled: true
    archives:
      enabled: false

setup.template.json.enabled: true
setup.template.overwrite: true
setup.template.json.path: '/etc/filebeat/wazuh-template.json'
setup.template.json.name: 'wazuh'
setup.ilm.enabled: false
#output.elasticsearch:
  #hosts: ['https://wazuh.indexer:9200']
  #username:
  #password:
  #ssl.verification_mode:
  #ssl.certificate_authorities:
  #ssl.certificate:
  #ssl.key:
output.logstash:
  hosts: ["172.18.0.2:5044"]

logging.metrics.enabled: false

seccomp:
  default_action: allow
  syscalls:
  - action: allow
    names:
    - rseq

Logstash Pipeline配置文件

input {
  beats {
    port => 5044
  }
}

filter {
  json {
    source => "message"
    skip_on_invalid_json => true
  }
    
  # Format date to YYYY-MM-DD for MISP
  date {
    match => ["event_date", "ISO8601"]
    target => "event_date"
  }

  ruby {
    code => "
      require 'time'
      event_date = Time.parse(event.get('event_date')).strftime('%Y-%m-%d')
      event.set('event_date_formatted', event_date)
    "
  }
}

output {
  http {
    url => "https://localhost:8443/events/index"
    http_method => "post"
    format => "json"
    content_type => "application/json"
    headers => ["Authorization", "bN90gKgfPMSNV2pWRYdPOxpgbHF5yKFrW3l7MPHM"]
    body => '{
      "Event": {
        "info": "%{event_info}",
        "date": "%{event_date_formatted}",
        "threat_level_id": "2",
        "analysis": "0",
        "distribution": "1",
        "Attribute": [
          {
            "type": "text",
            "category": "External analysis",
            "to_ids": false,
            "value": "%{event_attribute_value}"
          }
        ]
      }
    }'
  }

  # Optional: debug locally
  stdout {
    codec => rubydebug
  }
}

配置正确性分析

Filebeat配置问题

  1. 网络地址硬编码风险:output.logstash.hosts使用固定IP172.18.0.2,Docker容器IP会随重启/重建变动,应替换为Logstash容器的服务名(如logstash:5044),利用Docker DNS解析实现稳定通信。
  2. 模板文件依赖:配置中指定了wazuh-template.json路径,需确保该文件存在于Filebeat容器内的对应位置,否则Filebeat启动失败。
  3. 其他合规点:模块启用(仅开启告警转发)、ILM关闭、seccomp配置均符合需求,无明显错误。

Logstash配置问题

  1. MISP地址错误:output.http.url使用localhost:8443,在Logstash容器内localhost指向自身,而非MISP容器,应替换为MISP的服务名(如misp:8443)。
  2. API端点错误:MISP默认事件创建API端点为/events/add,而非/events/index,需修正端点路径,否则请求会返回404错误。
  3. 字段有效性未知:body中引用的%{event_info}、%{event_attribute_value}需确认是否存在于Wazuh告警字段中,若字段不存在,MISP会收到空值数据。
  4. 密钥硬编码不安全:API密钥直接写入配置文件,易泄露,应改用环境变量(如${MISP_API_KEY})传递。
  5. 日期处理冗余:date插件已可将event_date解析为时间对象,后续Ruby代码重复格式化,可简化为直接在date插件中指定format,或删除Ruby代码。

必须考虑的核心要点

  • Docker网络通信:所有容器需加入secstack网络,全程使用服务名而非IP,确保通信稳定性。
  • SSL/TLS加密:Filebeat与Logstash之间启用SSL加密传输,Logstash访问MISP时需验证证书(自签证书需配置CA信任),避免明文传输敏感数据。
  • 字段映射校验:梳理Wazuh告警的完整字段列表,确保Logstash中引用的字段全部存在,避免数据丢失或格式错误。
  • MISP权限配置:确保API密钥拥有事件创建权限,且MISP已启用API访问(在MISP后台设置中开启)。
  • 错误重试机制:为Logstash HTTP输出配置重试策略(如retry_failed: true、retry_interval),Filebeat配置Logstash重试与负载均衡,避免网络波动导致数据丢失。
  • 容器资源限制:为Wazuh、Logstash、MISP容器配置CPU/内存配额(如--cpus=2 --memory=4g),防止资源耗尽影响系统稳定性。
  • 日志监控:持续监控各容器日志(docker logs -f <container-name>),快速定位通信、数据解析或API调用错误。

实操建议

  1. 用Docker Compose统一管理:编写docker-compose.yml定义所有服务、网络和卷挂载,用服务名替代IP,一键部署和维护。
  2. 环境变量替代硬编码:将Logstash中的MISP地址、API密钥,Filebeat中的Logstash地址改为环境变量,提升配置安全性和可移植性。
  3. 分步测试数据流:
    • 先验证Wazuh→Filebeat→Logstash的数据流:启动容器后,触发Wazuh测试告警,查看Logstash的stdout输出,确认字段解析正常。
    • 再测试Logstash→MISP的连接:用curl手动调用MISP API验证事件创建功能,再接入Logstash数据流。
  4. 简化日期处理:删除Logstash中的Ruby代码,改用date插件直接格式化日期:
    date {
      match => ["event_date", "ISO8601"]
      target => "event_date_formatted"
      format => "%Y-%m-%d"
    }
    
  5. 启用Logstash调试:测试阶段保留stdout { codec => rubydebug }输出,实时查看数据处理结果,快速调整配置。
  6. 挂载配置卷:将Filebeat和Logstash的配置文件挂载为Docker卷,无需进入容器即可修改配置,且配置文件可持久化备份。
  7. 参考官方文档:查阅Wazuh Filebeat模块指南、MISP API文档,确保配置符合官方最佳实践。

内容的提问来源于stack exchange,提问作者Nouaman Ahmamcha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 02:50:55