关于目前Web3安全的思考和方向探索

转载
978 天前
12378
CryptoPunk

文章来源:CryptoPunk    作者:Wei Lien Dang

Unusual Capital参投了Ebay、Instagram、Dropbox等项目;Wei Lien Dang是Unusual Capital的合伙人,也是云原生安全公司StackRox的联合创始人(StackRox后来被Red Hat收购,了解Red Hat可以看这一篇:从红帽公司的崛起聊聊开源商业模式)的联合创始人,他从投资和创业的角度,对Web3安全领域提出了一些思考,笔者给Wei的文章进行了一些注释,供大家共同探讨和思考。

一组数据

先来看一组数据:

根据Crunchbase的数据,2021年,在该加密安全(Security&Regtech)领域投资的风投资金已经超过10亿美元。注意,这个数字在2020年,风险投资总额还不到1亿美元。


图片来源:Crunchbase

随着加密市场的火热,投资者已经开始关注安全性和合规性功能。

互联网安全的演化

在Web 1.0和Web 2.0中,互联网安全随着应用架构的演化而改变,以协助全新的互联网经济模式的构建;在Web 1.0时代,安全套接字协议(SSL)是由网景公司(A16Z创始人的之前的创业公司,以研发浏览器而闻名)开创的,逐步为用户浏览器和这些服务器之间提供安全通信。Web2.0时代如谷歌、微软、亚马逊这些大厂,和证书机构,在推动传输层安全(TLS:Transport Layer Security)方面发挥了核心作用,从某个角度来看,TLS是SSL的演化。

什么是SSL(Secure Socket Layer)?

1994年,Netscape公司开发了SSL,起初它被设想为一个系统:主要是为了确保网络上客户端(Client)和服务器(Server)系统之间的安全通信。渐渐地,IETF(国际互联网工程任务组)采用了该协议并将其标准化。

啥是IETF?

互联网工程任务组,成立于1985年底,是一个由为互联网技术工程及发展做出贡献的专家自发参与和管理的国际民间机构,也是全球互联网的技术标准化组织,主要任务是负责互联网相关技术规范的研发和制定,当前绝大多数国际互联网技术标准出自IETF。

什么是TSL?

TLS是安全传输层协议,继承了 SSL 3.0的特性,于1999年发布;

我们继续讲:从上面的数据看,2021年,对新的Web3安全公司的投资增加了10倍以上,一定程度上体现了安全对整个行业的必要性。

Web3的成功取决于创新的模式,特别是要解决不同应用架构所带来的全新的安全挑战。在Web3中,去中心化的应用程序或 "dApps "的建立,并不依赖于Web 2.0中存在的传统应用逻辑和数据层;在Web3时代,是由区块链、网络节点和智能合约的模式,管理去中心化互联网的逻辑和状态。

从用户的角度来说,仍然需要通过访问某个连接到这些节点的前端,从而进行交互,更新数据,一个场景就是:发布新内容或进行购买NFT等类似行为。这类用户行为,都需要使用私钥签署交易,私钥通常用钱包来管理,这种模式是为了保护用户的控制权和隐私。区块链上的交易是完全透明的,可以公开访问,并且是不可改变的。

Web3通常不需要像Web 2.0那样要求行为被授权、验证,但带来的问题就是,通过进行系统更新升级,来解决安全问题的传统途径就比较困难。(举个例子,下面是本兔放出来的勒索软件标本,WannaCry, 当年很多人看到它就会哭...不过通过Windows自带的更新,可以从一定程度防止这种情况)



我们继续说:Web3用户可以通过目前模式,保持对自己身份的控制和数据的所有权,但是同样也存在一定的问题:例如,不存在中介机构,在发生攻击或关键妥协时,为小白用户提供追索权(例如,Web 2.0供应商会协助用户恢复被盗资金或帮助你重置密码)

就这种层面而言,Web3钱包仍然有机会泄露敏感信息;软件就是软件,总会存在一定的漏洞和缺陷。

所以,Web3的成功取决于如何在安全层面创新,从而解决不同应用架构所带来的新的安全挑战。

现状

对于个人所有权和数据主权的追求,也会引起了各类安全问题(因为个体对安全知识理解和熟悉层次的差异),但这些安全问题,不应该成为阻碍Web3的发展势头。

