王艳丽
摘 要:由于黑客攻击最近在新闻中屡有报导,我们都知道需要认真地对待计算机安全问题。在本文中,Michael Richler分析了一些有趣的网络攻击并说明了它们是如何工作的。您将看到黑客是多么富于创造性,并将了解自己的软件中所包含的一些特性是如何被利用来对付您的。本文讲述了黑客的一些基础知识和攻击手段。
关键词:黑客攻击;网络协议;ICMPIP
一、黑客基础知识
不难想象,本文可选择的攻击类型范围很广。我之所以选取本文所讨论的几种特定攻击,是因为它们不需要太多关于所涉及协议的知识,但仍然能有效地说明了攻击是如何执行的、攻击实际上是多么简单(一旦您知道了详细信息)以及攻击者所需的资源(计算和网络)是多么有限。尽管不可能在本文中涵盖关于黑客攻击的整个主题,但我已尽可能简化基本原理,而仍然盡量多地提供必要信息,以便您理解所描述的攻击。
二、攻击的种类。拒绝服务攻击:通常,黑客瞄准特定系统,闯入系统以便将其用于特定用途。那些系统的主机安全性经常会阻止攻击者获得对主机的控制权。但进行拒绝服务攻击时,攻击者不必获得对系统的控制权。其目标只是使系统或网络过载,这样它们就无法继续提供服务了。拒绝服务攻击可以有不同的目标,包括带宽消耗(bandwidth consumption)和资源缺乏(resource starvation)。
三、分析选定的网络攻击
(一)协议
本段讨论了针对网际控制报文协议(ICMP)和传输控制协议(TCP)上的攻击,这两个协议都属于网际协议(IP)系列。在深入研究关于这些协议的详细信息之前,我打算先在适合于这些协议的环境中讨论它们。
网际控制报文协议(ICMP)是IP的组成部分,但它使用某些IP服务。ICMP提供服务,使主机能够彼此交流控制信息。ICMP由IP和一些更高级别的协议使用,如传输控制协议(TCP)。
传输控制协议(TCP)是本文中讨论的第三个重要协议。TCP的功能比IP更进一步,并提供两个重要特性:连接和服务质量。这意味着您可以在两台主机之间开一个虚拟通道,通过这个通道,使得所发送的包的顺序及其实际传递都得到保障。
接下来更高的一级是应用层协议,如Telnet和SMTP。它们都使用由TCP提供的服务。例如,当您用Telnet连接到主机时,打开一个连接,并且您希望所有输入这个Telnet会话的数据都以正确的顺序发送到接收主机。
(二)理解IP
因为IP提供的是无连接、不可靠、最高效的(best-effort)数据报传递服务,所以IP的使用范围多少受到了限制。但是,它提供两个基本功能:寻址和分段。地址(在IP数据报头中封装为源和目的地地址)用来将数据报传输到其目的地,这个过程称为路由。有两种基本情况:
接收主机和发送主机位于同一子网,这种情况下数据报将被直接从发送方发送到接收方。
接收主机位于不同的子网,这种情况下发送主机将把数据报转发到网关(连接两个子网的IP主机),然后,如果目的地主机在一个与网关相连的子网中,则网关会尝试将数据报传递到目的地主机。如果目的地主机不在与网关相连的子网中,网关将会把数据报转发到另一个网关。这个过程将反复进行,直到能够将数据报传递到其目的地主机为止。
既然我已经介绍了基础知识,现在可以讨论个别协议了。在以下几节中,您将找到关于ICMP和TCP的更详细的信息以及一些使用这些协议的有趣的攻击。
(三)使用ICMP
超时消息:每个IP数据报头中都包含一个字段—称为“生存时间字段”—它指出数据报在被丢弃之前还能在因特网上保持多久。数据报在因特网上保持的时间以跳跃点(hop)衡量,其中一个跳跃点表示数据报通向目的地节点路径上的一个网关。当数据报经过网关转发时,它就将生存时间字段中的值减一。如果处理数据报的网关测定该数据报IP头中的生存时间字段为0,则丢弃该数据报并用超时消息通知源主机。
回应请求和回应应答消息:如果主机A想知道主机B是否是活动的,则主机A会向主机B发送一条ICMP回应请求消息。主机B将用ICMP回应应答消息来应答,以表明自己是活动的。这条消息就是众所周知的ping包。
以上这些并不是ICMP所使用的全部消息类型,但它们能使您大致了解ICMP的用途。接下来我将向您介绍两种ICMP攻击。
目的地不可到达攻击
类别:拒绝服务攻击
描述:如上所述,ICMP目的地不可到达消息向尝试转发消息的网关提供了一种工具,用来通知发送方:因为在数据报目的地地址中指定的主机不可到达,所以无法传递该消息。
如果入侵者获得了网络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的利用程序,攻击者用该程序来执行这种攻击。
(五)传输控制协议(TCP)
在继续讨论攻击之前,我将更详细地讨论TCP的某些方面,这些知识对于下面讨论的攻击是必需的。尤其是TCP包(称为段)的结构、如何在主机之间建立TCP连接和如何关闭连接。
(六)TCP包的结构
与IP数据报类似,TCP段包含头部分、可选(选项)部分和数据部分。现在,让我们更仔细地研究一下TCP头的某些重要字段:
源端口:分配给启动连接的主机上虚连接的端口号。
目的地端口:目的地端口号。这也由启动连接的主机分配,因为只有该主机知道自己“想”连接到哪里。例如,如果您打开到特定主机的Telnet连接,则目的地端口将被设置为23。
序列号和确认号:发送方和接收方使用两个序列号来确保包没有丢失、没有重复以及可以在目的地节点以正确顺序重新组装。
标志:这个字段包含六个控制位:
URG:向接收方表明一接收完数据就进行紧急处理。
ACK:表明确认号字段是有意义的。
PSH:表明必须迅速地将数据传递到接收方。
RST:表明要立即复位连接。
SYN:在需要同步序列号的情况下设置。
FIN:表明不会再有来自发送方的数据了(也就是说,连接将要关闭)。
以上是TCP头中的重要字段,下面关于TCP连接的建立和关闭的几节将使您更好地理解这些字段的用途。
建立和关闭TCP连接。
连接关闭:在发送完所有数据之后,通信伙伴中的一方想要关闭连接。假设是客户机要终止连接。它将通过向服务器发送设置了FIN标志的TCP包来完成该操作。服务器将通过返回设置了ACK标志的包进行确认。从此刻起,客户机将不再向服务器发送任何数据。它将仅以空段确认由服务器发送的数据。当服务器关闭客户机流时,连接关闭。(作者单位:西安体育学院)