| VB 源码 | VC 源码 | ASP源码 | JSP源码 | PHP源码 | CGI源码 | FLASH源码 | 素材模板 | C 源程序 | 站长工具 | 站长教程 |

安全防范

木马病毒
黑客技术
系统安全
防火墙
安全防范

本类阅读TOP10

·双网卡共享上网解析
·常用端口对照详解
·技巧:多种途径访问局域网中的计算机
·代理服务器使用祥解
·在家远程控制公司的局域网电脑
·在Windows XP****享上网
·最新奇迹****复制漏洞大全(含98c)
·为什么局域网中机器PING通却不能上网?
·局域网共享资源安全防护大全
·远程破OICQ密码给工具QQExplorer ver 1.25介绍

站内搜索

IIS的安全问题与解决方案

1引言

网站是网络服务开展的基点,是网络系统的最前沿阵地,较易成为被攻击的目标,其安全的重要性不言而喻。许多网站因为多种因素的制约采用了相对简单易用的NT(Windows NT/2000/2003)+IIS(Internet Information Server)的架构,由于各站点的技术力量和管理水平存在较大差距,因此网站的安全性也参差不齐,只有少数的IIS网站具有较高安全性。虽然IIS已默认配置了一套安全控制和管理机制,但仍存在相当多的安全问题,所以有必要进一步对其分析研究,进行更优化、更合理的配置与管理。

2不安全因素

IIS本身存在着许多的先天不足和安全漏洞,虽然较新的IIS版本和补丁改进或修补了已发现的问题,但随着时间的延续和新功能的开发,新漏洞又出现了,新的安全隐患也就产生了。由于NT和IIS的功能越来越复杂,熟悉和掌握需要大量时间和精力,一般人难以合理配置和安全管理。通常情况下,IIS的很多默认状态恰恰是危险所在,其本意或许是为方便用户,但最终有可能导致安全灾难。引发IIS不安全的表现形式和影响因素主要有:

Unicode漏洞。Unicode安全问题存在于许多系统中,当IIS对含有Unicode的字符进行解码时,如果遇到特定编码,将导致错误或非法操作。如:NT中对“\”“/”区分不是很严格,这和Unix仅支持“/”是不同的,攻击者可以利用这点进行目录浏览或非法控制。对Unicode的解码由系统内核完成,但现在众多的Unicode漏洞补丁并没有真正从根本上把问题解决,而只是简单过滤了一些危险的字符编码,所以IIS的Unicode安全隐患依然存在。

应用程序映射问题。在IIS的许多应用程序映射中存在着相当严重的安全问题,如源代码泄露、缓冲区溢出、DoS拒绝服务、非法执行脚本等基本上都是由此而引发的。这是许多IIS网站不安全的根源所在。

ISAPI缓冲溢出漏洞。如.htr、.printer等映射中就存在此问题。攻击者可得到主机的本地访问权限,如果使用随机数据,可使IIS服务崩溃或主机自动重启,如果精心构造攻击数据,可使攻击者得到系统管理员的权限。红色代码(Code Red)病毒就成功地利用了IIS组件Index Server的此漏洞进行了广泛传播和攻击。

IIS RDS(远程数据服务)漏洞。RDS是MDAC的组件,具有msadc虚拟目录的IIS 4系统最易受到攻击,这可导致非法用户访问ODBC数据库、访问受限制文件或远程执行命令。

HTTP非标准数据问题。攻击者发送大量的特殊畸形的HTTP请求头数据包,可导致服务器消耗系统的所有内存,只有服务终止或主机重启,IIS才能恢复正常。

IIS验证漏洞。这可导致泄露系统信息及帐号被远程暴力破解。如果服务器支持基本认证,攻击者通过将Host头域置空,Web服务器将会返回包含其内部地址的信息;如果服务器支持NTLM认证,攻击者可获取服务器的NetBIOS名称以及所属域的信息。

设备文件问题。NT为了兼容,支持诸如“PRN”、“CON”等设备文件名,虽然与9x相比已做了一些安全防范,但是很多程序还是存在问题,IIS在某些特殊情况下会受其影响导致拒绝服务。例如:当在ASP程序中使用FSO对象打开或读取设备文件时将导致服务停止响应。

系统设计错误。NT系统中有很多设计错误。如帐号锁定和IIS的安全之间就有冲突,一旦启用帐号锁定策略,即可对IUSER_和IWAM_这两个帐号进行锁定穷举,此时,任何人都将无法访问IIS,这样破坏者就很轻易地实现了IIS的拒绝服务攻击。

