链资讯 链资讯
Ctrl+D收藏链资讯
首页 > OKB > 正文

安全问题频现 程序分析如何提前捕获安全漏?

作者:

时间:

如果你对区块链技术感兴趣的话,可能听说过很多攻击者利用程序代码中的漏洞而导致的大量资金被盗事件。例如,2016 年臭名昭著的 DAO 攻击事件,攻击者利用一个名叫「重入」的漏洞超额提取了他们原本所能提取的资金。另一个更近期的事件是闪电贷攻击,发生于 2022 年 4 月 17 日,造成 1.82 亿美元的资金损失。虽然所有攻击都源于底层源代码的安全漏洞,但好消息是现在已经有能够检测此类漏洞的程序分析技术。在接下去的几篇博文中,我们会解释程序分析是什么,以及它如何帮助在部署前捕获安全漏洞。

程序分析指的是一类用于检测程序中安全漏洞的技术。程序分析有两种主要形式,动态和静态。动态程序分析的目标是通过执行程序来检测问题,而静态程序分析则无需运行程序本身就可以对源代码进行分析。然而,在这些技术之中,只有静态分析能够确保程序中不存在漏洞。相反,不同于静态分析,动态分析能证明问题的存在,它并不能够证明漏洞并不存在。

BTC跌破30000美元关口 日内跌幅为2.25%:火币全球站数据显示,BTC短线下跌,跌破30000美元关口,现报29997.0美元,日内跌幅达到2.25%,行情波动较大,请做好风险控制。[2021/7/20 1:04:18]

乍一看,静态分析听起来似乎很神秘:表面看来,静态分析似乎违反了一个被总结为莱斯定理「Rice's theorem」的基本原则,该定理声称程序的每一个非平凡性质都是不可判定的。在此,语义属性是关于程序行为的属性(与语法属性不同),而非平凡性质是指只有某些程序拥有而其他程序没有的性质。与我们手头话题更相关的是,安全漏洞的存在是非平凡性质的一个典型例子。因此,关于「这个程序是否存在安全漏洞」这一问题,莱斯定理告诉我们没有一个算法能够终结并准确回答这一问题。

那么,静态分析的可行性源自哪里呢?答案藏于以下的观察:没错,没有一个算法能够准确地给出是或否,但可以有一个算法在程序有安全漏洞时总是会回答「是」,在程序没有安全漏洞时算法有时可能也会回答「是」。换句话说,只要我们愿意容忍一些误报,我们就可以绕过赖斯定理和不可判定性。

Maker DAO 6月净收入937万美元,资产负债表规模突破50亿美元创历史新高:Maker DAO 6月份实现净收入937万美元,相比5月份(2329万美元)环比减少60%,相比去年6月份(12万美元)同比增长7670%,其中员工支出达126万美元,连续两个月保持增长,清算费用则较5月份大幅锐减88%至108万美元。MakerDAO的资产负债表也突破50亿美元创下历史新高,其中流动性储备(以USDC为主)占比达63%,同步创下新高。[2021/7/5 0:27:07]

让我们以高一维度的视角来看看静态分析是如何运作的。静态分析的基本原理是将程序所处的状态集合进行过近似「over-approximate」。我们将程序状态视为从变量到值的映射。一般来说,不存在一个算法能够明确也许是执行某一程序引起的确切程序状态集。但可以近似该集合,如下图所示:

此处,蓝色的不规则形状对应在执行某些程序时可能出现的实际状态集,红色区域对应预示错误或安全漏洞的「坏状态」。由于不可判定性,永远没有一个算法能够准确表明蓝色区域到底是什么,但是我们能设计一个算法以系统性的方式过近似这个蓝色区域,如上面常规绿色区域所示。只要绿色和红色的交集为空,我们就有证据证明程序没有做坏事。然而,如果我们的过近似不够不准确,可能会使得红色区域重叠,即使蓝色和红色区域的交集依旧为空,如下图所示:

