ossce -hids 日志监控与分析

发布于 2021-11-15  1.19k 次阅读


一、日志监控分析原理已经功能介绍

对ossec得日志监控和分析 log monitoring/analysis

ossec 23592 1 0 13:40 ? 00:00:06 /var/ossec/bin/ossec-analysisd
root 23597 1 0 13:40 ? 00:00:00 /var/ossec/bin/ossec-logcollector

ossec中支持两种日志监控
1.对指定的日志文件进行监控,并对发送到服务端进行rules对比和警告
2.直接对命令执行的结果进行监控,比如df -h,发送到服务端进行rules 对比和警

日志监控逻辑

说明:1.agent端的 ossec-monitord 收集定义规则的日志,例如/var/log/ 下面的messages 文件等,可以继续加入你需要收集的日志
2.server 端的ossec-logcollector 接收来自agent 端的日志,然后通过decoder对日志文件进行编码处理,再通过rules 进行规则的对比。
3.命中对应的规则后通过ossec-analysisd(分析模块)对命中的规则做分析产生告警,然后生成到ossec-syslogd 告警信息,这里输出给了syslog server。

需要注意的是:
server 对发送过来的日志不会对客户端发送过来的日志进行全量存储。
server 端收到agent 日志会立马对这个日志进行分析,分析完成后他会把原始日志丢掉,所以不必要担心ossec server 日志量大。

ossec 可以对标准的syslog 日志格式进行监控,ossec至少可以解析出来:
时间戳,主机名称,程序名称,log主体,四个部分

Ossec 对日志的监控是实时的!!!!
rules里面将警告一共分为0~15级,级别越高,说明问题越严重。
可以在agent 通过登录失败来验证,可以看到多次登录失败后告警等级升级为10级别,然后就是可以看到,日志确实是实时分析的。

二、日志分析自定义decoder和rules

/var/ossec/bin/ossec-logtest 可以用来的测试日志如何被解析

[root@ossec-server45 alerts]# /var/ossec/bin/ossec-logtest
2021/11/15 16:24:59 ossec-testrule: INFO: Reading local decoder file.
2021/11/15 16:24:59 ossec-testrule: INFO: Started (pid: 50413).
ossec-testrule: Type one log per line.

Nov 15 16:04:16 cosmo57 sshd[45329]: Failed password for root from 10.203.x.x port 39480 ssh2


**Phase 1: Completed pre-decoding. #####pre-decoding 预处理解析出syslog四元素
       full event: 'Nov 15 16:04:16 cosmo57 sshd[45329]: Failed password for root from 10.203.x.x port 39480 ssh2'
       hostname: 'cosmo57'
       program_name: 'sshd'
       log: 'Failed password for root from 10.203.x.x port 39480 ssh2'

**Phase 2: Completed decoding.###处理通过解码器
       decoder: 'sshd'
       dstuser: 'root'
       srcip: '10.203.x.x'

**Phase 3: Completed filtering (rules).###过滤
       Rule id: '5716'
       Level: '5'
       Description: 'SSHD authentication failed.'
**Alert to be generated.

参看文章:OSSEC文档——手册