前言
基于上篇文章分析LockBit的勒索软件攻击技术,本篇文章研究勒索软件的防御手段和检测技术。一般用户只需要了解防御手段,检测技术原理简单了解即可。针对勒索软件的ATT&CK的攻击阶段技术对应的防御手段,根据自身情况可以进行查漏补缺。同时这篇文章基本涵盖了主流勒索软件的检测技术思路,可以作为目前最为流行的威胁的参考内容。
勒索软件的防御手段
根据勒索软件的ATT&CK的各个攻击阶段,分析相对应的方式进行防御。
图1 勒索软件的ATT&CK的各个攻击阶段
(1)初始访问阶段
使用隔离的浏览器或者带沙箱的访问环境,这样可以避免一些恶意的钓鱼邮件或者恶意代码。
使用邮件安全网关,可以过滤恶意的钓鱼邮件或者阻止一些恶意IP,尤其是针对外部邮件设置特殊警告,同时针对钓鱼开展安全意识培训。
使用WAF,防御应用层安全问题。
设置账号口令以及口令策略,比如长度,复杂度,定期更改,尝试次数等;对账号权限进行最小权限原则;并对管理员权限账号进行审计;使用账号多因素认证(MFA);限制服务账号和管理员账号对互联网服务的访问;即时对账号权限进行分配,防止权限攀升或保留的情况。
保证操作系统、软件及固件更新到最新。尤其是针对一些高危可利用的漏洞要进行修复和升级。
对域控进行安全加固和安全监控。
禁用不适用的互联网业务。
做好网络隔离,配置良好的ACL规则。
(2)执行阶段
构建内部网络拓扑的架构,可以描绘内部的服务和数据的流向。
开启Powershell的日志记录以及脚本执行记录。
配置Windows注册表,对于PsExec操作开启UAC机制。
(3)提权
禁用命令行和脚本执行行为和权限,通常命令和脚本都是提权的重要通道。
开启权限保护(Credential Guard),这个机制在Windows 11默认开启,可以防止对LSA凭证转储。
使用本地管理员密码解决方案(LAPS),前提是升级到Windows Server 2019和Windows 10以上。
(4)防御规避
应用本地安全策略来控制应用执行,比如使用SRP,Applocker,WDAC等来去确定白名单和黑名单。
(5)凭证访问
限制NTLM使用,进行安全加固和防火墙策略。
(6)发现
禁用不使用的端口。
(7)横向移动
识别AD的控制路径,为了排除对重要业务资产的访问路径。
使用终端安全产品来识别东西向的访问流量,从而可以识别受到勒索软件感染的机器的横向移动行为。
(8)C2
使用多层网络架构,创建可信区域保护组织的敏感数据。
不应该使用VPN来进行可信区域的访问,要考虑零信任架构。
(9)渗出
阻断跟恶意系统的连接,恶意系统主要使用的是TLS的代理。同时利用威胁情报的订阅内容来阻断C2的服务器连接。
使用网关安全等产品来限制和监控对外提供文件服务的相关系统,防止数据外发。
(10)影响
实施恢复计划,要保存多份备份在不同的隔离的安全的物理位置。
维护离线的备份数据,建议3-2-1备份策略:保证3个备份(一份生产,二分备份),在2个媒介上存储,比如磁盘和磁带,1个保存在灾备中心。
保证所有的备份数据都是加密的。
新西兰CERT对于这些ATT&CK阶段合并为三个大阶段和相关防御手段做了图示。
图2 新西兰CERT归纳ATT&CK三个大阶段和相关防御手段
图3 上图各标记点含义
勒索软件的检测技术
基于网络的检测
针对勒索软件的流量分析主要在C2这个阶段进行的分析,比如大部分勒索软件都是使用DNS协议请求来解析C2的服务器IP地址。有针对HTTP-POSTS, MDN, and DNS三种协议统一分析的机器学习算法,包括使用随机森林、贝叶斯网络和SVM方法进行检测。有针对SMB协议进行分析检测的方法,有一种算法叫做REDFISH是通过文件读写速度进行判断是否勒索行为。也有针对邮件进行检测的方式R-killer,分为三个部分进行邮件检测:邮件本身检测,邮件附件沙箱检测以及邮件相关链接检测。有通过HTTP POST包的流量特征进行强化学习和微调进行检测。也有通过Tshark工具进行勒索软件流量采样特征提取并进行学习的算法进行检测。
如果无差别的提取流量特征,并很难提取了勒索软件最相关的有效特征,更像一种过拟合方式进行匹配,反而不利于真正的特征的抽样和匹配。针对性的协议和针对性的协议内容分析是更好的一种方式,但是针对于变种的多变性,可能在下一代变种中换一种协议和方式可能就会绕过。目前看起来勒索软件使用的网络协议中比较有特征的是HTTP、DNS和SMB等,在这个角度中挖掘可能会得到比较好的效果。总体来说基于网络协议以及流量和特征的方式,针对于新变种的勒索软件比较乏力,很难做到较好的漏报率和误报率的平衡,所以有些方案中加入了主机的相关信息作为有益的补充来进行机器学习或者分析依据来判断是否是勒索软件。
基于主机的检测
主机层面的检测主要针对系统的行为进行检测,主要检测的内容包括内存和文件操作,系统API调用,dll调用等相关内容。UNVEIL检测方法利用修改Cuckoo的沙箱达到更真实的环境来提取相关的API和文件操作,然后计算读写数据缓存的熵值来区别是否是勒索软件,主要使用I/O的相关数据进行分析。
图4 UNVEIL原理示意图
PAYBREAK设计了一种hook加密函数的机制并导出密钥来进行勒索之后的解密。这个方法主要利用了现在勒索软件的混合加密机制(非对称密码算法加密对称算法密钥,对称算法密钥加密相关文件)。在混合加密机制下,基本都是两层密钥加密,如果加密完成后只能依赖勒索攻击者的私钥才可以通过两次解密得到相关对称密钥,最终对文件进行解密。由于现在对每个文件都是一次一密的形式,只能考虑在对称加密算法对文件加密的过程中来保存每个对称密钥。为了更安全的保存密钥,这个方法也采用了一个密码保险库(Key Vault)来进行保存,对于保存的内容也是用非对称加密算法进行加密,使用append-only的形式进行写入和读取,防止被勒索软件进行加密或者篡改。最后就可以通过这个密码保险库提取对称密钥来进行每个文件的解密。这个方法的难点是在hook相关加密函数上,如果是动态链接库使用系统的加解密API是相对容易提取对称密钥,如果是静态链接的密码库hook机制就会用到IDA相关逆向工程的技术找到相关的hook点进行密钥的导出。这种方法有点后知后觉,但是至少可以不用支付赎金也能解密的一种方法。
图5 PAYBREAK原理示意图
ShieldFS设计了一个虚拟的文件系统来缓存被勒索软件加密的文件。核心原理是分析相关I/O行为,也就是文件的读写等操作来判断是否是勒索或者是正常的文件操作行为,对于正常的文件操作备份文件立即删除,如果是勒索行为的文件行为即将进程杀掉并恢复相关文件。这种方法保留了一个时间差,可以在勒索软件正常进行勒索行为的过程中发现恶意的文件操作行为制止并对之前的文件操作进行恢复,这样既可以对准确发现勒索行为,又可以恢复被加密的文件。
图6 ShieldFS原理示意图
Redemption使用了驱动层和用户层的配合来判断勒索软件的行为,驱动层处理相关文件的写操作,用户层进行阈值(MSC)的判断返回相关结果给驱动层,最终决定对文件的相关操作,可以达到勒索软件对数据或者文件的零损伤。如果是正常的文件操作,就会把保护的文件数据删除并提交对原始文件的操作;如果是勒索软件操作,就会把阻止操作并提示报警进行确定之后把文件恢复。
图7 Redemption原理示意图
基于主机的检测主要是针对系统行为的检测,主要是针对I/O行为的分析辅助一些其他的API数据等,重点是利用的文件系统的一些机制比如利用内核进行hook。这种模式从效果来看应该是最好的一种方式,勒索软件最重要的一些行为都会体现,但是就是相对来说有一些对工作负载的一些成本和可能的一些不稳定因素。对于加密函数hook机制和密钥导出的方式算是一种除了备份之外的一种逃生机制,也是一种tricky的方式来应对勒索软件。
基于文件的检测
基于文件的检测分为两个方向的思路:第一是针对勒索软件的静态分析,第二是针对勒索软件对系统相关文件的特定行为监控。
静态文件分析
静态文件分析主要针对于勒索软件的二进制进行分析,也分为几个层次的特征提取,比如汇编码,库和函数几个层面进行逆向分析,然后结合机器学习算法进行训练,比如N-gram、HMM、SVM等算法,但是目前得到的效果都比较一般,识别率都在90%左右。
图8 勒索软件静态分析抽取特征图
基于诱饵的检测
勒索软件系列中采用的攻击策略非常相似,都是加密或删除用户文件。例如,恶意进程暴力遍历所有文件(在不同的路径中,并且使用不同的扩展名),并尝试在很短的时间内加密和/或删除它们。然而,黑客可以尝试通过模仿正常用户行为发起攻击来逃避检测。例如,黑客可能会避免暴力加密所有文件,首先加密具有最近访问或修改时间的文件。像这样监控行为的方法可能无法检测到勒索行为。然而,检测这些攻击的一种技术可能是磁盘上多个位置的安装诱饵文件并持续监控。
系统文件的诱饵,可以分为仿真诱饵和隐式诱饵。仿真诱饵尽量的伪造真实的有诱惑力的敏感信息诱饵,比如客户数据文档等。仿真诱饵可以采用黑客技术进行反控制,比如反连上线诱饵,钓鱼诱饵,登录诱饵等,这种仿真诱饵在攻击者拿到之后,使用过程中进行反控或者获取攻击者信息等。隐式诱饵是通过构建一些系统隐藏属性的文件来监测,用来发现程序自动扫描出发的一些行为来判断是否是勒索软件扫描遍历文件和目录的行为。
针对文件服务,上传诱饵文件发送至各个 FHS(File Hosting Services),并创建相关链接。由于文件的链接尚未与任何人共享,任何文件访问均被记录监视器是恶意用户造成的。能够下载并打开诱饵文件,则会触发隐藏的回连功能。
文件完整性的检测
文件完整性检测更多是事后的一种检测方式。比如文件的属性变化,内容变化等情况就会进行异常报警。通过监控文件系统在一定时间内的重命名、写入或删除等海量文件操作,可以实时捕获正在发生的勒索软件攻击,甚至可能自动阻止它。有些文件完整性解决方案具有实时修复功能,因此可以通过自动威胁响应立即阻止检测到的勒索软件,这个方案就是具备实时监控和备份的机制。也可以对备份服务及备份文件重点监控也是一种思路。
基于硬件的检测
基于硬件数据检测主要分为CPU类型、GPU类型和硬盘类型三种形式。
CPU类型检测
英特尔TDT(Threat Detection Technology) AI 软件可以在恶意软件尝试在 CPU 微架构上执行时对其进行分析。这种高保真硬件警报被转发到安全软件,以便在电脑上进行快速修复并在整个机群中进行主动保护。该解决方案将加速内存扫描和AI 等计算密集型安全工作负载从 CPU 分流至英特尔集成 GPU,以改善用户体验。微软的Defender终端安全已经集成了TDT平台数据来对勒索软件进行保护,相当于CPU集成的GPU来进行操作系统甚至之上虚拟的威胁检测,可以极大降低工作负载的性能消耗。
图9 Intel TDT平台
GPU类型检测
开发者可以利用 NVIDIA BlueField DPU(数据处理器),支持 DOCA App Shield 的 NVIDIA DOCA SDK 和 NVIDIA Morpheus 网络安全人工智能框架等先进技术来构建解决方案,以更快地检测勒索软件攻击。
BlueField DPU 提供了新的 OS-Inspector 检测应用程序,以利用 DOCA App-Shield 主机监控功能,OS-Inspector 应用程序使用 DOCA 遥测服务,使用 Kafka 事件流平台将属性流式传输到 Morpheus 推理服务器。
在 Morpheus 中的一个预训练的 AI 模型是勒索软件检测流水线,它利用 NVIDIA DOCA App-Shield 作为数据源。这为检测以前无法实时检测的勒索软件攻击带来了一个新的安全级别。
NVIDIA 合作伙伴 FinSec Innovation Lab 是 Mastercard 和 Enel X 的合资企业,在 NVIDIA GTC 2023 上展示了其对抗勒索软件攻击的解决方案。FinSec 运行了一个 POC,该 POC 使用 BlueField DPU 和 Morpheus 网络安全 AI 框架来训练模型,在不到 12 秒的时间内检测到勒索软件攻击。这种实时响应使他们能够隔离虚拟机,并在受感染的服务器上保护 80% 的数据。
图10 勒索软件检测 AI 流水线
硬盘类型检测
SSD与HDD一个显著地不同是,当逻辑上的覆写发生时,HDD会直接在物理硬件上覆写数据。而SSD通过out-of-place机制覆写。在发生覆写时,SSD把数据写到新的区块中,将旧的区块标记为无效并且通过Garbagae Collegection回收无效区块。
图11 HDD和SSD在覆写操作上的区别
基于这个机制FlashGuard方法是建立在SSD的固件层中,这样的带来的好处是FlashGuard通过硬件和操作系统隔离,因此可以抵抗来自高权限勒索软件的攻击。FlashGuard包括两个主要组成部分,Ransomware-aware Flash Translation Layer (RFTL)和数据恢复工具。
RFTL的作用是保存可能被加密勒索病毒覆写的数据,恢复工具使得受害用户可以恢复被加密的文件。其中,FTL是主流SSD的原有结构。如果一个页先被读取,然后再次被覆写,就有可能是被勒索软件污染的页。我们在FTL中添加一个结构体Read Tracker Table(RTT)。当对某个页发生读操作时,RTT中会标记该页已经被读取。当这个页被覆写时,FlashGuard会查询RTT从而确定它曾经被读取过,并且进一步将其标记为污染页。同时,FlashGuard会将这个覆写发生的时刻记录为污染时间点。当垃圾回收发生时,如果一个污染页的污染时间点比当前时刻少于一个阈值(默认值为20天)时,它会确保此污染也不会被回收。因此,20天内的可能被污染的数据都被保留在SSD中。
图12 RTFL结构简介
IBM近期也推出了相关存储产品FlashSystem可以防御勒索软件。该产品在数据写入过程中,会以块级粒度扫描所有传入数据。整个过程将涉及内联数据损坏检测软件以及云端AI方案,借此识别出可能象征网络攻击(包括勒索软件)的异常情况。依托于此类早期检测机制,管理员可以立即采取响应以缓解攻击影响。第四代FCM技术使用机器学习模型持续监控从每项输入/输出(I/O)操作中收集到的统计数据。IBM训练的这些模型能够检测出包括勒索软件行为在内的多种异常情况。IBM公司苏黎世研究团队负责协助维护勒索软件I/O签名数据库,这套数据库将帮助系统持续对齐不断变化的威胁形势。
图13 IBM推出的FlashSystem运行过程
总结
综上所述,检测技术中可以看出基于网络和文件的检测效果只能在90%左右,很难有效的提高到理想的情况。基于网络的检测最好是针对特定协议的研究可能效果更好,基于文件的检测更像逆向和病毒分析的逻辑,特征提取是难点。检测效果最好的是基于主机的检测,也是勒索软件行为的检测。但是技术壁垒较高,需要对操作系统、文件系统的各种原理熟悉,并对勒索软件的重要的文件读写特征统计并利用机器学习建模。基于硬件的检测目前只看到国外的相关芯片厂商有相关机制,国内的厂商目前还在解决“卡脖子”和性能的问题,后续需要有相关的特性才能让国内的ISV的安全厂商利用这些硬件机制,硬件机制的好处是可以极大的分担工作负载的性能和成本,可以将安全软件的性能降低一个量级。
参考资料
2.https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-165a
3.https://www.cert.govt.nz/it-specialists/guides/how-ransomware-happens-and-how-to-stop-it/
4.Akinyemi, Oladipupo et al. “Analysis of the LockBit 3.0 and its infiltration into Advanced's infrastructure crippling NHS services.” ArXiv abs/2308.05565 (2023): n. pag.
5.https://analyst1.com/ransomware-diaries-volume-1/
7.Vehabovic, Aldin et al. “Ransomware Detection and Classification Strategies.” 2022 IEEE International Black Sea Conference on Communications and Networking (BlackSeaCom) (2022): 316-324.
8.Harun Oz, Ahmet Aris, Albert Levi, A. Selcuk Uluagac. “A Survey on Ransomware: Evolution, Taxonomy, and Defense Solutions”. ACM Computing Surveys, Volume 54, Issue 11s,Article No.: 238, pp 1–37, 2022.
9.E. Kirda, "UNVEIL: A large-scale, automated approach to detecting ransomware (keynote)," 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER), Klagenfurt, Austria, 2017, pp. 1-1.
10. Kolodenker, E., Koch, W., Stringhini, G., & Egele, M. (2017). "PayBreak: Defense Against Cryptographic Ransomware",Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security.
11.Andrea Continella, Alessandro Guagnelli, Giovanni Zingaro, Giulio De Pasquale, Alessandro Barenghi, Stefano Zanero, and Federico Maggi. 2016. ShieldFS: a self-healing, ransomware-aware filesystem. In Proceedings of the 32nd Annual Conference on Computer Security Applications (ACSAC '16). Association for Computing Machinery, New York, NY, USA, 336–347.
12.Kharraz, A., Kirda, E. (2017). Redemption: Real-Time Protection Against Ransomware at End-Hosts. In: Dacier, M., Bailey, M., Polychronakis, M., Antonakakis, M. (eds) Research in Attacks, Intrusions, and Defenses. RAID 2017. Lecture Notes in Computer Science(), vol 10453. Springer, Cham.
13.Kharraz, A., Robertson, W., Balzarotti, D., Bilge, L., Kirda, E. (2015). "Cutting the Gordian Knot: A Look Under the Hood of Ransomware Attacks". In: Almgren, M., Gulisano, V., Maggi, F. (eds) Detection of Intrusions and Malware, and Vulnerability Assessment. DIMVA 2015. Lecture Notes in Computer Science(), vol 9148. Springer, Cham.
14.K. P. Subedi, D. R. Budhathoki and D. Dasgupta, "Forensic Analysis of Ransomware Families Using Static and Dynamic Analysis," 2018 IEEE Security and Privacy Workshops (SPW), San Francisco, CA, USA, 2018, pp. 180-185.
15.Bowen, B.M., Hershkop, S., Keromytis, A.D., Stolfo, S.J. (2009). "Baiting Inside Attackers Using Decoy Documents". In: Chen, Y., Dimitriou, T.D., Zhou, J. (eds) Security and Privacy in Communication Networks. SecureComm 2009. Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering, vol 19. Springer, Berlin, Heidelberg.
20.Huang, J., Xu, J., Xing, X., Liu, P., & Qureshi, M. “FlashGuard: Leveraging Intrinsic Flash Properties to Defend Against Encryption Ransomware”. In The 24th ACM Conference on Computer and Communications Security (CCS 2017), Dallas, USA, 2017.