Ryuk勒索软件技术分析
字数 1485 2025-08-20 18:17:53

Ryuk勒索软件技术分析与防御指南

1. Ryuk勒索软件概述

Ryuk是一种高度定制化的勒索软件,与传统大规模传播的勒索软件不同,它专门针对特定目标进行攻击,主要加密受害网络中的重要资产和资源。

1.1 历史背景与关联

  • 与HERMES勒索软件有显著相似性,可能是同一开发者或代码重用
  • HERMES首次出现在2017年10月,曾用于攻击台湾远东国际银行
  • 可能与Lazarus组织有关联

2. 技术分析

2.1 传播方式

  • 使用专门的Dropper程序进行传播
  • Dropper包含32位和64位模块,根据系统版本选择释放
  • 文件释放路径:
    • Windows XP/2000: \Documents and Settings\Default User\
    • 其他系统: \users\Public
    • 失败时尝试写入当前目录

2.2 执行流程

  1. 初始休眠几秒钟
  2. 检查执行参数(用于自删除)
  3. 终止关键进程和服务(超过40个进程和180个服务)
  4. 建立持久化机制

2.3 持久化机制

  • 通过注册表实现自启动:
    reg add /C REG ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "svchos" /t REG_SZ /d [恶意软件路径]
    

2.4 进程注入技术

  1. 提升到SeDebugPrivilege权限
  2. 枚举系统进程
  3. 使用基本注入技术:
    • OpenProcess获取句柄
    • VirtualAllocEx分配内存
    • 写入恶意代码镜像
    • 创建远程线程执行

注意:存在地址分配失败风险,可能导致注入失败

2.5 加密机制

采用三层可信模型:

  1. 全局RSA密钥对(攻击者持有私钥)
  2. 每个受害者的RSA密钥对(嵌入在样本中)
    • 公钥硬编码在样本中
    • 私钥用全局公钥加密后嵌入
  3. 文件级AES对称加密
    • 使用CryptGenKey为每个文件生成唯一AES密钥
    • 用受害者RSA公钥加密AES密钥
    • 将加密结果附加到加密文件中

2.6 文件加密策略

  • 递归扫描本地驱动和网络共享
  • 白名单目录(不加密):
    • Windows
    • Mozilla
    • Chrome
    • RecycleBin
    • Ahnlab(韩国安全产品)

2.7 网络资源加密

  1. 调用WNetOpenEnum开始枚举
  2. 分配缓存区
  3. 通过WNetEnumResource填充缓存
  4. 递归处理容器资源
  5. 将资源名加入加密列表(用分号分隔)

2.8 清理操作

执行批处理命令删除:

  • 影子备份
  • 系统备份文件
  • 其他恢复相关文件

3. 与HERMES的相似性

3.1 代码相似点

  1. 加密逻辑几乎相同
  2. 加密文件标记(marker)生成和检查代码相同
  3. 相同的白名单文件夹
  4. 相同路径下写入batch脚本(window.bat)
  5. 相同的影子目录和备份删除脚本
  6. 都释放PUBLIC和UNIQUE_ID_DO_NOT_REMOVE文件

3.2 功能相似点

  • 相同的注入技术
  • 相似的进程终止列表
  • 相同的加密模型

4. 防御措施

4.1 预防措施

  1. 限制PowerShell和WMI的使用
  2. 禁用不必要的SMBv1协议
  3. 限制RDP访问,使用强认证
  4. 保持系统和软件更新

4.2 检测措施

  1. 监控以下异常行为:
    • 大量文件被快速加密
    • vssadmin.exe删除卷影副本
    • 异常进程终止行为
    • 注册表自启动项修改
  2. 部署EDR解决方案

4.3 响应措施

  1. 立即隔离受感染系统
  2. 检查网络共享是否受影响
  3. 从备份恢复数据
  4. 全面检查系统残留

5. 附录:字符串解密脚本

"""
Ryuk strings decrypter
IDA Python脚本用于解密Ryuk勒索软件中的加密API字符串
解密后会自动重命名变量以便分析
"""
import idc
from idaapi import *

