在长期的对抗、淘汰和选择中生物具备了求生的本能。与生物形态一样,恶意代码的当前形态,是综合淘汰和选择推动的结果。实际上这种情况适用于所有的软件程序。
如何思考恶意代码的演变过程?为什么把恶意代码和进化论联系起来?与生态形态一样,恶意代码的当前形态也是各种因素综合淘汰选择推动的结果,实际上这种情况也适用于所有的软件程序,包括操作系统、各种相关的工具软件、各种反病毒软件本身。进化论从根本上说是关于生死和演进的科学。
>>生篇
对于“生”,在长期的对抗和淘汰选择中,生物具备了求生的可能;恶意代码也具备了这种可能。
寄生
金小蜂(Nasonia),是一生中只有一段时期寄生生活的一种寄生蜂,产卵在越冬红铃虫幼虫的身上,孵化为幼虫后就寄生在红铃虫幼虫体上,并以它的身体为食。
我们可以进行一下简单的类比:寄生是病毒具备的最早生存特性,进行文件的感染、进行引导区的感染等等,这是恶意代码最原始的技能之一,而病毒编写者逐渐改善这种技巧,比如类似碎洞攻击的方法保持对象原装的长度不变。
繁殖
以老鼠为例,民间有句话,“一公一母三年二百五”,这是其繁殖的能力,而以恶意代码为例的传播过程中,SQL.Slammer蠕虫在十分钟之内全球感染了7.5万台节点,其繁殖能力远强于生物。
躲避天敌
这是高高警戒的狐,天敌来了就立即逃跑。而我们看看古老的病毒Yankee,因发作现象是演奏 “Yankee Doodle”的歌曲而闻名。这是具有最早躲避天敌能力的病毒之一,当其发现Debug加载时,便逃之夭夭。这是躲避天敌的一个特性。
保护色
保护色,土蝗在黄土地上看不出来,因为和环境是一个颜色。而我们看这个例子演示灰鸽子一个变种就把自己命名为pagefile,仿佛和系统页面相关,自己起的服务名字叫Windows Server Myssl,很像Windows的系统服务。它们只有通过我们的签名验证才暴露出来,否则混杂在大量的服务中看不出来,在终端上检验非常困难。
拟态
竹节虫,非常像一根竹枝。而我们在看这个演示病毒注入到浏览器进程Iexplore中,如果简单地通过进程查看的方式是无法发现的。这是用伪装的方法,通讯用的端口在监听上和浏览器并没有区别。
引诱
这是一种更有趣的现象。有一种双盘吸虫寄生在蜗牛里,于是蜗牛的触角会长得特别鲜艳,容易被鸟发现,鸟儿吃下后就寄生在鸟的体内,随着鸟的粪便排出,后被蜗牛再吃掉,进入蜗牛的体内而形成一个循环。
我们也可以看出社会工程学化的恶意代码生存里就有引诱这种方式:我们会发现有两个文件夹都叫历史文献,哪个是?可能就随便打开一个。实际上这是一个U盘的病毒通过引诱的方式,利用Windows已知文件扩展名默认的配置属性来达成这样的结果。
假死
自然界中有一种会装死的千足虫。过去百度的插件用过类似的假死技术,当然,这并不是说百度是一个恶意代码,但是确实用了一个rootkit手法,拦截反病毒软件的API操作,在发现DeleteFile时,则返回SUCCESS。因为你收到了SUCCESS,意味着杀毒成功,实际病毒还在。后来就出现了一个问题,有的反病毒软件认为成功以后需要重试一下,就进入了死循环。为了解决这个问题而改变了拦截策略,在短时间内读不到,然后就到了下一个文件,这样rootkit在前阶段的死而复生,就是“假死”。
这些本来是一系列的生物求生的方法,这种求生方法不是生物自己通过“人工智能”设计出来的,而是在长期进化中自然淘汰后保留下来的本能,不是双盘吸虫想去控制蜗牛,想自我演变,而是不能使触角变成鲜艳颜色的双盘吸虫最终死掉了,能够变颜色的则存活下来。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。