ContractGuard:面向以太坊区块链智能合约的入侵检测系统
文章地址
X. Wang, J. He, Z. Xie, G. Zhao and S. Cheung, “ContractGuard: Defend Ethereum Smart Contracts with Embedded Intrusion Detection,” in IEEE Transactions on Services Computing, vol. 13, no. 2, pp. 314-328, 1 March-April 2020, doi: 10.1109/TSC.2019.2949561.

中文版:[1]赵淦森,谢智健,王欣明,何嘉浩,张成志,林成创,Ziheng Zhou,陈冰川,Chunming Rong.ContractGuard:面向以太坊区块链智能合约的入侵检测系统[J].网络与信息安全学报,2020,6(02):35-55.
文章地址

0. Abstract
智能合约本质。智能合约易受攻击。常见攻击方法。提出ContractGuard。ContractGuard实现方式。现有IDS不适用于太坊智能合约。为解决前面问题,设计嵌入式的架构,实现把 ContractGuard 直接嵌入智能合约的执行代码中。ContractGuard 保护智能合约的方式。ContractGuard存在的约束,进一步优化。优化结果展示。

1. INTRODUCTION

  • 由区块链引出智能合约。智能合约是什么。
  • 智能合约受到攻击会导致严重后果及其原因。
  • 已有文献大多为静态分析尚未有文献可以在部署后保护智能合约。(本文的创新处)
  • 介绍传统入侵检测系统。(两种主要类型)
  • 本文提出了嵌入式IDS架构。IDS架构基本思路。IDS架构可防护的攻击举例(两个最著名的攻击)。
  • 传统IDS不适用于智能合约的原因。
  • 基于上述原因本文提出了嵌入智能合约 代码中的基于异常的 IDS 架构 ContractGuard。ContractGuard基于异常检测的优势,其关键思路。(上下文标记无环路径分析、 高效 Gas 的自适应路径集存储)
  • 简介本文的实验和取得的成果
  • 本文的贡献
  • 本文的结构

2. BACKGROUND

  • 2.1 Ethereum Smart Contract Program Model
    以太坊智能合约程序模型,三个层面(程序架构、调用模型、数据管理模型)
  • 2.2 Context-Tagged Acyclic Path
    • 解释context-tagged 无环路径定义
    • context-tagged 无环路径适用于异常检测任务的两个特性(路径数量有限、具有不同循环迭代次数的完整路径可以 共享同一组非循环路径。)
    • 去回边后的函数调用图

