□本报记者 何可 一年前还满载荣光,一年后却备受质疑。133天内,波音737 MAX客机遭遇两次空难,失事原因都直指软件系统漏洞。 5月27日,工信部赛迪智库信息化与软件产业研究所蒲松涛博士在接受中国质量报记者专访时说,尽管波音737坠机事故的发生并不会改变全球各行业数字化转型的趋势,但确实为防范软件化、数字化带来的风险敲响了警钟,第三方漏洞检测是飞行安全“隐形的翅膀”。 软件“没有绝对的安全” 波音公司是全球最大的航天航空器制造商,但其核心竞争力并非工厂和生产线,而是它所开发的7000多种软件。数据显示,波音飞机共涉及8000多款软件,其中1000多款为通用软件,可以通过市场购买获得,剩余的7000多种软件为波音自行开发,代表着其核心竞争力。 而两次坠机事故的主角波音737 MAX客机,在波音737序列客机中数字化水平又是最高的。那么,既然波音公司在推进工业技术软件化过程中投入巨大,为何依然无法避免软件带来的安全隐患呢? “这也许与软件自身的开发与应用特点紧密相关。”蒲松涛介绍说,一般而言,产品开发包括了需求分析、产品设计、开发、测试等环节。对于大多数硬件产品而言,往往生产完成后,一个开发周期也就完成了。而软件却大不相同,一个软件的开发完成只是代表其生命周期的开始,软件的持续维护和更新才是一个具有生命力的软件的关键。因此,可以说,任何软件都是不完美的。 “例如,已拥有28年历史的Linux内核每两三个月就会有新的版本供用户更新,平均每两年就会有一次重大版本的迭代。再比如,微软公司的视窗操作系统每个月都会发布新的补丁,以保证系统安全漏洞的及时修复。”蒲松涛说,软件持续更新的主要驱动力有3个:软件功能的增加与完善、与新硬件设备的适配、安全漏洞的修复。 毫无疑问,三大驱动力中,安全漏洞的修复是最为重要的。对于任何一款软件,特别是面向行业应用的软件而言,并没有绝对的安全,要想保证软件的持续安全应用,就必须对它进行持续的更新。 人类“丢掉”飞机控制权 据外媒报道,当地时间5月22日,美国联邦航空管理局负责人表示,他们仍未收到波音公司对737 MAX型飞机提出的修复方案。此前,波音公司曾表示,将对机动特性增强系统(MCAS)的失速预防系统进行修复。 该系统被认为是导致印尼和埃塞俄比亚两起坠机事故的罪魁祸首。事实上,在去年狮航737 MAX事故发生后,波音公司就已经认识到MCAS软件漏洞的存在,而正是因为软件没能得到及时更新,才为埃航事故的发生埋下隐患。 MCAS的设计初衷在于如果飞机机身上的传感器检测到高速失速的情况,即使在没有飞行员输入信号的情况下,该系统将强制将飞机的机头向下推。然而,当传感器信号有误时,如果飞行员无法第一时间按照要求进行相应操作,飞机将会在MCAS的控制下下坠。此外,即便飞行员对飞机进行了手动拉升,MCAS系统仍会在5~10秒内强行被激活再次下压机头。最新的信息显示,失事前波音飞机的MCAS系统被激活多达4次。 “事故中,软件没有把飞机的控制权交还给人类。”蒲松涛说,客观上来看,MCAS系统确实存在一些漏洞,例如,对于传感器数据异常没有进行再验证,当飞行员已经进行主动控制操作时没有自动关闭等。 但与此同时,人类主观原因也不可忽视,即飞行员没能熟悉MCAS系统的基本功能,没能第一时间按照规定操作完全关闭MCAS。事故客机黑匣子录音揭露,飞机坠毁前机组人员仍在翻看操作手册。这一问题反映出,软件业发展过程中应用端软件能力的培养存在缺失或不足。 “软件能力正从‘开发为主’转向‘开发应用平衡’。”蒲松涛说,长期以来,软件产业的发展更强调掌握核心技术,提高产品质量,增大供给体量,对需求端应用软件的关注度有所不够,导致软件能力的建设主要集中在开发端。波音空难发生的一个主要原因,就在于飞行员对于新型软件系统熟悉的程度不够。伴随软件定义进程的加快,软件应用能力培养的重要性将丝毫不亚于开发能力的培养。 要防止安全检测“掉链子” 蒲松涛说,波音737 MAX事故揭示,任何安全问题都不容忽视,安全管理应当被放在首位。一方面,任何软件系统都无法做到绝对安全,及时发现漏洞、填补漏洞可以最大限度地消除安全隐患。另一方面,安全管理不容忽视,特别是对于核心软件系统,都应进行全面的第三方安全漏洞检测,做到没有通过安全检测的坚决不使用、不上线。 有媒体披露,波音737 MAX系统的安全评估并非完全依托于第三方机构,而是部分由自己完成,这也为事故的发生埋下了隐患。 “提高软件应用水平,使软件成为发展的‘助推器’,而不是引发灾难的‘隐患源’。”蒲松涛建议,要认真吸取波音737事故带来的教训,不断强化对软件技术和产品的可控力,加强对第三方软件检验检测机构的指导和管理,引导软件开发商和应用方树立安全检测意识,积极开展软件的第三方评测。同时,要支持信息安全企业围绕公共服务信息系统开展漏洞检测等工作。
|