赞
踩
网络安全公司 CrowdStrike 周四发布软件更新后,机场、银行、证券交易所、911 服务、交通系统、酒店、新闻媒体、医院、紧急服务等开始出现臭名昭著的蓝屏死机 (BSOD)。在看似多年来最严重的 IT 中断中,大规模的网络安全软件问题正在全球范围内造成混乱。
漂亮的蓝屏(1)
耀眼的蓝屏2
看起来是这样的,壮不壮观?
CrowdStrike 为 Amazon Web Services、Microsoft、eBay、Visa、AT&T 和 82% 的美国州政府等客户提供云工作负载保护和端点安全、威胁情报和网络攻击响应服务。
CrowdStrike 首席执行官 George Kurtz 在 LinkedIn 帖子中表示,此次中断是由于单个 Windows 更新造成的,这意味着它只影响Windows 系统。Mac和Linux客户运行正常。
受这次影响,它的市值一下子迭去了超过10%以上。而其竞争对手的股票都纷纷上涨。道理很简单,客户经此次折腾,很多会逃离这家公司,会转向使用其竞争对手公司的产品。
George Kurtz 非常的会轻描淡写,不知道哪里来的底气。感觉这家公司如果不采取好的补救措施,估计真正离死也不远了。他很“大方”的补充说,该问题不是网络攻击或黑客攻击的结果,Crowdstrike 已识别并隔离该问题,并部署了相应的修复程序。
似乎最后的元凶也找到了。居然是刚入职的第一天,就做成了这个壮举。一个字:“服!” 太牛气了。看来,Crowdstrike公司对这位新员工是无比的信任啊。
真凶入职才第一天......, 怎么祭天??
可是找到了又能怎么样呢?全球性的损失估计无以估量,就职就离职,也解决不了什么或弥补不了什么。这哥们以一己之力,比黑客还牛逼性的摧毁全球那么多台windows主机,我只能说,他比黑客还黑客。看他那神情,似乎有点儿一本正经的理直气壮。
在网上也查到了相关的修复步骤,真是很烦琐。估计受害用户,人人咬牙切齿。呵呵。总共11步:(如果您知道如何在计算机上快速进入安全模式,请跳过前九个步骤(来自 Microsoft),直接进入后两个步骤(来自 CrowdStrike):)
- 1.按住电源按钮 10 秒钟以完全关闭设备。
- 2.再次按电源按钮重新打开设备。
- 3.在 Windows 启动的第一个迹象(通常是制造商的徽标)出现时,按住电源按钮 10 秒钟以关闭设备。
- 4.再次按电源按钮打开设备。
- 5.当 Windows 重新启动时,按住电源按钮 10 秒钟以关闭设备。
- 6.再次按电源按钮打开设备。
- 7.让您的设备重新启动进入自动修复,然后选择高级选项进入 Windows 恢复环境。
- 8.到达那里后,选择“疑难解答”>“高级选项”>“启动设置”>“重新启动”。
- 9.设备重新启动后,您将看到选项列表。从列表中选择选项 5,或按 F5 进入带网络的安全模式。
- 10.进入 C:\Windows\System32\drivers\CrowdStrike 目录。
- 11.删除“C-0000029*.sys”文件并重新启动计算机。
所幸的是,我们种花家的机器用不上这么高大上的安全公司的产品。也就没受什么影响了。微软这次躺枪,不知道它和CrowdStrike私下怎么和解。
编一个笑话:
- CrowdStrike会说:“大哥,就让小弟免费给您维护5年吧,不收您一分钱。”
- Microsoft:“再让你祸害我五年?” ......
咱们玩笑归玩笑,这起事件,实质上影响是非常恶劣的。这两家公司都是相关领域的头牌公司。连头部公司都能犯这样的错误,我们想想普通的相关公司是不是犯此类错误的几率会更高,只不过,他们发生的少,所以曝光度就非常高,也容易被放大。
从这次事件的前因后果来看,让新人第一天上班(是否第一天,待考),就发布全球性的补丁,看来真是对他无比信任啊。这种补丁的发布,难道不是需要经验老到、成熟稳重的员工去操作吗?
从视频上看,他只是在自己的PC上简单的试了下,就认为“测试”通过了。然后,一顿操作猛如虎。全球性的补丁,一下子发布出来。这种神操作,怎么看,也不像是正规的做法。而CrowdStrike公司居然事后也并没有做任何相关的解释。真牛气。
稍有经验的补丁发布工程师,针对这种全球性的补丁发布,也都会采取逐步分区域发布,并进行相应实时监控,即算某区域临时出问题,他也可以临时停止发布,进行回滚补救,造成的损失也不至于这么大。
如果我们这里要说,针对全球性服务、云环境,测试比那种本地部署,会来得更严格,大家相信吗?
而此次安全,毫无疑问,就犯了这种严重的错误。下面我们就聊聊测试TEST:
写测试本身没有什么技巧。技巧是落在了要写出可以测试的代码。
请看下图:
测试金字塔
自底往上:单元测试、组件测试、集成测试、系统测试、场景测试、手动测试
专注于单一方法或者面向对象的类,围绕着目标类周围的所有内容,会进行双向测试。
单元测试
单元测试有哪些优缺点:
- 优点:
- 1.开发阶段就可以完成
- 2.可以与真实环境隔离
- 3.快
- 4.容易进行错误分析
- 5.稳定
- 6.维护成本低
- 缺点:
- 1.大部分只能在模拟环境中运行
基于以上分析,光靠单元测试是不够的。
光靠单元测试,仍然不够......
上图形象的描述了:虽然单元测试都通过了,但是作为一个整体,仍然“集成”失败,最后导致沉船的悲剧。
集成测试主要是用来检验各相关组件之间的交互是否工作。
集成测试来弥补
系统测试主要以黑盒的方式,来检测整个系统。所有的场景都是真实的,并且确保能工作。
系统与场景测试
第一次试飞前,得有测试......
真实实例:只有在开发阶段结束时,采用系统和场景测试,就像将飞机的各个部件整合到一起,进行完整的测试,而不是只仅仅测试一下各个部件本身是否工作……, 这样才能进行第一次试飞。
系统与场景测试的优缺点:
- 优点:
- 1.测试在真实环境中运行
- 2.服务及组件之间的交互都能得到测试
- 缺点:
- 1.只能在开发结束以后才能进行
- 2.环境的搭建与配置比较复杂
- 3.一般运行时间都比较长
- 4.分析错误会比较费功夫
- 5.大都比较脆弱
- 6.维护成本比较高
一个重要的结论是:如果测试是良好充分的,那么产品的代码也可以认为是足够的良好。反之,如果测试很糟糕或者压根就没有,所有的对于产品良好的期盼,将是泡影。
最后,如果以NodeJS为例,我们把测试金字塔,再分一下层,与相应的工具对应起来,就是下边的这个样子:
完整的测试金字塔
从下往上,速度效率会越来越低,成本会越来越高,但基本上都是必须的。只有这些测试都完全通过,才能发布出符合预期的产品。
我们重新回到这个案例本身,他的最后的系统与场景测试,谨慎怀疑没有完全做到位。同时手动测试更是随意性强。再加上最后发布策略,完全是激进式的操作,这样一叠加,可以说,基本上就完蛋了。做好一名架构师,那么,这个环节,更要引起重视。
这样看来,我们对测试,还不引起重视吗?没有良好的测试,基本上跟在游泳池里裸奔没啥区别。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。