一份审计报告,保质期有多长?

今年被盗的项目方里,有不少都审计过,其中一些还审计过多次。这不代表审计没有价值,只说明审计能回答的问题,比大多数人以为的要窄得多。

一份审计报告描述的是某一天、某个团队看过的某个版本。而合约会升级,权限会变更,项目依赖的预言机和跨链桥会变,新的攻击手法每周都在出现。报告交付的那一刻,它就开始过期了。

更麻烦的是那些几年前部署、当年顺利通过审计的旧合约,正在被自动化工具重新批量扫描。一个上线多年的合约,深层漏洞可能在十几分钟内就被找出来——Balancer、Yearn 这类正式运行数年都没被发现的深层漏洞,就是这么被翻出来的。

Gate 特别策划的《大门安全课》第三期,邀请 Web3 安全服务商 GoPlus Security 与 Gate 安全团队,从安全服务商和交易平台两个视角聊了聊审计和漏洞排查:为什么审计过的项目还会出事,一份报告该怎么读,平台在上币前后分别做哪些检查,以及普通用户怎样在签名之前做一轮自查。

GoPlus Security 正在构建 Web3 和 AI 的去中心化安全层,自 2022 年以来日 API 调用量达到 3000 万次,为用户防止了近千亿美元的潜在损失。Gate 成立于 2013 年,是行业内首家推出 100% 储备金证明的交易平台,目前服务全球超过 6000 万用户。

---

一、审计失效的四个结构性原因

GoPlus 合伙人 Adam 把传统合约审计的问题归结为四点:

快照式检查。 审计本质上是审计工程师在某个时间点的半人工检查,效果依赖工具质量、个人水平、工作状态。但合约代码会升级、管理权限会变更、参数配置会调整,一次性报告交付的那一刻起就在「过期」。

无法预判未来。 新漏洞类型、新攻击手法层出不穷,历史审计覆盖不了未来风险。

外部依赖失控。 项目普遍依赖预言机、跨链桥、第三方协议,这些依赖项的风险变化不在传统审计范围内。

旧合约集中暴雷。 数年前部署、当年「审计过」的合约,正被自动化工具批量重新挖出漏洞。

至于权限滥用,它更多发生在运营阶段而非合约代码本身:Owner 权限过大(可随意增发、拉黑名单、暂停交易)、管理员私钥泄露、多签管理不当、恶意提案和治理攻击……审计报告里即使标注了权限风险,之后谁来盯、操作是否安全合理,报告都回答不了。

> Gate 安全团队补了一句更直白的话:审计能告诉用户代码能做什么,但告诉不了用户项目方打算做什么。

一个合约可以在技术上完全合规,所有者权限的设计也在正常范围内,但项目方照样可以挑一个时间点把这些权限用起来:改交易规则、开黑名单、增发代币。这些动作在代码层面全是合法的,审计报告也不会标成漏洞,因为它们本来就是设计的一部分。

所以技术审计之外还得有一层约束。Gate 的做法是在上币环节做严格筛选,同时和项目方签署不作恶声明,再对履约情况做监督。已上架的项目会做定期安全审计,并用链上事件监控跟踪合约状态。

---

二、从「一次性审计」到「全生命周期持续安全」

加密行业有个结构特征:很大一部分业务,尤其是 DeFi,运作模式接近模块化金融。各类平台由共享组件搭建——合约、软件库、钱包、价格预言机、跨链桥、连接服务商、网页界面,以及用于推送更新的系统。

所以除了自己的合约安不安全,更要问的是依赖的每一个环节是否依然可靠。上游某个组件出故障,损失会沿着链条向下传导。回头看那些重大攻击,问题往往出在比协议逻辑更早的环节:供应商、开发工具、软件触达用户的方式,或者用户批准转账的流程。

Adam 的判断是,黑客利用自动化工具高效挖掘漏洞的攻击范式已经成型并快速蔓延,攻击从「专家手工研究」变成了「流水线」。如果行业思维还停留在「上线前找审计公司出一份报告」,或者发现风险再「亡羊补牢」,就像用弓箭对抗机关枪。

