成都核酸采集系统宕机,究竟是谁的锅?

2022年9月2日,成都核酸采集系统连续中断服务了两次,累计中断时间在两个小时以上,大白们只能把手机(采集终端)高举上天,希望信号能好一点,这场景真是程序员之耻。

这种影响上千万人核酸采集的系统故障,属于特别重大网络与信息安全事件,按规则要求,需要启动 I 级响应,也必须要有人为此事负责。

但是,成都这次竟然在技术层面上出现了「罗生门」,涉事方为了避免承担主要责任,开始各执一词,相互甩锅,东软发文《东软集团声明_科技热线[1]》说是网络故障导致的,而四川通信管理局却发文说网络通信一切正常,那责任究竟是谁的?

事实上,无论四川通信管理局还是东软,既然敢在这种特别重大事件上,如此强硬地发文表示自己无责,那大概率可能真的不是他们的「主要责任」。

在狼人杀里,谁没强硬发声谁就心虚,谁没有斩钉截铁地论证自己是好人,谁就有可能是狼。

在这场罗生门里,可并不是仅有四川通信管理局和东软两方,还有关键几方,比如成都市大数据中心(成都市网络理政中心)承建的成都市政务云。

摸索真实原因

我倾向于东软没说谎、只可能隐瞒了部分真相。原因是日志系统还在,东软的谎言太容易被拆穿了。

核酸采集系统必然是部署在政务云上,所以核酸采集系统的连接日志、防火墙日志、数据库日志都在政务云上面,东软就算想篡改,难道瞒得过天府软件园10万名程序员?

其实东软的声明里面,已经暗戳戳的把责任方点出来了,见下图

四川通信管理局身上本来就没有锅,他们的核心目标是证明自己完成了份内的工作,只要老百姓别骂通信运营商和主管部门就行。

所以四川通信管理局在公告中,列出了具体的通信应急保障人数、应急保障工作内容,并且承诺移动通信绝对没有问题。

事实上,在核酸采集系统中断的时候,排队的成都人民该刷某信的刷某信,该看某音的看某音,这就已经说明移动通信网络没有问题了。

手机通过4G/5G网络连接到接入服务器这一段,明显是通畅的,那问题就只能出在接入服务器到数据库服务器这个阶段——这部分是由成都政务云负责保障的。

成都市政务云提供电子政务外网的网络服务,包括在政务外网DMZ区的负载均衡、应用服务器、防火墙以及政务外网数据库服务器之间的网络。

如上图所示,只有左边红框里的网络,也就是智能手机上网这一块的服务,是由通信管理局负责的;而右侧红框里,政务外网的网络、安全设备和服务器,全是由成都政务云负责的。

政务外网是相对于政务专网、政务内网而言的,并不在公网上,可以理解为政府部门的内网中,离公网最近的一张网络。政务外网被防火墙分隔为外部DMZ区和内部安全区,我们能正常访问的,也只有政务外网DMZ区的特定IP和端口。而核酸采集系统系统,一般都部署在政务外网上,只有接口服务器放在DMZ区,可以自由访问。

大家千万不要看见政务外网四个字,就以为政务外网跟门户网站一样可以随便访问,事实上政务外网的安全措施一点都不低。比如限制IP频繁登陆、抗DDoS攻击,都是防火墙的标准操作。

然后我们再看这张截图,有关部门在呼吁市民把手机调成飞行模式,不要占用基站信号通道,而且提到在某些区县试用的时候,效果不错。这是个非常有价值的线索。

其实让大家开飞行模式,不是基站信号通道不足的问题,一个小区也就2、3000人,现在不管是5G还是应急通信车,都能有效保障居民的移动通信;飞行模式有助于减少通往政务外网防火墙的瞬时流量,这样就不会触发网络安全机制了。

因为我们用移动4G/5G上网的时候,手机终端是不可能获得公网IPv4地址的,而只能获得一个由运营商分配的172.x.x.x的内网地址,一批内网地址可能只有一个公网IP作为出口,大家也可以打开www.ip138.com看看自己手机在公网上的真实IP。

如果在一个区域内,有几千人同时用移动端访问某个网站,网站服务端一侧能看到的,很可能就是某个中国联通/移动的IP在短时间内,带着不同的头文件,访问了几千次。

网络安全配置问题

应对这种场景对互联网公司是玩儿一样,可对于政务网来说,情况就大不一样了——大家也看到了西北工业大学被美国网络攻击的事儿——政务网和公网之间有严格的安全策略,就是为了阻断黑客入侵。

政务外网的DMZ区(非军事区)和政务外网之间,有防火墙、入侵检测、入侵防御等设备,并且做了严格的安全服务配置,比如防DDoS攻击就会在突然出现几千个IP访问的时候,直接把被访问的IP离线;比如反爬虫机制,会限制同一IP在一段时间内的访问次数。

成都有多少人在用这个系统呢?成都2000万人,如果计划一天(16小时内)完成筛查,那么一小时要完成125万人的采样,按每个采样台(2人)每小时采集120人估算,至少需要20800人;不能让大白能穿着防护服连续工作16小时,所以还要安排换班,所以需要4万人的一线核酸采样队伍,在系统刚刚上线的时候,可能有4万人都在尝试登录。

