1. 目的
为了运维平台统一管理各类安全日志,需要统一优化后,再收集到ES中。然后,运维平台对安全数据的展示、监控和告警等。
OSSEC(HIDS)是一个开源的入侵检测系统,它可以执行日志分析、完整性检测、Windows注册表监控、rootkit检测、实时报警及动态响应。
2. HIDS防护对象
防护对象统一使用运维平台CMDB中涉及的预发布环境和生产环境。
3. 日志类型
3.1 完整性检测
3.1.1 完整性检测日志
默认的检测周期为22小时执行一次,检测的目录为/etc
、/usr/bin
、/usr/sbin
、/bin
、/sbin
、/boot
。
check_all
:检测所有选项,包括文件的MD5、SHA1、文件大小、宿主等。
3.1.2 完整性检测字段
字段 | 说明 |
rule.level | 事件级别 |
rule.comment | 策略说明 |
rule.sidid | 策略SID ID |
rule.group | 策略组 |
id | 事件ID |
Decoder | 译码器 |
Location | 位置 |
full_log | 完整日志 |
hostname | 机器名 |
program_name | 程序名 |
file.md5_after | 文件之后的md5 |
file.md5_before | 文件之前的md5 |
file.path | 文件路径 |
3.2 Rootkit检测
3.2.1 Rootkit检测日志
扫描整个文件系统,检测异常文件和异常的权限设置,文件属主是root,但是其他用户可写是非常危险的,rootkit将会扫描这些文件。同时还会检测具有suid权限的文件、隐藏的文件和目录。
另外还会检测隐藏端口、隐藏进程、/dev
目录、网卡混杂模式等。
进程ID为22109是隐藏,可能是内核级rootkit。
3.2.2 Rootkit检测字段
字段 | 说明 |
rule.level | 事件级别 |
rule.comment | 策略说明 |
rule.sidid | 策略SID ID |
rule.group | 策略组 |
id | 事件ID |
decoder | 译码器 |
location | 位置 |
full_log | 完整日志 |
hostname | 机器名 |
3.3 日志分析
3.3.1 日志分析日志
分析系统的/var/log/messages
和/var/log/secure
日志。
3.3.2 日志分析字段
字段 | 说明 |
rule.level | 事件级别 |
rule.comment | 策略说明 |
rule.sidid | 策略SID ID |
rule.group | 策略组 |
id | 事件ID |
decoder | 译码器 |
decoder_parent | 解码父代 |
location | 位置 |
full_log | 完整日志 |
hostname | 机器名 |
program_name | 程序名 |
3.4 其他功能
3.4.1 端口检测日志
3.4.2 端口检测字段
字段 | 说明 |
rule.level | 事件级别 |
rule.comment | 策略说明 |
rule.sidid | 策略SID ID |
rule.group | 策略组 |
id | 事件ID |
previous_output | 预输出 |
decoder | 译码器 |
location | 位置 |
full_log | 完整日志 |
hostname | 机器名 |
3.4.3 磁盘检测日志
当磁盘达到100%时,检测磁盘情况。
3.4.4 磁盘检测字段
字段 | 说明 |
rule.level | 事件级别 |
rule.comment | 策略说明 |
rule.sidid | 策略SID ID |
rule.group | 策略组 |
id | 事件ID |
decoder | 译码器 |
location | 位置 |
full_log | 完整日志 |
hostname | 机器名 |
4. HIDS日志处理
对OSSEC产生的日志进行预处理(过滤、优化规则等)、格式化为JSON,并收集到ES中。
5. HIDS展示
- HIDS趋势图:显示每天各个时间段的安全趋势。
- HIDS每天产生安全类型前5,根据decoder字段统计,得出各类安全事件的数量,如:sshd、pam、rootcheck等。
- HIDS每天攻击源(外部机器)前10的机器数据统计,根据srcip的字段统计。
- HIDS每天产生目标机器(内部机器)的前10数据统计,根据hostname字段统计。
- HIDS主要功能统计的实现方法根据rule.group精确匹配特定字符串,如:syscheck(完整性检查)、rootcheck(后门检查)和syslog(日志分析)进行统计主要功能数据量。
- HIDS产生安全事件的进程名称前10,根据program_name字段统计相关信息。
- 登录分类详解分析每类登录的情况,根据rule.comment字段实现,相关类型如下所示:
- Login session opened. 登录会话打开
- Login session closed. 登录会话关闭
- SSHD authentication success. sshd验证成功
- System user successfully logged to the system. 系统用户已成功登录到系统
- Reverse lookup error (bad ISP or attack). 反向查找错误(错误的ISP或攻击)
- Possible attack on the ssh server (or version gathering). 可能会攻击ssh服务器(或版本收集)
- SSH insecure connection attempt (scan). ssh不安全连接尝试(扫描)
- Attempt to login using a non-existent user. 尝试使用不存在的用户登录
- User authentication failure. 用户身份验证失败
- Multiple authentication failures. 多次身份验证失败
- SSHD brute force trying to get access to the system. sshd蛮力试图访问系统
- 登录失败的前10机器信息,根据srcip字段实现。
- 根据以上已知情况后再深入分析,分析界面根据字段progam_name、rule.group、rule.comment和full_log显示相应的安全日志信息。
6. 告警
- 用户变化告警,如:添加用户、删除用户,实现方法根据program_name字段精确匹配useradd或userdel每分钟告警一次。
- 后门类告警,实现方法根据decoder字段精确匹配rootcheck每分钟告警一次。
- 内核变化告警,实现方法根据program_name字段精确匹配kernel每分钟告警一次。
- 完整性检查告警,实现方法根据decoder字段精确匹配syscheck_integrity_changed每分钟告警一次。
- 使用不存在用户登录告警,实现方法根据rule.comment字段精确匹配Attempt to login using a non-existent user.每分钟告警一次。
- ssh不安全连接尝试告警,实现方法根据rule.comment字段精确匹配SSH insecure connection attempt (scan).每分钟告警一次。
- 反向查找安全告警,实现方法根据rule.comment字段精确匹配Reverse lookup error (bad ISP or attack).每分钟告警一次。
- 攻击ssh安全告警,实现方法根据rule.comment字段精确匹配Possible attack on the ssh server (or version gathering).每分钟告警一次。
- 身份验证失败告警,实现方法根据rule.comment字段精确匹配User authentication failure.每分钟告警一次。
- 多次身份验证失败告警,实现方法根据rule.comment字段精确匹配Multiple authentication failures.每分钟告警一次。
- ssh暴力尝试登录告警,实现方法根据rule.comment字段精确匹配SSHD brute force trying to get access to the system.每分钟告警一次。
- 非法登录告警,实现方法根据rule.comment字段精确匹配System user successfully logged to the system.每分钟告警一次。
以上就是OSSEC(HIDS)日志收集与展示的完整内容,包括目的、防护对象、日志类型、日志处理、展示和告警等方面的介绍。