首页 > 其他分享 >智能合约自动化审计介绍

智能合约自动化审计介绍

时间:2022-10-10 10:55:44浏览次数:54  
标签:审计 安全 智能 自动化 区块 合约

区块链的智能合约发展至今,暴露出的问题不少,智能合约的正确性和安全性面临着巨大的问题;在海量的智能合约中,最好的一种设想就是通过自动化审计来降低人工审计的复杂度......

 

前言

  当前区块链技术和应用尚处于快速发展的初级阶段,面临的安全风险种类繁多,从区块链生态应用的安全,到智能合约安全,共识机制安全和底层基础组件安全,安全问题分布广泛且危险性高,对生态体系,安全审计,技术架构,隐私数据保护和基础设施的全局发展提出了全新的考验。

PART01-智能合约自动化审计介绍

  随着区块链技术越来越火,并在不同的行业有所应用,如金融、游戏、版权、溯源等;其中出现过不少的安全问题,尤其是区块链的智能合约发展至今,暴露出的问题不少,智能合约的正确性和安全性面临着巨大的问题;在海量的智能合约中,最好的一种设想就是通过自动化审计来降低人工审计的复杂度。同时市场上有安全公司,也推出各自的智能合约自动化安全审计平台,那么今天我们就来介绍一下智能合约自动化审计。

我们把自动化审计分为三个部分:

  第一种就是特征代码的匹配;第二类就是基于形态化验证的自动化审计;最后一类是基于符号执行和符号抽象的自动化审计。

1)特征代码匹配

  首先特定代码匹配。大家从名字上来看应该就能理解到,其实就是对恶意代码进行一些提取抽象,像我们之前做的代码静态检测,我们抽样成一种语义匹配,然后再去匹配它的静态源代码。

  这种审计的方法的优点是显而易见的,比如说速度很快,因为它就是对源码进行一个字符串的匹配。第二是它能够迅速地响应新的漏洞,因为这种审计方法大部分是以插件形式开发,比如出现了一个新的漏洞,我们就可以快速提交一些新的匹配模式。

  那么它的缺点在哪里呢?我们所理解的现在的区块链都应该是公开透明的,但实际情况并不是这样,我们大概做了一个统计,目前在以太坊上其实有超过一半的智能合约是不开源的,只暴露一个OPCODE。

  OPCODE的分析对于安全人员来说也面临着巨大的挑战,有些人费了十分大的力气,去逆向OPCODE,这就导致了它的适用范围极为有限。

  其次就是漏报率高。因为它的一些静态审计方法其实并不和传统的静态代码审计方法一致,传统的静态审计方法,比如说APP检测,会调用库里面,确定稳定的一些函数,来对它进行审计,但智能合约里面它的一些函数、它一些特征等等,还是变化性比较多的,所以说它的漏报率会比较高。

2)基于形式化验证的自动化审计

  使用形式化验证来审计智能合约安全,将EVM编译后的一些OPCODE ,通过特定描述语言转化成了一个形式化的model,然后通过形式化model的验证来去判断它代码中的逻辑是否存在问题。

3)基于符号执行、符号抽象的自动化审计

  基于符号执行、符号抽象的自动化审计检测出来的数据还是需要人工进行二次确认,这个工作其实是非常繁琐。

 

PART02-一个出色的智能合约自动化审计系统该满足什么条件?

1)自动化

  要求对智能合约的安全审计,要全自动,或者至少是半自动的,即上传合约源代码或提供智能合约的token地址,即可由系统,自动化进行合约的安全扫描。并且能够按需要配置为周期调度(如每月,半年)自动进行调度审计。

2)准确性

  要求对智能合约的安全审计,误报率低。

3)高效率

  要求对智能合约的安全审计必须是高效的,即要求审计的时间不能太长,越快越好。

4)无风险

  要求对智能合约的安全审计不会破坏或修改原有的合约的功能。

 

只有做到了以上4点,才是一个基本合格的智能合约自动化审计系统。

