SH

Soloharness

概念 · 辨析 · Agent

← 返回概念辨析

Concept Contrast Fable

可审计性和审计证据,一个是系统让人查的结构,一个是查出来的那张纸条

可审计性是指一个系统的设计本身——日志结构、记录策略、数据保留和查询能力——是否支撑独立审查。审计证据是执行一次审计后采集到的具体记录、日志和文档。可审计性差意味着系统根本产不出证据;没有审计证据意味着某次审计没有找到想要的东西——这两件事病因不同。

寓言

账房有两个人要查,一个查账册是不是随便能翻,一个查往年有没有假账

扬州盐商总会下辖十二家分号,每年腊月由总会的稽查老爷带队查账。稽查老爷上任三年后发现一件怪事:有一半的分号查出来的问题都差不多——账册不全、记录缺日期、银钱往来没有批注——但另一半分号查出来的问题五花八门,什么都可能有。他花了半年时间调查原因,得出一个结论:不是分号的人贪墨程度不同,是分号的记账制度质量不同。

他把十二家分号的记账制度做了摸底。好的分号有三大纪律:每笔进出必须有日期和经办人章、每七天汇总一次对账、账册锁在带铅封的铁柜里定期移送总会。差的分号根本没有制度——今天记在毛边纸上,明天记在木牍上,经手人只有一个潦草的姓。稽查老爷的结论是:差的那些分号不是查不出问题,是根本没东西可查。

可审计性描述的就是那三大纪律。它不等同于审计本身,也不等同于审计结果,关键在于系统是否被设计成「能经得起独立审查」。有日期、有签章、有按期的对账记录——这些是系统的设计属性。没有这些属性,你把全世界最好的审计师叫来也查不出结果,因为系统没有给他留下足够的痕迹。

审计证据是每次审计后采集到的具体内容。这一年稽查老爷查了扬州东号,翻出了去年三月一笔数额对不上的盐引交易——这就是一条审计证据。这条证据的存在依赖两个前提:东号的记账制度(可审计性)规定每条盐引交易必须记录交易双方、数量、日期和价格。东号的账房实际执行了这条规定,留下了可以核查的痕迹。

盐商总会后来把稽查流程分了两层。第一层每年七月份做「制度审」——不翻账本,只检查各分号的记账制度是否就绪:记录规范、保存期限、经手人追溯、凭证防篡改。这一层审的是可审计性。第二层腊月做「账目审」——翻账本、找异常、追流向,生成的稽查报告就是当年的审计证据。如果七月份发现某家分号的制度就绪度为低,稽查老爷会提前预警:腊月你去查这家,很可能得不到充分的审计证据。

在技术系统里,可审计性和审计证据的关系一模一样。可审计性决定了你能不能配置好日志级别、事件 schema 是否包含审计字段、日志是否不可篡改、保留期够不够覆盖合规要求。审计证据是实际查询日志后得到的那一串具体记录——某用户在某时间执行了某操作,来源 IP 是某地址。

一个典型反例:系统上线时为了节省存储把日志级别设成 ERROR ONLY,两年后客户要求提供访问记录的审计证据。运维团队查出来的结果是零——不是因为不存在访问,是因为 DEBUG 和 INFO 级别的访问记录根本没被写入日志。这不是审计证据缺失,是系统在设计时就没有考虑可审计性——可用性很高,可审性为零。

可审计性

系统或流程在被设计时内置的支持独立审查的结构属性,包括记录完整性、不可篡改性、可追溯性和保留策略。回答「这个系统从设计上能不能经得起审计」的问题。

审计证据

在具体的一次审计过程中采集到的记录、日志、文档或其他可验证的信息片段。它是可审计性加上实际审计操作后的产物,回答「这次审计查到了什么」的问题。

故事对应

  • 十二家分号查出的问题分布不均:不是贪墨程度不同,是记账制度质量不同
  • 好分号的三大纪律:可审计性的三个设计属性——完整记录、定期对账、防篡改存储
  • 稽查老爷搜底验制度质量:主动检查可审计性而非被动等证据
  • 扬州东号的盐引交易异常记录:一条具体的审计证据
  • 证据存在的两个前提:制度规定(可审计性)和执行记录(证据产生)
  • 总会两层稽查流程:七月制度审(可审计性检查)→ 腊月账目审(证据采集)
  • ERROR ONLY 日志的悲剧:可用性高但可审性为零的典型系统设计反例

落到系统审计能力设计和合规审查准备

接客户审计前不要等到审计通知来了才开始翻日志——先做一次自查判断系统的可审计性。检查清单:日志级别是否覆盖了所有关键操作?日志是否有防篡改机制?关键字段(用户 ID、操作类型、时间戳、来源 IP、目标资源)是否都出现在日志 schema 里?保留期是否满足合规和合同要求?可审计性是系统上线前的设计任务,不是审计前的应急任务。如果可审计性在架构阶段被忽略,后面补的成本通常是新建一套旁路审计系统——时间和预算都是原方案的五倍起。