本文译者:安全内参社区研究员 安未然

前言

新冠疫情在美国肆虐,成千上万的美国民众因出行限制而失业,迫切需要政府的失业救济金来维持基本的生存和生活。然而,不幸地是,美国19个州出现了严重的失业申请延误状况,究其原因在于联邦和地方州的失业信息系统过时和不兼容。这些系统大多可以追溯到20世纪80年代,有的甚至可以追溯到更久远的年代。这些过时和不兼容的信息系统通常被称为遗留系统。

尽管目前尚没有关于“遗留系统”的正式定义,但其通常被理解为在某种程度上已经过时的关键信息系统。通常具有以下几个特点:

  • 无法支持未来业务运营;

  • 相关应用程序、操作系统或硬件供应商不再提供支持;

  • 系统架构可能因脆弱性或复杂性不适合升级或修复的;

  • 或者实现细节无从获知。

遗留系统很容易出现中断和错误,易受网络入侵的影响,并且随着时间的推移其修复成本越来越高,维护也越来越困难。但令人惊讶的是,人们在平时很少关注这些过时的遗留信息系统,即使美国政府每年都在这些系统上花费数千亿美元。

正如传奇投资者沃伦•巴菲特(Warren Buffett)曾经说过的:“只有当潮水退去时,你才知道谁在裸泳。”这场新冠大流行已经成为一股强大的退潮,暴露了政府对遗留系统的过度依赖。然而,政府并不是唯一在遗留系统重压下挣扎的组织,航空公司、银行、保险公司以及其他商业实体组织同样面临着遗留系统的问题

尽管新冠疫情暴露了依赖遗留系统提供基本服务的严重后果,但不幸的是,这种依赖连同它不断增加的成本,在后疫情时代的很长一段时间内仍将伴随着我们。单就美国政府而言,即使国会能够协调一致且相关措施得到良好的执行,也需要几十年的时间才能取代数千个现有的遗留系统。并且随着时间的推移,当前的信息系统也将会成为遗留系统,它们本身也需要更换。此外,鉴于当前新冠疫情对预算的影响,未来政府部门用于遗留系统现代化的资金可能更少。

物联网时代的来临,与遗留系统相关的问题只会随着物联网的成熟而恶化。物联网设备被大量连接到传统的信息系统上,使得这些信息系统的更换和现代化变得更加困难。就如同现在的遗留系统一样,只要这些物联网设备能够继续工作,即使供应商不再提供支持也不会被替换,最终这些物联网设备也将会成为遗留的设备。大量过时但仍在运行的物联网设备已经构成了潜在的网络安全风险,它们在被部署时往往没有考虑基本的网络安全需求,这种短视将会造成损失。例如,对网络安全的担忧已经迫使美国食品和药物管理局召回能够植入人体的心脏起搏器和胰岛素泵,美国国家安全局对物联网智能家具等互联网产品也发出了警告。

想象一下,不远的未来将会有数千万的物联网设备深深地嵌入到了政府、企业、学校、医院、工厂、家庭以及人体之中。在这样一个世界里,如果物联网设备的网络安全或技术缺陷没有得到修复,仍然与几乎不受供应商支持的遗留系统相连,这种对于相互关联的遗留系统的普遍依赖,将创造出比埃杰顿的暮光世界更加阴暗的东西。

1、遗留系统的问题

尽管遗留系统面临着诸多问题,但以数据泄露和勒索攻击为代表的网络安全问题以及运营和维护成本问题最为突出。

1.1 数据泄露问题

维护不善的遗留系统极易出现数据泄露问题。在上世纪70年代,信用报告机构Equifax公司为处理消费者纠纷开发了一个自动消费者访谈系统(Automated Consumer Interview System),该公司因系统的复杂性未能修补其中的一个关键漏洞,这一漏洞在2017年导致1.46亿人的敏感信息泄露

1.2 勒索攻击问题

过时的遗留系统极易遭遇勒索软件攻击。勒索软件攻击的网络入侵者在侵入关键信息系统后会对系统内的所有数据进行加密,直到支付赎金。在过去两年里,勒索软件袭击了美国亚特兰大和巴尔的摩的城市以及佛罗里达州的里维埃拉海滩和湖城的两个城市。后两个城市同意分别向攻击者支付60万美元和50万美元。此外,还有数十个州和地方政府,以及学校系统和医院,都经历过勒索软件攻击。

1.3 运营成本问题

首先,倘若遗留系统得到很好地维护,没有遇到数据泄露和勒索攻击问题,但企业和组织需要面对遗留系统不断攀升的运营和维护成本。例如,美国政府问责局最近的一份报告发现,美国政府在2019财年的900亿美元开支中,近80%用于现有信息系统的运行和维护。此外,在美国政府问责局详细审查的7000项联邦信息技术投资中,有5233项将所有资金用于运营和维护。

