安全中国首页 > 新闻中心 > 业界动态
 

反病毒理念、历史、现状与未来(图)

更新时间:2007-8-15 17:06:46
责任编辑:池天
 
 

今天,似乎没有多少人对反病毒产品的未来进行探索.F-Prot已经不像当年那么风光无限,虽然它的启发扫描的逻辑依然被我所赞叹.卡巴斯基 (Kaspersky)“独孤求败”的寂寞和不能出世的无奈并不为多少外人所知.然而市场毕竟是市场,用户并不关心你的启发扫描模块的优劣.据我所知,有几个厂商的反病毒引擎,已经近4年几乎没有更新过,这些年惟一更新的就是不断的炒作.有的“要求进步”的公司则直接建立了研究室,你别以为这是独立探索最新反病毒技术的地方,事实上这是逆向先进反病毒产品,从而用来亦步亦趋的跟着学的研究室.

每天都是一个变革的开始,给新生的力量带来了机会,Microsoft也正式的介入了这个领域,事实上在遥远的DOS年代Microsoft就染指了一次反病毒市场,那是个时候正好是免疫技术流行的时代,Microsoft错误的以为免疫技术足以应对各种病毒,于是CPAV一度在DOS下流传.然而天山派剑术的轻灵终究无法抵挡昆仑派内力的雄厚,所以Microsoft败得很惨.但Microsoft又是一个善于学习的商家,今天Anti- Spyware 、Windows OneCare 、Windows Defender 卷土重来,一波波态势逼人.

而传闻中MS Anti-Spyware某次升级后会不小心删除Norton Antivirus,这是不是又预示一场不公平的竞争开始.

未来在那里,谁又能看的清呢,于是笔者killer只好寻根一下历史,企图借历史一双慧眼去先知一下未来.现在看来,有所惑有所不惑,把酒夜话,一切尽在不言中.

作者:killer②xfocus.org
大成天下主页:http://www.unnoo.com
作者和他所在的团队2006年开始组建数据安全实验室,一年来,该团队开发的超级巡警受到广大网管、网民的喜爱。在各大下载站点普遍处于反病毒、反木马软件下载量前五名。2006年底DSWLAB团队开发的熊猫烧香专杀工具,有效地帮助了大量受该肆虐病毒影响的用户,2007年,超级巡警将会更好地发力,敬请期待

一、玩的就是概念
AV是我习惯的简写,全名应该叫Anti-Virus,从这个英语字面含义和一些对反病毒历史的追溯,我发现最初人们想表现的并不是杀毒,今天我们总是习惯叫杀毒软件,其实是不准确的。Anti的本意是抵制、防护,它应该叫抗病毒,或者防病毒。不论抗或者防都说明对病毒的未雨绸缪。杀毒则是一种后发补救的策略,虽说亡羊补牢犹未晚,但毕竟还是有一些损失的。
叫杀毒软件则是典型的中国特色,比如健康,中国人一般平时是不太注意健康的,等到有病了才要去看病。中国的反病毒公司出于宣传效果需要,就必然要搞的威风凛凛,给AV技术带来一层杀气腾腾的神秘色彩。
说起概念,我很欣赏一些国外的宣传,这里不防就给NAV做个广告:



看到没,上面这图就是Symentec给自己做的宣传页,诺顿在发布会上用瑜伽诠释了它的文化自由分享,安心沟通,瑜伽的充分舒展身体,意味着自由,意味着无限延伸。
如今的网络你可以安心沟通么?显然不能!网络上广告满天飞,流氓插件群魔乱舞,垃圾邮件像一只只马蜂乱蛰,一些黑客整天无聊的扫来扫去,D站 D得不亦乐乎。这个时候,你认为你需要的,显然不是浪费时间和精力的去检查,去杀灭,你希望的也许是一个安心的防护套件,让我们可以自由、安心的冲浪。
反病毒理念的不同造就各种不同的反病毒产品,不过上天有好生之德,本文作者亦本着万物以自己的喜好为准,所以并不特别推荐你用哪种AV,也请勿问我。

