首页 > 其他 > 详细

20199305 2019-2020-2 《网络攻防实践》综合大实践

时间:2020-06-22 23:41:08      阅读:96      评论:0      收藏:0      [点我收藏+]

The Art of The Scam: Demystifying Honeypots in Ethereum Smart Contracts

一、前言

以太坊是一个平台,它上面提供各种模块让用户来搭建应用,如果将搭建应用比作造房子,那么以太坊就提供了墙面、屋顶、地板等模块,用户只需像搭积木一样把房子搭起来,因此在以太坊上建立应用的成本和速度都大大改善。具体来说,以太坊通过一套图灵完备的脚本语言(Ethereum Virtual Machinecode,简称EVM语言)来建立应用。平台之上的应用,其实就是智能合约,这是以太坊的核心。合约是一个活在以太坊系统里的自动代理人,他有一个自己的以太币地址,当用户向合约的地址里发送一笔交易后,该合约就被激活。它不仅速度更快、花费更低,而且还避免了手动填写大量表格可能导致的人为错误,解决了传统合约中的信任问题,大幅降低了信任成本。随着智能合约变得越来越受欢迎,价值也越来越高,它们也越来越成为攻击者感兴趣的目标。在过去几年中,一些智能合约被攻击者利用。然而,一种更积极主动的方法的新趋势似乎正在上升,攻击者不再搜索易受攻击的合同。相反,他们试图通过部署包含隐藏陷阱的看似脆弱的合同来引诱受害者进入陷阱。这种新型合约通常被称为蜜罐。

二、论文

1、引入

本文通过调查蜜罐智能合约的普遍性、行为和对以太坊区块链的影响,首次对蜜罐智能合约进行了系统分析。作者开发了一个蜜罐技术的分类法,并使用它来构建蜜獾———一种使用符号执行和定义良好的启发式方法来公开蜜罐的工具。对200多万个智能合约进行了大规模的分析,结果表明,蜜獾不仅具有很高的精度,而且还具有很高的效率。具体而言,本文做出了以下贡献:

  • 对以太坊出现的一种新型欺诈蜜罐进行了第一次系统分析;

  • 确定蜜罐使用的常见技术,并将其分类;

  • 提供蜜獾————一种自动检测以太坊智能合约中的蜜罐的工具;

2、背景介绍

下面提供工作设置所需的背景,包括对智能合约、以太坊虚拟机和以太扫描区块链浏览器的描述。

(1)智能合约

本质上来说,智能合约是一段程序,它以计算机指令的方式实现了传统合约的自动化处理。简单讲,智能合约就是双方在区块链资产上交易时,触发执行的一段代码,这段代码就是智能合约。智能合约程序不只是一个可以自动执行的计算机程序,它本身就是一个系统参与者,对接收到的信息进行回应,可以接收和储存价值,也可以向外发送信息和价值。这个程序就像一个可以被信任的人,可以临时保管资产,总是按照事先的规则执行操作。尽管有多种编程语言,Solidity仍然是以太坊中开发智能合约最突出的编程语言。Solidity的语法类似于C和JavaScript的混合体。它附带了许多特定于智能合约的独特概念,例如资金转移或调用其他合约的能力。

(2)以太坊虚拟机

以太坊区块链由相互不信任的节点组成的网络组成,这些节点共同构成分散的公共账本。该分类账允许用户通过向网络提交交易来创建和调用智能合约。这些交易由所谓的矿工处理。矿工在验证数据块期间使用一个专用虚拟机(称为以太坊虚拟机)执行智能合约。EVM是一个基于堆栈、无寄存器的虚拟机,运行低级字节码,由一组操作码指令表示。为了保证合同的终止,从而防止矿工陷入无休止的执行循环,引入了矿工费的概念。它把执行每一条指令的成本联系起来。在发布交易时,发送者必须支付执行智能合约的矿工费用。智能合约的执行导致世界状态σ的修改,世界状态σ是存储在区块链上的一种数据结构,将地址a映射到帐户状态σ[a]。智能合约的帐户状态由两个主要部分组成:余额σ[a]b,它包含合同所拥有的以太币,以及储量σ[a]s,它包含合同的持久数据。存储被组织为一个关键价值存储,是智能合约在执行过程中保持状态的唯一方法。除了世界状态σ,EVM还拥有一个交易执行环境I,其中包含正在执行的智能合约的地址Ia、交易输入数据Id、交易发送方Is和交易Iv。EVM本质上可以看作是一个基于交易的状态机,它接受输入σ和I,输出一个修正的世界状态σ‘。

(3)以太坊区块链浏览器

以太坊区块链浏览器是一个收集和显示区块链特定信息的在线平台。它充当一个区块链导航器,允许用户轻松查找上的各个区块、交易和智能合约的内容。它在其探索能力的基础上提供多种服务。其中一项服务是,智能合约创建者可以发布其源代码,并确认存储在特定地址下的字节码是编译指定源代码的结果。它还为用户提供了对智能合约发表评论的可能性。

3、以太坊蜜罐

下面提供了蜜罐的一般定义,并介绍了作者对蜜罐的分类

(1)蜜罐

蜜罐是一种智能合约,在用户向其发送资金的前提下,它假装将资金泄漏给任意用户(受害者)。然而,用户提供的资金将被困住,蜜罐创建者(攻击者)将能够取回它们。蜜罐一般分为三个阶段:

1)攻击者部署一个看似脆弱的契约,并以资金的形式设置诱饵;

2)受害人试图利用合同(转移最低所需资金,但未成功);

3)攻击者将诱饵连同受害者丢失的资金一起取走。

攻击者不需要特殊功能就可以设置蜜罐,而只需要必要的资金来部署智能合约和放置诱饵。

(2)蜜罐的分类

作者总共收集了24个蜜罐,并提取了8种不同的蜜罐技术。不同的技术按其操作级别分为三类:

1)以太坊虚拟机

2)Solidity编译器

3)以太扫描区块链浏览器

第一类利用EVM的异常行为欺骗用户。尽管EVM遵循一套严格且公开的规则,但用户仍然可能被暗示存在不一致行为的狡猾的智能合约实现所误导或混淆。第二类涉及从Solidity编译器引入的问题中受益的蜜罐。虽然有些编译器问题是众所周知的,但其他问题仍然没有记录在案,如果用户不仔细分析智能合约或不在实际条件下测试它,则可能会被忽略。第三类利用了与Etherscan网站上显示的有限信息相关的问题。以太扫描可能是以太坊最著名的区块链浏览器,许多用户完全信任其中显示的数据。

三、实验

四、问题与解决

五、总结与建议

六、参考资料

20199305 2019-2020-2 《网络攻防实践》综合大实践

原文:https://www.cnblogs.com/20199305yizihan/p/13179436.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!