历史上有名的病毒
发布时间:2025-05-20 12:51:05 发布人:远客网络
一、历史上有名的病毒
1、电脑病毒的起源(节录自牛顿杂志)
2、电脑病毒并非是最近才出现的新产物,事实上,早在一九四九年,距离第一部商用电脑的出现仍有好几年时,电脑的先驱者约翰.范纽曼(John Von Neumann)在他所提出的一篇论文 [复杂自动装置的理论及组织的进行],即已把病毒程式的蓝图勾勒出来,当时,绝大部份的电脑专家都无法想像这种会自我繁植的程式是可能的,可是少数几个科学家默默的研究范纽曼的所提出的概念,直到十年之后,在美国电话电报公司(AT&T)的贝尔(Bell)实验室中,这些概念在一种很奇怪的电子游戏中成形了,这种电子游戏叫做 [磁蕊大战](core war)。
3、磁蕊大战是当时贝尔实验室中三个年轻程式人员在工馀想出来的,他们是道格拉斯麦耀莱(H.Douglas McIlroy),维特.维索斯基(Victor Vysottsky)以及罗伯.莫里斯(Robert T. Morris),当时三人年纪都只有二十多岁.
4、附注: Robert T. Morris就是后来写了一个 Worm,把 Internet搞的天翻地覆的那个 Robert T. Morris Jr.的爸爸,当时大 Morris刚好是负责 Arpanet网路安全.
5、磁蕊大战的玩法如下:两方各写一套程式,输入同一部电脑中,这两套程式在电脑?记忆系统内互相追杀,有时它们会放下一些关卡,有时会停下来修理(重新写)被对方破坏的几行指令;当它被困时,也可以把自己复制一次,逃离险境,因为它们都在电脑的记忆磁蕊中游走,因此得到了磁蕊大战之名.
6、这个游戏的特点,在於双方的程式进入电脑之后,玩游戏的人只能看著萤幕上显示的战况,而不能做任何更改,一直到某一方的程式被另一方的程式完全 [吃掉]为止.
7、磁蕊大战是个笼统的名称,事实上还可细分成好几种,麦耀莱所写的程式叫 [达尔文]这包含了 [物竞天择,适者生存]的意思.它的游戏规则跟以上所描述的最接近,双方以组合语言(Assembly Language)各写一套程式,叫有机体(organism),这两个有机体在电脑里争斗不休,直到一方把另一方杀掉而取代之,便算分出胜负.在比赛时 Morris经常匠心独具,击败对手.
8、另外有个叫爬行者程式(Creeper)的,每一次把它读出时,它便自己复制一个副本.此外,它也会从一部电脑[爬]到另一部有连线的电脑.很快地电脑中原有资料便被这些爬行者挤掉了.爬行者的微一生存目地是繁殖.为了对付[爬行者],有人便写出了[收割者](Reaper).它的唯一生存目的便是找到爬行者,把它们毁灭掉.当所有爬行者都被收割掉之后,收割者便执行程式中最后一项指令:毁灭自己,从电脑中消失.[侏儒](Dwarf)并没有达尔文等程式聪明.却可是个极端危险人物.它在记忆系统中迈进,每到第五个[地址](address)便把那里所储存的东西变为零,这会使的原本的程式停摆.
9、最奇特的就是一个叫[印普](Imp)的战争程式了,它只有一行指令,那就是
10、MOV是[MOVE]的代表,即移动的意思.它把身处的地址中所载的[0]写(移)到下一个地址中,当印普展开行动之后,电脑中原有的每一行指令都被改为[MOV 01].换句话说,萤光幕上留下一大堆[MOV 01].[双子星](Germini)也是个有趣的家伙.它的作用只有一个:把自己复制,送到下一百个地址后,便抛弃掉[正本].从双子星衍生出一系列的程式.[牺牲者](Juggeraut)把自己复制后送到下十个地址之后;而[大雪人](Bigfoot)则把正本和复制品之间的地址定为某一个大质数.想抓到大雪人可是非常困难的.此外,还有全录(Xerox)柏路阿图研究中心的约翰.索殊(John F.Shoch)所写的[蠕虫](Worm),它的目的是要控制侵入的电脑.
11、在那些日子里,电脑都没有连线,而是互相独立的,因此并不会出现小莫礼士所引起的病毒瘟疫.如果有某部电脑受到[感染],失去控制,工作人员只需把它关掉便可.但是当电脑连线逐渐成为社会结构的一部份之后,一个或自我复制的病毒程式便很可能带来?穷的祸害了.因此长久一来,懂的玩[磁蕊大战]游戏的电脑工作者都严守一项不成文的规定:不对普罗大众公开这些战争程式的内容.
12、一九八三年,这项规定被打破了.科恩.汤普逊(Ken Thompson)是当年一项杰出电脑讲得奖人.在颁奖典礼上,他作了一个演讲,不但公开地证实了电脑病毒的存在,而且还告诉所有听众怎样去写自己的病毒程式.他的同行全都吓坏了,然而这个秘密已经流传出去了.一九八四年,情况愈复杂了.这一年,[科学美国人]月刊(Scientific American)的专栏作家杜特尼(A. K. Dewdney)在五月号写了第一篇讨论[磁蕊大战]的文章,并且只要寄上两块美金,任何读者都可以收到它所写得有关写程式的纲领,在自己家中的电脑中开辟战场.
13、在一九八五年三月份的[科学美国人]里,杜特尼再次讨论[磁蕊大战]-----和病毒.在文章的开头他便说:[当去年五月有关[磁蕊大战]的文章印出来时,我并没有想过我所谈论的是那么严重的题目]文中并第一次提到[病毒]这个名称.他提到说,义大利的罗勃吐.些鲁帝(Roberto Cerruti)和马高.么鲁顾帝(Marco Morocutti)发明了一种破坏软体的方法.他们想用病毒,而不是蠕虫,来使得苹果二号电脑受感染.
14、些鲁弟写了一封信给杜特尼,信内说:[马高想写一个像[病毒]一样的程式,可以从一部苹果电脑传染到另一部苹果电脑,使其受到感染.可是我们没法这样做,直到我想到,这病毒要先使磁碟受到感染,而电脑只是媒介.这样,病毒就可以从一片磁碟传染到另一片磁碟了.]
15、 1975年,美国科普作家约翰·布鲁勒尔(John Brunner)写了一本名为《震荡波骑士》(Shock Wave Rider)的书,该书第一次描写了在信息社会中,计算机作为正义和邪恶双方斗争的工具的故事,成为当年最佳畅销书之一。
16、 1977年夏天,托马斯·捷·瑞安(Thomas.J.Ryan)的科幻小说《P-1的春天》(The Adolescence of P-1)成为美国的畅销书,作者在这本书中描写了一种可以在计算机中互相传染的病毒,病毒最后控制了 7,000台计算机,造成了一场灾难。
17、 1983年 11月 3日,弗雷德·科恩(Fred Cohen)博士研制出一种在运行过程中可以复制自身的破坏性程序,伦·艾德勒曼(Len Adleman)将它命名为计算机病毒(computer viruses),并在每周一次的计算机安全讨论会上正式提出,8小时后专家们在 VAX11/750计算机系统上运行,第一个病毒实验成功,一周后又获准进行 5个实验的演示,从而在实验上验证了计算机病毒的存在。
18、 1986年初,在巴基斯坦的拉合尔(Lahore),巴锡特(Basit)和阿姆杰德(Amjad)两兄弟经营着一家 IBM-PC机及其兼容机的小商店。他们编写了Pakistan病毒,即 Brain。在一年内流传到了世界各地。
19、 1988年 3月 2日,一种苹果机的病毒发作,这天受感染的苹果机停止工作,只显示“向所有苹果电脑的使用者宣布和平的信息”。以庆祝苹果机生日。
20、 1988年 11月 2日,美国六千多台计算机被病毒感染,造成 Internet不能正常运行。这是一次非常典型的计算机病毒入侵计算机网络的事件,迫使美国政府立即作出反应,国防部成立了计算机应急行动小组。这次事件中遭受攻击的包括 5个计算机中心和 12个地区结点,连接着政府、大学、研究所和拥有政府合同的50,000台计算机。这次病毒事件,计算机系统直接经济损失达 9600万美元。这个病毒程序设计者是罗伯特·莫里斯(Robert T.Morris),当年 23岁,是在康乃尔(Cornell)大学攻读学位的研究生。
21、罗伯特·莫里斯设计的病毒程序利用了系统存在的弱点。由于罗伯特·莫里斯成了入侵 ARPANET网的最大的电子入侵者,而获准参加康乃尔大学的毕业设计,并获得哈佛大学 Aiken中心超级用户的特权。他也因此被判3年缓刑,罚款1万美元,他还被命令进行 400小时的新区服务。
22、注:在此文中,把蠕虫、我们常提的病毒定为病毒不同种类。
23、 1988年底,在我国的国家统计部门发现小球病毒。
24、--------------------------------------------------------------------------------
25、在病毒的发展史上,病毒的出现是有规律的,一般情况下一种新的病毒技术出现后,病毒迅速发展,接着反病毒技术的发展会抑制其流传。操作系统进行升级时,病毒也会调整为新的方式,产生新的病毒技术。它可划分为:
26、1987年,计算机病毒主要是引导型病毒,具有代表性的是“小球”和“石头”病毒。
27、当时得计算机硬件较少,功能简单,一般需要通过软盘启动后使用。引导型病毒利用软盘得启动原理工作,它们修改系统启动扇区,在计算机启动时首先取得控制权,减少系统内存,修改磁盘读写中断,影响系统工作效率,在系统存取磁盘时进行传播。1989年,引导型病毒发展为可以感染硬盘,典型的代表有”石头2”。
28、1989年,可执行文件型病毒出现,它们利用DOS系统加载执行文件的机制工作,代表为”耶路撒冷”,”星期天”病毒,病毒代码在系统执行文件时取得控制权,修改DOS中断,在系统调用时进行传染,并将自己附加在可执行文件中,使文件长度增加。1990年,发展为复合型病毒,可感染COM和EXE文件。
29、1992年,伴随型病毒出现,它们利用DOS加载文件的优先顺序进行工作。具有代表性的是”金蝉”病毒,它感染EXE文件时生成一个和EXE同名的扩展名为COM伴随体;它感染COM文件时,改为原来的COM文件为同名的EXE文件,在产生一个原名的伴随体,文件扩展名为COM。这样,在DOS加载文件时,病毒就取得控制权。这类病毒的特点是不改变原来的文件内容,日期及属性,解除病毒时只要将其伴随体删除即可。在非DOS操作系统中,一些伴随型病毒利用操作系统的描述语言进行工作,具有典型代表的是”海盗旗”病毒,它在得到执行时,询问用户名称和口令,然后返回一个出错信息,将自身删除。批次型病毒是工作在DOS下的和”海盗旗”病毒类似的一类病毒。
30、1994年,随着汇编语言的发展,实现同一功能可以用不同的方式进行完成,这些方式的组合使一段看似随机的代码产生相同的运算结果。幽灵病毒就是利用这个特点,每感染一次就产生不同的代码。例如”一半”病毒就是产生一段有上亿种可能的解码运算程序,病毒体被隐藏在解码前的数据中,查解这类病毒就必须能对这段数据进行解码,加大了查毒的难度。多形型病毒是一种综合性病毒,它既能感染引导区又能感染程序区,多数具有解码算法,一种病毒往往要两段以上的子程序方能解除。
31、1995年,在汇编语言中,一些数据的运算放在不同的通用寄存器中,可运算出同样的结果,随机的插入一些空操作和无关指令,也不影响运算的结果,这样,一段解码算法就可以由生成器生成。当生成的是病毒时,这种复杂的称之为病毒生成器和变体机就产生了。具有典型代表的是”病毒制造机”VCL,它可以在瞬间制造出成千上万种不同的病毒,查解时就不能使用传统的特征识别法,需要在宏观上分析指令,解码后查解病毒。变体机就是增加解码复杂程度的指令生成机制。
32、1995年,随着网络的普及,病毒开始利用网络进行传播,它们只是以上几代病毒的改进。在非DOS操作系统中,”蠕虫”是典型的代表,它不占用除内存以外的任何资源,不修改磁盘文件,利用网络功能搜索网络地址,将自身向下一地址进行传播,有时也在网络服务器和启动文件中存在。
33、1996年,随着Windows和Windows95的日益普及,利用Windows进行工作的病毒开始发展,它们修改(NE,PE)文件,典型的代表是DS。3873,这类病毒的急智更为复杂,它们利用保护模式和API调用接口工作,解除方法也比较复杂。
34、1996年,随着Windows Word功能的增强,使用Word宏语言也可以编制病毒,这种病毒使用类Basic语言,编写容易,感染Word文档文件。在Excel和AmiPro出现的相同工作机制的病毒也归为此类。由于Word文档格式没有公开,这类病毒查解比较困难。
35、1997年,随着因特网的发展,各种病毒也开始利用因特网进行传播,一些携带病毒的数据包和邮件越来越多,如果不小心打开了这些邮件,机器就有可能中毒。
36、1997年,随着万维网上Java的普及,利用Java语言进行传播和资料获取的病毒开始出现,典型的代表是JavaSnake病毒。还有一些利用邮件服务器进行传播和破坏的病毒,例如Mail-Bomb病毒,它就严重影响因特网的效率。
二、震网病毒的深度分析
2010年10月,国内外多家媒体相继报道了Stuxnet蠕虫对西门子公司的数据采集与监控系统SIMATIC WinCC进行攻击的事件,称其为“超级病毒”、“超级工厂病毒”,并形容成“超级武器”、“潘多拉的魔盒”。
Stuxnet蠕虫(俗称“震网”、“双子”)在2010年7月开始爆发。它利用了微软操作系统中至少4个漏洞,其中有3个全新的零日漏洞;伪造驱动程序的数字签名;通过一套完整的入侵和传播流程,突破工业专用局域网的物理限制;利用WinCC系统的2个漏洞,对其开展破坏性攻击。它是第一个直接破坏现实世界中工业基础设施的恶意代码。据赛门铁克公司的统计,截止到2010年09月全球已有约45000个网络被该蠕虫感染,其中60%的受害主机位于伊朗境内。伊朗政府已经确认该国的布什尔核电站遭到Stuxnet蠕虫的攻击。
安天实验室于7月15日捕获到Stuxnet蠕虫的第一个变种,在第一时间展开分析,发布了分析报告及防范措施,并对其持续跟踪。截止至本报告发布,安天已经累计捕获13个变种、600多个不同哈希值的样本实体。 2.1运行环境
Stuxnet蠕虫在以下操作系统中可以激活运行: Windows 2000、Windows Server 2000 Windows XP、Windows Server 2003 Windows Vista Windows 7、Windows Server 2008当它发现自己运行在非Windows NT系列操作系统中,即刻退出。
被攻击的软件系统包括: SIMATIC WinCC 7.0 SIMATIC WinCC 6.2但不排除其他版本存在这一问题的可能。
样本被激活后,典型的运行流程如图1所示。
样本首先判断当前操作系统类型,如果是Windows 9X/ME,就直接退出。
接下来加载一个主要的DLL模块,后续的行为都将在这个DLL中进行。为了躲避查杀,样本并不将DLL模块释放为磁盘文件然后加载,而是直接拷贝到内存中,然后模拟DLL的加载过程。
具体而言,样本先申请足够的内存空间,然后Hookntdll.dll导出的6个系统函数: ZwMapViewOfSection ZwCreateSection ZwOpenFile ZwClose ZwQueryAttributesFile ZwQuerySection为此,样本先修改ntdll.dll文件内存映像中PE头的保护属性,然后将偏移0x40处的无用数据改写为跳转代码,用以实现hook。
进而,样本就可以使用ZwCreateSection在内存空间中创建一个新的PE节,并将要加载的DLL模块拷贝到其中,最后使用LoadLibraryW来获取模块句柄。
此后,样本跳转到被加载的DLL中执行,衍生下列文件:
%System32%\drivers\mrxcls.sys%System32%\drivers\mrxnet.sys%Windir%\inf\oem7A.PNF%Windir%\inf\mdmeric3.PNF%Windir%\inf\mdmcpq3.PNF%Windir%\inf\oem6C.PNF其中有两个驱动程序mrxcls.sys和mrxnet.sys,分别被注册成名为MRXCLS和MRXNET的系统服务,实现开机自启动。这两个驱动程序都使用了Rootkit技术,并有数字签名。
mrxcls.sys负责查找主机中安装的WinCC系统,并进行攻击。具体地说,它监控系统进程的镜像加载操作,将存储在%Windir%\inf\oem7A.PNF中的一个模块注入到services.exe、S7tgtopx.exe、CCProjectMgr.exe三个进程中,后两者是WinCC系统运行时的进程。
mrxnet.sys通过修改一些内核调用来隐藏被拷贝到U盘的lnk文件和DLL文件(图2)。
2.3传播方式Stuxnet蠕虫的攻击目标是SIMATIC WinCC软件。后者主要用于工业控制系统的数据采集与监控,一般部署在专用的内部局域网中,并与外部互联网实行物理上的隔离。为了实现攻击,Stuxnet蠕虫采取多种手段进行渗透和传播,如图3所示。
整体的传播思路是:首先感染外部主机;然后感染U盘,利用快捷方式文件解析漏洞,传播到内部网络;在内网中,通过快捷方式解析漏洞、RPC远程执行漏洞、打印机后台程序服务漏洞,实现联网主机之间的传播;最后抵达安装了WinCC软件的主机,展开攻击。
2.3.1.快捷方式文件解析漏洞(MS10-046)
这个漏洞利用Windows在解析快捷方式文件(例如.lnk文件)时的系统机制缺陷,使系统加载攻击者指定的DLL文件,从而触发攻击行为。具体而言,Windows在显示快捷方式文件时,会根据文件中的信息寻找它所需的图标资源,并将其作为文件的图标展现给用户。如果图标资源在一个DLL文件中,系统就会加载这个DLL文件。攻击者可以构造这样一个快捷方式文件,使系统加载指定的DLL文件,从而执行其中的恶意代码。快捷方式文件的显示是系统自动执行,无需用户交互,因此漏洞的利用效果很好。
Stuxnet蠕虫搜索计算机中的可移动存储设备(图4)。一旦发现,就将快捷方式文件和DLL文件拷贝到其中(图5)。如果用户将这个设备再插入到内部网络中的计算机上使用,就会触发漏洞,从而实现所谓的“摆渡”攻击,即利用移动存储设备对物理隔离网络的渗入。
拷贝到U盘的DLL文件有两个:~wtr4132.tmp和~wtr4141.tmp。后者Hook了kernel32.dll和ntdll.dll中的下列导出函数:
FindFirstFileW FindNextFileW FindFirstFileExWNtQueryDirectoryFile ZwQueryDirectoryFile实现对U盘中lnk文件和DLL文件的隐藏。因此,Stuxnet一共使用了两种措施(内核态驱动程序、用户态Hook API)来实现对U盘文件的隐藏,使攻击过程很难被用户发觉,也能一定程度上躲避杀毒软件的扫描。
2.3.2. RPC远程执行漏洞(MS08-067)与提升权限漏洞
这是2008年爆发的最严重的一个微软操作系统漏洞,具有利用简单、波及范围广、危害程度高等特点。
具体而言,存在此漏洞的系统收到精心构造的RPC请求时,可能允许远程执行代码。在Windows 2000、Windows XP和Windows Server 2003系统中,利用这一漏洞,攻击者可以通过恶意构造的网络包直接发起攻击,无需通过认证地运行任意代码,并且获取完整的权限。因此该漏洞常被蠕虫用于大规模的传播和攻击。
Stuxnet蠕虫利用这个漏洞实现在内部局域网中的传播(图6)。利用这一漏洞时,如果权限不够导致失败,还会使用一个尚未公开的漏洞来提升自身权限(图1),然后再次尝试攻击。截止本报告发布,微软尚未给出该提权漏洞的解决方案。
2.3.3.打印机后台程序服务漏洞(MS10-061)
这是一个零日漏洞,首先发现于Stuxnet蠕虫中。
Windows打印后台程序没有合理地设置用户权限。攻击者可以通过提交精心构造的打印请求,将文件发送到暴露了打印后台程序接口的主机的%System32%目录中。成功利用这个漏洞可以以系统权限执行任意代码,从而实现传播和攻击。
Stuxnet蠕虫利用这个漏洞实现在内部局域网中的传播。如图7所示,它向目标主机发送两个文件:winsta.exe、sysnullevnt.mof。后者是微软的一种托管对象格式(MOF)文件,在一些特定事件驱动下,它将驱使winsta.exe被执行。
2.3.4.内核模式驱动程序(MS10-073)
2.3.5.任务计划程序漏洞(MS10-092)
Stuxnet蠕虫查询两个注册表键来判断主机中是否安装WinCC系统(图8):
HKLM\SOFTWARE\SIEMENS\WinCC\Setup
图8查询注册表,判断是否安装WinCC
一旦发现WinCC系统,就利用其中的两个漏洞展开攻击:
一是WinCC系统中存在一个硬编码漏洞,保存了访问数据库的默认账户名和密码,Stuxnet利用这一漏洞尝试访问该系统的SQL数据库(图9)。
二是在WinCC需要使用的Step7工程中,在打开工程文件时,存在DLL加载策略上的缺陷,从而导致一种类似于“DLL预加载攻击”的利用方式。最终,Stuxnet通过替换Step7软件中的s7otbxdx.dll,实现对一些查询、读取函数的Hook。
本节综合介绍样本在上述复制、传播、攻击过程中,各文件的衍生关系。
如图10所示。样本的来源有多种可能。
对原始样本、通过RPC漏洞或打印服务漏洞传播的样本,都是exe文件,它在自己的.stud节中隐形加载模块,名为“kernel32.dll.aslr.<随机数字>.dll”。
对U盘传播的样本,当系统显示快捷方式文件时触发漏洞,加载~wtr4141.tmp文件,后者加载一个名为“shell32.dll.aslr.<随机数字>.dll”的模块,这个模块将另一个文件~wtr4132.tmp加载为“kernel32.dll.aslr.<随机数字>.dll”。
模块“kernel32.dll.aslr.<随机数字>.dll”将启动后续的大部分操作,它导出了22个函数来完成恶意代码的主要功能;在其资源节中,包含了一些要衍生的文件,它们以加密的形式被保存。
其中,第16号导出函数用于衍生本地文件,包括资源编号201的mrxcls.sys和编号242的mrxnet.sys两个驱动程序,以及4个.pnf文件。
第17号导出函数用于攻击WinCC系统的第二个漏洞,它释放一个s7otbxdx.dll,而将WinCC系统中的同名文件修改为s7otbxsx.dll,并对这个文件的导出函数进行一次封装,从而实现Hook。
第19号导出函数负责利用快捷方式解析漏洞进行传播。它释放多个lnk文件和两个扩展名为tmp的文件。
第22号导出函数负责利用RPC漏洞和打印服务漏洞进行传播。它释放的文件中,资源编号221的文件用于RPC攻击、编号222的文件用于打印服务攻击、编号250的文件用于提权。 3.1抵御本次攻击
西门子公司对此次攻击事件给出了一个解决方案,链接地址见附录。下面根据我们的分析结果,给出更具体的措施。
1.使用相关专杀工具或手工清除Stuxnet蠕虫
手工清除的步骤为:使用Atool管理工具,结束系统中的父进程不是winlogon.exe的所有lsass.exe进程;强行删除下列衍生文件:
%Windir%\inf\oem6C.PNF删除下列注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRxCls
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRxNET 2.安装被利用漏洞的系统补丁
安装微软提供的下列补丁文件: RPC远程执行漏洞(MS08-067)快捷方式文件解析漏洞(MS10-046)打印机后台程序服务漏洞(MS10-061)内核模式驱动程序漏洞(MS10-073)任务计划程序程序漏洞(MS10-092) 3.安装软件补丁
安装西门子发布的WinCC系统安全更新补丁,地址见附录。
此次攻击事件凸显了两个问题:即便是物理隔离的专用局域网,也并非牢不可破;专用的软件系统,包括工业控制系统,也有可能被攻击。因此,我们对有关部门和企业提出下列安全建议:
加强主机(尤其是内网主机)的安全防范,即便是物理隔离的计算机也要及时更新操作系统补丁,建立完善的安全策略;
安装安全防护软件,包括反病毒软件和防火墙,并及时更新病毒数据库;
建立软件安全意识,对企业中的核心计算机,随时跟踪所用软件的安全问题,及时更新存在漏洞的软件;
进一步加强企业内网安全建设,尤其重视网络服务的安全性,关闭主机中不必要的网络服务端口;
所有软件和网络服务均不启用弱口令和默认口令;
加强对可移动存储设备的安全管理,关闭计算机的自动播放功能,使用可移动设备前先进行病毒扫描,为移动设备建立病毒免疫,使用硬件式U盘病毒查杀工具。相比以往的安全事件,此次攻击呈现出许多新的手段和特点,值得我们特别关注。
Stuxnet蠕虫的攻击目标直指西门子公司的SIMATIC WinCC系统。这是一款数据采集与监视控制(SCADA)系统,被广泛用于钢铁、汽车、电力、运输、水利、化工、石油等核心工业领域,特别是国家基础设施工程;它运行于Windows平台,常被部署在与外界隔离的专用局域网中。
一般情况下,蠕虫的攻击价值在于其传播范围的广阔性、攻击目标的普遍性。此次攻击与此截然相反,最终目标既不在开放主机之上,也不是通用软件。无论是要渗透到内部网络,还是挖掘大型专用软件的漏洞,都非寻常攻击所能做到。这也表明攻击的意图十分明确,是一次精心谋划的攻击。
Stuxnet蠕虫利用了微软操作系统的下列漏洞: RPC远程执行漏洞(MS08-067)快捷方式文件解析漏洞(MS10-046)打印机后台程序服务漏洞(MS10-061)内核模式驱动程序漏洞(MS10-073)任务计划程序程序漏洞(MS10-092)后四个漏洞都是在Stuxnet中首次被使用,是真正的零日漏洞。如此大规模的使用多种零日漏洞,并不多见。
这些漏洞并非随意挑选。从蠕虫的传播方式来看,每一种漏洞都发挥了独特的作用。比如基于自动播放功的U盘病毒被绝大部分杀毒软件防御的现状下,就使用快捷方式漏洞实现U盘传播。
另一方面,在安天捕获的样本中,有一部分实体的时间戳是2013年3月。这意味着至少在3月份,上述零日漏洞就已经被攻击者掌握。但直到7月份大规模爆发,漏洞才首次披露出来。这期间要控制漏洞不泄露,有一定难度。
Stuxnet在运行后,释放两个驱动文件:
这两个驱动文件伪装RealTek的数字签名(图7)以躲避杀毒软件的查杀。目前,这一签名的数字证书已经被颁发机构吊销,无法再通过在线验证,但目前反病毒产品大多使用静态方法判定可执行文件是否带有数字签名,因此有可能被欺骗。图11 Stuxnet伪造的数字签名
根据赛门铁克公司的统计,7月份,伊朗感染Stuxnet蠕虫的主机只占25%,到9月下旬,这一比例达到60%。
WinCC被伊朗广泛使用于基础国防设施中。9月27日,伊朗国家通讯社向外界证实该国的第一座核电站“布什尔核电站”已经遭到攻击。据了解,该核电站原计划于2013年8月开始正式运行。因此,此次攻击具有明确的地域性和目的性。 5.1工业系统安全将面临严峻挑战
在我国,WinCC已被广泛应用于很多重要行业,一旦受到攻击,可能造成相关企业的设施运行异常,甚至造成商业资料失窃、停工停产等严重事故。
对于Stuxnet蠕虫的出现,我们并未感到十分意外。早在去年,安天就接受用户委托,对化工行业仪表的安全性展开过研究,情况不容乐观。
工业控制网络,包括工业以太网,以及现场总线控制系统早已在工业企业中应用多年,目前在电力、钢铁、化工等大型重化工业企业中,工业以太网、DCS(集散控制系统)、现场总线等技术早已渗透到控制系统的方方面面。工业控制网络的核心现在都是工控PC,大多数同样基于Windows-Intel平台,工业以太网与民用以太网在技术上并无本质差异,现场总线技术更是将单片机/嵌入式系统应用到了每一个控制仪表上。工业控制网络除了可能遭到与攻击民用/商用网络手段相同的攻击,例如通过局域网传播的恶意代码之外,还可能遭到针对现场总线的专门攻击,不可轻视。
针对民用/商用计算机和网络的攻击,目前多以获取经济利益为主要目标,但针对工业控制网络和现场总线的攻击,可能破坏企业重要装置和设备的正常测控,由此引起的后果可能是灾难性的。以化工行业为例,针对工业控制网络的攻击可能破坏反应器的正常温度/压力测控,导致反应器超温/超压,最终就会导致冲料、起火甚至爆炸等灾难性事故,还可能造成次生灾害和人道主义灾难。因此,这种袭击工业网络的恶意代码一般带有信息武器的性质,目标是对重要工业企业的正常生产进行干扰甚至严重破坏,其背景一般不是个人或者普通地下黑客组织。
目前,工业以太网和现场总线标准均为公开标准,熟悉工控系统的程序员开发针对性的恶意攻击代码并不存在很高的技术门槛。因此,对下列可能的工业网络安全薄弱点进行增强和防护是十分必要的:基于Windows-Intel平台的工控PC和工业以太网,可能遭到与攻击民用/商用PC和网络手段相同的攻击,例如通过U盘传播恶意代码和网络蠕虫,这次的Stuxnet病毒就是一个典型的例子。 DCS和现场总线控制系统中的组态软件(测控软件的核心),目前其产品,特别是行业产品被少数公司所垄断,例如电力行业常用的西门子SIMATIC WinCC,石化行业常用的浙大中控等。针对组态软件的攻击会从根本上破坏测控体系,Stuxnet病毒的攻击目标正是WinCC系统。基于RS-485总线以及光纤物理层的现场总线,例如PROFIBUS和MODBUS(串行链路协议),其安全性相对较好;但短程无线网络,特别是不使用Zigbee等通用短程无线协议(有一定的安全性),而使用自定义专用协议的短程无线通信测控仪表,安全性较差。特别是国内一些小企业生产的“无线传感器”等测控仪表,其无线通信部分采用通用2.4GHz短程无线通信芯片,连基本的加密通信都没有使用,可以说毫无安全性可言,极易遭到窃听和攻击,如果使用,将成为现场总线中极易被攻击的薄弱点。工业控制网络通常是独立网络,相对民用/商用网络而言,数据传输量相对较少,但对其实时性和可靠性的要求却很高,因而出现问题的后果相当严重。
传统工业网络的安全相对信息网络来说,一直是凭借内网隔离,而疏于防范。因此,针对工业系统的安全检查和防范加固迫在眉睫。
三、病毒种类 要详细的
1、资料由香港特别行政区政府资讯科技署提供
2、在九十年代中期以前,开机磁区病毒是最常见的病毒种类。这种病毒藏於已受感染的硬磁碟机的主开机磁区,或磁碟操作系统开机磁区内。当软磁碟插入已受感染的个人电脑时,病毒便会把软磁碟开机磁区感染,藉此把病毒扩散。
3、使用受感染的软磁碟进行启动程序时,电脑便会受到感染。在启动电脑的过程中,基本输入输出系统会执行驻於软磁碟开机磁区的病毒编码,因此系统便改为受病毒控制。病毒控制了电脑系统后,便会把病毒编码写入硬磁碟的主开机磁区。之后,便会恢复正常的启动程序。从用户的角度来看,一切情况似乎与正常无异。
4、日后启动电脑时,驻於受感染的主开机磁区的病毒便会启动执行。因此,病毒会进入记忆体,并可随时感染其他经使用的软磁碟。
5、[主开机磁区是硬磁碟的第一个磁区,这个磁区载有执行操作系统的分割控制表及编码。主开机磁区后的16个或以上的磁区通常是空置不用的。
6、硬磁碟机最多可分割为4个储存分区,而磁碟操作系统的扩展分区可细分为多个逻辑驱动器。
7、每个分区的第一个磁区便是开机磁区,这个磁区包含载入分区的操作系统的资料及编码。
8、软磁碟没有主开机磁区。以标准磁碟操作系统格式进行格式化后的软磁碟,在结构上与硬磁碟的磁碟操作系统分区相同。]
9、档案型病毒是一种依附在档案内,经由程式档而非资料档扩散的病毒。电脑在执行受感染的程式时,便会受到感染。这些受感染的程式可能经由软磁碟、唯读光碟、网络及互联网等途径传播。在执行受感染的程式后,随附的病毒便会立即感染其他程式,或可能成为一个常驻程式,以便在日后感染其他程式。在完成这些步骤后,病毒便会恢复执行原本的正常程式。因此,用户在执行受感染的程式时,不易发觉有任何异常的情况。
10、档案型病毒一般会感染有特定副档名的档案。副档名为COM、EXE及SYS的档案,均是常见的病毒感染对象。
11、一九九五年七月,一种新的电脑病毒被人发现,立即使电脑界大感震惊。这种新的病毒称为巨集病毒,它与一直以来出现的病毒不同,可感染资料档而非执行档。其实,这并非一种新的概念,因为有关以巨集语言编写病毒的可行性的研究,始於八十年代后期。在Word程式出现的巨集病毒可以在多个不同的操作平台活动,而且,只要电脑的Word程式是支援Word档案格式的话,便有机会受到感染。换言之,无论使用的是OS/2或Windows版本的Word程式,或是个人电脑或麦金塔(Macintosh)电脑,也可能受到巨集病毒的感染。
12、病毒和抗御病毒技术不断转变,日新月异。随著电脑用户使用新的操作平台/电脑技术,编写病毒的人也会随之而发展新病毒,再作扩散。下文列出部分可能出现新病毒种类的新操作平台/电脑技术:
13、Java病毒一直是一个富争议的话题:究竟可否编写Java病毒?Java病毒可否在电脑之间或经由互联网扩散?以上问题,均曾在不同的新闻组进行讨论。由於Java微应用程式的设计是在受控的环境(称为「sandbox」)内执行,接触不到电脑的档案或网络的接驳,因此,Java病毒在电脑之间扩散的可能性极低。
14、但由於 Java亦像其他标准的程式一样,可让开发人员建立可控制整个系统的应用程式,故Java病毒有其产生及存在的空间。
15、第一种被发现以Java电脑程式开发语言为本的病毒称为「 Java.StrangeBrew」。首次发现日期是一九九八年九月,会感染属Java类别的档案。但这种病毒只会影响独立的Java应用程式档案,以微应用程式执行的档案则不受感染。虽然Java应用程式并不常见,「 Java.StrangeBrew」病毒的扩散也只属於初步阶段,但这种病毒的影响实在不容忽视。随著Java应用程式日趋普及,预料Java病毒的种类也会逐渐增加。
16、跟Java的情况一样,ActiveX被视为将会受病毒入侵的操作平台。若就设计方面将两者比较,在 ActiveX扩散病毒的机会较Java为大。基本上,ActiveX是 Object Linking and Embedding(OLE)的精简版本,会直接接触电脑的 Windows系统,因此可连接到任何的系统功能。此外,ActiveX的用户并非只局限於MS Internet Explorer的用户;现在,Netscape Navigator的附加程式(plug-in)也可使用这种技术。相比之下,Java是在「受控的环境」下执行,或经由一个名为「Java Virtual Machine」的程式才可执行,因此可使Java与操作系统的各项服务隔开。
17、过去,编写病毒的人若要成功编写一种可感染其他电脑的病毒,必须对电脑的基本操作具备相当程度的知识。但随著 Microsoft Office内巨集的出现,编写病毒的工具已准备就绪,而编写的人毋须具备很多资讯科技知识也能胜任。同样,VB Script病毒所发挥作用的操作环境很快便会普及,扩散也甚为容易。
18、VB Script病毒已对电脑用户构成真正威胁。微软公司的原意是包括一种功能强大而易於使用的语言以便轻易取用 Windows 98/NT系统内的资源。VB Script是以人类可阅读的方式编写,所以易於明白。正是这个原因,很多并没有具备高深资讯科技知识的编写病毒的人也可侵入这个领域。
19、以 VB Script编写的程式的第一代病毒藏在以 HTML编写的网页内,经由互联网扩散开去。现时散播力强的 VB Script编写的病毒通常以寄发电子邮件的方式扩散,按用户地址册所列的电邮地址把病毒程式一同寄出。用户执行附件中的程式时,便会帮助病毒扩散。
20、超文本标示语言(英文简称「HTML」)
21、藉由 HTML扩散的病毒是另一个在互联网上引起广泛讨论的话题。有人甚至声称/宣告已发明/发现首只属 HTML种类的病毒。
22、HTML是一种控制网页设计的编写语言。本来,纯 HTML是不会受到感染,因此,只支援 HTML的浏览器也不会有受病毒感染的危险。所谓「HTML病毒」出现的机会实在微乎其微。因此,真正的威胁并非来自浏览互联网的网页,而是来自从互联网下载已感染病毒编码的程式并加以执行。
23、但现时的浏览器大部分都支援其他编写网页的语言,而所谓的「HTML病毒」通常会利用这些编写文本的语言进行扩散。在文本内的病毒通常会藉著网页感染电脑,VBS.Offline便是一个典型的例子。目前,最普遍的文本病毒便是刚讨论过的 VB Script病毒。
24、Lotus Notes用户众多,会是编写病毒的人针对的软件。虽然目前尚未发现本机的 Lotus Notes病毒,但在 Lotus Notes数据库内的 rich-text字段却提供了可供传统病毒(例如:档案型病毒及巨集病毒)驻存的地方。因为有关记录曾进行压缩,所以一般抗御病毒软件不能侦测在 Notes数据库内的病毒。为防范电脑病毒入侵 Notes的操作环境,我们建议用户安装专为 Notes软件而编制的抗御病毒软件。