其次,对遗留系统的运营和维护成本间接地限制了用于信息系统现代化的预算投入。从2010财年到2017财年,美国政府问责局用于现有信息系统的运营和维护支出增长了9%,与此同时,用于信息系统现代化的支出减少了73亿美元。专门为政府和商业企业提供信息系统支持的国际公司CAI的创始人兼首席执行官指出,不断增长的遗留系统成本将继续蚕食政府的信息系统现代化的“种子”。

值得注意的是,尽管并非所有的运营和维护成本都直接归因于遗留系统,但美国政府问责局指出,支出的增加可能是因为支持过时的计算硬件,美国国税局三分之二的硬件已经超过了其使用寿命,而且因精通较旧语言的程序员越来越少,维护这些较旧编程语言开发的软件和系统的成本也越来越高例如,COBOL是一种可以追溯到1959年的编程语言,计算机科学专业早在几十年前就不再教授COBOL语言了,然而美国社会保障局和国税局都仍在运行大约6000万条COBOL代码。此外,美国政府问责局在2016年的一份报告表明美国商务部、国防部、财政部、卫生和公众服务部以及退伍军人事务部仍在使用上世纪80年代和90年代的微软操作系统,这些操作系统在十多年前就不再得到供应商的支持。

2、遗留系统的成因

鉴于遗留系统造成的诸多问题,对信息系统进行现代化成为必由之路。然而,信息系统的现代化远非想象中的简单,这成为遗留系统形成的主要原因。

首先,遗留系统之所以能够遗留下来是因为它们在很长一段时间内都能正常运行。显然,对于日常运营至关重要的遗留系统在没有重大中断的情况下是不会被替换或增强的。因此,即使这个系统对组织的运作做出了巨大的贡献,管理层还是倾向于忽视未来潜在的问题,推迟相关现代化进程。

其次,信息系统现代化不符合首席信息官或项目经理以往的职业晋升经验。一旦信息系统最终能够可靠地运行,就没有什么动机去计划将它们退役。那些批准对新系统投资的高管们可能在多年后离开了公司,管理层真正需要的是,新的信息系统能够提供投资回报,并尽可能长时间地降低成本,这样的需求往往导致多年来对日常维护的投资不足。

再次,系统的开发人员不愿意或无法参与其中。系统开发人员在详细了解它如何运行以及它的局限性之后,很可能已经转向其他更有前景的项目或组织了。对于寿命特别长的信息系统,大多数开发人员可能已经退休。

最后,相关的企业和组织不愿意或者无力承担与现代化相关的成本和风险。大多数的信息系统,无论是新的还是现代化的,都是昂贵的成本。如果它们没有部分或全部失败的话,管理层通常会延迟它们的预算。

因此,随着时间的推移,这个系统就像办公电梯一样,成为用户日常生活的一部分。只要它起作用,就不会有人太在意它,最终它成为了企业和组织运行的阴影。

3、遗留系统的应对

鉴于大量遗留系统仍在使用中,解决遗留系统的问题势在必行。

3.1 正视遗留系统的存在

解决一个大问题的第一步就是正视自己的问题,政府和企业必须采取措施进行应对。尤其是在政府层面需要采取行政措施推动信息系统现代化的建设,不断提高效益产生的可靠性和速度,逐步改善信息化服务。2017年12月,特朗普总统签署了《政府技术现代化法案》。它允许联邦机构和部门从1.5亿美元的技术现代化基金中申请资金,以加速其信息系统的现代化。国会预算办公室最初表示,这一需求接近每年18亿美元,但政客们担心这笔钱是否会花得好,导致资金大幅减少。

3.2 建立系统工程的思维

将遗留数据迁移到新系统的现代化本身也存在问题。首先,遗留系统可能与其他信息系统存在复杂的关联。例如,Starling银行维护自己的所有代码,平均每天发布一个软件,之所以能做到这一点,是因为它没有复杂的连接到无数的传统信息系统。如果不然,每一个新的软件发布都带有可操作的失败风险,更简单的系统意味着更少和更短的信息系统停机。Starling自开业以来只发生了一次重大停工,而英国三大银行中的每一家在同一时期至少有十几家银行倒闭。

其次,一个遗留系统的现代化通常意味着必须升级其他互联系统,而其他互联系统也可能是遗留系统。例如,在美国国税局,20世纪60年代安装的最初的税务主文件系统已经被掩埋在更加现代化、相互关联的系统之下,每一个系统都使得取代之前的系统变得更加困难。自1968年以来,该机构一直试图使其相互关联的遗产税系统现代化,以目前的货币计算,累计成本至少为200亿美元,迄今为止收效甚微。该公司计划在未来五年内再投入27亿美元用于现代化建设。

