过去近两年,一直忙于准备各种考试,又是静默和中考琐事,很久没写字了。最近正好收集了第七个微软Expert认证,是关于网络安全的。准备考试期间刷了一些文档,尽管很多与厂商产品或解决方案相关,其中不少还是相当具有参考价值的。
最近看到不少受到勒索攻击的报道,也发觉到勒索攻击的新形势——从单纯攻击个体系统,到有意识的渗透和攻击企业业务关键系统,甚至利用业务系统漏洞进行传播渗透的。随着反全球化和全球化的经济下行,曾经风头不二的IT行业也就尤其感觉到寒意,简单来说,失业的人多了,黑灰产铤而走险的事情也必然增加。所以接下来看到类似的事件应该有增无减。
因此觉得有必要写点随笔,一方面确实有点感想,另一方面也为了帮助自己巩固学习——刷的很多文档材料确实很棒。限于能力和精力,随笔的内容可能不会涉及得太广,我想会更多地侧重最终用户计算方向吧。
后文较多内容来源于微软的MCRA,Microsoft Cybersecurity Reference Architectures,我会对部分架构图进行翻译,因此就不一一标注来源了,除此以外的资料图片来源,我会尽可能进行说明。
首先来看看勒索软件的演进吧。
最早出现勒索软件攻击的时候,其攻击目标往往是因为不小心打开附件、点击链接的个人用户,攻击行为比较机会主义(随意性)。随着“新业务”模式的形成,攻击者通过勒索行为能够牟利,勒索软件开始利用系统漏洞进行更广泛的传播。比如我们熟知的WannaCry,利用了一个高危的0-day漏洞。这意味着攻击面的扩大,以及勒索更多钱财的尝试。直至有意识的通过劫持数据来影响企业关键业务的持续,出现了人工运作(针对性)的攻击行为。
MCRA里提供了一个参考的人工运作勒索攻击的典型攻击链示例,我们可以参考一下。
这个示例是一个简化的攻击链,只显示了三个主要的攻击阶段:进入环境、横移和扩展及执行目标。早期的勒索攻击可能只有客户端攻击 -> 安装恶意软件 -> 加密数据 -> 敲诈金钱等。而人工运作的勒索攻击,可以看到多出了不少其他的攻击组成部分:
1、为了更加快速的渗透和扩大攻击数据范围,除了传统通过客户端用户不慎行为进入环境的方法,甚至还出现了通过黑灰产业直接购买访问权限以加速进入环境的做法。这表明勒索攻击已经变得规模化、产业化,攻击行为的组织不再停留在个人级别。
2、而横移和扩展环节,也不再仅仅借助系统漏洞进行传播。出现了针对凭据的攻击,通过对凭据的窃取,攻击者得以获得更高的管理权限,从而能够接触并攻击具有更高价值的目标。
3、到了执行目标环节,除了以前勒索攻击所进行的数据加密从而敲诈金钱解密之外,攻击者还会通过数据外渗来窃取数据,在暗网等黑灰产业进行敲诈和出售。这些攻击方式除了对企业关键业务的影响之外,往往还会影响例如上市公司的商誉造成投资市场的附加损失。我们甚至可以把目光放得更广远一点,基于反全球化和国家对抗,除了对商业,类似的勒索攻击也可能会针对政府和事业组织。
从这些特点可以看到,与以前“听天由命”地让攻击程序去自行传播不同,人工运作的勒索攻击变得更加具有针对性,攻击计划和过程组织得更加精心。人工攻击的操作者甚至会进行分工,利用脚本和恶意软件资源进行攻击协助,目标是扩大攻击范围和纵深,尽可能地针对高价值目标(HVT)。
尤其需要指出的是,人工运作的勒索攻击还特别针对人们薄弱的、自以为是的防御常识。例如,我们经常会说,备份重要数据是应对勒索攻击的重要手段,但从很多案例看,用户并没有真正理解备份工作的重要性。可能进行了备份操作,但备份文件和原始数据位于相同位置(例如备份文件保存在另外一个磁盘,或者能够直接以文件服务等访问的保存位置)。所以一定要强调一下:
备份没有“离线” = 没有备份 |
这里的离线当然是物理离线最好,如果没有物理离线,至少也要做到无法通过数据所在系统直接访问备份——因为很多勒索攻击已经开始对备份系统进行有针对性的破坏。
在主流的公有云服务中,例如Azure和AWS,也都有针对存放时间较长但读写相对极少的低存储定价层服务可选。所以区别于传统备份方式,有不少使用公有云服务的用户已经开始尝试使用相对拥有及运营成本更低的云端存储,进行业务数据的备份和储存。在这样的场景下,对备份及存储服务的帐户及权限的管理就尤为重要,因为人工运作的勒索攻击一旦如前图所示,获得了管理权限,就可以终止备份服务,甚至删除备份存储等操作。如Azure和AWS的主流公有云服务,因此也提供了类似使用PIN码确认删除备份存储操作等保护。但归根结底,勒索攻击防范不再仅仅针对某一环节就高枕无忧了。
另一方面,由于在横移和扩展阶段争取了更多的攻击基础,需要“清创”的范围扩大,对恶意程序的清理范围也随之扩大。简而言之,无法以“头疼医头”的方式来进行损害管理,一旦有所遗漏,勒索攻击将会借助不同的系统容身,尽可能持续威胁和攻击以获得更大利益。而很多组织的安全工作受限于人员的经验以及工作划分的垂直细分,很难从整体上维持较高基线,这就增加了受到攻击后再次蒙受损失的机率。
看了这么大段的文字肯定累了吧,我们看看下图的例子,就比较好理解了。
以图中“知名”的勒索软件为例,人工运作的勒索攻击使用常见的漏洞进入环境,例如对RDP的暴力攻击、已知面向互联网系统的漏洞和应用配置的弱点等。为了扩大攻击面和纵深,也会利用工具和已知弱点尝试盗窃凭据。然后是利用工具甚至系统本身进行侧移和扩展、提权。再利用对系统的监管漏洞尝试攻击持久化,例如创建帐号、GPO策略对象、注册服务和计划任务等等。最终实现攻击动作的加载,完成勒索攻击过程。
扯了这么半天,那么什么是比较好的防御手段呢?
首先看看推荐的防御原则。
确实没找到原始文件,也懒得为了翻译再画一遍,就对付看了。行之有效的勒索攻击防御有三点建议:
1、准备恢复计划
天下熙熙,天下攘攘,勒索攻击不像以往高手求名,妥妥的求利。所以如果有不花钱的恢复方式,自然就减少了损失和降低攻击者的兴趣。具体做法有:加大访问/中断系统,或加密/损坏数据的难度;使组织更容易“免费”地从攻击中恢复。
2、限制损害范围
通过限制攻击者能够访问的范围、限制攻击者获得特权访问的能力,使其难以轻易从攻击组织的行为中获利,增加攻击成本,从而迫使放弃攻击。
3、增加入侵难度
这部分任务最为重要,“御敌门外”,相应涉及的系统也最多最复杂。该部分目标是让攻击者在各种常见的入口点,对本地或云基础架构访问权限的获取尝试更加困难。
如果我们拿着这三部分的防御建议对照前文介绍的勒索攻击链示意图,就会发现恰好和简化的三个环节对应。实际上攻击链上每一环的推进都依赖于前一环的准备,环环相扣。所以理论上越早成功的防御攻击,成本越低,损失越小。这也是提倡攻击链防御“左移”(left shift,我看DevOps时候见到测试右移想到的词哈哈)的原因。
限于随笔的篇幅,仅对各阶段目标简单描述。
1、准备恢复计划
勒索攻击之所以实施,就是为了牟利,而组织最佳的防御结果,就是不用付钱。虽然攻击者有各种方式进行敲诈,但主要集中在两个类别:花钱恢复信息数据的访问权限;花钱避免信息泄漏。
就像绑票案和勒索案一样,走向人工运作的勒索攻击并不能保证一笔交易一劳永逸。有时攻击者仅仅使用其他人提供的攻击工具,因此无法确保付钱之后能够恢复。
就像前文我提到的,微软也建议可采取的最直接有效的方式是确保组织可从“不可变”存储中恢复整个企业,即无论攻击者还是组织自己都无法修改该存储(真·离线)。所以,安全备份就尤为重要了。必须评估和确保所有恢复业务所需的系统和数据受到备份保护,且备份可抵御攻击者的蓄意删除或加密。后半部分恰恰是目前大多数组织所疏于防范的。
除此之外,如果考虑使用加密来保护数据,方式数据泄露,则应兼顾密钥库(Key Vault)和密钥管理系统(KMS,Key Management System)的备份和安全。常见公有云服务可从架构上考虑其安全性,如果使用组织自己的密钥库和管理系统,则需要额外关注其避免受到攻击。选择基于硬件(HSM,Hardware Security Module)的方案是个不错的主意,因为尽管成本较高,但基于硬件模块的保护更加难以被访问和篡改,使用时仍需考虑其高可用性。
传统架构方式下,是难以对每个桌面进行备份保护的。第一需要的许可数量多而昂贵,第二随着移动化、混合工作趋势,离散的桌面备份到数据中心,难以满足速度和完整度。如果使用VDI/SBC架构的话,就可以通过网络文件共享方式,将数据从桌面剥离,从而具备集中备份的条件。同时,同在数据中心高速网络,也使得其满足业务要求的MTTR指标。当然,靠谱的商业级网盘例如One Drive也可用作较为安全的防止勒索的文件共享方式。
这一部分工作具体参考步骤可包括:需要备份的关键系统和数据识别,满足业务恢复需求的MTTR定义,角色权责定义及用户标识和高危操作保护等等。建议在30天之内,确保系统(包括数据)的平均恢复时间(MTTR)满足业务期望的、IT部门规定的业务持续/灾难恢复(BC/DR)目标。
2、限制损害范围
一旦攻击者获得了特权访问权限,常见的安全控制措施都将面临失效的结果。这不仅仅限于攻击者当前进入的系统,更会包含特权访问能够抵达的更广更深的其他系统。勒索软件攻击者将可使用特权访问获得到所有关键资产,或称高价值目标的快速途径,进行后续的攻击和敲诈勒索。
可以明显看出,特权窃取是横移和扩展链条的重要组成部分。而涉及获得特权访问的环节非常的多,因此需要对业务涉及的系统和数据进行全面的评估,如果涉及面太广需要太多协作和时间,可以考虑分阶段按重要性进行,总之要尽快开展。对于这部分工作,可以参考快速现代化计划(RaMP)。
由于这部分防护位于链条中部,所以还肩负了检测和响应的很大部分工作。需要衔接更前一个环节的防护,快速检测和修正对终结点、电子邮件和标识的常见攻击。越早检测识别到威胁,横向扩展或遍历、纵向延伸或直击的攻击实现就越困难,防护成功就越有可能,损失就越小。建议在30-90天之内实现全部的:通过安全工作站管理;本地系统密码随机化;部署特权提升缓解措施。
3、增加入侵难度
这其实是离攻击者更近的一环,也是勒索攻击链模型最外的一环。在这个阶段如果能够缩小乃至消除入口的风险,攻击者就更难入侵本地或云端的基础架构。这也是离最终用户最紧密的部分,远程访问、电子邮件和协作、端点和帐户,都是最终用户(End User)使用系统经常会触及的部分。特别在于当下,历经疫情影响,越来越多的组织可能选择远程工作或混合工作模式,更加增加了最终用户访问系统的范围和时间。随之而来的自然就是风险的大幅增加。
对于远程访问,勒索攻击的载体可能是通过远程访问连接获得对组织内网的访问。从最终用户入侵获得本地用户帐户之后,就能自由访问内网资源,收集必要信息,准备提升特权和安装勒索软件。
对于电子邮件和协作,通常会使用经授权的协作工具(邮件和文件分享等)传入恶意内容,并诱使最终用户运行来入侵环境。无论是否已经启用企业规模的邮件防护,最终用户邮件和协作安全培训依然非常重要,可经常进行内部模拟的钓鱼测试,以提高最终用户警觉性。
终结点是以往既重视又忽视的重要部分。组织已经习惯于保护PC等终结点设备,但往往在面向移动和互联网环境时,缺乏有力的系统来确保一致的配置基线和安全基线。终极点往往是攻击者初始攻击的策源地,往往利用常见操作系统或应用程序漏洞获得访问能力。可利用终端管理(或称终结点管理)或使用远程隔离(例如VDI/SBC这种数据不落地访问形式)来限制和保护终结点。
帐户往往是入侵的核心。尽管密码不能保护一切,统一的、跨平台的密码安全策略(包括复杂度、重试限制、错误锁定和密码历史等)仍然不可或缺。大家都不喜欢多因素验证(2FA或MFA),但分离不同使用途径的多因素验证确实能加强安全性。更好的是使用无密码验证方式(例如借助指纹、面部信息等)改进最终用户的登录体验。
借助零信任安全架构,将人员身份验证扩展到设备身份验证也是个非常好的做法,可以有效减少带外MFA操作次数,不会让最终用户因为繁琐抛弃安全。建议在30天之内尽量实现:全员主动使用MFA;全面满足部署更高密码安全性。
由以上三部分的介绍,其实也能看出来了,防御工作是针对攻击运作的逆向准备。
如上图,针对勒索攻击链的三个环节,我们可以使用三部分的相应防御措施来缓解、拒止攻击动作,并且越靠近左边的防御措施生效,受到攻击并导致损失的越小。这就是我前面提到的“防御左移”。可以看到,和最终用户相关的防范在此模型的揭示下,显得尤为重要,这也是为什么我想写一些随笔的原因。
图中其实还涉及了防御计划的规划,以终端环节防御为例,可参考下图。
字太多我就懒得翻译了,其实原则不复杂,加上Where就是我们熟悉的5W1H了。和很多工作计划一样,明确目标,评估现状,制订计划,指标衡量。对整体勒索攻击防御进行阶段和环节分解后,就可以通过类似工作落地成为可实施计划。
随笔写到哪算哪,内容也没有进行更好的组织。本篇其实涉及到了很多其他内容,例如特权访问限制、零信任安全架构等话题,都是我想聊聊的,限于篇幅,后续找时间再写点吧。
啰嗦半天,能坚持看完实属不易,感谢您的宝贵时间。
推荐的微软安全方向学习路径:
https://blog.51cto.com/haohu/5642425
参考阅读材料:
什么是勒索软件
https://docs.microsoft.com/zh-cn/security/compass/human-operated-ransomware
快速部署勒索软件防护
https://docs.microsoft.com/zh-cn/security/compass/protect-against-ransomware
The growing threat of ransomware
https://blogs.microsoft.com/on-the-issues/2021/07/20/the-growing-threat-of-ransomware/
3 steps to prevent and recover from ransomware
https://www.microsoft.com/security/blog/2021/09/07/3-steps-to-prevent-and-recover-from-ransomware/
除上述资料,也建议阅读安全博客文章,便于快速理解遇到或防御勒索攻击时可供帮助的资源和做法:
A guide to combatting human-operated ransomware: Part 1
A guide to combatting human-operated ransomware: Part 2
Becoming resilient by understanding cybersecurity risks: Part 1
Becoming resilient by understanding cybersecurity risks: Part 2
Becoming resilient by understanding cybersecurity risks: Part 3—a security pro’s perspective
Becoming resilient by understanding cybersecurity risks: Part 4—navigating current threats