行业层面的调整方向,是从「一次性审计」升级为「全生命周期持续安全」。以 GoPlus DeepScan 的「合约安全三件套」为例,这是一个可落地的闭环:

  • 上线前:Token 安全自查,几分钟快速自检貔貅盘/蜜罐、恶意增发、黑名单、异常交易税、Owner 权限等后门风险

  • 上线时:AI 合约审计,深度分析源码、权限管理与业务逻辑,扫描语法层和业务逻辑层漏洞,交付结构化报告

  • 上线后:持续安全监控与定期体检,实时跟踪新增漏洞情报、攻击事件与外部依赖风险,常态化预警


---

三、攻击在流水线化,但防御方有三个结构性优势

这两年漏洞挖掘方式的变化,Adam 归结为三个原因:

1. 自动化工具大幅降低了挖洞门槛,过去需要顶级安全研究员数周的工作,现在攻击流水线几分钟就能跑完
2. 链上沉淀了海量「当年审计过」的旧合约,对攻击者来说是一座储量巨大的金矿
3. 攻击是单向变现,找到「一个」漏洞就够了,防御者却要守住「所有」漏洞

但防御方并非没有胜算。Adam 提出了三个攻击方不具备的优势:

  • 先手优势:防御者可以在上线前、运营中无限次复查,攻击者只能赌防御者没做过复查

  • 成本优势:AI 审计按次或包年收费,成本低到可以常态化、全量化

  • 知识复利:安全知识库随每一起新攻击事件持续进化,防御系统越用越强


黑客挖走这些钱用了几分钟,防御方找出同样的漏洞其实也只用了几分钟。区别只在于,项目方有没有在黑客之前把工具正确地用上。

链上自托管 vs 交易所托管:两套完全不同的安全模型

「谁在保护你的资产」和「你面对的风险类型」在这两种模式下截然不同:

| 维度 | 链上自托管 | 交易所托管 |
|------|-----------|-----------|
| 安全公式 | 私钥安全 + 合约安全 | 平台安全 + 账户安全 |
| 责任主体 | 你是唯一责任人,私钥丢失没有「客服」可申诉 | 私钥由平台管理(冷热钱包分离、多签、风控) |
| 主要风险 | 授权漏洞、钓鱼签名、貔貅盘 | 平台基建风险 + 个人账户安全习惯 |
| 核心优势 | 资产不依赖任何平台信用 | 技术安全外包给交易所 |

简单说,链上考验你的 Web3 安全意识,交易所考验平台基建和你的账户安全习惯。

---

四、交易平台自己怎么做安全

Gate 安全团队介绍了几个层面的动作。

对已上架项目:定期安全审计加链上事件监控,持续跟踪合约有没有升级、权限有没有变更、是否出现异常大额操作。一份上币时的检查结论,和审计报告一样有保质期。用户也可以随时查询某个合约当前的风险项。

对平台自身:安全漏洞赏金计划长期开放,全球安全研究人员可以通过 sec@gate.com、工单、HackenProof 平台三个渠道提交问题。「我们要求项目方接受检查,自己这边也得接受检查,这件事不应该只有单向的要求。」

对用户账户,两个工具体系值得展开:

Gate 保险箱采用 MPC 加 2-of-3 签名。私钥被拆成三片,用户设备、Gate 和一家独立第三方各拿一片,完整私钥在任何环节都不会被拼出来,Gate 和第三方谁都没法单独发起交易。所有转出还要再等 48 小时才到账——这 48 小时是留给用户的安全缓冲期,期间随时可以冻结。大部分被盗案例里,用户察觉到不对劲都比攻击者晚一步,而链上转账一旦出去就撤不回来,这 48 小时就是那道补救窗口。

账户安全保障计划基于安全分。登录验证、身份验证器、双重验证、通行密钥、交易限额、提现限额这些设置原本散在各个页面,安全分把它们折成一个 0 到 100 的分数,开了哪些、还差哪些,打开就能看到。分数达到 80 且账户状态正常即可开通保障计划:保障生效期间,账户资产如果被未经授权转走,符合规则可申请补偿,单次事件额度目前最高 20 万美元,接下来会根据 VIP 等级分档最高提升至 100 万美元。申请需在事件发生后 45 天内通过「我的保障」联系安全客服,材料包括警方报案记录、资产转出记录等。

---

五、一份能指导行动的审计报告长什么样

Adam 认为,一份不是只能存档的报告,至少包含四个要素:

