SmartBugs: A Framework to Analyze Solidity Smart Contracts – SmartBugs:分析可靠智能合约的框架区块链毕设代写

区块链毕设代写本文提供国外最新区块链项目源码下载,包括solidity,eth,fabric等blockchain区块链,SmartBugs: A Framework to Analyze Solidity Smart Contracts – SmartBugs:分析可靠智能合约的框架区块链毕设代写 是一篇很好的国外资料

SmartBugs: A Framework to Analyze Solidity Smart Contracts

SmartBugs: A Framework to Analyze Solidity Smart Contracts - SmartBugs:分析可靠智能合约的框架 SmartBugs: A Framework to Analyze Solidity Smart Contracts - SmartBugs:分析可靠智能合约的框架 SmartBugs: A Framework to Analyze Solidity Smart Contracts - SmartBugs:分析可靠智能合约的框架
SmartBugs: A Framework to Analyze Solidity Smart Contracts - SmartBugs:分析可靠智能合约的框架 SmartBugs: A Framework to Analyze Solidity Smart Contracts - SmartBugs:分析可靠智能合约的框架 SmartBugs: A Framework to Analyze Solidity Smart Contracts - SmartBugs:分析可靠智能合约的框架

SmartBugs is an execution framework aiming at simplifying the execution of analysis tools on datasets of smart contracts.

Features

  • A plugin system to easily add new analysis tools, based on Docker images;
  • Parallel execution of the tools to speed up the execution time;
  • An output mechanism that normalizes the way the tools are outputting the results, and simplifies the process of the output across tools.

Supported Tools

  1. HoneyBadger
  2. Maian
  3. Manticore
  4. Mythril
  5. Osiris
  6. Oyente
  7. Securify
  8. Slither
  9. Smartcheck
  10. Solhint
  11. Conkas

Requirements

  • Unix-based system
  • Docker
  • Python3

Installation

Once you have Docker and Python3 installed your system, follow the steps:

  1. Clone SmartBugs’s repository:
git clone https://github.com/smartbugs/smartbugs.git 
  1. Install all the Python requirements:
pip3 install -r requirements.txt 

Alternative Installation Methods

  • We provide a Vagrant box that you can use to experiment with SmartBugs

Usage

SmartBugs provides a command-line interface that can be used as follows:

smartBugs.py [-h, --help]               --list tools          # list all the tools available               --list dataset        # list all the datasets available               --dataset DATASET     # the name of the dataset to analyze (e.g. reentrancy)               --file FILES          # the paths to the folder(s) or the Solidity contract(s) to analyze               --tool TOOLS          # the list of tools to use for the analysis (all to use all of them)                --info TOOL           # show information about tool               --skip-existing       # skip the execution that already has results               --processes PROCESSES # the number of process to use during the analysis (by default 1)               --output-version      # specifies SmartBugs' output version {v1 (Json), v2 (SARIF), all}               --aggregate-sarif     # aggregates SARIF output per analysed file               --unique-sarif-output # aggregates all analysis in a single file               --import-path PATH    # defines project's root directory so that analysis tools are able to import from other files

For example, we can analyse all contracts labelled with type reentrancy with the tool oyente by executing:

python3 smartBugs.py --tool oyente --dataset reentrancy

To analyze a specific file (or folder), we can use the option --file. For example, to run all the tools on the file dataset/reentrancy/simple_dao.sol, we can run:

python3 smartBugs.py --tool all --file dataset/reentrancy/simple_dao.sol

By default, results will be placed in the directory results.

Known Limitations

When running a tool the user must be aware of the solc compatibility. Due to the major changes introduced in solidity v0.5.0, we provide the option to pass another docker image to run contracts with solidity version below v0.5.0. However, please note that there may still be problems with the solidity compiler when compiling older versions of solidity code.

Smart Contracts Datasets

We make available three smart contract datasets with SmartBugs:

  • SB Curated: a curated dataset that contains 143 annotated contracts with 208 tagged vulnerabilities that can be used to evaluate the accuracy of analysis tools.
  • SB Wild: a dataset with 47,398 unique contract from the Ethereum network (for details on 3 how they were collected, see the ICSE 2020 paper)
  • SolidiFI Benchmark: a remote dataset of contracts injected with 9369 bugs of 7 different types.

SB Curated

SB Curated provides a collection of vulnerable Solidity smart contracts organized according to the DASP taxonomy. It is available in the dataset repository.

