信息化 频道

银行IT人爆料:你所不知道的银行事故

    在科技部门眼里,上面这出热闹的阴阳错就如同隔岸观火,烧得再旺也到不了这边。但是业务和技术毕竟都在一个锅里,看别人热闹时,自己最好还是小心点。做程序的都知道,技术错误和业务错误是两码事,程序崩溃在技术上是一级错误,对于业务却毫无影响(程序根本不能用,还到不了业务那块),而有些低级别的技术错误,却能导致极其严重的后果(例如小数点少算了两位,然后日元按美元价给付出去,不过这是另一个故事)。当然最让科技人员担心的,是那种测试中完全没错,上运行环境后却莫明其妙影响效率,甚至造成当机事故的错误,就比如上面提到的按姓名查户主这个功能。

    对于开发人员而言,按姓名查户主的业务危险根本不用去考虑,只要业务人员提出并通过需求评定,那么开发人员就没有责任了。迟迟不愿做的原因恰恰是技术考虑,因为本功能可能造成无索引查询引起的锁表问题。在银行系统中,使用频度最高的数据表是对私分户帐,存取款、查询等业务都会用到这张表。系统一般都不会对姓名这样的中文字段加索引,这就意味着按姓名查询是对无索引字段进行查询操作,如果银行不大,分户不多业务量小,这种影响完全没什么,但是如果银行很大,那么,这种查询方式,只能是后果很严重。

    只有摔一跤才知道石头有多硬,推演是推演,在没有实际体验前,谁也不知道我们花上千万买的机器是否能横寻千军如卷席。大家决定还是赌一把,当然这次显然 RP不太好,几十分钟后,系统就不负众望地开始阻塞,最后甚至完全停滞下来,然后一起事故就这样在众望所归中诞生了。好在当时系统上线不长时间,错误、修改、再错,这一循环甚至成了我们的工作方式,因此,倒也没有造成什么恶劣的影响——科技的名声已经够差了,并不会因为这种小CASE而增加什么。

    这个事故发生已经十多年了,原来以为这只是我们开发过程中的一个小插曲,或者说是成长的代价,但是等离开银行来到公司,才发现自己错了。虽然一个人不应该在同一个地方摔两次,但这并不意味着另一伙人不会在这儿再来上一下。近年来,这样的事故已经见了三次,同样的错误,同样的模式,同样的影响恶劣,甚至连最后解决手法都基本类似(交易包发往备份主机),只是银行不同罢了。

    按姓名查户主这个典故经常被我用在和客户交流中作为业务简单技术难做的例证,然而这种事故毕竟还是比较容易解决的,只要停掉这个业务,将相关进程取消,甚至不用重启就可以解决问题。但是随着数据集中的加剧,另一个技术问题却越来越突出,但却绝不能那么简单地一停了之。这个问题,虽然大家都知道它难做,但是却又不得不做,甚至原来一年只做一次,现在必须一年做四次,由此衍生出的问题,甚至超出了技术和纯业务范畴,影响到银行业的一些重组。这个就是银行系统的计息。

    银行是通过存贷利息差来获取利润的,因此结息无疑是经营活动中的大事,在几年前,对公结息和对私结息是不同的,企业户结息是每季度最后月的20号,储蓄户则是6月30号,现在,托国家的福,两者统一,都是一年计四次。在单点系统时代,每季度对公结息虽然比不上年终结转(那是银行业的佳年华会),也是除此之外最重大的事件,一般都要干到晚上两点钟。系统集中后,这个工作就收到总部,由系统自动处理,各网点只要第二天来打印计息单就可以了。

    不过,系统数据的集中,显然使看来已经轻松的工作重新变为一种负担,特别是储蓄计息变成一年四次更使这一问题尖锐起来。到现在已经不知道听到多少起这种事故,或者说,一直到现在,计息日都是科技人员关注的重点,不但影响到运营系统,甚至影响到管理系统。在这一天,平日里只有十几万条的业务会因为分户计息而充塞进上百甚至千万条(活期分户有多少就有多少条)的结息流水,平日里十分钟运行的程序,如果不加处理3个小时也运行不完。而稍微不注意,计息就有可能一直运行到第二天网点开业时都无法完成,这样又一起影响范围巨大的事故就诞生了。

    在今天这个银行业纵横捭阖的时代,这样的事故不但会影响银行的业务,还会被用作一块板砖,砸向任何用的着的地方。玄武湖畔的一只蝴蝶残缺了翅膀,一场将要发生的合并风暴因此而悄然收场,有些事情,曾经让大家想尽办法,却没有想到,结束竟然如此简单。

    如果对金融股感兴趣的朋友,一定知道这几年什么是银行业最大的事,股改,股改,还是股改。工农中建,四大行,先是不良资产剥离,然后是充实资本金(国家甚至不惜动用外汇储备)。银行的股改为整形行业提供了最光辉灿烂的案例(其实整形进入中国后就已经够灿烂的了,一切皆有可能,不但整人、整车,还能整企业),工行中行建行成了中国最成功的整形美人,俨然跨进世界最好银行的行列。不过说起来,整形总还是有技术限制的,比如一只黑猩猩,你能把它整成美女吗?

    在银行体系里,农行就是这么一只猩猩,而且是一只巨型的。虽然拥有众多整形高手,但是国资委看着这只金刚仍然只有摇头的份。集思广义,发挥大家的聪明才智,最后商量出的方案,拆了它。虽然"美的已拆了"就是中国制造,但是长考出的这个结果显然是步臭棋,不知道管理者是不是这么想的,反正这个建议只是在媒体上探了一下头,就给砸了回去。对农行的整形显然超出了现在的技术条件,所以搁置也不失为一种好办法。不过,与此同时,另外一个农字头的银行体系,整形却在热火朝天中,这就是农信。

    与农行相比,农信更象是《加勒比海盗》里那群螃蟹,野地里生,野地里长,甚至连保护动物都算不上。但是,既然所有的银行都在整形,农信自然也不能例外。与农行正好相反,农信的整形方案是把螃蟹们组合起来,或者形象一点,就是拿块布包一起。当美容师对着农行比量来比量去时,一群群农信已经纷纷为成立省级联社大动干戈。这样的整形对于农信是好是坏咱还真说不清楚,但是对于金融IT公司那肯定是天上掉金子的美事,不怕做错事,就怕不做事呀。

    省联社的目标就是将下属的成百上千的螃蟹变成一个海神,最有效的办法就是统一做套帐务系统,帐收上去了,你想不听也不行了。这个道理大家都懂,虽然大家都喜欢做鸡头,不喜欢做凤尾,但是大多数的农信确实也是没法子,再亏下去恐怕只有去做鸡了。“四大行股份制,城商城信农联社”,这农信系统是最次一档,多和农民打交道,什么种子、化肥之类,出力多却没有多少效益。不过,这些都是通常的情况,如果农信效益好的不得了,这个,合并就有阻力了。

    “那个地方是不是穷的只剩下农信了?“,经常有人对农信作区域老大的说法表示怀疑。人呀,有时候总会被自己的固有经验所蒙骗,这个就是一个例子。效益最好的农信不但不在穷地方,而且还在中国最富的地方——长三角的苏州无锡。看一下最新的县域经济排名就知道这个地方的繁荣,前十名中竟然有七个是苏州和无锡的,这已经够让人吃惊的,但如果换一种说法,也许你会更吃惊,那就是苏锡下辖七市全部进入前十。

    这些县级市,甚至在北方的地级市面前都是恐龙一样的经济怪物,因此也就不难理解那些地方的农信为什么是效益最好的了,当年所有的银行都在进城,只有农信十分委屈地留下来了,没想到乡镇经济却成就了它们。农信不同于四大行,虽然有个总体的称呼,但是各家信用社都是独立的法人。这也就不免会穷富分化,通过名称就可以看出很多讲究,有叫”农村商业银行“的,有叫”农村合作银行“的,还有仍然叫“农村信用联社”的。这里面那些叫行不叫社的,虽然还是农信,这骨子里已经不太姓农了,就象苏锡地区很多农民已经不种地一样。

    苏州无锡的每个县级市都有自己的农信,这些农信都是最高一档,叫作农商行(也有例外,比如宜兴,这个在苏锡地区敬陪末座的城市,农信叫做合作银行,而它也成了省联社在这一地区唯一的收获)。对于这些农商行而言,上海才是他们的根,南京那个省城无疑有些偏远了。他们对于成为这个偏远城市银行下的一家分行毫无兴趣,或者说,其实他们对于成为任何一家银行的分行都没什么兴趣。

    但是省农信的合并是一个政治任务,对抗就是自绝于组织,自绝于人民,就是政治错误。政治错误是会死人的,这个已经无数次被中国的历史所证明。当你官做的足够大时,你可以做很多常人不能做的事情,比如贪点钱、受点贿、玩个女人,只要政治正确,但是不能政治错误,一旦政治错误了,那你就完了,一堆罪名会堆到你头上,而且搞笑的是,这时候你的罪名反而全是那些小节,和政治却毫不沾边。

    农商行的领导当然知道这些,所以他们也绝对不会傻到象陈*宇那样在会议上拍桌子。省农信风风光光的成立了,然后一家老牌的IT公司也风风光光的为它建立起了自己的系统,这些富裕的诸侯似乎也只有接受王化这一条路了。不过就象温相说的,有一分希望,就要尽百倍努力,政治是不能抗的,因为任何的政治都是态度问题,只有YES和NO两种选择,但是技术不一样,技术是个方法问题,拿把铲子就能挖出一个回路来。当政治不能解决时,就需要技术的力量了。      

    银行科技部门一直是一个与政治无关的部门,我们的科技老总就一直不是党员,也从来没有入党的兴致,而这并妨碍他在这个位置上呆了八年。虽然一直以来业务人员都对科技人员很尊敬,但是就科技部门的性质而言,这确实只是一个辅助部门,这种尊敬其实与电线短路时对电工师傅的尊敬没太多区别。只是这一次,当各种力量都势均力敌时,科技部门就成了那只最后加把劲就将萝卜拔起来的小老鼠。

    农商行为了保证目前的管理水平不会降低,为了保证业务风险降到最低,为了保证新上系统具有最强大的功能,向省行的同仁和公司的对手提出了无数的需求。很多需求是不可能完成的,但是,技术上的不可行不能作为理由,因为农商行手里握着尚方宝剑,这个就又回到了政治层面。当初,省里为了让这些强大的诸侯归顺,曾经答应过,各家系统的合理要求都必须满足,你看,我这些需求里有一个不合理的吗?

    虽然农商行的归顺并不顺利,但是其它诸侯的王化却仍然在进行,终于,省农信甚至在无锡也有所斩获(不幸的宜兴农合行),前途已经一片光明,只剩下江南一隅了。一直以为,这场战争已经快要结束了,毕竟政治不是技术能抗过的。没想到,抵制运动竟然成功了,来得很迅速,而且轻松的令人意外,而成功的原因竟然是来自于技术层面,一个在IT系统中最常见的错误,计息的错误。

    其实省农信的节节胜利已经为这个错误做出了铺垫,收上来的行越多,数据就越大,而且越是发达地区的行,数据量就越大。当省农信庆祝常州和宜兴上线时,大概没有想到,他们的系统已经悄悄超越了运行的界限。于是,就在这个季度的计息日,计息一直运行到第二天上午,全省的网点都坐等了几个小时,一级事故,与去年交通银行那次一样。

    危机结束之后,大家擦汗之余,又将视线对准了这些农商行,无锡两家,苏州六家,估算了一下数据,于是终于泄气了,这是省农信范围内效益最好的几家行,也是数据量最大的几家,还是交易最活跃的几家行。现在的系统都已经搞不定,再加上这几家,还不知道会出什么乱子,算了吧,多一事不如少一事。曾经让众多能人志士耗费脑浆的事情就这么结束了,而这一切,都来自于一次并不太严重的事故。

    故事终于讲完了,却发现有些跑题,这场政治秀其实和IT关系不大,还是回到正题,咱们接着说银行的事故。对于IT人员来说,事故其实分两类,前面谈到的可以称为内部事故,天天都会有,经常盯着点,改了也就没事了。最害怕的是另外一类事故,也许影响范围不大,但是损失却是真金白银的,对于科技人员,后果显然更为严重,也更让我们闹心,比如银行卡的各类事故。

    当初写这个故事,就有点信马由缰,前面写着来劲,下笔千言,但人总有兴尽辞穷的时候,虽然还有很多故事,但却没了兴致往下续了。本来这个坑就已经准备放弃让它变成坟了,但是,网上流行挖坟党,忽然有一天,发现有人曝棺,而且眼熟的很,这下倒又来了兴致,但是究竟是给它填几锹土还是再挖深一点,这个,俺也说不准。

    上篇最后提到银行卡,这可又是个很长很长的话题。话说,最早在中国出现的银行卡,应该是上世纪八十年代,中国银行的长城卡。当时这卡名字也叫信用卡,却和现在的信用卡不一样,因为它更象是可以透支的活期帐户,虽然可以透支,但却要按日收透支息,如果不在规定期限内把余额变成正数,就算是还得只剩下-0.1 元,你也会进黑名单。所以到现在这个卡片横飞买白菜都可以刷卡的时代,此种超有个性的史前生物就被尊称为准贷记卡,与之对应的是正被时尚使用具有强大未来穿越能力的信用卡,也被我们称为贷记卡,而那种根本不具穿越功能每个人身上都有n多张的储蓄卡,则被命名为借记卡。

    虽然功能比真实的信用卡打了很多折扣,但是在当年,这信用卡和大哥大一样,都是身份显贵的象征,如果某人在饭局之后结帐之时,掏出一张卡来,那绝对可以和枪战之后收尸之时从马仔手里接过大哥大一样有派。信用卡的规定也一样体现着银行的气派,卡丢失了必须即时挂失,挂失一天之内的损失由个人负责。而且,卡族们也不象现在那么容易当,和当时的软卧一样,需要有一定的级别才能去办,如果什么级别也没有,就是一财主,倒也行,先押五万元在帐上,然后你才可以仿处级待遇,花差花差了。

    现在提起使用银行卡,马上就会想到ATM、POS之类的东西,知道这卡在那上面一刷,钱就从帐上扣了。很少有人知道,其实早期的信用卡交易都是脱机的,用的是一种叫刷卡机(现在叫压卡机)的设备。如果你要消费,那么商家就用压卡机制单,然后拿着这个单子再到银行去要钱。不知道大家注意到没有,所有的信用卡卡面上的卡号都是凸出来的,而很多储蓄卡却是把卡号印在卡面上的。其实这种设计就是那种最早的信用卡交易方式的遗留。

    当然,这样的消费方式已经是十几年前的事了,现在只要是卡消费就会是联机的,都会直接扣帐或者冻结(指预授权的方式),而且各行的卡都可以通用了(感谢银联)。去年做前置系统,总结了一下,银联提供的交易已经有四五十种,涉及到日常生活的方方面面,我们想到的有,想不到的也有。

    卡的交易安全体系也十分完善,虽然现在涉及卡的案子是最多的,但是基本都是利用普通人对卡不熟悉来钻一些空子,真正利用卡系统漏洞的,即使是银行内部人员的案子,最近几年也找不到一起。不过,罗马不是一天建成的,现在的卡交易安全体系也是一样经过了很多年才完善。刚开始做卡系统时,确实还是有很多漏洞的,甚至让人给找出来去做案,而且深究起这个漏洞来,还真是一件让科技人员丢脸的事情。

    事情发生在当时大连一家挺著名的餐馆。星期六上午,有人到餐馆里来,自称是银行的技术人员检修POS。对于餐馆来说,设备维护这种事情,和网点的人感觉是一样,属于某种特殊的带有神秘色彩的活动,虽然来人是生面孔,倒也并没有多盘问。那人也没呆多长时间,只在POS上按了几下键,然后就走人了,餐馆对这事儿也没放在心上。不过到周一时,不管是银行还是餐馆,大家都明白,出大事了。因为对帐时就发现差了七十多万,再一查,七十多万都到了一个银行卡帐户里,而且取的只剩下十几万。

    这事儿,是银行的清算中心发现的,然后就通知了科技部。据说处长当时接到电话后,第一个反应就是传呼处里的几位技术大佬,看到大家都回复了,这心也就放了下来,看来事情还是出在河那边,我们可以在这边仔细地观察一下火势了。然后,当然就是把几位大佬召集到一起分析原因,其实象这样的事情,原因,只要稍微一查也就知道了。

    事情说起来很简单,有人冒充银行的技术人员,用商户那儿的POS做了退款交易。POS退款,就是指消费之后发现出错了,再把人消费的钱给退回去,说起来,即使现在这个交易也仍然是一个漏洞,很多信用卡套现的把戏都是通过这个交易完成的。而在当时,漏洞更多,因为退款交易按规定必须是要查原来的交易记录的,退款额也不能大于原交易额。而当时的系统,查原交易流水大概比较麻烦,技术人员就把这步给省了,直接输入退款金额和退款卡号,这样就把退款交易做成了存款交易,只是加了道管理员口令作为限制。

    本来,即使这样,其实也不会有太大的问题,因为,如果一个餐馆没消费那么多钱,晚上一对帐,马上就会出错,而且当时我们还有一个规定,当日存入的钱只允许在存钱的网点取,象这种退款的自然就只有第二天才能取。这两者的结合,实际已经将犯罪之路给挡死了。但是,百密总有一疏,当时,正好是银行系统合并初期,对帐是日终流程,属于会计部管,他们周六周日不上班,自然也不做日终,而退款是日常交易,属于信用卡部管,一周七天都可以做。结果,犯事者就利用这重重漏洞,在周六退款存入一个储蓄卡中,周日这一天里,跑了十几个网点,取出了四十多万现金,之所以这么辛苦,则是为了规避银行的大额现金取款必须提前预约的限制。

    但是,电脑这东西,其实就那么几招,如果真想做到神鬼不知,还真是很困难(所以我们一看到电影里整电脑就想发笑)。既然已经知道作案的全过程了,找到谁做的案子那也就没什么难的了。能够知道POS的管理员口令的人也就那么几个,而能利用系统漏洞作案的,那就更没有几个了,介个,肯定是内部人员干的。而这小子跑了十几家银行,自然马脚就会露出来,虽然当时网点有监控的并不多,但他跑的几家里恰巧有一家有。

       其实当时我们都有些害怕,怕身边某一位突然被带走,但是最后证明,象我们科技人员还是比较正气的。干这事的是信用卡部的员工,在前台作案的是他的铁哥们了。这也真是遇友不淑,两人呆在一起,整天就想着如何弄钱,最后真让他们找出漏洞来。可惜有福得无福享。他的朋友拿到钱之后,就跑路了,到现在也不知所终,不过三十多万即使在那时也不算是什么太大的数目,想过那种花天酒地的生活恐怕是不太可能了,还得整天防着警爷们的出现。而银行里的这位,倒也省心,至少十几年可以不愁吃不愁穿了,据说他有一个很漂亮的女朋友,和他是同事,但有人说,其实他想钱就是因为这位女朋友很能花钱,但是,当他进去之后,女朋友很快就和别人结婚了。

    事情过去已经十几年了,但是给我们的教训却很深刻。现在人常说,看了《色戒》知道女人不可靠,看了《投名状》知道兄弟不可靠,看了《集结号》知道组织不可靠。而我们,从这件事情就知道,不但上面的三种都不可靠,即使是我们认为最可靠的电脑也不可靠,任何的一点偷懒都可能被别人所利用。

0
相关文章