


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