Vulnerability Description Level
Reentrancy Reentrant function calls make a contract to behave in an unexpected way Solidity
Access Control Failure to use function modifiers or use of tx.origin Solidity
Arithmetic Integer over/underflows Solidity
Unchecked Low Level Calls call(), callcode(), delegatecall() or send() fails and it is not checked Solidity
Denial Of Service The contract is overwhelmed with time-consuming computations Solidity
Bad Randomness Malicious miner biases the outcome Blockchain
Front Running Two dependent transactions that invoke the same contract are included in one block Blockchain
Time Manipulation The timestamp of the block is manipulated by the miner Blockchain
Short Addresses EVM itself accepts incorrectly padded arguments EVM
Unknown Unknowns Vulnerabilities not identified in DASP 10 N.A

SB Wild

SB Wild is available in a separated repository due to its size: https://github.com/smartbugs/smartbugs-wild

Remote Datasets

You can set any git repository as a remote dataset. Smartbugs is distributed with Ghaleb and Pattabiraman’s SolidiFI Benchmark, a dataset of buggy contracts injected with 9369 bugs of 7 different types: reentrancy, timestamp dependency, unhandled exceptions, unchecked send, TOD, integer overflow/underflow, and use of tx.origin.

To add new remote datasets, update the configuration file dataset.yaml with the location of the dataset (url), the local directory where the dataset will be located (local_dir), and any relevant subsets (if any). As an example, here’s the configuration for SolidiFI:

solidiFI:      - url: [email protected]:smartbugs/SolidiFI-benchmark.git     - local_dir: dataset/solidiFI     - subsets: # Accessed as solidiFI/name          - overflow_underflow: buggy_contracts/Overflow-Underflow         - reentrancy: buggy_contracts/Re-entrancy         - tod: buggy_contracts/TOD         - timestamp_dependency: buggy_contracts/Timestamp-Dependency         - unchecked_send: buggy_contracts/Unchecked-Send         - unhandled_exceptions: buggy_contracts/Unhandled-Exceptions         - tx_origin: buggy_contracts/tx.origin 

With this configuration, if we want to run slither in the remote sub-directory buggy_contracts/tx.origin, we can run:

python3 smartBugs.py --tool slither --dataset solidiFI/tx_origin

To run it in the entire dataset, use solidiFI instead of solidiFI/tx_origin.

When we use a remote dataset for the first time, we are asked to confirm the creation of the local copy.

Work that uses SmartBugs

  • SmartBugs was used to analyze 47,587 smart contracts (work published at ICSE 2020). These contracts are available in a separate repository. The results are also in their own repository.
  • SmartBugs was used to evaluate a simple extension of Smartcheck (work published at ASE 2020, Tool Demo Track)
  • … you are more than welcome to add your own work here!

License

The license in the file LICENSE applies to all the files in this repository, except for all the smart contracts in the dataset folder. The smart contracts in this folder are publicly available, were obtained using the Etherscan APIs, and retain their original licenses. Please contact us for any additional questions.


智能漏洞:一个分析可靠智能合约的框架

<SmartBugs: A Framework to Analyze Solidity Smart Contracts><SmartBugs: A Framework to Analyze Solidity Smart Contracts><SmartBugs: A Framework to Analyze Solidity Smart Contracts><SmartBugs: A Framework to Analyze Solidity Smart Contracts><SmartBugs: A Framework to Analyze Solidity Smart Contracts>
<SmartBugs: A Framework to Analyze Solidity Smart Contracts><SmartBugs: A Framework to Analyze Solidity Smart Contracts><SmartBugs: A Framework to Analyze Solidity Smart Contracts><SmartBugs: A Framework to Analyze Solidity Smart Contracts><SmartBugs: A Framework to Analyze Solidity Smart Contracts><SmartBugs: A Framework to Analyze Solidity Smart Contracts>

SmartBugs是一个执行框架,旨在简化智能合约数据集上分析工具的执行

一旦您安装了Docker和Python3系统,请按照以下步骤进行操作:

SmartBugs提供了一个命令行界面,可按如下方式使用:

例如,我们可以使用工具oyente分析所有标有reentrancy类型的合同,方法是执行:

以分析特定的文件(或文件夹),我们可以使用选项–file。例如,要运行文件dataset/reentrancy/simple_dao.sol上的所有工具,我们可以运行:

默认情况下,结果将放在目录results中

