如果你对区块链技术感兴趣的话,可能听说过很多攻击者利用程序代码中的漏洞而导致的大量资金被盗事件。例如,2016 年臭名昭著的 DAO 攻击事件,攻击者利用一个名叫「重入」的漏洞超额提取了他们原本所能提取的资金。另一个更近期的事件是闪电贷攻击,发生于 2022 年 4 月 17 日,造成 1.82 亿美元的资金损失。虽然所有攻击都源于底层源代码的安全漏洞,但好消息是现在已经有能够检测此类漏洞的程序分析技术。在接下去的几篇博文中,我们会解释程序分析是什么,以及它如何帮助在部署前捕获安全漏洞。
程序分析指的是一类用于检测程序中安全漏洞的技术。程序分析有两种主要形式,动态和静态。动态程序分析的目标是通过执行程序来检测问题,而静态程序分析则无需运行程序本身就可以对源代码进行分析。然而,在这些技术之中,只有静态分析能够确保程序中不存在漏洞。相反,不同于静态分析,动态分析能证明问题的存在,它并不能够证明漏洞并不存在。
调查:相较于波动性和法规,安全问题是阻碍机构投资者投资加密货币的主要原因:1月6日消息,由Nickel数字资产管理公司委托进行,涉及对美英德法以及阿拉酋的50名财富经理和50名机构投资者(资管规模约1084亿美元)的采访调查显示,相较于波动性和法规,安全问题是阻碍机构投资者投资加密货币和数字资产的原因。报告显示:79%的人认为资产托管是是否投资这一领域的关键考虑因素;67%的人认为是价格波动,56%的人认为是市值,49%的人提到了监管环境。此外,还有12%的人将比特币和其他加密货币的碳足迹列入其不投资的前三个原因。
此外,受访者还对美国证券交易委员会被赋予更多权力来监管这些资产的前景表示乐观。76%的人预计今年SEC会被授予这一权力。报告表示:“如果美SEC被授予这些额外的权力,73%的机构投资者和财富经理认为这将对加密货币和数字资产的价格产生积极影响,32%的人认为这将产生非常积极的影响。”(彭博社)[2022/1/6 8:29:58]
乍一看,静态分析听起来似乎很神秘:表面看来,静态分析似乎违反了一个被总结为莱斯定理「Rice's theorem」的基本原则,该定理声称程序的每一个非平凡性质都是不可判定的。在此,语义属性是关于程序行为的属性(与语法属性不同),而非平凡性质是指只有某些程序拥有而其他程序没有的性质。与我们手头话题更相关的是,安全漏洞的存在是非平凡性质的一个典型例子。因此,关于「这个程序是否存在安全漏洞」这一问题,莱斯定理告诉我们没有一个算法能够终结并准确回答这一问题。
Matter Labs质疑ZKSwap的用户资金安全问题:2月24日消息,以太坊二层扩容解决方案开发团队Matter Labs发推质疑基于ZK Rollup扩容技术的AMM去中心化交易所ZKSwap,称ZKSwap克隆zksync的代码,甚至懒得从Etherscan上的合约代码中删除Matter Labs的作者身份,也没有发布更改,Matter Labs表示担心ZKSwap的用户资金的安全。“将AMM功能正确地添加到我们的代码中是非常不平凡的,并且需要在ZKP有很强的能力。它还需要由经验丰富的密码学家进行非常彻底的安全审计(不仅仅是你发布的文章中提到的静态代码分析)。你会对自己的用户如此友好以至于开放你的合约和环路(Circuit)的完整源代码吗?”[2021/2/24 17:47:22]
那么,静态分析的可行性源自哪里呢?答案藏于以下的观察:没错,没有一个算法能够准确地给出是或否,但可以有一个算法在程序有安全漏洞时总是会回答「是」,在程序没有安全漏洞时算法有时可能也会回答「是」。换句话说,只要我们愿意容忍一些误报,我们就可以绕过赖斯定理和不可判定性。
声音 | Bitcoin Unlimited首席科学家:闪电网络存在诸多安全问题:Bitcoin Unlimited首席科学家Peter R. Rizun最近表示,比特币闪电网络用户在交易时可能会损失所有资金。据他介绍,比特币闪电网络存在问题,大多数问题是它有bug,而且动态收费可能会意外增加。例如,他已经确认用户可能会因为L1费用而赔钱。[2019/4/9]
让我们以高一维度的视角来看看静态分析是如何运作的。静态分析的基本原理是将程序所处的状态集合进行过近似「over-approximate」。我们将程序状态视为从变量到值的映射。一般来说,不存在一个算法能够明确也许是执行某一程序引起的确切程序状态集。但可以近似该集合,如下图所示:
声音 | 全国政协委员王茜:区块链协同计算技术可解决数据安全问题:全国政协委员王茜表示,现在区块链协同计算技术已经可以解决数据安全问题了。政府应下决心突破屏障,建立囊括多元主体的数据开放机制。[2019/1/12]
此处,蓝色的不规则形状对应在执行某些程序时可能出现的实际状态集,红色区域对应预示错误或安全漏洞的「坏状态」。由于不可判定性,永远没有一个算法能够准确表明蓝色区域到底是什么,但是我们能设计一个算法以系统性的方式过近似这个蓝色区域,如上面常规绿色区域所示。只要绿色和红色的交集为空,我们就有证据证明程序没有做坏事。然而,如果我们的过近似不够不准确,可能会使得红色区域重叠,即使蓝色和红色区域的交集依旧为空,如下图所示:
这种情况会导致所谓的「误报」,由于分析与真实问题不相应而报告的虚假错误。一般而言,静态分析的圣杯是构造过近似,即 (1)过近似足够准确因此我们在实际中不会获得很误报 (2)过近似的计算足够有效率,因此分析可扩展到我们所关心的现实世界的程序。
附带说明一下,还可以设计静态分析算法来近似如下所示的程序行为:
在此情况下,绿色区域(通过静态分析计算)包含在蓝色区域内(表示实际状态),和另一种方式正好相反。这种分析是不可靠的,意味着可能会漏掉真正的程序错误:正如我们在上图所看到的那样,绿色和红色的交集为空,因此即使程序真的存在漏洞,分析也不会报告问题。这会导致所谓的假阴性,真正的漏洞被静态分析给遗漏了。
大体来说,如果我们想获得可证明的安全性,我们会想要可靠的从来不会有误报的静态分析器,同时还需要足够精确,在实践时不会报告太多误报。然而,好消息是,几十年的正统研究表明设计这样的静态分析器有可能的。下篇博文,我们会更详细地介绍静态分析器具体是如何运作的!
程序分析是一种有效的能够捕捉各种程序中安全漏洞的技术,包括区块链应用程序。此外,可靠的静态分析器的过近似程序行为能确保整个类别中不存在漏洞。
撰文:Veridise
编译:CCC
1.DeFi代币总市值:1026.88亿美元 DeFi总市值 数据来源:coingecko2.过去24小时去中心化交易所的交易量:42.
1900/1/1 0:00:00“为何人人皆向往Web3.0,因为这是一个以人为本的时代,个人主权回归,个人价值凸显。有能力者将掘金Web3.0。”(本文由Fenbushi Capital原创,有匪撰文.
1900/1/1 0:00:00今日,交通运输部官网发布了《关于开展冷藏集装箱港航服务提升行动的通知》(以下简称《通知》)。 部署开展冷藏集装箱港航服务提升行动,积极推动区块链、物联网等新一代信息技术与冷链物流深度融合,进一步.
1900/1/1 0:00:00内容摘要由于Terra UST与美元严重脱锚,导致大批投资者撤资离场。作为Terra生态中最重要的协议,Anchor 协议的存款总额从 140 亿美元暴跌至 70 亿美元以下,该协议代币 ANC.
1900/1/1 0:00:00据4月22日报道,NFT初创公司Afterparty完成400万美元融资,以进一步开发其NFT票务平台,目前总融资达到了700万美元.
1900/1/1 0:00:00元宇宙(Metaverse)叙事作为人类想象力的天花板,它是由人类利用各种科技手段创造出来的与现实宇宙映射与交互的虚拟宇宙,而它自然会是包罗万象的,在我看来.
1900/1/1 0:00:00