今年6月9日,黑客入侵深圳福彩中心篡改彩票数据,欲诈骗第09066期双色球3305万元大奖的事件受到了社会广泛关注。
以笔者曾参与某省福彩中心信息系统项目审计的经验来看,深圳福彩中心在管理和技术两方面确实存在一些问题,但是通过分析电脑票销售管理系统的流程和关键控制点,完全可以采取一定的措施来防范和堵截黑客的恶意行为,减少彩票资金损失的风险。
事件回放
首先,我们来看福利彩票双色球销售开奖的大致流程。6月9日晚8点,双色球09066期销售截止,投注站软件系统根据原来的设置的期参数停止销售。福彩中心封存当期销售数据,导出并刻录备份数据光盘,然后汇总统计销售、兑奖和弃奖等数据,将统计数据及时上传中彩中心;同时,对应的销售、兑奖和弃奖的明细数据也按照统一的数据接口规范转换后上传中彩中心。
晚8点45分左右中彩开奖摇号,摇号器主要是国外进口的,在使用管理上有着严格的程序,不太可能出现提前开奖或是开奖舞弊的情况,摇出的中奖号码应该是客观公正的。基于这个结果,各省福彩中心使用抽奖程序对销售明细数据进行抽奖(中奖号码一般不手工输入,而是软件自动下载中彩中心提供的数据,并与中彩中心发来的传真件进行二次比对,确保中奖号码的正确性),产生的抽奖结果和统计报表要及时上报中彩,随后中彩公布该期中奖公告,一般晚9点后就可以兑奖。
从这个过程看来,因为不太可能提前得知中奖号码,所以黑客是先购买了彩票,再利用中奖号码公布后各福彩中心使用软件进行抽奖前的间隙,使用程序连入销售系统,或者发出指令激活以前上传的木马程序,修改电脑中该彩票的投注号码,使之中奖。
从深圳福彩中心发布的新闻公告看来,该中心的值班人员在进行正常抽奖中出现过错误,可能是黑客修改后的彩票销售数据出现钩稽关系错误或者记录校验错误,比如彩票投注号码和彩票票号、扫描码之间的关系验证等,这不应该是严重错误,否则根本无法抽出该张彩票。值班人员认为是程序偶然出现的小错误,为了不耽误中奖公告的发布,就把该数据上报给中彩中心。
不久后值班人员为了检查错误,使用封存的备份数据进行再次抽奖验证,在原始的销售数据中,该彩票投注号码当然是未中奖的,由此,发现了黑客入侵的痕迹并报案。
当然,此黑客很快就落网(案发第三天),尚未来得及伪造彩票去兑奖。从报道的情况看来,该黑客手中只有原始未中奖的彩票,他必须按照修改后的投注号码修补彩票或者重新打印彩票,使之和修改后的数据记录完全一致才能够去福彩中心兑奖。据报道,此人曾参与了投注站系统数字终端的一些调试和软件的研发,如果有合适的硬件,重新打印彩票是有可能的。
问题分析
从福彩中心信息系统的安全控制和流程管理角度分析,应该可以发现以下的问题。
在技术层面,晚8点后,投注站系统停止销售,这是容易做到的,但是黑客既然可以在8点45分后连入系统发送指令或者修改数据,就说明福彩中心的销售系统并没有执行严格的访问控制,或者销售系统网络存在其他的访问漏洞。黑客可以利用已经掌握的投注站终端的通讯参数、加解密参数和其他控制参数,编写程序绕开了投注站系统,并在封存后至抽奖间的敏感时间段得以访问销售系统。如果该销售系统的网络系统可以通过因特网访问,安全设备如防火墙配置不当,或者销售系统的操作系统、应用软件、数据库系统存在较明显的漏洞可供攻击渗透的话,则入侵就更容易了。
在这个案件中,值班人员在初次抽奖中程序报错,这个细节导致了再次验证从而发现入侵行为。如果黑客对销售数据的结构以及记录字段间的逻辑验证关系和重要字段的加解密算法更为清楚的话,有可能使修改后的数据在抽奖时不报错,导致中心人员很晚或者根本无从发现这个行为。
从管理和规范操作流程的角度来说,深圳福彩中心的值班人员在抽奖发现错误时未按规定程序操作,也未及时采取其他应急措施,导致了事件进一步严重。同时,抽奖的数据来源于电脑销售数据库,虽说已经封存,投注站无法再销售,但是绕开投注站的恶意程序仍然可以访问和修改销售数据,从规范和减少风险的角度来讲,不应该基于此数据进行抽奖操作。
应对措施
只要是信息系统,就难免出现漏洞或缺陷,不管是管理控制方面还是技术层面,不同的是漏洞被利用的难易程度。当然,针对存在的问题,也可以采取相应的措施来尽量避免和减少风险。