书城计算机网络纵横于天地之间——互联网络技术
48636300000025

第25章 互联网络安全(2)

2003年3月24日,美国和伊拉克的第二次海湾战争开始。战争表面上开始于美国的轰炸,但实际上在互联网上早已进行。美国的情报机构在战前向伊拉克发送了大量的电子邮件,列数了伊拉克总统萨达姆的种种“罪行”,进行策反工作;同时,来自世界各地的计算机向美国政府和军方的网站发起了攻击。

也许对于平民百姓而言,似乎信息战还相距甚远,但是,由于互联网作为最快捷的信息传播平台,网络上的每一台计算机事实上都是信息渗透和宣传的对象。

1996年12月,美国国防部公布了秘密指令《信息对抗》(Information Operation),以代替“信息战(Information Warfare)”的概念。

按照美国人的定义,信息对抗是指“在任何时候,为了影响敌方的信息和信息系统,同时保护己方的信息和信息系统所采取的各种行动”,而信息战是指“在危机或冲突期间,为了达到或支持某些特定目标,针对一个或多个特定的敌方所进行的信息对抗”。

从两个定义中,可以看到,美国人在其秘密指令中把信息战的范畴和方式进行了大大的扩展。这一点,不仅对美国,而且对世界未来信息安全的发展,将会产生深远的影响。

“信息对抗”概念的提出,表明美国把信息战完全提升到了战略的层面,更加强调充分利用“媒体战”、“心理战”、“网络战”等等手段,控制媒体和网络,进行信息渗透和威慑,从而牟取战略和战术利益。

二、来自网络的安全威胁

(一)病毒

病毒(Virus)是计算环境中最广泛的安全威胁,也是历史最悠久的信息攻击方式。目前,病毒最常用的传播途径就是互联网。

什么是病毒?

病毒是一种可执行程序,病毒程序能够通过各种途径实现传播和自我复制。

病毒的定义并不是以其是否具有破坏作用而决定,事实上,任何未经用户允许而进行自我复制的程序都是病毒。

1.病毒的特征

制造病毒的目的主要是恶作剧、系统攻击和信息盗窃。

病毒要具有一定的危害性,两个主要特征是不可缺少的:传染性和隐蔽性。病毒能够利用各种系统和网络机制进行自我复制,这是病毒危害力增强的主要方法。经过复制后的病毒代码通过各种途径,人为或者自动进行传播扩散。

病毒的复制和传播过程必须具有隐蔽性,通过各种方法隐藏自己的行为和代码。如果一个病毒不具有隐蔽性,就不能很好地实现其传播过程,其威胁程度也就会大大降低。

系统或网络感染病毒后表现的主要症状有:

(1)程序运行缓慢;

(2)程序大小改变;

(3)内存被大量占用;

(4)屏幕显示混乱;

(5)磁盘空间减少;

(6)硬盘不能访问;

(7)出现新文件;

(8)浏览器配置被修改等等。

病毒对系统和用户的影响程度不同,关于病毒的定义存在一定的争议。有人认为只有造成了系统或者数据破坏的才是病毒。这种观点是完全错误的。

病毒的最本质特征不是其传染性和隐蔽性,而是其破坏性。这种破坏性既包括了系统的崩溃,也包括数据的破坏,同时也包括了对信息的可信性的破坏。

如果一个程序未经允许,擅自安装到你的计算机上,或者虽然经过了你的允许,但是提供的是你不想要的功能,这必然导致你会对自己的系统或者存储的信息的可信性发生怀疑。

随着互联网的发展,目前出现了一个“流氓软件”的概念。所谓的流氓软件是指一些公司出于利益的目的,利用互联网发布一些插件程序,更改用户的浏览器或者搜集用户信息,向用户发送广告。这些公司信誓旦旦,大言不惭地讲这些所谓的软件是无害的,所以不是病毒。

事实上,所谓的“流氓软件”具有病毒的所有特征:通过网络进行传染,未经允许擅自安装,故意隐藏。

我们可以给出一个比较全面的关于病毒的定义:

病毒是利用网络和存储媒体等途径进行传播,未经用户允许擅自驻留用户系统或者虽经用户允许但是提供了秘密的或恶意的功能,破坏用户的系统和数据,搜集用户隐私信息,占用用户资源,并在一定程度上试图掩盖程序行为或者有意阻止用户删除的程序。

病毒和其他恶意程序的主要区别是其传染性和破坏性。

流氓软件也是病毒。

2.有哪些病毒?