二、混沌初开
自从盘古开天辟地的以来,出来了两个神仙级的人物,一个被人称为Doctor Soloman,一个叫Eugene Kaspersky,另外还有两个叫Peter Norton和Mcafee。这几位神仙有感人间妖风阵阵^-^,病毒横行。决定制定一套法典,用来解救世人,于是他们的研究,促成了当年反病毒理论的基础。这些基础理论,经过后来的一些教授、专家们推广开来,就形成了今天的反病毒体系。
在那个时代,还有无数的高人,自己苦心孤诣的修炼,但终因天资所限、时不与我,或者剑走偏锋,步步险招,无法修炼成正果。
远古的反病毒软件主要有:

Anti-virus collection by V.Bontchev
F-Prot
File Shiled by McAfee
NOD of Slovak AV
TbScan
AVP by E.Kaspersky
Dr.Web by Igor Daniloff
Norton AV
Solomon's Toolkit
LEVEL3 virus dedicated AV by SAC
IBM Anti-Virus

除了这些,还有更多的针对某个病毒的专杀,这里就不一一列出了。值得注意的是:我在这里尽量列出今天你还能熟知的名字,然而尽管我努力,历史终究是无情的。你在上面看到的,一部分和大多数我没列出来的已经成为遥远的过去,只有像我这样喜欢怀旧的人,偶尔会想起那些曾经的同病毒决战的侠士。
最初病毒不多,能掌握写病毒会被人视为天才,好像现在还是这样?大家的抗病毒办法都是针对一个个病毒写专杀,后来因为病毒多了,大家开始编写类似批处理的脚本,这样用户在选择1 2 3 菜单来选择查杀哪个病毒,这本质还是一对一的检测方式。
还有多少朋友记得DOS中那个编制菜单用来选择的命令?
早期的AV几乎都是这样过来的,但是随后神仙们发现这样做不行,病毒数量膨胀的太快,文件格式具备通用处理过程,每次的专杀都有一些重复工作的地方。所以神仙们的反病毒理论逐渐浮出水面,这个时候,开始形成了通用反病毒技术。整个的针对大量的病毒的处理,也开始了模块化分工,扫描/清除,文件修复等。
于是AV开始转型,具备扫描模块、清除模块、特征库,AV外围技术也开始如火如荼的发展起来,主动监控、完整性检查、免疫技术等等。
下面这一段就是最初一个完整的用来清除引导病毒的AV源代码:

