网络安全应急响应—-11、日志分析

  • Post author:
  • Post category:其他





一、Windows日志

Windows日志记录着Windows系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件,掌握计算机在特定时间的状态,以及了解用户的各种操作行为,并且包括有关系统、安全、应用程序的记录。

Windows系统之后,日志文件通常分为

系统日志(SysEvent) 、应用程序日志(AppEvent) 和安全日志(SecEvent)

3种:

在这里插入图片描述


系统日志:


记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃及数据。Vista/Win7/Win8/ /Win10/Server 2008/Server 2012默认位置为:

C:WINDOWS\system32\winevt\Logs\System.evtx



应用程序日志:


包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件。Vista/Win7/Win8/ /Win10/ Server 2008/Server 2012默认位置为:

C:\WINDOWS\system32\winevt\Logs\Application.evtx



安全日志:


记录系统的安全审计事件,包含各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、账号管理、策略变更、系统事件。Vista/Win7/Win8/ /Win10/Server 2008/Server 2012默认位置为

C:\WINDOWS\system32\winevt\L .ogs\Security.evtx

安全日志是应急响应中需要重点关注的,可基于安全日志对系统和应用程序日志进行排查。

在日志文件中所有事件只能拥有其中的一个

事件级别

,具体的事件级别如下:

1、信息事件:指应用程序、驱动程序或服务的成功操作事件。

2、警告事件:指不是直接的、主要的,但会导致将来问题发生的事件。如当磁盘空间不足或未找到打印机时,都会记录一个“警告”事件。

3、错误事件:指用户应该知道的重要问题,通常是功能和数据的丢失。如一个服务不能作为系统引导被加载,就会产生一个错误事件。

4、成功审核(Success audit):表示成功的审核安全访问尝试,主要是指安全性日志,包括用户的登录/注销、对象访问、特权使用、账户管理、策略更改、详细跟踪、目录服务访问、账户登录等事件,其中所有成功登录的系统都会被记录为“成功审核”事件。

5、失败审核(Failure audit) :表示失败的审核安全登录尝试,如用户试图访问网络驱动器失败,该尝试就会被作为失败审核事件记录下来。

在这里插入图片描述

不同的事件(EVENT ID) 代表了不同的意义,一些常见的安全事件说明如下表。

事件ID 说明
4624 登录成功
4625 登录失败
4634 注销成功
4647 用户启动的注销
4672 使用超级用户(如管理员)进行登录
4720 创建用户

每个成功登录的事件都会标记一个登录类型,不同登录类型代表不同的方式,具体说明如下表:

登录类型 描述 说明
2 交互式登录(Interactive) 用户在本地进行登录
3 网络( Network) 最常见的情况是连接到共享文件夹或共享打印机
4 批处理( Batch) 通常表明某计划任务启动
5 服务(Service) 每种服务都被配置在某个特定的用户账号下运行
7 解锁(Unlock) 屏保解锁
8 网络明文(Network Cleartext) 登录的密码在网络上是通过明文传输的,如FTP
9 新凭证(New Credentials) 使用带Netonly参数的RUNAS命令运行一个程序
10 远程交互(Remote Interactive) 通过终端服务、远程桌面或远程协助访问计算机
11 缓存交互(Cached Interactive) 以一个域用户登录而又没有域控制器可用


Windows日志分析思路

:攻击者在对系统进行攻击后,可能会在操作系统上添加用户,远程登录后会安装一些木马,这时候我们首先查看是否创建了用户,然后查看该用户是否成功登录,再次查看用户什么时间注销。基于这个时间段,排查系统日志,查看安装了哪些程序。可通过在事件查看器中搜索具体的事件ID,然后对攻击者行为进行判断。



二、Linux日志

目前新版本的Linux系统的日志系统都是rsyslog的,rsyslog是syslog的多线程增强版,其配置信息位于

/etc/rsyslog.conf



syslog主要是用来提供日志记录功能的,Linux系统内核和许多程序都会产生各种错误信息、警告信息和其他的提示信息,而syslog服务就会将这些信息写到日志文件中,方便我们后续查看分析。syslog可以根据日志的类别和优先级将日志保存到不同的文件中,日志的优先级别数字等级越小,其优先级越高,消息也越重要。

日志优先级别 英文单词 中文 说明
级别 英文单词 中文释义 说明
0 EMERG 紧急 导致主机系统不可用
1 ALERT 警告 必须马上采取措施解决问题
2 CRIT 严重 比较严重的情况
3 ERR 错误 运行出现错误
4 WARNING 提醒 可能影响系统功能,是需要提醒用户的重要事件
5 NOTICE 注意 不会影响正常功能,但是需要注意的事件
6 INFO 信息 一般信息
7 DEBUG 调试 程序或系统的调试信息等