软件技术发展到现在,病毒出现了许多变化。对病毒类型的划分,并没有一个标准的方法。

我们可以对病毒的种类作一个简单的概括:

(1)特洛伊木马

这个名称来源于希腊的古老传说。

特洛伊木马可以藏身于执行程序中,也可以藏身于非可执行程序中。当木马程序被启动后,可以在远程对其进行控制,发出指令,搜集用户信息或者对用户的系统和数据进行破坏。

(2)宏病毒

宏病毒是用脚本语言或者宏语言编写的小程序。宏病毒的流行是从Microsoft在其Office系统中提供宏的编程能力开始的。宏病毒的传播主要是通过支持宏的文档,如Word字处理器的DOC文件。与其他病毒相比,宏病毒由于采用宏的脚本语言,所以其编写会更容易。

(3)执行程序病毒

执行程序病毒是病毒的最早形式,从Unix开始。执行病毒的影响是随着微软公司的DOS操作系统而逐渐增大的。顾名思义,执行病毒的特点是感染执行程序,通过执行程序实现病毒的传播。在DOS和Windows下,典型的可执行程序有EXE、COM和BAT文件,以及在Windows下的INF文件,都是进行病毒传播的主要载体和入口。

(4)引导区病毒

引导区病毒的传播可以依赖与执行程序。不同的是,引导区病毒感染或者破坏磁盘的引导区。当系统启动,触发病毒的破坏机制,有可能造成硬盘分区不能识别。此时,只有依靠专业人员或者工具才能解决。

(5)蠕虫病毒

蠕虫病毒通过计算机网络进行传播。一般来讲,单纯的蠕虫病毒不改变系统信息,只是通过网络从一台机器的内存传播到其他机器的内存,计算网络地址,将自身的病毒通过网络发送。有时它们在系统存在,一般除了内存不占用其他资源。蠕虫的最大危害是利用网络进行不停的复制,占用计算机系统的资源和网络带宽,使系统不能正常工作,网络速度变慢。有一些蠕虫病毒会利用多种途径进行传播,如电子邮件等。

(6)复合型病毒

道高一尺魔高一丈,随着反病毒技术的发展,病毒技术也在不断进步。所谓的复合型病毒是在病毒的驻留、繁殖、传染和破坏性等方面采用多种机制。这种病毒具有多种特征,隐蔽性更强,清除更加困难。

1986年,一种“Brain”病毒开始通过软盘实现了大范围传播。这是第一次使病毒的概念在计算机领域得到普及。

迄今为止,20年过去了。在这20年内,病毒也已经进入了互联网时代,具有更大的破坏性。

在美国的网站列出了20年内破坏力最大的10种计算机病毒:

(1)1998年的CIH病毒

这个病毒于1998年6月爆发于中国台湾,被认为是有史以来最危险、破坏力最强的计算机病毒之一。在全球范围内造成了2000~8000万美元的损失。

(2)1999年的梅利莎(Melissa)病毒

这是一个最有名的宏病毒,1999年3月26日爆发,感染了15%~20%的商业PC,给全球造成的损失大概在3~6亿美元。

(3)2000年的我爱你(I Love You)病毒

2000年5月3日首先爆发于中国香港,似乎是中国人的作品。是一种利用Visual Basic脚本语言写的病毒,给全球带来的损失在100~150亿美元之间。

(4)2001年的红色代码(Code Red)病毒

2001年7月13日爆发,给全球带来的损失大概是26亿美元。

(5)2003年的SQL S1ammer病毒

于2003年1月25日爆发。该病毒的主要攻击对象是互联网的服务器,大约50万台服务器被攻击。

(6)2003年的冲击波(B1aster)病毒

于2003年夏天爆发,几十万台计算机被感染,给全球造成的损失在20~100亿美元。

(7)2003年的大无极F(Sobig.F)病毒

于2003年8月19日爆发,为此前Sobig变种,给全球带来的损失在50~100亿美元。

(8)2004年的贝革乐(Bagle)病毒

2004年1月18日爆发,给全球带来数千万美元以上的损失。

(9)2004年的MyDoom病毒

2004年1月26日爆发,在高峰时期,导致网络加载时间慢50%以上。

(10)2004年的Sasser病毒

2004年4月30日爆发,给全球带来了数千万美元损失。

3.传播途径和方法

病毒的自我复制过程就是典型的传染过程。病毒的传播途径主要有:

(1)网站页面脚本

