DDOS攻击?私钥被盗?那些让你崩溃过的节点事故

截至2020年7月Stakingrewards的数据,目前全球加密资产总市值约为2728亿美元,参与staking的加密资产来自89个不同项目,总市值为196.5亿美元,约占加密资产总市值的7.18%。

Staking中处于锁定状态的token的总市值为$104亿,约占加密资产总值的3.8%, Staking资产总值的53%,平均staking收益率约为15.5%。

正是因为Staking的市场可以带来可观的收益,所以节点安全对于validator来说至关重要,当然也逃不过被黑客们惦记。
CeriK安全团队采访了一些业内的验证节点运营者,他们分享了一些自己在运维中所遇到的困难——这些还仅仅是运维节点本身而产生的一些技术问题,算不上被黑客攻击。
Validator [email protected]  :我忘记了在Game of Zone里面设置最小值。一觉醒来发现我的内存池被成千上万数值为0的交易堵塞了,基本上熔断了我的节点的正常功能。我必须要手动将这些交易刷掉才能让节点回复正常功能。当时我的心情是崩溃的……
Validator [email protected] :有次我用来签名的Nano S不工作了,我需要让一个在Florida(美国佛罗里达州)的朋友去数据中心帮我替换。还好这个是在主网上线之前所发生的事情,所以整个网络还没有真正的经济价值。不过后来我就对Nano S粉转路人了。
Validator [email protected] :我之前尝试过更新Regen Network开发的Upgrade Manager(升级管理器)模块,我的想法本来是这样的:在一个不需要新的创世块的主网升级中,这个模块可以直接将binaries替换掉。这个听起来极具吸引力,我一直在寻找可以让节点自动更新的办法。然而你可能猜到了,这个模块并没有如我所想——准确定位到我希望替换的binaries并且进行替换,而我的节点也因此在运行bootstrapping的过程中挂掉了。当我早上起来查看的时候,我的验证节点已经jailed(被封禁)并且受到了slash惩罚。当时我是崩溃的,我在想如果真的有什么软件可以自动帮我把正确binaries拉取出来就好了。
运营节点本身就已经有了这么高的技术壁垒,那么被黑客瞄上又是怎样的体验?
比如说….
被DDOS攻击 怎么办?
签名私钥被盗用 怎么办???
验证节点/哨兵节点的可信链接被盗用怎么办????
幸运的是
CertiK安全团队已经给出了可靠的答案
真正可靠的区块链生态系统只能在强大,安全和高性能的基础架构之上生存。
CertiK设计的NoOps不仅是其产品组合中的单一产品。基础架构的安全性,是NoOps从第一天设计开始,就秉承的核心理念。
本文接下来将详细阐述NoOps是如何将创造力与安全理念结合,设计出一款优秀的节点安全产品。
引入哨兵节点防范DDOS攻击
缺乏经验的节点运营者会让自己的RPC 端口开着,基本等同于在挥舞着大旗手舞足蹈地吸引DDOS攻击者的注意力。
DDOS会让你的投票被熔断,会让你在为出块做出贡献时落后于别人甚至无法再操作,但是被DDOS攻击倒也并不意味着世界末日。如今,在RPC技术栈层面的DDOS已经不是非常常见了,因为非常容易预防。但是在p2p层面DDoS攻击依旧是一个很大的威胁,它更难被阻止并会产生更大的负面影响。
哨兵节点于验证节点的关系就像象棋里其他棋子与将的关系,其他棋子总是站在将的前面,为其提供层层保护。

上图白色的小方块为哨兵节点

如果有黑客想要打那些蓝色的验证者节点的主意,需要踩着哨兵节点的尸体过去。
验证者节点需要保证自身的运行不受DDOS攻击的干扰。CertiK采用“ 哨兵节点“的网络拓扑结构以确保其稳定的运行。
因为验证者节点没有公网IP,黑客无法直接对其发起攻击。哨兵节点位于验证者节点的前面,缓解DDOS攻击对验证节点的影响,充当保护节点的保护层。而验证者节点通过内网与哨兵节点相连,哨兵节点有公网IP,外界可以直接对其进行通信。
此外,验证者节点本身还受到世界上第一个经过全面验证的防黑客操作系统CertiKOS的保护。想要了解CertiKOS,欢迎阅读昨日发布的《哥大校友会分享问答: 从直升机到NASA,军用级安全护盾的区块链应用》。
 
