区块链安全—守株待兔的蜜罐合约

一、前言 在前面的稿件中我们更多的会去选择分析如何在已知合约中寻找存在的漏洞,并利用漏洞以达到获取非法token的目的或者利用漏洞进行作恶。 研究安全的读者应该都清楚,在进行安全防御的时候,我们除了会对已经发生的安全事件进行跟踪之外,我们还会自行设置一个陷阱,让攻击者自己掉入我们布置好的陷阱中以便能让我们更好的分析作恶者的手法。而这个陷阱又被称为蜜罐。 在本文中,我们就针对智能合约的蜜罐进行分析。

· 8120浏览 · 2019-01-28 00:07
区块链安全—循环Dos安全分析(二)

一、前言 在上一篇文章中我们详细的分析了Simoleon合约中的一些薅羊毛等类似于Dos的安全隐患。本文我们紧接着类似攻击手法进行相关漏洞的真实合约分析。在文中,我们会针对真实的合约进行漏洞模拟测试,并在文末给出相应的解决方案。 二、代码分析 本次分析的漏洞是来源于基于以太币的一款游戏,该游戏鼓励玩家向该合约中充钱,并且根据合约owner的操作会定期的向充钱账户进行奖励(类似于分红),所以许多玩家

· 7973浏览 · 2019-01-16 01:02
区块链安全-以太坊智能合约静态分析

作者:高峰 黄绍莽(来自 360 IceSword Lab) 首发于: http://blogs.360.cn/post/staticAnalysis_of_smartContract.html 概述 目前,以太坊智能合约的安全事件频发,从The DAO事件到最近的Fomo3D奖池被盗,每次安全问题的破坏力都是巨大的,如何正确防范智能合约的安全漏洞成了当务之急。本文主要讲解了如何通过对智能合约的静

· 8053浏览 · 2019-01-14 01:18
区块链安全—循环Dos安全分析(一)

一、问题简介 熟悉以太坊的读者都清楚,在以太坊机制中,为了防止恶意节点滥用区块资源、防止Dos攻击,所以引入了Gas机制。然而防御也是存在某些漏洞隐患的,今天的文章中,我们就根据某些实例中的代码编写问题来展开叙述一下Dos循环的安全漏洞。 也就是说,在合约编写者设计合约代码的时候,不宜使用太大次的循环。由于每一笔交易都是会消耗一定的gas,而实际消耗gas值的多少取决于当前交易内部的复杂度。倘若一

· 7214浏览 · 2019-01-10 00:28
区块链安全—详谈代币合约ERC20

一、前言部分 最近研究了许多CVE文章,发现其内容均涉及到某些团队或者个人搭建的私人以太坊代币合约。而在研读他们合约详细内容的时候,我发现巨大多数代币系统均是在ERC20的基础上搭建而成的。所以能够对ERC20的内容有深刻的理解能够帮助我们更好的去研究代币的安全性。在本文中,我们就要对ERC20的关键代码进行详细的个人解读,之后我们会针对部分函数结合区块链的特性进行安全解读。 二、ERC20分析

· 9209浏览 · 2019-01-07 01:35
区块链安全—经典溢出漏洞cve分析

一、前言 在上一篇文章中,我们详细地讲述了solidity中的整数溢出漏洞。而在本文中,我们将重点放在真实事件中,从0开始针对某些真实环境中的CVE进行复现操作。一步一步带领大家去了解合约内部的秘密。 本文中涉及的漏洞内容均为整数溢出的CVE,我们会对源代码进行详细的分析,并在分析漏洞的过程中讲述合约的搭建内容。 二、cve漏洞介绍 这次分析漏洞CVE-2018-11811。由于上次的文章我们详细

· 9238浏览 · 2019-01-04 01:02
区块链安全—整数溢出原理分析

一、前言 最近在对区块链漏洞进行一些代码研究,在实例复现以及竞赛题目的研究中,我发现整数溢出是现在区块链比较火的漏洞之一。但是整数漏洞的技术难度并不大,容易理解。但是它常常出现在Solidity代码中,容易被攻击者利用。 本篇文章中,我们就针对整数溢出漏洞进行原理上的分析,并对部分实例以及竞赛题目进行线上实验,并提出一些预防措施。 二、漏洞介绍 在介绍整数溢出漏洞前,我们需要先简单介绍一下Soli

· 8991浏览 · 2019-01-01 02:18
使用区块链技术来创建安全备份