除此之外,如果要做得更加的专业,更出色,还需要满足下面的四个需求:

  第一、系统具有智能合约的当前标准规范管理;这样一来,使用者可以在系统上传,下载标准规范进行参考。如果说审计出来的安全问题,能与标准规范相对应,并定位到标准规范是最好的,但是当对智能合约安全审计的标准规范不细或缺乏,做到这一点太难了。

  第二、系统的使用操作体验要好;简单举例:

  (1)可以采用向导式,引导用户熟悉系统的功能操作。

  (2)具备用户自定义合约的行业分类以及所属厂商分类等。

  (3)审计出来的安全问题,能定位到行列,并至少能提供此安全问题的修正安全,当然,有自动化修正更好,具备自动化修正功能,相应提供保留原内容的版本,以便可进行回退和比较。

  第三、易扩展;当前,区块链的平台技术以及安全专家针对区块链智能合约发现的安全问题的check list是不断演进的,系统应很好的解决这方面的需求,就需要系统有一个很好的易扩展的设计要求。

  第四、对安全审计结果报告展现丰富;能导出PDF,EXCEL,WORD,HTML 格式是必需的,报告的展现应有图表,表格元素的体现,当然,要做好这点,需要你对系统的使用方(用户)有更多的了解,针对用户做些定制他们关注的报告就更出彩了;报告出彩的功能还可以是报告中有审计历史对比趋势分析等。

 

标签:审计,安全,智能,自动化,区块,合约
From: https://www.cnblogs.com/Soy-technology/p/16774860.html

相关文章

  • 实时营销引擎在vivo营销自动化中的实践 | 引擎篇04
    作者:vivo互联网服务器团队本文是《vivo营销自动化技术解密》的第5篇文章,重点分析介绍在营销自动化业务中实时营销场景的背景价值、实时营销引擎架构以及项目开发过程中......
  • 安科瑞智能母线监控在数据中心的应用
    引言近年来,随着母线槽在建筑及工厂的配电中越来越广泛,母线槽场景运用的越多,随着数据中心建设的快速发展和更高需求,智能母线系统逐渐被应用于机房的末端配电中,具有电流小......
  • 一文理清pycharm+git+jenkins项目持续集成和自动化构建流程(Windows)
    最近得空,整理了一下pycharm+git+jenkins实现python项目持续集成和自动化构建的配置流程,包括软件包、所需插件的安装配置。1、安装和配置git    1.1安装git:官网下......
  • Docker 安装 Jenkins 并实现项目自动化部署
    Jenkins是一款开源的持续集成(DI)工具,广泛用于项目开发,能提供自动构建,测试,部署等功能。作为领先的开源自动化服务器,Jenkins提供了数百个插件来支持构建、部署和自动化任何......
  • 智能车载终端项目方案
     随着汽车技术方面日新月异的进步,车载终端也在悄无声息的进化。车载终端是对车辆进行监控系统管理的前端设备,一般隐秘地安装在各种车辆内,是一种以ARM处理器为核心,利用GP......
  • EasyCVR智能边缘网关设备提示报错该如何解决?
    EasyCVR视频融合平台部署轻快、功能灵活,在视频能力上,可提供视频直播、录像、回放、检索、云存储、级联、告警等功能。平台可支持多协议、多类型设备接入,包括国标GB28181、R......
  • 智能合约web3.0系统开发实现核心
     Web3就是一个去中心化的互联网,旨在打造出一个全新的合约系统,并颠覆个人和机构达成协议的方式。Web3复刻了第一版互联网(即Web1.0)的去中心化基础架构,Web1.0的特色是用户......
  • #打卡不停更#智能喂食器
    一、介绍​随着人们生活方式的不断改变,宠物猫在许多家庭中占有重要的地位,其凭借独立的个性和易于打理的饲养方式,成为当下上班族喜欢的宠物之一,人们更是把宠物猫和......
  • 招聘|瑞马智能招3D视觉算法工程师
    公司介绍:江苏国华管塔制造有限公司,位于徐州经济开发区,地理位置优越,交通便利。公司注册资金1.02亿元,建筑面积约4.5万平方米,员工600多人。主要从事各类输电线路钢管杆、钢管塔......
  • 从0到1智能风控决策引擎构建
    引言互联网时代,万物互联,网络安全形势越来越严峻,安全是企业的基石,风控在企业中扮演着“警察”角色,运用各种技术和手段,保护企业内的用户利益不受侵害。风控决策引是风控中......