# IT审计之独立数据核查


"数据是 21 世纪的石油，而分析则是内燃机。"

如果说数据是石油，其本身是无价值的，只有对数据深度挖掘，才能为企业业务增长提供新的引擎，形成真正的数据资产。

近年来，随着信息技术飞速的发展，企业信息化建设已由类似于 ERP 等行业属性相对较强的信息系统建设转向信息系统之上的数据管理与业务应用建设，如建设适应企业业务发展的数据中台、业务中台等新型 IT 架构。通过建设敏捷高效可复用的支撑平台，为业务数字化创新提供高效数据和服务支撑。

IT审计执行的信息系统一般控制、应用控制测试是对企业信息科技领域管控的评价，仍然是对信息系统基础设施及建立其上的业务流程的控制测试。面对企业业务开展所产生的海量数据，其勾勒出了企业经营活动真实画像，数据核查工作在应对舞弊、异常检测方面显得越来越重要。


## 数据核查的特点 {#数据核查的特点}


### 由抽样审计转变为全量审计 {#由抽样审计转变为全量审计}

IT审计的数据核查大多时候是为财务审计服务的。受限于技术手段，财务审计在进行数据核查时，往往是抽样审计。但面对类似电商、游戏等这样的互联网企业所产生的海量销售订单，抽样检查多少个合适呢？ 100 个、 1000 个还是 10000 个才合适呢？

借助于 SQL 、ClickHouse等大数据分析技术，我们可以对上亿行的数据量进行全量核查，全量分析。

{{< figure src="/ox-hugo/2022-09-18_15-16-01_screenshot.png" >}}

例如，对于大型集团企业，审计在执行银行流水与财务序时账核对时一般仅对大额流水进行检查，并且会耗用大量人力和时间。如果企业开通了银企直联，银行流水与序时账一般会有关联字段，我们可以利用 SQL 进行全量双向核对；如果企业未开通银企直联，或没有关联字段，我们仍然可以利用 Python 按照人工核对的逻辑编写代码，实现网银流水与序时账的全量核对，不再区分金额大小。

再如，对于生产工艺复杂的制造型企业，其工序可能多达十几步或者几十步，审计难以对生产成本进行重新计算以验证存货计量的准确性。但对于计算机来说，这些工序的成本分摊逻辑是一致的，借助于 Python ，我们也是可以实现对所有工单的生产成本的归集和分摊进行全量重新计算。对于这些收入、成本计算逻辑复杂的企业，利用 Python 这样的编程语言，复现系统的计算逻辑，能取得很好的数据核查效果。


### 数据分析的颗粒度更小 {#数据分析的颗粒度更小}

财务审计在执行分析性程序时，往往使用的数据颗粒度很大，如按年或月的汇总金额去进行波动分析。数据的颗粒度就像一张照片的像素，当颗粒度很大时，照片所呈现的信息将会失真，很多细节信息将难以发现。而 IT 审计进行数据核查时一般按照最小颗粒度的数据进行多维度分析，如订单、小时、分钟、渠道等，这是异常检测的基础。

{{< figure src="/ox-hugo/2022-09-18_15-16-13_screenshot.png" >}}

如上图所示，当我们将订单按照一天 24 小时划分为 24 个区间，分别统计每个小时区间的订单金额时，能发现 2019 年0点和 2020 年8点的订单金额显示异常。这就是将分析的颗粒度变小的好处，能还原更多细节信息。

{{< figure src="/ox-hugo/2022-09-18_15-16-23_screenshot.png" >}}

如上图所示，我们甚至可以按分钟去统计次数，去检测是否存在利用机器人等技术短时间大量刷单的情况。

{{< figure src="/ox-hugo/2022-09-18_15-16-30_screenshot.png" >}}

如上图所示，我们可以以订单的颗粒度去分析单价的稳定性，对于发散的或者偏离正态分布的数据检测出来，进一步去核查异常数据产生的原因。


### 数据核查对象多样化 {#数据核查对象多样化}

在大数据时代，几乎所有的人、事、物都能够数据化，进而被分析。

我们将数据核查的对象可以划分为结构化数据和非结构化数据，结构化数据即为能够用数据或者统一结构加以表示的信息，如信息系统中的各种报表。而非结构化数据，就是一些无法用数字或统一的结构表示，如合同、发票、邮件、网页等。

