前言
该文是根据《Hardening Windows NT》翻译而成,其中也根据自己的一些体会及现实情况进行了一些调整。原文可以再参考文献中获得。
目前,Windows系统已经占据了绝大部分的桌面市场,同时在服务器市场也占有较大比重。长期以来,由于病毒攻击、黑客入侵等原因,给人们留下了易受攻击的不好印象。但Windows是否能够变得安全一点成为人们争论的热点,本文将就加固Windows安全进行讨论。
一、病毒防护产品
在很久以前,病毒防护产品真的是很稀有的东西,那时候计算机病毒也真的很少。但现在不同,几乎每一刻都有新的病毒产生。制作病毒的目的破坏公司的数据安全到窃取私人用户的密码、卡号或者银行信息,各有不同。
对于家庭用户,杀毒软件已经成为必不可少的装备,即使只是一台WEB服务器,没有杀软也是不可想象的,很多病毒或蠕虫都是靠135,139传播的。
选择正确的杀软是非常必要的,但不同的杀软有不同的工作机制,一些杀软仅仅是比其他一些表现的好一点点。选择一个杀毒软件,可以从以下几个方面进行衡量:病毒识别率、更新周期、CPU占用率及效率,WEB恶意代码检测,用户友好及产品漏洞。
病毒识别率主要是指杀软能够识别出现有病毒的百分比,该指标是杀软最重要的衡量指标。因此搞清杀软将什么作为病毒很重要。但脚本小子经常采用加壳的方式来逃避杀软的追杀。目前大部分杀软能够对现有的一些常见的壳进行识别,并进行病毒查杀。
更新周期就是病毒特征库的更新周期,这一点同时体现了杀软厂商本身的技术能力。
CPU占用率及效率,这个对普通用户来说非常敏感,就是杀毒要能合理占用资源,不要太耗系统资源;
WEB恶意代码检测主要是针对网站访问、邮件收发时恶意脚本防护,一旦用户访问了恶意网站,能够对恶意代码进行报警及清除;
用户友好当然就是指用户体验,杀软当然是在用户使用上不要太复杂,界面及操作用户。
产品漏洞,这一点其实也很重要,用户肯定不想使用带有安全漏洞的安全产品,不想发生杀软居然被恶意代码搞掉的事情,这也就不用对金山对前段时间发出来的漏洞极力掩盖的事情感到意外了。
一旦选择了合适的杀软,一定要至少做到如下设置:
(1) 对所有从Internet下载的文件进行杀毒
(2) 启用及时通信工具的杀毒选项,如MSN
(3) 对所有邮件进行病毒查杀,目前大部分软件客户端都具备这个功能
(4) 开机自启动
(5) 主动扫描
(6) 删除所有被感染的文件
(7) 及时自动更新
(8) 定时扫描
二、密码安全
密码安全应该是信息安全的重要组成部分,但更应该说是人的因素,从某种程度上来说,仅仅是指系统管理员要设置具有一定口令复杂度的密码及密码策略。
为设置符合一定复杂度要求的口令,需做到以下几点:
(1) 口令长度最好大于12位,尽管许多人建议密码长度只要8位就可以,但鉴于分布式计算已经很普及,8位长度的口令很容易被破解;
(2) 不要使用英文字典里的单词
(3) 不同的系统不要使用同样的口令,这一点应该说是最严重的安全威胁,很多人在不同的系统上的口令都一致。笔者曾经截取过一个数据库,发现数据库里用户的邮箱密码和该系统的密码一致,当然也有的使用生日做口令的;
(4) 不要认为简单的加些前缀(如“123”)就可以使口令更加安全,其实它们并没有显着增加系统安全性.很多系统管理员增加“123”到口令中,使其变得强壮些,但由于如此之多的系统管理员都这样处理以至于这种行为成为可预测事件;
(5) 不要告诉别人你的密码或者提示信息
(6) 利用密码短语取得密码
破解密码的常用手段
(1)嗅探, 这个在局域网环境比较常用,像一些常用的嗅探工具如:Cain&Abel、Wireshark, Sniffer等,
(2)偷看,这个可能在熟人环境中比较多,或者现在的ATM机上,摄像头比较多的地方比较容易发生;
(3) 破解, 如果电脑被入侵,黑客可能获得SAM文件,或者获得数据库中 加密的用户口令,如果口令的加密算法为标准的MD5而且口令长度小于12位,这将是很容易被破解的,目前在Internet上可以找到很多这样的MD5破解网站,而且这样的工具也很多,当然也有彩虹表
(4) 获取缓存密码, 一些软件会将用户密码缓存中电脑本地磁盘或者内存中,因此可以利用软件获取这些口令,当然这也意味着黑客需要从物理上接触电脑;
(5) 猜测,通常人们总会采用易于记忆的事情作为口令,这也就为口令猜测留下了空间,可以利用生日,兴趣、组织名称缩写等进行口令猜测;
(6) 告知,有些时候人们可能非常乐意告诉其他人自己的口令,但这也是很危险的事情。在公司的安全策略里需要告知公司员工,禁止员工告诉他人自己口令;
(7) 窃取数据库,SQL注入成为WEB应用软件最大的安全威胁之一,很多黑客就是利用数据库注入手段获取数据库中的用户名和密码。
密码被破解的风险
如果一个非授权的用户设法获得的员工密码,即使这个用户没有什么特殊权限,他们仍然会使用该用户对系统发起匿名攻击,因为Windows本身有很多漏洞可以利用来进行本地提权。但最大的威胁在于它可能获取你整个系统的控制权限,而且没有比这个更糟糕的。
更换密码
密码在系统中经常以hash的形式保存,重要数据在系统中应该以加密形式保存,至少理论上应该这样。
但如果黑客设法获得了加密的hash, 明文密码就更不安全了,如果黑客设法利用多台可以进行Hash破解的机器,获得明文密码仅仅是时间问题。
因此密码需要经常更换,很多安全专家建议密码最好每3个月更换一次。但通常这种策略并不是能经常满足需求。利用多台机器和有效的密码破解软件,黑客在一个月时间内几乎可以破解任何密码,如果密码强度够强,这个的破解时间可能会稍微长一点。因此最好没有更换密码,如果可能的话,将更换密码的周期变的更短些。
更换密码时最好遵从以下原则:
(1) 遵从上面设置密码的所有规则;
(2) 新密码和旧密码最好不要相似
(3) 不要仅是在旧密码的前面或后面简单的增加删除数字
(4) 不要试图根据日期生成密码
(5) 密码更改应该悄悄的进行,关于密码的信息应该限定在一定的范围内。
三、用户帐户策略
用户帐户安全应该是最基本的安全基础。当一个黑客入侵一个系统,不管是远程或者本地,他最想得到的就是得到管理员帐户。
因此,为更好的保护系统管理员帐户可以以下安全加固措施:
(1) 重命名系统管理员帐号。让其为一个看起来不太重要或难以猜测的名称;
(2) 去除帐户描述,否则重命名就变的徒劳无益了;
(3) 创立一个假的系统管理员用户,这样可以浪费黑客客观的时间;
(4) 尽量避免使用系统管理员用户。
如果你不需要系统管理员帐户,你可以禁用它。具体可以通过如下操作实现:
开始——》运行——》gpedit.msc
如果想禁用系统管理员用户,只需执行如下操作:
计算机配置——》Windows设置——》安全设置——》本地策略——》安全选项——》帐户:管理员帐户状态
如果不能禁用管理员帐户,可以禁止管理员用户远程登录:
计算机配置——》Windows设置——》安全设置——》本地策略——》安全选项——》用户权利指派——》拒绝从网络访问这台计算机。
用户帐户安全的重要性
一旦恶意攻击者掌握了系统管理员帐号,他就可以在这条机器上做任何事情。受限用户对于黑客来说没有太大意义,一旦黑客闯入网络,他的唯一目标就是提权或者活动系统管理员帐号。
四、间谍软件/广告软件
目前几乎每一台电脑都曾经感染过间谍软件,而且很多家庭用户根本不知道他们的一举一动都被监视。
绝大部分的使用者对间谍软件并不是很了解,也没有意识到电脑正在监视他们的行为由此产生了许多问题。
许多“专家”认为间谍软件是一个很大的安全威胁,但间谍软件主要是为商业目的来监视电脑的。因此,间谍软件从某种程度上来说并不是安全威胁,尽管如此一些间谍软件偷取硬盘上一些被压缩的信息,如果电脑中了间谍软件,就有可能导致黑客获得这些信息,或解析这些信息当从受害者电脑传回间谍软件控制端的过程中。
间谍软件是如此泛滥以致于深受其害,觉得这这里对间谍软件进行深入讨论:
间谍软件的定义:
间谍软件是指监视用户键盘操作并将在用户不知情的情况下将相关信息发送给企业或个人的软件。在前些时间的EarthLink的报告中指出,大概90%的与Internet相连的电脑都曾感染过间谍软件。
广告软件Adware
广告软件类似于间谍软件,并经常被归为间谍软件。广告软件主要是收集用户的年龄、性别、地点、购买习惯、上网习惯等信息,通常也会劫持用户的WEB浏览器如IE等。
广告软件就是为收集用户信息以展示合适的广告以诱导用户购买指定的产品。通常那些从广告软件获利的公司会欺骗没有戒心的用户说他们的产品不是间谍软件,但他们的产品含有广告软件,本质上也是一种间谍软件,只是分类稍稍有所不同而已。
间谍软件/广告软件传播途径
间谍软件通过各种渠道感染用户终端。间谍软件带来了巨大的经济利益,间谍软件感染无知用户的最常用手段就是利用浏览器漏洞悄悄的下载软件到用户的电脑上。IE存在着很多漏洞可以被利用来下载软件到用户终端。像Gator这样的公司来说,利用ActiveX应用程序将软件下载都受害者的电脑上是非常常见的事情。因此微软从Sp2开始就默认禁止了ActiveX的执行以阻止恶意网站下载间谍软件到受害者电脑。尽管如此,间谍软件仍有很多方法可以将间谍软件下载到受害者电脑。
另外一种常见的方式,就是将间谍软件和免费软件进行捆绑,这种方式在国内还是很常见的,原来的3721绝对可以称为典型。其实现在觉得360这类免费软件也还是比较不靠谱的。在安装这里免费软件的过程中,人们很少去读完整个声明,也导致了安装这种间谍软件成了合法的事情。因此在安装免费软件的过程中,一定要提高警惕,快速通读整个协议,避免遭受间谍软件的感染。其实这一点也说明未保证自己的安全,尽量不要使用一些破解软件,因为很难判断破解者是否在软件中增加了一些自己的东西。
间谍软件的危险
间谍软件最大的威胁在于窃取私人信息,例如用户名、密码、银行帐号等,而且这些信息是被悄无声息的被偷走,也无从知道对方准备做什么。就像前段时间网上有人出售银行卡信息。这无疑对私人的财产安全造成很大威胁。
间谍软件通常会占用显著的带宽,如果用户Internet接入带宽很小,网速将受到间谍软件的影响。这一点在目前来说应该问题不是很大,首先一般用户的带宽都已经不是64k的时代,而且现在的间谍软件一般会采用好一点的压缩算法把信息压缩后再发送会服务器端。
间谍软件第三个威胁可能就是对计算机产生破坏,尤其是广告软件一般会劫持浏览器,造成日常使用的不方便。
制作间谍软件的公司非常明白用户会尝试删除或卸载这些软件,因此他们常常采用各种策略让这种删除变得非常困难,甚至不可能,其中包括禁用任务管理器或禁止修改注册表等。
但最大的威胁来自你根本不知道间谍软件做了哪些手脚。间谍软件经常采用一些很隐蔽的手法,如将自己的进程注入到其他的应用程序,或者采用一些rootkit技术。
停止/删除间谍软件
间谍软件是很难被删除的,由于巨大的经济利益,间谍软件花了很大的力气让更多受害者安装“第三方软件”。
间谍软件通常通过ActiveX或者Java Applets进行安装,如果你使用IE,最好禁用这两项功能。同时建议你最好用firefox或者chrome, 这两款软件都采用了一下较好的安全策略防止间谍软件的安装。
间谍软件最喜欢的第二种途径就是伴随第三方软件,因此在安装过程中需要非常注意每一步都选择,当然也不排除根本就给你选择的机会就把相应的软件安装上了。国内这样的软件应该是比比皆是,曾经安装过这样一个软件,最重花了很大力气才搞定它。
当然配置了相应的安全策略,最好还是安装相应的杀毒软件,启用相应的防护功能。
五、防火墙安全
许多网络管理员部署了防火墙来防范针对系统的入侵。但每天仍有数以千计的运行在防火墙的WEB服务器遭受攻击。为什么会这样那?因为网络管理员没有合理的设置访问控制策略,或者设置的过滤规则不够严密。
防火墙是一种过滤网络通信以实现阻止非授权访问的软件。
防火墙的作用
防火墙,尤其是软件防火墙并不能给予100%的安全。其主要作用也就是阻止非授权的接入或者黑客对本地开放服务的探测。阻止不必要的端口访问Internet或者过滤掉到非开放端口的流量将有效降低被成功入侵的风险。但需注意防火墙并不能保护记忆WEB的应用,如论坛或者门户。目前已经开发出一些应用防火墙能够实时应用层的安全防护功能,对一些常见的数据库注入、跨站脚本攻击等提供一定的防护能力。
在Windows XP sp2后已自带防火墙功能,可以通过简单的配置实施一定的防护。还有一些常用的软件,如天网也提供了相应的防火墙功能。
我目前在给学生讲授ISA2006的使用配置,如果有兴趣可以到在这个地址 下载相应的课件。
六、软件安全
这里主要介绍一些在软件使用中的一些注意事项。
(1)最好使用软件的最新版本,每天都有不同的软件被发现不同的漏洞;
(2)最好使用不常见的软件,黑客最喜欢发掘常见软件的漏洞;(这点建议很诡异)
(3)最好不要使用需要经常更新或打补丁的软件,补丁一般要后于漏洞发布。黑客总会有机会发现0day的。
(4)最好不要使用那些来历不明的软件。(我觉得开源软件不在此列)如果要使用免费软件最好也是那种较大网站下载的,可靠性稍微高点。
一些常用软件的安全加固:
MSN Messenger
在上海的大部分白领最常用的沟通软件应该说是MSN和邮件莫属。针对MSN Messenger的使用用户可以在一些以下方面做些防范措施:
在文件传输选项,你可以设置杀毒软件。建议你最好选择自己电脑上安装的杀毒软件对所有接收的文件进行病毒查杀。
Internet Explorer(IE)
IE被认为是非常不安全的浏览器,主要还是因为IE本身的漏洞太多了,太多的黑客在研究它,更主要是因为太多人使用IE作为自己的上网工具。
IE在XP sp2后默认设置安全级别为中高,但其实并不是很安全。但针对于目前的大部分情况,如果将IE的安全级别设置为高,将很影响使用体验。所以可以在保留现有的安全级别的情况下,禁用ActiveX的使用。
当然你也可以选择“自定义级别”。
FireFox
我觉得Firefox是目前我最喜欢的一款浏览器,安全、简洁而且效率也可以。
阻止弹出窗口: 此项一定要启用。这个可有效降低恶意网站跳出广告窗口,或者让你安装一些恶意插件。
启用JavaScript: 该项最好启用,目前基本上所有的网站都会使用到javascript。如果该项被禁用,将非常影响使用体验。
FireFox的安全选项卡提供了一些安全选项,这个页面上的前三个选项最好都选上,密码这个选项最好不要启用。如果保存网站密码,还是存在被窃取的风险。
七、本地安全策略
设置本地安全策略应该说是加固Windows安全的最重要的工作。
首先设置密码策略:
帐户锁定策略:
用户权利指派及安全选项由于内容太多,就不再赘述,如有需要可以联系我。
第八、审计
上面设置了各项安全策略策略后,最好定期进行安全审计。通过审计可以判断审计策略的有效性及合理性,同时能够对发生的安全事件进行有效预警。
作为安全加固的一部分,需要合理设置安全审计策略,以获得足够的信息。
控制面板——》管理工具——》本地安全策略
审核策略更改 成功, 失败
审核登录事件 失败
审核对象访问 失败
审核过程追踪 成功, 失败
审核目录服务访问 失败
审核特权使用 成功, 失败
审核系统事件 成功, 失败
审核帐户登录事件 失败
审核帐户管理 失败
当然也可以对所有事件启用成功及失败操作的审核策略,但这样无疑增加了作为系统管理员的工作。既然已经设置了相应的安全审计策略,就需要知道如何查看这些系统事件。
控制面板——》管理工具——》事件查看器
在这些繁杂的日志记录里,可以使用过滤规则筛选你所想要的内容,具体设置如下:右键——》查看——》筛选
第九、IIS加固简介
该节将对IIS的安全加固做一下简单的介绍。原文中该节是以IIS 5.0为例进行讲述,目前IIS 6.0已经被广泛接受,因此我将以IIS6.0介绍其安全加固手段。从本质上来说,由于IIS 6.0已经采用新的工作机制,其在性能及安全上都比以前版本的IIS表现的更出色些。
如果你想关闭现有的IIS服务,你可以执行运行——》services.msc,然后关闭IIS Admin服务。
以下是关于IIS加固的部分安全建议:
(1)改变网站文件路径,最好修改为一个非系统磁盘驱动器路径。
(2)实施最严格的权限控制策略。如果该网站仅用于信息浏览,可以只授予只读权限。
(3)一旦黑客获得了系统权限,他们做的第一件事情可能是清除日志,以防止被追踪。在默认情况下,Windows Server 2003的日志文件保存于C:/WINDOWS/system32/LogFiles。但最好能够对文件的存放路径进行修改,至少能够对菜鸟黑客增加一些麻烦。能够保存一些记录。
(4)关闭目录浏览。
(5)不要设置网络最大连接数。这点可能需要一些平衡。目前有很多攻击工具利用服务器网络最大连接数。这些工具就是产生无数的连接造成服务器性能降低,甚至形成拒绝服务攻击。因此如果设置太小,可能造成拒绝服务功能。如果设置太大,可能由于服务器性能降低,同样可以造成拒绝服务攻击。
(6)删除IIS默认文件。
(7)不要以系统管理员身份运行IIS WEB服务器。
(8)将以下的一些命令仅以系统管理员身份进行执行,可以避免一旦黑客活得系统控制权限,将执行这些命令,如: Command.com、Cmd.exe、ftp.exe、telnet.exe、tftp.exe、regedit.exe、regedit32.exe。
第十、NetBIOS/SMB安全
NetBIOS运行在电脑的139端口,主要用于网络上的计算机进行网络共享,识别连接在网络上的其他计算机、使用像打印机之类的设备。但也带来一些安全问题,如果未能正确配置将导致Internet的攻击者也可以利用这些服务获得系统的重要信息,导致黑客利用这些信息进行攻击。
一种阻止黑客的技术就是阻止TCP139和TCP445端口,或者关闭这些服务,只有不选择下图的Microsoft网络的文件和打印机共享。但这样简单处理也将带来较多的使用问题:
(1)不能以WINS客户端的形式进行工作;
(2)不能登录Windows域;
(3)那些依靠NetBIOS及SMB获得信息的应用程序将不能正确运行。
如果你不想禁止该服务,而是简单禁止用户通过此服务登录系统,如果这个服务本身存在缓冲区溢出漏洞,该服务也将带来比较严重的安全风险。目前已经发现SMB存在很多此类问题,因此要及时更新相应的系统补丁。
如果要共享硬盘上的文件夹,强烈建议采用密码形式对用户身份进行认证,可以利用修改注册表方式来禁止匿名访问:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa/
将restrictanonymous的值由“0”改为“1”,匿名用户将无法通过NetBIOS/SMB登录系统。
修改后需要重启操作系统,才能生效。
十一、服务安全
Windows默认启用很多服务,但计算机运行更多的服务将给黑客造成更多的机会进行攻击,因此一台计算机最好只运行必要的服务,关闭那些不比较的服务。
为查看正在运行什么服务,可以通过 开始——》运行——》services.msc,回车后就可以得到相应的列表,列出了现有服务的状态及各个服务的作用。
为增加性能和安全,需要关闭一些服务。在需要关闭这些服务前,先简单介绍一下如何禁用服务及将一个服务的状态改为手动。如果将服务状态改为手动,该服务将只有在被请求的情况下才被启用。选中相应的服务,右键点击属性。
将启动类型修改为手动,同时停止此服务。
在了解如何修改服务状态后,将介绍一些非必需的服务。
Messager
在服务器及客户端之间传递信息,但与MSN Messenger和Windows Messenger没有任何关系。停止此服务讲不能获得Aleter服务。
Remote Registry
该服务允许用户远程访问注册表并进行管理,该服务最好被禁用。
Server
该服务允许你在网络中共享文件,但最好关闭该服务。
Task Scheduler
建议关闭该服务,貌似没有什么程序需要依赖该服务。如果启用,可能被黑客用来进行提权。
NetMeeting Remote Desktop Sharing
运行用户利用NetMeeting连接计算机,建议关闭该服务。
还需要关闭的服务还包括:
Secondary Logon、SSDP Discovery Service、Universal Plug & Play等
参考文献
[1] Aelphaeis Mangarae, Hardening Windows NT