智能合约梳理

news/2024/10/23 8:08:13/

1、找准1个漏洞,探索解决方案
2、找准一个方法,看看能识别哪些漏洞
3、针对某一应用领域的智能合约的漏洞检测

静态分析工具上进行了大量的研究工作,这些工具可以在部署之前检测漏洞。但是,当前很少有安全工具可以在部署后保护智能合约。

3.2。分析方法
静态分析: 静态软件分析是一种从程序的已编译二进制代码研究程序行为而无需执行该程序的方法,以寻找通常会导致漏洞的已知模式。进行静态分析时,有一些过程,例如:

反汇编:将二进制代码转换为易于理解的指令集的过程。

反编译:从代码反生成高级语言的反汇编代码的过程。

符号执行:使用符号代替对变量使用特定值。这些符号上的运算导致代数项,而条件语句则产生表征分支的命题公式。如果在到达此部分的过程中公式的结合令人满意,则可以实现代码的特定部分,这可以由SMT求解器检查。

控制流图:使用图形表示程序执行可能遵循的路径。

模式识别:此操作搜索已知包含潜在漏洞代码的字节码部分。

基于规则的分析:一种将CFG转换为规则表示的方法。
动态分析: 这种类型的分析在程序的执行阶段起作用,在进行验证的同时检测在静态分析过程中可能未注意到的漏洞(例如,由于存在混淆的代码或有抵抗力的包装)那些被这个发现的。

执行跟踪:与静态分析中的CFG一样,合同执行跟踪是在执行过程中由此生成的。(动态污点跟踪)

符号分析:通过在执行时的不同跟踪中,通过在变量中插入不同的符号值并记录所产生的不同输出来执行合同的符号执行。

假阳性判断:在进行符号分析后,一旦合同被确定为可能的脆弱候选对象,将使用具体数据对符号分析的结果进行验证。
形式验证: 通过这种类型的分析,使用诸如SMT Z3和Coq等定理证明,使用正式的数学方法进行验证以测试代码的特定属性。

控制流分析是一种具有许多应用程序的基本动态分析技术。除了控制流之外,还可以分析执行的其他方面,例如数据流[51]G. Ammons and J. R. Larus, “Improving data-flow analysis with path profiles”, Proc. ACM Special Interest Group Program. Lang. Notices, vol. 33, pp. 72-84, 1998.或动态不变量[52]M. D. Ernst, J. Cockrell, W. G. Griswold and D. Notkin, “Dynamically discovering likely program invariants to support program evolution”, IEEE Trans. Softw. Eng., vol. 27, no. 2, pp. 99-123, Feb. 2001.。

  • 针对重入攻击及其防御的论文:

    • N. Fatima Samreen and M. H. Alalfi, “Reentrancy Vulnerability Identification in Ethereum Smart Contracts,” 2020 IEEE International Workshop on Blockchain Oriented Software Engineering (IWBOSE), London, ON, Canada, 2020, pp. 22-29, doi: 10.1109/IWBOSE50093.2020.9050260.
      https://ieeexplore.ieee.org/document/9050260

    • Sergei Tikhomirov, Ekaterina Voskresenskaya, Ivan Ivanitskiy, Ramil Takhaviev, Evgeny Marchenko, and Yaroslav Alexandrov. 2018. SmartCheck: static analysis of ethereum smart contracts. In Proceedings of the 1st International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB ’18). Association for Computing Machinery, New York, NY, USA, 9–16. DOI:https://doi.org/10.1145/3194113.3194115

    • C. Liu, H. Liu, Z. Cao, Z. Chen, B. Chen and B. Roscoe, “ReGuard: Finding Reentrancy Bugs in Smart Contracts,” 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion), Gothenburg, 2018, pp. 65-68.
      https://ieeexplore.ieee.org/document/8449446

    • M. Rodler, W. Li, G. O. Karame, and L. Davi, “Sereum: Protecting existing smart contracts against re-Entrancy attacks,” in NDSS, 2019.
      阅读报告
      原文地址:https://arxiv.org/pdf/1812.05934.pdf
      本文针对重入(Re-entrancy)攻击提出了一种新的智能合约安全技术,称为Sereum(Secure Ethereum),其能够通过运行时监测和验证,以向后兼容的方式保护已被部署的合约不被攻击者利用。Sereum既不需要对合约进行任何修改,也不需要掌握合约的任何语义信息。
      可选的主流测试环 境有 3 种:以太坊私有链、Ropsten 测试链、 Ganache 以太坊模拟器[41]。因为 Ganache 提供最 为纯净的部署环境以及较快的交易执行速度,本文选择 Ganache 作为测试环境。
      文章在以太坊(Ethereum)区块链上实现并评估了Sereum,其能够覆盖合约的实际执行流,以低至0.06%的误报率和可被忽略的运行时开销精确地检测和防御重入攻击。

  • [Arxive’20]Empirical Review of Automated Analysis Tools on 47,587 Ethereum Smart Contracts
    We report that the current state- of-the-art is not able to detect vulnerabilities from two categories of DASP10: Bad Randomness and Short Addresses

    • 漏洞检测工具的精确度、平均时间 ,提供了智能合约数据集合
    • We observe that the tools underperform to detect vulnerabilities in the following three categories: Access Control, Denial of service, and Front running.
    • Therefore, we suggest the combination of Mythril and Slither, since it detects 42 (37%) of all the vulnerabilities
  • SODA: A Generic Online Detection Framework for Smart Contracts

    • 现有方法。现有的保护智能合约的方法大致可以分为离线和在线两种。离线方法分析智能合约以发现漏洞[8]-[17],检查其正确性[18]-[21],对智能合约的字节码进行反向工程[22]-[26],检测恶意智能合约[27],[28]等等。但是,由于缺乏运行时信息和所选技术的固有限制,脱机方法无法保证能够检测并删除所有漏洞。因此,通过这些方法处理后的智能合约仍然可能受到攻击。在线方法尝试检测针对智能合约的攻击,或在部署后保护智能合约免受攻击[29]–[37],可分为两类。第一类将保护代码插入智能合约的源/字节码中[29]、[31]–[33]。然而,它们的能力[29]、[31]–[33]受到EVM字节码[38]和气体机制[39]的大小限制。第二类将保护代码插入智能合约(例如EVM)[30]、[34]–[37]的运行时。然而,这些方法不容易扩展到检测新的攻击[30]、[35],或者缺乏详细的设计、实现和评估[34]、[36],或者是资源消耗并且可能会错过许多攻击[37]。我们在第八章详细介绍了现有的方法。
    • 灵感来自于Sereum :Protecting Existing Smart Contracts Against Re-Entrancy Attacks
  • 针对智能合约的算术问题:算术溢出

    • VERISMART: A Highly Precise Safety Verifier for Ethereum Smart Contracts

