以下分享是受聂君(公众号“君哥的体历”,之前我在本懒号推荐过)邀请,面向金融行业安全人员的一次群在线分享。一些区块链安全攻防实践观点供大家参考。


大家好,我是慢雾科技创始人余弦,熟悉我的人知道我玩安全攻防已经很久了,这两年决定进入新方向,安全从业的蓝海方向:区块链生态安全。于是大概两年前创建了慢雾科技,专注这个方向。目前还是在一线攻防,有不少心得,今晚尽量能覆盖到吧...

进来后发现,尼玛的这方向大开眼界:因为太乱了,生态乱,攻防也乱

所以这两年,我自己要是心里没底,我是不会轻易拉人进来的..

好在,两年过去了,消停了些,监管大势也逐步看到了,于是又了今晚这个话题:区块链安全攻防实践

在分享安全之前,给大家一些区块链技术入门资料(因为很多安全圈老友都有在问我):

入门区块链,有技术底子的建议读这三本书:Mastering Bitcoin、Mastering Ethereum、Mastering Monero,前两本有中文版,原汁原味的感觉才是对的。

好,开车:

本次分享会覆盖:

1. 区块链作恶方式;

2. 区块链安全攻防出发点;

3. 数字货币交易所安全攻防出发点。

先看:区块链作恶方式,这里发一张思维导图大家先看看。

这份《区块链作恶图》其实包含两大部分:

1. 攻击区块链相关的作恶

2. 用区块链来作恶的

主要内容是:盗币、恶意挖矿、勒索、暗网、C2 中转、洗钱、资金盘、菠菜

细节不一一展开,我觉得可以留给大家细看,如果有问题,我们再交流。

但是有一点,大家可以看到有许多作恶方式是和非区块链行业的其他行业类似,但还有很多是很不一样的。

比如:算力攻击里的 51% 攻击,这个攻击方法很有意思,简单来说就是你如果拥有超过一半以上的算力,你就可以决定一个区块链的走向(最长链原则),你可以导致如“双花攻击”(一笔钱花了两次)。而且有意思的是:这种算力攻击不是什么 DDoS 非法的,他是这个世界合法的...

大家可以打开这个网站,预估针对各种区块链发起 51% 的攻击成本:https://www.crypto51.app/

大家再看“盗币”->“攻击智能合约”部分

这里我们主要列了两大智能合约平台:ETH 与 EOS

大家可以看到这两大智能合约公链平台有相同的攻击点,也有很不一样的攻击点。这就是区块链平台安全研究时可能的大差异。这个往往取决于设计者意图、智能合约虚拟机实现方式等。

智能合约的安全问题特别有魔力。

以太坊的智能合约发布后是不可更改的(虽然有升级模型,但这个以后有机会再说),EOS 的智能合约发布后却是可以更改的...这就是一种奇妙的差异。

我们下一个,大家看看“恶意挖矿”,可能大家,绝大多数都遇到到“蠕虫挖矿”,一些服务器,比如 Redis 未授权访问被植入挖矿木马。但绝大多数应该是没遇到过矿场里的恶意挖矿。

我们在偏远山区布局了矿场业务,曾经买入一批知名的矿机,其中有几台在供应链环节(运输过程)固件被刷入挖矿病毒,当接入矿场局域网时,几分钟,整个矿场全感染了。这些病毒/蠕虫做的事主要是劫持挖矿算力达到间接盗币。

这是多少的血泪史,被供应链攻击,真是在其他行业很少见,但在公链世界,基础设施的矿场这块却是一直流行攻击手法。实在太过混乱。

好,我们继续看下一个“暗网”->“霸权对抗”

大家都知道影子经纪人对吧,2017 年泄露 NSA 那批网络军火,一个月后出现了席卷全球的 WannaCry。

其实也是这个事件真正让我决定彻底投入区块链安全行业,为什么呢?

大家梯子打开影子经纪人的页面:https://steemit.com/@theshadowbroker

为了逃避监管与溯源,影子经纪人用了 Steemit 这个区块链平台(底层基于 Steem 这个公链)发布了他们的所有披露。

他们刚开始募集比特币,后来觉得不够匿名,改为募集匿名币:门罗币和 Zcash

世界顶级的地下黑客行为往往能激起我们的研究兴趣,于是真正意义上我们才开始深入去了解为什么是 Steem,为什么是比特币、门罗币、Zcash