IT审计数据核查的对象不再局限于财务账、业务报表等结构化数据，借助于新的 IT 技术，我们可以将数据核查的范围延伸到非结构化的数据。

{{< figure src="/ox-hugo/2022-09-18_15-16-38_screenshot.png" >}}

如上图所示，审计一家航运企业，以前我们只能通过手工抽样查询船舶定位位置与业务系统中的班期表核对，验证航行的真实性。现在我们可以利用 Python 爬虫技术，批量解析网页中船舶经纬度信息和出发地、目的地，全量核对。

{{< figure src="/ox-hugo/2022-09-18_15-16-49_screenshot.png" >}}

如上图所示，借助于 OCR 技术，我们可以将非结构化的发票图片文件识别成结构化数据，从而实现发票的全量核查。

当然，我们还可以将数据划分为财务数据、业务数据、日志数据三种类型，财务审计在做数据核查时更多核查的是财务数据。而 IT 审计核查的对象会延伸到业务数据和日志数据。

从企业舞弊造假成本来说，=财务数据&lt;业务数据&lt;日志数据=，我们更倾向于通过日志数据、业务数据的核查来验证财务数据的真实性、准确性、完整性。

{{< figure src="/ox-hugo/2022-09-18_15-16-58_screenshot.png" >}}

如上图所示，审计一家制造型企业，我们获取了公司 ERP 系统的操作日志，按天对作业频率进行分析，检查作业频率异常偏高的情况，以排查是否存在舞弊迹象。由于操作日志真实反映了人员的所有系统操作，其数据的可信度相比财务数据更高，能更好地应对舞弊欺诈行为。

总之， IT 审计的数据核查的来源具有多样化的特点。


## 数据核查的方法 {#数据核查的方法}

IT审计数据核查需要将 IT 技术与审计方法相结合。在信息技术飞速发展的浪潮下，我们需要拥抱新技术、新思想、新变革，同时对我们的审计思路、审计模式进行创新。

审计一家游戏企业，玩家通过充值获得游戏币，游戏币可以在商城中购买游戏道具，购买的道具可以自己使用也可以赠送他人。在审计过程中，我们发现一些账号的充值金额异常大，我们利用 Neo4j 图数据库将所有道具的赠送关系进行网络分析：

{{< figure src="/ox-hugo/2022-09-18_15-17-07_screenshot.png" >}}

我们发现消费金额前 25 名的异常账号，其中就有 19 个账号相互之间有赠送行为，形成了网络。通过进一步审计程序，我们发现其中一些账号是淘宝店家，他们通过从价格更低的渠道充值后，以"赠送"的方式卖给游戏玩家，因此其充值金额较大，且存在大量赠送行为。

利用 Neo4j 、Gephi、 NetworkX 等工具，我们可以轻松地进行复杂网络关系分析，挖掘出数据背后的关联关系，这是新技术为我们数据核查带来了新的手段、新的方法。

但 IT 技术仅仅是一种工具，我们在做数据核查时，更多的需要和我们的审计方法论结合、和生活常识结合、和行业经验结合、和统计学知识结合。

例如， IPO 的电商企业的数据核查要求我们 IT 审计对是否存在刷单行为进行分析，从数据分析的工具上讲，我们使用 SQL 就能进行分析，但我们从什么维度去分析能发现是否存在刷单行为呢？

其实我觉得更好的方法是从生活常识入手，从行业经验入手，我们可以去找参与过刷单朋友，询问他们是如何刷单的，了解其特点，然后再设计数据分析的维度。

例如，我向朋友了解到有的刷单方法是找普通的人去购买，发货的时候只发一个空盒子或者价值较小的重量较轻的东西，完成订单后，再通过微信红包的方式返钱给他。

针对这种刷单方式，我们就可以利用“发货重量轻“的特征去筛选出这些异常订单。我们可以根据商品 SKU 的重量信息，计算出系统里一个订单的重量，再去和物流公司发货时称重重量核对，从而检测出重量偏离较大的异常订单。

当然，这只是一个举例，通过这个例子，我想说明在 IT 审计数据核查过程中分析的思路很多时候比技术手段更加重要。

我们正处在信息爆炸、技术变革的时代，我们应该学习新的 IT 技术，积极探索新的审计方法、审计思路，通过深入挖掘数据背后的价值，提高我们的审计质量、审计效率。

