针对勒索软件防护,这里支个招

admin 2024年6月14日08:32:47评论4 views字数 1557阅读5分11秒阅读模式

勒索软件已经成为影响全球经济的最大毒瘤,笔者前几年做过一个勒索软件防护方案,受限于知识产权问题不清晰,不便透露。深夜思考良久,笔者认为勒索软件多数都是人为入侵投递的,投递过程中并非安全防护装置不起作用,而是遭到了勒索团伙的破坏,导致数据最终被加密,所以这里并非是防住防不住的问题,而是能不能会被破坏掉的问题。故另辟蹊径,一个粗浅逻辑,分享一下:

总体设计

这个逻辑主要针对非家庭计算机系统,考虑其行为相对简单,兼容性较好,建议全驱动设计,不保留用户交互过程,避免被发现以及被退出保护。

程序工作总体由自保护模块、白名单权限检测模块、针对文件删除与写操作的沙盒模块、处置模块构成,其中针对被创建的进程穿插各种检测逻辑,做到针对被监测文件类型或类型集合的批量删除或写入操作的行为缓存并阻断。

针对勒索软件防护,这里支个招

首先说初始化,再说工作逻辑。

初始化

初始化分为四部分,分别是初始化自保护、初始化本机白名单的权限表、初始化沙盒、初始化被保护的文件类型集合。

程序驱动加载后,创建系统线程,保护程序文件自身、白名单权限表数据文件、受保护的文件格式集合配置文件、或存储相关信息的保留扇区不被篡改进行小端口过滤,针对不信任的线程对被保护数据读取行为进行反串,即返回一个非常普通的数据或虚假数据;投递shellcode到用户层一个不能被杀死的系统进程创建线程并给予该线程id信任权限,进行用户层操作,分别为读取白名单权限表数据并初始化初始化文件类型集合、执行判断逻辑等等;启动文件系统过滤,针对异常进程的文件删除与写操作进行重定向;注册进程回调通知;启动白名单进程保护。

执行逻辑

以一个进程创建为例说明:

1)当新的进程启动被捕获到首先根据白名单权限表判断被启动进程属性,是否为白名单进程、不受信任的命令宿主进程(指script、powershell、cmd之类的脚本解释器,不细举例)、未知进程,白名单进程执行到逻辑2,其他执行到逻辑3

2)不针对其进程产生的任何行为进行重定向,但判断其权限标志,如果具备代码注入权限(或细分注入方式,主要是兼容一些代码不规范的应用程序或安全软件),则后续捕获到对其他进程进行代码注入动作进行放行;如果仅为常规进程权限,则保护其进程不可被代码注入(这里的代码注入指大概念,方式太多不做细分,主要为防止后续勒索软件注入可信进程实施勒索行为)。

3)通知文件系统过滤驱动,对该进程所有删除与写操作做过滤;根据二进制格式判断文件类型(文本可以考虑用编码方式判断),对被保护的文件类型做重定向操作,对非保护的文件真实操作;并对重定向文件路径做快速算法的去重;初始化两个阻断行为计数器,分别统计被删除文件与被写入文件路径的次数,当次数达到阈值,执行逻辑4

4)通知驱动杀死该进程并释放重定向缓存(或创建系统线程通过定时器操作,杀死一次创建一次新的线程,更加隐蔽,无法短时间通过进程监控软件找到相关线程执行代码)

5)注册关机回调,捕获系统重启关机状态,及时将被重定向操作做真实操作。

方法漏洞

对于具备注入权限的进程是脱离掌控的,具备dll侧加载(俗称白加黑)方式绕过,建议白名单采用二进制特征加绝对路径方式;阻断行为计数器阈值不易过大,容易防不住勒索团伙针对性勒索(少量文件加密),因地制宜配置所需。

写到最后

本方法本文作者不保留任何知识产权,可在公益与商用环境下随意使用,但禁止使用本文相关内容申请发明专利,如与他人知识产权存在冲突,本文作者概不负责。本文作者不建议本文相关方法产生的程序能够通过公开渠道获取,本文作者在早年的一个专利中提供了一个通过特征码获取并杀死恶意文件驻留与保护线程的方法,对于本文方法也同样适用,只要对方可以获取到相关程序,绕过或破坏掉只是很简单的事情。

原文始发于微信公众号(锐眼安全实验室):针对勒索软件防护,这里支个招

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月14日08:32:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   针对勒索软件防护,这里支个招https://cn-sec.com/archives/2844002.html

发表评论

匿名网友 填写信息