之后我们遇到一个有趣现象,就是另一个地下黑客组织的出现:黑暗霸主。

大家看看黑暗霸主的Steemit页面:https://steemit.com/@thedarkeroverlord

Page Not Found!!!!!!!

我的天...区块链也能删除内容??

其实不是,后来我们很快意识到:不是区块链删除了内容,而是 Steemit 这个平台自己做的屏蔽。而区块链 Steem 并没删除(也删不了,从设计及实现上来看)

大家注意了:Steemit 是平台,Steem 才是区块链。Steemit 是基于 Steem的。

来,大家打开另一个基于 Steem 的平台 Busy:https://busy.org/@thedarkoverlord

大家意识到了没,这就是区块链有趣的点。

好,我们最后看下“菠菜”

大家可以打开 DApp 导航站:

https://dappradar.com

https://dapp.review/

会发现上运行了许多 DApp,好几个公链平台都有各种 DApp,当然很多和“菠菜”无关。这个大家可以之后去体验体验,其实对了解公链的世界还是挺有用的。

好,由于内容很多,不展开了,我们继续下一个话题:

区块链安全攻防出发点

当我们谈区块链安全攻防时,其实主要分两大块内容:链上攻防和链下攻防。

大家先看看链下攻防,是不是很多都熟悉,对的,这就是经典的传统网络安全攻防,这块没什么好提的,大家都很了解。

但链下攻防这有不一样的地方在于:图的右边:节点安全。这块不同的区块链就有不同的节点,就可能有不同的安全问题。

比如我们曾经全球做了批量的以太坊黑色情人节,大家可以打开看看我们做的专题页面:https://4294967296.io/eth214/

攻击细节在这个页面底部有列。这里不展开,但简单提下过程:

  1. 全球扫描 8545 端口(HTTP JSON RPC API)、8546 端口(WebSocket JSON RPC API)等开放的以太坊节点,发送 eth_getBlockByNumber、eth_accounts、eth_getBalance 遍历区块高度、钱包地址及余额

  2. 不断重复调用 eth_sendTransaction 尝试将余额转账到攻击者的钱包

  3. 当正好碰上节点用户对自己的钱包执行 unlockAccount 时,在 duration 期间内无需再次输入密码为交易签名,此时攻击者的 eth_sendTransaction 调用将被正确执行,余额就进入攻击者的钱包里了

好,我们看链上攻防部分。

除了智能合约会出现各种安全问题之外,智能合约的虚拟机也会,虚拟机之下的链的共识也会,交易也会,方方面面。

关于整个链上的安全,我们研究切入点大体是:静态代码检查、P2P 安全、RPC 安全、加密签名安全、账户与交易模型安全、系统合约安全、共识安全、代码合规

其中共识安全是区块链最有魔力的点。

比如比特币的 PoW 共识,ETH(以太坊)2.0要引入的 PoS 共识,EOS 的 DPoS 共识。差异很大,安全研究来说会不大一样,甚至很不一样。

共识安全的研究核心目的就是打破共识,让非预期的交易或区块出现。

比如我们首发的一种叫“异形攻击”方式,可以做到让两条共识模型相似的链互相感染对方的区块链网络,以破坏他们自身的稳定共识。

还比如大家应该有听过的“日食攻击”、“女巫攻击”,最终也是感染共识,让攻击者低成本获利(获得足够的出块权力,影响区块链的后续进展)。

好,第二部分就先这样结束,大家可以积累问题,之后统一问,不过我估计不一定忙得过来回复。。

第三部分:数字货币交易所安全攻防出发点

为什么要特别提这个点,原因是:这个生态太多数字货币交易所了,大家都忙着炒币呢...满地都是钱(币),又没国家监管力量,盗币后溯源又极难。这是这个生态里攻防极度严峻的场景。

好,大家打开上面交易所钱包安全架构的这张图。

先给大家报备一下:数字货币交易所的安全体系建设水平确实大大落后于金融业。

这个图大家先重点看:热钱包、温钱包、冷钱包部分。因为最终的一切安全攻防都是围绕钱包的。

为什么叫:冷、温、热。其实是按照钱包的触网程度+流动程度+金额程度来划分。

冷:触网程度低(或零)、流动程度小、金额程度大;

热:触网程度高、流动程度高、金额程度小;