我们回顾一下历史:Web 1.0和Web 2.0的相似之处。最初版本的SSL/TLS存在严重的漏洞。早期的安全工具通常是初级的,随着时间的推移会进一步优化。从某个角度来看,Web3安全公司和项目,如Certik、Forta、Slithe和Securify,相当于最初为Web 1.0和Web 2.0应用开发的代码扫描和应用安全测试工具。

然而,在Web2.0中,安全模型的很重要的一部分是关于响应 (response)。在Web3中,交易一旦执行就无法改变,因此,安全的思路通常是,需要建立机制来验证交易是否应该具备安全的条件,继而进行,也就是说,安全必须在预防方面做得更好。

Web3社区必须要思考,如何从技术上进行规划,解决系统性的弱点,预防并组织新的攻击载体,这些攻击载体的目标,包括加密原生的问题( cryptographic primitives)和智能合约的漏洞等等。

以下有四个方向,可以推动Web3安全模式的预防。

四个方向

真实来源的漏洞数据(Source-of-truth data for vulnerabilities)

对于已知Web3(项目)漏洞和弱点,需要有一个真实的来源。今天,已经有官方漏洞数据库为漏洞管理项目提供了核心数据。

Web3需要去中心化的数据对应工作,消除信息不对称。目前,不完整的(漏洞、风险暴露等)信息,分散在像SWC Registry、Rekt、Smart Contract Attack Vectors和DeFi Threat Matrix,Immunefi运行的Bug赏金计划就是为了更好地找到新的弱点。

规范的安全决策(Security decision-making norms)

Web3中,关键安全设计选择,和事件的决策模型目前还在探索中。去中心化意味着没有人能为这些问题负全部的责任,而这对用户的影响可能是巨大的。比如说,最近的Log4j漏洞,就是将安全问题留给去中心化的社区的一个警醒。

Log4j漏洞是个什么事情?

Java开源工具log4j2在去年12月,突然暴露了远程代码执行漏洞事件(恶意人士可以利用漏洞在受影响的系统上安装恶意软件)。Log4j2是一个应用于Java的开源日志组件工具,被很多包括谷歌、微软、亚马逊等等世界大厂、知名组织和企业广泛用于业务系统。

Log4j2 由非营利组织 Apache 软件基金会的志愿者维护。

因此,需要进一步明确DAO、安全专家、诸如Alchemy和Infura等Web3基础设施提供商,和其他相关部门,到底如何合作,从而处理突发的安全问题。不过,可以参考大型开源社区组建OpenSSF和CNCF咨询小组,建立处理安全问题流程的经验。

认证和签名(Authentication and signing)

目前市面上的多数dApps,很多都没有认证或对API respones的签名。这意味着,当用户的钱包从这些DApp中检索数据时,在验证这种respones是否来自预期的(真的而不是伪造的)应用程序,以及数据是被篡改方面存在着风险。

在一个Dapp没有采用基本安全常规的最优途径的世界里,只能由用户自己,来确认它们的安全状况和可信度,这非常的难,确实需要有更好的方法来向用户提示风险。

更佳的密钥管理体验(Easier, user-controlled key management)

密钥管理,是用户在Web3范式中进行交易的基础。密钥也是出了名的难以管理,很多加密业务已经并将继续围绕着密钥管理而进行。

管理私钥的复杂性和风险,也是促使用户选择托管钱包而不是非托管钱包的主要原因之一。不过,使用托管钱包会导致新的现象:导致新的 "中介化产物"产生,如Coinbase,这样就会不利于Web3的完全去中心化的方向和理想;从一定程度也会限制了用户利用Web3所提供的所有优势的能力。理想情况下,进一步的安全创新将可以为用户提供更好的可用性保护非托管场景用户体验。

值得注意的是,前两项(真实来源的漏洞数据和规范的安全决策)举措更多的是围绕着人和流程,而第三和第四项举措则需要新的技术变革。让新技术、全新的流程和大量的用户保持同步,是Web3安全的难点之一。

不过,有一点还是很鼓舞大家的:Web3安全创新是在公开、开源的环境下进行的,创造性的解决方案会在这样的场景产生。