恶意软件作者演示愚蠢的加密错误,安全专家或可轻易破解

事实证明,由于犯罪分子的技术水平参差不齐,因此他们在开发恶意软件的过程中经常会犯一些愚蠢的错误。一旦恶意软件的加密过程出现问题,安全研究专家就可以轻易地破解这些恶意软件。

想要编写安全的代码是一件非常具有挑战性的事情,而正确地在软件中使用加密算法则更加需要下苦功夫。即便是经验丰富的开发人员也经常会犯一些愚蠢的错误。如果你的目标是为了在短时间内通过诈骗手段来获取金钱的话,那么你的软件质量可能就不会尽如人意了。如果软件的加密体系设计不当的话,你的代码中绝对会存在非常严重的加密错误。

只为实现自己的目的,完全不考虑其他

实际上,很多恶意软件的开发者在“如何错误使用加密算法”上已经给我们提供了非常丰富的经验和教训了。很多恶意软件的作者通常会直接在他们的恶意代码中加入加密算法,他们不会像合法软件的开发者那样去为自己的软件设计合适的加密算法,因为犯罪分子一般不会去考虑恶意软件的代码质量或者设计规范。他们往往只会关心这款恶意软件是否能够满足他们的犯罪需求,其他的因素并不在他们的考虑范围之内。

实际上,有时可能因为开发时间有限,或者是开发人员并不理解某些加密算法的具体工作机制,所以代码中的漏洞往往是不可避免的。但是,很多恶意软件的作者甚至都不知道如何去正确使用加密工具。无论你是专业的或是业余的恶意软件作者,你都不得不承认加密算法的正确使用在恶意软件的开发过程中是至关重要的一环。

[[175452]]

有的恶意软件属于勒索软件,攻击者可以使用勒索软件来从受害人身上勒索钱财。当攻击者需要通过C&C服务器来与受感染设备进行通信时,同样需要使用到恶意软件来实现隐藏通信。除此之外,攻击者有时也会需要使用恶意软件来躲避安全工具的检测。但是安全分析表明,目前有很多恶意软件在使用加密算法时都存在各种各样的问题。

知其然,而不知其所以然

比如说银行木马Zeus和Linux勒索软件Linux.Encoder的开发者就陷入了这种误区,他们其实在采用加密算法之前并没有真正理解这些加密算法内部的运行机制。

银行木马Zeus的开发者在对Zeus与C&C服务器的通信数据进行加密时,虽然选用的是著名的流加密算法RC4,但是他们却对算法进行了一些修改。他们将流数据通过RC4算法加密完成之后,会用数据中的每一个字节与下一个字节进行异或运算,从而生成新的加密数据。虽然RC4算法有其自身的安全缺陷,但是这个算法的安全性对于Zeus来说,已经是绰绰有余了。而开发人员所进行的额外修改看似增加了数据的复杂程度,但实际上却有些画蛇添足的意味。

Linux.Encoder的开发者在为rand()函数选择随机数生成种子的时候使用的是当前的时间戳,并通过这个随机数来生成加密密钥。但是安全研究人员发现,通过这种方式生成的勒索软件密钥是非常容易被破解的。于是乎,该勒索软件的作者又尝试通过对时间戳进行八次哈希计算来生成一个AES密钥。

安全研究专家表示:

“连续使用一个哈希函数来对输出数据进行八次计算的这种行为足以表明,这些开发者其实根本就没有真正理解哈希函数的作用。实际上,这种行为反而会大大降低程序的安全性。”

纯粹的复制粘贴

安全研究专家发现,很多恶意软件的开发者通常会直接将某些看似可用的代码复制到自己的项目中。这些代码块从表面上看似乎的确是一个可行的方案,但是他们却并不了解复制过来的代码块是如何工作的。其实,复制粘贴他人的代码也并不是什么大问题,如果这也成问题的话,那么StackOverflow这个网站也没有存在的必要了。但是,如果开发者无法真正了解代码块的运行机制,那么他们又怎么能够确定这段代码是一个切实可行的解决方案呢?

勒索软件CryptoDefense就是一个很好的例子。这款勒索软件的很多功能都是从勒索软件CryptoLocker身上抄袭过来的,比如说RSA2048加密,通过比特币支付赎金,以及通过Tor网络来与C&C服务器通信等等。除此之外,这款勒索软件在实现RSA加密的过程中还使用了Windows的加密API,而这些加密代码我们都可以在MicrosoftDeveloper Network的开发文档中找到。

[[175453]]

安全研究专家表示:

“根据开发文档的描述,如果程序中的flag设置错误的话,那么应用程序将会把密钥保存在本地。而CryptoDefense的作者没有正确设置这个flag,所以安全研究人员就可以直接在受害者的主机中找到解密密钥。”

社会工程学

实际上,这些犯罪分子所犯的错误并不仅仅只有编码错误而已,对于恶意软件的开发者而言,社会工程学技术就是实现攻击的一种捷径。如果目标用户是“傻白甜”的话,那么他们其实根本就不需要去设计什么“完美的加密体系”,因为“欺骗”往往更加的容易。而且对于普通用户而言,勒索软件所采用的加密算法根本就不重要。

Nemucod是一款JavaScript木马,而近期这款木马却转型成了勒索软件。安全研究专家通过分析发现,虽然这款勒索软件声称自己采用了RSA-1024加密,但它实际上使用的只是一种简单的异或密码。除此之外,在用户的文件真正被加密之前,Nemucod会将勒索信息显示给用户。

Nemucod的开发者认为:

“当受害者看见“RSA-1024加密算法”这几个字之后,可能就会被吓到。这样一来,他们就不会去仔细研究我们的勒索软件了,而且有的用户甚至可能会直接向我们支付赎金。”

总结

密码学确实非常的深奥,很多软件开发者在实现加密的过程中或多或少都会犯错误。甚至在目前的十大开源Web应用程序安全项目中,开发人员在实现加密的过程中同样会犯一些很白痴的错误,更何况那些唯利是图的犯罪分子呢?

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/147860.html<

(0)
管理的头像管理
上一篇2025-03-11 21:29
下一篇 2025-03-11 21:30

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注