当新的软件威胁被发现时,逆向工程师会深入到代码以找出检测攻击的方法,识别该代码及其作者,并发现恶意软件背后的目的。
逆向检测恶意程序的数字侦探与创建恶意软件的开发人员斗智斗勇,在这场猫捉老鼠的游戏中,逆向工程师可以很容易地找到恶意软件的副本来破解和分析,而攻击者则制造各种障碍来减慢分析师的工作。攻击者制造的主要障碍是加密和混淆。
网络安全公司Arbor Networks的研究分析师Jeff Edwards表示,在不太遥远的过去,恶意软件中的加密反映了程序作者的勃勃野心。而现在,几乎所有恶意软件都使用了某种加密,大约有三分之二的僵尸网络使用加密通信来混淆他们的活动。
“他们在提高其加密技术方面有一个渐进发展的趋势,”Edward表示,“这一切都取决于僵尸网络操作者和编写者是否感到需要往前发展的压力。”
在Rustock和Kelihos僵尸网络被撤除后,控制这些僵尸网络的地下操作者可能感觉到前所未有的压力,他们需要在更大程度上隐藏其活动。此外,随着恶意软件开发人员变得越来越有经验,他们经常采用更复杂和更好的加密技术。
例如,Black Energy僵尸软件最初使用一种基本的加密技术来使其可执行文件不被杀毒软件察觉,并使用Base64编码来扰乱其通信。这两个都很容易被逆向工程。然而,最新版本的Black Energy使用了更强大的RC4流加密的一个变种(事实证明存在一些缺陷)来编码其通信。
Arbor Networks对用于拒绝服务攻击的四个主要僵尸程序的加密进行了分析,分析发现了多种加密方法,从自定义替换算法到RC4流加密(安全套接字层使用的加密方法)等。在一个分析中,Arbor研究了Dark Comet远程访问木马,该木马使用RC4来加密其通信,并使用其他有趣的技术来混淆加密密钥。
“恶意软件从最开始的没有加密发展到现在强大的加密技术,”Edward表示,“RC4是目前最流行的一种加密方法,或者RC4的变种,它是一个标准,很好理解,而且很安全。”
卡巴斯基实验室高级安全研究员Kurt Baumgartner表示,僵尸网络的加密发展很缓慢,五年前,Sinowal或者Torpig木马使用XTEA区块密码的修改版本来加密其配置数据。自2008年年底以来,Waledac和Kelihos或者Hlux僵尸网络使用AES混合其他编码和压缩来混淆他们的代码和通信。
“在过去几年中,我们看到恶意软件陆陆续续开始使用加密技术,”Baumgartner表示,“这些家伙不会放弃的。”
奇怪的是,研究人员发现有时候恶意软件只是使用简单的混淆。虽然来自俄罗斯和欧洲的恶意软件逐渐开始采用更好的加密方法,而来自某些国家的网络犯罪分子仍然使用简单的方法,有时候甚至不采用混淆。很多被认为是高级持续性威胁的攻击避免使用加密方法,而是用其他类型的混淆。
“我们看到在他们的恶意软件工具包中有各种奇怪的经过修改的编码方法和压缩方法,并不是复杂的加密方法,”Baumgartner表示,“似乎他们是在努力保持在雷达下飞行。”
加密数据通常容易被检测,但不能被解密。自定义加密或者混淆隐藏数据可能不太安全,但是能够更有效地避开安全工具,例如防病毒检测。