对程稚瀚案的分析
事件回放
全国最大的网上盗窃通讯资费案。31岁的程稚瀚是UT斯达康(中国)有限公司深圳分公司资深软件研发工程师,主要工作是帮助公司解决网络安全问题。此前任华为技术有限公司工程师,负责西藏移动等公司的设备安装。他做的事情是,从2005年2月,从西藏移动公司系统进入北京移动公司的充值中心数据库,获得最高系统权限,根据“已充值”的充值卡显示的18位密码破解出对应的34位密钥,然后把“已充值”状态改为“未充值”,并修改其有效日期,激活了已经使用过的充值卡。在随后的4个多月中他在充值数据库中如此操作,并复制出了14000个充值密码。他把面值300的充值密码以281.5到285元面值不等价格在网上售出,获利380万。2005年7月16日,北京移动寄到用户投诉说购买的充值卡无法充值,这才发现密码被人盗窃并报警。无法充值的原因是他最后盗取的那批密码忘记了修改有效日期。
暴露的问题
仅凭这件事情中被媒体公开的信息看,移动公司的信息系统管理有很大的问题。造成这么大的损失,不仅仅是技术问题,更重要的是内部控制程序上的问题。如果不是程稚瀚最后一次的疏忽,他的所作所为将会是神不知鬼不觉的。
主要的管理缺陷有:
1 移动公司对设备/服务提供商的管理缺陷。华为完成设备安装后,移动公司没有马上修改提供商原先设置的初始密码,这是导致该事件发生的直接原因。
2 移动公司对密码的管理缺陷。关键设备的超级用户密码没有做到定期更换,如果做到了,这项补偿性控制能够大大降低入侵风险。
3 移动公司对已过期帐号的处理缺陷。已经过期的密码应及时从密码列表中删除,而不是简单的通过状态不同来区分。定期清理无效密码可以降低上述风险,同时也能提高系统的运行效率。从目前得到的信息看,我不能推测出移动公司到底有没有这种控制存在,如果有,那么就是清理无效密码程序运行的频率太低。
4 没有异常数据变更的检查报告机制。事前预防控制没有,事后的检查控制也没有。按说修改密码状态和过期日期这种业务性质的操作是很少见的,根据职责分离原则,就算是真正的系统管理员也不能这么做。但是有14000条记录被异常更新并且没有被发现,这就是检查机制的缺陷了。
主要的技术缺陷有:
1 系统密码设置简单。程要登录北京移动的充值中心数据库修改数据,除了已知的西藏移动公司的设备密码外,还需要知道进入北京充值中心数据库的用户名和密码。从已知的信息看,后者的用户名和密码被很容易的破解了。
2 内外网络连接安全性低。程在做这件事的时候已经不在华为了,肯定不是在西藏移动公司的机房里通过登录移动公司的内部网做的。由此可以推测他是从公共网环境登录到西藏移动公司设备,再通过该设备由内部网登录到北京移动公司充值中心主机的。那么他是如何从公共网登录到移动公司内部网络的呢?报道中并没有说。
总结
程稚瀚是为了“测试”移动公司花上亿元安装的网络安全系统才偶然发现了这个新“财路”的,但是这个安全系统被他评价为“没什么用”。可见,要保证信息系统的安全,技术起很大作用,但并不是万能的,严格健全的内部控制措施也是非常重要的,有时候它比技术措施更加有效。