这种情况会导致所谓的「误报」,由于分析与真实问题不相应而报告的虚假错误。一般而言,静态分析的圣杯是构造过近似,即 (1)过近似足够准确因此我们在实际中不会获得很误报 (2)过近似的计算足够有效率,因此分析可扩展到我们所关心的现实世界的程序。

附带说明一下,还可以设计静态分析算法来近似如下所示的程序行为:

在此情况下,绿色区域(通过静态分析计算)包含在蓝色区域内(表示实际状态),和另一种方式正好相反。这种分析是不可靠的,意味着可能会漏掉真正的程序错误:正如我们在上图所看到的那样,绿色和红色的交集为空,因此即使程序真的存在漏洞,分析也不会报告问题。这会导致所谓的假阴性,真正的漏洞被静态分析给遗漏了。

大体来说,如果我们想获得可证明的安全性,我们会想要可靠的从来不会有误报的静态分析器,同时还需要足够精确,在实践时不会报告太多误报。然而,好消息是,几十年的正统研究表明设计这样的静态分析器有可能的。下篇博文,我们会更详细地介绍静态分析器具体是如何运作的!

程序分析是一种有效的能够捕捉各种程序中安全漏洞的技术,包括区块链应用程序。此外,可靠的静态分析器的过近似程序行为能确保整个类别中不存在漏洞。

撰文:Veridise

编译:CCC

标签:NFTSWAPSPOCHAFirst Ever NFTYucanSwapASPO价格shoppingchain

OKB热门资讯
a16z 加密研究组宣布成立

史上优秀行业研究实验室在开创许多现代技术方面都发挥了关键的作用。两个成功的现代研究实验室例子包括 DeepMind 和 OpenAI ,都是在人工智能领域取得根本性进步后成立的。此后,它们都将该领域推向了新的高度。

金色观察|无聊猿官方Instagram被黑:部分已售卖获利

树大招风,BAYC 又被盗了。 周一上午 10 点前,BAYC 官方 Twitter 账户披露了一起黑客入侵事件。在这之前,黑客已经利用该账户发布的网络钓鱼链接,从受害者的加密钱包中窃取了价值数百万美元的 NFT 。 美国4月26日凌晨1点,BAYC官方推特发文称:“今天早上,BAYC 官方 Instagram 账号被黑。

一文了解当前和新兴的 NFT 定价方法

关于 NFT 和 DeFi 肯定有很多讨论。 很直观地讲,NFT 周围缺乏金融原语,这致使 NFT 持有者在使用 NFT 可以做的事情上非常有限。 这是关于NFT金融原语的一篇比较完整的文章。 例如,如果 NFT 所有者想要释放营运资金,他们需要出售 NFT 或利用 OTC 流动性(如果可以的话)。

金色Web3.0日报 | BAYC地板价达150 ETH 创历史新高

1.DeFi代币总市值:1153.18亿美元DeFi总市值 数据来源:coingecko 2.过去24小时去中心化交易所的交易量:55.88亿美元过去24小时去中心化交易所的交易量 数据来源:coingecko 3.DeFi中锁定资产:2057.7亿美元DeFi项目锁定资产前十排名及锁仓量 数据来源:defillama 1.NFT总市值:413。

金色观察|推特接受马斯克收购:或将算法开源 接受狗狗币支付

美国社交媒体公司推特(Twitter)周一(4月25日)宣布,该公司董事会已接受亿万富翁特斯拉创始人埃隆?马斯克(Elon Musk)提出的收购交易,以及接受将推特私有化的提议。 根据推特发布的新闻稿,马斯克将以每股54.20美元的现金交易,总价值约440亿美元买入。交易完成后,推特将成为一家私营公司。

走进 Seba Bank:世界上第一家受监管的加密银行

距离瑞士苏黎世乘火车不到半小时,在风景如画的楚格镇中心,有一座百年历史的建筑,有着优美的壁画外墙、古老的木天花板和柔和的百叶窗。 这座前市政厅建筑对于任何游览瑞士丰富建筑的旅行团来说,都是一个受欢迎的观赏点。然而,可能让旅行团感到惊讶的是,每个进出这栋建筑的人都穿着正装。