开源EDR(OSSEC)基础篇- 03 - 目录结构与实用工具

前言

上一篇我们着重介绍了OSSEC的部署安装,而本篇主要想挖掘的是OSSEC程序目录放置的各种实用的工具和文件,了解他们是干什么的有助于更深的了解OSSEC的工作机制。

1. 文件剖析

1.1 根目录

程序目录默认安装在 /var/ossec ,对核心子目录重点展示

开源EDR(OSSEC)基础篇- 03 - 目录结构与实用工具_第1张图片

1.2 子目录 /bin

此目录主要存放OSSEC的可执行程序文件

1.2.1 核心执行文件

核心执行文件主要负责整个OSSEC入侵检测响应系统的运作,如下图所示

开源EDR(OSSEC)基础篇- 03 - 目录结构与实用工具_第2张图片

  • ossec-logcollector

    • 收集日志
  • ossec-analysisd

    • 范式化日志并进行分析,匹配规则并触发告警信息
  • ossec-syscheckd

    • 检测定义监控的文件完整性变化(校验和、权限、属组)
  • ossec-maild

    • 触发邮件或短信告警
  • ossec-execd

    • 触发执行响应处理脚本
  • ossec-remoted

    • 服务端与客户端通信服务守护进程(UDP 1514)

1.2.2 客户端管理工具

OSSEC入侵检测响应框架服务器端需要集中管理Agent,所以需要熟悉客户端管理工具的使用,方便系统运维

  • manage_agent - 客户端密钥管理

    • 导出已生成的agent通信密钥 - /var/ossec/manage_agent -e
    • 移除已存在的agent - /var/ossec/manage_agent -r
    • 导入agent通信密钥 - /var/ossec/manage_agent -i
    • 批量生成agent密钥 - /var/ossec/manage_agent -f
  • agent_control - 客户端控制

    • 获取agent状态 - /var/ossec/agent_control -l
    • 获取agent信息 - /var/ossec/agent_control -i
    • 重启agent进程 - /var/ossec/agent_control -R
    • 触发完整性和后门检测 - /var/ossec/agent_control -r -u
  • list_agents - 客户端状态

    • 显示所有客户端 - /var/ossec/list_agents -a
    • 显示已连接的客户端 - /var/ossec/list_agents -c
    • 显示未连接的客户端 - /var/ossec/list_agents -n
  • clear_stats - 统计信息清零

    • 每日平均统计清零 - /var/ossec/clear_stats -d
    • 每周平均统计清零 - /var/ossec/clear_stats -w

1.2.3 规则测试工具

OSSEC在分析日志之前,通常需要对日志使用正则表达式提取内容字段,为保证正则解析的有效性,需要进行日志正则匹配测试,熟悉规则测试工具的使用,事半功倍

  • ossec-logtest - 规则测试、漏报/误报规则调优

    • 加载指定定配置文件

      • /var/ossec/bin/ossec-logtest -c /var/ossec/etc/ossec.conf
    • 测试读取单行日志

      • echo "Dec 30 04:15:28 server sshd[80558]: Failed password for invalid user test from 119.28.50.163 port 33020 ssh2" | /var/ossec/bin/ossec-logtest
    • 测试读取日志文件

      • cat /var/log/secure | /var/ossec/bin/ossec-logtest -a
  • ossec-regex - OSSEC内置正则表达式测试

1.2.4 报告生成工具

OSSEC系统本身没有完善的UI界面,需要借助第三方工具做效果展现,但内置支持安全报告输出,可以弥补没有UI界面的不足

  • ossec-reportd - 事件统计报告

    • 告警数据生成安全报告

      • cat /var/ossec/logs/alerts/alerts.log | /var/ossec/bin/ossec-reportd
    • 过滤条件输出安全报告

      • cat /var/ossec/logs/alerts/alerts.log | /var/ossec/bin/ossec-reportd -f group authentication_failure

    过滤条件 ossec-reportd -f

    • 支持属性

      • group - 安全事件组
      • rule - 安全事件名称
      • level - 安全事件级别
      • location - 安全事件归属主机
      • user - 用户名称
      • srcip - 源IP地址
      • filename - 文件名称

