锁定IIS和SQL服务器

  微软的IIS和SQL服务器通常是基于Windows的分布式应用环境的主要部分。这就意味着它们也是最经常受到攻击的目标。在本文中,我们将提供提高这些产品安全性的一些具体建议。

  提高IIS安全性的建议

  IIS中有一个称作ISAPI的编程接口,这个编程接口与那些以DLL为扩展名的文件有关。这些文件也称作ISAPI扩展。

  ISAPI是(Internet Server API)的缩写,是微软IIS web服务器的一个应用程序编程接口(API),因为ISAPI与Web服务器结合的更紧密,这使程序员可以通过使用ISAPI开发出比传统CGI技术执行效率更高的基于web的应用程序。除了微软的IIS之外,还有其它一些厂商的Web服务器产品也支持ISAPI接口。

  ISAPI扩展负责处理如活动服务器页(ASP)、.NET网络服务和基于网络的打印共享等功能。然而,很多这些扩展功能都是不必要的,特别是在你使用IIS 5.0以前版本的时候。这个问题是许多这种扩展(过滤器)都存在可以利用的安全漏洞。臭名昭著的“红色代码”就是利用这些扩展功能的一种恶意程序的例子。你可以仅仅启用网络服务器和应用程序需要的那些ISAPI扩展,严格限制能够与各种扩展功能一起使用的HTTP选项。

  在IIS中设置ISAPI选项

  大多数IIS安装都包括一些简单的应用程序和旨在展示这个网络服务器功能的脚本。它们在设计上并不是很好的考虑了安全,特别是在5.0版本之前。这样,人们利用这些程序的安全漏洞就可以覆盖服务器上的文件或者远程阅览,甚至远程访问敏感的服务器信息,如系统设置和指向可执行程序的路径。在设置任何IIS服务器投入正式使用之前,你至少应该删除“/InetPub/iissamples”目录,删除、移动“/InetPub/AdminScripts”管理员脚本目录或限制对它的访问。微软的IIS安全工具IIS Lockdown Tool对于加强IIS安全是非常有用的。

  任何没有坚持不断地升级补丁和保持最新状态的Web服务器都是恶意活动的主要目标。有规律地及时地修补允许公开访问的web服务器是非常重要的。

  ColdFusion和PHP等网络插件也能够在网络服务器中造成安全漏洞。对这些插件要认真进行设置,并且要查看资源网站和最新的安全公告,了解这些插件需要的最新的补丁和新的漏洞。

  IIS安全检查清单

  1.应用最新的操作系统服务包和IIS的安全升级以及在同一台主机上安装的任何应用程序的最新升级包。考虑使用自动升级工具来自动安装补丁。

  2.安装基于主机的杀毒和入侵检测软件。保持这些软件使用最新的补丁并且经常查看记录文件。

  3.关闭不必要的脚本解释器并且删除它们的二进制文件。例如 perl、perlscript、vbscript、jscript、&#106avascript和php。

  4.使用日志并且经常检查日志记录,最好通过归纳事件的自动化程序来查看记录并且报告异常和可疑的事件。

  5.删除或者限制攻击者突破计算机常用的系统工具。例如,tftp(.exe)、ftp(.exe)、cmd.exe、bash、net.exe、remote.exe,和telnet(.exe)等。

  6.在web服务器上仅运行HTTP服务以及支持这种服务所需的服务。

  7.熟悉和最大限度地减少通过公共网络服务器进入内部网络的任何连接。在面向互联网的系统上关闭文件和打印机共享以及NETBIOS名称解析。

  8.在隔离区使用一个单独的DNS服务器为面向互联网的Web服务器服务。把在隔离区外面的不能够解析的任何查询都引导到其它公共DNS服务器中或者你的服务提供商的服务器中,千万不要引导到你内部的DND服务器。

  9.在面向公众的系统中使用与内部系统不同的帐号和密码制定规则,面向互联网的IIS服务器应该位于防火墙后面的隔离区,隔离区和内部网络之间还有第二层防火墙。面向互联网的IIS服务器不应该是内部活动目录域的一部分,或者使用属于内部活动目录域的账户。

  10.如果有必要的话,封锁所有通向隔离区的端口,80端口或者443端口除外。

  11.在一个硬盘上安装操作系统并且在不同的硬盘上安装网站,以防止目录遍历攻击。

  12.如果你必须使用远程数据协议(或者终端服务协议和远程桌面协议)来管理服务器,把默认的3389端口改为黑客不容易发现的其它端口。

  保证IIS安全的工具

  对于单个服务器使用Windows升级或者自动升级程序。

  在可管理的环境中或者管理员负责多个不同的系统的地方使用系统管理服务器 (SMS) 或者 Windows服务器升级服务(WSUS) 。

  微软基准安全分析器(MBSA) 帮助系统管理员在本地系统和远程系统实施扫描,查找最新的补丁。这个工具在Windows NT 4、Windows 2000、 Windows XP和Windows 2003平台上运行。

  使用IIS Lockdown Tool 或者安全设置向导(SCW)增强你的IIS和服务器。使用URLScan过滤HTTP请求。URLScan是IIS Lockdown Tool 的一部分,经过设置之后能够拒绝“蓝色代码”和“红色代码”等恶意的HTTP请求,甚至在服务器处理这些恶意请求之前就能够拒绝这些请求。

  把这些工具下载到另一台机器上并在你的IIS服务器连接到互联网之前把这些工具复制到你的IIS服务器中。避免在彻底进行分析和使用补丁之前把你的IIS服务器连接到互联网。

  修改默认的SQL服务器端口

  最普遍的SQL的攻击甚至在安全公告也没有包含。这就是使用一个空白的口令企图简单地登录SA账户。微软的SQL服务器安装了默认采用一个口令空白的SA账户,这是你需要修改的第一件事情。

  另一个产生空白口令的常见原因是产品。例如,某些版本的Visio安装微软的SQL服务器2000桌面引擎(MSDE)从来不修改SA口令。用户甚至都不知道他们在运行MSDE。你可以从eEye数字安全公司下载一个程序扫描你的网络查找拥有空白SA账户的SQL服务器。

  SQL服务器安全检查清单

  1.设置一个SA账户口令,并且限制这个账户的使用。你还要定期修改口令以防止口令扩散,并且被开发人员或者太多的管理员所使用。如果任何知道SA口令的人离开公司,你都需要修改SA口令。使用eEye的工具扫描你的网络查找没有SA口令的SQL服务器。

  2.将你的SQL服务器设置在防火墙后面,与你的IIS服务器或者网络服务器分开。仅允许这些指定的网络服务器连接SQL服务器。你的SQL服务器永远不要向互联网开放或者允许公开访问。

  3.从sysadmin角色中删除BUILTIN/Administrators ,然后将SQL管理权限赋予需要SQL管理功能的域账户。

  4.如果可能的话,使用Windows身份识别或者仅使用Windows模式。采用这种方式,潜在的黑客必须首先向这个域验证身份,而不是仅向SQL服务器验证身份。

  5.不要在域控制器上运行SQL服务器。

  6.把SQL服务器启动账户改为非本地帐户。

  7.启用失败登录选项(服务器属性/安全标签),这样你就可以查看失败的登录,看看是否有未经过允许的个人设法访问这个服务器。如果可能的话,监视SQL记录并且使用NETSEND或者电子邮件在SQL中设置报警。

  8.为操作系统和SQL保持最新的补丁更新和服务包。某些选项可以参考确保IIS安全的工具。

  9.