应用程序问题。网站的应用程序承担和实现了具体的网络服务和功能,但由于编程水平不一,因而应用程序安全性差别很大,这也极易造成对IIS的攻击。常见的应用程序安全问题包括:未检查客户端数据输入,容错能力差;未考虑可能发生的错误,导致服务意外中止;数据库连接源泄露;应用环境假设错误;引用处理模块不当等。

主观人为因素。指网站的设计者、管理者和使用者的意识、素质、道德、责任心、技术等主观方面对此的影响。主要表现在:安全意识淡薄、重视不足,偏重强调性能,而忽视安全;敬业精神不够、责任心不强、注意力松散;设定配置错误或操作不当;投入不足,普遍存在只重视硬件投入而忽视配套安全软环境建设的现象;对此缺乏全面深入研究,没有制定相应对策,许多网站没有整体上进行风险评估和安全论证;管理不力、责任不明、执行不严;教育学习力度不够、队伍建设滞后,有相当比例的站点管理和技术人员对此缺少足够的培训,缺乏处理突发事件能力;技术手段落后,许多站点由于经费等原因没有使用相应的防范设备和工具;与此相关的一些工作没有做好做细,如制定应急计划、系统备份恢复、漏洞持续修补等,出现问题时,往往是束手无策。

3安全解决方案

3.1安装

安全应该从安装时就开始构建,但这往往被许多网管所忽视。安装IIS时需注意:

NTFS格式和分区选择。主机的所有分区最好是NTFS格式,因为NTFS安全性更高,可对不同的文件和目录设置不同的访问权限,即使其他分区采用FAT格式,但至少IIS所在分区应是NTFS。建议将IIS安装到非系统分区上,IIS普遍存在源码泄漏与缓冲溢出的漏洞,如果NT系统和IIS在同一分区可能会导致重要信息泄漏、系统权限被远程获取等问题。

安装目录选择。IIS的安装目录建议不要使用默认的\Inetpub,应在系统分区之外的单独分区上新建一个名称复杂的安装目录,这样可减少很多默认情况下的攻击。

根据需要安装相应服务。根据安全原则,最大的安全=最少的服务+最小的权限,所以应尽量不安装与站点网络服务无关的内容。IIS的众多安全隐患是由于一些不常用的功能和不完善的服务引起的,如果仅是建立一个单纯的Web站点,就只安装WWW服务器即可,这可减少受到攻击的机会。典型的Web服务需要的最少组件选择是:只安装Internet服务管理器、WWW服务器、公用文件即可。如果确实需要安装其他组件,应慎重选择,特别是FrontPage服务器扩展、Internet服务管理器(HTML)、示例文档等,HTML远程管理的端口虽是随机的,但很容易被扫描到,从而留下隐患,事实证明示例文档中存在大量安全问题。FTP建议不装,IIS的FTP功能并不强,易出错,且漏洞较多,其传输密码时缺省为明文,易被截获,如确需FTP,可考虑采用第三方工具。SMTP邮件服务缺少必要和有效的身份验证机制,也不宜安装。

安装系统安全补丁。这些补丁中有许多是针对IIS的,IIS的HotFix安装时会停止IIS服务并有可能更改其配置。打补丁应是安装的最后一步,因为补丁往往要替换或修改某些重要的系统文件,如先安装补丁有可能导致起不到应有的作用。需注意:应按照补丁的逻辑顺序来安装,错误的次序可能会导致发生错误;在NT 4中安装补丁后,如果以后再从NT安装盘上安装新程序,需要重打补丁;2000系统可以直接访问http://v4.windowsupdate.microsoft.com实现对所有补丁的自动检测和更新。

3.2配置

IIS安全配置与操作系统密切相关,合理配置是保证IIS安全的重要环节。

帐号策略。用来维护管理的帐号,应尽可能少,帐号越多,被攻击的危险就越大;帐号权限应严格控制,掌握好权力均衡,不轻易给过多的特殊权限;管理帐号应改名为不易猜到的名字,这可为攻击增加一层障碍;系统的Guest、TsInternetUser帐号应禁用,并将其改为复杂的名字、增加密码、从Guests组删除,以防被黑客利用;帐号密码应提高安全性并加强管理,密码是安全认证的关键,应引起足够重视,很多入侵是因为密码出了问题而造成的。密码长度应至少8位以上,尽量使用不规则的、低频使用字符进行复杂组合,不要选取显而易见的信息(如生日、纪念日、姓名、单词等)作为密码,密码应时常更新和修改。在监控审核时如发现某帐号被连续尝试,应立即更改此帐号的名称和密码,并在帐号属性中设置锁定次数,以防被暴力破解。