3. MOTIVATION
提出ContractGuard 中的一个关键的假设:通过比较不同交易所触发的控制流来区分正常 的交易和异常的交易。分析11种安全漏洞来验证假设成立.证实了基于异常控制流的 IDS 对漏洞攻击能进行有效的防御。(对于其他漏 洞,其攻击的目标并非智能合约本身,而是针对 以太坊的运行环境产生的漏洞(#5.随机种子和#7. 打包交易顺序),或者针对第三方与智能合约进行 交互所产生的漏洞(#10.短地址攻击))

4. THE APPROACH OF CONTRACTGUARD

  • 4.1 Overview
    介绍ContractGuard 整个智能合约防护的过程(训练、保护和审计 3 个阶段)
    缺陷: 训练过程依赖大量测试用例,审计过程需要人工审核

  • 4.2 Protection Boundary of ContractGuard
    具体介绍出发IDS回滚的三种情景(整个路径执行完毕之后才会检查,是否会产生时间代价?)
    情景1 :发生跨智能合约的调用时, 可以在 calldata 的消息中植入当前 calling-context的信息,以确保可以建立完整的 calling-context 计算。(AB共同建立一个完整的calling-context)
    情景2:ContractGuard 会记录 A 和 B 的 context-tagged 无 环路径,但A和B是独立进行异常标记以及回滚。(AB拥有独立的calling-context)(针对情景2有一个更好的解决方案,但是是以增加开销为代价的因此舍弃这种解决方案)
    情景3 :只保护B

  • 4.3 Intra-Procedural Path Indexing and Profiling (函数内的路径编码)
    ContactGuard 采用 Ball 和 Larus[21]提出的 EPP 算法对函数内的路径进行记录和编码。解释函数内路径编码过程

  • 4.4 Calling-Context Indexing and Profiling(调用上下文的记录与编码)
    ContractGuard 还需 要调用上下文信息。受 EPP 算法的启发,本文设 计了高效的上下文调用信息标识与配置算法。

  • 4.5 Gas-Efficient Adaptive Path Set Storage(存储安全路径的方案)
    给出三种优质解决方案,通过 ContractGuard 实现 3 种存储 方案的性能比较来动态选择出采用何 种存储方案

5. SIMULATION EXPERIMENTS ON THE MAINNET
为了评估 ContractGuard 的效率,本文进行了仿真实验,主要从开销方面分析将IDS嵌入智能 合约的实际可行性和可操作性,以及嵌入式 IDS 对异常行为的识别过程是否导致过多无效的错误 警报。(通过实验评估ContractGuard,主要评估开销和误报率)

  • 5.1 Is the Overhead of ContractGuard Practical? (ContractGuard花费的开销是否在用户的接受范围之内)
    ContractGuard 保护智能合约会涉及两种开销,这 两种开销都需要花费额外的以太币。(部署开销、运行开销)

    • 智能合约涉及的两种开销。实验证明智能 合约嵌入IDS所需部署开销是切实可行的
  • 5.2 Is It Practical to Handle False Alarms Manually? 手动处理错误警报的可行性分析

6. CONTROLLED EXPERIMENTS (基于现实世界合约漏洞的受控实验)
本节对 ContractGuard 的有效性进行实验评 估,将评估 3 个研究问题。
问题 1:ContractGuard 是否可以有效地检测漏洞?
问题 2:部署开销、运行开销和错误警报的数量是多少?
问题 3:哪些因素会影响部署和运行时开销?

  • 6.1 实验对象(针对问题1,2进行两组实验)解释选择这些实验对象的原因
  • 6.2 真实漏洞的实验研究
  • 6.3 真实漏洞的实验研究
  • 6.4 影响开销的因素
  • 6.5 讨论(ContractGuard存在的一些问题,值得进一步讨论和分析并作研究的方面)

7. RELATED WORK

  • 7.1 Smart Contract Analysis and Verification
    现有工具的局限性
    (7.2 7.3本文涉及的两个关键技术)
  • 7.2 Execution Profiling
    常见的动态分析技术
  • 7.3 Intrusion Detection System (IDS)
    入侵检测系统

8. CONCLUSION

  • 智能合约漏洞的零容忍,严重危害性
  • 本研究的主要目标以及最大的创新点,本研究的优势和结论。

区块链论文8(ContractGuard分析写作手法)相关推荐

  1. 区块链论文:OmniLedger,一种区块链分片技术

    区块链论文请关注本专栏. 这是2018年的论文,发现已经有介绍这篇论文的中文博客,本文跟它们不同地方在于,希望站在高层视角,以问题为导向来分析这篇论文. 这篇论文的作者和Byzcoin来自同一个人,而 ...

  2. 如何评价区块链论文?区块链相关学术会议级别大科普

    区块链技术可不是骗菜场大妈的传销工具.真正的区块链技术,可是融合了计算机科学和密码学等基础科学的硬核技术.在衡量一个区块链项目是否靠谱的时候,一个非常重要指标就是:该项目所用的区块链技术是否有高水平的 ...

  3. 【区块链论文阅读】A Weak Consensus Algorithm and Its Applic

    [区块链论文阅读]A Weak Consensus Algorithm and Its Application to High-Performance Blockchain 这是一篇网络顶会INFOC ...

  4. 区块链论文:Byzcoin,通过集体签名让比特币具有强一致性且强化安全

    区块链论文请查看本专栏 https://zhuanlan.zhihu.com/blockchain-top-paper 阅读本文前,建议先阅读下面链接的文章: ​https://zhuanlan.zh ...

  5. 区块链论文:去中心化证人共同签名,让认证者诚信或被发现

    本文首发于 https://zhuanlan.zhihu.com/blockchain-top-paper 在阅读本文前,建议下阅读下面文章: ​ https://zhuanlan.zhihu.com ...

  6. 区块链论文9 FlyClient-加密货币的超轻客户端

    本文首发于本人的知乎专栏<区块链技术最前沿> https://zhuanlan.zhihu.com/p/95927454 本文的主要内容来自斯坦福的论文<FlyClient: Sup ...

  7. 2019.3.18 区块链论文翻译

    Blockchain and Biometrics: A First Look intoOpportunities and Challenges Universidad Autonoma de Mad ...

  8. 【问链-区块链基础知识系列】 第十二课 区块链产业落地现状分析

    摘要:结合鲸准研究院发布的2018区块链商业落地情况分析报告,然后加入了我参与和了解的区块链落地情况进行整理书写. 我们知道"2018年将是区块链真正与实体经济结合并爆发的一年." ...

  9. 【该文章已被封禁】区块链钱包APP逆向分析及实现

    [区块链钱包APP逆向分析及实现]该文章已被封禁,需要看的兄弟姐妹们,请打开下面个人的博客进行查看: 0.原文链接:点击我进行打开: https://qqizai.gitee.io/qqizai/vi ...

最新文章

  1. 男孩子学计算机和学医哪个好,你认为学医好还是读211大学的电子信息好?
  2. MySQl数据库必会sql语句(提升版)
  3. 黑客与画家 第十四章
  4. VM:Vmware简介、安装、使用方法详细攻略
  5. steam怎么看邮箱绑定的账号_怎么为QQ邮箱设置英文邮箱账号
  6. 【学术相关】RSPapers | 工业界推荐系统论文合集
  7. iOS Hacker 反注入和反反注入
  8. 微信终端自研 C++协程框架的设计与实现
  9. APP开发者到期续费说明
  10. 如何理解程序保存数据就是输出,读取数据就是输入的含义
  11. 智慧屏用鸿蒙的生态,紧随鸿蒙OS手机版 ,智慧屏为什么对鸿蒙生态这么重要?...
  12. Oracle dbms_random随机函数包
  13. BZOJ3495 PA2010 Riddle 【2-sat】
  14. c#图片处理之:在图片上打上文字
  15. 微信小程序:配置合法域名
  16. 系统分析师-论文(论系统分析中对用户需求的把握、论信息系统开发方法及其应用)
  17. Serdes 原理及调试学习
  18. WSUS服务器点击报告报错解决办法
  19. 烂到不想考研!大学糟糕宿舍大盘点!
  20. 5G+智慧矿山系统如何降低开发成本

热门文章

  1. 【毕业设计】基于STM32的心率检测器 - 单片机 嵌入式 物联网
  2. java如何创建一个文本框_创建一个有文本框和三个按钮的程序。当按下某个按钮时,使不同的文字(Java..._考试资料网...
  3. Windows Media Encode 9简介及SDK
  4. Linux启动引导参数grub
  5. 32位机4G虚拟内存 64位机128G虚拟内存计算误区
  6. 用ajax提交数据到ashx用JSON.stringify格式化参数后在服务器端取不到值?[转载至:http://q.cnblogs.com/q/34266/]...
  7. HTML+CSS+JS网页设计期末课程大作业(家居网)
  8. 屡次让拳头翻车的ping:作者因车祸英年早逝,千行源码改变世界
  9. vTPM环境部署(ubuntu)
  10. 粗读MD-UNET: Multi-input dilated U-shape neural network for segmentation of bladder cancer