Web 攻击剖析

了解最常见的攻击类型

与以往相比,Internet 上托管了越来越多的应用程序。从数据库到服务等所有内容都迁移到了基于 Web 的格式。自然,这会增加 Internet 上应用程序和服务的数量,从而出现更多针对这些目标的攻击。因此,了解一些常见攻击的工作原理有助于为您的组织提供保护。

Sean-Philip Oriyano, IT 讲师, Greater Detroit

自 1990 年以来,Sean-Philip Oriyano 就一直积极致力于 IT 领域。在他的整个职业生涯中,他曾经担任过顾问支持专家和高级讲师等诸多职位。如今,他是一名 IT 讲师,专门研究各种公共和私有实体的基础设施和安全主题。Sean 曾经效力于驻扎在北美以及全球其他地方的美国空军、美国海军和美国陆军。他通过了 CISSP、CHFI、CEH、 CEI、 CNDA、SCNP、SCPI、 MCT、MCSE、和 MCITP 认证,此外他还是 EC-Council、ISSA、Elearning Guild 和 Infragard 的成员。


developerWorks 投稿作者

2009 年 2 月 19 日

对于 Web 上托管的应用程序、Web 站点以及服务,其中相当一部分都会遭遇到意图实施某类攻击的黑客带来的破坏。简单地说,虽然 “攻击原因并不明显”,但是人们总是试图破坏、攻击、利用、修改、窃取或以其他方式干扰您的站点和应用程序。

遗憾的是,目前的 Internet 环境日趋复杂并且极不友好。如果有人试图破坏您的应用程序,需要考虑几个问题。基本上,攻击者拥有多个防御者不具备的有利条件。例如,攻击者拥有用于共享信息的完整基础设施,并具有组织和制造各种破坏的强烈愿望。主要的威胁是那些希望通过您的应用程序 “获得一些乐趣” 的恶意人员拥有无限的时间、金钱和资源。这些优势再加上缺乏基本的道德良知,进一步加剧了威胁。永远不要低估或忽视这些不良企图:这样将非常危险。

您成为攻击目标的可能性有多大?一项统计数字可以为您提供依据。根据应用程序的流行度,攻击幅度可以为一小时攻击几次至同一时间段内攻击数百甚至数千次。事实上,只要应用程序联网并公开给外部,那么就会立刻成为攻击目标或攻击未遂的目标。一般来说,公开给 Internet 的托管应用程序每周会遭受 400,000 次以上的各种(不同程度的)攻击。

无论您是否为攻击目标,为保证安全,都应该认识到自己可能成为目标。谨记如果服务或应用程序放置在 Internet 上,那么就存在一定危险。您所托管的应用程序或站点的类型也在很大程度上影响所遭受的攻击的类型和频率。例如,如果托管联机数据库应用程序或电子商务站点,则一定会成为攻击者的目标。如果您托管的是 blog,则不太可能成为攻击的主要目标(除非您的 blog 十分受欢迎)。

本篇文章关注较流行的攻击和攻击者的类型,帮助您了解攻击的实现原理,以便了解它们如何影响您的组织。

攻击者:脚本 kiddy 和有组织的犯罪

组织面临的大多数攻击包括随机、无组织的攻击和有组织的、有针对性的攻击 —— 两者往往都是自动进行的。自动完成的攻击具有不同的复杂性,有的攻击直接针对目标或根据时机乘虚而入,更多的一种情况是通过一些系统实施攻击,但是这些系统甚至不知道自己被用作攻击的工具。至于在这类攻击中牵涉到多少系统,无法做出肯定的估测,但是已经发现被利用的系统涉及所有领域 —— 包括小公司或大型企业。

这些攻击由谁来实现呢?大多数情况下,这些自动进行的攻击由黑客社区中技能水平最低的人来实施 —— 即所谓的 脚本 kiddy。脚本 kiddy 通常在黑客社区中并不具备较高的知识水平,但这并不意味他们不危险。当脚本 kiddy 启动一个攻击,他们通常不了解这种行为的后果,如潜在地破坏系统或无意识地执行拒绝服务攻击(DoS)。这类人通常为一些网络新手,他们发现扫描程序或密码破解器(password cracker)等新的应用程序,并针对比较大的目标运行这些应用程序以寻求一些 “有趣” 的结果,这些攻击常常来自学院或大学的校内网并指向 “外界” 目标。

