您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 软件测试的系统审计方法和有向图算法在金融审计中的应用
2019/8/131软件测试的系统审计方法和有向图算法在金融审计中的应用主讲人:陈宇2019/8/13审计署驻成都特派员办事处2概述近年来,随着计算机审计的深入开展,成都特派办在传统的基于SQL的数据审计领域之外,扩宽思路,积极地开展一些新的计算机审计尝试,尤其是在信息化程度高的金融领域取得了不错的效果。2007年,我办在2007年对中国人民财产保险公司的审计中,对某保险公司的信息系统尝试了初步的信息系统审计。2008年在对某商业银行的审计中,使用有向图的环查找算法,有效地解决了多家企业循环担保的分析和查找。2019/8/13审计署驻成都特派员办事处3保险公司信息系统审计初步尝试遇到的问题:数据量大,关键是每笔保单的金额偏小,这与银行的数据迥异。这一特点就决定了保险公司的取证最好从“面”上而不是从“点”上取证。根据这一特点,审计人员从前后台同时着手,分析保险公司系统可能存在的漏洞以及该漏洞可能导致的问题。这样的好处是能达到较高的覆盖率,发现普遍性的问题,对保险公司加强管理堵塞漏洞有好处。2019/8/13审计署驻成都特派员办事处4保险公司信息系统基本架构保单录入子系统保单批改子系统保单注销子系统保单理赔子系统业务系统收费子系统减退费子系统报表子系统统计子系统财务系统数据传输接口2019/8/13审计署驻成都特派员办事处5白盒测试白盒测试是软件测试中最常用的方法之一,其基本思想是把待测试的模块看做一个能够看到内部结构的“白盒子”,设计测试用例覆盖所有分支,测试模块的功能性和健壮性。正确数据一正确输出正确数据二正确输出错误数据报错返回2019/8/13审计署驻成都特派员办事处6对保单批改子系统进行白盒测试审计人员从前台登录系统,录入了若干张测试保单,然后尝试对这些保单的各个要素进行各种类型的批改。例一:批改保单的费率,随意上下浮保单费率,尤其是下浮到保监会规定的最低费率之下,看系统是否报错。例二:批改保单的保额。针对一些费率和保额有关的保险,随意增加或减少保额,看保险费率是否随之变化,相应的保费是否会随之改变。2019/8/13审计署驻成都特派员办事处7发现漏洞!我们在批改终保日期的环节发现了漏洞!漏洞为:可以对一张保单的终保日期进行随意批改,将保单的终保日期提前到当前日期之前!对此保险公司的系统竟然完全没有控制!例如:一张2007年1月1日至2007年12月31日的保单,竟然可以在2007年12月30日做批改,将保单的终保日期提前到2007年1月2日!2019/8/13审计署驻成都特派员办事处8批改终保日期漏洞图示如果简单这样退保,等于将终保日期提前到批改日期。能退出的保费2019/8/13审计署驻成都特派员办事处9批改终保日期漏洞图示系统漏洞使得能把终保日期提前到批改生效日期之前能退出的保费2019/8/13审计署驻成都特派员办事处10到后台数据库中查询发现这一问题后,审计人员到白宣布公司后台数据库去查询所有终保日期早于批改生效日期,且有退保记录的保单。发现可以保单后延伸审计,发现该公司某支公司存在使用这种手法违规退保,套取保费数百万的犯罪事实,犯罪嫌疑人已被逮捕。审计后,保险公司针对该漏洞打了补丁,及时堵塞了这一漏洞。2019/8/13审计署驻成都特派员办事处11对保单录入子系统进行白盒测试我们在对保单录入子系统进行白盒测试的时候发现:车险保单在录入时可以将个人车辆的投保人录入为单位,从而享受更低的单位车团保险费率,对此系统无控制!有了这一发现后,审计人员在后台数据库中查询,发现了该公司在全国范围内有60余万份“个人用车”保单是以“单位用车”名义承保,直接导致少收保费约1.7亿元。延伸调查发现:很多保险公司以这种方法降低保费招揽客户,在保险市场上进行不正当竞争。2019/8/13审计署驻成都特派员办事处12针对接口进行黑盒测试保单录入子系统保单批改子系统保单注销子系统保单理赔子系统业务系统收费子系统减退费子系统报表子系统统计子系统财务系统数据传输接口2019/8/13审计署驻成都特派员办事处13对数据传输接口进行黑盒测试审计人员对数据传输接口进行黑盒测试,首先在业务系统录入若干测试保单,然后进行批改、注销、退保等操作,看数据是否能够正确地传入财务系统。接下来审计人员在财务系统中对保单进行操作,比如删除保单缴费记录,注销保单等,看数据能否正确地传回业务系统。2019/8/13审计署驻成都特派员办事处14发现漏洞!我们发现该系统的数据传输是单向的!业务系统的数据可以从传输接口顺利而准确地传到财务系统;但对财务系统进行的操作则不能反过来传输到业务系统。业务系统财务系统2019/8/13审计署驻成都特派员办事处15漏洞导致的问题发现这一漏洞后,审计人员对业务系统和财务系统的保单进行了比对,发现了该公司的某分公司采用在财务系统中修改保单保费或退保的方式来实现“暗折”,2006年年共违规批退保费6000余万元。比如有一家单位来对10辆车进行投保,这家公司在业务系统不能打折的情况下,在财务系统中修改保费为应收保费的80%,实现八折的暗折!审计后,保险公司已针对该问题打了补丁。2019/8/13审计署驻成都特派员办事处16对分公司和总公司数据传输接口的黑盒测试保险公司网络拓扑结构分公司前台省公司数据库服务器总公司数据库服务器2019/8/13审计署驻成都特派员办事处17发现漏洞!我们抽查了三家省公司,将他们服务器上的数据与总公司的数据进行了比对,发现存在不一致的地方!经过分析发现:省公司和总公司之间的数据传输接口只有简单的数据传送功能,在大量的数据传输时,对于可能发生的传输错误没有任何处理!进一步延伸调查,发现2006年的所有保单中,由于数据传输出错导致信息不符的保单有35045张,涉及金额4000余万元。2019/8/13审计署驻成都特派员办事处18我们的建议:加入校验和错误重传机制数据校验码省公司数据库服务器总公司数据库服务器数据传输接口校验码正确√数据校验码错误×要求重传2019/8/13审计署驻成都特派员办事处19跳出SQL的局限,找出多重循环担保在数据审计领域,我们在整合利用已有专家经验的同时,也扩宽思路,突破数据库结构化查询语言SQL的限制,积极尝试使用程序设计语言,利用数据挖掘等先进的算法来进行更深度的数据分析。比较典型的一个例子是我们利用有向图的环查找算法解决了N家企业(N=2)之间循环担保的问题。2019/8/13审计署驻成都特派员办事处20循环担保问题描述循环担保,常见的有两家企业之间相互担保(即A为B担保,B又为A担保)和三家企业之间循环担保(A为B担保,B为C担保,C为A担保)的情况。循环担保的最终结果是担保落空,形成事实上的信用放款,企业一旦无力偿还贷款,贷款风险全部由银行承担。分析循环担保的专家经验最先由京津冀办董永强同志提出,能很好地解决3家以内企业循环担保的问题。2019/8/13审计署驻成都特派员办事处21已有方法核心是基于SQL的表自连接贷款人担保人ABADBCCADA两家企业相互担保:Select*From贷款表asa,贷款表asbWherea.贷款人=b.担保人anda.担保人=b.贷款人三家企业循环担保:Select*From贷款表asa,贷款表asb,贷款表ascWherea.贷款人=b.担保人andb.贷款人=c.担保人andc.贷款人=a.担保人BE2019/8/13审计署驻成都特派员办事处22已有方法存在的不足已有的方法没有相应的数学模型,导致其难以推广到三家以上企业循环担保的情况。已有的方法是基于SQL的,由于SQL自身的不足也导致该方法难以推广:两家企业相互担保要写一次代码,三家企业循环担保要重写一次代码,四家企业循环担保还要重写一次代码,且循环担保的企业越多,代码越复杂,出错的可能也越大。2019/8/13审计署驻成都特派员办事处23解决方案:跳出SQL,首先建模针对已有方法存在的不足,我们对新方法的要求是:1.有良好的数学模型,便于推广到三家以上企业循环担保的情况。2.代码简单可复用。只运行一次就可以找出从两家相互担保到任意多家循环担保的所有记录。不用因为循环担保的企业家数改变而修改代码。2019/8/13审计署驻成都特派员办事处24使用有向图对担保关系建模图分为有向图和无向图两种,图的边是有方向的这种图称为有向图,否则为无向图。节点A节点B节点C节点A节点B节点C2019/8/13审计署驻成都特派员办事处25使用有向图对担保关系建模我们将企业抽象为有向图的节点,每一家企业,无论是贷款人还是担保人,都用一个节点来表示。我们将担保关系抽象为从担保人指向贷款人的一条有向边。2019/8/13审计署驻成都特派员办事处26有向图建模演示贷款人担保人ABADBCCADABE节点A节点B节点D节点C节点E2019/8/13审计署驻成都特派员办事处27循环担保问题转化为求环的问题查找循环担保实际上就转化为了在有向图中查找环(回路或强连通子图)。节点A节点B节点D节点C节点E该有向图中存在两个环A-B-C-AA-D-A2019/8/13审计署驻成都特派员办事处28有向图中环的搜索算法在有向图中搜索环的算法常见的有两种:一种是深度优先搜索算法,一种是将图转换成矩阵后用Warshall算法。深度优先搜索算法是从图的一个节点开始,进行深度优先搜索,当回到开始的节点时就找到了环,如果回来中间访问过的节点,或没有路径可走,则结束本次搜索。2019/8/13审计署驻成都特派员办事处29深度优先搜索算法演示节点A节点B节点D节点C节点E此时回到出发的节点A找到环A-B-C-A从节点C出发已无其它路径,退回到节点B到达节点E后没有其它路径可走,退回到节点B,此时从节点B出发的所有路径都走完,再退回节点A,本次搜索结束。Warshall算法不再赘述2019/8/1330
本文标题:软件测试的系统审计方法和有向图算法在金融审计中的应用
链接地址:https://www.777doc.com/doc-249615 .html