技术分析 | 新型勒索病毒Petya如何对你的文件进行加密

简介:

6月27日晚间,一波大规模勒索蠕虫病毒攻击重新席卷全球。

雷锋网报道,欧洲、俄罗斯等多国政府、银行、电力系统、通讯系统、企业以及机场都不同程度的受到了影响。

image


阿里云安全团队第一时间拿到病毒样本,并进行了分析:

这是一种新型勒索蠕虫病毒。电脑、服务器感染这种病毒后会被加密特定类型文件,导致系统无法正常运行。

目前,该勒索蠕虫通过Windows漏洞进行传播,一台中招可能就会感染局域网内其它电脑。

一、Petya与WannaCry病毒的对比
1、加密目标文件类型

Petya加密的文件类型相比WannaCry少。

Petya加密的文件类型一共65种,WannaCry为178种,不过已经包括了常见文件类型。


2、支付赎金

Petya需要支付300美金,WannaCry需要支付600美金。

二、云用户是否受影响?
截止发稿,云上暂时未发现受影响用户。

6月28日凌晨,阿里云对外发布了公告预警。

image

三、勒索病毒传播方式分析
Petya勒索蠕虫通过Windows漏洞进行传播,同时会感染局域网中的其它电脑。电脑感染Petya勒索病毒后,会被加密特定类型文件,导致电脑无法正常运行。

阿里云安全专家研究发现,Petya勒索病毒在内网系统中,主要通过Windows的协议进行横向移动。

主要通过Windows管理体系结构(Microsoft Windows Management Instrumentation),和PSEXEC(SMB协议)进行扩散。

截止到当前,黑客的比特币账号(1Mz7153HMuxXTuR2R1t78mGSdzaAtNbBWX)中只有3.39 个比特币(1比特币=2459美金),33笔交易,说明已经有用户支付了赎金。

四、技术和加密过程分析
阿里云安全专家对Petya样本进行研究后发现,操作系统被感染后,重新启动时会造成无法进入系统。如下图显示的为病毒伪装的磁盘扫描程序。

image


Petya病毒对勒索对象的加密,分为以下7个步骤:

image


首先,函数sub_10001EEF是加密操作的入口。遍历所有磁盘,对每个固定磁盘创建一个线程执行文件遍历和加密操作,线程参数是一个结构体,包含一个公钥和磁盘根路径。

image


然后,在线程函数(StartAddress)中,先获取密钥容器,

pszProvider="MicrosoftEnhanced RSA and AES Cryptographic Provider"

dwProvType=PROV_RSA_AES Provider为RSA_AES。


image


调用sub_10001B4E,通过CryptGenKey生成AES128密钥,用于后边进行文件加密。

image


如果生成密钥成功,接着调用sub_10001973和sub_10001D32,分别是遍历磁盘加密文件和保存密钥的功能。

image


在sub_10001973函数中判断了只对特定文件后缀加密。

image


sub_10001D32函数功能是将密钥加密并写入磁盘根路径的README.TXT文件中,


image


该函数在开始时调用了sub_10001BA0获取一个程序内置的公钥

image


之后,调用sub_10001C7F导出AES密钥,在这个函数中用前边的公钥对它加密。

image


最后,在README.TXT中写了一段提示付款的文字,并且将加密后的密钥写入其中。

因为密钥经过了程序中内置的公钥加密,被勒索对象必须要有黑客的私钥才能解密。这也就造成了勒索加密的不可逆性。

image

五、安全建议
目前勒索者使用的邮箱已经被关停,不建议支付赎金。


image

所有在IDC托管或自建机房有服务器的企业,如果采用了Windows操作系统,立即安装微软补丁。

对大型企业或组织机构,面对成百上千台机器,最好还是使用专业客户端进行集中管理。比如,阿里云的安骑士就提供实时预警、防御、一键修复等功能。
可靠的数据备份可以将勒索软件带来的损失最小化。建议启用阿里云快照功能对数据进行备份,并同时做好安全防护,避免被感染和损坏。

原文链接

相关文章
|
Python
python使用pip镜像源加速安装包(清华、阿里、中科大)
python使用pip镜像源加速安装包(清华、阿里、中科大)
10380 0
python使用pip镜像源加速安装包(清华、阿里、中科大)
|
XML 数据格式 Python
Labelimg标注自己的数据集,及如何划分训练集和验证集,应用于Yolov5
Labelimg标注自己的数据集,及如何划分训练集和验证集,应用于Yolov5
4591 0
|
机器学习/深度学习 自动驾驶 算法
基于深度学习的YOLO框架的7种交通场景识别项目系统【附完整源码+数据集】
在智慧交通和智能驾驶日益普及的今天,准确识别复杂交通场景中的关键元素已成为自动驾驶系统的核心能力之一。传统的图像处理技术难以适应高动态、复杂天气、多目标密集的交通环境,而基于深度学习的目标检测算法,尤其是YOLO(You Only Look Once)系列,因其检测速度快、精度高、可部署性强等特点,在交通场景识别中占据了重要地位。
1339 0
基于深度学习的YOLO框架的7种交通场景识别项目系统【附完整源码+数据集】
|
存储 缓存 Java
释放C盘空间:释放Windows休眠文件和关闭虚拟内存
在 Windows 11 专业版中,可以通过以下步骤来释放休眠文件(Hibernate File),以释放磁盘空间。休眠文件是系统休眠(Hibernate)功能所需要的文件,它保存了系统的当前状态,以便在休眠状态下恢复。如果你不使用休眠功能,如果因为C盘空间不足,可以考虑释放这个文件来腾出磁盘空间。
29811 1
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
935 0
|
算法
KNN算法及其优缺点
KNN算法及其优缺点
1105 0
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能物流路径优化
使用Python实现智能物流路径优化
670 1
|
监控 NoSQL Java
在 Spring Boot 中实现 Redis 的发布/订阅功能可以通过 RedisTemplate 和消息监听器来完成
在 Spring Boot 中实现 Redis 的发布/订阅功能可以通过 RedisTemplate 和消息监听器来完成
1638 1
|
编译器 C语言 C++
CMake基础(7)编译标志
CMake基础(7)编译标志
1591 0
|
算法 Java Linux
【Linux】软件包的分类
【Linux】软件包的分类
596 0

热门文章

最新文章