利用网络脚本的特点,加载插件,传播病毒。利用插件是自从互联网普及后最常见的传播方式。由于浏览器对插件的支持,使病毒代码有了藏身之地。

(2)文件拷贝与安装

通过文件的拷贝,利用执行程序或批处理机制,是在DOS时期的病毒传播机制。目前,磁盘已经不是主要的文件复制的媒体,但是利用网络或者光盘,把病毒附在执行程序内,当用户执行程序的时候,实现病毒的传播。

(3)文档模版

类似微软公司Office办公系统中的宏的机制,本来是非常有用的机制,对于提高办公过程中文档制作的效率有一定的价值。但是由于宏代码的可执行性,为病毒的传播提供了一条新的途径。

(4)网络

这里通过网站或者文件下载进行病毒传播,都是利用互联网作为传播途径。通过网络还有另外一种传播方式,就是直接对网络和网络的主机进行主动攻击,而不是通过文件的复制。同样,这种病毒具有自我复制能力。

(二)为什么说TCP/IP不安全

TCP/IP不是一个安全的协议体系。事实上,我们并没有一个安全的网络和协议体系,所有的安全工作似乎都是在修补互联网上的漏洞。

有一个非常普遍的信息攻击方式,称为“目的地不可到达攻击”,是利用TCP/IP协议体系本身的缺陷实施的攻击,我们可以看看这种方式的原理。

在TCP/IP协议体系中,IP实现“主机对主机”包(或数据报)的传递服务。

网际控制报文协议(ICMP)是IP层的组成部分,但它需要使用某些IP服务,所以在TCP/IP的架构模型中,ICMP和IP位于同一层,但是偏上的位置。

ICMP的主要作用是通信的计算机之间交流控制信息,主要是用于主机通信错误信息。

在ICMP中,有三种重要的控制消息(还有其他类型):

(1)目的地不可到达消息

源主机向一个目的地址发送数据报,如果在路由器中的路由表不能查找到改目的地址及其路径,此时数据报中的目的地址是不可到达的,路由器向源主机返回ICMP的目的地不可到达消息,通知该次通信不能成功。

(2)超时消息

在每个IP数据包头中有一个“生存时间字段”指示数据包在被丢弃之前在网络的持续时间。数据包在网上保持的时间以跳跃点(hop)衡量,其中一个跳跃点表示数据包通向目的地节点路径上的一个路由器(网关)。当数据报经过路由器转发的时候,生存时间字段的值减一。如果一个数据包的生存时间字段值为0,此时路由器将丢弃该数据包并向源主机发送超时消息。

(3)回显请求和回显应答消息

设有主机A要向主机B传送数据,希望知道B是否是活动的(开机并且能够实现连接),此时主机A可以向B发送ICMP回显请求消息。如果B是活动的,则ICMP回显应答消息来进行回答。当A收到该应答消息后,则可以确认B是活动的,且可以完成正常通信。鼎鼎有名的PING就是实现这个过程。

这种方式利用一台入侵的主机,就可以使网络和服务瘫痪。

利用TCP/IP协议本身的机制对网络进行攻击,除了上面所述目的地不可到达攻击以外,还有多种方法。

(三)网络嗅探

这个词汇是Sniffer,翻译为嗅探器。

Sniffer的工作原理是使网卡工作在混杂模式(Promiscuous Mode),此时按照以太网的特点,网卡将对所收到的所有数据包予以接收,而不管其接收者到底是谁。利用软件对这些收到的数据进行处理,提取有价值的信息,就是典型的网络监听模式。

我们在互联网发送的数据,在被传送到电缆上以前,在网络的第二层会被划分成很小的数据块,这些数据块按照一定的格式,加上头和尾以及其他必要的控制信息,组成为帧(Frame)。

数据被分解成许多个帧,最终传送到网络上。实际上,电缆上的信息是一位一位在传送,接收方收到以后,又重新组成帧。帧最终会被重组为传送的数据。

通信的过程,就是一个分解和重组的过程。

在一个帧的不同部分具有不同的功能,以太网的前12个字节存放源地址和目的地址。

帧是由计算机中的网络驱动程序组成的,通过网卡传送到电缆上。接收端进行相反的逆过程。

在正常情况下,网络上的计算机收到所有的数据帧,但是对目的地址不是自己的数据不进行任何处理。

如果设置网卡,使其工作在混杂模式,此时就可以捕获网络上的所有数据。

网络嗅探是一种非常典型的网络攻击方式,通过这种监听过程,可以捕获网络上传输的账号、口令以及其他机密信息。