http://www.ppmy.cn/news/409408.html

相关文章

智能合约详解

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 尽管比特币(Bitcoin)和以太坊(Ethereum)是经常被一起提及的两个词,但实际上,…

金融合约与智能合约

智能合约是 1990s 年代由尼克萨博提出的理念,几乎与互联网同龄。由于缺少可信的执行环境,智能合约并没有被应用到实际产业中,自比特币诞生后,人们认识到比特币的底层技术区块链天生可以为智能合约提供可信的执行环境,以…

黑莓合约价格:联通 BlackBerry 9900

2012年7月的套餐价格:586元 x 24个月

智能合约介绍

介绍 智能合约是区块链实现可编程化的重要工具;在比特币时期,脚本仅限于描述交易得到内容和状态;随着智能合约的出现可以定义任何数据对象的状态擦欧总——>使其成为网络上的“法律条文”或者“商业共识”。相当于网络中的道德准则&#…

【转】智能合约灵活升级

以太坊智能合约具有很强的不变性,使得我们能够构建完全防篡改的应用程序,任何个人、公司或政府都不能篡改数据(信息)。每个参与者都遵循相同的规则,并且这些规则永远都不会改变。 但是,说到底,…

智能合约简介

区块链技术简史 区块链技术的第一次应用是在2008年,当时比特币首次亮相。抛弃传统金融机构,比特币引入了促进数字金融交易的新方法。然而,尽管在当时这是革命性的举措,但在这种状态下,区块链技术无法得到广泛应用。 区…

中国联通5G网络架构

中国联通 5G 网络演进规划 中国联通 5G 网络架构 中国联通提出的 5G 智能化云协同网络将是构建在 NFV 和 SDN 技术之上的 满足万物互联、超低时延、超高速率、灵活可靠等特性的网络,全面体现了网络 融合化、灵活化、弹性化、智能化的新阶段要求,全力拥…

【智能合约】合约转账

合约可以有钱 合约可以有钱! 合约与其他合约或者EOA之间可以转账 gas和gas price https://github.com/wolflo/evm-opcodes/blob/main/gas.md 实际的gas是完全由执行逻辑决定的,一个固定的逻辑的合约函数执行,gas没有变化,有变化…