脚本 kiddy 启动的攻击表面看起来像是有组织的团体或犯罪组织。在某些情况下,脚本 kiddy 本身就是有组织的犯罪组织的成员,或其他企图获得金钱收益或进行恐怖活动的组织的成员。他们甚至出现在一些边缘群体中,如黑客主义

定义

黑客主义 使用 Web 破坏和拒绝服务攻击等黑客技术对具有政治色彩的目标进行攻击。

脚本 kiddy 揭秘

在考虑脚本 kiddy 的威胁时,应该谨慎考虑可能的攻击目标,这一信息可以为保护您或您的组织提供重要帮助。总的来说,根据他们的技术经验,他们的目标通常很简单:使用最快最简单的技术获得对单个或一组系统的控制。此外,脚本 kiddy 通常根据访问的难易程度来选择目标,而不考虑系统的相对重要性,甚至不考虑系统是否易于遭到破坏或攻击导致的其他不稳定性。

以下是脚本 kiddy 经常使用的攻击过程:

  • 构建一个当前在线并且可访问的系统数据库。 攻击者可能使用多种免费软件工具(如 Angry IP scanner 或 Nmap)执行一个简单的 ping 扫描,以获得一个列表。
  • 扫描发现的每个系统,发现漏洞并利用该漏洞。攻击者可以使用 Nessus 和其他多种工具执行扫描。
  • 获得系统控制。根据实际漏洞的不同,该步骤可以通过多种方式来实现。
  • 隐藏证据。在该步骤中,脚本 kiddy 将使用一项技术掩饰其踪迹或渗透行为的证据。但是在大多数情况下,脚本 kiddy 不执行该步骤。
  • 修改系统。该步骤通常包括替换核心系统文件或更改系统配置。脚本 kiddy 通常使用一些自动化工具来完成该步骤。
  • 享受成果。系统被破坏后,攻击者将实施以下任一步骤 —— 收集数据或破坏另一个系统。

定义

rootkit 是一个或一组程序,隐藏在用户系统上,为系统外的人员提供管理控制。Rootkit 将隐藏它们的组件并通过更改日志文件和清除其他有意义的标记来破坏踪迹,这样管理员就无法使用这些信息发现某个系统受到了攻击。

在阅读该过程时要注意,尽管这些步骤看上去很复杂,但脚本 kiddy 很可能使用自动化工具执行这些任务。Internet 上存在大量执行这些任务的工具,可以轻松下载并运行。可用的工具包括任何用于替换文件、启用系统远程控制、跟踪系统行为的工具,甚至极其危险的 rootkit

考虑到某些情况下,脚本 kiddy 可能将结果或行为发布到新闻组或 blog,让其他人了解如何进行攻击以及攻击的目标,进而使您成为更多人的攻击目标。系统被破坏后,攻击者可以挑选 “菜单” 中的任何行为,其中包括攻击其他系统或将工具放置在系统上,伺机获取重要数据。

这些人可能实现哪种类型的攻击呢?在大多数情况下,该级别的攻击者将尝试实现最简单的攻击:更改 Web 站点 —— 通常称为 破坏(defacement)。这样做的动机可能多种多样。破坏 Web 站点的原因可能纯粹是为了赢得其他人的 “倾慕”,或者出于对以前雇主的怨恨。很少有攻击是为了敲诈或骗取公司财产。


攻击

当攻击者在您的 Web 站点或应用程序后端 “描绘” 某个目标时,通常出于以下两个目的之一:阻碍合法用户对站点的访问,或者降低站点的可靠性。为实现这些目标,攻击者可能实施传统 DoS 或分布式拒绝服务(DDoS)攻击。攻击者可能通过破坏站点来对其造成不利影响,浏览站点以查找重要数据或以感染的文件的形式破坏数据。以下是一些较 “流行” 的攻击。

分布式拒绝服务

在目前的媒体中,经常会涉及到 DoS 攻击。但是在大多数情况下,实际涉及到的是分布式 DoS 攻击。无论是从技术观点还是从威胁类型的观点讲,二者都存在显著区别。DDoS 攻击比 DoS 攻击更加危险,因为它们包括复杂的基础设施,在该基础设施内,攻击者破坏多个系统,这些系统用于启动针对受害程序的协同攻击。攻击系统的数量有数百、数千甚至数百万个。无论是单个系统还是少数几个系统,结果都是灾难性的,您的应用程序可能在一段时期内不可用。

