巧用日志加固Windows 服务器
2020-06-22刘景云
刘景云
根据对系统日志的分析,系统管理人员可以准确了解系统各个方面的状况,及时发现和解决潜在的问题,让系统运转得更加顺畅。当不法用户对Windows服务器进行渗透时,系统就会在日志中记录下相关信息。对于管理员来说,通过对系统日志进行深入分析,就可以发现和洞察其活动踪迹,及时发现系统安全配置上的不足之处,采取针对性的措施提高系统安全性。
深入了解Windows日志
Windows日志可以根据管理员的配置信息,将特定的事件忠实完整地记录保存下来。因此,日志对其系统安全的重要性是不言而喻的。对于经验丰富的管理员来说,通过对日志的分析,可以对系统的安全状况了如指掌。在Windows Server 2012中运行事件查看器这一工具,可以全面收集和了解关于硬件、软件和系统配置安全管理有关的信息。
点击“Win+R”键,执行“eventvwr”命令,就可以打开查看日志内容(图1)。不管是哪个版本的Windows,都至少可以看到应用程序日志、安全性日志、系统日志三类日志信息。应用程序日志包含由应用程序或者系统程序记录的事件。例如,SQL Server数据库程序会在应用程序日志中记录文件错误信息等。安全性日志记录的是诸如有效或者无效的登录尝试等事件,以及记录与资源管理相关的事件,例如创建、打开删除文件或其他对象。
利用相关的管理程序,可以设定在安全日志中记录哪些事件。例如,开启了登录审核后,登录系统的尝试将被记录在安全日志中。系统日志包含Windows系统组件记录的事件,例如,在启动过程中加载驱动程序或者其他组件失败后,这些信息就会被记录在系统日志中。实际上,在默认情况下,日志记录的内容并不全面,一些非常重要的安全性监视项目并没有激活,这样虽然可以节省系统资源,但是对提高安全性不利。
运行“gpedit.msc”程序,在组策略编辑器窗口左侧选择“计算机配置→Windows设置→安全设置→本地策略→审核策略”项,在右侧窗口中可以对多种审核策略进行配置(图2)。例如双击“审核账户登录事件”项,在弹出窗口(图3)中选择“成功”和“失败”项。这样,所有和登录有关的事件都会被记录下来。当然,如果激活的审核策略太多的话,就会生成大量的日志信息,反而对找到有用的信息不利。一般来说,激活“审核账户登录事件”和“审核策略更改”两项策略就可以了。
既然日志如此重要,那么日志文件保存在什么位置呢?查看的方法很简单,在事件查看器窗口左侧选择“应用程序”项,在其右键菜单上点击“属性”项,在弹出窗口中的“日志路径”栏中显示其具体文件存储路径(图4),例如“%SystemRoot%\System32\Winevt\Logs\Application.evtx”。同样的,可以查看安全性日志的存储路径“%Systemroot%\system32\winevt\logs\Security.evtx”,系统日志的存储路径“%Systemroot%\system32\winevt\logs\System.evtx”。
如果安装有IIS组件,可以运行“inetmgr”命令,在Internet信息服务窗口中选择网站名,在窗口中部选择“日志”项,在打开窗口中的“目录”栏中显示其日志文件路径信息(图5),例如默认为“%SystemDrive%\inetpub\logs\LogFiles”。当然,您也可以根据需要更改上述日志文件的存储位置。在“格式”栏中点击“选择字段”按钮,在弹出窗口中的“扩展属性”面板中选择在IIS日志中应该记录的内容,默认包括客户端IP地址、方法、URI资源、协议状态、时间等。在一般情况下,这些记录信息可以满足需要,但是为了获得更多的信息,最好根据实际需要添加更多的记录内容(图6)。
实例分析,洞察系统状态
在实际工作中,需要针对具体情况,对日志进行有效的分析,来提高系统的安全性。例如,单位的Web服务器上安装有IIS组件、FTP服务、MS SQL Server数据库,以及公司官网和论坛等网站。当其被不法访问者盯上后,在其对服务器进行探测和渗透时,其行踪已经处于日志的监控之中。当管理员对系统进行巡查检测时,就可以通过日志信息发现端倪。
管理员在事件查看器窗口左侧选择“安全性”项,在右侧窗口发现了可疑的审核日志,在其详细信息窗口中的“来源”栏中显示“MSFTPSVC”字样,表示其来自FTP服务模块。在“描述”栏中显示登录失败信息,连接者使用了未知的用户名和错误的密码,而且显示其使用的FTP账户名为“admin”。根据这些信息,不难看出非法访问者使用了某些FTP破解工具,对IIS中的FTP服务进行检测,每次测试一个账户和密码。因为是不停的测试,每次破译都会在日志中留下一条记录。
打开“C:\inetpub\logs\LogFiles”目录,在其中可以找到和FTP相关的日志文件,可以查看到诸如“#Date: 2019-05-07 06:34:23”“#Fields: time c-ip cs-method cs-uri-stem sc-status”“01:34:23 x.x.x.x [1]USER administrator 331”“01:34:30 x.x.x.x [1]PASS - 530”等内容。可以看出,不法用户利用字典,对FTP服务进行账户和密码的猜测,如果密码设置得比较简单,就很容易被其破解。
在默认情况下,当不法用户使用扫描工具对Web服務器进行漏洞检测时,都会在IIS日志中留下痕迹。打开日志存储路径(例如“%SystemDrive%\inetpub\logs\LogFiles”),找到与对应日志相符的日志文件(例如“ex190507.log”,说明其采用的是W3C扩充格式,在2019年5月7日记录下的日志。使用记事本将其打开后,可以查阅其内容,发现了诸如“#Date: 2019-05-06 09:10:45”“#Fields: date time c-ip cs-username s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status sc-status cs(User-Agent)”等信息,包括探测的日期、事件、客户端IP地址、客户端用户名、服务器地址、服务器端口、请求资源所使用的方法、所请求的URI资源、返回状态、客户端使用的浏览器类型等。
针锋相对,提高系统安全性
如果系统存在明显的漏洞,又没有及时修补的话,那么就很容易被非法访问者控制。管理员可以根据这些日志信息,发现系统存在的问题,并为其打上各种补丁包,修复可能存在的漏洞。同时针对FTP服务进行优化,例如在IIS管理器中选择FTP站点,在右侧选择“绑定”项,双击默认绑定项,在编辑窗口(图7)中将TCP 21端口进行修改,设置为其他端口,来避开非法探测。
实际上,对于Windows Server 2012的FTP服务来说,可以使用更多的安全特性,来防御不法攻击行为。例如在IIS管理器窗口左侧选择服务器名,在窗口中部的“FTP”栏中双击“FTP登录尝试限制”项,在弹出界面(图8)中勾选“启用FTP登录尝试限制”项,在“最大登录尝试失败次数”栏中设置登录失败上限值,默认为4次。在“时间段”栏中设置判断周期,单位为秒,默认为30秒。选择“基于登录尝试失败次数拒绝IP地址”项,在右侧的操作栏中点击“应用”链接,激活该功能。
这样,如果不法用户依靠密码字典,采取暴力破解的方式,试图对FTP服务器进行暴力破解的话,当在连续的时间段中测试失败的次数超过预设值,FTP服务器就会拒绝来自黑客IP的登录企图。如果选择“仅写入日志”项,则仅仅将黑客的可疑登录行为写入到FTP日志文件中,而不会对其非法连接进行限制。为了提高灵活性,可以将该功能和系统的密码策略配合起来使用。因为出于安全性考虑,一般是不允许匿名登录FTP的,只有使用特定的账户才可以连接FTP服务器。
点击“Win+R”键,执行“gpedit.msc”程序,在组策略窗口左侧选择“计算机配置→Windows设置→安全设置→账户策略→密码策略”项,在其中可以设置很多和密码相关的安全规则(图9)。例如设置密码的复杂度,长度最小值、最长最短使用期限、强制密码历史等。在“账户锁定策略”栏中双击“账户锁定阈值”项,在其属性窗口中设置合适的锁定次数,例如将其设置为6次。双击“账户锁定时间”项,设置锁定的具体时间。对应的,将FTP的登录尝试次数设置为5次。这样,当黑客在规定时间内连续5次连接失败,就会被FTP服务器拦截。但是,正常的用户可以排除此干扰正常登录系统,因为合法用户还有一次正常登录系统的机会。