阅读:3489回复:1
保护 Web 服务器的安全应该注意哪些方面?
Web 服务器是组织的众多公开部分之一,并且最容易成为攻击目标。Web 服务器体现了一种有趣的矛盾逻辑 — 如果不公开储存,如何与别人共享组织的信息?解决这个矛盾是个费力不讨好的苦差事;但它非常重要。
在进一步讨论之前,我们先看看 “被公开” 的 Web 服务器所面临的一些威胁。 Web 服务器面临的威胁 现在,Web 服务器面临许多威胁,大部分威胁与您在系统中配置的应用程序、操作系统和环境有关。在这里,我仅归纳了最常见的服务器威胁。 拒绝服务 拒绝服务(DoS)是一种 “老牌” 服务器攻击。这种攻击很简单,通常由技术水平较低的被称为脚本小子(script kiddies)的年轻人发动此类攻击。总体而言,DoS 攻击通过一个系统攻击另一个系统,其目的是消耗后者的所有资源(比如带宽和处理器时间),从而无法进行合法请求。通常,我们认为这是一种无聊的攻击,但您一定不要因此放松警惕,因为它造成的许多问题会让您半夜睡不着觉。 分布式拒绝服务 分布式拒绝服务(DDoS)攻击是 DoS 攻击的增强版,因为它更加恶劣、更加恼人。DDoS 攻击的目标和 DoS 一样,但它的规模更大,也更加复杂。在 DDoS 攻击中,攻击者不是通过一个系统攻击另一个系统,而是使用多个系统攻击另一个系统,有时这种发出攻击的系统甚至多达几十万个。如果说 DoS 攻击仅会让人感觉讨厌的话,那么 DDoS 攻击则是致命的,因为它能迅速使服务器离线。不过,实施 DDoS 攻击需要很高明的技术。 比较常见的 DDoS 攻击包括:
Web 页面更改攻击 在 Internet 上经常可以看到 Web 页面被更改。顾名思义,Web 页面更改源于攻击者利用 Web 服务器的不良配置修改 Web 页面,其原因有很多,比如为了捉弄别人或推行某种政治主张。 SQL 注入 结构化查询语言(SQL)注入 是专门针对数据库的攻击。在这种攻击中,攻击者利用数据库或 Web 页面的设计缺陷从数据库提取信息,甚至操纵数据库的信息。虽然我不能详细解释这种攻击是如何实施的,但如果您了解 SQL 的话,就可以找到相关的答案。如果您在 Web 服务器上驻留数据库的话,一定要了解这种攻击。 不良代码 任何开发人员或信息技术人员都知道,不良的编程习惯会带来问题。不良代码源于众多因素,包括培训质量差、新手或应用程序的质量没有保证。从好的方面讲,不良代码会给人添麻烦,并且某些特性不能按预期工作;从坏的方面讲,包含不良代码的应用程序就成了最大的安全隐患。 打包代码 这个问题在某种程度上也与不良代码有关,但是有一点不同:这个问题源于为了方便地获得预编译或预编写的组件,在构建应用程序时将使用到它们,从而缩短开发周期。不利的一面是,您用于构建应用程序的组件可能不像内部代码那样经过严格的测试,因此可能会给应用程序带来隐患。另外,有些开发人员并不懂得分析代码,也不知道如何将 “打包” 代码放到应用程序中。至少我见过这样一种情况,一位开发人员通过 “打包” 代码为应用程序提供身份验证机制,同时又偷偷地通过电子邮件将凭证发送给第三方。 实施保护 我已经向您介绍存在的常见威胁,现在我们看看如何进行自我保护。 首先,我将阐述保护 Web 服务器的 6 点计划:
其他细节 除了这 6 点计划之外,还有很多其他方法可以增强组织的系统安全。接下来,我们看看一些引起问题的原因,以及如何解决问题。 错误配置 随着硬件和软件日益变得复杂,以及 IT 团队的人员越来越少,检测能力可能会下降。幸运的是,使用漏洞扫描器、自动扫描器,以及借助简单的培训和勤奋能够减少错误配置问题。 标题(Banner)信息 如果您了解标题信息,并知道从哪里找到它,那么您将能获得许多信息。标题信息能够反映可能有助于攻击者的版本信息。 例如,当您向 Web 服务器发出获取一个静态内容的请求(比如很基础的 .html 或 .htm 文件)时,返回的响应将附带有内容位置头部。在一些服务器的默认配置中,这个内容头部将引用一个 IP 地址,或者可能提供也可能不提供完全限定域名(FQDN)。在最坏的场景中,这个头部能够反映内部 IP 地址信息以及其他数据。下面看看清单 1 中的头部。 清单 1. 示例内容位置头部 HTTP/1.1 200 OK Server: <web server name and version> Content-Location: http://w.x.y.z/index.htm Date: Thu, 1 Jan 2009 14:03:52 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 31 Dec 2008 18:56:06 GMT ETag: "067d136a639be1:15b6" Content-Length: 4325 这个头部提供许多关于您的服务器的信息,但不用担心:Web 服务器能够根据特定组织的要求修改或简化这些信息。(查看您的 Web 服务器文档了解更多信息)。 权限 权限在某些场合下仍然是一个问题。它们的分配和计划通常不正确或不恰当,从而让个人得以访问不应该访问的服务器位置或应用程序。要经常进行检查,确保您的服务器管理员仅拥有合适的权限:这也被称为最小特权。 错误消息 我们经常收到可怕的 404 消息,它表明无法找到我们所查找的信息,或者这个信息已经被攻击者利用。如果您仔细看,就会发现它提供了更多的信息。对攻击者而言,Web 服务器或应用程序产生的错误消息能够反映它们的配置信息、所使用的库和数据库连接字符串等等。幸运的是,您可以改变它。您应该在开发和测试应用程序时充分利用所有错误消息,通过它们查找问题。但一旦将应用程序或服务器部署到生产环境之后,您应该禁用错误消息,或配置为仅显示常见信息。(查看您的 Web 服务器文档了解更多信息)。 服务 在构建用于驻留 Web 服务器或应用程序的系统时,您应该仔细规划好需要哪些特性和功能,然后根据这个目标构建服务器。一般而言,当您了解服务器的用途之后,您就以此为依据启用所需的服务和特性,并且删除所有不需要的东西。记住,启用和保留所有服务和应用程序将让攻击者有机可乘。 协议 与对待服务一样,您应该禁用或删除任何用不到的协议(比如 NetBIOS)。 用户帐户 在安装操作系统时,操作系统和应用程序常常设置了默认的用户帐户。为了安全起见,您应该关注帐户。您应该查看现有的用户帐户,禁用或删除不需要的帐户。对于需要使用的帐户,应该加强或更改帐户密码。 示例和测试文件 某些 Web 服务器或应用程序还附带有示例和测试文件,以展示产品的用途。在安全的环境中,应该从所有生产 Web 服务器和应用程序中删除这些文件,因为攻击者能够利用它进行非法访问。 端口 查看应用程序和 Web 服务器需要使用的端口,并启用和监控它们。事实上,您应该关闭不使用的端口,并在防火墙中阻止它。 其他保护措施 为了让宿主环境更加安全,您可能需要用到以下措施:
结束语 保护 Web 服务器和驻留在其上的应用程序是一项艰巨的任务,但这项任务并非不可完成。通过一些研究和适当的努力(可能需要偶尔喝杯浓咖啡熬熬夜),您就能够获得更加安全的宿主环境,并避免以后可能发生的麻烦事。 |
|
沙发#
发布于:2016-09-23 15:47
攻击方式这么多。学习了!
|
|
|