OSSEC的预编译规则(Compiled Rules)为了方便不喜欢编写xml格式规则的用户。利用这项功能,用户可以直接使用c语言来编写日志处理规则,在编译的时候,连接到 analysisd程序。并非一种动态的规则扩展机制。为了了解预编译规则,我们先看一下ossec的规则定义。
1. ossec的规则
ossec的规则是XML格式的,主要有两种:
- 解码规则:用于判断日志的种类和格式,所有的内容都在decode.xml文件中;
- 检测规则:依赖于检测规则,主要用于检测日志中记录的安全问题。
1.1. 解码规则
根 据decoder.xml的定义,ossec的日志分析程序会从被监控的日志中提取某些字段,根据这些字段判断日志的种类,例如:sshd日志、 web日志,然后在根据其中的某些字段,确定日志记录了那种信息,例如:sshd登录成功、失败。下面我们看一段linux sshd日志的片段(来源于ossec wiki的日志样本):
- 登录成功:
May 21 20:22:28 slacker2 sshd[8813]: Accepted password for root from 192.168.20.185 port 1066 ssh2
May 21 20:22:28 sol2 sshd[23857]: [ID 702911 auth.notice] User test1, coming from 192.168.2.185, - authenticated.
Oct 11 08:05:46 hostname auth|security:info sshd[323808]: Accepted publickey for usr1 from 2.3.4.5 port 37909 ssh2
- 登录失败:
May 21 20:22:28 slacker sshd[21487]: Failed password for root from 192.168.20.185 port 1045 ssh2
- 无效的用户登录企图:
Jul 7 10:51:24 chaves sshd[19537]: Invalid user admin from spongebob.lab.ossec.net
Jul 7 10:53:24 chaves sshd[12914]: Failed password for invalid user test-inv from spongebob.lab.ossec.net