def decryptStrings(verbose=True):
    encrypted_strings_array = 0x1400280D0
    lengths_array = 0x1400208B0
    num_of_encrypted_strings = 68
    key = 'bZIiQ'
    
    if verbose:
        print("[!] Starting to decrypt the strings\n\n")
    
    # 遍历加密字符串数组
    for i in range(num_of_encrypted_strings):
        # 获取加密字符串长度
        string_length = idc.Dword(lengths_array + i * 4)
        # 获取加密字符串偏移量
        string_offset = encrypted_strings_array + i * 50
        # 读取加密字节
        encrypted_buffer = get_bytes(string_offset, string_length)
        decrypted_string = ''
        
        # 解密字节
        for idx, val in enumerate(encrypted_buffer):
            decrypted_string += chr(ord(val) ^ ord(key[idx % len(key)]))
        
        # 在IDA中为字符串变量设置名称
        idc.MakeName(string_offset, "dec_" + decrypted_string)
        
        # 输出到窗口
        if verbose:
            print("0x%x: %s" % (string_offset, decrypted_string,))
    
    if verbose:
        print("\n[!] Done.")

# 执行解密函数
decryptStrings()

6. 总结

Ryuk勒索软件代表了一类高度定向的勒索攻击,其技术复杂性和与APT组织的潜在关联使其成为严重威胁。组织应实施深度防御策略,重点关注:

  • 限制横向移动能力
  • 保护备份系统
  • 监控异常加密行为
  • 建立有效的事件响应流程

通过了解Ryuk的技术细节,安全团队可以更好地防御此类针对性勒索软件攻击。

Ryuk勒索软件技术分析与防御指南 1. Ryuk勒索软件概述 Ryuk是一种高度定制化的勒索软件,与传统大规模传播的勒索软件不同,它专门针对特定目标进行攻击,主要加密受害网络中的重要资产和资源。 1.1 历史背景与关联 与HERMES勒索软件有显著相似性,可能是同一开发者或代码重用 HERMES首次出现在2017年10月,曾用于攻击台湾远东国际银行 可能与Lazarus组织有关联 2. 技术分析 2.1 传播方式 使用专门的Dropper程序进行传播 Dropper包含32位和64位模块,根据系统版本选择释放 文件释放路径: Windows XP/2000: \Documents and Settings\Default User\ 其他系统: \users\Public 失败时尝试写入当前目录 2.2 执行流程 初始休眠几秒钟 检查执行参数(用于自删除) 终止关键进程和服务(超过40个进程和180个服务) 建立持久化机制 2.3 持久化机制 通过注册表实现自启动: 2.4 进程注入技术 提升到SeDebugPrivilege权限 枚举系统进程 使用基本注入技术: OpenProcess获取句柄 VirtualAllocEx分配内存 写入恶意代码镜像 创建远程线程执行 注意 :存在地址分配失败风险,可能导致注入失败 2.5 加密机制 采用三层可信模型: 全局RSA密钥对 (攻击者持有私钥) 每个受害者的RSA密钥对 (嵌入在样本中) 公钥硬编码在样本中 私钥用全局公钥加密后嵌入 文件级AES对称加密 使用CryptGenKey为每个文件生成唯一AES密钥 用受害者RSA公钥加密AES密钥 将加密结果附加到加密文件中 2.6 文件加密策略 递归扫描本地驱动和网络共享 白名单目录(不加密): Windows Mozilla Chrome RecycleBin Ahnlab(韩国安全产品) 2.7 网络资源加密 调用WNetOpenEnum开始枚举 分配缓存区 通过WNetEnumResource填充缓存 递归处理容器资源 将资源名加入加密列表(用分号分隔) 2.8 清理操作 执行批处理命令删除: 影子备份 系统备份文件 其他恢复相关文件 3. 与HERMES的相似性 3.1 代码相似点 加密逻辑几乎相同 加密文件标记(marker)生成和检查代码相同 相同的白名单文件夹 相同路径下写入batch脚本(window.bat) 相同的影子目录和备份删除脚本 都释放PUBLIC和UNIQUE_ ID_ DO_ NOT_ REMOVE文件 3.2 功能相似点 相同的注入技术 相似的进程终止列表 相同的加密模型 4. 防御措施 4.1 预防措施 限制PowerShell和WMI的使用 禁用不必要的SMBv1协议 限制RDP访问,使用强认证 保持系统和软件更新 4.2 检测措施 监控以下异常行为: 大量文件被快速加密 vssadmin.exe删除卷影副本 异常进程终止行为 注册表自启动项修改 部署EDR解决方案 4.3 响应措施 立即隔离受感染系统 检查网络共享是否受影响 从备份恢复数据 全面检查系统残留 5. 附录:字符串解密脚本 6. 总结 Ryuk勒索软件代表了一类高度定向的勒索攻击,其技术复杂性和与APT组织的潜在关联使其成为严重威胁。组织应实施深度防御策略,重点关注: 限制横向移动能力 保护备份系统 监控异常加密行为 建立有效的事件响应流程 通过了解Ryuk的技术细节,安全团队可以更好地防御此类针对性勒索软件攻击。