Link Search Menu Expand Document

背景描述

W3A SOC工作台有个很特别的地方就是针对流量的入侵检测,之前我们做的更多偏Web日志,然而流量这块有缺失,现在基于Suricate/Snort/zeek(bro)做集成,实现入侵的检测和分析,把真正存在问题的部分给上报到平台,企业只需要在创建的时候一键部署入侵检测的服务,即可和工作台打通,实现攻击行为在工作台上实时查看。 底层的处理逻辑:

  • 将产出的流量日志通过filebeat进行日志的采集,并且上报到kafka。
  • 工具Agent直接分析Kafka的日志进行捕获,抓取有问题的部分,上报到工作台。
  • 同时适配多种工具数据源(Suricate/Snort/zeek)。

使用配置

首先,基于filebeat对数据源进行配置,以suricate为例:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/nids/logs/eve.json
  json.keys_under_root: true
  json.overwrite_keys: true

output.kafka:
  hosts: ["kafka:9092"]
  topic: nidslogs
  required_acks: 1

配置完之后,还需要增加服务,把filebeat采集启动起来:(参考docker-compose)

  # 采集流量日志到KAFKA
  filebeat3:
    image: docker.elastic.co/beats/filebeat:8.1.3
    entrypoint: "filebeat -e -strict.perms=false"
    volumes:
      - ./filebeat-nids.yml:/usr/share/filebeat/filebeat.yml
      - ./nids/log:/var/nids/logs
    depends_on: 
      - suricate

除此之外,suricate也要启动起来,不然无效:(参考docker-compose)

  # NIDS-suricate
  suricate:
    image: jasonish/suricata:6.0
    privileged: true
    command: -i eth0
    volumes:
      - ./nids/log:/var/log/suricata
    cap_add:
      - NET_ADMIN
    #  - NET_RAW
      - SYS_NICE
    network_mode: "host"

完事之后自行对受保护的业务进行攻击就行,如容器内的服务,然后去工作台就能看到实际的入侵攻击行为。