简介
事件日志发展至今,在Windows网络操作系统,除了应用程序日志,安全日志、系统日志、Scheduler服务日志,还有网络应用相关的 FTP日志、WWW日志、DNS服务器日志。
事件日志可记录系统中硬件、软件和系统问题的信息,还可监视系统中发生的事件,记录敏感操作关键信息,有助于提高系统的网络安全性,帮助系统安全工作人员找到安全事件的根本原因。
事件查看器
事件查看器(eventvwr.msc)由微软开发,内置于Microsoft Windows NT操作系统中的组件。它让用户能够透过系统管理员的身份来查看所使用或远程电脑的所有事件。Windows Vista中的事件查看器则重新设计过。
Windows主要有以下三类日志记录系统事件:应用程序日志、系统日志和安全日志。
前两者,存储着故障排除信息,对于系统管理员更为有用;后者,记录着事件审计信息,包括用户验证(登录、远程访问等)和特定用户在认证后对系统做了什么,对于调查人员而言,更有帮助。
1、系统日志
系统日志记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据丢失错误等。系统日志中记录的时间类型由Windows NT/2000操作系统预先定义。
默认位置: %SystemRoot%\System32\Winevt\Logs\System.evtx
2、应用程序日志
应用程序日志包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录文件错误,程序开发人员可以自行决定监视哪些事件。如果某个应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录,也许会有助于你解决问题。
默认位置:%SystemRoot%\System32\Winevt\Logs\Application.evtx
3、安全日志
安全日志记录系统的安全审计事件,包含各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、帐号管理、策略变更、系统事件。安全日志也是调查取证中最常用到的日志。默认设置下,安全性日志是关闭的,管理员可以使用组策略来启动安全性日志,或者在注册表中设置审核策略,以便当安全性日志满后使系统停止响应。默认位置:%SystemRoot%\System32\Winevt\Logs\Security.evtx
4、审核设置建议
从Windows 10 版本1809开始,默认启用审核登录。在过往Windows版本中,默认仅启用成功。
Windows Server 2016,Windows Server 2012 R2,Windows Server 2012,Windows Server 2008 R2,在默认状态下并未启用 ,仅记录一些简单的日志,日志默认大小20M。建议开启审核策略,若日后系统出现故障、安全事故则可查看系统的日志文件,排除故障,追查入侵者信息等。
更多细节可见:
https://docs.microsoft.com/zh-cn/windows-server/identity/ad-ds/plan/security-best-practices/audit-policy-recommendations
5、启用审核配置
Windows Server 2008系统的审核功能在默认状态下并没有启用。
系统默认审核策略,如下图所示:
6、合理的日志属性
在部分基线检查中要求保留90天以上系统日志,这些日志可为日后系统故障排除故障、安全事故追查入侵者提供依据。
系统默认日志属性,如下图所示:
日志分析
通过分析日志寻找入侵痕迹工作量较大,掌握必要的技巧较为关键。过滤掉许多毫无价值的数据泥潭,有助于快速定位入侵事件。首要的过滤依据是EVENT ID,例如黑客对系统进行RDP爆破,系统将在安全日志里记录探测者探测时所用的IP、时间、用户名等,在安全日志中以EVENT ID=4625进行查看事件属性。
查看事件属性,效果如下图所示:
常用作快速定位的事件ID还有许多,以下表格是常用的事件说明:
每个成功登录的事件都会标记一个登录类型,不同登录类型代表不同的方式:
更多细节可见:
https://support.microsoft.com/zh-cn/help/977519/description-of-security-events-in-windows-7-and-in-windows-server-2008
快速提取关键事件(时间倒叙)可用powershell命令:Get-WinEvent -FilterHashtable @{LogName='Security';ID='4624'} 以及 Get-WinEvent -FilterHashtable @{LogName='Security'}
快速提取关键事件,效果如下图所示:
相关工具
1、Log Parser
下载地址:
https://www.microsoft.com/en-us/download/details.aspx?id=24659
使用示例:
https://mlichtenberg.wordpress.com/2011/02/03/log-parser-rocks-more-than-50-examples/
Log Parser由微软公司出品,其功能强大,使用简单,可以分析基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件,以及Microsoft Windows操作系统的事件日志、注册表、文件系统、Active Directory。
Log Parser 使用 SQL语法查询分析日志,甚至可以把分析结果以各种图表的形式展现出来。
- 基本查询结构
Logparser.exe –i:EVT –o:DATAGRID "SELECT * FROM .\xx.evtx"
- 分析日志
(1)查询登录成功的事件
登录成功的所有事件 LogParser.exe -i:EVT –o:DATAGRID "SELECT recordnumber,timegenerated,eventid,Computername,EXTRACT_TOKEN(Message,38,' ') as Loginip FROM .\Security1.evtx where EventID=4624" 指定登录时间范围的事件: LogParser.exe -i:EVT –o:DATAGRID "SELECT recordnumber,timegenerated,eventid,Computername,EXTRACT_TOKEN(Message,38,' ') as Loginip FROM .\Security1.evtx where TimeGenerated>'2021-04-25 00:00:01' and TimeGenerated<'2021-04-30 00:00:01' and EventID=4624" 提取登录成功的用户名和IP: LogParser.exe -i:EVT –o:DATAGRID "SELECT EXTRACT_TOKEN(Message,13,' ') as EventType,TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as Username,EXTRACT_TOKEN(Message,38,' ') as Loginip FROM .\Security1.evtx where EventID=4624"
查询登录成功的事件,效果如下图所示:
(2)查询登录失败的事件
登录失败的所有事件: LogParser.exe -i:EVT –o:DATAGRID "SELECT recordnumber,timegenerated,eventid,Computername,EXTRACT_TOKEN(Message,38,' ') as Loginip FROM .\Security1.evtx where EventID=4625" 提取登录失败用户名进行聚合统计: LogParser.exe -i:EVT "SELECT EXTRACT_TOKEN(Message,13,' ') as EventType,EXTRACT_TOKEN(Message,19,' ') as user,count(EXTRACT_TOKEN(Message,19,' ')) as Times,EXTRACT_TOKEN(Message,39,' ') as Loginip FROM .\Security1.evtx where EventID=4625 GROUP BY Message"
聚合统计登陆失败事件,效果如下图所示:
(3)系统历史开关机记录
LogParser.exe -i:EVT –o:DATAGRID "SELECT TimeGenerated,EventID,Message FROM .\System1.evtx where EventID=6005 or EventID=6006"
查询开关机事件,效果如下图所示:
2、LogParser Lizard
日志分析蜥蜴(LogParser Lizard)带图形界面,其内部封装有logParser命令,这使得操作更为简单,同时集成了
Infragistics.UltraChart.Core.v4.3、
Infragistics.Excel.v4.3.dll等,查询结果可以图表或EXCEL格式展示。与logParser一样,Log Parser Lizard可对服务器日志,网站日志等进行分析,支持基于文本的日志文件,XML文件等内容。
日志分析蜥蜴下载地址:
https://lizard-labs.com/log_parser_lizard.aspx
依赖包Framework 4 .5,下载地址:
https://www.microsoft.com/en-us/download/details.aspx?id=42642
查询登录成功的事件,效果如下图所示:
3、Event Log Explorer
Event Log Explorer是一款非常好用的Windows日志分析工具。可用于查看,监视和分析跟事件记录,包括安全,系统,应用程序和其他微软Windows 的记录被记载的事件,其强大的过滤功能可以快速的过滤出有价值的信息。
Event Log Explorer下载地址:
https://event-log-explorer.en.softonic.com/
查询登录成功的事件,效果如下图所示:
情景分析
1、BadUSB
在一些近源渗透案例中,攻击者使用BadUSB对公司员工的BYOD进行攻击,对这类攻击进行追踪需要着重关注硬件设备安装到系统中的时间,展开追逐前,确保审核策略已正确配置。
有几个事件ID需要重点关注:
查询在系统中历史安装USB设备事件,效果如下图所示:
2、WIFI钓鱼
在一些近源渗透案例中,攻击者使用WIFI伪造手段对办公区域进行钓鱼攻击,对这类攻击进行追踪需要着重分析系统访问过哪些关联的无线网络接入点及位置,展开追逐前,确保审核策略已正确配置。
有几个事件ID需要重点关注:
查询在系统中历史WIFI连接记录,效果如下图所示:
3、勒索病毒
在一些勒索病毒案例中,攻击者投放蠕虫病毒对局域网主机进行RDP爆破,进而横向移动,对这类攻击进行追踪需要着重分析系统登陆事件,展开追逐前,确保审核策略已正确配置。
有几个事件ID需要重点关注:
登录类型为10表示登陆成功,注意比对登录成功时间点与勒索病毒加密文件的时间点:
部分勒索病毒利用P**ec进行内网横移,如密码爆破成功,此类P**ESVC服务将安装,对应将生成Event 4697和Event 7045两种事件日志,其中Event 4697日志记录可能包含账号信息。
总 结
本篇以Windows日志为中心,从应急工程师角度记录了一些较为常用的安全审核配置和应急响应工具使用。应急响应工作具有突发性、紧迫性、不确定性。目前已有不少应急工程师将应急响应知识整理成思维导图,对于经验丰富的应急响应工程师而言是有利工具,但是对于初学者而言,过度依赖比较有害。
对于经验丰富的应急响应工程师,思维导图可用来发散思维,让工作由繁至简。但注意到,身边存在许多应急响应工程师将思维导图用作笔记用途,所记录的内容往往是一些技巧点,导致每次应急任务后,只收获只言片语的技巧,这习惯不利于职业长远发展。
学习提升最重要的不是记录了什么,而是自己的思考,因此建议初学者尝试写下一些完整的文字,记录应急响应过程中从外界获得与我们自身的知识结构产生思维火花的东西,这可以帮助我们形成独立思考,不断加深应急响应、溯源工作深度。