1.2.5 主程序管理工具

OSSEC操作管理的基础内容,包含进程启动、停止、重启,以及进程状态和内置功能开关

  • ossec-control - OSSEC进程管理、功能开关管理

    • ossec进程启动

      • /var/ossec/bin/ossec-control start
    • ossec进程停止

      • /var/ossec/bin/ossec-control stop
    • ossec进程重启

      • /var/ossec/bin/ossec-control restart
    • ossec进程状态

      • /var/ossec/bin/ossec-control status
    • ossec功能(ossec-dbd、ossec-csyslog,ossec-agentlessd)开关激活

      • /var/ossec/bin/ossec-control enable
    • ossec功能(ossec-dbd、ossec-csyslog,ossec-agentlessd)开关关闭

      • /var/ossec/bin/ossec-control disable

1.2.6 无代理联动工具

OSSEC不仅支持在各种操作系统上部署Agent,进行安全管理,也支持Agentless(无代理模式)的远程管理,譬如交换机、路由器这样的设备,这些设备一般无法安装Agent程序,但通常都支持SSH, ossec-agentlessd通过功能脚本实现无代理模式的集中管理

  • ossec-agentlessd - ossec无代理设备通信处理
[root@server agentless]# cd /var/ossec/agentless
[root@server agentless]# ll
总用量 60
-r-xr-x--- 1 root ossec 2412 12月 23 21:03 main.exp
-r-xr-x--- 1 root ossec 2086 12月 23 21:03 register_host.sh
-r-xr-x--- 1 root ossec 5240 12月 23 21:03 ssh_asa-fwsmconfig_diff
-r-xr-x--- 1 root ossec 1445 12月 23 21:03 ssh.exp
-r-xr-x--- 1 root ossec 5360 12月 23 21:03 ssh_foundry_diff
-r-xr-x--- 1 root ossec  867 12月 23 21:03 ssh_generic_diff
-r-xr-x--- 1 root ossec 1060 12月 23 21:03 ssh_integrity_check_bsd
-r-xr-x--- 1 root ossec 1067 12月 23 21:03 ssh_integrity_check_linux
-r-xr-x--- 1 root ossec  772 12月 23 21:03 sshlogin.exp
-r-xr-x--- 1 root ossec 1473 12月 23 21:03 ssh_nopass.exp
-r-xr-x--- 1 root ossec 5222 12月 23 21:03 ssh_pixconfig_diff
-r-xr-x--- 1 root ossec 1350 12月 23 21:03 su.exp

1.2.7 日志处理工具

OSSEC系统对产生的日志需要做有序管理,实现日志压缩、日志发送以及日志写入数据库的功能

  • ossec-monitord - 监控客户端连接和压缩日志
  • ossec-csyslogd - 负责发送syslog日志
  • ossec-dbd - 负责把告警日志写入数据库

1.2.8 代理密钥批量生成工具

当前客户网络主机、服务器数量庞大,单纯的手动导出导入代理通讯密钥基本无法满足需求,ossec-authd就是解决批量生成代理密钥的工具

  • ossec-authd - 自动加载通信密钥加入Agent主机

1.2.9 特殊功能工具

OSSEC最牛的地方,就是功能设计带有前瞻性,结合使用者聪明的发散思维,同一个功能实现的安全需求截然不同,比如CDB列表,CDB列表是个键值对列表文件(需要ossec-makelists编译后使用),基于CDB列表目前安全实现有基线异常发现和恶意域名通讯异常发现等,高级篇会有专门的篇幅介绍

  • ossec-makelists - 负责编译CDB键值对数据库

      1. 使用CDB数据库发现基线异常(Tracking Processes/Malwares Using OSSEC)
      • https://blog.rootshell.be/2014/02/10/tracking-processesmalwares-using-ossec/
      1. 使用CBD数据库发现恶意域名(Watching for Potentially Malicious Domains with OSSEC)
      • http://ddpbsd.blogspot.com/2011/10/3woo-watching-for-potentially-malicious.html
  • util.sh - 监控网站和域名解析状态变更脚本

