二、来自网络的安全威胁
(一)病毒
病毒(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年内,病毒也已经进入了互联网时代,具有更大的破坏性。
在美国的“www.techweb.com”网站列出了20年内破坏力最大的10种计算机病毒:
(1)1998年的CIH病毒
这个病毒于1998年6月爆发于中国台湾,被认为是有史以来最危险、破坏力最强的计算机病毒之一。在全球范围内造成了2 000~8 000万美元的损失。
(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 Slammer病毒
于2003年1月25日爆发。该病毒的主要攻击对象是互联网的服务器,大约50万台服务器被攻击。
(6)2003年的冲击波(Blaster)病毒
于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就是实现这个过程。
如图6-1所示,主机A和B分别位于两个网络。
路由器R连接了网络1和网络2,主机A希望和主机B通信,将数据包发送给主机B。入侵者获得了网络1中主机C的访问权。此时入侵者利用网络广播机制,向网络广播目的地不可到达消息,声明R连接的网络不可到达。此时将使网络2和路由器R不可使用,中断所有网络1和网络2的通信。

图6-1 一个攻击的例子
这种方式利用一台入侵的主机,就可以使网络和服务瘫痪。
利用TCP/IP协议本身的机制对网络进行攻击,除了上面所述目的地不可到达攻击以外,还有多种方法。
(三)网络嗅探
这个词汇是Sniffer,翻译为嗅探器。
Sniffer的工作原理是使网卡工作在混杂模式(Promiscuous Mode),此时按照以太网的特点,网卡将对所收到的所有数据包予以接收,而不管其接收者到底是谁。利用软件对这些收到的数据进行处理,提取有价值的信息,就是典型的网络监听模式。
我们在互联网发送的数据,在被传送到电缆上以前,在网络的第二层会被划分成很小的数据块,这些数据块按照一定的格式,加上头和尾以及其他必要的控制信息,组成为帧(Frame)。
数据被分解成许多个帧,最终传送到网络上。实际上,电缆上的信息是一位一位在传送,接收方收到以后,又重新组成帧。帧最终会被重组为传送的数据。
通信的过程,就是一个分解和重组的过程。
在一个帧的不同部分具有不同的功能,以太网的前12个字节存放源地址和目的地址。
帧是由计算机中的网络驱动程序组成的,通过网卡传送到电缆上。接收端进行相反的逆过程。
在正常情况下,网络上的计算机收到所有的数据帧,但是对目的地址不是自己的数据不进行任何处理。
如果设置网卡,使其工作在混杂模式,此时就可以捕获网络上的所有数据。
网络嗅探是一种非常典型的网络攻击方式,通过这种监听过程,可以捕获网络上传输的账号、口令以及其他机密信息。
对账号的捕获和分析,可以获得系统的控制权,从而发起对系统的攻击。
(四)网站不能随便访问
由于互联网的开放性,安装网站是个非常容易的事情,同时,也并没有一个互联网的监督机构对网站的信息和提供的功能负责。所以,网站在作为互联网上的主要被攻击对象的同时,也成为了进行攻击的重要工具。
利用网站进行的信息攻击,主要有以下类型:
(1)网站作为信息欺诈的工具,获取经济利益
“网络钓鱼”是对这种网站的攻击方式非常恰当的形容。信息欺诈的目的主要是获取经济利益。
(2)利用网站的脚本漏洞进行攻击
在网站的页面脚本中,故意嵌入恶意代码,通过脚本漏洞对浏览网站的用户进行攻击。
(3)通过网站获取用户隐私信息
这种方式最具有欺骗性。通过一些合法的方式,获取用户的隐私信息,进行搜集,用于非法的场合。
(4)利用网站的恶意插件驻留用户系统
由于插件技术的发展和成熟,通过网站提供恶意插件。当用户下载插件,同时在自己的系统上对插件的执行又没有进行限制的时候,网站就可以通过插件的运行在客户端实现恶意功能。
当你在网络冲浪的时候,一定要注意具有以下一些特点的网站:
(1)和著名网站相似的域名,特别要留意英文中l(小写字母)和1(阿拉伯数字),m和n,o(小写字母)和0(阿拉伯数字)的区别;
(2)提供了程序或者文档的下载,但是文件的扩展名是.EXE而不是压缩文档的.RAR,ZIP或者文本格式;
(3)在提供服务之前要求用户提供大量的敏感信息,如果你不希望全世界都知道你家里的电话号码,在确保这些信息不会被滥用之前要慎重;
(4)网站提供了大量的链接,而你却不知道这些链接的内容;
(5)购买服务或者物品,需要你预先付款;
(6)要求提供你的手机号码才能使用信息或者服务,注意网站可以通过手机运营商从你的账号直接扣除费用。
(五)后门
Backdoor,就是这个词。
后门是什么?
在来自网络的攻击中,后门是指入侵者为了更容易和隐蔽地进入被攻击对象的计算机或者网络通过各种手段设置的途径。
攻击者设计后门的目的是为了入侵系统更方便,常用的后门技术有以下一些:
(1)口令后门
这是最早和最古老的方法。通过破解口令薄弱的账号,获取系统的控制权。获得控制权后,可以重新设置口令和身份,作为侵入系统的入口。
在信息系统中,都会有用户身份验证的程序。通过控制该程序的源代码,对后门口令进行特殊处理,可以获得系统特权。
(2)Login后门
这是在Unix系统中的常用方法。入侵者获取Login.C的源代码,从而植入后门口令。当用户输入该后门口令后,使其忽视管理员的口令。该方法隐蔽性很强。
(3)服务后门
由于Unix和Linux的代码很容易得到,所以对这两个系统的版本尤其要注意,特别是从网络下载的程序。
这种方法主要是通过特殊的TCP端口,入侵者通过远程对这些端口的连接,获得服务器的控制权,完成入侵动作。
(4)进程隐藏后门
进程隐藏是黑客常用技术,在Windows系统下尤其如此。所谓的进程隐藏就是想方设法隐藏程序启动的痕迹,避免用户从系统中看到入侵程序运行。利用进程隐藏后门可以使入侵进程在用户显示进程列表时不被显示出来。
(5)网络通行后门
入侵者通过网络通行后门隐藏其网络连接。这种方法通过非熟知的网络端口进行通信,有时可以使入侵者越过防火墙。
(六)DOS——最简单和有效的攻击
DOS攻击的中文名称是“拒绝服务攻击”,目的地不可到达攻击就是拒绝服务攻击的一种。
DOS是互联网上常见的攻击方式,攻击的本质就是让硬件和软件失去向用户提供服务的能力。
DOS攻击根据具体的攻击对象可以概括为两种:针对硬件的攻击和针对网络的攻击。
针对硬件的攻击主要是利用硬件的弱点发起攻击。典型的方式是利用网络设备自身处理机制上的缺陷,使设备挂起、崩溃或者重启,从而使网络中断。
网络攻击是利用协议的缺陷,发送数据包,使服务器挂起或者降低性能,就像目的地不可到达攻击。
对DOS进行防范,有一些常见的方法:
(1)抑制广播地址;
(2)过滤ICMP、PING和UDP通信;
(3)通过定时机制有效控制通信队列中挂起的数量;
(4)利用防火墙,过滤无效的连接请求。
(七)注意漏洞
漏洞是什么?
漏洞是硬件、网络、软件等由于设计原因所造成的缺陷。
发现网络、计算机硬件和软件的漏洞,是全世界黑客乐此不疲的事情。而且在所谓的黑客文化里面,这些漏洞要公开。当然,公开的目的似乎是促进软件质量的改进,另外一个作用,就是让有意攻击你的人也共享这个漏洞。
系统的漏洞被发现最多的是微软公司的Windows,几乎每一个新版本出来,立刻就会在网络流传相应的漏洞报告。当然,并不能说Windows就是世界上最差的操作系统,只是因为使用的人最多,而且黑客似乎对它最感兴趣。
在Windows 2000的早期版本中,有一个臭名昭著的输入法漏洞。
Windows启动后,显示这个最熟悉的登录窗口,要求输入用户名和口令。注意一般用户名是缺省的,只要输入口令就可以了。如果口令不正确,Windows将不会允许用户进入。
利用口令验证身份,这是最常用的系统安全措施了。
不幸的是,Windows 2000在这里犯了一个超级低级的错误。
当启动Windows 2000进入登录提示界面的时候,任何用户都可以通过“微软拼音输入法”、“全拼输入法”以及“郑码”等三种输入法的切换,然后进入到“输入法帮助”中去。
利用输入法的帮助,可以打开系统的资源管理器。
此时出现了什么结果?
这意味着已经绕过了用户登录机制。如果用户的“Administrator”默认管理员用户没有修改的话,入侵者就拥有了管理员的身份,可以为所欲为了。
这个漏洞已经很快被改正了。但是类似的还有很多。
对于软件来讲,所有的错误被称为虫子,Bug,这很幽默,几乎很少称为错误,即使给你造成了再大的损失。
可能最有名的虫子是“千年虫”了。这个虫子也称为“两千年问题”,美国人也把它称为“Y2K”。
千年虫问题很简单,就是PC机在20世纪80年代初被 IBM发明的时候,由于当时存储空间非常宝贵,所以采取了一种节省资源的方法,就是把年代的前两位省去,比如1996年1月1日,在计算机中保存为“96年1月1日”。这种表示方法太缺乏远见了,怎么就没有想到21世纪会来得这么快呢?
当然,千年虫的危机很快就过去了。可是你知道当这个问题要爆发的时候美国政府做了什么事情吗?
美国国会通过一个法案:因为千年虫问题造成的损失对软件和计算机公司不予追究。
(八)电子邮件
电子邮件是互联网上最早和最成功的应用,是除了网站以外用户最多的交流工具,理所当然是信息攻击的目标和工具。
和电子邮件相关的信息攻击主要有:
(1)攻击邮件服务器
邮件服务器是网络上提供邮件服务的主机和软件系统。对邮件服务器进行攻击是网络攻击的一部分,几乎所有的网络攻击手段都可以用于攻击服务器。不同的是,还可以利用邮件攻击邮件服务器。想象一下,如果你向邮件服务器传送大批垃圾信息,会有什么问题。让它停止服务太简单了。当然,这里攻击者会知道怎么隐藏自己的,否则很容易会把账号关掉,或者垃圾信息被过滤掉。
邮件炸弹就是这么做的。
(2)通过网络监听窃取邮箱地址
我们前面介绍了嗅探器。可能你会感到很奇怪,你的邮箱地址并没有到处公开,怎么总是有垃圾邮件找到你。
告诉你,这件事情是嗅探器做的。利用嗅探器从网络捕获邮箱地址非常简单,因为每一个邮箱地址都是这样的格式:XXX@XXX.XXX.。这个特征太明显了,注意@符号,把两边的字符串取下来,几乎百分之百是邮箱地址。
(3)攻击邮箱
很简单,直接向你的邮箱发信息就是了。让你的邮箱被封锁,或者经常让你看看一些你不想看的信息。如果你每天筋疲力尽下班回家,坐到计算机跟前,准备处理一下朋友给你的邮件,然而你却收到了几十封垃圾邮件的感觉是非常沮丧的。
对邮箱的攻击还有一种方法,就是从网络截获你的账号,当然包括口令。然后,你就再也没有秘密可言了。
对一些敏感的部门,禁止利用互联网传送邮件是正确的。
(4)利用邮件发送违法或者垃圾信息
做这些事情的人都是有目的的。大部分邮箱都支持群发功能,而且也有人开发出了专门的邮件群发软件。
(5)利用邮件的附件传送恶意程序
邮件都要支持附件,附件是一个计算机文件,同时,这个文件也可以是可执行的,这就够了。