j91321.auditbeat

ansible角色-auditbeat

GitHub许可证 GitHub最后提交 构建 Twitter

这是一个将auditd替换为Auditbeat的Ansible角色。包含了来自bfuzzy1/auditd-attack的修改版规则。

MITRE ATT&CK框架映射

请在生产环境中使用之前仔细测试这些规则。某些规则可能会根据您的设置影响性能。有关Auditbeat的更多信息,请访问官方文档

支持的平台:

  • Ubuntu 20.04
  • Ubuntu 18.04
  • Ubuntu 16.04
  • CentOS 8
  • CentOS 7
  • CentOS 6
  • Debian 10
  • Debian 9
  • Debian 8
  • Gentoo **
  • Windows 10*
  • Windows Server 2019*
  • Windows Server 2016*

Auditbeat在Oracle Enterprise Linux上也应能正常工作,但仅限于RHCK。

* Windows上的Auditbeat支持不同的功能集。如果您希望实现类似功能,请使用Sysmon + Winlogbeat。

** 如果您想在Gentoo上运行auditbeat,您需要自己创建一个ebuild。如果您想使用system指标集,则需要带有Elastic许可的x-pack文件夹构建Auditbeat。如果要使用套接字,内核的menuconfig中需要启用Kprobe。

如果您希望从Docker容器中运行Auditbeat,请使用Elastic提供的官方Docker 镜像

要求

角色变量

来自defaults/main.yml的Ansible变量

auditbeat_service:
  install_path_windows64: "C:\\Program Files\\Elastic\\auditbeat"
  install_path_windows32: "C:\\Program Files\\Elastic\\auditbeat"
  version: "7.13.1"
  download: true
  config_path: /etc/auditbeat
  install_rules: true
  rule_file: auditd-attack.conf 

auditbeat_output:
  type: "elasticsearch"
  elasticsearch:
    hosts:
      - "localhost:9200"
    security:
      enabled: false
auditbeat_processors: |
  - add_host_metadata: ~
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
auditbeat_portage:
  package: =auditbeat-{{ auditbeat_service.version }}
  getbinpkg: no

如果您不想使用包含的规则,则可以将auditbeat_service.install_rules更改为false。

变量auditbeat_service.download仅影响Windows安装。如果您不想让客户端从网上下载Windows zip包,可以将其设置为false,并将Windows zip文件放置在files/文件夹中。请保留zip文件的命名,例如files/auditbeat-7.6.2-windows-x86.zip

指定不启用安全性的Elasticsearch输出配置。

auditbeat_output:
  type: elasticsearch
  elasticsearch:
    hosts:
      - "localhost:9200"
    security:
      enabled: true
      username: auditbeat_writer
      password: pa$$word
      protocol: https
      ssl_verification_mode: certificate
      ssl_certificate_authorities:
        - "/etc/ca/my_ca.crt"

指定启用安全性的Elasticsearch输出配置,服务器上必须存在证书颁发机构。

变量auditbeat_output.type可以取三个值:logstashelasticsearchredis。这是因为如果您将ansible的hash_behaviour设置为merge,使用logstash输出类型时角色会安装elasticsearch和logstash输出,这是错误的。

Redis输出示例:

auditbeat_output:
  type: redis
  redis:
    hosts:
      - 192.168.100.4
    password: "redis_password"
    key: "auditbeat"

使用处理器过滤高流量日志的示例

auditbeat_processors: |
  - add_host_metadata: ~
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  - drop_event.when.and:
    - equals.event.action: "network_flow"
    - equals.server.port: 10050
    - equals.process.name: "zabbix_agentd"

来自vars/main.yml的Ansible变量

auditbeat_module:
  auditd:
    enabled: true
   file_integrity:
    enabled: true
    paths:
      - /bin
      - /usr/bin
      - /sbin
      - /usr/sbin
      - /etc
  system:
    enabled: true
    datasets:
      - host
      - login
      - package
      - process
      - socket
      - user
auditbeat_module_windows:
  file_integrity:
    enabled: true
    paths:
      - C:\windows
      - C:\windows\system32
      - C:\Program Files
      - C:\Program Files (x86)
  system:
    enabled: true
    datasets:
      - host
      - process

这些变量是auditbeat的默认值,适合大多数常见用例。

依赖

示例剧本

- name: 安装auditbeat
  hosts:
    - linux
    - windows
  become: yes
  vars:
    auditbeat_service:
      install_path_windows32: "C:\\Program Files\\monitoring\\auditbeat"
      install_path_windows64: "C:\\Program Files\\monitoring\\auditbeat"
      version: "7.13.1"
      download: true
      install_rules: true
      rule_file: auditd-attack.conf
    auditbeat_template:
      enabled: false
    auditbeat_general:
      tags:
        - "auditbeat"
    auditbeat_output:
      type: "elasticsearch"
      elasticsearch:
        hosts:
          - "172.16.0.11:9200"
          - "172.16.0.12:9200"
          - "172.16.0.13:9200"
        security:
          enabled: true
          username: auditbeat
          password: auditbeatpassword
          protocol: http
  roles:
  - ansible-role-auditbeat

附加信息

在附加文件夹中,您可以找到几个基于Sigma auditd规则预制的Kibana保存搜索。这些保存搜索将与默认索引模式auditbeat-*配合使用。如果您使用不同的索引模式,您必须用适当的索引模式和字段名称修改保存对象。

安装步骤:

  1. 进入 Kibana->管理->索引模式
  2. 点击 创建索引模式
  3. 索引模式字段中写入 auditbeat- 并点击 下一步
  4. 选择 @timestamp 作为 时间过滤字段名称
  5. 点击 显示高级选项
  6. 设置 自定义索引模式 ID 为 auditbeat-
  7. 点击 创建索引模式

接下来,从此仓库导入保存搜索:

  1. 进入 Kibana->管理->保存对象
  2. 点击 导入
  3. 选择您想导入的保存搜索json文件
  4. 点击 导入
  5. 对所有保存搜索重复此操作

许可证

MIT

作者信息

j91321

规则由: bfuzzy

备注

测试需要进一步改进。正在等待beats问题 #8280 得到解决以便进行更好的测试。

关于项目

Install Auditbeat for security monitoring, supplied ruleset.

安装
ansible-galaxy install j91321.auditbeat
许可证
mit
下载
299