five

msc-smart-contract-audition/vulnerable-functions-base

收藏
Hugging Face2024-05-04 更新2024-05-25 收录
下载链接:
https://hf-mirror.com/datasets/msc-smart-contract-audition/vulnerable-functions-base
下载链接
链接失效反馈
官方服务:
资源简介:
--- license: mit configs: - config_name: vulnerable-w-explanations data_files: db-vulnerable.csv default: true - config_name: verified-functions data_files: db-verified.csv language: - en tags: - finance pretty_name: Smart Contract Vulnerabilities with Explanations size_categories: - 1K<n<10K --- These datasets serve as a basis for other datasets in this family which are built for tasks like *Classification* or *Seq2Seq generation*. # 1. Smart Contract Vulnerabilities with Explanations (`vulnerable-w-explanations`) This repository offers two datasets of `Solidity` functions, This dataset comprises vulnerable `Solidity` functions audited by 5 auditing companies: ([Codehawks](https://www.codehawks.com/), [ConsenSys](https://consensys.io/), [Cyfrin](https://www.cyfrin.io/), [Sherlock](https://www.sherlock.xyz/), [Trust Security](https://www.trust-security.xyz/)). These audits are compiled by [Solodit](https://solodit.xyz/). ## Usage ```python from datasets import load_dataset dataset = load_dataset( "msc-smart-contract-audition/vulnerable-functions-base", split='train', escapechar='\\', ) ``` | Field | Description | |-|-| | 1. `name` | Title of audit report | | 2. `severity` | Severity of vulnerability (`Low`, `Medium`, `High`) | | 3. `description` | Description/Explanation of the vulnerability | | 4. `recommendation` | Recommended mitigation of the vulnerability | | 5. `impact` | Explains how the vulnerability affects the smart contract (Optional) | | 6. `function` | Raw vulnerable *solidity* code (*Sometimes this could be inaccurate. Best efforts were made to clean-up the dataset but some rows might include other programming languages e.g. javascript*) | # 2. Verified functions (`verified-functions`) This repository also includes a dataset with functions with no known vulnerabilities. They were scraped-off from [Etherscan](https://etherscan.io). Specifically, the functions are a part of the top 500 auditted contracts holding at least `1 ETH`. ## Usage ```python from datasets import load_dataset dataset = load_dataset( "msc-smart-contract-audition/vulnerable-functions-base", name="verified-functions", split='train', escapechar='\\', ) ``` | Field | Description | |-|-| | 1. `function` | Raw solidity code | # Additional Info - The newline characters are escaped (i.e. `\\n`) - The dataset has a single split `train` (hence the adjusted loading isntructions).

许可证:MIT许可证 配置项: - 配置名称:带解释的智能合约漏洞数据集(vulnerable-w-explanations),数据文件:db-vulnerable.csv,为默认配置 - 配置名称:已验证函数数据集(verified-functions),数据文件:db-verified.csv 语言:英语 标签:金融 美观名称:带解释的智能合约漏洞数据集 规模分类:1K<n<10K 本系列数据集可作为该家族中其他面向分类(Classification)或序列到序列(Seq2Seq)生成任务的数据集的基础。 # 1. 带解释的智能合约漏洞数据集(vulnerable-w-explanations) 本仓库提供两类Solidity函数数据集,本数据集包含经五家审计公司审计的存在漏洞的Solidity函数:分别为Codehawks、ConsenSys、Cyfrin、Sherlock、Trust Security,所有审计报告均由Solodit汇总整理。 ## 使用方法 python from datasets import load_dataset dataset = load_dataset( "msc-smart-contract-audition/vulnerable-functions-base", split='train', escapechar='\', ) | 字段 | 说明 | |-|-| | 1. `name` | 审计报告标题 | | 2. `severity` | 漏洞严重等级(分为`Low`(低危)、`Medium`(中危)、`High`(高危)) | | 3. `description` | 漏洞描述与解释 | | 4. `recommendation` | 漏洞修复建议 | | 5. `impact` | 漏洞对智能合约的影响说明(可选) | | 6. `function` | 存在漏洞的原始Solidity代码(注:我们已尽力清理数据集,但部分内容可能存在不准确之处,仍可能包含JavaScript等其他编程语言的行) | # 2. 已验证函数数据集(verified-functions) 本仓库还包含一类无已知漏洞的函数数据集,这些数据从Etherscan平台爬取获取。具体而言,这些函数属于前500个经审计且持仓至少1 ETH的智能合约的一部分。 ## 使用方法 python from datasets import load_dataset dataset = load_dataset( "msc-smart-contract-audition/vulnerable-functions-base", name="verified-functions", split='train', escapechar='\', ) | 字段 | 说明 | |-|-| | 1. `function` | 原始Solidity代码 | # 附加信息 - 换行符已完成转义(即`\n`) - 该数据集仅包含`train`划分(因此需对应调整加载指令)。
原始信息汇总

数据集概述

