恶意软件的开发误区:从密码学理解不足到代码复制
尽管恶意软件、勒索软件和其他类型的恶意程序对全球消费者和企业构成了重大威胁,但并非所有这些“项目”都能取得成功。在大多数情况下,这是由于开发者在试图通过恶意代码制造混乱时,工作粗制滥造。事实上,这些问题大多源于对密码学的理解不足。
Voodoo编程:密码学技术的误解
不要误以为这是一种数字化的诅咒方式。Voodoo编程是一个用来描述对密码学技术存在严重误解的术语。一个典型的例子是Zeus恶意软件,它使用了一种编码糟糕的命令和控制通信方法。尽管命令和控制通信在大多数恶意软件中仍然存在,但随着时间的推移,情况已经显著改善。
对于Zeus恶意软件,其开发者以RC4流密码为基础,并决定对其进行改进。通过将每个字节与下一个字节进行异或运算以生成最终的密文,开发者认为他们做的是正确的事情。不幸的是,这并没有提高流量的安全性。虽然这没有负面影响,但它表明了开发者对RC4的理解不足。
开发者的技能展示与失败尝试
恶意软件开发者总是试图展示他们的技能,并在竞争中占据上风。通过改进来解决编程问题可能会带来很好的结果,但也可能适得其反。晚期的Nuclear Exploit Kit就因其开发者的糟糕即兴创作而成为受害者。使用Diffie-Hellman密钥交换来加密信息是一个好主意,但将密钥设置为“0”导致完全没有有效的加密。
恶意软件的实际效果与宣传不符
某些类型的恶意软件宣传力度很大,但实际效果却很差。Nemucod,一种著名的木马,因其可以转化为勒索软件而成为头条新闻。然而,该工具包欺骗了受害者,声称文件是用RSA-1024加密的。这是一种当时无法加密文件的恶意软件的奇怪声明。
此外,Nemucod所做的不过是更改文件扩展名,而不是以比特币支付为条件将其扣为人质。在少数情况下,文件被锁定,但它们也没有用RSA-1024加密。相反,开发者使用了一种简单的旋转异或密码。对于普通计算机用户来说,无法区分其中的差异。然而,安全研究人员迅速破解了Nemucod并消除了威胁。
开发者的懒惰与代码复制
尽管许多人期待恶意软件开发者能够做出伟大的事情,但其中一些罪犯却非常懒惰。使用在线找到的代码可以提供关于恶意软件应如何行为的宝贵见解。将这些代码复制并粘贴到新的恶意软件工具包中纯粹是懒惰的表现。
CryptoDefense是这种行为的一个典型例子,因为它几乎是CryptoLocker的1:1克隆。一个主要区别是它实现了Windows操作系统提供的低级加密API。不幸的是,开发者几乎逐字逐句地复制了这段代码,导致勒索软件无效。毕竟,任何受害者都可以在不支付任何费用的情况下解密他们的文件。