来源:a16z
编译:Katie辜,星球日报
通常,黑客会发现并利用软件开发整个流程链条中的缺陷,从而打破区块链项目的安全屏障。如果能够提前了解到相关经验,我相信安全事故会少很多。
本文概述了Web3开发人员和安全团队在设计、开发并维护智能合约时必须考虑的安全要素,覆盖了从威胁建模到应急响应准备的整个周期。
开发一款安全的软件包括以下五个阶段:
设计:开发人员描述系统所需的功能和操作,包括重要的基准和固定属性;
开发:开发人员编写系统代码;
测试和评审:开发人员将所有模块聚集在一个测试环境中,并评估它们的正确性、规模和其他因素;
部署:开发人员将系统投入生产;
维护:开发人员评估和修改系统,确保其执行预期功能。
下图将需要考虑的安全因素与上述阶段对应起来。
a16z自建媒体网站Future停更两月面临关闭,主要编辑人员已离职:12月2日消息,著名风投a16z自建媒体网站Future面临关闭,主要编辑人员都已经离职,包括执行主编(前CNN编辑)Maggie Leung、4年前加入a16z的总编辑Amelia Salyers、密码学编辑(前Decrypt资深编辑)Jeff Benson以及生物学编辑Nicole Neuman。
Future于2021年6月15日上线,同时发布20多篇文章,主题从创造者经济到加密货币颠覆好莱坞的潜力。其最新文章《Why Applying Machine Learning to Biology is Hard – But Worth It》发表时间为2022年10月5日,已有将近2月未发表任何文章。据Similar Web估计,Future网站今年7月的访问量约为130万,到9月则下降至42.3万。[2022/12/2 21:18:45]
需要注意的是,软件开发的生命周期并不一定总是遵循线性的路径:各类别可能重叠或扩展到其他阶段。对于每个版本,步骤可能会重复。有些安全任务可能需要贯彻执行。
Web3游戏发行商Carry1st完成2000万美元融资,a16z领投:1月19日消息,Web3 和社交游戏发行商 Carry1st 在 A 轮融资中筹集了 2000 万美元,以进一步扩大在非洲的产品开发,本轮投资由硅谷风险投资公司 Andreessen Horowitz (A16z)领头, Avenir 和谷歌母公司 Alphabet 参投,Carry1st 的现有支持者,包括 Riot Games、Konvoy Ventures、Raine Ventures 和 TTV Capital 继续支持,一些著名的个人投资者也参与其中,包括Nas和Chipper Cash、Sky Mavis 和Yield Guild Games的创始人。
Carry1st 将利用这笔现金注入来扩大其内容组合,壮大内部开发团队,并引领新的增长战略以吸引数千万新用户。Carry1st 表示,它提供了一个全栈发布解决方案,为其合作伙伴处理用户获取、现场运营、社区管理和货币化。其增长战略的一个关键支柱是开发基础设施以支持“玩赚”(P2E)游戏,这使用户可以通过他们的游戏体验获利。(Cointelegraph)[2022/1/20 9:00:06]
上面描述的软件生命周期步骤和相应的安全考虑为促进智能合约安全性提供了基础。下面将从三个问题出发,进行更详细的研究。
Web3及加密通信协议XMTP完成2000万美元A轮融资,a16z领投,Coinbase Ventures等参投:9月1日,Web3及加密通信协议XMTP宣布完成2000万美元A轮融资,a16z领投,Coinbase Ventures、Not Boring Capial、SK Ventures、Offline Ventures、StarkWare、Anthony Pompliano、Anthony Sassano (The Daily Gwei)、Kain Warwick (Synthetix)、Kayvon Beykpour (Twitter)、Stani Kulechov (Aave)、Robert Leshner (Compound Labs)、Roham Gharegozlou (Dapper Labs)、Ryan Sean Adams (Bankless)、Ryan Selkis (Messari) 等基金与天使投资人参投。
据悉,这笔资金将用于扩充 XMTP 团队规模,并将帮助 XMTP 通过其独立协议和去中心化网络实现加密钱包间的通信。[2021/9/1 22:51:44]
1.设计阶段的智能合约安全考虑——考虑威胁建模和安全设计
哥伦比亚大学计算机科学系教授Tim Roughgarden加入a16z加密团队:2月26日消息,a16z合伙人Chris Dixon表示,哥伦比亚大学计算机科学系教授Tim Roughgarden作为研究合作伙伴,加入a16z加密团队。[2021/2/26 17:56:04]
内容:从项目开发生命周期初期就明确识别系统的潜在威胁,并确定其优先级是关键。智能合约开发人员应该识别在开发中要实现的所有安全控制,以及在测试、审计和监控中应该检查的威胁。所有安全假设,包括攻击者预期的复杂程度和经济手段,都应该在设计阶段明确定义和阐明。
原因:虽然对开发人员来说,只关注智能合约或协议的预期用途非常吸引人,但这唯一的焦点可能会给他们留下“盲点”,会被攻击者利用。
方法:遵循已知的威胁建模实践。如果一个开发团队没有内部的安全专家,那么它应该在设计阶段的早期就与安全顾问接触。在设计系统时要有“攻击者”的心态,并预先假定任何个人、机器或服务都有可能受到攻击的情况。
风投a16z:2017年ICO繁荣之后的高质量项目会推动第四个加密周期:硅谷顶级风投机构Andreessen Horowitz(a16z)发文称,加密行业已走过三个周期,加密周期的一个关键特征是每个周期都播下种子,这些种子随后会长出并驱动下一个周期。新项目最终激发更多人,并最终在下一个周期达到顶峰。例如,以太坊是在2013年周期中创建的,并成为推动2017年下一个周期的ICO繁荣的基础。展望未来,a16z预测, 2017年周期在许多领域催生了许多激动人心的项目,包括支付、金融、游戏、基础设施和Web应用程序。其中许多项目会在不久的将来启动,可能推动第四个加密周期。(Coindesk)[2020/5/18]
2.发展阶段的保安考虑——管理考虑和访问控制
内容:实施访问控制,限制对特权帐户和智能合约调用执行管理任务的特殊功能的能力。遵循“最小特权原则”——每个参与者应该只拥有所需的最小访问量。
原因:通过升级和治理流程维护协议,开发人员可以通过添加新功能、修补安全问题和解决不断变化的条件来改进协议。如果升级能力没有得到适当的控制,这可能会构成严重的安全漏洞。
方法:建立多重签名钱包或?DAO?合约,以透明的方式代表社区管理变更。变更应该经过彻底的审查过程,并设置一个时间锁定,以确保在治理攻击的情况下可以验证其正确性并回滚。确保在自行保管钱包或安全保管服务中可安全存储和访问特权密钥。
3.?考虑可重复使用的、经过实战测试的模板和集成
内容:尽可能利用现有的智能合约标准,并评估可能需要与现有协议进行的协议集成的安全性假设。
原因:使用现有的经过实战检验、社区审计的标准和实施降低安全风险方面的措施会有很大的帮助。评估协议集成的风险有助于开发安全检查,以防止对外部组件的攻击。
方法:导入经过安全审计的受信任合约库和接口。Web3的重点是开源使用、重用性和可组合性。确保在代码库中记录合约依赖项及其版本,尽可能减少代码占用。例如,导入大型项目的特定子模块,而不是导入所有内容。了解你的风险敞口,监控供应链攻击。使用官方接口调用外部协议,并确保考虑到潜在的集成风险。监控重复使用的合约的更新和安全披露。
4.测试和评审阶段的安全性考虑——考虑测试和文档
内容:创建清晰、全面的代码文档,并建立一个快速、彻底、易于运行的测试套件。在允许的情况下,在测试网或通过主网模拟建立测试环境,进行更深入的实验。
原因:写出对代码库预期行为的假设有助于确保威胁模型中的风险得到解决,并且用户和外部审计员可理解开发团队的意图。为代码创建测试套件有助于证明开发假设,并鼓励对威胁模型进行更深入的思考。这个测试套件应该包括在极端市场场景下检查项目代币经济的机制设计测试,以及单元测试和集成测试。
方法:实施已知的测试框架和安全检查器,如Hardhat、Mythril、Slither、Truffle等,它们提供不同的测试技术,如模糊化、属性检查,甚至正式验证。使用NatSpeccomments大范围记录代码,从而指定预期的副作用、参数和返回值。使用文档生成工具以及高级设计说明生成实时文档。
5.?考虑内部审查和安全审计
内容:花时间通过内部和外部代码检查来发现漏洞。
原因:从特性开发转向关注安全问题给了开发人员时间来发现潜在的模糊问题。外部审计在这方面尤其发挥作用,因为它们可以带来开发团队不具备的外部视角和专业知识。
方法:在项目开发的适当节点,冻结某功能,从而有时间进行内部审查,然后进行外部审计。这应该在任何实际部署和升级之前进行。
请查看?ConsenSys、Nassent、OpenZeppelin和TrailofBits的指南,这些指南为开发人员提供了考虑事项清单,包括时间安排,供任何准备审计的人参考。还要确保检查部署交易,确保它们使用经审核的代码版本并具有适当的参数,特别是在升级软件时。
6.?部署和维护阶段的安全考虑——激励白帽社区参与
内容:创建鼓励社区参与开源代码库安全改进的程序。一种方法便是创造漏洞奖励。另一种方法是鼓励社区开发协议监控检测机器人。
原因:开发团队可以从大范围的知识和经验中获益。这样的程序可以帮助激发对一个项目的热情,从本质上把社区和白帽黑客变成布道者。通过为黑客提供成为防御者的途径,它们还可以帮助将潜在的攻击者转变为安全资产。
方法:使用漏洞赏金平台激励熟练的黑客安全地披露漏洞。
注:文中的一些作者在Forta公司工作,该公司拥有一个网络,为去中心化创建高质量安全监控机器人提供了一个代币化激励结构。开发团队可以鼓励他们的协议社区利用传统和Web3原生的两种方法来激励漏洞奖励,并通过增强安全性来让参与者潜在地获利,实现双赢。
7.实时监控安全考虑
内容:实施监控智能合约和关键操作组件的系统,并根据已知的威胁模型向开发团队和社区报告可疑活动。
原因:问题的早期检测使团队能够快速响应漏洞,潜在地阻止或减轻任何损失。
方法:使用监控平台或分布式节点运行机器人,实时监控智能合约事件。根据需要为开发团队和更广泛的社区插入数据仪表板和警报通知。
8.意外和紧急情况响应操作的安全考虑
内容:使用能够在发生任何安全问题时立即做出响应的工具和流程。
原因:即使有最好的部署前保障措施,智能合约和关键组件仍有可能出现实时问题。配备专门的人员、清晰的流程和适当的自动化设备,确保可以快速调查事件,并尽快解决。
方法:为最坏的情况做准备,计划如何应对事件或紧急情况,并在最大程度上自动化响应能力。包括分配调查和响应的责任,这些人员可以通过分布式安全邮件列表、代码存储库中的指示或智能合约注册表就安全问题公开联系。根据协议的威胁模型,开发一组流程,其中可以包括场景演练和采取紧急行动所需的预期响应时间,可以考虑将自动化集成到紧急事件响应中。
安全考虑应该是成功开发的一个组成部分,而不只是事后考虑或补充。虽然这个框架分享了一些构建Web3协议和应用程序的快速指南,从而促进整个开发过程中的安全性,但没有任何简短的概述可以全方面讨论智能合约安全。缺乏内部安全专业知识的团队应该联系合格的Web3安全专家,他们可以指导并帮助应用于他们的特定情况。
请记住,安全性不是一个简单的问题。安全性将永远是一套永无止境、持续不断的最佳实践。我们仍然处于建立这些实践的初期阶段,现在是时候为所有开发人员协作创建和共享它们了。
标签:WEBTURWEB3ENTWEBN tokenOmniunit Cash Featuresweb3币有哪些yenten币怎么样
链捕手消息,三箭资本创始人ZhuSu在其社交网站上发文表示,一些迹象显示比特币正在重新进入积累期,其提出的迹象如下:1、比特币近七周下跌幅度为史上最大;2、在LFG清算了8万枚比特币.
1900/1/1 0:00:00链捕手消息,NFT流动性解决商XCarnival近期推出以太坊点对池借贷产品XPawn,并开展了以太坊测试网的公测.
1900/1/1 0:00:00链捕手消息,高通首席执行官CristianoAmon在接受采访时表示,对于元宇宙采用和投资来说,最好的情况还没有到来,元宇宙是真实的,会成为一个非常大的商机,甚至可能与手机市场规模一样大.
1900/1/1 0:00:00整理:麟奇,链捕手“过去24小时都发生了哪些重要事件”?1、Web3风投机构IOBCCapital成立5000万美元风投基金.
1900/1/1 0:00:00整理:饼干,链捕手“过去24小时都发生了哪些重要事件”?1、LunaFoundationGuard再购入37,863枚BTC.
1900/1/1 0:00:00作者:echo_z,链茶馆在以太坊的扩容路线中,ZKRollup一直被寄予厚望。由于ZKRollup能够生成极其简洁的证明,相比OptimisticRollup进一步压缩了链上存储需求,因此能够.
1900/1/1 0:00:00