前言概述
前面简单介绍了关于资产发现、病毒查杀、漏洞知识的几篇文章,这次从主机安全整体上描述如何引入新系统并融合之前几安全点,构建一个安全检测与响应系统。OSSEC,即为本次引入的开源系统,server-agent架构,具备日志收集分析、文件完整性检查、Windows 注册表监控、rootkit 检测、实时警报和主动响应等功能。 它可以在大多数操作系统上运行,包括 Linux、OpenBSD、FreeBSD、Mac OS X、Solaris 和 Windows,用户可定制自己的分析规则。
OSSEC介绍
ossec安装
ossec官网提供了源码,二进制包,容器镜像三种方式,其中容器镜像为Server独有。各Agent根据系统类型选择对应二进制包安装。首先安装配置Server,推荐使用Docker镜像,数据和配置通过挂载方式实现持久化:
(1) 从dockerhub拉取(最新)镜像docker pull atomicorp/ossec-docker:latest
(2) 完成后建立数据目录和配置目录,配置文件
(3) docker run启动Server
(4) 使用 /var/ossec/bin/manage_agents 设置添加agent
(5) 导出agent对应key
然后安装agent,比如Centos 7.6的Agent,则可以通过以下方式完成安装:
(1)下载centos 7下x86_64的atomic-release-1.0-21.el7.art.noarch.rpm包
(2) sudo rpm -Uvh atomic-release*rpm安装源
(3) sudo yum install ossec-hids-agent 安装agent
安装成功后,配置对应Server地址、端口、接入key、对应模块启禁设置,然后通过systemctl启动即可
功能介绍
日志监控
Agent侧通过上报日志信息,Server侧解码分析,完成事件检出。首先是在agent侧配置日志监控,可通过设置命令执行和文件读取完成。命令执行配置示例:
<localfile>
<log_format>command</log_format>
<command>df -h</command>
</localfile>
文件读取示例:
<localfile>
<location>%WinDir%\System32\LogFiles\W3SVC3\ex%y%m%d.log</location>
<log_format>iis</log_format>
</localfile>
接着在Server侧编写解码和检测规则,解码规则作用的结构化对应日志,检测规则为把安全和运维经验,产出机器执行码。对应参考都在/var/ossec/etc/decoders.d和/var/ossec/etc/decoders.d,完成后可使用/var/ossec/bin/ossec-logtest测试验证。验证OK,重启Server(/var/ossec/bin/ossec-control restart)触发加载即可。
完整性监控
Agent侧定期或实时监控对应文件夹/文件变化(大小、内容、属性),并上报对应文件的摘要和属性到Server侧,Server侧可执行对应分析和响应。Agent完整性监控设置实例:
<syscheck>
<directories check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories check_all="yes">/root/users.txt,/bsd,/root/db.html</directories>
</syscheck>
// 周期性监控
<syscheck>
<ignore type="sregex">^/opt/application/log</ignore>
</syscheck>
// 排除对应特征文件夹
<syscheck>
<directories realtime="yes" check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories check_all="yes">/bin,/sbin</directories>
</syscheck>
// 实时监控
rootkit检测
通过agent侧匹配对应rootkit规则,完成rootkit检测发现。对应配置段为:
<rootcheck>
...
</rootcheck>
动作响应
主要用来在检出到事件后,根据事件ID和Agent ID,执行对应动作。配置如下:
先设置命令
<command>
<name>mail-alert</name>
<executable>mail-test.sh</executable>
<timeout_allowed>no</timeout_allowed>
<expect />
</command>
再引用命令响应
<active-response>
<command>mail-alert</command>
<location>server</location>
<rules_id>1002</rules_id>
</active-response>
对应定制化响应程序编写,阅读参考文献。
组件融合
以OSSEC为核心,嵌入资产发现和杀毒功能,扩充OSSEC安全能力。
资产发现融入
Server侧,移入msscan与nmap,通过crond每天定时发现存活主机。并通过与OSSEC的agent数据做比较,逐步消除未安装agent的"影子"主机。
杀毒功能融入
agent侧携带yara引擎和对应规则,编写规则检测OSSEC的文件完整性上报数据,当后缀为".zip"、".exe"、".msi"、".dll"等,触发yara扫描并把结果写入指定文件yarascan.out,然后Server侧编写规则解码和分析yara结果。
其他,也可以融合基线检查进入,编写或引入对应的基线检测引擎,嵌入agent侧一起,利用OSSEC的日志收集解功能完成结果分析。
参考文献
[1] ossec 官网docs
[2] ossect github项目
[3] ossec readthedocs文档