访问权限。为了控制用户权限和预防今后可能的入侵,必须设置好目录和文件的访问权限,NTFS下所有文件默认对everyone完全控制,建议根据应用需要进行重设,普通用户只给予读取、列表权限,不给予完全控制、修改、写入等权限。应注意:权限是累计的,如果一个用户同时属于两个组,那么该用户就拥有了这两个组所允许的所有权限;拒绝权限优先于允许权限、文件权限优先于目录权限,应谨慎设置;多利用组策略来进行权限控制;给用户真正需要的权限,权限最小化是安全的重要保障。

端口开放。端口是主机与外部网络连接的逻辑接口,端口配置正确与否直接影响到IIS主机的安全。缺省情况下,主机的所有端口是对外开放的,黑客会加以利用并进行入侵,这对安全是一个严重威胁,所以只应开放必要的端口,其余不用的端口应关闭。

远程控制。如果不进行网站的远程管理,应关闭远程终端服务、关闭危险的NetBIOS,并删除系统默认的所有共享,包括打印共享和隐藏的ICP$、Admin$等共享,因为这些都是潜在的入侵口。

应用程序映射。大部分的攻击都是由于不安全或是有错误的映射导致的,.idc、.ida、.htr、.htw、.shtml、.shtm等默认的映射存在着大量的安全隐患,应予以删除;在保留使用的映射中应设置选择“检查文件是否存在”。需注意的是:在安装某些新的IIS补丁后,有些映射会重新出现,此时应进行重置,但这往往是许多网管较易忽视的地方。

虚拟目录。Web站点中如果存在scripts、iissamples、iishelp、msadc、printer等默认虚拟目录应全部删除,因为IIS的许多漏洞与此相关。

自定义错误信息。在IIS中应将HTTP 404 Not Found等出错消息通过URL重定向到定制页面,这既增强了用户界面的友好性,又可以使目前的大多数CGI漏洞扫描失效。因为大多数的此类扫描只是通过查看返回的HTTP代码来判断漏洞是否存在。

验证控制。如果用户访问服务器不需特殊认证,建议关闭IIS的基本验证和集成Windows验证。

FTP匿名访问。FTP服务的匿名访问有可能被利用来获取更多的信息,以致造成危害,应禁止。

关闭不用服务。服务开得越多,隐患也就越多,应将不必要或暂时不用的服务停止,如SMTP等。

在必要的情况下启用IIS提供的SSL安全通信机制来防止数据在网上被截取。

3.3管理

分开放置。有条件的站点应将数据与Web服务分开放置在不同的主机上,数据可存储在专用主机上,由Web服务执行相应机制从数据主机中提取,即Web在前台,数据在后台,这可很大程度上防止危险事件的发生和降低受危害的程度。

监测审核。应记录、分析、跟踪和审核用户使用网站的过程,定期检查敏感区域和数据,搜索积累有关的日志信息进行分析研究,有重点地进行跟踪审查,以期发现潜在的危险或为已发生的事件提供有力的证据。IIS自带的日志从某种程度上可以成为入侵监测的工具。为了不过多影响响应速度,IIS日志建议选用W3C格式记录,用ODBC记录虽然更易于分析,但流量大时,网站性能会受很大影响。IIS日志信息量很大,需借助专门软件来进行分析,也可自己编程实现。通过对IIS日志的提取和分析,可察觉有不良意图的访问、了解窥探和攻击者行踪,以便及时做出反应。但IIS日志并不是万能的,它在某些特殊情况下会忽略记录一些入侵,此外,攻击者也可能从Telnet等其他服务侵入,因此,建立一套完整的监测审核机制是相当重要的。系统默认安装时安全审核是关闭的,可通过本地安全策略将其打开,由安全日志详细记录用户登录、特权操作等信息;此外,系统日志和应用程序日志也是很好的辅助工具;对于关键的重要目录和文件(system32目录、cmd.exe文件等)也应加强访问记录,这样,即使攻击者入侵了也很难不留下踪迹。在日志审核时,如发现问题,应及时预防和解决,不能得过且过。需注意:日志记录应只选择必要的项目,项目太多,信息量就大,反而不利于分析,并加重了系统负荷,项目太少,又达不到预期的安全效果;不过分相信日志,高明的入侵者有可能对其进行加工修改;日志文件不要存放在默认目录下,并设置好访问权限。

备份恢复。这项工作非常重要,这是网络安全的最后阵地。站点的核心是数据和信息,一旦遭到破坏后果不堪设想。大部分站点的备份工作开展得不错,但仍存在不少问题:如备份不完全及时、备份不做有效测试、备份无计划安排、备份不异地存放等。完整的备份应包括安全配置、资料数据、用户信息等多个方面,并随着网站的更新,而不断地及时调整。有条件的站点可安装相应的监控恢复工具,对于Web服务,可配置主页的自动恢复机制,即如果主页被非法纂改,系统能自动识别并将其恢复至事先设定的页面。