“不好了!在我的系统上发现了一个勒索软件通知。我是怎么中招的? “让我们稍后再去调查这个恶意软件。 首先,我们应该先将设备回复到几分钟前的备份,这样我们就可以继续我们的工作了。 现在的情况并不是那么糟糕,不是吗?我们拥有回滚解决方案或进行过的备份可以很好的对抗勒索软件的攻击。但是哪种技术可以进行这项工作? 今天的技术有可能吗? 正如我们之前所指出的,区块链技术不仅仅适用于加密货币。 事实上,一些

· 7725浏览 · 2018-12-31 02:01
区块链安全—随机数安全分析(下)

一、前言 在上文中,我们主要是针对随机数安全进行了理论方面的密码学研究。在理论层面上我们又进行了简单代码的分析。而本文不在过多的介绍理论知识,而更多的将重点放在代码层面,针对现实实例中的代码进行安全分析。 二、比特币随机种子生成详解 首先我们来研究下区块链最大的应用——比特币在随机数方面是如何实现的。 首先我们将源码下载到本地,对random.h进行查看。得到源码: /* Seed OpenSS

· 9188浏览 · 2018-12-26 00:39
区块链安全—随机数安全分析(上)

一、前言 “随机数”在计算机程序中并不少见,开发人员也会经常使用随机数进行数值的模拟、预测。在C++程序里,我们经常使用一定的种子来进行随机数的生成过程。在计算机程序中,随机数可以被分为真随机数与伪随机数。而真随机数是十分难实现的,例如使用筛子、转轮等等。对于伪随机数来说,我们又分为: 强伪随机数:难以预测的随机数,常用于密码学。 弱伪随机数:易于预测的随机数。 随机数有3个特性,具体如下:

· 7316浏览 · 2018-12-25 05:00
区块链安全—简单函数的危险漏洞(二)

一、前言 上回文章中我们提到了简单函数的漏洞利用情况。我们对Fallback()这个回调函数进行了安全漏洞的分析,也针对竞赛题目复现了一些漏洞利用过程。 在本篇文章中,我们继续对简单函数进行安全机制分析。本文我们将要对构造函数以及tx.orgin、msg.sender进行安全分析。在真实的合约开发中,上述这几个函数的使用频率是十分高的,而对于合约来讲,由于其面向对象的特性所迫,所以在编写合约的过程

· 7843浏览 · 2018-12-22 00:54
区块链安全—简单函数的危险漏洞分析(一)

一、前言部分 在以太坊中使用Solidity编写智能合约的过程中会由于机制的问题而导致各种各样的问题出现。我们都知道,越是简单的函数,越是使用方便那么越会使开发人员对其掉以轻心。而这些方便的函数又会在开发的过程中被大量使用,也就意味着倘若它们存在某些机制上的问题,那么带来的影响是十分巨大的。 而在本章中,我们主要介绍两个函数的漏洞详情,Fackback()以及Tx.Origin。而在合约的编写过程

· 7416浏览 · 2018-12-20 02:29
区块链安全—合约存储机制安全分析

一、前言 作为不太成熟的编程语言,Solidity函数由于其运行机制等问题目前能找到很多的安全问题。在之前的分析中,我们针对共识、合约等方向进行过概括性的研究,而最近区块链安全的研究热也激起了研究者对以太坊的深入了解。 最近的几次CTF比赛中,区块链的题目出现的频率也越来越高,也逐渐进入大家的视野中。今天,我们就针对部分区块链的CTF题目以及生产环境中的实例进行一些相关技术分析,并带领读者一步一步

· 7995浏览 · 2018-12-18 01:33
区块链安全—详谈合约攻击(五)

一、前言 在上文中,我们详细介绍了sened()函数,并且用相关实例介绍了send()函数。而倘若Solidity代码开发者进行编写时没有注意相关逻辑,那么就有可能导致变量覆盖顺序不当而产生安全问题。尤其是当函数失败回滚但系统函数却没有发觉,仍然继续执行后续代码。 而本文我们将讲述合约安全中经典的“重入攻击”。简单来说,此类型攻击带来的危害极大,并且开发者在开发智能合约的时候很容易产生此问题。所

· 7338浏览 · 2018-11-26 23:35
智能合约逆向心法2(案例篇)——34C3_CTF题目分析续篇

前言 上一篇34C3_CTF的文章分析希望能给白帽子带来一些用处,因此这篇文章,笔者Doctor Who@玄猫安全分享关于该题从零到有的思路,顺带解释一些solidity的特性与语法。 题目解读 首先是关于34C3_CTF的题目解读。 send 1505 szabo 457282 babbage 649604 wei 0x949a6ac29b9347b3eb9a420272a9dd7890b787

· 7083浏览 · 2018-11-26 23:41