写点什么

NotPetya 事件回顾

  • 2019-07-28
  • 本文字数:3156 字

    阅读完需:约 10 分钟

NotPetya事件回顾

本文要点

  • NotPetya 造成了严重的破坏,它突显出很多本可以让恢复变得更快更便宜的措施

  • 我们应该预计到未来的攻击会更具破坏性,因此,需要更加强健的恢复计划

  • 从可信边界模型(trusted perimeter model)到零信任模型(zero-trust model)的转移提供了更强大的防御姿态,并且可避免很多隔离问题

背景

2017 年 6 月,Petya恶意软件的一个变种被用于发动了一次针对乌克兰的网络攻击 。据信,最初的来源是对本地会计软件包 MeDoc 的更新。在几个小时内,该恶意软件从其乌克兰的办公室开始一直扩散到全球公司的网络,特征是摧毁整个 Windows 桌面和服务器环境。NotPetya 恶意软件看似密码锁定勒索软件,就像几周前发生的WannaCry病毒,但是,事实并非如此。它没有勒索,没有要求受害者支付比特币以取回受影响的硬盘或其上的数据。在记录了清理工作以及其对一些大型跨国公司运营的影响之后,Wired 说这是“历史上最具破坏性的网络攻击”


在我们迎来 NotPetya 事件两周年之际,作者基于其亲自参与该事件发生后的活动经历,写了这篇回顾文章。在事件发生之后,NotPetya 似乎成了会改变整个 IT 行业的事件,但是,事实并非如此,几乎所有的经验教训都被忽视了。

如果情况会更糟糕的话,那么下一次就会如此

NotPetya 对受其感染的 Windows 机器的 C 盘加了密。它没有影响 D 盘、E 盘或 F 盘等,并且对 Linux、Unix、Mainframe 或 Midrange 机器也没有影响。显然,该恶意软件的目标是攻击桌面系统(运行 MeDoc 会计软件包),因此它的破坏性有限。一个通过任何额外的硬盘/分区工作的简单迭代器将破坏 Exchange 服务器、SQL 数据库以及文件服务器,而不在系统磁盘上的数据不会受到影响。


整个 Windows 桌面系统和服务器系统磁盘的破坏产生了很大的影响,但是,基本没有影响有关公司的“账簿和记录”。这些数据没有受到影响的原因是,这些数据驻留在其他盘上或是在非 Windows 系统中。


我们要为下次攻击及其带来的损害做好准备,就应该考虑好下步的计划,而不仅仅是恢复对记录系统的访问(这是在 NotPetya 事件之后的主要操作),还要保护好这些记录系统。我们应该预料到恶意软件会全面地破坏 Windows 系统,并利用其它操作系统的漏洞(暴露给受损的 Windows 机器)。这应该不局限于 PC 机和服务器,尚未受到 NotPetya 攻击的 NAS 文件管理器、SAN 和网络设备也是破坏的潜在目标。

什么是可信的?

有个问题阻碍了最初的恢复,那就是,恶意软件是如何传播的,以及它已经潜伏了多久?如果我们打算回到攻击之前的已知安全点,那么,那是什么时候?之前被认为“已知的好”,往好里说是“已知的脆弱”,往坏里说就是“具有传染性”。确定折中的方式和时间成为当务之急。


让取证人员搞清安全点所在的位置可能非常耗时,但是,与此同时,任何恢复都有被重新发布的恶意软件所破坏的潜在可能。我们不得不在重建核心系统和服务的隔离及访问记录系统(以便公司能继续运营)之间进行权衡。


问题的根源在于发生事件之前建立的信任网络。可信的网络和身份管理系统(如 Active Directory)一旦受到损害,就不再可信,但是,这种信任的质量通常是基础设计的选择,会影响大量操作注意事项。谷歌(遵循 Aurora行动的妥协)转向了“BeyondCorp”,这是一个零信任模式,它与Jericho Forum去边界方法有相同的特点。

大规模恢复

备份和恢复计划通常是围绕良性条件下单系统故障设想的。如果恢复一块磁盘需要 1 个小时左右,那么,没有什么问题。但是,如果我们需要恢复 5000 台服务器,它们依次都需要 1 小时来恢复,那么就需要 208 天,差不多是 30 周。而我们有多少备份服务器呢,可以并行做多少恢复操作呢?


传统的备份和恢复在当初设计时就不是用于大规模恢复的,当备份服务器自身受到攻击影响时更是如此。但是,这里有两种好用的方法:


  1. 回滚到快照:由于系统越来越虚拟化,对已知的良好配置拍个快照变得很容易,同时,写时复制(copy-on-write,简称COW)文件系统在存储方面使其变得相当有效。


当然,快照只有先拍出来才能用于回滚。NotPetya 的悲剧之一是,明明只要几秒钟就能恢复新近安装的基础设施,但因为缺少快照而无能为力,其原因可能是“那是另一个团队做的”或“没有足够的存储空间”。


  1. 通过持续交付管道重启——使用更新、更有弹性、不会被攻击的版本来做。


注意,传统的“补丁管理”与这条交付管道是平行的,之所以使用它,是因为主流机制太慢了。

利润最大化是失败的理财

对许多公司来说,NotPetya 恢复的一个障碍是旧设备(通常是报废的)的使用。使用了数百台老旧的机器,用新机器的话只需几台就可以完成任务。由于 SAN 有几年没有升级了,因此,没有用于快照和虚拟磁带库(virtual tape libraries,简称VTL)的存储空间。


