前言
2019年伊始,笔者在公众号“零时科技”中开始发表一系列区块链相关的安全文章。其中“交易所安全审计”系列文章在发表后反响不错,这在很大程度上归功于这种以实际渗透测试项目为基础,模块化成不同的测试方向,提炼出通用漏洞点,并辅以案例进行说明的形式。目前市面上的安全类书籍多是以漏洞类型为基础,对不同类型的漏洞进行分析利用,但鲜有此种形式,加之区块链又是近些年来的新兴技术,人们对该领域的安全问题关注度较低,又由于数字货币具有金融属性,其造成的影响广泛而深远。于是,本书的几位作者一拍即合,决定写一本全面介绍区块链安全的书。相信本书会提供一种系统而全面的视角,在漫无边际的区块链安全世界中,给读者提供指南。
本书作为一本“指南”,旨在用简单明了的行文讲清楚区块链的安全问题,将一些复杂的理论和攻击手法简要概括出来。
阅读本书,最好了解一门编程语言,例如C、Python、Go,因为这些语言的语法与Solidity相近,对学习智能合约大有裨益。
本书主要适合以下人员阅读:
·区块链相关应用的开发人员
·对区块链有兴趣的安全测试人员
·对区块链和安全有兴趣的学生
本书的主要内容如下:
第1章对区块链的诞生、演化、分类以及区块链生态中的比特币(Bitcoin,BTC)、以太坊、智能合约和联盟链进行介绍。
第2章介绍对数字货币交易平台的安全问题进行模块化后,如何进行全面、细致的分析,包括渗透测试的步骤,如信息收集、社会工程等,还介绍了各种攻击面,如业务逻辑、输入输出、安全配置、信息泄露、接口方面、用户认证安全、App安全等。
第3章对Solidity编写的以太坊智能合约的常见安全漏洞进行全面、系统的分析,通过案例介绍相关漏洞形成的原理和实际危害,并学习相应的修复方式。
第4章介绍公链的EOS、EOS智能合约的原理和安全问题,并详细分析针对EOS的攻击事件及这些安全缺陷的修复方式。
第5章介绍数字货币钱包的工作原理,并对其存在的安全问题进行深入剖析。
第6章介绍公链自身的安全,包括共识安全、源码安全、RPC接口安全和P2P网络安全。
第7章介绍矿机与矿池的常见类型,并针对其安全问题进行详细分析,包括攻击利用手法、防御修复措施等。
第8章对区块链DeFi进行详细介绍,针对已发生的经典DeFi安全事件进行详细分析并提出修复策略。
第9章介绍数字货币交易平台和智能合约的实战案例。
附录A为区块链安全大事件纪年表,记录了自2012年至本书出版前区块链生态发生的安全大事件。
附录B为数字货币交易平台安全速查表,对平台安全审计点进行了总结,以便广大安全从业者和开发人员查阅并迅速定位安全问题。
由于区块链是一种新兴的技术,其安全问题及技术也在更新,加之作者水平有限,书中难免出现疏漏与错误。如果大家发现问题,可以在本书的GitHub库中提交Issue反馈给我们,我们将在图书再版时进行更正,以提供最为准确的内容。
为了更好地理解区块链安全部分的内容,我们为本书部分章节录制了视频课程,大家可以在本书GitHub库中Video目录下获取。
由于书中部分代码过于冗长,所以我们将部分代码上传至本书GitHub库中的SourceCode目录下供大家查阅,地址为https://github.com/BlockchainSecBook。
致谢
在本书撰写的过程中,得到了许多业内外朋友的鼎力相助,在这里由衷表示感谢。
感谢机械工业出版社的吴怡编辑,她对书稿进行了专业、细致、认真的编校工作,并提出了很多切中肯綮的修改建议。
感谢登链社区(https://learnblockchain.cn/)的熊丽兵(Tiny熊),在我们开始撰写本书时,不仅在Tiny熊的技术博客“深入浅出区块链”上学习到了很多底层的公链技术以及智能合约相关的内容,还有幸在其为我们提供的专栏上发表文章。
感谢波士顿大学的Ethan Heilman在USENIX Security发表论文“Eclipse Attacks on Bitcoin’s Peer-to-Peer Network”,这篇论文为本书相关内容的撰写提供了理论参考。
感谢蚂蚁集团安全实验室和百度安全实验室,我们在撰写关于安全漏洞的内容时,从他们的技术输出之中受益匪浅。
感谢那些在我们学习区块链及相关安全技术时阅读的书籍及博客文章的作者,从他们的技术输出之中我们获益良多。
最后要感谢完美世界安全应急响应中心(PWSRC)的叶姝彤,在撰写本书的过程中提供了大量帮助。
要感谢的朋友还有很多,在这里无法一一列举,希望这本书可以为区块链安全技术在我国的发展与推广添砖加瓦!