1.2 子目录 /etc

/etc 目录主要存放OSSEC系统的配置文件

[root@server etc]# cd /var/ossec/etc
[root@server etc]# ll
总用量 180
-r--r----- 1 root ossec    188 12月 28 11:21 client.keys
-rw-r----- 1 root ossec 138049 12月 23 21:03 decoder.xml
-rw-r----- 1 root ossec   3156 12月 23 21:03 internal_options.conf
-rw-r----- 1 root ossec    320 12月 21 21:12 local_internal_options.conf
-r--r----- 1 root ossec    388 12月 23 21:03 localtime
-rw-r----- 1 root ossec   8090 12月 25 16:09 ossec.conf
-rw-r----- 1 root root     104 12月 23 21:03 ossec-init.conf
drwxrwx--- 2 root ossec   4096 12月 23 21:03 shared

重点

  • decoder.xml: 默认的解码器文件,作用是实现日志正则预匹配,减轻日志解析压力
  • client.keys: 记录管辖范围内Agent的密钥信息文件
  • internal_options.conf: 内部功能参数调整开关、门限值调整(下一篇介绍)
  • ossec-init.conf: 记录安装初始化信息,包括版本、安装目录以及角色
  • ossec.conf: 主配置文件,包括规则加载、完整性检测、后门检测等功能(下一篇介绍)

1.3 子目录 /logs

目录 /logs 主要存放ossec程序的运行日志、主动响应日志以及事件告警日志

[root@server etc]# cd /var/ossec/logs
[root@server logs]# ll
总用量 1280
-rw-rw---- 1 ossec ossec 625512 1月  15 15:59 active-responses.log
drwxr-x--- 4 ossec ossec   4096 1月  15 00:00 alerts
drwxr-x--- 4 ossec ossec   4096 1月  15 00:00 archives
drwxr-x--- 4 ossec ossec   4096 1月  15 00:00 firewall
-rw-rw---- 1 ossec ossec 661514 1月  15 16:51 ossec.log

重点

  • ossec.log: 记录ossec所有相关程序的执行状态信息,包括读取配置文件、启停进程、加载规则等
  • active-responses.log: 记录主动响应操作记录
  • alerts: 存放各种格式记录事件的告警文件

1.4 子目录 /queue

目录 /queue 存放一些需要缓存处理的队列数据,比如完整性检测和后门检测的缓存数据等

[root@server etc]# cd /var/ossec/queue
[root@server queue]# ll
总用量 36
drwxr-x--- 2 ossecr ossec 4096 12月 29 10:42 agent-info
drwxr-x--- 2 ossec  ossec 4096 12月 21 21:12 agentless
drwxrwx--- 2 ossec  ossec 4096 12月 29 14:26 alerts
drwxr-x--- 5 ossec  ossec 4096 12月 21 23:32 diff
drwxr-x--- 2 ossec  ossec 4096 12月 21 21:17 fts
drwxr-x--- 2 ossec  ossec 4096 12月 29 14:26 ossec
drwxr-x--- 2 ossecr ossec 4096 12月 28 11:23 rids
drwxr-x--- 2 ossec  ossec 4096 12月 28 11:24 rootcheck
drwxr-x--- 2 ossec  ossec 4096 12月 29 07:42 syscheck

1.5 子目录 /active-response

目录 /active-response 存放主动响应的脚本文件

