2009年,我们在对某省种粮直补资金专项审计调查中,利用计算机对某省农民补贴网进行审计,采集大量数据,深入分析,站在系统审计的高度,从体制和机制层面入手,巧用现场审计实施系统,发现了农民补贴信息系统存在系统漏洞以及农户信息真实性存在问题。 一、农民补贴信息系统简介 为了配合种粮直补政策的贯彻落实,加强补贴资金的管理,2006年财政部下发《关于推进中国农民补贴网建设进一步加强种粮农民补贴管理的通知》(财建[2006]406号),在全国逐步建立农民补贴信息系统(以下简称“农补网”),实现中央和地方的联网与数据资源共享。在配合“一折通”发放种粮补贴补方面取得了较好的成效,保障补贴资金及时兑付给农户。同时,也为上级部门对下级进行有效监督提供了平台。 二、农民补贴信息系统存在内控方面的问题 通过审前调查发现,农补网极大地方便了直补资金发放的同时,也存在一些内部控制方面的漏洞和不足,为一些不法之徒提供了可乘之机。通过审计调查发现系统存在以下漏洞: 1.在农补网的数据库设计中以系统自动生成的惠农编号作为唯一确定农户的编号(主码),对关键字段身份证号码并未建立唯一性及非空约束,在基层数据录入环节录入身份证号为空或者出现身份证号重复的情况,系统无法检校并报错。 2.并未建立相应内控措施,系统无法核实所录入农户姓名和身份证号码的真实性。 三、审计思路 在充分了解系统基本功能和基本架构,熟悉系统操作手册后,针对农民补贴信息系统存在的上述问题,审计组提出了以下计算机审计工作思路: 1.对资金总量进行复核,确保每一次发放的资金完全发放到所有登记在农补网中的农户。 2.分配算法的正确与否和农户分配获得的金额密切相关,关乎农户的切身利益。核查分配方式是否严格按照政策执行,每一个农户是否得到了应得的资金。 3.农补网中,并非以身份证号码而是以系统自动分配的惠农编号唯一确定一个农户,故此,农户信息的真实性需要进行复核。 四、审计步骤 第一步,农民补贴信息系统使用的底层数据库是SQL Server。将该省财政厅提供的SQL Server数据库导出的数据数据字典对数据表进行分析,确定表的重要程度,锁定核心数据表,减少无关表对数据分析的干扰。对核心表整理,进行字段的标准化处理后,导入AO系统,供审计人员使用。 第二步,通过对表和字段的研究,审计人员对农民补贴信息系统进行了应用测试。 1、对系统进行黑盒测试,在录入补贴农民基本信息时录入身份证号码为空或重复的身份证号码信息,结果发现系统审核通过并保存了该信息。 通过对核心数据表——农民基本信息表进行结构分析发现,在农补网的数据库设计中以系统自动生成的惠农编号作为唯一确定农户的编号(主码),对关键字段身份证号码并未建立唯一性及非空约束,在基层数据录入环节录入身份证号为空或者出现身份证号重复的情况,系统无法检校并报错。 2、对系统进行黑盒测试,在录入补贴农民基本信息时录入不符合身份证编码规则的由任意18位数字组合而成的虚假身份证号码,结果发现系统审核通过并保存了该信息。 通过对系统功能进行分析发现,该系统未与公安部门户籍管理系统数据库对接,系统无法核实所录入农户姓名和身份证号码的真实性。 第三步,惠农补贴发放完整性分析,对比惠农补贴分配额与发放额,审计是否足额发放。 1、分类汇总每项补贴每年上级分配的金额。 Select补贴类型名称,补贴年度,(补贴批次),sum(补贴分配金额)into补贴金额分配表From惠农补贴分配表 2、分类汇总每项补贴发放的金额。 Select补贴类型名称,发放年度,发放批次,sum(补贴发放金额)into补贴金额发放表From惠农补贴发放表。 3、将补贴发放金额与补贴分配金额进行对比,以查验补贴是否应发尽发。 Select补贴分配金额,补贴发放金额,(补贴分配金额—补贴发放金额)as未及时发放补贴金额From补贴金额分配表inner join补贴金额发放表。 第四步,惠农补贴发放数据数据真实性分析,核实农民信息的真实性。 1、对农民身份证信息有效性进行复核。验证所发放补贴资金的农民身份证号码是否有效,筛选出身份证号码无效的补贴发放记录。利用以下语句可以将身份证号码为不真实的农户信息筛选出来。 Select农民编号,农民姓名,无效身份证号码,补贴类型名称,虚领补贴金额into发放惠农补贴农民身份证号码无效情况统计表Where(len(rtrim(身份证号码))not in(15,18))or(身份证号码is null)or (drim(身份证号码)='') or (len(rtrim(身份证号码))=15 and isdate(mid(身份证号码,9,2)+'/'+mid(身份证号码,11,2)+'/'+'19'+mid(身份证号码,7,2))=false)or (len(rtrim(身份证号码))=18 and isdate(mid(身份证号码,11,2)+'/'+mid(身份证号码,13,2)+'/'+mid(身份证号码,7,4))=false);