访问控制。对于WWW服务,可以拒绝一些有攻击意图的IP地址或域进行访问;对于目录和文件,应根据具体的应用服务需要,有针对性在管理时恰当分配脚本、写入、浏览、执行的权限;对于FTP服务,如果只是管理使用,应限定登录的IP地址,从而提高其安全性。建议在更改访问控制前做好测试,以防服务意外中止或出现新的安全问题。

内部管理。网络攻击更多的来自于内部,在我国立案可查的网络安全事件中,大部分是由于内部管理不善造成的,所以应加强内部的管理,完备和严格执行规章制度。网管不要将主机用于个人用途,应尽量少用主机浏览器来浏览网页、收发邮件,避免因此而感染病毒、木马或暴露信息。

防治结合。要树立起防患于未然的意识,将不安全的因素解决在未发生之前。这是一项长期的工作,要建立起风险论证的机制,分析可能存在的薄弱环节,通过定期安全扫描等技术手段,及早发现存在问题,采取措施;在此基础上应制定出切实可行的安全策略,构建合适的安全结构、确定管理的范围和方法、规划好访问控制的等级权限。正确的规划来自于对现实条件和实际需求的理性分析,既不是贪大求全,也不是仅为一时之需而凑合,应坚持安全第一的原则,宁可牺牲一定性能,也要保证足够安全。防范的多重性和整体性也很重要,只有互为补充的各个防卫层次和手段才能共同构成一个有机整体。此外,使用更多先进可靠的技术手段来加强安全性是必不可少的,安装IIS的防火墙、IIS的增强工具等就可以很大程度上减少受到攻击的可能。

补丁更新。站点的管理员应随时关注最新的漏洞和安全信息、查看有关的补丁公告,及时打上相应补丁,这是维护安全最简单也是最有效的方法。但安全不是绝对的,补丁是在漏洞发现之后才有的,完全信任补丁和防火墙等技术手段是不可取的,许多网管认为系统升级不会出问题,但事实上,在补丁更新时常常对其****享的组件也进行了升级,某些程序有可能不支持升级后的组件从而导致各种安全问题,所以安装不确定的补丁前应在其他机器上做好测试。

3.4应用服务程序

目前,大多数在IIS中运行的ASP、PHP、CGI等应用服务程序存在着这样或那样的安全问题,所以在编写和管理应用服务程序时,应引起足够重视,以便IIS和操作系统进行安全控制。

编程与管理时应尽量将众多的文件进行目录归类;减少用户名和密码在程序中出现的频率,涉及重要信息的程序最好封装在服务器端;对于重要的程序页面应进行访问者来源跟踪验证,只有从合法路径传来的请求才能继续执行;应注意程序的备份文件问题,因为某些编辑器会自动备份修改过的程序文件,这些备份文件有可能被攻击者猜测到并被非法下载;对于程序运行时可能发生的错误和意外要有充分认识,并做出相应的容错处理。

用户数据输入时,应屏蔽HTML、javascript、VBScript等语法和特殊字符,通常情况下可限定用户只允许输入字母与数字,并限制输入的字符长度;对输入合法性的检查不应只在客户端进行,也应同时在服务器端进行。

数据库连接部分更应加强安全性,数据调用方法不要直接出现在程序中,建议在ODBC中设置数据源,再在程序中调用数据源;数据库访问一般情况下只给用户读取存储的权限,不直接给用户修改删除的权限;数据库名应使用无规则字符进行复杂组合,并注意存放位置;必要时可对数据库进行编码和加密,以防数据库被直接下载查看,从而导致重大安全事件的发生。

4结束语

IIS的安全配置与管理不仅仅是一个技术问题,人的因素也相当重要,因为最终是人在执行各项设定和控制,为此,树立良好的安全意识、加强各方面的投入、加强培训学习等是非常重要的,只有从基础做起、从细处做起,才能有效地保障安全。

安全是一项系统工程,不仅有空间跨度,还有时间跨度,进行了安全配置与管理的IIS系统并不是绝对安全的,只能说是在一定的情况下、一定的时间里是安全的,随着持续地发展,其安全状况也在发生着相应的变化,只有让安全意识、安全技术和安全管理贯穿整个过程才能做到最大程度上的安全。




相关文章
  • ASP.NET WEB页面多语言支持解决方案
  • 基于NT(2000)建立安全WEB站点的解决方案
  • 10元打造三机互联方案
  • IE浏览器又发现致命漏洞 目前尚无解决方案
  • 相关软件


    下载首页关于我们广告服务联系方式常见问题隐私声明法律条款本站声明下载帮助发布软件站点地图谷歌卫星地图