由于黑客攻击最近在新闻中屡有报导,我们都知道需要认真地对待计算机安全问题。尽管有许多出版物介绍可以用来确保计算机环境安全的软件,但很少有出版物说明黑客攻击实际上是如何执行的。如果您负责确保公司的计算机环境的安全,那么,理解黑客攻击的工作原理对您就很重要了。在本文中,Michael Pichler 分析了一些有趣的网络攻击并说明了它们是如何工作的。您将看到黑客是多么富于创造性,并将了解自己的软件中所包含的一些特性是如何被利用来对付您的。本文适合于对网络有一定理解,但不一定从事网络领域日常工作的读者。
黑客基础知识
不难想象,本文可选择的攻击类型范围很广。我之所以选取本文所讨论的几种特定攻击,是因为它们不需要太多关于所涉及协议的知识,但仍然能有效地说明了攻击是如何执行的、攻击实际上是多么简单(一旦您知道了详细信息)以及攻击者所需的资源(计算和网络)是多么有限。尽管不可能在本文中涵盖关于黑客攻击的整个主题,但我已尽可能简化基本原理,而仍然尽量多地提供必要信息,以便您理解所描述的攻击。
攻击的种类
稍后您将了解关于所选取的攻击及其执行方式的详细信息。但在开始讨论之前,您需要理解这个领域的一些术语。通常,攻击是按其特征分类的。下面描述了这些特征中的两种:
扫描:扫描或跟踪足迹(footprinting)是黑客的初始信息收集过程的一部分。在黑客能够攻击系统之前,他们需要收集关于该系统的信息,如网络布局、操作系统类型、系统可用服务、系统用户等。黑客可以根据所收集的信息推断出可能的弱点,并选择对选定目标系统的非常好的攻击方法。
拒绝服务攻击:通常,黑客瞄准特定系统,闯入系统以便将其用于特定用途。那些系统的主机安全性经常会阻止攻击者获得对主机的控制权。但进行拒绝服务攻击时,攻击者不必获得对系统的控制权。其目标只是使系统或网络过载,这样它们就无法继续提供服务了。拒绝服务攻击可以有不同的目标,包括带宽消耗(bandwidth consumption)和资源缺乏(resource starvation)。
协议
本文讨论了针对网际控制报文协议(ICMP)和传输控制协议(TCP)上的攻击,这两个协议都属于网际协议(IP)系列。在深入研究关于这些协议的详细信息之前,我打算先在适合于这些协议的环境中讨论它们。图 1 显示了将以太网假定为底层物理网络技术时的网际协议(Internet Protocol)栈的简化图。
图 1. 网际协议栈
如图 1 所示,网络协议通常是分层的。这样做是有意义的,因为底层协议提供很基本的服务,如网络电缆上的信号传输。此外,较高级别的协议提供更复杂的应用层服务,如 Telnet。每个层都使用下面一层的服务,这使得顶层协议能够在物理网络上传输消息。让我们简要地研究一下图 1 中显示的协议。
称为物理层协议的两个底层处理网络电缆上的实际信号传输。高一级别的协议 — 网际协议(IP)使用这一服务。
网际协议(IP)提供“主机对主机”包(或数据报)传递服务。IP 在底层物理网络的边界之间提供最基本的数据报传递形式。反过来,IP 层又提供由网际控制报文协议(ICMP)和传输控制协议(TCP)使用的服务。
网际控制报文协议(ICMP)是 IP 的组成部分,但它使用某些 IP 服务。ICMP 提供服务,使主机能够彼此交流控制信息。ICMP 由 IP 和一些更高级别的协议使用,如传输控制协议(TCP)。
传输控制协议(TCP) 是本文中讨论的第三个重要协议。TCP 的功能比 IP 更进一步,并提供两个重要特性:连接和服务质量。这意味着您可以在两台主机之间开一个虚拟通道,通过这个通道,使得所发送的包的顺序及其实际传递都得到保障。
接下来更高的一级是应用层协议,如 Telnet 和 SMTP。它们都使用由 TCP 提供的服务。例如,当您用 Telnet 连接到主机时,打开一个连接,并且您希望所有输入这个 Telnet 会话的数据都以正确的顺序发送到接收主机。
理解 IP
尽管我将不在本文中介绍任何 IP 级别的攻击,但我确实需要稍微详细地讨论 IP,因为它是 ICMP 和 TCP 的底层协议。
IP 提供在两个设置为 IP 节点的网络节点(称为源和目的地)间传输数据块的服务。源和目的地节点都用 IP 地址标识。要使一个 IP 网络中的两个节点能够通信,那些 IP 地址必须在整个网络中是唯一的。IP 地址(IP 版本 4)是一个 32 位数,通常以点分十进制符号(如 10.0.0.1)表示。
因为 IP 提供的是无连接、不可靠、最高效的(best-effort)数据报传递服务,所以 IP 的使用范围多少受到了限制。但是,它提供两个基本功能:寻址和分段。地址(在 IP 数据报头中封装为源和目的地地址)用来将数据报传输到其目的地,这个过程称为路由。有两种基本情况:
接收主机和发送主机位于同一子网,这种情况下数据报将被直接从发送方发送到接收方。
接收主机位于不同的子网,这种情况下发送主机将把数据报转发到网关(连接两个子网的 IP 主机),然后,如果目的地主机在一个与网关相连的子网中,则网关会尝试将数据报传递到目的地主机。如果目的地主机不在与网关相连的子网中,网关将会把数据报转发到另一个网关。这个过程将反复进行,直到能够将数据报传递到其目的地主机为止。
如果要传输的数据报超过了底层物理层规定的最大包的大小,则 IP 模块会在发送前将该数据报分割成几个较小的包(称为分段),然后在接收中时重新组装它们。
既然我已经介绍了基础知识,现在可以讨论个别协议了。在以下几节中,您将找到关于 ICMP 和 TCP 的更详细的信息以及一些使用这些协议的有趣的攻击。
使用 ICMP
因为 ICMP 是面向包的,所以它在相互连接的网络系统中是不可靠的主机对主机数据报服务,提供无保证的传递。ICMP 使用 IP 的基本支持,就好象是更高级别的协议。但是,ICMP 是 IP 的组成部分 — 这基本上意味着 ICMP 包将 IP 头用于传输 — 而且 ICMP 必须由每个 IP 模块实现。通常,ICMP 用来报告主机上数据报处理中的错误。ICMP 的部分功能包括:
目的地不可到达消息:如果根据网关的路由表,数据报中指定的要转发的目的地地址是不可到达的,则网关会向源主机返回 ICMP 的目的地不可到达消息,通知发送主机包传递不成功。
超时消息:每个 IP 数据报头中都包含一个字段 — 称为“生存时间字段” — 它指出数据报在被丢弃之前还能在因特网上保持多久。数据报在因特网上保持的时间以跳跃点(hop)衡量,其中一个跳跃点表示数据报通向目的地节点路径上的一个网关。当数据报经过网关转发时,它就将生存时间字段中的值减一。如果处理数据报的网关测定该数据报 IP 头中的生存时间字段为 0,则丢弃该数据报并用超时消息通知源主机。
回应请求和回应应答消息:如果主机 A 想知道主机 B 是否是活动的,则主机 A 会向主机 B 发送一条 ICMP 回应请求消息。主机 B 将用 ICMP 回应应答消息来应答,以表明自己是活动的。这条消息就是众所周知的 ping 包。
以上这些并不是 ICMP 所使用的全部消息类型,但它们能使您大致了解 ICMP 的用途。接下来我将向您介绍两种 ICMP 攻击。
目的地不可到达攻击
类别:拒绝服务攻击
描述:如上所述,ICMP 目的地不可到达消息向尝试转发消息的网关提供了一种工具,用来通知发送方:因为在数据报目的地地址中指定的主机不可到达,所以无法传递该消息。
您可能会猜想“目的地不可到达攻击”会是什么情形。让我们假设网关 G 连接了两个网络:网络 10.1.0.0 和网络 10.2.0.0。假设主机 A 地址为 10.1.23.3(因此属于网络 10.1.0.0),它想将数据报发送到主机 B,其地址为 10.2.156.34(因此属于 10.2.0.0)。在传输过程中,数据报将被发送到网关 G,而网关 G 又会将它转发到目的地主机。
如果入侵者获得了网络 10.1.0.0 中一台主机的访问权,那么,他可以广播一条“目的地不可到达消息”,声明网关 G 对于他所在网络的所有主机是不可到达的。这将使网关 G 和网络 10.2.0.0 暂时变得不可用,因而不可能从网络 10.1.0.0 向网络 10.2.0.0 传输任何消息。
这种攻击背后的动机只是使网络或服务暂时瘫痪。因为攻击者不需要功能强大的机器或高速的网络连接来执行这种攻击,所以它特别危险。
Smurf 攻击
类别:拒绝服务攻击
描述:Smurf 攻击是拒绝服务攻击的一种非常可怕的形式,因为它具有放大效应。Smurf 攻击利用 ICMP 回应消息。如上所述,主机 A 每次向主机 B 发送回应请求消息时,主机 B 都会返回回应应答消息以表明自己是活动的。名称“Smurf 攻击”源自一个名为 smurf 的利用程序,攻击者用该程序来执行这种攻击。
在深入研究这种攻击的详细信息之前,我应该解释一下术语电子欺骗(spoofing)。电子欺骗可以解释成用于伪造的网络安全术语。它指的是攻击者有办法构造包含错误数据的网络数据报。例如,攻击者可以从主机 A 向主机 B 发送数据报,但在该数据报头的源地址字段使用主机 C 的 IP 地址。这样,主机 B 就会认为包是来自主机 C 而不是主机 A。实际上,主机 C“假扮”了主机 A,而主机 B 对此一无所知。
知道了这一点,假设攻击者构造了一条 ICMP 回应消息,它的头中包含伪造的任意主机 A 的源地址,如 192.168.2.2。让我们进一步假设主机 A 位于网络 192.168.2.0,并且攻击者将该数据报发送到这个网络的网络广播地址而不是某台特定主机。通过将该数据报发送到网络
文章转载地址:http://www.cnpaf.net/Class/hack/06101110491562625865.html