在区块链技术安全范畴中,既有“传统”互联网世界中面临的网络拒绝服务攻击、代码漏洞等攻击威胁,也包含区块链独有的风险点(如智能合约漏洞)。2010年8月15 日,比特币发生的代码漏洞攻击事件中,有人在比特币区块链的第74638块上发现了一条让人惊愕的交易,这笔交易里竟然出现了184,467.440737.09551616 个比特币,其中各有922亿个比特币被发送到两个比特币地址。这次攻击的根本原因则是比特币的验证机制中存在大整数溢出漏洞,由于大整数溢出为负数,网络各个节点对黑客的交易均验证通过,导致了比特币区块链中凭空出现了大量比特币。
本文将从区块链的技术架构出发,分析基础组件和设施安全风险、系统核心设计风险和应用生态面临的安全威胁。
1. 基础组件和设施面临的安全威胁
基础组件层利用基础设施可以实现区块链系统网络中信息的记录、验证和传播。在基础组件层之中,区块链是建立在传播机制、验证机制和存储机制基础上的一个分布式系统,整个网络没有中心化的硬件或管理机构,任何节点都有机会参与总账的记录和验证,将计算结果广播发送给其他节点,且任一节点的损坏或者退出都不会影响整个系统的运作。其对应的安全风险包括网络安全问题、密码学安全问题和数据存储安全问题。其中的数据存储安全问题涉及内容安全层面,面临有害信息上链以及资源滥用等风险,限于篇幅,具体内容不展开介绍。
1.1 密码学安全威胁分析
区块链技术本身采用了密码学的很多机制,例如非对称加密、哈希算法等,这些密码学算法目前来讲是相对安全的。随着数学、密码学和计算技术的发展,尤其是人工智能和量子计算的兴起,这些算法面临着被破解的可能性。同时,这些密码算法需要编程实现,在代码实现方面也可能存在缺陷和漏洞。
ECC、RSA、 哈希等复杂加密算法本身以及在算法的工程实现过程中都可能存在后门和安全漏洞,进而危及整个区块链验证机制的安全性。具有超级计算能力量子计算机的出现也在对密码学构成潜在威胁,随着量子计算技术的飞速发展,大量子比特数的量子计算机、量子芯片、量子计算服务系统等相继问世,可在秒级时间内破解非对称密码算法中的大数因子分解问题(其破解拥有1024位密钥的RSA算法只需数秒),这正在成为威胁区块链数据验证机制的典型攻击手段之一。2017年5月,新型数字加密货币IOTA团队请求MIT研究组审计其软件及代码。7月,MIT研究者告知IOTA团队,他们发现了IOTA的加密哈希功能函数Curl中存在严重的漏洞(哈希碰撞),因此IOTA的数字签名及PoW安全性均无法保障。8月,IOTA 团队采用SHA-3替代掉了备受质疑的Curl哈希算法。
移动数字钱包等区块链客户端软件的安全实现涉及公私钥的使用,而通常情况下用户都是使用软件来生成公私钥,其中私钥的安全性会直接涉及到用户钱包或资产的安全问题,如果在不安全的环境中运行私钥,会增加私钥的泄露风险给用户带来不可预知的损失。目前,针对区块链客户端软件进行攻击的方法基本相同:一种方法是通过窃取凭据来寻求获得系统未经授权的访问权限;另外一种方法则是通过捕获信息、植入恶意软件和/或使用社会工程实现对用户机器中私钥的窃 取。2017年,以太坊浏览器Mist爆出“高危”漏洞,漏洞来源于底层软件框架Electron, 这个漏洞让加密数字货币私钥处于未知风险。一再发生的区块链密钥被盗攻击事件已经表明,一些程序正在生成弱密钥,产生有限范围的可能值,而通过这些有限的随机数生成器生成的密钥可以更容易地被蛮力攻击。
1.2 P2P网络安全威胁
区块链系统以P2P网络为基础,针对P2P网络,攻击者可以发动Eclipse日食攻击、分割攻击、延迟攻击、窃听攻击、DDoS拒绝服务攻击,进而造成整个区块链系统的安全问题。
在区块链P2P网络中通常采用广播机制来传播节点信息,而广播机制中常见的攻击方式则主要有双花攻击和交易延展性攻击两种。
1)日食攻击
日食攻击是通过其他节点实施的网络层面攻击,其攻击手段是囤积和霸占受害者的点对点连接间隙,将该节点保留在一个隔离的网络中。这种类型的攻击旨在阻止最新的区块链信息进入到被攻击的节点,从而隔离节点。
比特币和以太坊网络已被证实均能被实施日食攻击。针对比特币网络,攻击者会先控制足够数量的IP地址来垄断所有受害节点之间的有效连接,之后攻击者则会征用受害者的挖掘能力,并用它来攻击区块链的一致性算法或用于“重复支付和私自挖矿”。而针对以太坊网络,攻击者会垄断受害节点所有的输入和输出连接,将受害节点与网络中其他正常节点隔离开来,进而攻击者会诱骗受害者查看不正确的以太网交易细节,诱骗卖家在交易其实还没有完成的情况下将物品交给攻击者。对比特币网络上的节点实施日食攻击需要成千上万个恶意节点才能搞垮一个受害者的节点,而在以太坊网络上,攻击者只需通过建立一个僵尸网络(如购买云服务)就可以发起攻击。论文《Low-Resource Eclipse Attacks on Ethereum' s Peer- to-Peer Network》指出:攻击者只需要两个恶意的以太坊节点就能隔离和影响另一个节点进行日食攻击,因此对以太坊网络实施日食攻击的成本较低。
2)分割攻击
边界网关协议(BGP)是因特网的关键组成部分,其主要用于确定路由路径,而通过劫持BGP可以实现对基于物联网信息传递的区块链节点流量的误导和拦截。利用BGP操纵因特网路由路径,在最近几年中已经变得越来越频繁。网络犯罪分子可以利用劫持BGP误导和拦截流量,一旦区块链网络中节点的流量被接管,会对整个网络造成巨大影响,如破坏共识机制、交易等各种信息。
攻击者可以利用BGP劫持将区块链网络划分成两个或多个无法通信的独立不相交网络,此时的区块链分叉为两条或多条并行链。攻击停止后,区块链会重新统一为一条链,以最长的链为主链,其他的链将被废弃,被废弃的链上的交易、奖励将全部无效,从而导致双重花费甚至是多次花费问题的出现。
3)延迟攻击
攻击者可以利用BGP劫持来延迟目标的区块更新,而且不被发现。在目标请求获取最新区块的时候,攻击者可以基于中间人攻击修改目标请求为获取旧区块的请求,使得目标获得较旧的区块。例如在挖矿过程中如果遭遇了延迟攻击,矿工获取最新块的请求被恶意修改使其无法获取到新区块,这将导致矿工的算力无辜受损。
4) DDoS攻击
区块链网络中具有数以百万计的在线用户数,区块链节点会提供大量的分布式存储和网络带宽可用资源服务于百万在线用户。攻击者只需在层叠网络(应用层)中控制这些节点资源,而无需入侵区块链网络节点所运行的主机,即可利用这些资源作为一个发起大型DDoS攻击的放大平台。理论而言,将区块链网络作为DDoS攻击引擎时,假如该网络中有一百万个在线用户,则可使得攻击放大一百万倍甚至更多。
2017年2月份,以太坊Ropsten测试链遭到恶意攻击,攻击者发动了千万级别的垃圾交易信息,直接阻塞了网络的正常运行。
2018年3月22日,闪电网络节点遭受DDoS攻击,导致大约200个节点被迫离线,其在线节点从大约1,050 个降到了870个。
根据攻击方式的不同,基于区块链的DDoS攻击可分为主动攻击和被动攻击两种。基于区块链的主动DDoS攻击是通过主动向网络节点发送大量虚假信息,使得针对这些信息的后续访问都指向受害者来达到攻击效果,其具有可控性较强、放大倍数高等特点。这种攻击利用了区块链网络协议中的“推(push)” 机制,反射节点在短时间内接收到大量通知信息后不易于分析和记录,攻击者还可以通过假冒源地址来躲避IP检查,使得追踪定位攻击源更加困难。此外,主动攻击在区块链网络中引入额外流量,会降低区块链网络的查找和路由性能,而虛假的索引信息则会影响文件下载速度。基于区块链的被动DDoS攻击是通过修改区块链客户端或者服务器软件,被动等待来自其它节点的查询请求,再通过返回虚假响应实现攻击效果。通常情况下,其会采取一些放大措施来增强攻击效果,如:部署多个攻击节点、在一个响应消息中多次包含目标主机、结合其它协议或者实现漏洞等。这种攻击利用了区块链网络协议中的“取(pul)”机制。被动攻击属于非侵扰式,对区块链网络流量影响不大,通常只是针对局部的区块链节点。
5) 交易延展性攻击
区块链节点与节点互相连接,当某节点接入到区块链网络后,单个节点会与其他节点建立连接并拥有广播信息的资格,这些具备广播信息资格的节点在将信息传播给其他节点后,其他节点会验证此信息是否为有效信息,确认无误后再继续向其他节点广^播,这种广播机制会面临如交易延展性攻击等风险攻击者通过侦听P2P网络中的交易,利用交易签名算法特征修改原交易中的input签名,生成拥有一样input和output的新交易,广播到网络中形成双花,这样原来的交易就可能有一定概率不被确认,在虚拟货币交易的情况下,它可以被用来进行二次存款或双重提现。
2013年11月,GHashio 矿池对赌博网站BetCoin Dice进行多次付款欺诈,进行双花攻击。
2014年8月,在线黑市Silk Road2遭遇交易延展性攻击,部分比特币被盗,损失约260万美元。
2. 系统核心设计安全威胁
智能合约作为区块链2.0区别于1.0的显著特性,正在被广泛使用。数据层和共识层作为区块链系统的必要元素,与合约层一起共同构成了区块链系统的核心,衔接着基础服务与应用生态。
2.1 共识层安全威胁
由于区块链去中心化的特点,每一个处于区块链网络中的节点都拥有一份完整的账本数据,并且由网络中的共识机制执行相应的共识算法来共同记录整个网络中的交易等相关信息。目前的共识机制有PoW、PoS、 DPoS、 Pool 验证池机制、PBFT等,其主要面临的攻击有女巫攻击、51%攻击、长距离攻击、短距离攻击、币龄累计攻击、预计算攻击。PoW、PoS、 DPoS这三种常见共识机制所面临的攻击方式如表2-1所示。
1) 51%攻击
在PoW算法中被证明存在51%算力攻击威胁,即如果某一个节点或者由部分节点组成的组织掌握了全网超过51%的算力,这些节点就有能力将目前正在工作的区块链转移到另一-条包含有恶意行为的区块链上,并使得全网节点在这条恶意的区块链上继续工作。
如果攻击者能够控制全网算力的一半以上,攻击者可以比网络的其他部分更快地生成块,随着攻击者坚持自己的私有分支,直到它比诚实节点网络建立的分支更长,将可以使得全网节点在这条恶意的区块链上继续工作,近而代替主链。
由于比特币所使用的PoW算法的安全性依赖于其所消耗的巨大算力,51%算力攻击曾一度被认为是难以达到的。然而随着矿池的出现,一个名为GHash的矿池就曾经在2014年6月拥有全网51%的算力,因此,51%算力攻击的威胁始终存在,并且有可能发生。2016年8月份,基于以太坊的数字货币Krypton 遭受来自一个名为“51%Crew"的组织通过租用Nicehash算力所发起的51%攻击,导致该区块链损失约21,465KR的代币。据Crypto51.app数据统计,想完成对比特币一个小时的51%算力攻击的成本大概要55万美金,完成对以太坊的攻击需要36万美金,莱特币需要6.4万美金,比特币现金需要7.2万美金,最近刚被攻击过的BitcoinGold比特币黄金只需要三千八百六十美金就能完成51%攻击,在统计的流通性比较高的数字货币里攻击成本最低的就是Bytecoin, 要完成攻击仅仅需要五百五十七美金。而实际上,随着挖矿业务的发展,现在通过网络租赁算力的业务也越来越成熟了,攻击者不再需要花费大量成本去购买矿机,只需要在攻击的时候即时从网上租赁算力来发动51%攻击,利用51%算力攻击一个数字货币的成本在越来越低。
2)女巫攻击
女巫攻击又称Sybil攻击,攻击者通过创建大量的假名标识来破坏对等网络的信誉系统,使用它们获得不成比例的大的影响。为了应对这种威胁,对等网络中的实体为了冗余机制、资源共享、可靠性和完整性而使用多个标识。多个标识可以对应于单个实体,身份到实体的映射是多对一的。对等网络上的实体是能够访问本地资源的一块软件,实体通过呈现身份在网络上通告自身。在对等网络中,身份抽象化使得远程实体可以知道身份而不必知道身份与本地实体的对应关系。默认情况下,通常假定每个不同的标识对应于不同的本地实体。实际上,许多身份可以对应于相同的本地实体。攻击者可以向对等网络呈现多个身份,以便出现并充当多个不同的节点。因此,攻击者可能能够获得对网络的不成比例的控制水平,例如影响投票结果。
3)短距离攻击
攻击者通过控制一定比例、保障系统安全性的计算资源、加密货币资源等各种资源,实现在执行花费代币或执行智能合约等操作时将 其回滚,从而进行双花攻击,即一个加密货币进行两次花费。
当攻击者发起短距离攻击时,首先会向全网提交一个待回滚的交易,并在上一个区块的分叉上(不包含待回滚交易的分叉)继续进行挖矿,直到该交易得到n个区块确认信息。若分叉上的区块数多于n,则攻击者公布包含有待回滚交易的区块。这样,由于分叉链的长度大于原本的主链,则全网节点将分叉链视为主链,此时,交易得到回滚。
4) 长距离攻击
攻击者通过控制一定比例的系统资源,在历史区块、甚至是创世区块上对区块链主链进行分叉,旨在获取更多的区块奖励和/或者达到回滚交易的目的。这种攻击更多的是针对基于权益证明共识机制的系统。即使攻击者可能在分叉出现时仅持有一小部分的代币,但他可以在分叉上自由地进行代币交易,从而导致攻击者能够更加容易地进行造币并快速形成一条更长的区块链。
5) 币龄累积攻击
基于PoS共识机制的系统中,攻击者可以利用币龄计算节点权益,并通过总消耗的币龄确定有效的区块链。未花费交易输出(UTXO)的币龄是根据币龄乘以该区块之前的历史区块的数量得出(比如点点币)。在币龄累计攻击中,攻击者将其持有的代币分散至不同的UTXO中,并等待直至其所占权益远大于节点平均值。这样,攻击者有极大的可能性连续进行造币,从而达到对主链的分叉或交易回滚(如实施双花攻击)的目的。
6)预计算攻击
在PoS共识机制中,解密当前区块取决于前一个区块的哈希值。拥有足够算力和权益的攻击者可以在第n个区块的虚拟挖矿过程中,通过随机试错法对该区块的哈希值进行干涉,直至攻击者可以对第n+1个区块进行挖矿,从而,攻击者可以连续进行造币,并获取相对应的区块奖励或者发起双花攻击。
2.2 合约层安全威胁
智能合约是区块链2.0的一个特性,随着区块链2.0技术的不断推进,智能合约在以太坊、EOS、 Hyperledge 等平台上得到广泛应用。区块链的智能合约一般都用来控制资金流转,应用在贸易结算、数字,资产交易、票据交易等场景中,其漏洞的严重性远高于普通的软件程序。由于智能合约会部署在公链暴露于开放网络中,容易被黑客获得,成为黑客的金矿和攻击目标,一旦出现漏洞,将直接导致经济损失。从TheDAO到BEC和SMT的整数溢出漏洞、再到EOS缓冲区溢出越界写漏洞,智能合约的安全漏洞频发,“智能合约”已经成为区块链安全的重灾区。
以太坊( Ethereum)是目前最热门的具有智能合约功能的开源公共区块链平台,区块链上的所有用户都可以看到基于区块链的智能合约。但是,这会导致包括安全漏洞在内的所有漏洞都可见。如果智能合约开发者疏忽或者测试不充分,而造成智能合约代码存在众多漏洞,就非常容易被黑客利用并攻击。并且功能越强大的智能合约,逻辑越复杂,也越容易出现逻辑上的漏洞。来自新加坡国立大学、耶鲁新加坡国立大学学院和伦敦大学学院的一组研究人员发布了一份报告,声称已经发现了3.4万多份以太坊智能合约可能存在容易被攻击的漏洞,其中大约3000个不安全的智能合约可能会造成600万美元的ETH被盗。表2-2列出了以太坊的合约层漏洞。
2.3 数据层安全威胁
区块链数据具有不可篡改、去中心化生成和确认的特点,这也就造成了区块链数据的难以监管,使之可被利用进行恶意攻击和恶意内容传播。
2017年在EuskalHack安全会议上,有安全研究者提出了基于区块链模式的botnet网络,利用区块链网络进行C&C的恶意指令发布并且提供了POC。
2018年3月德国RWTH亚琛工业大学的研究人员发现了比特币区块链中的非财务数据,其中包括色情内容等。幸运的是,亚琛工业大学的研究人员没有发现任何恶意软件保存在比特币区块链上。在他们的论文中,研究人员指出了你可以通过多种方式在加密货币的区块链上插入内容,其中包括CryrtoGrafiti、Satoshi Uploader和Apertus等服务。但另一方面,如果不能开发出解决方案来移除区块链当中的色情内容,那添加的数据就永远无法管理,并且无法被清除。
目前比特币、以太坊和Hyperledger Fabric都采用全网节点共享一条区块链的单链方案,网络上的每个节点需要处理、存储全网的所有交易和全部数据,整个区块链系统的处理能力实际上受限于单个计算节点的处理能力。另外,受到共识算法的影响,随着节点数的增加,系统整体处理能力不但未随之提升,甚至还会降低。
区块链对于网络中的节点来说是透明的,任何一个节点都可以获取区块链上的所有信息。虽然比特币使用随机数和非对称加密算法生成唯一地址作为用户的地址进行交易,但是如果这些地址直接或间接地与真实世界发生了联系,就会失去其匿名性,从而泄露其个人隐私。另外,不同的地址之间如果出现稳定的关联交易,通过分析交易规律,甚至能够推测出用户的身份信息和位置信息。如果交易节点被攻击,攻击者不仅可获得用户的交易信息,而且很容易借此为跳板破坏整个交易链。
3. 应用生态安全威胁
区块链的应用已从数字货币的虚拟世界走向了与现实世界相对接的实际应用场景中,其应用生态安全涉及数字货币交易平台、区块链移动数字钱包App、网站、DApp等。
和传统金融机构差别不大,数字货币交易所整个信息系统由Web服务器、后端数据库等元素构成,用户通过浏览器、移动端App以及交易所提供的API等多种方式作为客户端访问服务器。美国数字货币安全公司CipherTrace发布的二季度观察报告显示,2018年前6个月,全球数字货币交易所共有价值7.61亿美元的数字货币被黑客窃取。而整个2017年的损失金额也不过2.66亿美元。2018年上半年以来,被盗取的数字货币金额已经达到了2017年的3倍之多。结合各大交易所出现的攻击事件发现,这部分面临的安全威胁主要包括:服务器软件漏洞、配置不当、DDoS攻击、服务端Web程序漏洞(包括技术性漏洞和业务逻辑缺陷)。
本部分重点介绍网站和移动数字钱包App面临的威胁。
3.1交易网站面临的安全威胁
和其他网站一样,交易网站面临账户泄露、DDoS、Web注入等攻击,对于规模较大,用户较多的交易所,还会面临用户被攻击者利用仿冒的钓鱼网站骗取认证信息等威胁。
1)账户泄露攻击事件
黑客可利用病毒、木马、钓鱼等传统攻击手段窃取用户账号,进而利用合法用户账号登录系统进行一系列非法操作,或者通过非法手段拿到交易所系统的数据库,由于数据库存储着用户的注册信息,且这些数据没有加密,黑客拿到这些数据后可以在互联网上售卖或者对平台进行恶意操作。攻击者破解其他安全措施较弱的网站密码,通过撞库的方式获得登录口令,因此采用双因子认证等传统安全用户认证方式对于数字货币交易所和区块链应用系统来说非常必要。
2017年10月2日,OKCoin旗下交易所出现大量账户被盗情况,不完全统计损失金额在1000万人民币左右,用户怀疑平台已被攻击, 或有已被关闭平台的交易所员工向黑客泄漏了平台用户的账户信息,黑客通过用户信息破解账户密码登录平台,然后在平台上完成数字资产转移。
2) Web注入攻击件
攻击者可以采用SQL注入、XSS跨站脚本攻击等方式对Web进行注入攻击,SQL注入是把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。XSS跨站脚本攻击指攻击者在网页中嵌入客户端脚本(例如IJavaScript),当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的,比如获取用户的Cookie, 导航到恶意网站,携带木马等。
2017年8月份,一款名为Ti ickbot的木马就针对包括Coinbase在内的几家数字货币交易所增加了Web注入攻击功能,在受害者购买数字货币的时候和会将接收钱包重定向到攻击者的钱包,让用户误以为转账成功,实际上是给攻击者转账了。
3) DDoS攻击
在区块链应用中,攻击者可针对区块链应用层和底层协议缺陷发起针对性的DDoS攻击,影响各类应用业务的可用性。2017年5月12日,Poloniex交易平台遭受了严重的DDoS攻击,BTC/USDT的交易价格一度困于1761美元,绝大多数用户都无法执行订单或是提取资金。根据云计算安全服务提供商Incapsula发布的2017年第四季度DDoS威胁报告,应用层DDoS攻击数量较前一季度成倍增长,且针对加密货币行业的攻击数量持续增长,占所有攻击数量的3.7%。
4)钓鱼网页攻击
2017年4月14日,在约翰霍普金斯大学研究数学的学生xudongzheng发表了一篇论文, 题目是《Phishing with Unicode Domains》,中文大意为“用unicode网址钓鱼”,文章中给出的一一种钓鱼 方法会使用多语言字符混合来骗过用户眼睛。
2018年3月7日,知名数字货币交易平台币安遭到黑客攻击,此次攻击造成全球数字币价格大跌。根据交易所的公告,攻击者利用钓鱼欺骗的方式骗取了部分用户的认证凭证,在掌握用户的账户权限之后,使用机器挂单,继而利用API发起大量交易,进行程序化高频交易,给用户带来巨大损失。
3.2 数字货币钱包App面临的威胁
利用移动数字货币钱包App管理数字货币资产,可以随时查询钱包历史,获得全球实时交易行情。数字货币钱包App中保存的私钥是区块链节点和数字货币账户授权活动的直接手段,加密数字货币资产的安全性建立在加密数字钱包私钥本身的安全性上,私钥是唯一的数字资产凭证,敌手一旦拿到私钥,就可以拿到私钥所担保的任何钱包,因此黑客会想方设法窃取私钥。移动数字货币钱包App与其他App一样,会遭受破解、内存篡改攻击等。
1)私钥窃取
Google Play 商店中超过2000款移动数字货币钱包App,由于移动开发过程中缺乏对安全性的认识,前30款总安装量达到10万的数字货币钱包App中,有94%包含至少3个“中等风险”漏洞,77%包含至少2个“高风险”问题。根据分析显示,最常见的漏洞是数据存储安全性不足、密码系统安全性不足,这些漏洞会导致私钥的窃取,个人隐私信息泄露等安全事件。
一些数字货币钱包为了便于用户记住私钥,使用助记词的方式,但是部分数字货币钱包的助记词采用明文存储的方式,一旦数字货币钱包App存在漏洞,拿到系统的root权限,就可以获取钱包的助记词,导致数字资产随时被盗取。已有公司对市面上的数字钱包产品在私钥存储问题上进行了安全分析,发现Bitcoin Wallet 和Jaxx BlockchainWallet两款产品在私钥存储中存在巨大的安全漏洞,加密数字货币资产面临被盗风险。黑客通过尝试捕获信息、植入恶意软件和/或使用社会工程即可从用户机器中窃取私钥。
2)破解攻击
数字货币钱包App涉及到数字货币资产,是网络黑产和黑客重点关注的对象,网络黑产可以从各种渠道找到App的apk,将apk文件逆向破解后植入病毒、木马代码,最后二次打包投入公开市场,当不明真相的币友将带病毒、木马的App下载后,会带来巨大经济损失。
在开发移动App时,程序员会用到各类的编程语言,如Java、C、C++以及各类脚本语言等都被广泛大量使用。但Java、 C这样的中间语言有一个极大的弱点就是极易被反编译。Java的基本类库(JDK)是开源的,这就使很多Java开发的应用被逆向破解的门槛很低。目前市面上有大量的逆向破解工具,例如: Dex2Jar、 JEB、JD-GUI 等等。且网上有公开、详细的破解教程,只要懂代码编程,利用这些工具就可以破解市面上那些防御薄弱、存在大量安全漏洞的App。
3) App内存篡改攻击
App应用中的高度敏感和关键性信息驻留在一个应用内存中, 如果未受到保护,则这些信息可以被随意查看和篡改。黑客通常使用进程调试、动态注入、HOOK等技术来实现对App内存的攻击,这些攻击方式主要是先对App Code控制,App Data控制进行攻击修改。通过控制内存中的应用代码,可以调试解析出应用内逻辑、功能、流程、漏洞等各类关键内容。针对发现的漏洞植入相应的后门代码,以便针对应用进一步攻击对移动应用数据的攻击,是黑客/攻击者的核心内容,App内存中包含很多重要个人信息和应用变现相关的信息和逻辑。黑客对内存中的Data进行控制,以达到篡改App应用的目的,如修改转账金额、账户等。
4. 区块链面临的安全挑战
4.1钱包安全管理
区块链钱包(Block Chain Wallet)是密钥的管理工具,它只包含i密钥而不是确切的某一个代币;钱包中包含成对的私钥和公钥,私钥与用户的资产直接关联,用户用私钥来签名交易,从而证明该用户拥有交易的输出权。获取了私钥,就获得了资产的使用权和交易权。黑客复制或窃取私钥可能不会在计算机上留下任何痕迹,甚至可以无限地尝试解密或尝试从给定的分类帐中复制加密数据,恶意用户访问钱包可能很难被发现。
私钥保护不仅要考虑在黑客机器上发生的行为,例如不受服务器强加的查询限制进行文件解密尝试或私钥再现,还需要保证在没有任何其他人能够注意的情况下保证私钥运行时的安全。
钱包软件需要保护私钥在运行和存储时的安全,包括未经授权不允许访问、运行过程防止被监控,甚至做到软件被控制、监视也无法获取私钥:此外,也需要考忠用户密钥被盗、丢失后账户资产的安全。因此,如何保证私钥的运行安全以及在保证资产安全的前提下进行私钥备份是钱包安全管理面临的挑战。
4.2 智能合约安全
由于智能合约的不完善,且还存在着许多漏洞,执行起来仍然是一-件具有挑战性的问题。一旦这些漏洞被黑客利用,就会造成虚拟货币的财产外泄,被不法分子盗取。在智能合约中采用全同态加密技术,可保证区块链中数据的隐私和数据在不可信环境下运算的正确性,但全同态加密技术距离实际应用还存在一定的距离。
智能合约本质上是一段运行在区块链网络中的代码,它界定了各方使用合约的条件,在满足合约条件下某些机器指令被执行。而代码在设计和开发过程中,不可避免出现漏洞。开源代码大约每1000 行就含有一个安全漏洞,表现最好的Linux kermel 2.6版本的安全漏洞率为每一千行代码0.127个。安全智能合约的开发对程序员本身是一个挑战。智能合约作为新生事物,熟悉智能合约的开发人员不多,受限于程序员的安全意识和代码编写能力,可能在开发时无法意识到自己造成了安全隐患,极有可能给智能合约带来相当大程度的安全风险,智能合约的代码可靠性难以保证。
此外,智能合约还是多方业务的交互规则,智能合约的安全不仅要考忠代码编写时防止整数溢出等漏洞,且需要先进行智能合约协议安全性分析,防止业务逻辑漏洞的出现。如何保证智能合约的安全是区块链安全面临的一大挑战。
4.3 隐私安全
区块链是一种分布式账本,意味着数据在网络上的所有参与方之间共享。一方面,这会对许多参与节点链的节点的可用性产生积极影响,使其更加健壮和有弹性。另一方面,可能会对机密性产生负面影响。
隐私问题主要包括,保护匿名性和区块链中内容的机密性。区块链最初的设计具备一定的匿 名性,但随着技术的发展,也出现了一些追踪技术。交易追踪技术通过追踪交易在网络中的传播路径,最终发现交易的始发节点,一旦将交易与始发节点的IP地址关联,就可以将交易中的匿名账号和用户身份关联,从而破坏了区块链的匿名性。该技术有助于识别恶意交易者的身份信息,分析数字货币的流向增强监管,但如果被攻击者使用则会破坏使用区块链的公司和组织的业务隐秘性,对公司和组织的利益造成损害。
区块链的隐私安全一方面要 加密交易的内容,不能让人看到另一方面,需要验证交易的正确性,不能都加密。这两者本身存在矛盾,也是.隐私保护技术上的挑战。一般采用同态加密、零知识证明等前沿技术进行隐私保护,这些技术需要进行一系列的运算,势必会影响系统性能。隐私保护技术在保证用户隐私情况下同时兼顾系统性能,是隐私保护技术面临的一大挑战。
|