信息化 频道

3大软件当机主因 避免软件同质化

【IT168 业界资讯】  因为软体的问题而造成当机或是企业损失的原因百百种,不过大体来说可以归纳到3个方面,一是软体过度同质化,以致发生问题时全部都受影响;其二是应用程式的设计逻辑出错,造成企业的损失或当机;其三则是资料库处理上出了问题。

        软体过于同质,发生问题导致全面停摆

  软体过于同质化,导致面对软体出错时不堪一击,让系统大受影响甚至造成大当机的事件一旦发生,大体来说企业能够做的选择其实非常有限。 这种事例最近就有一起,4月底,知名资安厂商McAfee更新了一个错误的病毒码档桉,误把Windows XP SP3作业系统的合法元件SVCHOST.EXE档,视为恶意程式W32/Wecorl.a病毒,进而删除。这种事例最近就有一起,4月底,知名资安厂商McAfee更新了一个错误的病毒码档桉,误把Windows XP SP3作业系统的合法元件SVCHOST.EXE档,视为恶意程式W32/Wecorl.a病毒,进而删除。 而后使用者的电脑就会不停的重新开机,或是当机且无法正确开启。而后使用者的电脑就会不停的重新开机,或是当机且无法正确开启。

  这项错误的举动,使得很多企业和组织的运作都受到影响。 由于多数企业在防毒软体的使用上,都会採用单一品牌,这也使得这个被称为「致命更新」的事件,让很多企业和组织的电脑运作都因此而停摆。由于多数企业在防毒软体的使用上,都会采用单一品牌,这也使得这个被称为「致命更新」的事件,让很多企业和组织的电脑运作都因此而停摆。 举例来说,Intel总部就承认,在美国境内所有使用McAfee的电脑都受到影响;美国密西根大学医学院25,000台电脑中,有8,000台当机;美国罗德岛各医院的急诊室也因此影响作业,当天暂时拒收非创伤病患,并且延后数个外科手术。举例来说,Intel总部就承认,在美国境内所有使用McAfee的电脑都受到影响;美国密西根大学医学院25,000台电脑中,有8,000台当机;美国罗德岛各医院的急诊室也因此影响作业,当天暂时拒收非创伤病患,并且延后数个外科手术。

  甚至连政府单位都受到影响,美国爱荷华州一个区域性的急难求助中心的电脑系统也当机,进而影响附近各郡与城市,以及当地的911中心。甚至连政府单位都受到影响,美国爱荷华州一个区域性的急难求助中心的电脑系统也当机,进而影响附近各郡与城市,以及当地的911中心。 华府特区副资讯长Sonny Hashmi称此事件是一次「大崩溃」,并说McAfee已被列入他的永久黑名单之中。华府特区副资讯长Sonny Hashmi称此事件是一次「大崩溃」,并说McAfee已被列入他的永久黑名单之中。 华盛顿的Snohomish County,更是有4成左右的电脑受到影响,回复正常需要耗时费力,到事件发生后1周,都还没有完全回复。华盛顿的Snohomish County,更是有4成左右的电脑受到影响,回复正常需要耗时费力,到事件发生后1周,都还没有完全回复。 澳洲一间知名连锁超商Coles,也有10%的终端收银机系统受到这个事件影响,该公司在西澳和南澳的几间门市甚至被迫暂停营业。澳洲一间知名连锁超商Coles,也有10%的终端收银机系统受到这个事件影响,该公司在西澳和南澳的几间门市甚至被迫暂停营业。 根据国外媒体的报导,这间连锁超商共有1,100台终端收银机受到影响而停机。根据国外媒体的报导,这间连锁超商共有1,100台终端收银机受到影响而停机。

  从上述这些事件可以看出,遇到这种完全无法防御的事件,软体的过度同质化会带来的影响有多深。从上述这些事件可以看出,遇到这种完全无法防御的事件,软体的过度同质化会带来的影响有多深。 最后,McAfee所提供的补偿方桉则是针对受到影响的一般消费者提供两年免费产品授权及支出补偿;针对企业客户,则是提供一年份的自动化安全健检服务。最后,McAfee所提供的补偿方桉则是针对受到影响的一般消费者提供两年免费产品授权及支出补偿;针对企业客户,则是提供一年份的自动化安全健检服务。

  所谓自动化安全健检方桉,是一个包含了4小时的远端谘询服务,以协助企业执行安全检查、检讨企业的安全政策、伺服器配置及环境等,分析相关的结果,并根据McAfee的非常好的范例提供建议。所谓自动化安全健检方桉,是一个包含了4小时的远端咨询服务,以协助企业执行安全检查、检讨企业的安全政策、伺服器配置及环境等,分析相关的结果,并根据McAfee的非常好的范例提供建议。 事实上对于当时营业受到影响的企业和组织来说,其实根本是完全不成比例的补偿。事实上对于当时营业受到影响的企业和组织来说,其实根本是完全不成比例的补偿。 虽然最后McAfee声称只有不到0.5%的企业和组织的客户受到这次错误更新影响,不过对于这些受到影响的企业来说,却是一个无法挽救的伤害。虽然最后McAfee声称只有不到0.5%的企业和组织的客户受到这次错误更新影响,不过对于这些受到影响的企业来说,却是一个无法挽救的伤害。

  事实上,这种事件也不算少见,只是影响有没有大到一定范围而被媒体披露而已。 举例来说,虚拟化厂商VMware在2008年释出ESX 3.5 Updata 2软体更新时,也发生过问题,使用者安装更新后,就会造成虚拟机器关机后无法再启动。举例来说,虚拟化厂商VMware在2008年释出ESX 3.5 Updata 2软体更新时,也发生过问题,使用者安装更新后,就会造成虚拟机器关机后无法再启动。 这个问题主要是因为授权码辨识的错误,造成使用者会被判定为授权不足,而无法开启虚拟机器,甚至也无法启动在不同伺服器搬移虚拟机器的VMotion功能。这个问题主要是因为授权码辨识的错误,造成使用者会被判定为授权不足,而无法开启虚拟机器,甚至也无法启动在不同伺服器搬移虚拟机器的VMotion功能。 其他诸如过去Windows更新的问题与漏洞等,也曾经发生过。其他诸如过去Windows更新的问题与漏洞等,也曾经发生过。

  虽然说遇到这样的状况,企业和组织可做的选择性不多,不过企业可以针对这样的状况做出一些预防措施,其实软体的备援也是同样的道理,避免软体的全面同质化,有的时候可能是避免这种像是发生车祸一样的突发问题,逃过大当机魔掌的一种方法。虽然说遇到这样的状况,企业和组织可做的选择性不多,不过企业可以针对这样的状况做出一些预防措施,其实软体的备援也是同样的道理,避免软体的全面同质化,有的时候可能是避免这种像是发生车祸一样的突发问题,逃过大当机魔掌的一种方法。 例如自行开发系统时,开发不同作业系统上可以使用的应用程式,平常使用的可能是Windows平台上可以使用的中介软体、应用程式;另外再备有一套可以使用Linux作业系统的中介软体、应用程式。例如自行开发系统时,开发不同作业系统上可以使用的应用程式,平常使用的可能是Windows平台上可以使用的中介软体、应用程式;另外再备有一套可以使用Linux作业系统的中介软体、应用程式。 不过这样的缺点就是可能需要更多的开发经费与人力,但是准备一套没有完全同质化的系统应变,其实也是降低这种风险的手法之一。不过这样的缺点就是可能需要更多的开发经费与人力,但是准备一套没有完全同质化的系统应变,其实也是降低这种风险的手法之一。

  不过要注意的是,这并不代表在单一系统上採用各个不同厂商的软体,就会比较好,事实上单一系统的限制下,某种程度的同质性还是没有办法避免的,最好是以系统为单位来看,准备一套能够紧急应变的系统,降低因为同质性,而把鸡蛋都放到同一个篮子上的风险,才是良策。不过要注意的是,这并不代表在单一系统上采用各个不同厂商的软体,就会比较好,事实上单一系统的限制下,某种程度的同质性还是没有办法避免的,最好是以系统为单位来看,准备一套能够紧急应变的系统,降低因为同质性,而把鸡蛋都放到同一个篮子上的风险,才是良策。

        5年都正常运作的系统并不代表没有bug

  另外一个造成大当机的原因,很多时候是企业自行开发应用程式本身的问题。 当然这个问题可能性百百种,也有很多不同的专文与书籍在探讨程式开发、测试的流程,避免这些问题,在此就不赘述。当然这个问题可能性百百种,也有很多不同的专文与书籍在探讨程式开发、测试的流程,避免这些问题,在此就不赘述。

  在这边要谈的,是比较多人会忽略的一点,而却曾经发生过,虽然没有造成大当机,但却企业惨痛损失的事例。在这边要谈的,是比较多人会忽略的一点,而却曾经发生过,虽然没有造成大当机,但却企业惨痛损失的事例。 2007年,在日本曾经发生过一个很有名的事件,一间券商因为软体逻辑设计的失误,以及人为操作的错误,导致损失400亿日元。 2007年,在日本曾经发生过一个很有名的事件,一间券商因为软体逻辑设计的失误,以及人为操作的错误,导致损失400亿日元。

  这个事件主要是因为券商交易软体的设计上,没有设计一个完善的取消机制。这个事件主要是因为券商交易软体的设计上,没有设计一个完善的取消机制。 某个营业员敲单的时候,要将原本1张61万元的股票卖出,却打错栏位,打成61万张1元的股票。某个营业员敲单的时候,要将原本1张61万元的股票卖出,却打错栏位,打成61万张1元的股票。 而后虽然系统有警示,但营业员操作过快,按下了卖出确定的按钮。而后虽然系统有警示,但营业员操作过快,按下了卖出确定的按钮。 这个时候发现错误的营业员,为了挽救过失,很快的再度重新操作,想要取消卖出的作业,挽救剩下还没有卖出的股票。这个时候发现错误的营业员,为了挽救过失,很快的再度重新操作,想要取消卖出的作业,挽救剩下还没有卖出的股票。 不过他却发现无法取消买卖,而造成这一点的原因,是一个5年以来都没有发现的系统错误。不过他却发现无法取消买卖,而造成这一点的原因,是一个5年以来都没有发现的系统错误。

  原来系统背后有5道警告与自动审核的程序,其中一道就是针对这种太夸张的大量低价卖出做警示,但是当营业员忽略警示之后,要再度取消卖出的时候,系统预设的设定竟然是判断「这些股票已经全部卖出」,所以不准许使用者取消。原来系统背后有5道警告与自动审核的程序,其中一道就是针对这种太夸张的大量低价卖出做警示,但是当营业员忽略警示之后,要再度取消卖出的时候,系统预设的设定竟然是判断「这些股票已经全部卖出」,所以不准许使用者取消。 事实上,在股票市场上这些股票可能还没有真正全部撮合完毕,但是系统设计的错误,却导致营业员无论怎么想要补救,都无法透过系统完成,这算是系统设计上的错误,理论上还未成交的股票应该是可以取消才对。事实上,在股票市场上这些股票可能还没有真正全部撮合完毕,但是系统设计的错误,却导致营业员无论怎么想要补救,都无法透过系统完成,这算是系统设计上的错误,理论上还未成交的股票应该是可以取消才对。 最终,证券公司只好买回多卖的股票,价差一来一往就赔了400亿日元。最终,证券公司只好买回多卖的股票,价差一来一往就赔了400亿日元。

  值得注意的是,这间券商交易系统背后的5道检查机制,如首次交易的股票价位、大量买进股票、大量卖出股票、价格差距过大等,全部都运作正常,也都没有任何设计上的错误,但是却在最后例外的状况时,发生无可挽回的系统Bug,而且长达5年间,都没有被任何人发现。

  这样的事件虽然不是造成业务停摆的当机,但是也对公司带来了严重的损失。这样的事件虽然不是造成业务停摆的当机,但是也对公司带来了严重的损失。 可以看出,软体的设计上,尤其要针对例外状况的规则,做严谨的测试,减少流程的不合理。可以看出,软体的设计上,尤其要针对例外状况的规则,做严谨的测试,减少流程的不合理。 很多无论是造成当机,或是造成严重损失的失误,很多都是因为软体开发者可能没有考量到一些例外的状况,导致长期以来有问题却都没有发现,真正发现的时候,损失已经造成了。很多无论是造成当机,或是造成严重损失的失误,很多都是因为软体开发者可能没有考量到一些例外的状况,导致长期以来有问题却都没有发现,真正发现的时候,损失已经造成了。

        资料库的重整与效能,也常是当机发生的原因

  另外一个因为软体而造成的常见当机原因,则是资料库相关的动作。 例如资料库负载不足、资料搬移、资料库分割出错、资料库读取的状态无法解除等。例如资料库负载不足、资料搬移、资料库分割出错、资料库读取的状态无法解除等。

  2007年5月台大医院发生系统停摆的例子,就是资料库分割失误所造成的问题。 2007年5月台大医院发生系统停摆的例子,就是资料库分割失误所造成的问题。 一般企业或组织会採取资料库分割(Partition)来提升资料库的运作效率,对于大多数的资料库管理员来说,资料库分割也是一个正常普通的工作,然而2007年台大医院在做资料库分割的时候,却扰乱了原本的资料库索引(Index)路径,结果造成门诊、住院、行政等系统,读取资料的运作非常缓慢,原本只要2秒钟就能捞取的病人相关资料,变成需要将近1分钟才能完成。一般企业或组织会采取资料库分割(Partition)来提升资料库的运作效率,对于大多数的资料库管理员来说,资料库分割也是一个正常普通的工作,然而2007年台大医院在做资料库分割的时候,却扰乱了原本的资料库索引(Index)路径,结果造成门诊、住院、行政等系统,读取资料的运作非常缓慢,原本只要2秒钟就能捞取的病人相关资料,变成需要将近1分钟才能完成。

  当时的台大医院副院长赖飞罴表示,当天早上9点左右,台大医院的看诊作业就陆续受到影响,IT人员虽然很快就掌握到问题的原因,但资料库的运作却直到下午2点左右才恢复正常运作,主要关键就是恢复资料栏位的设定之后,却一直没有启动非常好的化索引路径,所以资料搜寻反应迟缓的问题在这段时间内依然没有得到解决。当时的台大医院副院长赖飞罴表示,当天早上9点左右,台大医院的看诊作业就陆续受到影响,IT人员虽然很快就掌握到问题的原因,但资料库的运作却直到下午2点左右才恢复正常运作,主要关键就是恢复资料栏位的设定之后,却一直没有启动非常好的化索引路径,所以资料搜寻反应迟缓的问题在这段时间内依然没有得到解决。 当时台大医院为了缩小影响范围,决定暂时停止门诊系统的运作,住院系统与行政系统则照常运作,然而,即便这样因应,资料库分割所造成的问题已经让当天的门诊系统停摆,当天至少有6,000~8,000人受到波及。当时台大医院为了缩小影响范围,决定暂时停止门诊系统的运作,住院系统与行政系统则照常运作,然而,即便这样因应,资料库分割所造成的问题已经让当天的门诊系统停摆,当天至少有6,000~8,000人受到波及。

  赖飞罴在当时接受採访时表示,这次事件并不是台大医院第一次进行资料库分割的作业,但的确是调整幅度比较大的一次。赖飞罴在当时接受采访时表示,这次事件并不是台大医院第一次进行资料库分割的作业,但的确是调整幅度比较大的一次。 当时为了考量到资料库的运作效率,负责管理资料库的人员,在做资料库分割的同时,也进行了有效资料范围调整的作业。当时为了考量到资料库的运作效率,负责管理资料库的人员,在做资料库分割的同时,也进行了有效资料范围调整的作业。 而之所以后来会造成系统的停摆,最大的关键则是在于资料库分割之后,相关人员少了测试与非常好的化路径分析,所以才会没有事先发觉资料库索引已经偏离原本的路径。而之所以后来会造成系统的停摆,最大的关键则是在于资料库分割之后,相关人员少了测试与非常好的化路径分析,所以才会没有事先发觉资料库索引已经偏离原本的路径。 整起事件所以严格说起来并不算是系统当机,也和导入服务导向架构(SOA)等作为,没有任何关係。整起事件所以严格说起来并不算是系统当机,也和导入服务导向架构(SOA)等作为,没有任何关系。

  2009年底,台大医院也发生了一次大当机5小时的事件,虽然原因没有被证实,不过据了解,这次似乎是因为系统扩充的时候,资料库负载超出预期,导致门诊系统停摆,使得医生无法调阅相关病历资料、医院健保卡系统无法作用,导致病患无法领到特定药物等状况。 2009年底,台大医院也发生了一次大当机5小时的事件,虽然原因没有被证实,不过据了解,这次似乎是因为系统扩充的时候,资料库负载超出预期,导致门诊系统停摆,使得医生无法调阅相关病历资料、医院健保卡系统无法作用,导致病患无法领到特定药物等状况。 当天影响的病患人数估计约有4,000人以上。当天影响的病患人数估计约有4,000人以上。 如果这个原因属实,台大医院这次也是因为资料库的问题而导致停机。如果这个原因属实,台大医院这次也是因为资料库的问题而导致停机。

  事实上,日本某间员工超过20万人的企业,也曾发生过在搬移旧资料库内的资料,转换至新资料库时,因为遗漏了输入资料,而导致整个公司的人事和薪资资料全部错乱的问题。事实上,日本某间员工超过20万人的企业,也曾发生过在搬移旧资料库内的资料,转换至新资料库时,因为遗漏了输入资料,而导致整个公司的人事和薪资资料全部错乱的问题。 这间公司因为要搬移资料,在3个月前就先把资料複製一份到新的资料库上,然后採用新、旧资料库并行处理的方式,同步更新资料,准备转换日期到了之后,直接转由新资料库接手。这间公司因为要搬移资料,在3个月前就先把资料复制一份到新的资料库上,然后采用新、旧资料库并行处理的方式,同步更新资料,准备转换日期到了之后,直接转由新资料库接手。 然而却意外的漏掉了员工薪资和福利奖金变动的资料变更,以至于新资料库上线时,相关业务还是3个月前的资料,导致整间公司20万名员工的保险、出差费用、新进人员资料、薪资、福利奖金等资料,都发生错乱,使得财务部门无法正常扣款发放。然而却意外的漏掉了员工薪资和福利奖金变动的资料变更,以至于新资料库上线时,相关业务还是3个月前的资料,导致整间公司20万名员工的保险、出差费用、新进人员资料、薪资、福利奖金等资料,都发生错乱,使得财务部门无法正常扣款发放。 这个事件主要是因为该公司採用并行处理的方式,而又没有在转移前重新确认与同步新、旧资料库,最后才会造成这样的结果。这个事件主要是因为该公司采用并行处理的方式,而又没有在转移前重新确认与同步新、旧资料库,最后才会造成这样的结果。

  从这两次事件来看,资料库在搬移或处理资料的时候,或是需要超出平常的负荷时,要特别注意规画与处理的过程。从这两次事件来看,资料库在搬移或处理资料的时候,或是需要超出平常的负荷时,要特别注意规画与处理的过程。 当然如果能够做到资料库同步的备援,是可以减少这样的风险,不过这对于实际应用的环境来说非常困难。当然如果能够做到资料库同步的备援,是可以减少这样的风险,不过这对于实际应用的环境来说非常困难。

  除此之外,软体出现的问题当然也包括了作业系统和中介软体,一般来说这些问题都可以透过备援的方式做到一定的防护。 还有则是时序的问题也广为大家所知,如民国100年、千禧虫等原本系统设计上缺失。还有则是时序的问题也广为大家所知,如民国100年、千禧虫等原本系统设计上缺失。 最近也发生了Sony PS3游戏主机,因为旧版机器设定错误,误把2010年当做闺年,于是连线上网时造成使用者资料错乱,或是网路上的资料消失,甚至无法开机的状况。最近也发生了Sony PS3游戏主机,因为旧版机器设定错误,误把2010年当做闺年,于是连线上网时造成使用者资料错乱,或是网路上的资料消失,甚至无法开机的状况。 这些虽然是老生常谈,不过依然是在考量软体面时,需要注意的问题。这些虽然是老生常谈,不过依然是在考量软体面时,需要注意的问题。

0
相关文章