root@server bin]# pwd
/var/ossec/active-response/bin
[root@server bin]# ll
总用量 60
-r-xr-x--- 1 root ossec 1711 12月 23 21:03 disable-account.sh
-r-xr-x--- 1 root ossec 3952 12月 23 21:03 firewalld-drop.sh
-r-xr-x--- 1 root ossec 7277 12月 23 21:03 firewall-drop.sh
-r-xr-x--- 1 root ossec 3539 12月 23 21:03 host-deny.sh
-r-xr-x--- 1 root ossec  800 12月 23 21:03 ip-customblock.sh
-r-xr-x--- 1 root ossec 1617 12月 23 21:03 ipfw_mac.sh
-r-xr-x--- 1 root ossec 1385 12月 23 21:03 ipfw.sh
-r-xr-x--- 1 root ossec 1290 12月 23 21:03 npf.sh
-r-xr-x--- 1 root ossec 1157 12月 23 21:03 ossec-pagerduty.sh
-r-xr-x--- 1 root ossec 1739 12月 23 21:03 ossec-slack.sh
-r-xr-x--- 1 root ossec 1636 12月 23 21:03 ossec-tweeter.sh
-r-xr-x--- 1 root ossec 1949 12月 23 21:03 pf.sh
-r-xr-x--- 1 root ossec  542 12月 23 21:03 restart-ossec.sh
-r-xr-x--- 1 root ossec 1353 12月 23 21:03 route-null.sh

1.6 子目录 /rules

目录 /rules 存放OSSEC内置支持的设备、应用,系统安全检测规则文件

root@server rules]# ls
apache_rules.xml      hordeimp_rules.xml           named_rules.xml           proxmox-ve_rules.xml    sysmon_rules.xml
apparmor_rules.xml    ids_rules.xml                netscreenfw_rules.xml     psad_rules.xml          systemd_rules.xml
arpwatch_rules.xml    imapd_rules.xml              nginx_rules.xml           pure-ftpd_rules.xml     telnetd_rules.xml
asterisk_rules.xml    linux_usbdetect_rules.xml    nsd_rules.xml             racoon_rules.xml        trend-osce_rules.xml
attack_rules.xml      local_rules.xml              openbsd-dhcpd_rules.xml   roundcube_rules.xml     unbound_rules.xml
cimserver_rules.xml   mailscanner_rules.xml        openbsd_rules.xml         rules_config.xml        vmpop3d_rules.xml
cisco-ios_rules.xml   mcafee_av_rules.xml          opensmtpd_rules.xml       sendmail_rules.xml      vmware_rules.xml
clam_av_rules.xml     ms1016_usbdetect_rules.xml   ossec_rules.xml           smbd_rules.xml          _concentrator_rules.xml
courier_rules.xml     msauth_rules.xml             owncloud_rules.xml        solaris_bsm_rules.xml   vpopmail_rules.xml
dnsmasq_rules.xml     ms_dhcp_rules.xml            pam_rules.xml             sonicwall_rules.xml     vsftpd_rules.xml
dovecot_rules.xml     ms-exchange_rules.xml        php_rules.xml             spamd_rules.xml         web_appsec_rules.xml
dropbear_rules.xml    ms_firewall_rules.xml        pix_rules.xml             squid_rules.xml         web_rules.xml
exim_rules.xml        ms_ftpd_rules.xml            policy_rules.xml          sshd_rules.xml          wordpress_rules.xml
firewalld_rules.xml   ms_ipsec_rules.xml           postfix_rules.xml         symantec-av_rules.xml   zeus_rules.xml
firewall_rules.xml    ms-se_rules.xml              postgresql_rules.xml      symantec-ws_rules.xml
ftpd_rules.xml        mysql_rules.xml              proftpd_rules.xml         syslog_rules.xml

总结

本章节系统介绍了OSSEC目录结构与实用工具,下一个章节会重点讲解主配置文件ossec.conf以及内部可选参数配置文件internal_options.conf的细节内容

你可能感兴趣的:(开源EDR(OSSEC)基础篇- 03 - 目录结构与实用工具)