但是为什么呢?
使用Windows Crypto API(例如,仅用Google“在Windows中创建AES密钥”)创建AES密钥,加密就不那么难了它们使用本地生成的公共RSA密钥进行加密,并使用攻击者控制的公共RSA密钥对相应的私有RSA密钥进行加密。 (Wanacry的方法。)
如果受害者支付了赎金,他们必须将加密的RSA私钥发送给攻击者,并希望将解密后的RSA私钥取回。
为什么这些人尝试重新发明轮子,并在此过程中犯下允许开发解密器工具的错误?
#1 楼
披露:我为参与NoMoreRansom的供应商之一工作。大多数现代勒索软件确实实现了正确的加密。早期版本使用
rand()
进行密钥生成,并在随机生成器中植入time()
的变体-这就是为什么成功解密要知道何时确切发生感染的重要原因。理想情况下,只需几分钟。那些可以用蛮力解密。但是大多数现代勒索软件确实使用Windows Crypto API或捆绑的加密库。但是,无论勒索软件实施得如何正确,总有一个弱点-便于解密,密钥必须存放在某个地方。可以由安全公司跟踪此位置,安全公司将与执法部门合作将其接管。对服务器的访问使安全公司能够解密勒索软件受害者文件。例如,GangCrab勒索软件就是这种情况。
评论
当然,有可能没有解密密钥。一旦罪犯得到赎金,为什么他们会关心修复造成的损失?
– gnasher729
19年5月15日在20:54
如果您的特定恶意软件具有跟随解密的声誉,@ gnasher729的人也更有可能付款。如果您从未取回文件,则无需支付任何费用。 (有时候你是对的)
–Richard Tingle
19年5月15日在21:39
@ gnasher729如果绑架者无论如何都没有杀死人质的名声,我将更愿意为家人支付赎金;)
–托马斯
19年5月16日在7:47
@Damon如果您在谈论第三世界的专业绑架者,那不是真的。整个保险行业都在支付赎金,因为这些绑架者想要钱,他们不希望公司仅仅注销其雇员,或者更糟糕的是完全停止向该国派遣雇员。
–IllusiveBrian
19年5月16日在13:57
是的,我们知道。查克·诺里斯(Chuck Norris)和情报机构可以追踪Tor隐藏的服务,而后者只需单击几下,前者就可以在屏幕上回旋
–usr-local-ΕΨΗΕΛΩΝ
19年5月16日在15:26
#2 楼
这只是一个成本/收益问题。勒索软件开发人员通常不希望通过所有涉及的审查来构建安全工具。他们只想要更便宜的工具,该工具将使他们获得的收益超过成本。当然,它们可能易碎,但是谁在乎呢?如果第一批受害者中的一些人已经支付了所要求的费用,那么攻击者所获得的金钱将比他们所花费的多得多。此外,使用时间越长,如果政府安全机构设法发挥作用,被抓住的风险就越高。许多现实生活中的盗贼在设法做到这一点上或多或少进入随机的房子:在最短的时间内拿走最有价值的东西,然后走开。
在现实生活和IT世界中,针对目标攻击的情况都不同。如果要攻击银行或珠宝店,则预期收益会很高,足以花费大量的准备时间。当政府部门攻击战略目标时,他们将使用更高质量的工具。但是很少用于随机目标。
#3 楼
显而易见的答案是,没有犯罪分子会希望与受害者直接互动。“将加密的RSA私钥发送给攻击者”
需要一致的联系点。
在当前模型中,所有通信都是单向且可替代的:
恶意软件显示一个屏幕,指示受害者存款比特币(无直接联系)
犯罪分子监控存款并发送密钥邮件(通信是自动的,并且可以从任何一次性中介机构进行单向发送)。
当前的模型运行良好,是全球范围内的主要威胁之一。总是有改进系统的方法,但是如果它没有损坏,有什么好处?
评论
好吧,当前模型在很多情况下都不起作用。但要回答您:如果攻击者只想单向通信,则他们要么必须为所有受害者提供一个解密密钥,要么必须为每台受感染的计算机硬编码一个单独的RSA公钥。但是,很容易在感染后将加密的私钥发送到服务器。 (他们通常无论如何都必须从服务器下载勒索软件。)然后可以按照您的描述自动完成解密。
– Kiara
19年5月15日在15:56
它的证据如何不起作用?
– schroeder♦
19年5月15日在15:58
加密没有搞乱。加密很好。问题在于,在人们提交加密文件并接收密钥进行分析之后,密钥才暴露出来。发生这种情况时,犯罪分子只需更改密钥,甚至更改代码库(可以选择的批次)。这里没有错误,也没有要修复的问题。
– schroeder♦
19年5月15日在16:02
“在感染后很容易将加密的私钥发送到服务器”-这将创建回溯给攻击者的线索。正如我所说,没有犯罪分子会想要的。
– schroeder♦
19年5月15日在16:06
@noɥʇʎԀʎzɐɹƆ似乎需要做更多的工作和开发工作来建立当前已建立的方法。如果您是恶意软件作者,则只有在最终释放解密器时才关心扩展的程度-与花费多少时间成正比。您只需制作另一个勒索软件即可
– Mag
19年5月17日在9:41
#4 楼
坦白说,即使使用了可以为您完成的文件库,实现良好的文件加密和解密也非常棘手。我尝试修改一种最初使用非常基本的位移位技术的加密器(旨在混淆病毒以使其对防病毒程序隐藏其签名),但效果不佳,因为大多数防病毒程序都会从字面上强行强行破解二进制文件,并且可以意识到它的存在。实际上是病毒!我想替换位移位的“加密”,如果您甚至可以用过去通过成功用于字符串的C#库进行AES加密来代替它,但是我永远也无法实现。另一个问题是,加密算法越复杂,扫描整个磁盘并在需要支付费用时(最后一次)进行解密所需的时间就越长。勒索软件真正起飞并变得更好之前,我曾在祖母的计算机上看到过一次勒索软件程序,据说该程序已加密她的文件,并想用200美元解密。实际上,它所做的只是将扩展名“ .crypted”添加到每个文件的末尾,因此Windows不知道要使用哪个程序来打开其中的任何一个!一旦我弄清了,所有要做的就是使用任务管理器找到并删除原始勒索软件文件,然后编写一个批处理脚本来递归地检查系统上每个文件的.crypted扩展名并将其删除(如果存在)。一个小时之内解决了问题,根本没有向黑客付钱!但是,如果他们使用了AES,则该技术根本无法使用,删除病毒文件可能会破坏您曾经希望破解军用级加密的任何希望。
所不同的是,使用第一种重命名文件扩展名以使Windows无法打开任何文件的技术的人到使用军事级加密的人甚至感染病毒时可能已经感染了数百种病毒。足够聪明地修复第一个的人可能也足够聪明,不会被第二个感染。其余95%的人除了支付赎金外,一无所知,无法解决任何一种病毒,可能是第一次付钱给了(使用容易破解的勒索软件的人),然后立即建立了完整的备份解决方案以防止它再次发生。如果他们后来被军事级勒索软件感染,他们已经上过一次课,只是从备份中恢复了。希望甚至没有被感染的人也可以开始设置备份,因此他们甚至不必一次支付赎金。
从这种情况下,您可以看到拥有易于破解的勒索软件的家伙可以先释放它,即使防病毒程序设法在解密前删除病毒,它的运行速度也更快,更可靠,更容易反转,因此,与花大量时间建立病毒的人相比,他将赚更多的钱。完全防弹的勒索软件病毒,但是在人们开始明智地备份自己的重要文件之后,它才进入市场。
评论
您是如何还原原始文件扩展名的?还是勒索软件将.crypted扩展名附加到包含扩展名的原始文件名中?即:photo.png.crypted
–摩根
19年5月18日在13:23
@Morgan,是的,他们实际上只是在每个文件窗口的末尾添加了扩展名“ .crypted”,这将使它们自动进行修改!有史以来花费最少的勒索软件,但对于勒索软件本身和任何有能力的计算机用户而言,都非常容易逆转。不幸的是,可能有80%的计算机用户不那么称职,即使他们知道文件扩展名起什么作用并且他们对更改它们时收到的Windows警告消息也不陌生,还原仍需要几天/几周的时间。他们都是没有脚本的手工制作。
– Cyle Langenhennig
19年7月8日在21:34
评论
使用Windows crypto API可以触发防病毒试探法。问为什么恶意软件质量不高,就像问为什么犯罪企业不是业务管理的杰出例子...
为什么不直接使用攻击者控制的公共RSA密钥对AES密钥进行加密?
您可以这样做,但是在这种情况下,受害者必须将所有加密的AES密钥(每个文件一个)发送给攻击者,这需要更多的带宽。 (或者,攻击者可以对所有文件使用单个AES密钥。)备注:我所描述的是Wanacry的工作流程。
一切都与商业常识有关。完美的勒索软件加密器将具有勒索软件参与者无法捕获密钥的风险。少数情况下已经发生勒索软件未能将本地生成的密钥发送回其隐藏位置的情况,这损害了声誉并冒着未来受害者付款的风险。留下一些“宽大”的漏洞是最好的业务策略。