OKCoin

区块链里的病毒

imcoddy 发布在 币头条,比特币 10 6955

“比特币区块链里面有病毒!”

当这消息在互联网上不胫而走,比特币不禁又被推到舆论的风头浪尖。虽然这其实只影响了一小部分下载了所有区块链数据的比特币爱好者,不过对于比特黑而言,这无疑又让他们找到新的喷点。

实际上,随着比特币的知名度不断飙升,它成了密码安全学上的皇冠,也成为众多黑客试图攻击的对象。因此,伴随着比特币的成长,相关的安全事件也是层出不穷。有人因为下载了嵌入木马的客户端而丢币(所以各位一定要在官网下载并检查签名),也有人因电脑感染了病毒而被用来挖矿而不知情。此外,即使是安装了杀毒软件也不意味着就能平安无事了,一些杀毒软件会因比特币程序访问的结点不在白名单内而误认为不安全(如下图),甚至还出现数据文件被误杀而造成钱包丢失的事件。

bitcoin-qt-infected?

而这一次情况有些不同,因为病毒的数据,真的就存在比特币的区块链里。

病毒事件原貌

5 月 16 号时,有人将病毒 DOS/STONED 的签名写入了比特币区块链里。因为这仅仅是病毒的签名,而非病毒的代码,所以这其实并不会给用户带来任何危险。不过对于 Windows 这种添加个 exe 后缀就当执行文件的系统而言,防患于未然的忧患意识还是非常重要的。于是当微软杀毒套件(MSE)发现了这个病毒的签名时,一场悲剧就这样开始了:MSE 开始持续性报报警,直到用户将该区块链文件隔离,而比特币客户端又会把它重新下载一次……

更搞笑的是,当有用户将这个情况向微软反映时,得到的回复是“请先提交一份可疑文件的样本”。要知道,提交文件的大小必须小于 10MB,而区块链的大小可是超过了 15G。

目前这个问题的解决方式是暂时将区块链文件加入 MSE 的免检列表中,不过这也可能造成一些新的问题,例如某些恶意软件可能会将自己保存在区块链文件中从而避免了杀毒软件的检查。

针对区块链的病毒攻击

实际上,向区块链注入病毒签名来进行网络攻击的讨论其实很早就出现过了。早在上个月时,就有人爆料有人将 Silly.218 的病毒签名写入区块链里造成 bitcoin-qt 程序崩溃(感谢 chehw 指正)。从理论上来说,它可能会引起计算机中杀毒软件的误判,从而使大部分在线的结点被移除,进而减小比特币网络的规模,增加 51% 攻击的可能性。(说句题外话,关于这一点,玩一下 PWN 这游戏大家可能会有更直观的感觉:P )

不过在比特币挖矿已经变成一个门槛很高的技术活的今天,这种尝试的现实影响只会影响到一些不太了解电脑使用的非技术用户,而难以造成大规模的影响。不过对于那些打着平民化口号支持 Windows 运行 CPU 挖矿的山寨币而言,这或许是它们不得不注意防范的风险。

区块链的人生百态

区块链的出现是中本聪最伟大的创新之处,它提出了一种在一个点对点的分布式网络维护数据统一的解决方案,同时也打开了无需信任的第三方运作的智能资产应用的大门。当中本聪在创世块里写下“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”的时候,亦开启了一个新的时代。

当数据被写入了区块链之后,几乎可以认为这份数据将无法被修改或销毁。因此,这催生了合约币之类的寄生币,通过在区块链数据加入标识从而建立契约或者进行投票结果公证,同时也因为“比特恒久远,区块永流传”的特性,有人别出心裁地利用区块链见证自己忠贞不渝的爱情。(人生苦短,知己难寻,在今天 520 这节日里,请允许我小小滴煽情一把 ^^)

实际上,由于比特币的开放性,区块链里的数据的丰富程度比大多数人所想的要多得多。有人将南非前总统 Nelson Mandela 的画像编码后写入了区块链中,还有人在区块链里写下了致矿工的祷告词,至于还有人用 Basic 写的生物模拟器代码。想了解更多的可以点这里

这样的自由也导致了一些滥用的情况出现,以至于比特币的开发团队做出了减小区块链可写内容的大小的艰难决定,这一度也曾在依赖于区块链大小的寄生币社区里引起激烈讨论。而对于此次病毒事件,也有 POS 爱好者指出在一些二代币中有惩罚写入不当数据的机制。这样的限制实际效果如何现在还不得而知,但正如有光明的地方就有黑暗,这样的情况或许还将长久地持续下去。

打赏地址:1MCoddyq9SFCXtCt88pmfcWqmNUnNbDPCc

