前段时间,客户的上级主管单位对客户单位的整个信息系统进行了一次全面的主机脆弱性分析。由于客户单位的信息安全性要求较高,这次脆弱性分析也做得非常彻底,找到了很多安全漏洞,尤其是对网络中的Windows主机更是提出了大量的整改意见。
前言
前段时间,客户的上级主管单位对客户单位的整个信息系统进行了一次全面的主机脆弱性分析。由于客户单位的信息安全性要求较高,这次脆弱性分析也做得非常彻底,找到了很多安全漏洞,尤其是对网络中的Windows主机更是提出了大量的整改意见。
在落实这些整改意见,修复主机漏洞的过程中,发现涉及到的计算机非常多,工作量很大,靠人力逐个计算机的去操作基本上是不可能的。这时想到了Windows系统中强大的管理工具——组策略。利用组策略批量更改配置的特性,配合计算机启动脚本的使用,整个安全修复工作仅用了1天就完成了。而如果靠人力逐个计算机的去操作可能要花费至少1个月的时间。下面给大家分享一下本次利用组策略对Windows系统进行全面安全防护的全过程。
一、主机脆弱性分析
本次评估中, Windows主机安全漏洞分析总共涉及到了Windows 2003服务器11台,Windows 2000服务器12台,以及抽样30台Windows XP客户端进行人工审计。发现的主要问题有:
(一)启用了多个不必要的服务和端口
多台Windows主机启用了多个不需要的服务。某些启动的服务可能与当前承载业务无关,例如:DHCP Client、Remote Registry、Task Scheduler、Telephony、Messenger。系统中开启了多个可能不必要且易受攻击的端口,如135、139、445、593、1025、2745、3127、6129等。
不需要的服务被启用,恶意用户可以通过尝试攻击不需要的服务来入侵系统,而管理员在管理维护过程通常会忽略不需要的服务,无法及时修补不需要服务中所存在的安全漏洞,给恶意用户留下更多的攻击途径。
不需要的端口被启用,非法者可以利用这些端口进行攻击,获得系统相关信息,控制计算机或传播病毒,对计算机造成危害。
(二)没有重命名或禁用默认帐户
Windows主机没有更改默认管理员用户名:Administrator。
默认帐户在带来方便的同时也严重危害系统安全。未更改Administrator帐号,恶意攻击者将轻易得知超级用户的名称,只需对密码进行猜测即可。
(三)未屏蔽之前登录的用户信息
操作系统登录时,显示上次登录用户名。
没有配置此项安全功能,用户启动主机系统时,登录界面显示上次登录用户名,只需输入密码。恶意攻击者只需对密码进行猜测,无需猜测用户名,为攻击提供方便。
(四)操作系统开启默认共享
主机开启了C$、D$、Admin$、IPC$等默认共享。
默认情况下开启了很多共享文件夹。如C$、D$、ADMIN$等,这样对系统安全带来很多隐患。另外IPC$共享的存在将允许任何用户通过空用户连接得到系统所有账号和共享列表。攻击者可能利用这项功能,查找用户列表,并使用字典工具,对服务器进行攻击。
(五)未采用屏保密码设置
多台Windows系统没有设置在屏保后进行锁屏。
很多时候管理员会在离开服务器时忘记锁定系统。系统默认会在一定时间之后开始屏保,如果在屏保中设置了密码保护。那么很大程度上可以保护主机系统不会被非法操作,减少安全风险。
(六)帐号口令长度和复杂度不满足安全要求
为了提高用户口令字典穷举的难度,需要配置口令策略,口令复杂性要求,为用户设置强壮的口令。
(七)用户鉴别未加固
为了防止非法用户对用户口令进行反复尝试,应配置操作系统用户鉴别失败策略,即帐户尝试登陆阀值及达到阀值所采取的措施。
(八)审核策略未加固
审核是追溯恶意操作的最有力工具。系统默认的审核范围比较单一,并不能为安全事故分析提供充分的信息。因此需要配置操作系统的安全审计功能,确保系统在发生安全事件时有日志可供分析。
二、安全整改方法
八条安全整改建议基本上覆盖了大部分最常见的Windows安全问题,下面我们利用强大的组策略工具,对所有建议提供点对点问答式解决方案。
(一)关闭不需要的服务和端口
1,在Windows服务中禁用以下服务。
打开“默认域策略”,依次展开“计算机配置” 、“Windows设置” 、“安全设置”,然后选中“系统服务”,在右边窗格中右键选择Remote Registry服务,点击“属性”。在弹出的属性窗口中,选择“定义这个策略设置”,并勾选“已禁用” ,然后点击“确定”,关闭窗口。依次对以下服务完成以上操作。
(1)Remote Registry
(2)DHCP Client
(3)Task Scheduler
(4)Print Spooler
(5)Telephony
(6)Messenger
其中:
(1)Remote Registry Service允许远程注册表操作,如果没有特殊的管理平台(例如SMS)需要远程修改计算机注册表的话,该服务也可以禁用。
(2)DHCP Client服务是用于DHCP客户端接收服务器分发的IP地址,还可实现客户机DNS动态注册。在本案例中,所有计算机均是固定IP地址,并无DHCP服务。所以该服务也可以关闭,这样可防止未经授权或恶意用户配置或操作该服务。
(3)Task scheduler服务允许程序在指定时间运行,如果没有设置计划任务的话,该服务也没有启动的必要。
(4)Print Spooler服务将文件加载到内存中以便以后打印。该服务非常容易遭到攻击,所以除打印服务器和其他需要打印功能的计算机外,计算机上的这个服务都必须禁用。
(5)Telephony服务为电话应用程序编程接口 (TAPI) 提供支持。 TAPI主要是用来支持传统和 IP 电话服务,以提供声音、数据和视频通信。对于 Windows 2000 Server 和 Windows Server 2003 以及 Windows 2000 Professional 和 Windows XP 系统,如果尚未配置电话服务功能,Telephony服务将是一个本地特权提升漏洞。
(6)Messenger 服务负责传输客户端和服务器之间的 NET SEND 和 警报器服务消息,通常该服务可以关闭。
在很多文章中还提到Computer Browser、TCP/IP NetBIOS Helper等服务也需要禁用,但事实这些服务只是在单机情况不起作用,在局域网环境中是十分重要的。例如如果TCP/IP NetBIOS Helper服务禁用的话,基于域的组策略将不再起作用,同时域用户也将无法登陆。
2.关闭不必要的端口。
默认情况下,Windows有很多端口是开放的,这些开放的端口会带来很大的安全隐患,端口主要包括:TCP 135、139、445、593、1025 端口和 UDP 135、137、138、445 端口,以及一些流行病毒的后门端口(TCP 2745、3127、6129 端口等)。我们可以利用IP安全策略中的IP筛选器来关闭这些网络端口,具体方法如下:
(1)打开“默认域策略”,依次展开“计算机配置” 、“Windows设置” 、“安全设置”,然后选中“IP 安全策略,在Acive Directory” 。在右边窗格的空白位置右击鼠标,弹出快捷菜单,选择“创建 IP 安全策略”。在向导中点击“下一步”按钮,为新的安全策略命名(端口屏蔽);再按“下一步”,则显示“安全通信请求”窗口,取消对“激活默认相应规则”的选择,点击“完成”按钮就创建了一个新的IP 安全策略。
(2)右击该IP安全策略,在“属性”对话框中,把“使用添加向导”选项去掉,然后单击“添加”按钮添加新的规则,随后弹出“新规则属性”对话框,点击“添加”按钮,弹出IP筛选器列表窗口;在列表中,首先把“使用添加向导”选项去掉,然后再点击右边的“添加”按钮添加新的筛选器(TCP)。
(3)进入“筛选器属性”对话框,首先看到的是寻址,源地址选“任何 IP 地址”,目标地址选“我的 IP 地址”;点击“协议”选项卡,
在“选择协议类型”的下拉列表中选择“TCP”,然后在“到此端口”下的文本框中输入“135”,点击“确定”按钮,这样就添加了一个屏蔽 TCP 135(RPC)端口的筛选器。
(4)点击“确定”后回到筛选器列表的对话框,可以看到已经添加了一条策略,重复以上步骤继续添加 TCP 137、139、445、593 端口和 UDP 135、139、445 端口,为它们建立相应的筛选器示。
(5)再重复以上步骤添加TCP 1025、2745、3127、6129端口的屏蔽策略,建立好上述端口的筛选器,最后点击“确定”按钮。
(6)如6图所示,在“新规则属性”对话框中,选择“TCP筛选器列表”,激活它,最后点击“筛选器操作”选项卡。在“筛选器操作”选项卡中,把“使用添加向导”选项去掉,点击“添加”按钮,在“新筛选器操作属性”的“安全措施”选项卡中,选择“阻止”,然后点击“确定”按钮。
(7)进入“新规则属性”对话框,激活“新筛选器操作”,关闭对话框;最后回到“新IP安全策略属性”对话框,按“确定”按钮关闭对话框。在“本地安全策略”窗口,用鼠标右击新添加的 IP 安全策略(端口屏蔽),然后选择“指派”。
(二)重命名默认帐户Administrator
1.打开“默认域策略”,依次展开“计算机配置”、“Windows 设置”、“安全设置”、“本地策略”,然后单击“安全选项”。
2.在右窗格中,双击“帐户:重命名系统管理员帐户”。
3.单击以选中“定义这个策略设置”复选框,然后键入要用于管理员帐户的新名称。
4.单击“确定”。
(三)屏蔽之前登录的用户信息
1.打开“默认域策略”,依次展开“计算机配置”、“Windows 设置”、“安全设置”、“本地策略”,然后单击“安全选项”。
2.在右窗格中,双击“交互式登陆:不显示上次的用户名”。
3.单击以选中“定义这个策略设置”复选框,然后选择“启用”。
(四)关闭默认共享
关闭C$、D$、Admin$、IPC$等默认共享需要使用组策略分发计算机启动脚本的方式来完成。计算机启动脚本如下:
for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @(
if exist %%a:\nul (
net share %%a$ /delete
)
)
net share admin$ /delete
echo Windows Registry Editor Version 5.00> c:\delshare.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]>> c:\delshare.reg
echo "AutoShareWks"=dword:00000000>> c:\delshare.reg
echo "AutoShareServer"=dword:00000000>> c:\delshare.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]>> c:\delshare.reg
echo "restrictanonymous"=dword:00000001>> c:\delshare.reg
regedit /s c:\delshare.reg
del c:\delshare.reg
以上脚本利用net share命令删除所有磁盘共享和admin$共享。但是这些被删除的共享在计算机重新启动后,又会重新出现。为了永久删除共享,有些人会配置上述的net share delete 命令,让它们每次开机自动运行一次。其实完全可以通过修改目标计算机注册表来永久关闭这些共享。在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters下修改或添加AutoShareWks和AutoShareServer键,并将其值设为0(DWORD)。其中,键AutoShareServer对应C$、D$一类的缺省共享,键AutoSharewks对应ADMIN$缺省共享。
IPC$共享则和前面的“默认共享”及“管理共享”是两个不同的概念。它是指IPC管道连接也就是平时说的空连接,也被称作匿名连接。空连接是指无需用户名和密码就能连接主机。利用这个空的连接,连接者可以得到目标主机上的用户列表,然后可以猜密码,或者穷举密码,从而获得更高,甚至管理员权限。所以空连接同样需要禁止。以IPC$只有0,1,2三种级别,而没有删除这个说法。空连接设置由注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa下的restrictanonymous键来确定。该值默认为0,即任何用户都可以通过空连接连上服务器,匿名列出帐户名称和共享资源,这样就能够利用这些信息尝试猜测密码或进行“社会工程学”攻击。如果设置为"1",一个匿名用户仍然可以连接到IPC$共享,但限制通过这种连接列举SAM帐号和共享等信息;设置为"2",将限制所有匿名访问除非特别授权,但这样可能会影响一些正常的管道通信,所以微软官方建议该键值设为“1”。
关于如何使用组策略分发计算机启动脚本,因为操作比较简单,这里不再赘述。
(五)屏保密码设置
针对整改建议,为了避免由于管理员疏忽,而导致他人滥用系统,我们采用如下方法统一配置屏保锁定功能。
打开“默认域策略”,依次展开“用户配置” 、“管理模板” 、“控制面板”,然后选中“显示”,在右边窗格中依次对“屏幕保护程序”,“可执行的屏幕保护程序名称”,“密码保护屏幕保护程序”和“屏幕保护程序超时”四项进行配置。在本案例中,配置策略如下:
1.屏幕保护程序:开启。
2.可执行的屏幕保护程序名称:C:\WINDOWS\Resources\Themes\Windows Classic.theme。
3.屏幕保护程序超时:8分钟。
4.密码保护屏幕保护程序:开启。
(六)配置帐号口令长度和复杂度要求
为了提高用户口令字典穷举的难度,需要设置口令策略,口令复杂性要求,即为用户设置强壮的口令。主要配置方法如下:
打开“默认域策略”,依次展开“计算机配置”、“Windows 设置”、“安全设置”、“帐户策略”,然后单击“密码策略”。依次对“ 密码必须符合复杂性要求”,“密码长度最小值”,“密码最长使用期限”,“密码最短使用期限”和“强制密码历史”进行配置。在本案例中,配置策略如下:
1.密码必须符合复杂性要求:开启。
2.密码长度最小值:8位。
3.密码最长使用期限:60天。
4.密码最短使用期限:1天。
5.强制密码历史:6个。
(八)加固用户鉴别策略
为了防止非法用户对用户口令进行多次猜测或字典式攻击,应配置操作系统用户鉴别失败策略,即配置帐户尝试登陆阀值及达到阀值所采取的措施。主要配置方法如下:
打开“默认域策略”,依次展开“计算机配置”、“Windows 设置”、“安全设置”、“帐户策略”,然后单击“账户锁定策略”。依次对“复位帐户锁定计数器”,“帐户锁定时间”和“帐户锁定阈值”进行配置。在本案例中,配置策略如下:
1.复位帐户锁定计数器 :30分钟。
2.帐户锁定时间:30分钟。
3.帐户锁定阈值:5次。
(九)加固审核策略
安全审核是Windows最基本的入侵检测方法,当有人尝试对系统进行某种方式入侵的时候(如尝试用户密码,改变帐户策略和未经许可的文件访问等等),都会被安全审核记录下来。利用组策略开启的审核方法如下:
打开“默认域策略”,依次展开“计算机配置”、“Windows 设置”、“安全设置”、“本地策略”,然后单击“审核策略”。依次对“审核策略更改”,“审核登陆事件”,“审核特权使用”,“审核系统事件”,“审核帐户管理”和“审核账户登陆事件”进行配置。在本案例中,配置策略如下:
1.审核策略更改:成功,失败。
2.审核登陆事件:成功,失败。
3.审核特权使用:成功。
4.审核系统事件:成功,失败。
5.审核帐户管理:成功。
6.审核用户登陆事件:成功,失败。
(十)对审核产生的数据分配合理的存储空间和存储时间
为了保证系统有足够的空间存储系统审核日志和安全审核日志,不会因为空间不足而覆盖了有用的日志信息。需要对审核产生的数据分配合理的存储空间和存储时间。具体方法如下:
打开“默认域策略”,依次展开“计算机配置”、“Windows 设置”,然后单击“事件日志”。依次对“安全日志保留天数”,“安全日志保留方法”,“安全日志最大值”和“系统日志保留天数”,“系统日志保留方法”,“系统日志最大值”进行配置。在本案例中,配置策略如下:
1.安全日志保留天数:14天。
2.安全日志保留方法:按天数。
3.安全日志最大值:40000KB。
4.系统日志保留天数:14天。
5.系统日志保留方法:按天数。
6.系统日志最大值:40000KB。
束语
当然要想保证整个Windows主机的安全性,还有许多其他方面需要注意,例如补丁更新管理;以最小权限原则对操作系统用户、用户组进行权限设置;强化 TCP/IP 堆栈防止拒绝服务攻击和确保远程控制要有安全机制保证等等。但这些问题在本次主机脆弱性分析前均已进行了合理配置,因此并不在整改建议中,所以这里不再赘述。
另外本文中都是以“默认域策略”为例,实际操作过程中往往需要根据自己的需求对不同的组织单元的自定义策略分别进行配置,不过配置方法是一样的。
通过本次安全整改不但让我们了解到了更多的安全知识,同时也进一步认识到组策略工具的强大功能。希望本文能够为正在为信息安全忙碌的广大同仁提供一点帮助。