1 Linux日志分析
日志是Linux 安全结构中的一个重要内容,是提供攻击发生的唯一真实证据。Linux 中日志包括以下几类:登录时间日志子系统、进程统计日志子系统、错误日志子系统等。
- 登录时间日志子系统:
登录时间通常会与多个程序的执行产生关联,一般情况下,将对应的记录写到/var/log/wtmp 和/var/run/utmp 中。为了使用系统管理员能够有效地跟踪谁登录过系统,一旦触发 login 等程序,就会对 wtmp 和 utmp 文件进行相应的更新。
- 进程统计日志子系统:
主要由系统内核实现完成记录操作。当一个进程终止时,系统就自动记录该进程,往进程统计文件或中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。.
- 错误日志子系统:
其主要由系统进程 syslogd(以及替换版本 rsyslogd)实现,各个应用系统(FTP、Samba 等)的守护进程、用户程序、系统内核来自动利用 syslog 向/var/log/secure中添加纪录,用来记录系统错误日志。
- 审计子系统:
提供了一种记录系统安全信息的方法,为系统管理员在用户违反系统安全法则时提供及时的警告信息。在用户空间,审计系统由 auditd、ausearch 等应用程序组成。审计后台 auditd 应用程序通过 netlink 机制从内核中接收审计消息,然后,通过一个工作线程将审计消息写入到审计日志文件中,其中,还有一部分消息通过消息分发后台进程dispatcher调用 syslog 写入日志系统。
1.1 Message日志
该日志文件是许多进程日志文件的汇总,记录有运行信息和认证信息,从该文件可以看出任何入侵企图或成功的入侵。RedHat和CentOs的messages日志位置为 /var/log/messages。
1.2 cron日志
该日志文件记录crontab守护进程crond所派生的子进程的动作。 RedHat和CentOs的cron 日志默认记录在/var/log/cron中。
CMD 的一个动作是 cron 派生出一个调度进程的常见情况。REPLACE(替换)动作记录用户对它的 cron 文件的更新,该文件列出了要周期性执行的任务调度。RELOAD动作在REPLACE动作后不久发生,这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存。该文件可能会查到一些反常的情况。比如攻击者留存的定时任务等。
1.3 secure 日志
Linux的ssh登录日志会存储于/var/log/secure 中,若日志中出现连续大量的登录错误信息,则可能意味着远程主机在尝试破解 ssh 登录口令 。如下,192.168.27.80在不断尝试登陆root用户,且连续登陆失败:
su的尝试访问失败日志:常见于越权访问里
PS:在Ubuntu中,有个日志文件叫做/var/log/auth.log,这里可以一条命令塞选ssh登陆ip。
grep 'sshd' /var/log/auth.log* |grep 'Accepted' | grep -oE '\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3])\>(\.\<([0-9]|[0-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>){2}\.\<([1-9]|[0-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4])\>' | sort | uniq
1.4 last日志
last命令读取/var/log/wtmp文件,该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
在 Linux 还中还存在lastlog 命令,用于查看系统内所有帐户最后一次登录信息,该命令读取/var/log/lastlog内容。
根据UID排序显示登录名、端口号、登陆地址和上次登录时间:
PS:如果某用户从来没有登录过,就显示为”**Never logged in**”。系统账户诸如 bin、daemon、adm、uucp、mail 等决不应该登录,如果发现这些账户已经登录,就说明系统可能已经被入侵了。
1.5 shell日志
Bash 日志存储于用户目录的.bash_history文件中,有些攻击者 SSH 登陆进来之后可能会执行命令,所以该日志可能会记录下执行的命令。该日志存储条目数量与 shell 变量$HISTSIZE 有关。
1.6 其他日志
- /var/log/boot.log
该文件记录了系统在引导过程中发生的事件,就是 Linux系统开机自检过程显示的信息。
- /var/log/syslog
默认 RedHat Linux 不生成该日志文件,但可以配置/etc/syslog.conf让系统生成该日志文件。
- /var/run/utmp
该日志文件记录有关当前登录的每个用户的信息。因此这个文件会随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录。系统中需要查询当前用户状态的程序,如who、 w、 users、finger等就需要访问这个文件。
但是,该日志文件并不能包括所有精确的信息,因为某些突发错误会终止用户登录会话,而系统没有及时更新 utmp 记录,因此该日志文件的记录不是百分之百值得信赖的。
- /var/log/xferlog
该日志文件记录 FTP 会话,可以显示出用户向 FTP服务器或从服务器拷贝了什么文件
2 Windows日志分析
Windows的日志文件主要是三大块,分别是:
应用程序日志
安全日志
系统日志
setup日志(server 2003之后加入)
这些日志在 server 2003(含)以前,以evt文件形式存储在%systemroot%\system32\config 目录(%SystemRoot%为系统环境变量,默认值为C:\WINDOWS)。但是在server 2003 以后存储的位置是在%systemroot%\System32\winevt\Logs目录下。
PS:系统内置的三个核心日志文件(System,Security和 Application)默认大小均为20480KB(20MB),记录事件数据超过 20MB时,默认系统将优先覆盖过期的日志记录。其它应用程序及服务日志默认最大为1024KB,超过最大限制也优先覆盖过期的日志记录。
点击“开始→设置→控制面板→管理工具→事件查看器”,或者我的电脑右键点击【管理】,可以查看这些日志。
事件类型一共有五种:
1. 信息(Information)
信息事件指应用程序、驱动程序或服务的成功操作的事件。
2. 警告(Warning)
警告事件指不是直接的、主要的,但是会导致将来问题发生的问题。例如,当磁盘空间不足或未找到打印机时,都会记录一个“警告”事件。
3. 错误(Error)
错误事件指用户应该知道的重要的问题。错误事件通常指功能和数据的丢失。例如,如果一个服务不能作为系统引导被加载,那么它会产生一个错误事件。
4. 成功审核(Success audit)
成功的审核安全访问尝试,主要是指安全性日志,这里记录着用户登录/注销、对象访问、特权使用、账户管理、策略更改、详细跟踪、目录服务访问、账户登录等事件,例如所有的成功登录系统都会被记录为“ 成功审核”事件。
5. 失败审核(Failure audit)
失败的审核安全登录尝试,例如用户试图访问网络驱动器失败,则该尝试会被作为失败审核事件记录下来。
2.1 应用程序日志
应用程序日志包含操作系统安装的应用程序软件相关的事件。事件包括了错误、警告及任何应用程序需要报告的信息,应用程序开发人员可以决定记录哪些信息。然后开发人员可以利用这些日志可判断哪些程序运行错误以及错误内容
2.2 安全日志
安全日志包含安全性相关的事件,如用户权限变更,登录及注销,文件及文件夹访问,打印等信息。
事件ID--事件描述(部分)
- 1102 清理审计日志
- 4624 账号成功登录
- 4625 账号登录失败
- 4768 Kerberos身份验证(TGT 请求)
- 4769 Kerberos服务票证请求
- 4776 NTLM身份验证
- 4672 授予特殊权限
- 4720 创建用户
- 4726 删除用户
- 4728 将成员添加到启用安全的全局组中
- 4729 将成员从安全的全局组中移除
- 4732 将成员添加到启用安全的本地组中
- 4733 将成员从启用安全的本地组中移除
- 4756 将成员添加到启用安全的通用组中
- 4757 将成员从启用安全的通用组中移除
- 4719 系统审计策略修改
登陆类型--描述
- 2 交互式登录(用户从控制台登录)
- 3 网络(例如:通过net use,访问共享网络)
- 4 批处理(为批处理程序保留)
- 5 服务启动(服务登录)
- 6 不支持
- 7 解锁(带密码保护的屏幕保护程序的无人值班工作站)
- 8 网络明文(IIS 服务器登录验证)
- 10 远程交互(终端服务,远程桌面,远程辅助)
- 11 缓存域证书登录
从日志中可以看到登陆的详细信息:登陆时间、用户、源网络地址等。如果出现大规模的登陆失败,且登录类型为 3 的登录尝试,则很可能意味着有用户在远程尝试口令破解,应特别小心。
Windows 默认情况下没有额外的系统启动日志或相关记录程序,因此,需依靠一些服务来判断系统的系统,而其中 event log 服务是最好的参考标志,event log 服务的启动和停止就意味着Windows系统的启动和停止。
2.3 系统日志
系统日志包含系统进程,设备磁盘活动等。事件记录了设备驱动无法正常启动或停止,硬件失败,重复IP地址,系统进程的启动,停止及暂停等行为。
若系统中突然出现大量 IP地址冲突的日志,则可判断网络中存在ARP欺骗攻击。
还可以查看一些系统相关的关键日志和错误日志:
2.4 setup日志
该日志主要记录一些补丁安装日志。
部分恶意用户利用漏洞入侵后,很可能会使用Windows Update对系统进行补丁安装,以防止其他用户入侵,这样,在系统中就会残留有相关的日志:
3 总结
以上内容是基础安全日志的简单介绍,后续会补充详细。
爱家人,爱生活,爱设计,爱编程,拥抱精彩人生!
1 Linux日志分析
日志是Linux 安全结构中的一个重要内容,是提供攻击发生的唯一真实证据。Linux 中日志包括以下几类:登录时间日志子系统、进程统计日志子系统、错误日志子系统等。
- 登录时间日志子系统:
登录时间通常会与多个程序的执行产生关联,一般情况下,将对应的记录写到/var/log/wtmp 和/var/run/utmp 中。为了使用系统管理员能够有效地跟踪谁登录过系统,一旦触发 login 等程序,就会对 wtmp 和 utmp 文件进行相应的更新。
- 进程统计日志子系统:
主要由系统内核实现完成记录操作。当一个进程终止时,系统就自动记录该进程,往进程统计文件或中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。.
- 错误日志子系统:
其主要由系统进程 syslogd(以及替换版本 rsyslogd)实现,各个应用系统(FTP、Samba 等)的守护进程、用户程序、系统内核来自动利用 syslog 向/var/log/secure中添加纪录,用来记录系统错误日志。
- 审计子系统:
提供了一种记录系统安全信息的方法,为系统管理员在用户违反系统安全法则时提供及时的警告信息。在用户空间,审计系统由 auditd、ausearch 等应用程序组成。审计后台 auditd 应用程序通过 netlink 机制从内核中接收审计消息,然后,通过一个工作线程将审计消息写入到审计日志文件中,其中,还有一部分消息通过消息分发后台进程dispatcher调用 syslog 写入日志系统。
1.1 Message日志
该日志文件是许多进程日志文件的汇总,记录有运行信息和认证信息,从该文件可以看出任何入侵企图或成功的入侵。RedHat和CentOs的messages日志位置为 /var/log/messages。
1.2 cron日志
该日志文件记录crontab守护进程crond所派生的子进程的动作。 RedHat和CentOs的cron 日志默认记录在/var/log/cron中。
CMD 的一个动作是 cron 派生出一个调度进程的常见情况。REPLACE(替换)动作记录用户对它的 cron 文件的更新,该文件列出了要周期性执行的任务调度。RELOAD动作在REPLACE动作后不久发生,这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存。该文件可能会查到一些反常的情况。比如攻击者留存的定时任务等。
1.3 secure 日志
Linux的ssh登录日志会存储于/var/log/secure 中,若日志中出现连续大量的登录错误信息,则可能意味着远程主机在尝试破解 ssh 登录口令 。如下,192.168.27.80在不断尝试登陆root用户,且连续登陆失败:
su的尝试访问失败日志:常见于越权访问里
PS:在Ubuntu中,有个日志文件叫做/var/log/auth.log,这里可以一条命令塞选ssh登陆ip。
grep 'sshd' /var/log/auth.log* |grep 'Accepted' | grep -oE '\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3])\>(\.\<([0-9]|[0-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>){2}\.\<([1-9]|[0-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4])\>' | sort | uniq
1.4 last日志
last命令读取/var/log/wtmp文件,该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
在 Linux 还中还存在lastlog 命令,用于查看系统内所有帐户最后一次登录信息,该命令读取/var/log/lastlog内容。
根据UID排序显示登录名、端口号、登陆地址和上次登录时间:
PS:如果某用户从来没有登录过,就显示为”**Never logged in**”。系统账户诸如 bin、daemon、adm、uucp、mail 等决不应该登录,如果发现这些账户已经登录,就说明系统可能已经被入侵了。
1.5 shell日志
Bash 日志存储于用户目录的.bash_history文件中,有些攻击者 SSH 登陆进来之后可能会执行命令,所以该日志可能会记录下执行的命令。该日志存储条目数量与 shell 变量$HISTSIZE 有关。
1.6 其他日志
- /var/log/boot.log
该文件记录了系统在引导过程中发生的事件,就是 Linux系统开机自检过程显示的信息。
- /var/log/syslog
默认 RedHat Linux 不生成该日志文件,但可以配置/etc/syslog.conf让系统生成该日志文件。
- /var/run/utmp
该日志文件记录有关当前登录的每个用户的信息。因此这个文件会随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录。系统中需要查询当前用户状态的程序,如who、 w、 users、finger等就需要访问这个文件。
但是,该日志文件并不能包括所有精确的信息,因为某些突发错误会终止用户登录会话,而系统没有及时更新 utmp 记录,因此该日志文件的记录不是百分之百值得信赖的。
- /var/log/xferlog
该日志文件记录 FTP 会话,可以显示出用户向 FTP服务器或从服务器拷贝了什么文件
2 Windows日志分析
Windows的日志文件主要是三大块,分别是:
应用程序日志
安全日志
系统日志
setup日志(server 2003之后加入)
这些日志在 server 2003(含)以前,以evt文件形式存储在%systemroot%\system32\config 目录(%SystemRoot%为系统环境变量,默认值为C:\WINDOWS)。但是在server 2003 以后存储的位置是在%systemroot%\System32\winevt\Logs目录下。
PS:系统内置的三个核心日志文件(System,Security和 Application)默认大小均为20480KB(20MB),记录事件数据超过 20MB时,默认系统将优先覆盖过期的日志记录。其它应用程序及服务日志默认最大为1024KB,超过最大限制也优先覆盖过期的日志记录。
点击“开始→设置→控制面板→管理工具→事件查看器”,或者我的电脑右键点击【管理】,可以查看这些日志。
事件类型一共有五种:
1. 信息(Information)
信息事件指应用程序、驱动程序或服务的成功操作的事件。
2. 警告(Warning)
警告事件指不是直接的、主要的,但是会导致将来问题发生的问题。例如,当磁盘空间不足或未找到打印机时,都会记录一个“警告”事件。
3. 错误(Error)
错误事件指用户应该知道的重要的问题。错误事件通常指功能和数据的丢失。例如,如果一个服务不能作为系统引导被加载,那么它会产生一个错误事件。
4. 成功审核(Success audit)
成功的审核安全访问尝试,主要是指安全性日志,这里记录着用户登录/注销、对象访问、特权使用、账户管理、策略更改、详细跟踪、目录服务访问、账户登录等事件,例如所有的成功登录系统都会被记录为“ 成功审核”事件。
5. 失败审核(Failure audit)
失败的审核安全登录尝试,例如用户试图访问网络驱动器失败,则该尝试会被作为失败审核事件记录下来。
2.1 应用程序日志
应用程序日志包含操作系统安装的应用程序软件相关的事件。事件包括了错误、警告及任何应用程序需要报告的信息,应用程序开发人员可以决定记录哪些信息。然后开发人员可以利用这些日志可判断哪些程序运行错误以及错误内容
2.2 安全日志
安全日志包含安全性相关的事件,如用户权限变更,登录及注销,文件及文件夹访问,打印等信息。
事件ID--事件描述(部分)
- 1102 清理审计日志
- 4624 账号成功登录
- 4625 账号登录失败
- 4768 Kerberos身份验证(TGT 请求)
- 4769 Kerberos服务票证请求
- 4776 NTLM身份验证
- 4672 授予特殊权限
- 4720 创建用户
- 4726 删除用户
- 4728 将成员添加到启用安全的全局组中
- 4729 将成员从安全的全局组中移除
- 4732 将成员添加到启用安全的本地组中
- 4733 将成员从启用安全的本地组中移除
- 4756 将成员添加到启用安全的通用组中
- 4757 将成员从启用安全的通用组中移除
- 4719 系统审计策略修改
登陆类型--描述
- 2 交互式登录(用户从控制台登录)
- 3 网络(例如:通过net use,访问共享网络)
- 4 批处理(为批处理程序保留)
- 5 服务启动(服务登录)
- 6 不支持
- 7 解锁(带密码保护的屏幕保护程序的无人值班工作站)
- 8 网络明文(IIS 服务器登录验证)
- 10 远程交互(终端服务,远程桌面,远程辅助)
- 11 缓存域证书登录
从日志中可以看到登陆的详细信息:登陆时间、用户、源网络地址等。如果出现大规模的登陆失败,且登录类型为 3 的登录尝试,则很可能意味着有用户在远程尝试口令破解,应特别小心。
Windows 默认情况下没有额外的系统启动日志或相关记录程序,因此,需依靠一些服务来判断系统的系统,而其中 event log 服务是最好的参考标志,event log 服务的启动和停止就意味着Windows系统的启动和停止。
2.3 系统日志
系统日志包含系统进程,设备磁盘活动等。事件记录了设备驱动无法正常启动或停止,硬件失败,重复IP地址,系统进程的启动,停止及暂停等行为。
若系统中突然出现大量 IP地址冲突的日志,则可判断网络中存在ARP欺骗攻击。
还可以查看一些系统相关的关键日志和错误日志:
2.4 setup日志
该日志主要记录一些补丁安装日志。
部分恶意用户利用漏洞入侵后,很可能会使用Windows Update对系统进行补丁安装,以防止其他用户入侵,这样,在系统中就会残留有相关的日志:
3 总结
以上内容是基础安全日志的简单介绍,后续会补充详细。
爱家人,爱生活,爱设计,爱编程,拥抱精彩人生!