比疫情防控更严格的子网络隔离技术
酒店隔离当然是单间居住,就算一个房间内的人感染了病毒,也不会影响到其他房间。
不同用户的节点存在于不同的VPC(虚拟私有云)中,在需要的情况下,VPC中也会设置多个子网。VPC保证了网络之间的隔离,一个VPC中的系统出了问题,不会影响到另一个VPC中的系统。
在网络访问以及端口开放方面,我们有着苛刻的ACL(访问控制列表)和Security Group。保证服务器只要开必要的端口,只对需要的IP开放访问。最大程度减少被黑客入侵的可能。如同现在大家上班,办公大厦只会定时开放一个大门,减少无关人员进入同时方便管理,提高了安全性。
保护签名秘钥的安全
面对签名秘钥被盗用这一安全威胁,行业标准是使用HSM解决方案,也有的会选择用KMS方案比如说tmkms来解决。CertiK安全团队发现大部分现有的验证者并没有使用基于硬件的私钥管理方案,可能有以下几个原因:
· 费用昂贵
· 需要额外的管理
· 需要能够进入到实体的服务器中
当一个黑客得到了你的签名秘钥,最好的结果是黑客仅仅盗取了这个签名秘钥而已,但现实往往不仅如此。一旦黑客对验证节点执行一个拜占庭攻击行为,导致双重签名发生,节点将会受到slash惩罚或者直接石化,失去所有功能。
那么,怎么办???
只要你有网银,想必就会对以下这种类似于网银使用的U盾小图标十分熟悉。

CertiK有一个安全的系统来帮助管理私钥,对于验证人节点而言,私钥是签名密钥,它是整个系统中最重要的秘密。如果将签名密钥存储在安全库中,即使黑客入侵了验证者节点,他们也无法窃取签名密钥本身。
在哨兵节点与验证人节点之前,还有一个跳板/堡垒机(bastion node/jump box )。要登录堡垒机,必须同时进入CertiK VPN并使用YubiKey。在进入堡垒机之后,需要用每个机器独有的SSH私钥登陆哨兵节点以及验证人节点。Yubikey是包含SSH登录凭据的物理密钥。进入CertiK VPN网络对于攻击者来说本就十分困难。除非会隔空取物,否则几乎不可能得到物理Yubikey。
 
可定制的架构
基础架构的安全威胁其实更像是一个系统/管理员的问题。CertiK安全团队做过一些相关事件的基础架构审计,囊括了:
访问控制
多重身份验证
基于网络和服务器的防火墙
用户和管理员的权限分离
加密传输
NoOps致力于IaC(infrastructure as code基础设施即代码), 用以提供更高的质量保证和安全性。基础架构即代码是通过机器可读的定义文件管理和供应计算机数据中心的过程。这意味着执行将更加自动化,更迅速,更容易以及更加可靠。
· 自动设置
NoOps消除了启动节点的麻烦。通过NoOps,建立机器,调整配置以及执行链式二进制文件都组合为一键式解决方案。自动化不依赖易于出错的人为判断并设置节点,而是缩小了意图和实现之间的距离,从而阻绝了任何意外行为或漏洞的发生。
· 可定制的基础设施
可以从两个预定义的架构模板开始:
一般用途:
一个私有验证器节点
两个公共哨兵节点
一位公众监督员

对于那些强烈关注安全性的人:
· 哨兵和验证者节点是在专用子网中设计的

用户也可以选择构建自己的基础架构设置以满足需求。这就像玩Legos一样,用户可以添加哨兵和验证器以及负载平衡器以增强安全性和性能等。
使用NoOps服务的成本也会根据所需的计算机数量而变化。安全性内置在产品设计的每个层中,因此自定义体系结构时可以不必担心其他问题。

可定制的警报系统和呼叫机制
每当发生异常时,监视系统都会及时将问题报告给稳定的通知平台,该平台会通过电子邮件,Slack消息,文本消息或电话将警报推送给用户。收到警报后,值班工程师将对此情况做出响应并尽快修复所报告的问题。这就相当于,你在家安置的家庭警报,发现了异常后不仅通知了你本人,还自动拨打了110通知了派出所。用户可以在NoOps应用程序页面上自定义何时以及如何接收警报。
节点的实时系统指标
验证者的健康状况对于服务提供商和涉众都至关重要。因此,CertiK安全团队为在NoOps平台上运行的每个节点构建了一个全面的监视系统仪表板,该仪表板可测量所有重要的系统指标并收集专用的安全监视器以进行定期评估。 

现在就动手加入吧
CertiK的使命是为企业用户构建区块链即服务解决方案,简化流程,实现无缝的数字化转型并构建以安全为核心的区块链网络。
如果你想要使用NoOps开始构建安全和自定义的区块链基础架构,请查看CertiK的产品页面以启动试用帐户。你也可以直接登录官网以获取有关NoOps使用的更多信息:https://noops.certik.io/