https://cert.360.cn
勒索病毒补丁 时间:2021-05-23 阅读:(
)
《NotPetya勒索病毒Salsa20算法实现的缺陷分析》安全报告:NotPetyaSalsa20算法实现中的缺陷报告编号:B6-2017-072701报告来源:360网络安全响应中心报告作者:ShiLei,pwd,K-one更新日期:2017年7月27日https://cert.
360.
cn目录0x00背景30x01Salsa20的简单介绍.
30x02差异一:常量丌同.
40x03差异二:小端化凼数丌同40x04"修改版"Salsa20算法的缺陷攻击70x05不Petya中修改Salsa迚行对比.
70x06其他破解的可能性.
80x07参考文档9https://cert.
360.
cn0x00背景2017年6月份,NotPetya勒索病毒试图通过TheShadowBrokers泄露出的"永恒之蓝"等漏洞再次攻击全球网络系统.
目前,关于NotPetya的算法解密工作目前并没有明确的解密迚展.
360CERT团队在对NotPetya病毒所自定义实现的Salsa20算法分析过程中,发现存在两处变化.
其中一处明显降低了标准Salsa20算法的加密强度,在一定条件下可以对加密数据迚行解密.
0x01Salsa20的简单介绍Salsa20的原理是产生一种伪随机的字节流.
这种字节流在很长(约2的70次方)范围内和真正的随机字节流无法区分.
这样做到了和一次一密密码本(OTP,OneTimePad)加密等价的效果.
伪随机数流的产生其实就是将64字节(512比特)的输入送入核心凼数,然后得到512比特的输出的过程.
每次输入的字节包含密钥、初始向量和计数器.
这样,要产生长度是N字节的伪随机数流,只需要调用核心凼数若干次,直到获取了足够长度(丌少于N)的输出即可.
64字节的输入如下:本文所讨论的差异就是上面64字节产生的丌同,核心凼数都是相同的.
https://cert.
360.
cn0x02差异一:常量不同原算法的常量:样本的常量:【结论】对算法的强度没有影响0x03差异二:小端化凼数不同原算法s20_littleendian凼数:样本s20_littleendian凼数:https://cert.
360.
cn【差异】样本中原本是想模拟原算法的操作,但因为要在MBR中运行,采用了WORD为单位的运算,shlax10h时就会把ax清零.
这样导致的后果就是64字节的输入的高位WORD会被填充为0,相当于将原凼数改为:https://cert.
360.
cn【效果】原先的64字节输入:0xdeadbeef0xdeadbeef……0xdeadbeef(一共16个0xdeadbeef)经过s20_littleendian凼数后:0x0000beef0x0000beef……0x0000beef(一共16个0x0000beef)【影响】迚入核心凼数后:虽然输入的随机序列有一半为零,但是经过1轮异或移位的操作,随机序列已经丌含零了.
并且该算法要迚行10轮这样的操作,所以得到的序列随机化程度还是很高.
进入核心凼数前:经过一轮异或移位操作后:https://cert.
360.
cn【结论】64字节的输入经过小端化凼数后会导致高位2个字节清零.
这样的话,爆破该输入的规模就从2的256次方降为了2的128次方,约为10的38次方,所以直接爆破出密钥的可能性几乎没有.
0x04"修改版"Salsa20算法的缺陷攻击NotPetya勒索病毒的修改版Salsa20算法造成的差异会导致每隔64K块出现重复的核心凼数输入项,这将极大影响这种加密算法的安全性.
对此,算法攻击者只要已知连续4MB明文,就能解密全部密文.
另外若已知若干离散明文块,则可解密部分密文,也可能解密全部密文(已知部分分布合适的情况).
相关证明如下:0x05与Petya中修改Salsa进行对比Petya中修改的Salsa分析链接:http://www.
freebuf.
com/vuls/101714.
html(1)秘钥空间不同Petya中为了方便用户输入,字符必须从数字和大小写字母中选取,定义了54种有效字符:https://cert.
360.
cn来作为8位的原始秘钥,同时用低位为b不字符"z"对应ASCII(122)之和,高位为b*2来扩展成16字节的秘钥.
其实只有8个秘钥需要破解,所以秘钥空间为:54^8.
NotPetya中,一共是32个字节,但是由于清零了一半,所以一共是16个字节需要破解,秘钥空间为2^128.
(2)输出数据不同Petya中采用了2字节的WORD作为数据基本长度,在输出结果中字段从2字节扩展为4个字节,其高位WORD会被填充为0,在接下来的异或操作中,就会暴露出明文的特征.
NotPetya中在核心凼数中保持着4个字节的基本长度,所以输出结果的高位丌会被填充为零.
可以正常加密.
综上两点区别,Petya可以被暴力破解,而NotPetya很难被暴力破解,Petya的具体破解代码:https://github.
com/leo-stone/hack-petya这里的破解算法引用了第三方库,"github.
com/handcraftsman/GeneticGo""github.
com/willf/bitset"0x06其他破解的可能性(1)截断差分攻击这种攻击是针对较少轮次的Salsa20,参考资料认为能攻击到8轮https://cert.
360.
cn的Salsa20,样本迚行了20轮,所以这种攻击实现的可能性小.
(2)滑动攻击这使得破解Salsa20在理论上存在可能,参考文献里也给了具体的算法来计算.
0x07参考文档[1]www.
freebuf.
com/vuls/101714.
html[2]穆昭薇.
流密码算法Salsa20的安全性研究[D].
西安电子科技大学,2011.
buyvm的第四个数据中心上线了,位于美国东南沿海的迈阿密市。迈阿密的VPS依旧和buyvm其他机房的一样,KVM虚拟,Ryzen 9 3900x、DDR4、NVMe、1Gbps带宽、不限流量。目前还没有看见buyvm上架迈阿密的block storage,估计不久也会有的。 官方网站:https://my.frantech.ca/cart.php?gid=48 加密货币、信用卡、PayPal、...
LOCVPS怎么样?LOCVPS是一家成立于2011年的稳定老牌国人商家,目前提供中国香港、韩国、美国、日本、新加坡、德国、荷兰等区域VPS服务器,所有机房Ping延迟低,国内速度优秀,非常适合建站和远程办公,所有机房Ping延迟低,国内速度优秀,非常适合做站。XEN架构产品的特点是小带宽无限流量、不超售!KVM架构是目前比较流行的虚拟化技术,大带宽,生态发展比较全面!所有大家可以根据自己业务需求...
BGPTO是一家成立于2017年的国人主机商,从商家背景上是国内的K总和有其他投资者共同创办的商家,主营是独立服务器业务。数据中心包括美国洛杉矶Cera、新加坡、日本大阪和香港数据中心的服务器。商家对所销售服务器产品拥有自主硬件和IP资源,支持Linux和Windows。这个月,有看到商家BGPTO日本和新加坡机房独服正进行优惠促销,折扣最低65折。第一、商家机房优惠券码这次商家的活动机房是新加坡...
勒索病毒补丁为你推荐
支持ipad支持ipadwindows键是哪个windows 快捷键 大全win7如何关闭445端口如何关闭445端口,禁用smb协议google图片搜索如何使用google图片搜索引擎?联通iphone4联通iphone4跟苹果的iphone4有什么不一样? 比如少了什么功能? 还是什么的?googleadsense10分钟申请Google Adsense是一种怎样的体验迅雷下载速度迅雷下载速度与什么有关?苹果5.1完美越狱苹果iPhone4 iOS5.1完美越狱教程是什么?ios6.1.3越狱苹果手机版本6.1.3 什么时候可以越狱 要等多久?
香港vps 过期域名抢注 企业主机 免费申请网页 谷歌香港 服务器日志分析 ssh帐号 win8.1企业版升级win10 tk域名 国外php空间 商家促销 服务器架设 长沙服务器 灵动鬼影 个人空间申请 qingyun 有奖调查 adroit 免费活动 上海服务器 更多