运行工具时,用户必须了解solc兼容性。由于solidity v0.5.0中引入了重大更改,我们提供了传递另一个docker映像以运行solidity版本低于v0.5.0的合同的选项。但是,请注意,在编译旧版本的solidity代码时,solidity编译器可能仍然存在问题

我们提供了三个带有SmartBug的智能合约数据集:

SB Curated提供了根据DASP分类法组织的易受攻击的可靠智能合约集合。它在数据集存储库中可用

SB Wild由于其大小,可在单独的存储库中使用:https://github.com/smartbugs/smartbugs-wild

您可以将任何git存储库设置为远程数据集。Smartbugs与Ghaleb和Pattabiraman的Solidfi Benchmark一起发布,Solidfi Benchmark是一个错误契约数据集,注入了7种不同类型的9369个错误:重入、时间戳依赖、未处理的异常、未经检查的发送、TOD、整数溢出/下溢和使用tx.origin

要添加新的远程数据集,请使用数据集的位置(url)、数据集将位于的本地目录(local_dir)和任何相关子集(如果有)更新配置文件dataset.yaml。例如,这里是SolidFi的配置:

使用此配置,如果我们想在远程子目录buggyu contracts/tx.origin中运行slither,我们可以运行:

要在整个数据集中运行它,请使用SolidFi而不是SolidFi/txu origin

当我们第一次使用远程数据集时,会要求我们确认本地副本的创建

文件许可证中的许可证适用于此存储库中的所有文件,dataset文件夹中的所有智能合约除外。此文件夹中的智能合约是公开的,使用Etherscan API获得,并保留其原始许可证。如有任何其他问题,请联系我们

智能漏洞:一个分析可靠智能合约的框架

功能

支持的工具

要求

安装

替代安装方法

使用

已知限制

智能合约数据集

远程数据集

使用SmartBugs

