【2022HVV系列】操作系统日志收集与分析
一、Windows日志收集与分析
在运维工作过程中,如若windows服务器被入侵,往往需要检索和分析相应的安全日志。除了安全设备,系统自带的日志就是取证的关键材料,但是此类日志数量庞大,需要高效分析windows安全日志,提取出我们想要的有用信息,就显得尤为关键。
Windows日志概述
windows日志记录着Windows系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件,掌握计算机在特定时间的状态,以及了解用户的各种操作行为,为应急响应提供很多关键的信息。
Windows主要有以下三类日志记录系统事件:应用程序日志、系统日志和安全日志。
应用程序日志
包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录文件错误,程序开发人员可以自行决定监视哪些事件。如果某个应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录,也许会有助于你解决问题。
日志的默认位置为:
C:WindowsSystem32winevtLogsApplication.evtx
系统日志
Windows系统组件产生的事件,主要包括驱动程序、系统组件、应用程序错误消息等。
日志的默认位置为:
C:WindowsSystem32winevtLogsSystem.evtx
安全日志
主要记录系统的安全信息,包括成功的登录、退出,不成功的登录,系统文件的创建、删除、更改,需要指明的是安全日志只有系统管理员才可以访问,这也体现了在大型系统中安全的重要性。
日志的默认位置为:
C:WindowsSystem32winevtLogsSecurity.evtx
查看系统日志
事件日志分析—事件类型
Windows事件日志文件本质上是数据库,其中包括有关系统、安全、应用程序的记录。记录的事件包含9个元素:日期/时间、事件类型、用户、计算机、事件ID、来源、类别、描述、数据等信息。
信息:信息事件指应用程序、驱动程序或服务的成功操作的事件。
错误:错误事件指用户应该知道的重要的问题。错误事件通常指功能和数据的丢失。
警告:警告事件指不是直接的、主要的,但是会导致将来问题发生的问题。
失败审核:失败的审核安全登录尝试,例如用户试图访问网络驱动器失败,则该尝试会被作为失败审核事件记录下来。
事件日志分析—登陆类型
登录类型 | 描述 | 说明 |
2 | 交互式登录 | 用户在本地进行登录 |
3 | 网络 | 最常见的情况就是连接到共享文件夹或者共享打印机 |
4 | 批处理 | 通常表明某个计划任务启动 |
5 | 服务 | 每种服务都被配置在某个特定的用户账号下运行 |
7 | 解锁 | 屏保解锁 |
8 | 网络明文 | 登录的密码在网络上通过明文传输的,如FTP |
9 | 新凭证 | 使用带/Netonly参数的RUNAS命令运行一个程序 |
10 | 远程交互 | 通过终端服务、远程桌面或远程协助访问计算机 |
11 | 缓存交互 | 以一个域用户登录而又没有域控制器可用 |
事件日志分析—事件ID
事件ID | 说明 |
4624 | 登录成功 |
4625 | 登录失败 |
4634 | 注销成功 |
4647 | 用户启动的注销 |
4672 | 使用超级用户(如管理员)进行登录 |
4720 | 创建用户 |
6005 | 表示计算机日志服务已启动,如果在事件查看器中发现某日的事件ID号为6005,就说明这天正常启动了windows系统。 |
6006 | 表示事件日志服务已停止,如果没有在事件查看器中发现某日的事件ID为6006的事件,就表示计算机在这天没关机或没有正常关机 |
二、Linux日志收集与分析
Linux系统日志的重要性无需多言,日志对管理员来说,是了解系统运行的主要途径,因此需要对 Linux 日志系统有个详细的了解。
Linux 系统内核和许多程序会产生各种错误信息、告警信息和其他的提示信息,这些各种信息都应该记录到日志文件中,完成这个过程的程序就是 rsyslog,rsyslog 可以根据日志的类别和优先级将日志保存到不同的文件中。
Linux操作系统日志概述
大部分Linux发行版默认的日志守护进程为syslog,位于“/etc/syslog”或者“/etc/syslogd”,默认配置文件为“/etc/syslog.conf”,任何希望生成日志的程序都可以向syslog发送信息。
Linux系统内核和许多程序都会产生各种错误信息、警告信息和其他提示信息都会被写在日志文件中,完成这个过程的程序就是syslog,syslog可以根据日志的类别和优先级将日志保存到不同的文件中,数字级别越小,其优先级别越高,消息也越重要。
查看日志
日志默认存放位置
查看日志配置情况
日志分析—连接符号
连接符号 | 说明 |
* | 代表所有日志等级,比如:“authpriv.*"代表authpriv认证信息服务产生的日志,所有的日志等级都记录。 |
. | 代表只要比后面的等级高的(包含该等级)日志都记录下来。比如:"cron.info"代表cron服务产生的日志,只要日志等级大于等于info级别,就记录。 |
.= | 代表只记录所需等级的日志,其他等级的都不记录。比如:"*.=emerg"代表任何日志服务产生的日志,只要等级是emerg等级就记录。这种用法及少见,了解就好。 |
.! | 代表不等于,也就是除了该等级的日志外,其他等级的日志都记录。 |
日志分析—日志优先级
级别 | 等级名称 | 说明 |
0 | EMERG(紧急) | 导致主机系统不可用 |
1 | ALERT(警告) | 必须马上采取措施解决问题 |
2 | CRIT(严重) | 比较严重的情况 |
3 | ERR(错误) | 运行出现错误 |
4 | WARNING(提醒) | 可能影响系统功能,是需要提醒用户的重要事件 |
5 | NOTICE(注意) | 不会影响正常功能,但是需要注意的事件 |
6 | INFO(信息) | 一般信息 |
7 | DEBUG(调试) | 程序或系统的调试信息 |
日志分析—Linux系统中常见的日志文件说明
日志文件 | 说明 |
/var/log/cron | 记录了系统定时任务相关的日志 |
/var/log/dmesg | 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息 |
/var/log/message | 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件,但由于记录的信息太杂,一般不查看 |
/var/log/btmp | 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看 |
/var/log/lastlog | 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看 |
/var/log/wtmp | 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看 |
/var/log/utmp | 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询 |
/var/log/secure | 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中 |
日志分析技巧
常用的shell命令:
find命令:在目录中查找指定文件
grep命令:在文件中搜寻匹配的行并输出
awk命令:查找文本,输出匹配的内容
sort命令:对文件进行排序
wc命令:统计