写点什么

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:003504
用户头像

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

关注

评论

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

疯了吧!这帮人居然用 Go 写“前端”?(一)

尔达Erda

开发者 云原生 大前端 后端 开发

GitHub霸榜月余的24万字Java面试手册,竟是阿里机密

Java 面试

基于MaxCompute快速打通数据仓库和数据湖的湖仓一体实践

阿里云大数据AI技术

架构实战营模块一作业

王晓宇

架构实战营

面试官问我会canvas? 我可以绘制一个烟花🎇动画

阿飞

大前端 动画 SVG 数据可视化 canvas

IPFS挖矿算力排行榜?IPFS挖矿排行榜?

分布式磁盘 KV 存储 - Kvrocks

Kvrocks

RocksDB redis cluster Redis 协议 storage KV存储引擎

推荐系统的人工调控策略(二十八)

Databri_AI

推荐系统 策略模式

5分钟速读之Rust权威指南(三十五)状态模式

wzx

rust

视频云峰会|“超视频化时代的全景创新” 是什么?

阿里云CloudImagine

阿里云 音视频 视频 视频解码 视频制作

来一份全面的面试宝典练练手,看这篇足矣了!

欢喜学安卓

android 程序员 面试 移动开发

模块2作业

cherrycheek

辩证|北鲲云和你一起探讨关于生命科学发展的意义

北鲲云

2021最新一线大厂Java高级架构师面试题总结

Java 程序员 架构 面试

极光开发者周刊【No.0702】

极光GPTBots-极光推送

排序——插入排序

若尘

数据结构 排序 排序算法 插入排序

GrowingIO Design 组件库搭建之Select组件

GrowingIO技术专栏

select 组件实现 virtualList

以太坊的 ChainId 与 NetworkId

杰哥的技术杂货铺

区块链 以太坊 ChainId NetworkId

架构实战营模块1课后作业

蔸蔸

《啊哈C语言!》学习笔记(1)

Nydia

为什么你总是买了很多不需要的东西?

石云升

消费者 7月日更

垃圾回收器的前世今生

中原银行

垃圾回收

秋招提前批开始了,一文带你了解,C++ 后台开发知识点及学习路线

奔着腾讯去

学习 程序员 面试 校园招聘 秋招

连续四年百度Android岗必问面试题!成长路线图

欢喜学安卓

android 程序员 面试 移动开发

你觉得普通程序员和大神程序员有哪些区别

耳东@Erdong

程序员 7月日更

别再往收藏夹怼资源了,收好这个视频创作导航网站就够了。

彭宏豪95

效率 视频 导航网站 视频制作

【LeetCode】从前序与中序遍历序列构造二叉树Java题解

Albert

算法 LeetCode 7月日更

每天学习10个实用Javascript代码片段(一)

devpoint

JavaScript LocalStorage 7月日更

k8s 节点机器重启 CNI IP 未回收

Geek_f24c45

Kubernetes cni

模块一作业

江南巴飞特

第一模块作业

晨晨

架构实战营

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