跳转至

勒索病毒

勒索病毒处置流程.drawio

0x00 简述

勒索病毒是让人比较无奈的恶意程序,大部分都是只有攻击者才能解密

近期和一些勒索解密团队合作后发现,其实还是有解密的可能的,是否能够解密,如何判断需要专业团队来完成

但还是那句话,把应急解密或者赎金的钱用在数据备份、安全防护上才是较为明智的选择

0x01 固定证据

在发生任何安全事件时,确定安全事件真实存在以后,第一步都建议固定证据,固定证据一般有以下几种类型,受害单位可以根据实际需求选择

  • 系统快照 - 一般云环境比较方便这么做
  • 磁盘取证
  • 针对性取证 - 例如日志文件、网络信息、数据库等
  • 内存取证

系统快照

这种主要是云环境或虚拟化环境比较方便,目前似乎这类方式取证出来的内容都会丢失内存信息,属于是关机-快照-导出

虚拟机软件似乎支持例如暂停、冻结等功能,具体根据实际情况决定

磁盘取证

磁盘取证有很多工具可以考虑

  • dd
  • FTK Imager

针对性取证

这部分推荐我们自己的 NOPTrace-Collector

https://github.com/Just-Hack-For-Fun/NOPTrace-Collector

我们还推出了一套数字取证和应急响应规范,可以根据此规范自己开发取证程序

https://github.com/Just-Hack-For-Fun/OpenForensicRules

内存取证

  • DumpIt
  • FTK Imager

取证后,对证据进行分析时,需要先单独复制一份,保持所有安全人员分析的基础是相同的

0x02 确定勒索病毒家族

判断勒索病毒家族并不难,可以从以下几个方面获取

  • 勒索页面主动说明的,直接粘贴到 Baidu、Google 里面搜索
  • 勒索加密文件的后缀名
  • 联系邮箱

0x03 根据勒索病毒类型寻找解决方法

0x04 寻找加密器

如果没有找到现成的解决办法,又不想冒险交赎金来解密的话,就只能通过找加密器和加密命令来分析解密方法了

寻找加密器并不简单,时间线是一个很重要的线索,其次是勒索病毒一般不会加密自己的加密器

1. 确定加密时间

使用 Everything 等程序,搜索被加密后的文件的后缀,对加密后的文件进行时间排序,很容易确定加密开始的时间

image-20240707220939079

这里需要注意,部分加密程序可能会对部分空文件或者特殊格式的文件仅重命名,所以需要人工鉴别来确定时间

2. 查找加密开始前的活动

一方面是通过 everything 等来查看加密开始前创建文件的情况

另一方面是通过各种缓存等文件,查看近期文件执行情况,具体参照 常规安全检查 -> 0x01 近期活动 章节

3. 对加密器逆向分析

这部分需要具备逆向分析的能力,如果公司内部安全人员不具备,建议向专业的逆向分析人员求助

如果是单文件加密器,没有额外参数,分析起来可能比较容易

如果是单文件加密器有额外参数或者多文件加密器(证书或者公钥文件),则需要获取相关参数或文件才能进行分析,这种也是比较主流的

如果能获取到恶意程序原程序,也就是说执行该程序会从网络下载加密器并执行或者该恶意程序会自己释放加密器并执行,可以在隔离的测试环境,通过火绒剑等对恶意程序的执行过程进行监控,获取有效的加密器以及启动参数,进一步进行分析

0x05 解决勒索

如果通过公开途径或者交赎金的方式获取到了解密工具,一定要先测试好,免得遇到二次加密

如果是安全人员逆向分析,找到了破解方法,也建议对已经被加密的文件备份一份,免得解密过程中出现bug导致文件丢失

除了恢复被勒索系统以外,找到被勒索的原因是最重要的,如果由于缺少流量、日志等记录,无法还原,至少要做到以下几点

  • 将应用程序及系统升级、打上最新的安全补丁
  • 对于本次受到影响的系统进行重点备份

0x06 善后阶段

直接查看善后阶段即可,主要为定损以及针对性排查处理,目的是解决潜在的受害服务器

0x07 常规安全检查阶段

直接根据常规安全检查章节进行安全检查即可,目的是找出当前系统中存在的隐藏后门等