版权声明: by nc" sa 作者保留权利。文章为作者独立观点,不代表巴比特立场。

评论:10

您需要登录后才可以回复 登录|注册
    Author Image
    巴比特资讯 916 天前

    373bcdaaf103aa3bd82f30b3717a1087bd363a75e2c75d1f5474ef2c08fc5312

    +1
    +1
    我要点评
    Author Image
    爱比特(聂) 932 天前

    好文,解惑

    +1
    +1
    我要点评
    chehw
    chehw 932 天前

    1. 360不可信,它认为你在访问可疑网站,是因为P2P节点不在它的白名单中,怕你上网不科学。
    bitcoin-qt是否有病毒可以自己看源代码就知道了。不过,如果从不可信网站上下载未经签名的qt安装程序,中毒也是自找的,专业节点不可能会犯这种”小白“的错误;

    2. “向区块链注入病毒签名来进行网络攻击的理论其实很早就出现过了。理论上来说,它会引起计算机中杀毒软件的误判,从而使大部分在线的结点被移除”。
    这不是理论,早就实现了。比如前几个月前的出现的Silly.218(我也中招了,导致bitcoin-qt崩溃,p2pool池无法工作)。
    解决的方法是将存储数据的文件夹(不是程序文件夹)添加到杀毒程序的”用户自定义的例外规则“,这一操作安全风险基本上为0。
    Block chain的原始数据作用只是用来备份,进行验证交易、挖矿等工作量极大,这需要有一个可达到实时数据库性能的数据库管理方式来处理。节点一般借助Google Level DB来存储所有用到需的HASH值。Level DB会在内存中存储一定量的数据,数据量大到一定程度,会生成一个.sst文件到数据文件夹中。这个.sst文件可能会被杀毒程序误杀,导致bitcoin-qt崩溃。如果不放心,可以把这个.sst文件提交给杀毒厂商,让他们给出答复。
    调用这个sst文件一般不过有安全风险,这只是个静态数据,即使有病毒代码也无法激活,否则使用这种数据库的google搜索引擎早就瘫痪了。

    通常会使用google level dbSymantec的杀毒程序会

    +1
    +1
    我要点评
      chehw
      chehw 932 天前

      专业节点linux系统居多,这种攻击对大部分专业节点没有任何影响。非专业节点对网络的贡献率很小,对整个系统的影响微弱到根本就可以无视(比如我那个被攻击的节点)。

      +1
      +1
      我要点评
      Author Image
      BigChubbyCat 932 天前

      **原来你也是一个矿工…..难怪**

      +1
      +1
      我要点评
        chehw
        chehw 932 天前

        呵呵,其实我目前的工作更类似于开发者,正在试着将Bitcoin的核心算法用C改写,这样算法的实现过程会更清晰、简洁。Galvin用C++写的那个效率不敢恭维,模板类和其他的库用的也太多,读起来太乱,给将来的优化带来难度。

        +1
        +1
        我要点评
      Author Image
      imcoddy 932 天前

      多谢指正。

      文章里的插图原意是想说明杀毒软件可能会误判的,稍后我修改一下。

      看来之前做的功课还不太够,Silly.218 我也是听你提起才知道的 ;)
      刚才查了一下,这说的是这个 SAV 报错的事情吧?相关的 Issue https://github.com/bitcoin/bitcoin/issues/4069 讨论也挺有意思的。话说回来,这应该只是对 Windows 用户有影响对吧?

      解决的方法是将存储数据的文件夹(不是程序文件夹)添加到杀毒程序的”用户自定义的例外规则“,这一操作安全风险基本上为0。

      用户自己添加的规则的确没有什么危险,我在原文中想说明的是如果有恶意软件利用了一这点,将可执行的病毒文件命名为 *.sst 并放到相同的目录中,可以躲避掉杀毒软件的检查,这样的话或许还是有可能造成一定危害的。不过这也仅是一种可能性而已,系统的安全性还得取决于使用的用户:P

      +1
      +1
      我要点评
    比特暴民
    比特暴民 932 天前

    这不是坏事。

    +1
    +1
    我要点评
    巴比特资讯
    巴比特资讯 932 天前

    【区块链里的病毒】http://t.cn/Rvw8ZrT 作者:@Q小迪 5月16 号,有人将病毒 DOS/STONED 的签名写入了比特币区块链里,因为仅仅是病毒的签名,而非病毒的代码,所以并不会给用户带来任何危险,不过顺着病毒事件,发现由于比特币的开放性,区块链里的数据的丰富程度比大多数人所想的要多得多

    +1
    +1
    我要点评