温:介于冷、热之间。

相比之下,大体来说,冷钱包会更安全,热钱包会更危险。

几个月前币安被 APT 盗取了 7074 枚比特币,遭遇攻击的是他们的比特币热钱包。但官方说法这个只占了他们总量的 2%。大家自己感受下。

APT 攻击其实在数字货币交易所里是频繁发生的,但鉴于一些保密要求,我们这在展示不做过多披露。而且 APT 手法大家应该都很熟了。

其实这张安全架构图内容可展开说的太多,大家应该有印象我有时候会在群里请教大家一些金融行业领域的防御手法,数字货币交易所这块的工作普遍太少。

风控在数字货币交易所场景下是极其之关键,稍微一点偏差就是不可挽回的巨额损失。

我特别在这给大家举例针对数字交易所的一直链上链下结合的攻击方式:假充值攻击。

简单来说,当数字货币交易所用户充值数字货币时,比如 USDT、EOS、以太坊的 Token、XRP 等。交易所在拿到充值的 tx 记录(交易记录)时未作足够完备的判断,就容易引入假充值,也就是说充值进来的币实际上不存在,但交易所给入账了,也就认为是存在...

这是一个超级大坑,简直匪夷所思。

由于这些数字货币交易所中心化的,入账就是数据库里多了这笔金额,那么攻击者后续只需要提币就好。

OK,我先分享到这。其他部分不展开了,感兴趣的可以加我再深入交流。也超时了。剩下的交给大家提问了。

一些 Q&A

:@余弦(慢雾) ,余总,一直有个疑问,51% 算力攻击是不是说,是否可以通过控制少部分节点,攻瘫大部分节点,让自己控制的占能用的 51% 以上,篡改交易后,即使被攻击的恢复了他也得跟着错?

另外区块链怎么做数据备份?

- - - - - - - - - - - - - - -

看哪条链,比如有的链有明显的日食攻击或女巫攻击,或其他类似的攻击,那么低成本是可以打出 51% 攻击效果。

区块链数据备份和传统大数据备份类似,做好快照,记录好当前区块高度等。

:请教一下余总区块链使用的非对称加密算法和隐私保护(零知识证明和同态安全)是什么关系?

- - - - - - - - - - - - - - -

区块链的非对称加密主要是椭圆曲线算法。零知识是一种链上隐私保护技术(运用了多种算法,复杂度比较高,见:zkproof.org)、同态可以粗暴理解为是某种“零知识”,但有自己的方向,本质也在解决一些隐私问题,比如交易隐私。

:区块链业务发展初期的的公司,一般来讲往往会把用户量和业务发展放在第一位,常常忽略业务的安全性,更是会产生大量的区块链安全问题?对此余总有何建议?

- - - - - - - - - - - - - - -

没什么好建议,还是得让领导班子把安全成为基础设施(必备的植入)。

:区块链安全,对于私钥的保管和智能合约的安全,该如何有效应对?是否有什么措施可以做到私钥触网?

- - - - - - - - - - - - - - -

私钥保管目前最切实际的安全方式是存入基于 HSM 的安全设备里。

:矿机在运输过程中如何防范此类供应链攻击?

- - - - - - - - - - - - - - -

目前看很难,只能说提高各环节透明监管。

:区块链技术减轻了数据的模糊性,降低了欺诈的可能性,如KYC和AML的应用,那对于区块链AML的攻击面有实践吗, 尤其是在金融机构之间共享的场景下?

- - - - - - - - - - - - - - -

慢雾这边也做了链上 AML:aml.slowmist.com,我们最怕的是 AML 被污染,其次是覆盖面不全。

:类似Swift做了kyc注册中心,国内是否有类似机制,当然除了全部存储在私有区块链,在公共区块链上,问题会被怎么放大(安全和隐私上)

- - - - - - - - - - - - - - -

这也是我们的一个重要关注点,需要和金融业的各位大佬合作征信数据,再结合我们慢雾 AML 链上的数据做关联分析。

:能讲讲刚才那个假充值的问题么,为什么从公链中同步到的也是假的@余弦(慢雾)

- - - - - - - - - - - - - - -

慢雾披露的假充值细节系列研究,可以看这:

https://slowmist.io/disclosure/

搜索:假充值。

By 余弦,慢雾科技创始人

声明:本文来自懒人在思考,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。