生态工具箱 | 虚拟机测试工具WasmFuzzer,智能合约安全防火墙

这篇具有很好参考价值的文章主要介绍了生态工具箱 | 虚拟机测试工具WasmFuzzer,智能合约安全防火墙。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

长安链生态工具箱  

丰富实用的区块链生态工具不仅可以让开发者部署、开发过程更加得心应手,还可以从能力上扩展区块链应用边界。长安链正在构建强大的生态工具箱以增强在其在各类场景下的应用能力,如智能合约漏洞检测、抗量子多方安全计算、链迁移、密文检索等等

长安链虚拟机测试工具WasmFuzzer

智能合约的安全不仅仅是合约代码安全,来自节点的合约代码将被部署在智能合约虚拟机中,虚拟机负责为区块链上每个节点中的合约代码提供沙箱式的执行环境。虚拟机可能存在有逃逸漏洞、逻辑漏洞、堆栈溢出漏洞、资源滥用漏洞等安全隐患,容易受到外部攻击。

为消除虚拟机的安全隐患,社区针对长安链智能合约虚拟机的特点采用全新Wasm字节码级别的变异方法和自适应变异策略,结合差分测试和蜕变测试等Test Oracle判定方法,推出了长安链智能合约虚拟机模糊测试工具WasmFuzzer。这款Wasm字节码级别的灰盒模糊测试器能够更加快速和全面的触发智能合约虚拟机中的深层次缺陷和漏洞。相比业界经典的AFL工具,测试覆盖率和缺陷检测数量平均提升10%,缺陷检测速度平均提升25%。

WasmFuzzer主要包括三个部分:展示层主要包括命令行接口和测试报告的生成;中间层主要有种子生成、测试用例的变异,变异策略和结果的判定;测试执行引擎包括Forkserver、读写文件和覆盖的获取。

生态工具箱 | 虚拟机测试工具WasmFuzzer,智能合约安全防火墙

WasmFuzzer有四个核心功能:生成指令、变异模块、错误检测、测试结果。

1. 生成指令:指令是WebAssembly代码当中的基础单位。要完整地测试WebAssembly虚拟机,则需要尽可能地覆盖所有指令,WasmFuzzer提供生成指令的功能。

2. 变异模块:模块是WebAssembly的基本单位。当已有一个模块时,就可以在它上面进行变异,获得一个新的模块,用于模糊测试。WasmFuzzer提供了一定量的变异操作,并设计了变异调度策略。

3. 错误检测:在软件运行过程中,可能会发出一些信号,让外部介入,调用预设的信号处理软件WasmFuzzer进行处理。WasmFuzzer可以记录下当前的运行状态,进而改进测试质量与记录崩溃位置。

4. 测试结果:主要分为3部分——在队列中的WebAssembly字节码、发生独特崩溃的WebAssembly字节码和独特挂起的WebAssembly字节码。

文档链接:https://docs.chainmaker.org.cn/dev/虚拟机测试工具.html

 文章来源地址https://www.toymoban.com/news/detail-498208.html

到了这里,关于生态工具箱 | 虚拟机测试工具WasmFuzzer,智能合约安全防火墙的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 29 旋转工具箱

    实现了一个菜单按钮的动画效果,当鼠标悬停在菜单按钮上时,菜单按钮会旋转315度,菜单按钮旋转的同时,菜单按钮旋转的8个小圆圈也会依次旋转360度,并且每个小圆圈的旋转方向和菜单按钮的旋转方向相反,当鼠标悬停在某个小圆圈上时,该小圆圈的旋转方向会变为顺时

    2024年01月18日
    浏览(58)
  • Python工具箱系列(三十)

    MySQL的口号是“世界上最流行的开源关系型数据库”,而PostgreSQL的Slogan则是“世界上最先进的开源关系型数据库(PostgreSQL: The World\\\'s Most Advanced Open Source Relational Database)”,一看这就是一对老冤家了。这两个口号很好的反映出了两者的形象特质:PostgreSQL是功能丰富,高大上的严

    2024年02月03日
    浏览(62)
  • Python工具箱系列(三十四)

    SQLAlchemy是著名的ORM(Object Relational Mapping-对象关系映射)框架。其主要作用是在编程中,把面向对象的概念跟数据库中表的概念对应起来。对许多语言(例如JAVA/PYTHON)来说就是定义一个对象,并且这个对象对应着一张数据库的表。而这个对象的实例,就对应着表中的一条记录。

    2024年02月06日
    浏览(51)
  • Python工具箱系列(三十一)

    Neo4j是一个高性能的开源的,使用Java语言实现的NoSQL图数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个

    2024年02月03日
    浏览(49)
  • Python工具箱系列(三十三)

    Timescaledb 在物联网时代,出现了大量以时间为中心海量产生的传感器数据,称为时序数据。这类数据的特点是: 数据记录总有一个时间戳。 数据几乎总是追加,不更新也不删除。 大量使用近期的数据。很少更新或者回填时间间隔的缺失数据。 与时间间隔频率关系不大。但累

    2024年02月06日
    浏览(60)
  • Python工具箱系列(三十六)

    基于Docker的数据库开发环境 前文介绍了sqlite/mysql/mssql等数据库系统在ubuntu的安装与部署过程,相对是比较复杂的,需要耐心等待下载以及排除各种故障,对于开发人员来说是不太友好。在某些情况下,开发人员要测试在多个数据库环境下软件的正确性,需要部署多个数据库,

    2024年02月09日
    浏览(49)
  • Java各种工具箱的使用

    就是给定一些字符串,如果一旦有空的就返回true,常用于判断好多字段是否有空的(例如web表单数据)。 这两个方法的区别是hasEmpty只判断是否为null或者空字符串(“”),hasBlank则会把不可见字符也算做空,isEmpty和isBlank同理。 避免subString方法越界问题,index的位置还支持

    2024年02月07日
    浏览(60)
  • Python工具箱系列(四十一)

           前文的代码示例了使用gzip对单个文件进行压缩。本文示例使用更通用的zipfile来批量压缩文件。zipfile也是python内置的库,使用起来非常方便。废话不说,直接上代码示例。        上述示例代码中,再次引入一个python内置的轻量级数据库dbm。与shelve类似,也是key-val

    2024年02月11日
    浏览(52)
  • Python工具箱系列(三十二)

    Elasticsearch是一个基于Lucene的搜索引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful 的API接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是非常流行的企业级搜索引擎。官方支持的客户端语言包括Java、.NET(C#)、PHP、Python、Apa

    2024年02月05日
    浏览(52)
  • (转载)matlab遗传算法工具箱

            以下内容大部分来源于《MATLAB智能算法30个案例分析》,仅为学习交流所用。         遗传算法(genetic algorithm,GA)是一种进化算法,其基本原理是仿效生物界中的“物竞天择、适者生存”的演化法则。遗传算法是把问题参数编码为染色体,再利用迭代的方式进行选

    2024年02月07日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包