按照每个采样台(2个采样人员)每小时采集120人的标准测算采样人员数量,测算公式为:核酸采样人员数(单位:人)=人口数÷360;采用10合1混采检测技术的,检测能力测算公式为:核酸检测力量(单位:管/日)=人口数÷10×2;采用20合1混采检测技术的,检测能力测算公式为:核酸检测力量(单位:管/日)=人口数÷20×2。

——来源:2022年关于印发区域新型冠状病毒核酸检测组织实施指南(第三版)的通知[2]

东软的系统是9月2日线后,发生了响应延迟、卡顿现象,有可能是前端负载均衡服务器的数量配置不足,4万多人的流量洪峰同时涌过来,而且如果登陆不上,用户还会不停刷新,导致http请求在不断累积;也有可能是用于负载均衡的云主机没有配置反亲和性,几台云主机都在同一台物理机上,导致虚拟机IO不足,最后请求丢失。

成都新冠指挥部回应说「9月2日17时30分左右,我市核酸检测系统因对短时超大并发量预估不足,导致系统出现卡顿问题。故障发生后,我们立即组织专业技术团队与承建商一起排查原因,积极抢修,系统在增加多台服务器、优化关键参数设置后逐步恢复,但还存在不确定性,我们正在努力加以解决」

这就说明9月2号服务中断的原因,是前端负载均衡服务器或者后端应用服务器的数量不足;另外优化关键参数这个,说明之前他们有些参数配置错了。

对于9月3日13时出现的问题,东软的公告中说是网络出现故障,恢复网络连接后,系统在14时左右恢复运行。这个熟悉的问题,极有可能是防火墙配置了DDoS防护,面对几万个极度相似的请求,直接判定为DDoS攻击,然后把网络请求阻断了。

也有可能是防火墙或者其他安全设备配置了反爬虫,限制同一IP访问次数,一旦某个IP反复访问接口服务器达到一定次数,就自动把IP Ban掉一段时间,比如1小时。而采样人员用的是移动网络,很可能在某个区域的几百人都在使用同一IP连接接口服务器,于是很快就触发了反爬虫机制。

别问我为什么知道,因为这种事情在江苏也发生过,有经验的。

但要是说锅全在成都政务云,那也太欺负大数据局和成都政务云了,毕竟这种涉及到上千万人排队、检测的关键信息系统上线之前,肯定需要经过试运行、全链路压力测试、双轨并行一段时间,确保服务平稳可用后才能上线。

每个城市的政务云架构都是大同小异的,但是每个城市的安全策略配置可能完全不一样,东软在17个省、120多个地市部署了核酸采集系统应用,不代表换一个2000万人口的城市就可以轻松拿下。

面对4万名采样人员用户和2000万待采样居民,新上线的东软全场景病原体监测系统敢跳过全链路压力测试环节,直接上线,然后马上就开始支撑全城大筛,对IT的要求也过分超过常理,现实也就必然会打脸。

东软作为软件系统的供应商和实施方,负责向成都政务云提出服务器和网络环境的要求,并在成都政务云提供的政务外网云主机上安装应用系统和数据库。在系统调试完成后,东软应按照政务外网的要求完成安全检查、压力测试和系统加固工作,待系统服务稳定后,核酸采集系统才能正式上线。

如果说东软系统上线前,已经通过了压力测试,那这次系统服务中断,就是东软100%的锅;但显然这次东软系统上线前没有完成全链路压力测试,也没有小范围试用,东软强行上线,身上当然有锅。

成都政务云作为服务器、网络基础架构、安全设备的提供方,如果没有跟东软讨论清楚潜在的卡点,而是简单的提供虚拟机、负载均衡、防火墙,开通几个端口,却不告诉东软现在的安全策略是怎么配置的,身上肯定也有锅。

关键是东软也好,成都政务云也好,有没有跟指挥部领导提前说明不测试就上线的风险?如果压根没说,那东软和成都政务云两个单位应该平分100%的锅;如果风险情况已经以文件形式流传到指挥部了,那锅就在指挥部。

单一来源采购

看东软和成都政务云的几个招标就能发现,他们挺喜欢用单一来源采购方式的。

1、成都市卫生健康信息中心这里2022年5月31日,紧急使用单一来源的方式采购了东软的这套系统,链接在这里:成都市卫生健康信息中心全场景疫情病原体检测信息系统[3]。然后我在四川省采购中心和成都市采购中心网站上,都没找到这套系统的单一来源采购价格公示,不知道有没有读者找到了。

2、成都政务云同样是使用单一来源采购的方式,采购了新华三云、浪潮云、曙光云作为政务云,看起来新华三云应该部署在政务外网,浪潮云和曙光云分别部署在政务内网和政务专网。

私有云平台这种满大街都是的东西,为啥非要单一来源采购,这我就不明白了。1.45亿元,成都市政务云、单一来源公示:曙光云、新华三云、浪潮云_腾讯新闻[4]

3、成都政务云的微软操作系统,也是直接以单一来源采购的方式,从成都一家代理商处购买了微软的操作系统和数据库。成都市大数据中心(成都市网络理政中心)2022年度成都市政务云服务采购项目-微软操作系统和数据库服务采购实行单一来源采购方式的公示 - 墨天轮[5]

相比公开招投标,单一来源采购总是需要领导承担一点质疑,可见大家都是勇于担当、敢于任事的,就像下图这位站在凳子上高举手机的疫情防控人员一样。但是,谁该为这场特别重大网络与信息安全事件负责呢?

来源:公众号任易

来源链接:https://tech.ifeng.com/c/8J5zOtzl8TU