1. 安全评分——用来做快速筛选,不是最终结论。项目方拿它做内部量化锚点,交易所用于上币初筛,普通用户当作入口:低分直接避雷,高分再看关键发现
2. 关键发现——用来做决策。哪些问题是 blocking 级别、必须先修才能上线,非技术背景的管理者读懂这部分就够了
3. 问题详情——用来定位问题。漏洞位置精确到合约、函数、代码行,附攻击路径描述与根因分析,要给出可复现的执行路径与触发条件,而不只是一份问题清单
4. 修复建议——用来闭环。必须具体到代码层面、可执行,修复后重新扫描回归验证

Gate 安全团队从合约审计功能的实践补充了三点:

最容易被省略的,恰恰是最前面的两项。 审计目标与限制、范围说明,决定了读者会不会把整份报告读歪。限制没写清楚,读者会默认它什么都覆盖了;范围没写清楚,读者分不出它审的只是主合约,还是连资金池、策略合约、预言机和外部依赖都一起审了。很多宣传只写一句「已通过审计」,不说审了什么,这种说法基本没有信息量。

把单独看不构成漏洞的风险放在一起看。 比如一份报告里常见的组合:所有者可以把地址拉进黑名单冻结资产,交易对可以被重置导致普通用户转不了账,最低持仓要求会让用户没法完整卖出,单一所有者还能随时改动多项关键规则。这四条分开看都属于正常设计,合起来就意味着合约控制权高度集中在一个人手里。

知道报告是怎么生成的,才能判断它的可靠性边界。 Gate 的合约审计分三步:先做静态分析,查权限控制、重入、价格操纵、闪电贷和逻辑一致性;再做业务场景建模,提取核心交互场景验证业务路径和边界条件;最后是语义化验证,对关键业务路径逐项核查,确认前两步识别的风险是否真的成立。第三步主要是为了压低误报率——一份满是误报的报告,用户很快会失去耐心,最后干脆跳过整个检查环节。

---

六、普通用户现在就能做的加固动作

Adam 给出了六条建议:

1. 交易前核查 Token 安全:识别貔貅盘/蜜罐、恶意增发、黑名单、异常交易税、Owner 权限过大等后门风险
2. 定期清理合约授权:撤销不再使用的 DApp 的 Approve,尤其是无限额授权,很多被盗源于「你曾经授权过的合约」出问题
3. 账户层加固:强密码加 2FA;API Key 最小权限管理,绝不给不可信工具开放提币权限
4. 防钓鱼成为肌肉记忆:核对域名再签名、不点私信链接、对「空投/客服/质押高收益」默认不相信
5. 资产按用途分层存放:热钱包只放少量需使用资金,大额资产用硬件钱包
6. 关注项目的「安全态度」而非「审计报告」:有没有持续审计、安全监控机制,比多年前的审计报告更重要

Gate 安全团队把其中几条变成了可以马上动手的操作:

交易前核查 Token,可以直接用 Gate AI 的合约审计功能。提交合约地址,几分钟拿到报告,重点看四项:所有者权限、黑名单与交易限制、铸造权限、转账税。这四项里只要有一项标红,就该停下来了。

账户加固,先把安全分做到 80 分以上。资金密码、身份验证器、双重验证、防钓鱼码、通行密钥、提现日限额、出金方式管理,按提示一项项点完。安全分最大的用处是把散在各处的设置变成一份排好顺序的清单,不用自己判断先做哪一项。

防钓鱼有两个现成工具。收到自称来自 Gate 的消息,先去官方验证渠道查域名或邮箱;Gate 发出的所有邮件都会带上用户自己设的防钓鱼码,没有这串码的一律是假的。

签名前看清楚授权额度。合约本身没问题,不代表页面让你签的那笔东西没问题。正常的 DApp 完全可以只申请这一笔交易需要的额度,上来就要无限额度,这件事本身就值得停一下。如果弹窗里只有一串看不懂的字符,拒绝总比先签了再说安全。

---

安全是动态的,不是一张证书

审计之后上线只是安全工作的起点。对项目方来说,上线之后的持续监控比那份报告本身更重要;对交易平台来说,上架只是审核的开始;对普通用户来说,签名之前那几分钟的自查,是成本最低、也最容易被跳过的一步。

安全从来没有一劳永逸的认证。各方都多走一步,攻防两端的天平才会向「守门员」这一侧倾斜。