此外,不同的遗留系统可能提供重复的功能。美国海军正在安装价值1.67亿美元的海军薪酬和人事系统,旨在整合其下55个独立的相关信息系统中的223个应用程序,其中10个应用程序的使用寿命超过30年,少数应用程序的使用寿命超过50年。这些不同的系统使用21种编程语言,在73个数据中心和网络上的9个操作系统上执行。如此大规模的重复建设和数据孤岛听上去很荒谬,但却具有惊人的普遍性。政府发布了一项新的授权,其中包括对某种类型的自动化的要求,而这项政策带来了新的资金来实施它。该部门或机构发现,与其升级现有系统(这会造成破坏),不如更容易创建一个新的信息系统,即使部分或大部分新系统与现有系统的功能相同。最终的结果就是同一个组织中的不同部门最终部署了具有重叠功能的信息系统。

鉴于信息系统现代化的上述问题,因此,迫切需要系统工程的思维来解决,及时协调各方并且避免重复建设。

3.3 建立源头治理的开发范式

处理遗留问题的最好办法就是永远不要让它成为遗留问题。人们越来越认识到遗留系统的许多成本,引发了对软件维护的重新思考。美国国防创新委员会2019年5月发布的一份报告《软件永远不会完成》阐述了一种新方法,认为软件应该被视为“一种持久的能力,必须在其整个生命周期内得到支持和不断改进”,包括能够在短时间内持续地测试、集成和改进软件系统的能力。

目前,软件开发、操作和支持被认为是独立的活动。但是,DevOps范式提供了一种新的可能,将这些独立的活动集成起来,使得运营的系统一直处于“开发中”,不断地、渐进式地改进、测试和部署,甚至会出现一天迭代多次的现象。当然,DevOps只是防止关键信息系统变成遗留系统的一种方法。美国国防部高级研究规划局一直在探索另一种可能更有效的方法,认为信息系统一旦实施就可以长期使用。自2015年以来,国防部高级研究规划局资助了BRASS(Building Resource Adaptive Software Systems,资源自适应软件系统构建)研究课题,旨在寻找能够使软件能够使用100多年的解决方案,构建能够动态适应所依赖资源和运行环境变化的长寿命软件系统。

3.4 主动拥抱新技术革命

一方面,优化源头治理的开发范式,迫切需要人工智能等新技术。构建无时间限制的系统,需要一种“从头开始”的软件设计方法,这种方法更强调对软件执行逻辑(库、数据格式、结构)和物理资源(处理、存储、能源)的准确判断,而不是信息系统设计、编码或维护的具体设计方式。然而,对软件执行逻辑和物理资源的分析是十分耗时费力的。因此,为了减少人力程序员的干预,降低维护成本,迫切需要采用先进的人工智能技术来发现和分析软件执行逻辑和物理资源,并使软件的运行以及与其他软件和系统的交互变得可见。这样的话,就在问题发生之前主动管理导致许多系统故障或低效操作的资源变化以及系统交互。如若开发人员还需要构建一个功能,同样可能使用人工智能技术来监视和修复软件所在的执行环境的所有元素。

另一方面,在商业领域,云计算和人工智能等新技术已经成为企业发展的内在驱动力。CAI的创始人兼首席执行官Tony Salvaggio认为:“信息技术推动了组织创新,这些新技术在未来几年内将会摧毁现有商业模式的30%至40%,背负着遗留系统的公司将无法应对未来信息系统功能的快速改进或客户服务的快速交付,只会被迫陷入‘骑虎难下,进退失据’的境地,无法走出去”。值得注意的是,这种现象已经在银行业率先出现,老牌银行很难与新兴银行竞争,这些新兴银行将大部分信息系统预算用于创建新产品,而不是支持遗留系统。例如,2014年开始运营的英国Starling 银行只提供手机银行服务。它使用亚马逊云计算托管服务,仅花费1800万英镑(2400万美元)建立基础设施。相比之下,英国的TSB银行,一个传统的全业务银行,成立于1810,花了4亿1700万英镑(5亿4600万美元)在2018进入一个新的银行平台。

附录:过去十年遗留系统重大崩溃案例

以下是从2010年开始至今关于遗留系统现代化的失败、停机和网络安全漏洞案例,以及被替换后的运营问题的案例。

参考资料:

https://spectrum.ieee.org/computing/it/inside-hidden-world-legacy-it-systems

声明:本文来自互联网安全内参,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。