在Linux中常见的日志文件,默认配置下,日志文件通常保存在

/var/log

目录下:

在这里插入图片描述

日志文件 说明
/var/log/cron 记录系统定时任务的相关日志
/var/log/cups 记录打印信息的日志
/var/log/dmesg 记录系统在开机时内核自检的信息,也可以使用dmesg命令直接查看
/var/log/mailog 记录邮件信息
/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或者/var/log/auth.log 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,如SSH登录、su切换用户、sudo授权,以及添加用户和修改用户密码都会记录在这个日志文件中,为了方便查阅,可以把内核信息与其他信息分开,单独保存到一个独立的日志文件中。

在应急响应日志排查中,需要重点分析的日志:

/var/run/utmp、/var/log/lastlog、/var/log/wtmp、/var/log/btmp 、/var/log/secure、软件安装日志

等。

1、

/var/run/utmp

日志

记录当前已经登录的用户信息,会随着用户的登录和注销不断变化,只记录当前登录用户的信息。这个文件不能直接使用vi查看,而要使用w、who、users 等命令。

在这里插入图片描述


w命令

:查询utmp文件,并显示当前系统中每个用户和它所运行的进程信息。


who命令

:查询utmp文件,并报告当前登录的每个用户。Who命令的默认输出包括用户名、终端类型、登录日期及远程主机。


users命令

:用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,其用户名将显示相同的次数。

2、

/var/log/lastlog

”日志

记录系统中所有用户最后一次登录时间的日志。这个文件是二进制的,不能直接使用vi查看,而要使用lastlog 命令。

在这里插入图片描述

3、

/var/log/wtmp

日志

永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。这个文件是二进制的,不能直接使用vi查看,而要使用last命令。

在这里插入图片描述

4、

/var/log/btmp

日志

记录错误登录日志。这个文件是二进制的,不能直接使用vi查看,而要使用lastb命令。如果该日志文件过大可以清空。

在这里插入图片描述

5、

/var/log/auth.log

日志

记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,如SSH登录、su切换用户、sudo授权,以及添加用户和修改用户密码都会记录在这个日志文件中,为了方便查阅,可以把内核信息与其他信息分开,单独保存到一个独立的日志文件中。

在这里插入图片描述

6、软件安装日志

在应急响应过程中,软件安装日志也是需要排查的内容,如“/var/log/yum.log或“/var/log/

yum.log-时间”中会显示yum安装的日志,“ /root/install.log”中存储了安装在系统中的软件包

及其版本信息;“/root/ install.log.syslog”中存储了安装过程中留下的事件记录。

7、自带的日志查看程序

在这里插入图片描述

我们在找到相关日志之后,信息量是非常巨大的,此时可以通过关键字的方法定位我们具体需要查找的内容,Linux下主要是利用Shell命令对安全日志进行分析。



三、Web日志

Web日志会记录用户对Web页面的访问操作行为。我们可以从日志中分析出在什么时间、有哪些IP地址访问了网站中的什么资源、访问是否成功等。同时Web日志也记录了攻击者的一些信息,如攻击者IP、攻击语句。通过对日志进行大量的分析就可以追踪溯源。



3.1、IIS中间件日志