1. Smart Contract Vulnerabilities with Explanations (vulnerable-w-explanations)

  • 数据文件: db-vulnerable.csv
  • 描述: 包含由五家审计公司审计的Solidity函数,这些审计由Solodit编译。
  • 字段:
    • name: 审计报告标题
    • severity: 漏洞严重性(Low, Medium, High
    • description: 漏洞描述/解释
    • recommendation: 漏洞的推荐缓解措施
    • impact: 漏洞对智能合约的影响(可选)
    • function: 原始的Solidity漏洞代码

2. Verified functions (verified-functions)

  • 数据文件: db-verified.csv
  • 描述: 包含无已知漏洞的Solidity函数,这些函数从Etherscan抓取,属于至少持有1 ETH的前500个审计合约。
  • 字段:
    • function: 原始的Solidity代码

数据集使用

  • 加载示例:
    • vulnerable-w-explanations: python from datasets import load_dataset dataset = load_dataset( "msc-smart-contract-audition/vulnerable-functions-base", split=train, escapechar=, )

    • verified-functions: python from datasets import load_dataset dataset = load_dataset( "msc-smart-contract-audition/vulnerable-functions-base", name="verified-functions", split=train, escapechar=, )

附加信息

  • 换行符被转义(例如\n
  • 数据集只有一个分割train
搜集汇总
数据集介绍
main_image_url
构建方式
本数据集旨在为智能合约安全分析领域提供基础资源,其构建过程严谨且具有代表性。首先,脆弱函数子集(vulnerable-w-explanations)整合了来自Codehawks、ConsenSys、Cyfrin、Sherlock及Trust Security五家知名审计公司的审计报告,这些报告经由Solodit平台汇编,确保了漏洞来源的多样性和权威性。其次,已验证函数子集(verified-functions)通过从Etherscan爬取排名前500且持有至少1 ETH的已审计合约中的函数构建,提供了无已知漏洞的对照样本。两个子集均以CSV格式存储,并对换行符进行了转义处理,便于后续处理。
特点
该数据集的核心特色在于其双轨结构,兼顾了脆弱与安全函数,为分类和序列到序列生成等任务提供了对比基准。脆弱函数子集包含详细的漏洞信息,如名称、严重性(低、中、高)、描述、修复建议、影响及原始Solidity代码,其中影响字段为可选,丰富了分析维度。已验证函数子集则专注于提供纯净的Solidity代码,作为负样本使用。值得注意的是,数据集规模在1千至1万条之间,适中且聚焦于金融领域,尽管部分代码可能因清洗限制而混入其他语言,但整体质量经过尽力优化。
使用方法
数据集的使用通过HuggingFace的datasets库实现,简洁高效。加载脆弱函数子集时,采用默认配置,直接调用load_dataset函数并指定'vulnerable-w-explanations'配置(或省略,因其为默认),同时设置escapechar为反斜杠以处理转义换行符。对于已验证函数子集,需明确指定name参数为'verified-functions'。两个子集均仅包含'train'分割,无需额外划分。用户可根据字段说明提取函数代码、漏洞描述等信息,用于训练分类模型或生成修复建议,操作直观且与现有工具链无缝集成。
背景与挑战
背景概述
智能合约作为去中心化金融(DeFi)的基石,其安全性直接关系到数十亿美元数字资产的安全。然而,Solidity语言固有的复杂性和区块链不可篡改的特性,使得智能合约漏洞频发,成为领域内亟待解决的核心问题。在此背景下,msc-smart-contract-audition/vulnerable-functions-base数据集应运而生,由研究团队整合自Codehawks、ConsenSys、Cyfrin、Sherlock和Trust Security五家顶尖审计公司的报告,并经Solodit平台编译,于近期发布。该数据集聚焦于提取存在漏洞的Solidity函数,并附带严重等级、描述、修复建议等结构化信息,旨在为自动化漏洞检测与修复提供基准训练资源。其影响力在于填补了高质量、带解释的智能合约漏洞函数数据的空白,为分类、序列生成等下游任务奠定了坚实基础,推动了区块链安全领域机器学习研究的发展。
当前挑战
该数据集面临的挑战首先体现在领域问题的复杂性上:智能合约漏洞类型多样且隐蔽,如重入攻击、整数溢出等,仅凭函数级别的代码片段难以完整捕捉上下文依赖的逻辑缺陷,导致基于该数据集的模型可能产生高误报或漏报。其次,构建过程中存在显著困难:原始审计报告中的函数提取依赖人工清理与对齐,部分行可能混入JavaScript等非Solidity代码,引入噪声;同时,从Etherscan抓取的已验证函数虽无已知漏洞,但无法保证绝对安全,可能隐含未披露的缺陷,影响负样本的纯净度。此外,数据规模有限(1K-10K),且严重等级分布不均,可能制约模型对低频高危漏洞的学习能力。
常用场景
经典使用场景
在智能合约安全研究领域,该数据集为基于Solidity语言的漏洞检测任务提供了标准化的基准资源。研究者可将其加载为分类或序列到序列生成任务的训练数据,利用其中标注的漏洞严重等级、描述及修复建议,构建能够自动识别与定位智能合约中高风险代码片段的模型。数据集中包含的原始易损函数代码与经过安全审计的验证函数,共同构成了对比学习的理想样本,使得模型在区分安全与不安全代码模式时具备更强的泛化能力。
实际应用
在实际应用中,该数据集可直接赋能自动化智能合约审计工具的开发与迭代。安全工程师可利用基于此数据集训练的模型,在合约部署前快速筛选出潜在的漏洞函数,降低人工审计的成本与遗漏风险。此外,去中心化金融(DeFi)平台可将此类模型集成至持续集成/持续部署流水线中,实现对合约更新的实时安全检测。其提供的修复建议还能辅助开发者在编码阶段即时修正缺陷,从而提升整个区块链生态系统的稳健性。
衍生相关工作
基于该基础数据集,衍生出了面向智能合约漏洞分类与代码修复生成等专项任务的扩展数据集与工作。例如,研究者利用其中的易损函数及其解释构建了序列到序列模型,实现了从漏洞代码到自然语言描述的自动生成;另有工作将其与无漏洞函数结合,训练出用于漏洞定位的图神经网络模型。这些衍生工作不仅验证了基础数据集在迁移学习中的有效性,还进一步推动了智能合约安全从被动审计向主动防御的范式转变。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务