许可证

  • 插件系统,根据Docker图像轻松添加新的分析工具
  • 并行执行工具,以加快执行时间
  • 一种输出机制,用于规范工具输出结果的方式,并简化跨工具的输出过程
  • 蜜獾
  • 麦安

  • 曼蒂科尔
  • 神话
  • 欧西里斯

  • Oyente
  • 安全化

  • 斯莱特
  • 智能检查
  • 索尔hint

    康卡斯

  • 基于Unix的系统
  • Docker
  • Docker

  • 克隆智能漏洞存储库:
  • 安装所有Python要求:

  • 我们提供了一个可用于实验SmartBugs的“流浪者”框:一个包含143个带注释的契约和208个带标记的漏洞的经策划的数据集,可用于评估分析工具的准确性
  • SB Wild:一个包含以太坊eth网络中47398个唯一合约的数据集(有关3个合约收集方式的详细信息,请参阅ICSE 2020论文)
  • SolidFi基准:一个包含7种不同类型9369个bug的远程合约数据集
  • SmartBugs被用于分析47587份智能合同(该工作发表在ICSE 2020上)。这些合同在单独的存储库中提供。结果也在他们自己的存储库中
  • SmartBugs用于评估Smartcheck的一个简单扩展(在ASE 2020上发表的工作,工具演示轨道)
  • 。。。非常欢迎您在这里添加自己的作品
  • 可重入性 可重入函数调用使契约以意外的方式运行 稳健性 访问控制 未能使用函数修饰符或使用tx.origin

    稳健性

    算术 整数上/下溢 稳健性级别调用 call(),callcode(),delegatecall()或send()失败且未检查其可靠性 拒绝服务 合同被耗时的计算压得喘不过气来 可靠性

    糟糕的随机性 恶意矿工会对结果产生偏见 区块链blockchain 前端运行调用同一合同的交易包含在一个区块中 区块链blockchain 时间操纵 区块的时间戳由矿工操纵 区块链blockchain 短地址 EVM本身接受不正确填充的参数 DASP 10中未识别的漏洞

    SmartBugs是一个执行框架,旨在简化智能合约数据集上分析工具的执行

    功能

    • 插件系统,根据Docker图像轻松添加新的分析工具
    • 并行执行工具,以加快执行时间
    • 一种输出机制,用于规范工具输出结果的方式,并简化跨工具的输出过程

    支持的工具

    1. 蜜獾
    2. 曼蒂科尔
    3. 神话
    4. Oyente
    5. 斯莱特
    6. 智能检查
    7. Securify
    8. 基于Unix的系统
    9. Docker
    10. 克隆智能漏洞存储库:
    11. 我们提供了一个可用于实验SmartBugs的“流浪者”框:一个包含143个带注释的契约和208个带标记的漏洞的经策划的数据集,可用于评估分析工具的准确性

    要求

    • SB Wild:一个包含以太坊eth网络中47398个唯一合约的数据集(有关3个合约收集方式的详细信息,请参阅ICSE 2020论文)
    • SolidFi基准:一个包含7种不同类型9369个bug的远程合约数据集
    • SmartBugs被用于分析47587份智能合同(该工作发表在ICSE 2020上)。这些合同在单独的存储库中提供。结果也在他们自己的存储库中

    安装

    一旦您安装了Docker和Python3系统,请按照以下步骤进行操作:

    1. SmartBugs用于评估Smartcheck的一个简单扩展(在ASE 2020上发表的工作,工具演示轨道)
    git clone https://github.com/smartbugs/smartbugs.git 
    1. 。。。非常欢迎您在这里添加自己的作品
    pip3 install -r requirements.txt 

    使用

    • We provide a Vagrant box that you can use to experiment with SmartBugs

    已知限制

    SmartBugs提供了一个命令行界面,可按如下方式使用:

    smartBugs.py [-h, --help]               --list tools          # list all the tools available               --list dataset        # list all the datasets available               --dataset DATASET     # the name of the dataset to analyze (e.g. reentrancy)               --file FILES          # the paths to the folder(s) or the Solidity contract(s) to analyze               --tool TOOLS          # the list of tools to use for the analysis (all to use all of them)                --info TOOL           # show information about tool               --skip-existing       # skip the execution that already has results               --processes PROCESSES # the number of process to use during the analysis (by default 1)               --output-version      # specifies SmartBugs' output version {v1 (Json), v2 (SARIF), all}               --aggregate-sarif     # aggregates SARIF output per analysed file               --unique-sarif-output # aggregates all analysis in a single file               --import-path PATH    # defines project's root directory so that analysis tools are able to import from other files

    例如,我们可以使用工具oyente分析所有标有reentrancy类型的合同,方法是执行:

    python3 smartBugs.py --tool oyente --dataset reentrancy

    以分析特定的文件(或文件夹),我们可以使用选项–file。例如,要运行文件dataset/reentrancy/simple_dao.sol上的所有工具,我们可以运行:

    python3 smartBugs.py --tool all --file dataset/reentrancy/simple_dao.sol

    默认情况下,结果将放在目录results中

    智能合约数据集

    远程数据集

    使用SmartBugs

    许可证

  • 插件系统,根据Docker图像轻松添加新的分析工具
  • 并行执行工具,以加快执行时间
  • 一种输出机制,用于规范工具输出结果的方式,并简化跨工具的输出过程
  • 蜜獾
  • 麦安

  • 曼蒂科尔
  • 神话
  • 欧西里斯

  • Oyente
  • 安全化

  • 斯莱特
  • 智能检查
  • 索尔hint

    康卡斯

  • 基于Unix的系统
  • Docker
  • Docker

  • 克隆智能漏洞存储库:
  • 安装所有Python要求:

  • 我们提供了一个可用于实验SmartBugs的“流浪者”框:一个包含143个带注释的契约和208个带标记的漏洞的经策划的数据集,可用于评估分析工具的准确性
  • SB Wild:一个包含以太坊eth网络中47398个唯一合约的数据集(有关3个合约收集方式的详细信息,请参阅ICSE 2020论文)
  • SolidFi基准:一个包含7种不同类型9369个bug的远程合约数据集
  • SmartBugs被用于分析47587份智能合同(该工作发表在ICSE 2020上)。这些合同在单独的存储库中提供。结果也在他们自己的存储库中
  • SmartBugs用于评估Smartcheck的一个简单扩展(在ASE 2020上发表的工作,工具演示轨道)
  • 。。。非常欢迎您在这里添加自己的作品
  • 可重入性 可重入函数调用使契约以意外的方式运行 稳健性 访问控制 未能使用函数修饰符或使用tx.origin

    稳健性

    算术 整数上/下溢 稳健性级别调用 call(),callcode(),delegatecall()或send()失败且未检查其可靠性 拒绝服务 合同被耗时的计算压得喘不过气来 可靠性

    糟糕的随机性 恶意矿工会对结果产生偏见 区块链blockchain 前端运行调用同一合同的交易包含在一个区块中 区块链blockchain 时间操纵 区块的时间戳由矿工操纵 区块链blockchain 短地址 EVM本身接受不正确填充的参数 DASP 10中未识别的漏洞

    运行工具时,用户必须了解solc兼容性。由于solidity v0.5.0中引入了重大更改,我们提供了传递另一个docker映像以运行solidity版本低于v0.5.0的合同的选项。但是,请注意,在编译旧版本的solidity代码时,solidity编译器可能仍然存在问题

    远程数据集

    我们提供了三个带有SmartBug的智能合约数据集:

    • SB Curated: a curated dataset that contains 143 annotated contracts with 208 tagged vulnerabilities that can be used to evaluate the accuracy of analysis tools.
    • SB Wild: a dataset with 47,398 unique contract from the Ethereum network (for details on 3 how they were collected, see the ICSE 2020 paper)
    • SolidiFI Benchmark: a remote dataset of contracts injected with 9369 bugs of 7 different types.

    使用SmartBugs

    SB Curated提供了根据DASP分类法组织的易受攻击的可靠智能合约集合。它在数据集存储库中可用

    Vulnerability Description Level
    可重入性 可重入函数调用使契约以意外的方式运行 稳健性
    访问控制 未能使用函数修饰符或使用tx.origin 整数上/下溢
    稳健性级别调用 call(),callcode(),delegatecall()或send()失败且未检查其可靠性 拒绝服务
    合同被耗时的计算压得喘不过气来 可靠性 恶意矿工会对结果产生偏见
    区块链blockchain 前端运行调用同一合同的交易包含在一个区块中 区块链blockchain
    时间操纵 区块的时间戳由矿工操纵 区块链blockchain
    短地址 EVM本身接受不正确填充的参数 DASP 10中未识别的漏洞
    Time Manipulation The timestamp of the block is manipulated by the miner Blockchain
    Short Addresses EVM itself accepts incorrectly padded arguments EVM
    Unknown Unknowns Vulnerabilities not identified in DASP 10 N.A

    许可证

    SB Wild由于其大小,可在单独的存储库中使用:https://github.com/smartbugs/smartbugs-wild

    Remote Datasets

    您可以将任何git存储库设置为远程数据集。Smartbugs与Ghaleb和Pattabiraman的Solidfi Benchmark一起发布,Solidfi Benchmark是一个错误契约数据集,注入了7种不同类型的9369个错误:重入、时间戳依赖、未处理的异常、未经检查的发送、TOD、整数溢出/下溢和使用tx.origin

    要添加新的远程数据集,请使用数据集的位置(url)、数据集将位于的本地目录(local_dir)和任何相关子集(如果有)更新配置文件dataset.yaml。例如,这里是SolidFi的配置:

    solidiFI:      - url: [email protected]:smartbugs/SolidiFI-benchmark.git     - local_dir: dataset/solidiFI     - subsets: # Accessed as solidiFI/name          - overflow_underflow: buggy_contracts/Overflow-Underflow         - reentrancy: buggy_contracts/Re-entrancy         - tod: buggy_contracts/TOD         - timestamp_dependency: buggy_contracts/Timestamp-Dependency         - unchecked_send: buggy_contracts/Unchecked-Send         - unhandled_exceptions: buggy_contracts/Unhandled-Exceptions         - tx_origin: buggy_contracts/tx.origin 

    使用此配置,如果我们想在远程子目录buggyu contracts/tx.origin中运行slither,我们可以运行:

    python3 smartBugs.py --tool slither --dataset solidiFI/tx_origin

    要在整个数据集中运行它,请使用SolidFi而不是SolidFi/txu origin

    当我们第一次使用远程数据集时,会要求我们确认本地副本的创建

    Work that uses SmartBugs

    • SmartBugs was used to analyze 47,587 smart contracts (work published at ICSE 2020). These contracts are available in a separate repository. The results are also in their own repository.
    • SmartBugs was used to evaluate a simple extension of Smartcheck (work published at ASE 2020, Tool Demo Track)
    • … you are more than welcome to add your own work here!

    License

    文件许可证中的许可证适用于此存储库中的所有文件,dataset文件夹中的所有智能合约除外。此文件夹中的智能合约是公开的,使用Etherscan API获得,并保留其原始许可证。如有任何其他问题,请联系我们

    部分转自网络,侵权联系删除区块链源码网

    www.interchains.cc

    https://www.interchains.cc/23384.html

    区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 ! QQ3039046426
    区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » SmartBugs: A Framework to Analyze Solidity Smart Contracts – SmartBugs:分析可靠智能合约的框架区块链毕设代写

    提供最优质的资源集合

    立即查看 了解详情