IIS它主要用来解析ASP、ASA、CER这3种文件格式的文件,也可结合环境资源包解析PHP等。IIS是一种Web (网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等,不同IIS日志的默认目录不一样,也可自定义。

IIS日 志文件的格式为“ex+年份的末两位数字+月份+日期”,文件后缀是.log,如2022年3月24日的日志生成文件是“ex220324.log”,默认为按天数生成。

IIS每条日志的格式由

data、time、c-ip、cs-method、cs-uri-stem、 s-port、s-ip、cs(User-Agent)、sc-status、sc-bytes、cs-bytes

组成。

date 发出请求时的日期。
time 发出请求时的时间。
c-ip 客户端IP地址。
cs-method 请求中使用的HTTP方法,如GET方法和POST方法。
cs-uri-stem URI资源, 记录作为操作目标的统一资源标识符,即访问的页面文件。
s-port 为服务配置的服务器端口号。
s-ip 服务器的IP地址。
cs(User-Agent) 用户代理,包括客户端浏览器、操作系统等情况。
sc-status 协议状态,记录HTTP状态代码,其中,200表示成功,403表示没有权限,404表示找不到该页面。
sc-bytes 服务器发送的字节数。
cs-bytes 服务器接收的字节数。



3.2、Apache中间件日志

安装Apache后,Apache的配置文件“httpd.conf”中存在着两个可调配的日志文件,这两个日志文件分别是访问日志

access_log/access.log

和错误日志

error_log/error.log

。如果使用SSL服务,则可能存在

ssl_access_log、ssl_error_log、ssl_request_log

这3种日志文件。

日志文件的路径根据安装方式不同,其位置也不一样,一般是在Apache安装目录的logs子目录中,日志文件路径可根据实际安装情况在Apache的配置文件中进行查找。

在应急响应中,重点关注的是访问日志,访问日志

access_ log

记录了所有对Web服务器的访问活动。

示例如下:


127.0.0.1 - - [08/Jun/2021:11:43:08 +0800] "GET /sqli-labs/index.html_files/freemind2html.css HTTP/1.1" 200 1335

参数 说明
远程主机IP 表示访问网站的是谁。
空白(E- mail) 为了避免用户的邮箱被垃圾邮件骚扰,使用–取代。
空白(登录名) 用于记录浏览者进行身份验证时提供的名字。
请求时间 用方括号包围,采用“公用日志格式”或“标准英文格式”。时间信息最后的+0800表示服务器所处时区位于UTC之后的8小时。
方法资源协议 表示服务器收到的是一个什么样的请求。该项信息的典型格式是“METHOD RESOURCE PROTOCOL”。
状态代码 请求是否成功,或者遇到了什么样的错误。大多数时候,这项值为200,它表示服务器已经成功响应浏览器的请求。
发送字节数 发送给客户端的总字节数,可说明传输是否被打断(该数值是否和文件的大小相同)。



3.3、Tomcat中间件日志

Tomcat对应日志的配置文件是Tomcat目录下的

/conf/logging.properties

。Tomcat默认有四类日志,分别是

catalina、localhost、 manager、 host-manager

。 Tomcat的日志类别也可以进行自定义。

catalina.out 表示标准输出(stdout) 和标准出错(stderr) ,所有输出到这两个位置时都会进入catalina.out,这里包含Tomcat运行自己输出的日志,以及应用里向console输出的日志。
catalina.yyyy-MM-dd.log 表示Tomcat自 己运行的一些日志,这些日志还会输出到catalina.out,但是应用向console输出的日志就不会输出到这个日志文件中,它包含Tomcat 的启动和暂停时的运行日志,和catalina.out的内容不一样。
localhost.yyyy-MM-dd.log 主要应用初始化(listener、 filter、 servlet) 未处理的异常后被Tomcat捕获而输出的日志。它也是包含Tomcat的启动和暂停的运行日志,但它没有catalina.yyy-MM-dd.log日志的记录全,只是部分日志。
localhost_access_log.yyy-MM-dd.txt 是访问Tomcat的日志,对请求地址、路径、时间、协议和状态码都有记录。
host-manager.yyy-MM-dd.log 存放Tomcat自带manager项目的日志信息。
manager.yyyy-MM-dd.log: Tomcat manager项目专有的日志文件。



3.4、Weblogic

在默认配置情况下,WebLogic会有3种日志,分别是

access log、Server log和domain log



WebLogic 8.x和WebLogic 9及其以后版本目录区别如下:

WebLogic 8.x版本:

access log在:

$MW_HOME\user_projects\domains\<domain_name>\<server_name>\access.log"



server log在:

$MW_HOME\user_ projects\domains\<domain_name>\<server_ name>\<server_name>.log"

;

domain logz在:

$MW_HOME\user_projects\domains\<domain_name>\<domain_name>.log

WebLogic 9及其以后版本:

access log在:

$MW_HOME\user_projects\domains\<domain_name>\servers\<server_name>\logs\access.log


server log在:

$MW_HOME\user_projects\domains\<domain_name>\servers\<server_name>\logs\<server_name>.log


domain logz在:

$MW_HOME\user_projects\domains\<domain_name>\servers\<adminserver_name>\logs\<domain_name>.log

$MW_HOME WebLogic的安装目录;
<domain_name> 域的实际名称,是在创建域时指定的;
<server_ name> 是Server的实际名称,是在创建Server时指定的;
<adminserver_ name> 是管理服务器的实际名称,是在创建Admin Server时指定的。



3.5、Nginx中间件日志

Nginx中间件日志分为两种:访问日志和错误日志

access.log、error.log

,默认情况下,

access.log

日志会放在Nginx安装路径的logs目录中,如果通过yum源安装Nginx,那么

access.log

的默认路径为

/var/log/nginx/access.log

。也可以自定义日志文件的路径。



版权声明:本文为sycamorelg原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。