使用旧设备的动力来自资本支出(capital expenditure,简称 CAPEX)和会计人员,他们认为可以巧妙地从一项通常是完全贬值的资产中榨取更多价值,因而使用旧设备。问题是,旧设备消耗更多的电力,因此,增加了大量的运营支出(operational expenditure,简称 OPEX)。根据库米定律(Koomey’s law,跟摩尔定律相近),我们发现,在 CAPEX 和 OPEX 之间的平衡点通常驱动着一个以 3 年为一个轮回的设备更新周期。如果服务器和存储设备的使用时间超过了 3 年,那么,旧设备的电力开销就会远远大于新机器,而新机器应该更容易维护,恢复也更简单。

网络保险不覆盖“战争行为”

NotPetya 事件之后的恢复既耗时又费钱。购买了网络保险的公司提出索赔来支付这些恢复费用。至少在一个重大的索赔案例中(索赔 1 亿美元),保险公司利用了这一排除条款:在“和平或战争时期”由“政府或主权国家”采取“敌对或战争行为”。于是,这走上了诉讼之路(仍在进行中),保险公司必须证明攻击的归因。


具有讽刺意味的是,网络保险可能最终被证明是确保企业为未来攻击进行更好准备的关键。长期以来,信息安全界的经济学一直假定,保险可能通过直接立法来实现安全方面的改善,而这是无法实现的(比如,就像年轻骑手被高性能摩托车的高价挤出市场一样)。要做到这一点,需要更强大的网络政策授权(可能必须立法),同时,保险公司也将更积极地界定对投保人的最低要求(就像它们针对家庭保险中对窗锁做出的规定一样)。

未来不仅跟防护措施有关,也跟可恢复性有关

受 NotPetya(以及在此之前的 WannaCry)影响的每家公司都有一定程度的安全保障措施,通常是防火墙、杀毒软件和补丁管理。很显然,这种防护措施不够完美,否则本次攻击本该被挫败,但是,一个完美的防护措施成本非常高,也不现实。在我们处理防护措施不完美的现实时,在预防和反应措施之间做出选择是有必要的。安全专家 Bruce Schneier 在他的恢复力(resilience)标签上指出:“有时候把钱花在缓解上比花在预防上更有意义”。在缓解方面的投资也能以各种与攻击无关的方式获得回报:本该在测试环境中的修改,却意外地改在了生产环境,而这可以在几秒内修复,只需恢复到最后一个快照。

迈向零信任模式

NotPetya 不太可能长期保持“最有破坏性的网络攻击”头衔。总会有其他攻击,我们应该预料到更糟的情况。从可信网络模式转到零信任模式是防御这类攻击的最有效方法。但是,应该把力量集中在可以快速恢复的措施上。可以通过转向现代设备和软件来帮助恢复,一般来说,会出现一个不错的业务案例来支持这一举措的。


作者介绍


Chris Swan 是 DXC.technology 的全球交付副总裁兼首席技术官,负责领导跨产品系列的运营设计转变,以及利用数据驱动客户转型和服务履行的优化。之前,他是 Global Infrastructure Services 的 CTO 和 CSC 公司的 x86 及分布式计算的总经理。在这之前,他曾在 Cohesive Networks、UBS、Capital SCF 和 Credit Suisse 担任过 CTO 及研发总监, 负责应用程序服务器、计算网格、安全、移动、云、网络和容器方面的工作。


原文链接:


NotPetya Retrospective


2019-07-28 08:003633
用户头像

发布了 199 篇内容, 共 91.2 次阅读, 收获喜欢 295 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营第三周作业

CATTY

极客时间 - 架构师培训 -3 期作业

Damon

搞定 HTTP 协议(三):如何严谨地描述一个 HTTP 报文?

零和幺

https HTTP

代码重构-学习总结

飞雪

易纲:上海可以在人民币自由兑换等方面先行先试

CECBC

数字货币 区块链技术 金融科技中心

138 张图带你 MySQL 入门

苹果看辽宁体育

MySQL 数据库

十万同时在线用户,需要多少内存?——Newbe.Claptrap 框架水平扩展实验

newbe36524

信息的表示与存储-整数的运算

引花眠

计算机基础

ARTS打卡 第4周

引花眠

ARTS 打卡计划

Open-Falcon安装注意事项

wong

Open-Falcon Nightingale Monitor

ARTS-WEEK3

Allen

单例模式和组合模式

鲁米

架构师训练营 - 第 02 周学习总结

Eric

week3 学习总结

任小龙

程序员的晚餐 | 6 月 21 日 自制小火锅

清远

美食

架构师训练营 - 学习笔记 - 第三周

心在飞

极客大学架构师训练营

ARTS 第 3 周

乌拉里

架构师训练营-第 03 周总结

Eric

极客大学架构师训练营

架构师训练营 - 第三周作业

teslə

week3.课后作业

个人练习生niki👍

单例模式 组合模式

故障演练利器之ChaosBlade介绍

心平气和

故障演练 故障注入

每周学习总结 - 架构师培训 3 期

Damon

Prometheus 2.19.0 新特性

耳东@Erdong

Prometheus

设计模式练习及感想(训练营第三课)

看山是山

设计模式 极客大学架构师训练营

技术学习进阶(死磕法)

dudu

学习 技术

架构师训练营-第 02 周作业

Eric

三周作业

飞雪

架构师训练营 - 第三周总结

teslə

架构师训练营-第 03 周作业提交

Eric

极客大学架构师训练营

ARTS-WEEK4

一周思进

ARTS 打卡计划

Go:使用Delve和Core Dump来调试

陈思敏捷

debug gdb Go 语言

NotPetya事件回顾_软件工程_Chris Swan_InfoQ精选文章