=====================================================================
.model tiny
.radix 16
.code
org 100
start:
mov dx,offset message
mov ah,09
int 21
xor ax,ax
int 16
or al,20
cmp al,'y'
je Goforit
mov dx,offset notdone
mov ah,09
int 21
mov ax,4c01
int 21
GoForIt:
xor ax,ax
mov ds,ax
mov ax,word ptr ds:[413]
mov cs:ConvMEM,ax
mov di,offset Int13
mov si,13*4
movsw
movsw
push cs
pop ds
cmp ConvMem,280
je RegConvMem
mov ah,09
mov dx,offset StrangeConv
int 21
RegCOnvMem:
mov ax,0201
mov bx,offset OrgSector
mov cx,1
mov dx,80
int 13
call TunnelInterrupts
mov ax,0201
mov bx,offset NewSec
mov cx,1
mov dx,80
int 13
push cs cs
pop es ds
mov di,offset NewSec
mov si,offset OrgSector
mov cx,200
repz cmpsb
jcxz NoDifference
mov ax,0301
mov bx,offset OrgSector
mov cx,1
mov dx,80
int 13
mov ah,3c
mov dx,offset sample
xor cx,cx
int 21
xchg bx,ax
mov ah,40
mov dx,offset NewSec
mov cx,200
int 21
mov ah,3e
int 21
LOCKEMIN:
cli
mov ah,09
mov dx,offset fixed
int 21
xor ax,ax
int 16
jmp LOCKEMIN
Nodifference:
mov ah,09
mov dx,offset noprob
int 21
mov ax,4c00
int 21
TunnelInterrupts:
push ax bx cx dx es ds si di
xor ax,ax
mov ds,ax
push word ptr ds:[04]
push word ptr ds:[06]
cli
mov word ptr ds:[04],offset Int1
mov word ptr ds:[06],cs
pushf
pushf
pop ax
or ax,100
push ax
popf
xor ax,ax
call dword ptr cs:[int13] ;tunnel interrupt 13
pushf
pop ax
and ax,0feff
push ax
popf
ExitTunnel:
les bx,dword ptr cs:[Root13]
cli
xor ax,ax
mov ds,ax
pop word ptr ds:[06]
pop word ptr ds:[04]
mov word ptr ds:[13*4],bx
mov word ptr ds:[13*4+2],es
sti
pop di si ds es dx cx bx ax
ret
Int1:
cmp cs:found,1
je exitint1
push bp
mov bp,sp
push ax bx cx dx es ds si di
mov ax,ss:[bp+2]
mov cx,4
shr ax,cl
add ax,ss:[bp+4]
cmp ax,0c000
jb DoneInt1
mov cs:found,1
les bx,SS:[bp+2]
mov word ptr cs:[Root13],bx
mov word ptr cs:[Root13+2],es
DoneInt1:
pop di si ds es dx cx bx ax bp
exitint1:
iret
StrangeConv db 0a,0dh,'Conventional Memory Suspicious.',0a,0dh,24
Fixed db 0a,0dh,'Virus Cleaned - sample saved in VIRUS.MBR .',0a,0dh
db 'Now COLD REBOOT IMMEDIATELY!!!!!!!!!!!!!!!!',0a,0dh,24
NoProb db 0a,0dh,'No Stealthing Detected. No Action Taken.',0a,0dh,24
notdone db 0a,0dh,'No Action Taken.',0a,0dh,24
Message:
db 0a,0dh
db '--==[Stormbringer''s Instant Stealth MBR Virus Remover.]==--',0a,0dh
db ' USE AT YOUR OWN RISK! RTFM Before Using! ',0a,0dh
db 0a,0dh,'Continue (y/N)',24
sample db 'Virus.MBR',0
found db 0
NewSec db 200 dup(?)
OrgSector db 200 dup(?)
Int13 dd ?
Root13 dd ?
ConvMem dw ?
end start
======================================================================

此时的反病毒程序,基本都是采用汇编编写。我们通过更多早期的反病毒程序源代码可以看出这个事实:抗病毒软件基本都使用纯汇编语言编写。而一个建立在理论体系化上面的完整杀毒程序代码量都不会少,这使得进入反病毒这个领域的门栏高得让人望而生畏。后来,使用纯C和C++编写的反病毒程序和相关模块多了起来,其中一部分还是基于跨平台的考虑。而在整个AV历史中,只有极少的爱好者使用Pascal语言来编写反病毒程序。

1 2 3 下一页

 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

学习软件编程开发技术,推荐加入以下软件编程培训班:
Delphi高级软件编程培训班  VC++软件万能编程培训班  易语言软件编程培训班(简单易学)
VB软件实例编程培训班  JAVA高端编程就业研发班

学习网站开发制作技术,推荐加入以下网站开发培训班:
PHP网站开发工程师就业指导班  ASP.net网站开发项目实战班  ASP语言网站建设培训班

学习网络安全入侵防护技术,推荐加入以下技术培训班:
大型网络安全入侵防护班  网站脚本程序全方位安全检测班

学习网络管理、网吧运营维护技术(网管),推荐加入以下培训班:
大型网吧技术管理人才特训班  Linux网络嵌入架构工程师培训班 Server 2008服务器网络工程师培训班

学习平面美工设计、影视动画,推荐加入以下培训班:
Flash动画设计师就业特训班  平面美工设计师就业工作专修班

学习专项特殊技术,推荐加入以下专项技术培训班:
软件与游戏外挂脱壳破解班(逆向工程)  赚钱王道-网赚全能项目培训班  软件免杀技术全项特训班