事情背景
2024年7月19日美国网络安全企业“群集打击”(CrowdStrike)软件出现问题引发的操作系统蓝屏、全球宕机事件。这个事件发生在CrowdStrike更新发布后不久,导致许多用户的计算机在更新后无法正常启动,而出现了“蓝屏”错误。它如同一颗隐形炸弹,在全球范围内引爆,导致近850万台设备遭遇故障,横跨航空、医疗、传媒等众多关键行业,甚至造成美国超过2.3万架次航班延误。
微软公司在意识到这个问题后立即采取了措施,包括发布修复补丁、提供技术支持等,以帮助受影响的用户解决问题。同时,微软也对这个事件展开了调查,以确定问题的根本原因,并采取相应的措施来防止类似的事件再次发生。
微软蓝屏事件中多数中国企业幸免 ,国航、东航、南航,中国三大航航班未受微软故障影响,北京首都机场和大兴机场出发的国际航班目前也运行正常。网传上海康莱德酒店因操作系统无法正常使用导致入住和退房受到影响。此次中国内地的航空公司和机场没有购买和部署CrowdStrike,当天的航班运行和进出港都基本正常。为何多数中国企业幸免?国有航司使用的安全产品以国产为主,还没碰到过类似的蓝屏事件。
1993年“银河”号事件
1993年7月23日,美国宣称驶往伊朗阿巴斯港的中国“银河”号货船载有制造化学武器的前体化学品,要求中国政府立即采取禁止措施,否则将按国内法制裁中国。从8月1日起,美方派遣海军舰船、飞机对“银河”号近距离跟踪和低空侦察。8月3日,美方又要求中方召回该船,允许美方登船检查,还向该船计划停靠港口所在国施加压力,阻止进港卸货。
为避免事态恶化,中方于8月3日指示该船于霍尔木兹海峡东口外公海上停泊。该船载有运往伊朗的24个集装箱,主要是文具、五金和机械零件。中方查对后没有发现美方指控的化学品并将情况通报美方,但美方坚持指控,要求对该船检查。我国政府严厉拒绝了美方的无理要求,美国是咄咄逼人,我方据理力争、坚决不让步。银河号在印度洋的国际公海海域上与美国海军僵持了三周之久,食物和饮水渐渐不足。不利情况下,我国没有屈服,联系中东地区的海湾国家帮忙,寻找第三方友好国家对银河号上的工作人员进行补给。美国政府见识了我方的“倔强”后,黔驴技穷,为了对银河号釜底抽薪,干脆切断了这一地区的GPS信号。一时之间,哀鸿遍野,只要驶入该地区的任何船只,除了美国自己的,都如同无头苍蝇难辨方向。这种情况下,银河号无法定位、无法获得补给。美国此时操纵世界舆论,无中生有地进行攻击。对此,中方建议由第三方与中方一起检查。
该船驶入达曼港后,由中国检查组与沙特阿拉伯代表共同进行检查;美国则派专家作为沙特阿拉伯代表的技术顾问参与检查。对该船全部集装箱的检查证明,“银河”号没有美方指控的化学品。美国代表不得不签署否定其指控的检查报告。中国外交部就此发表声明,公布检查结果,谴责美国行径,要求美方道歉并给予赔偿。一些国家也纷纷发表声明,对美国的行为表示谴责。
大国博弈下的网络安全危机
这一全球性的“7.19 蓝屏事件”是一次类“1993 银河号事件”,不过这两个事件有着本质的不同,前者是CrowdStrike的漏洞导致,后者是美国霸权主义的体现。不过两个事件也有相似之处,就是都是美国为由头引起的一系列事件,只不过后者是美国的主动,前者是出乎美国意料之外的爆发的全球性的网络安全危机,有的阴谋论说,这个其实是美国政府主导的对瘫痪全球计算机系统的一次测试。
其实这种阴谋论也不是没有道理的,美国政府为达成国家利益操纵国内企业也不是没有先例的,上面提到的银河号事件关闭GPS就是一个很好的例子,在当今的形势下,中美之间的大国博弈很有可能会用微软的普及率来做文章。2015年开始国家就很有远见的提出要普及信创,用国产系统、国产硬件。
大规模故障的最佳方案或应急响应对策
面对这一类全球性的大规模故障,我在这里提出一下自己的一点小小建议
1、设计冗余系统
这里说的冗余系统不是单纯的复制一套一模一样的系统,而是要设计一套异构的能提供相同功能的系统,例如一套系统是使用Windows Server的,另一套使用Linux的,另一套使用国产信创系统的,同时里面使用的安全软件也是每套系统之间使用不同厂商的。这种冗余方式是比较稳妥的,但是响应的投入成本也是最高的,不过这种方式完全可以使用虚拟化技术,一个集群承担多套系统,同时有空闲资源也可以进行出租售卖,目前阿里云就是这种模式。同时系统间的切换也要迅速,可以使用F5之类的负载均衡系统来做到用户无感切换。
2、异地备份
异地备份主要针对的是自然灾害和其他物理性的因素,通常会在设计冗余系统时一起考虑。
3、定期进行应急演练
这是为了定期检查冗余系统的保障能力是否符合设计要求。
4、增强故障预测能力
下面介绍一下几个比较常用的自动化工具,可用于提高故障预测能力。
1)Prometheus:Prometheus是一个开源的监控系统和时间序列数据库,可以收集各种数据指标并进行报警和告警。它提供了灵活的查询语言和图形化界面,可以帮助用户实时监控系统的各种指标,并提前预测系统故障。
2)Nagios:Nagios是一种强大的开源网络监控解决方案,可以自动化监控网络设备、服务器和应用程序的状态。它可以通过设置阈值和警报规则来预测系统故障,并在故障发生前发送警报通知。
3)ELK Stack:ELK Stack是由Elasticsearch、Logstash和Kibana三个开源软件组成的解决方案,用于实时日志分析和可视化。它可以收集、存储和分析系统的日志数据,并通过实时监控和可视化来帮助预测系统故障。
4)Grafana:Grafana是一个开源的数据可视化工具,可以与各种数据源集成,包括Prometheus、InfluxDB等。它提供了丰富的图表和仪表盘,可以帮助用户实时监控系统的各种指标,并进行故障预测和分析。
这些工具和解决方案可以提供实时监控、数据收集和分析的功能,从而帮助用户提前发现系统故障,并采取相应的措施来避免或减少故障的影响。
5、增强系统的自我修复能力
下面介绍一下几个比较常用的自动化工具,可用于监控系统与增强系统的自我修复能力。
1)Nagios:Nagios是一个开源的监控系统,可以监控网络、服务器、应用程序和服务的状态。它可以通过发送警报或执行自动修复脚本来响应问题。
2)Zabbix:Zabbix是另一个流行的开源监控系统,可以监控网络、服务器和应用程序的性能和可用性。它可以通过自动化触发器和动作来执行自动修复。
3)Puppet:Puppet是一个自动化配置管理工具,可以帮助管理和自动化大规模服务器基础架构。它可以监控系统状态并执行自动修复脚本来解决问题。
4)Ansible:Ansible是另一个流行的自动化配置管理工具,可以自动化部署、管理和配置系统。它可以监控系统状态并执行自动修复任务。
5)Kubernetes:Kubernetes简称K8S,是一个容器编排和管理工具,可以自动化部署、管理和扩展应用程序容器。它可以监控容器的状态并自动重新调度或重启故障的容器。