首先各大科技公司像Facebook, Google, Microsoft等会针对他们自己的inhouse安全团队和自己公司的产品线部署bounty program,其次从2015年左右开始出现了以HackerOne和Bugcrowd为代表的漏洞赏金第三方平台,目前这两家领先的安全公司依靠发放bounty抽取提成作为主营收入年收入分别可以达到将近5000万美金和2000万美金。而在区块链世界里赏金是一个安全圈经常讨论的更有意思的话题,主要原因是区块链代码开源其实让黑客攻击和提升攻击策略的成本更加低廉,再加上crypto世界非常提倡集群工作, 创作者和所有权经济开放性贡献模式,这一切让一个更开放的白帽经济模式更加有价值。 什么是漏洞悬赏和审计比赛?我们为什么需要它们? 安全是一个攻击方和防守方动态博弈的过程,就像计算机安全专家和密码学家Bruce Schneier所说的 “安全是一个过程,而非一个产品。它是一种思维方式,必须贯穿软件开发过程的方方面面。” 在区块链世界这个一切代码都开源、透明的黑暗森林里,一个想长期生存的区块链项目方对自己产品/合约的安全性必然有着永恒的需求,大部分的区块链产品都或多或少有金融属性,金融中最重要的资产就是信任,而用户的信任只有一次。 那传统审计的不足之处和问题在哪呢?社区驱动的漏洞悬赏和审计比赛又能有什么优势补足这些问题? 使用审计服务的开发人员经常发现: 哪怕购买了第三方审计公司的服务,代码经过了审计还是出现了问题,虽然这些问题原因各不相同(技术的非技术的),但最终说明依赖于一家审计公司似乎也并不完全靠谱,代码审计质量还是取决于审计者的水平,而客户往往对“谁更好”缺乏辨别能力。 而赏金平台和审计竞赛作为一个更开放的“沙盒”,项目代码可以让白帽们随意审查,背景不限(有可能有来自于专业审计公司的人员,有可能是自由职业的安全分析者),武器库不限,客户要做的只是设置合理的奖金,在白帽找到问题的时候支付他们的贡献。 通常客户会先提交他们需要被白帽审查代码,定义漏洞的安全等级(通常与可能造成的经济损失相关,越容易直接导致经济损失的漏洞严重等级越高)、赏金的预算、测试的代码范围甚至测试步骤。 市场规模有多大? 赏金平台和审计竞赛的商业模式通常是从客户支付的赏金中或者设置的总奖金池子中抽取一部分比例作为平台的服务费。对代码安全审计有需求的客户(项目方)会根据自身需求(哪些代码需要被审计覆盖、如何定义漏洞严重等级以及愿意支付多少赏金)在赏金平台上公布自己的计划,而白帽们会根据项目方的需求寻找漏洞,一旦漏洞被白帽找出并且满足项目方的需求,赏金就会被发放给白帽们,而赏金平台则会从中抽成作为服务费。 在Web2传统网络安全领域,漏洞赏金平台也是一个比较年轻的方向(2012之后出现),目前最大的漏洞赏金平台是HackerOne和Bugcrowd。2022年,HackerOne的年收入达到了5800万美金,公司估值达到5亿美金左右,历史累计支付赏金2.3亿美金(2021,2022年两年支付赏金1.5亿美金),发现超过65,000个软件漏洞,拥有注册黑客数量超过100万,每月使用HackerOne服务的客户数量超过1000家。而其竞争对手Bugcrowd则在2022年收入超过2000万美金。 在Web3安全领域,2022年所有的web3漏洞赏金和审计竞赛平台总共发放了5000万美金的赏金给白帽黑客,而这类平台平均的收费水平在10%~30%左右,因此保守估计目前的市场规模在$5m~$15m左右,还是一个非常新兴的市场。 另一个有意思的事情是有越来越多的客户愿意直接使用这种去中心化安全社区提供的代码审计服务,最有名的例子就是Opensea在推出他们的新平台Seaport之前并没有像往常直接找第三方审计公司,而是选择了目前最大的去中心化审计竞赛平台Code4Rena并设置了100万美金的奖金池,在传统安全审计市场日益内卷的今天(卷人力资源、卷技术工具、卷市场BD),去中心化的安全服务会不会是这个市场的重要增量呢?(目前市面有56家审计公司,头部的公司过去年收入在1000万美金~4000万美金,我觉得去中心化安全市场的想象空间非常大)。 漏洞赏金平台 vs 审计竞赛平台 虽然漏洞赏金平台在web2也有十年的发展史,但审计竞赛平台却是个web3 native的新鲜事物。审计竞赛服务的对象是那些即将上线产品或者某些新增功能的项目方,以去中心化社区的力量在特定时间(2个星期以上)帮他们完成审计服务,从这个角度来说审计竞赛将会给传统审计公司带来不小的商业威胁。 以下我从参与方式、奖励结构、测试覆盖范围三个方面展示这两种平台的区别: 参与方式 漏洞赏金平台(如 Immunefi) 上通常是开放式的项目,任何人都可以参时随与。参与者通常独立探索并报告漏洞,以换取奖励。如果有两个人发现了同样重复的漏洞,遵循先来后到原则,谁先提交了报告谁先拿走奖励。 社区驱动的审计竞赛平台(例如Code4rena、Sherlock)通常有时间限制,与参者在特定时间范围内竞争找寻并报告漏洞。相比赏金平台会有一部分团队合作(比如每个项目会有明确分配Lead Senior Auditor和Lead Judge最后把所有的审计结果审核、规整总结成审计报告提交给客户, 而这两个领导者也遵循社区选举、比赛竞争的去中心化原则)。另外在规定的时间内如果两个审计竞争者发现重复的漏洞两人都可以获得奖励。 奖励结构 两者实际发放的奖励都会主要考虑发现漏洞的严重程度。 唯一不同的是像Code4Rena这样社区驱动的审计竞赛平台每个项目的奖金池会有一部分(5%~10%)固定分配给Lead Senior Auditor和Lead Judge,因为他们其实承担了传统审计公司项目负责人的角色。 另一个有意思的点是漏洞赏金平台上项目方有时候会放置项目代币作为奖励,但是我也看到社区中有些白帽黑客更喜欢拿到USDC, USDT这种稳定币而不是价格波动的项目代币。 范围和重点 漏洞赏金平台项目通常范围广泛,而审计竞赛上的项目通常具更有专注的范围,针对软件的特定功能或方面,同时需要白帽们集中精力在较短的时间内完成工作。 专注于审计竞赛的项目 Code4Rena - 一家类似电子竞技的社区驱动审计竞赛平台 Code4Rena有三种角色类型: 1. 审计员(Wardens)查审代码。从专业的安全工程师到试图获得更多经验的新手开发人员,任何人都可以注册成为审计员参加公开审的计竞赛。 2. 评委(Judges)通常是C4社区中最优秀的工程师。他们决定漏洞的严重程度、有效性和质量,并评估审计的员表现。 3. 赞助商(Sponsors)是项目方,如Opensea、Blur、ENS、Chainlink等,他们创建奖金池以吸引审计员审计他们项目的代码。赞助商还可以选择举办限仅邀请的私人竞赛以提高隐私性。 最有趣的一点是Code4Rena正在建立的文化:鼓励合作和团队合作。与传统的漏洞悬赏计划不同,Code4Rena向报告有效漏洞的所有审计员支付报酬使即,该漏洞已经被报告。过这种鼓方法励审计员之间的健康竞争,因为他们有动力寻找高严重性和常见的漏洞。在这个平台上,一些审计员组会成临时团队共同寻找漏洞。 商业模式: 任何项目可以到Code4rena开启一个审计竞赛program并提供USDC或ETH设立基础奖池(通常奖池规模在$40,000 ~ $100,000), Code4rena会从基础奖池中收取20%作为平台提供组织竞赛、提供评审、整理审核产出报告结果的服务收入。项目方还可以在基础奖池之上提供项目代币以设置额外奖池,Code4rena会从这部分额外奖池中收取40%费用。 Sherlock - 有智能合约保险保障的社区驱动审计 与 Code4rena 类似,Sherlock 也有审计员、赞助商和评委等角色,Sherlock 的独特之处在于平台提供的保险服务。任何人可以投资 Sherlock 平台上的保险池,投资者将 USDC 存入保险池,协议客户可以购买服务对冲智能合约被 hack 的风险。保险投资者的收入来源包括:来自协议客户支付的保费 + 将保险池资金存入其他 DeFi 池子(Aave、Compound等)所获得的利息 + Sherlock 代币激励。但是投资者在获得收益的同时承担偿还保单的风险。 另一个和Code4rena不太一样的点在于平台提供的审计服务收益的分配机制。与Code4rena相比,Sherlock有规则允许首席高级安全审计员和首评席委从奖金池中获得固定的金额(5%~10%),以适当补偿和激励专职高级审计员。此外,还有选择和竞争的制度来选拔领导角色。 如何构建黑客社区?Web3 白帽们最关心的是什么? 在我们观察了不同的去中心化安全社区(ImmuneFi, Hats Finance, Code4Rena, Sherlock等)以及和一些安全创业者聊过,我们认为所有的去中心化平台致力做的事情就是:构建一个更健康、高效的沟通和协作平台,赏金平台像是一个在Hackers和项目之间的marketplace,他们既要从hacker角度出发考虑他们的需求(如下表),同时也要从项目角度考虑项目方最关心的(审计质量)。 Source: 《Bug Hunters’ Perspectives on the Challenges and Benefits of the Bug Bounty Ecosystem》 除了一些常见的需求外,在Immunefi白帽社区(我看到最热闹的白帽discord社区)我还看到了一些有意思的话题。 比如: 有一位叫Rappie的白帽想公开一些他/她之前发现的项目漏洞,咨询有什么社区规则需要遵守。(1. 只公开已经修复的漏洞。2. 确保任何公开的信息对协议或其用户没有负面影响。保守机密信息例如:在他们修复了你的SQL注入漏洞后,不要发布他们完整数据库的信息。3.确保公开之前需要私信给项目团队)。 有一个叫Noam Yakov的白帽则对一个赏金项目的定义产生疑问(这是常常发生的,因为通常只有发现比较严重的安全漏洞才能拿到赏金,项目方如何定义好漏洞的安全等级是白帽们非常关心的事情,社区也经常听到此类纠纷)。他在Uniwhales的赏金项目中对他们把MEV影响定义为严重的安全漏洞产生疑惑,而最终大家的讨论认为这类描述并不试用于所有的MEV情况,比如对于一些toxic order flow能够把协议池子资产抽干的情况肯定算是严重安全事故(因此定义一套安全等级framework往往不够,通常还需要有平台中的仲裁员类似的角色介入到实际不同的案例中)。 而对于一个非常有意思的话题“你们对类似Immunefi这种赏金平台的诉求和期待是什么?” 一个叫ckksec的白帽给了他的回答:1)帮助他们这些匿名的加密白帽的劳动收入做一些法律上的澄清,比如开发票。2)平台不仅应该对白帽们有评分系统,还应该对项目的质量进行评分因为白帽们往往需要花时间分辨项目质量的好坏。3)对于愿意开放自己proflie的白帽们平台可以展示他们的工作流,同时平台也最好能更透明的展示项目方收到的安全分析报告信息。 哪些工具可以为白帽们提供帮助? 随着 LLMs GPT的大火,我最近频繁听到人们在讨论安全审计是否也能被AI替代这类话题。我聊过的经验丰富安全从业者普遍认为GPT很难直接取代人的智慧,一些低 hanging fruit(易于发现的问题)可能可以被语言模型检测出来,但是那些中高风险的问题仍然需要专家参与。比如据一位资深的安全专家反馈,对于类似数据分析, 动态分析这些更复杂测试需要人为提前具体结合协议实际业务逻辑进行安全分析测试并提前定义测试预期目标属性,最困难的部分是编写良好的属性和定义正确的测试领域。根据他们对GPT的实验,他们认为GPT在目前阶段做不到这一点完全替代人类。 当然目前也有比较乐观的结果显示LLM能够极大提升安全分析工具的分析效率并降低错报率: https://twitter.com/HatforceSec/status/1671758690808913922 https://www.researchgate.net/publication/371758506_Do_you_still_need_a_manual_smart_contract_audit。 关于这个话题我们从另一个有意思的非技术角度去思考,安全攻击者和防御者之间是动态的博弈,魔高一尺道高一丈,AI会不会相对也能给安全攻击者带来帮助呢? 安全以人为本 人们会习惯性的认为软件是冰冷、机械、逻辑的事物,提升系统安全只需要提升分析技术、系统防御水平。但人们缺乏从经济激励、人性层面出发思考安全问题,在开源代码的黑暗森林里,我们需要一套更符合理性人假设的分配体系建设正向良性的经济激励吸引更多愿意长期为区块链系统安全贡献智慧的人们加入。 目前的传统安全审计市场格局稳定,品牌声誉是这个领域的公司最重要的无形资产,随着时间推移,头部的安全品牌的影响力和客户的信任度稳步增强,但是传统安全审计也有它们自身的问题(商业模式较单一依赖于人力难以规模化增长,在增长和审计质量之间头部企业需要做平衡,有一些企业已经碰到这样的瓶颈甚至影响了品牌的价值)。 社区驱动的安全审计竞赛是一个创新的商业模式,目前两大平台的客户量已经超过300个逐步找到了PMF,而赏金平台对安全生命周期是一个良好的补充,尽管这些去中心化的平台还没有找到特别有效的代币模式,但我们非常看好这个市场未来出现规模化的增长(因为群体智慧非常契合安全市场里面攻防博弈的场景)。 社区驱动的的审计平台会给中心化的审计公司带来威胁么?我们认为他们会是良性相互竞争和互补的关系,短期内看当Code4rena这样的平台形成一定的网络效应并且拿出了不错的track record(审计过项目被hack比例低),确实可能会给一些中尾部的中心化公司带来一定的竞争压力,但是长期可能这也会倒逼中心化审计平台与社区驱动的平台形成一些商业合作,因为这也能拓宽中心化安全审计平台的客户群体并提升审计质量(有点像原来web2大公司内部独立运营的安全赏金项目后来也和第三方平台HackerOne等形成合作的逻辑)。 尽管社区驱动类型的安全平台致力的方向就是更加DAO化(Forta其实我们也能放入这个范畴),但是在目前项目实际运行中还是会遇到诸如:如何让工作流和经济分配流程更加透明公开、如何权衡项目方对于隐私和安全的考量、如何更清晰定义团队合作和个人付出的关系、如何在出现利益纠纷的时候以更相对公平专业的角度解决问题等等,这些都是安全DAO需要面对的挑战。 来源:金色财经lg...