如何让您的网站更(McAfee)安全






4.47/5 (9投票s)
了解如何让您的网站更安全,以便 McAfee 能够 100% 识别为 McAfee Secured 和 PCI Compliant。
引言
最近,一位客户在服务器遭受严重攻击后,要求确保运行在其上的应用程序在所有方面都得到安全保障。我们选择 McAfee 来确保网站 100% 防黑客。在进行了彻底的应用程序扫描、网络扫描和 PCI 扫描后,McAfee 发现网站存在多处漏洞,我当时想,其中一些漏洞可能存在于我们的大多数网站中。所以,这里列出了一些我们为使网站 100% McAfee 安全并符合 PCI 标准而发现的漏洞及其解决方案。
在深入技术细节之前,我想先澄清一下本文涵盖的内容和不涵盖的内容,以免造成任何虚假期望。本文仅基于我解决漏洞的经验,并以相应的方式呈现。由于其中一些修复需要修改注册表,请务必备份注册表,并自行承担修改的风险。
以下是 McAfee 报告的最重要的漏洞:
漏洞 1
漏洞名称:Microsoft .NET 自定义错误未设置
描述
这是指应用程序未设置自定义错误页面。我们通常使用 web.config 来指定错误页面。但 McAfee 要求两种方式都必须设置。
解决方案
为了修复此漏洞,必须从 IIS 设置错误页面。步骤如下:
- 进入 IIS 管理器
- 右键单击需要 McAfee 安全的项目名称
- 单击“属性”
- 在“属性”框中,单击“自定义错误”选项卡,将出现以下窗口
- 突出显示任一错误类型,然后单击“编辑属性”,会弹出一个小窗口,您可以在其中指定自定义错误页面。
- 单击这两个窗口中的“确定”按钮。
- 只要为任何一个错误指定了一个错误页面,McAfee 就不再认为这是漏洞。
漏洞 2
漏洞名称:crossdomain.xml 中的“允许所有”策略
描述
如果一个网站使用很多 Flash 视频和内容,并且其他网站也在使用它们,那么 crossdomain.xml 就会发挥作用。这个 XML 文件设置了关于哪些网站可以访问其内容的策略,具体到域名。它有一个名为“允许所有”的键 –
<allow-access-from domain="*"/>
根据 McAfee 的说法,这对网站构成了严重的黑客攻击威胁。
解决方案
McAfee 如何扫描文件令人非常困惑,因为即使文件已从根目录 (wwwroot) 中删除,并且该文件的副本仍然存在于服务器的任何位置,McAfee 仍然会找到它并发出警报。最好的解决方案是编辑服务器上该文件的每一个出现位置,删除所有星号(*),并给出将访问视频的特定域名。如果不需要,最好完全删除该文件。
因此,编辑后的文件将如下所示:
<allow-access-from domain="*.yahoo.com"/>
(* 表示域名之前的任何内容,例如 messenger.yahoo.com,也包括所有协议:HTTP 或 HTTPS)
漏洞 3
漏洞名称:在安全通信中使用 SSL v2
描述
远程服务似乎使用 SSL 协议版本 2 来加密流量。
Netscape Communications Corporation 于 1994 年随 Netscape Navigator 1.0 的发布引入了 SSL 2.0,它存在一些众所周知的弱点。例如,SSLv2 在握手期间不提供任何针对中间人攻击的保护,并且使用相同的加密密钥进行消息身份验证和加密。
在 Internet Explorer 7 中,默认的 HTTPS 协议设置已更改为禁用较弱的 SSLv2 协议并启用较强的 TLSv1 协议。默认情况下,Internet Explorer 7 用户仅使用 SSLv3 或 TLSv1 来协商 HTTPS 连接。Mozilla Firefox 预计将在其未来版本中放弃对 SSLv2 的支持。
鉴于几乎所有现代浏览器都支持 SSLv3,禁用对较弱 SSL 方法的支持应该只会产生最小的影响。以下浏览器支持 SSLv3:
- Internet Explorer 5.5 或更高版本 (PC)
- Internet Explorer 5.0 或更高版本 (Mac)
- Netscape 2.0 (国内版) 或更高版本 (PC/Mac)
- Firefox 0.8 或更高版本 (PC/Mac/Linux)
- Mozilla 1.7 或更高版本 (PC/Mac/Linux)
- Camino 0.8 或更高版本 (Mac)
- Safari 1.0 或更高版本 (Mac)
- Opera 1.7 或更高版本 (PC/Mac)
- Omniweb 3.0 或更高版本 (Mac)
- Konqueror 2.0 或更高版本 (Linux)
根据 https://www.pcisecuritystandards.org/pdfs/pcissc_assessors_nl_2008-11.pdf 的一份评估员更新报告,“……评估授权方(ASV)必须识别使用 SSL 2.0 传输持卡人数据的情况,并将其视为一次失败。”
解决方案
SSL 相关协议也可以在其他服务端口上运行。典型端口包括:465、993、995、2078、2083、2087、2096、8443 等。每个应用程序都有自己的配置选项来处理 SSL 协议。
要解决此问题,需要打开注册表编辑器。
- 单击“开始”,单击“运行”,键入 regedt32 或键入 regedit,然后单击“确定”。
- 在注册表编辑器中,找到以下注册表项:
HKey_Local_Machine\System\CurrentControlSet\Control\SecurityProviders \SCHANNEL\Protocols\SSL 2.0\Server
- 在“编辑”菜单上,单击“添加值”。
- 在“数据类型”列表中,单击“DWORD”。
- 在“值名称”框中,键入 Enabled,然后单击“确定”。(该值将自动设置为 0 – 禁用)
- 下次重新启动系统后,SSL V2 将被永久禁用。
参考:http://support.microsoft.com/default.aspx?scid=kb;en-us;187498。
漏洞 4
漏洞名称:弱支持的 SSL 密码套件
描述
远程主机支持使用弱加密或无加密的 SSL 密码。此漏洞对所有传输敏感信息的 SSL/TLS 会话都有效。
PCI 将对称密钥系统定义为 80 位以上加密的强密码。
解决方案
解决此问题非常简单,但仍需要修改注册表。步骤如下:
- 单击“开始”,单击“运行”,键入 regedt32 或键入 regedit,然后单击“确定”。
- 在注册表编辑器中,找到以下注册表项:
HKey_Local_Machine\System\CurrentControlSet\Control\SecurityProviders \SCHANNEL\Ciphers
- 在“Cipher”键下有几个密码。
- 找到加密位小于 128 位的密码。
- 像上一个案例一样,为每个密码创建名为
Enabled
,值为 0 的DWORD
值。 - 为了方便起见,我在上面的图片中用红色箭头标记了它们。
- 此项不需要重启系统。
现在服务器已安全。
上述安全问题是大多数系统普遍存在的主要问题。但除此之外,可能还有一些容易修复的次要漏洞,例如:
- 在页面中使用 robots.txt。(通常由网络营销团队插入以跟踪用户点击)。
- 目录扫描器:暴露常用目录。这可以通过 URL 重写和关闭“目录浏览”来解决。
注意:对于上述漏洞,可能需要进行一些小的注册表修改。因此,强烈建议在进行任何操作之前备份注册表。如果出现任何问题,只需删除 SCHANNEL 注册表项并重启计算机,该项将自动重新生成。
历史
- 2009 年 3 月 4 日:初始发布