此类型攻击中使用的系统可能以多种方式被破坏并受到蠕虫或病毒感染。在更复杂的情况下,rootkit 可能用于启动攻击。

了解蠕虫病毒

另一个破坏 Web 站点或应用程序的常见方式是使用蠕虫。蠕虫的定义如下,蠕虫 是一个自包含软件组件,可以自动执行可识别和攻击目标系统漏洞的探测操作。此外,蠕虫被设计为能够作为自身生命周期的一部分进行复制,通常,这表示它将不断扫描、感染和复制,并在该过程中感染更多的系统。

在某些情况下,除简单的复制功能外,蠕虫还可执行其他功能:作为一个封装的负载的部署机制。蠕虫可以包含各种类型的负载,但是这里仅介绍一种较常见并且最危险的负载:Internet 中继聊天(Internet Relay Chat,IRC)bot。当 IRC 客户机被部署到系统内时,可以使用它对 IRC 网络的其他部分发出命令,然后,接受命令的部分作为 DDoS 模式的一部分,对其他作为攻击目标的 IRC 客户机发出命令。

但是,将蠕虫作为基于 IRC 的高级网络的部署机制并不是它的惟一潜在用途。蠕虫还可以通过病毒、rootkit 或其他修改系统的软件设备交付负载。其结果通常相同:蠕虫成为攻击者出色的攻击平台。

要注意的另一点是即使是脚本 kiddy 也能够轻松访问任何蠕虫。要了解蠕虫的更多信息,可以在 Google 上搜索 “蠕虫源代码”。您将搜索到 1000 余种可能 —— 通常为开源的。这些源代码的确值得网络防御者深思。


攻击对您的影响

在发现可实现的攻击类型后,应考虑如何保护您的组织。尽管不能将与 Web 站点或应用程序联机相关的风险完全消除,但可以对其保持警惕并修补可能存在的漏洞。请看下列 —— 虽然比较简单 —— 应该加强防御的位置。

Web 服务器

在特定 Web 服务器平台上可以实施的防御措施有许多种 —— 在此无法逐一介绍。但这里有一些基本原则。

首先要加强防御的位置是 Web 服务器。这里的 Web 服务器 是指 Web 服务器应用程序和运行该应用程序的操作系统。不要忘记查看平台本身的配置错误、缺失的补丁和修补程序以及常规漏洞。在分析服务器时,还需要考虑底层和周边硬件,因为这是问题和解决方案的一部分。相关研究显示,路由器、交换机等基础设施正在成为更具吸引力的目标。对硬件的破坏与对软件的破坏同样具有毁灭性。

服务和应用程序

每个系统 —— 无论是来自受欢迎的供应商还是开源系统 —— 都安装了服务和应用程序,并且在运行时都会受到攻击者的破坏。了解平台的详细信息和需要保护的内容可以增强系统安全性。

内容

最终的目标:攻击者经常寻找的内容 —— 即服务器上有利用价值的内容。攻击者将跟踪联机数据库等内容并试图获取以后会用到的有价值的信息 —— 例如,信用卡或客户信息。您需要不断了解自己的环境以及如何保护这些内容。

棘手的用户问题

最后一个值得提及的事项是基于碳的元素(carbon-based element)—— 我喜欢称之为第 8 层 问题(稍后讨论)—— 用户。不要忘记,与通过社会工程或由于无知而受到攻击的技术漏洞一样,在组织内工作的用户和支持人员也是极具吸引力的攻击目标。为保护您的组织免受此类威胁,应该针对适当的安全实践培训员工和用户。


结束语

目前,Internet 上托管了越来越多的应用程序。随着各个组织将应用程序转移到该环境,威胁也不断增加。为避免成为攻击目标,应该了解您的环境、攻击的实现以及如何使用适当的防御措施。适当的调查和了解将对您大有帮助。

参考资料

学习

获得产品和技术

  • Nessus 中,漏洞扫描程序提供了多种重要扫描特性,如快速发现、资产分析和漏洞分析。
  • Nmap 是一款用于网络浏览或安全审计的免费开源工具。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Web development
ArticleID=370607
ArticleTitle=Web 攻击剖析
publish-date=02192009