[译]关于Cosmos/Tendermint验证人的风险分析
原文链接:https://bubowerks.io/blog/2018/08/03/risk-assessment-of-cosmos-tendermint-validators/
Risk Assessment of Cosmos / Tendermint Validators
于 2018年8月3日发布
正如我们在前面的文章中提到的,我们研究了Cosmos枢纽中验证人的安全性。为了评估控制的是否有得当的控制措施,我们必须考虑针对一个系统的突出的风险。已经有很多关于区块链中广泛存在的风险的讨论,例如拒绝服务攻击(denial of service attacks)、女巫攻击(Sybil attacks)、日食攻击(eclipse attacks)、路由攻击(routing attacks)、密码攻击(crypto attacks)、区块丢弃/扣留攻击(block discarding / withholding attacks)、双花攻击(double spend attacks)、长程攻击(long range attacks)。这些风险之间存在大量的重叠和交叉,这些攻击中的本身就值得写一篇文章来分析。Tendermint通过利用基于权益的证明机制的实用拜占庭容错的网络设计来解决这些问题。这种设计的主要想法是依赖于验证人节点的安全性:如果一个攻击者颠覆了足够多的验证人节点,并且控制了网络中超过2/3的投票权,那么整个网络就玩完了。
Cosmos有一个关键的特性来激励验证人节点保持安全:惩罚那些看起来做了错事的验证人节点。也就是说,那些表现出他们有受到损害或尝试进行上述攻击之一的迹象的节点会被罚没一些抵押代币。由于验证人节点的所有者和委托给验证人的委托人都有抵押资产,这意味着验证人节点的所有者和委托人都会因安全性较差而承担实际的财务损失。从积极的角度来看,它们在受到经济上激励来保持验证人节点具有良好的安全性。
那么对于验证人节点来说什么样才是安全性较高呢?为了搞明白这件事,我们首先需要搞明白验证人节点都会遇到哪些风险,这就是这篇文章的目的。为了找出这些风险,我们首先检查了系统中的资产、威胁参与者、继发风险、风险发生的可能性和影响,我们最后把这些内容放在一起来进行最终的风险评估。
定义
- Sentry System哨兵系统:哨兵系统是一个运行了一个Cosmos Hub全节点,并且作为验证人的 公共或私有哨兵节点,大多数哨兵节点都有公网IP。
- Support System辅助系统:一个用于支持验证人系统或者哨兵系统的系统,例如监控、权限管控,或者备份。也包含用于验证人节点部署时需要的系统配件,包括硬件,例如:路由器、开关和VPN网关。大多数系统需要与公网直接连接
- System 系统:组成一个独立软件系统各个组件,硬件和操作系统,应用软件和相关模块(例如防火墙)的总和。
- 验证人节点部署Validator Deployment:验证人系统,哨兵系统和辅助系统的总和
- 验证人系统Validator System:一个部署在Cosmos Hub上的验证人节点的系统
Assets 资产
验证人的核心资产在表面上看起来是验证人系统validator system,但实际上是验证人用于对区块和投票签名的密钥。验证人系统本身当然也是重要的,但不是最关键的。验证人系统可以丢失(例如受到自然灾害),但是如果有故障备份和原来的密钥的话验证人节点可以无缝地切换到另一个验证人系统。如果攻击者掌握了这些密钥(尤其是大量验证人的密钥),他们就可以在原来的验证人节点或克隆的验证人节点上发起前面提到的多种类型的攻击。这些密钥被毁坏也会导致网络接收一个被攻击者控制的新的验证人。除了核心验证人节点,资产还包括哨兵节点,支持系统和网络本身。
然而,我们不应该只关注计算机系统的安全性。一个验证人需要抵押一定数量的代币以成为100–300个Cosmos枢纽中的有效验证人之一。我们可以把所有的抵押分成验证人自己抵押给自己的代币,和其他委托人抵押给验证人节点的代币。同样的,验证人保存自己的节点一直在线的能力和他的声誉他的团队的执行能力有关。任何的公众活动都会影响声誉,包括网站、社交网络账号、Cosmos论坛账号和媒体采访。验证人团队也可以分为关键人员和其他员工。关键人员是那些为验证人节点运行提供必要元素的人、提供抵押代币的人、知道如何操作的人、有访问权限的人或其他重要的人员。
作为总结,我们在下面列出了各种资产类型:
- Validator public/private keys验证人的公钥和私钥
- Validator system(s)验证人系统
- Sentry systems哨兵系统
- Support systems支持系统
- Owner stake验证人自己的抵押
- Delegate stake委托人的抵押
- Validator reputation验证人的声誉
- Key personnel关键人员
- Other staff其他工作人员
Threat Actors 威胁参与者
威胁参与者是任何可能损害上述资产的实体。威胁参与者中有许多并非恶意的:一个损失代币的委托人不会关心这种损失是来自于恶意攻击还是不可抗力;另外,大多数的非故意的损害并不是恶意发起的;因此,最好是从整体上防范威胁。从这个较低除非,我们想到了下面列表中的威胁参与者
- Force Majeure 不可抗力:不受这里列出的任何一方控制的事件,包括所谓的“上帝的行为”或“自然母亲”,和一些其他的极端事件(例如严重骚乱或战争行为).
- Resourceful Attackers 拥有丰富资源的攻击者:拥有大量的资源的外部攻击者,包含政府、非政府参与者(例如恐怖组织),和犯罪组织。他们发起攻击的目的是获得高额的收益或者是使目标受到严重伤害
- Opportunistic attackers 投机攻击者:那些没有大量的资源的攻击者,他们可能寻找那些容易被窃取或损害的资源;他们受到提示名誉的激励和获得少量的经济收益的激励;他们能够看到每个验证人被抵押了多少代币,因此他们可以攻击验证人节点的可用性来勒索赎金。
- Insiders — Key Personnel 内部人员 — — 关键人员:正如关键人员是资产一样,任何一个拥有验证人运行需要的关键元素的人都可能带来巨大的损害,不论是有意还是无意的;一般情况下,关键人员的行为都是想要最大化验证人节点利益,但是他们也有最多的损害各种资产的机会
- Insiders — Other Personne 内部人员 — — 其他人员:任何一个能够从内部接触到验证人节点的部署的人都可能造成损失,无论是事故还是蓄意破坏;从内部接触到验证人节点指的是任何不通过Tendermint的P2P协议访问验证人节点的任何组件的行为,包含有特殊权限的访问和普通用户的访问(这里假设大多数的人员都有访问至少一个组建的特殊权限,因此把访问者分成两类没有太大价值)。他们的行为一般情况下都是想要最大化验证人节点利益,但是其他内部人员也有时候也会做出恶意行为,尤其是他们感觉被轻视的时候。
- Delegates 委托人:任何一个把他们的代币抵押给验证人节点的人;正如内部人员一样,他们也想使验证人节点的利益最大化,虽然当他们感觉被轻视或者他们的抵押是别有用心的时,他们也可能会做出恶意行为。
- Other validator operators / delegates 其他验证人节点的运营者/委托人:任何一个以劳动或代币的形式投资了一个不同的验证人的人;他们一般会受到使自己的验证人获得更多的抵押的激励而做出威胁行为;他们给其他验证人节点带来的威胁会让他们的验证人节点获得更多的抵押,也就让他们能获得更多的收益。然而,来自其他验证人的一个巨大威胁是那些验证人节点被攻陷。
Threats 威胁
在下面的矩阵中,我们总结不同的威胁参与者尝试攻击各类资产的行为。在附录中将对各类威胁的可能性、影响和不可控因素进行了分析。在本节中,我们将分析各类威胁:
- Compromise due to exploited trust link from sentry or support system由于哨兵系统或者辅助系统的连接被占用而受到损失: 验证人系统必须保证和哨兵系统和辅助系统连接。这种信任的连接可能会被攻破,然后将验证人节点暴露出来。尤其是一旦暴露了登陆链接信息,也就是如果攻击者可以用验证人的身份登陆,那么系统将处于危险之中。
- Compromise due to exploited trust link from validator or support system: 利用验证人系统或支持系统的利用信任链接造成的损害:对于验证人而言,哨兵节点可能暴露出系统漏洞。
- Compromise due to infected USB device:利用USB设备造成的损害:如果受感染的USB设备插入其中,则计算机可能会被恶意软件感染; 这在某些操作系统和桌面等系统中更为普遍,会有用户实际操作服务器。甚至对于隔离起来的服务器也有这个风险。
- Compromise due to MitM attack: 利用MitM中间人攻击造成损害:原来只是在理论攻击领域和局域网概念证明,但最近的大规模重定向攻击已经证明复杂的攻击者能够将攻击导入到网络流量中。
- 利用网络漏洞造成的损害:在现代主机上运行的各种服务 — 甚至在其正在运行的Tendermint特定服务之外 — 呈现出易受攻击的攻击面。 若网络软件中出现任何漏洞,攻击者必然会利用它。
- Compromise due to other network vulnerability over trusted link: 利用网络中的可信链接造成的损害:与其他网络漏洞一样,某些主机(如验证人节点)可能只能通过可信链接访问 — 即使有这种固有的架构保护,链路的另一端仍然可以利用该信任来攻击受保护的系统。
- Compromise due to phishing: 利用钓鱼网站造成的损害:网络钓鱼可能是今天最成功,也就是普遍的攻击形式。 这通常涉及攻击者让目标进入攻击者控制的站点,但目标认为是合法的,并提供其凭据或其他受保护的信息。 还存在更复杂的形式,开始看起来更像是MitM攻击
- 利用钓鱼网站陷阱造成的损害:基本网络钓鱼攻击的扩展,网络钓鱼漏洞是攻击者煽动目标进入网站的地方(例如通过使用耸人听闻的标题),这可能是恶意的,随后攻击目标的浏览器或插件(特别是 Java,Flash或PDF)并获得对攻击者计算机的控制权。
- Compromise due to ransom / extortion / bribery: 由于赎金/勒索/贿赂导致的损害:这是内部人员滥用职权,切断(或威胁要)其他人访问资产并使用他们对资产的独家控制作为杠杆来获得他们想要的东西。
- Compromise due to supply chain attack:由于供应链造成的损害:虽然供应链可能包括受损的硬件(例如替代恶意芯片),但现在真正关注的是软件供应链。 操作系统供应商,公用事业供应商,基础设施供应商和应用程序供应商都遭到黑客攻击 特别是如果针对特定系统或系统,攻击者可以轻松替换木马程序包,并且可能永远不会被注意到。
- Compromise due to Tendermint network vulnerability:由于Tendermint网络漏洞造成的损害:验证人节点和哨兵节点都需要运行Tendermint网络服务。任何Tendermint网络的漏洞都会被一个攻击者利用,无论是直接还是间接,无论是通过恶意交易,共识消息或是区块数据。
- Compromise due to Tendermint network vulnerability over trusted link: As above, but specifically executed over a trusted (private network) connection. 由于Tendermint网络在可信链接中漏洞造成的损害:如上文描述的,但是尤其在一个依靠可信链接建立的私有网络中
- Compromise for botnet due to network vulnerability: 由于网络漏洞而导致变为僵尸网络的损害:机会攻击者通常会通过将其添加到僵尸网络或将其控制权转移给所有者来通过他们对计算机的控制获利。 如果网络服务中存在任何已知漏洞,投机攻击者就会找到它们。
- Compromise for botnet due to other network vulnerability: 由于其他网络漏洞而导致变为僵尸网络的损害:如上文描述的,但是除了Tendermint服务之外也可能有暴露为僵尸网络的风险
- Compromise for botnet due to phishing / phishing hole:由于钓鱼/钓鱼漏洞而导致变为僵尸网络的损害:如上文描述的,但是通过让用户访问受攻击者控制的站点而不是直接攻击网络服务来获得对机器的控制。 因为大多数服务器会使用防火墙,这是目前更为流行的方法。
- Compromise keys due to compromise of backup / support system: 由于备用和支持系统的漏洞造成秘钥的暴露:即使秘钥没有丢失,任何在用和支持系统中暴露的秘钥将会带来安全威胁
- Compromise keys due to compromise of validator system: 由于验证人系统的漏洞造成的损害:即使秘钥不会被泄漏,攻击者也可以做恶
- Compromise of any accessible assets due to extortion:.由于勒索而导致的损害:即使一个验证人的技术十分完美,它还是需要人来操作。任何由人控制的东西都会由于人的因素而变的脆弱。事实上,历史上大部分成功的攻击都是由于人为因素造成的:无论是钓鱼网站,集体作恶,还是 — 在极端情况下 — 敲诈勒索。 有许多涉及加密货币的抢劫案件 — 有理由认为,如果有足够大的吸引力,攻击者将诉诸勒索或身体暴力威胁来实现其目标。
- Compromise website to add false, misleading, or inflammatory statements due to network vulnerability: 由于网站中添加了错误、误导、或者网络中散步有煽动性的信息而导致的损害:只有当拥有验证人的身份时,抵押和委托给某个候选人的权益代币才有价值。这意味着如果有足够数量的委托人取回他们的委托权益,验证人可能会被排除在外,对于留下的其他委托人没有任何价值。 委托人们将根据验证人的声誉选择验证人,或者如果验证人产生负面声誉,则取回这部分权益。 因此,攻击者可能会攻击验证者的网站 — 这可能与所有其他验证相关系统完全独立,甚至可能外包 — 以放置虚假,误导或煽动性的信息(例如仇恨言论)。 为了让验证人解释不是他们发表声明,他们必须承认他们遭到攻击,这仍然会损害他们的声誉。
- Death due to natural or unnatural causes由于自然或非自然的原因造成的损失:人终有一死。对于一个组织的威胁在于:如何保证在失去一个团队成员的情况下仍能正常运行。为了做到这样,需要在运维职责:除他之外谁还可以做?以及法律因素两方面考量:例如,此员工所拥有的权益和股份如何处理?
- Destruction due to event that destroys data center 由于意外导致数据中心的摧毁:数据中心一般都会建立在可靠的建筑中,为了防备意外的天气和其他攻击事件,例如炸弹等,设计的。但是,没有任何建筑是坚不可摧的。在面对一些不可预见的重大灾难,例如:地震、飓风、恐怖袭击,或者其他灾难性事件:大坝被摧毁或者核电站泄漏等。
- Destruction due to sabotage 由于陷害造成的破坏:很多时候人们会背叛,无论是因为被误导(例如被雇主的轻视),或者由于丧失理智。这可能导致此人对他们可操控的任何内食物成巨大的损害(物理上或逻辑上)。
- Extreme event leaves personnel unable to perform duties由于外界的极端事件导致人员无法履行职责:任何类型的不可抗力都可能导致工作人员无法履行其职责,可能是因为他们被困在家中没有电力,没有网络访问就被疏散,或者类似性质的东西。
- Hardware Failure 硬件失灵:计算机本质上也是机器,意味着它们具有一定的有限寿命并且在某些时候会失灵。
- Keys on discarded hardware 遗留在丢弃设备上的秘钥:当硬件达到其寿命,它将被遗弃。之后,相关组织将失去对其控制。一个攻击者可以通过精心设计来获得这个硬件来了解组织的秘密。攻击者甚至会购买被遗弃的设备来查看是否有勒索的可能。
- Loss due to compromise of the holder’s wallet 由于代币持有人的钱包遭受攻击而造成的损失:Tendermint的安全机制以来验证人的权益抵押。如果一个验证人不能保证其委托的权益的安全,发生率例如钱包被攻击等事件,那么这就会造成委托人取回其委托权益,验证人可能导致丧失验证人的身份。这样会同时造成权益的损失和运维成本的损失。
- Negative forum reviews 负面评价:正如上面讨论的,验证人很依赖起名声。一个精心策划的攻击人可能通过操纵公共言论和在论坛上散布不实信息来让委托人远离某个验证人。这样一来,被攻击的验证人可能被挤出验证人组,而攻击者可以上位。
- Negative forum reviews for extortion对论坛上的负面评价的勒索:正如上述讨论中提到的,验证人需要维护其名声。一些机会主义者可以通过不道德的手法,通过负面评论威胁并勒索验证人。
- Network unavailable due to DDoS ransom 由于DDoS造成的网络不可用的勒索:如今,许多DDoS攻击是由攻击者进行的,他们承诺如果支付赎金就结束DDoS。
- Posting of hate speech or other inflammatory material 发布仇恨言论或其他煽动性言论:正如上面描述的,验证人需要维护其名声。。 虽然我们承认每个人的观点都可能不受欢迎,但一位优秀的商业领袖知道何时将这些想法公开,以免玷污品牌。 我们认为这应该不言而喻。
- Stake flip attack: Stake flip attack权益反转攻击:这是一种在PoS网络中新增的攻击类型,假设网络中存在一个有很多权益代币的持有者。这个持有者会抵押很多代币给他的验证人。当他想要让另一个候选人成为验证人的时候,他会收回委托给一些人的权益,再重新委托给其他人。Tendermint希望通过三周的解委托时长来限制这类操作,在这段期间不能再次委托。这样会限制一般的委托操作,但是不会限制一个很有很多代币的攻击者,他可能会加倍抵押权益来达到攻击的目的。这种攻击在持有2/3网络总代币的验证人身上起到作用,可以让攻击者在短时间内控制网络。更现实的是,如果控制了系统中1/3的权益,攻击者可以破坏系统共识。即使没有其他影响,攻击者也可以通过拖垮网络来剥夺验证人和委托人的收入。具体的分析在这里:
- Tie up stake with end of operations 在验证人节点运营结束后的代价:一般而言,验证人的运行不会突然结束,让启动验证人工作的代价成为沉没成本。但是,这也不是不可能的,若不幸遭遇了死亡、破产或者其他原因,一个运行验证人节点的公司可能会倒闭。当这个不幸发生的时候,它抵押的权益将被绑定三周,这可能带来一些损失。
- Unavailable due to data center unavailability (power, cooling, etc.)由于数据中心服务的不可用导致验证人服务的不可用。由于各种灾难,极端天气等事件,数据中心可能会不可用。例如Katrina和Sandy飓风都导致了大规模的数据中心断电,同时数据中心也可能被水淹没。极端天气的增多将增大这种不确定性。
- Unavailable due to DDoS 由于DDoS导致不可用:验证人若不能保证上线则会导致相应的惩罚。针对验证人的DDoS攻击或者针对其sentry和支持系统的DDoS攻击将导致很大的威胁。
- Unavailable due to DDoS over trusted link 在内网链接上的DDoS攻击导致的不可用:与上文所述类似,但是发正在内网/可信的通信连接中。
- Unavailable due to ransom / extortion 由于敲诈勒索导致的不可用:正如内部人员可能为了赎金或勒索而控制或威胁控制资产时,他们可能会使系统失效(或威胁要这样做)以满足他们的要求。
- Unavailable due to ransom / ransomware 由于敲诈勒索软件导致的不可用:机会攻击者经常使用称为勒索软件的恶意软件变种来加密系统的整个内容,使其无法使用,直到支付赎金为止。
- Unavailable due to targeted network outage由于目标网络失效而导致的不可用:虽然DDoS攻击是将系统从互联网上隔离的最常用方式,但攻击者也可能使用更具针对性的网络中断,包括黑客流量或利用验证人网络硬件上的漏洞等手段。
- Unavailable due to targeted network outage over trusted link由于内部目标网络失效而导致的不可用:与上文所述类似,但是通过攻击网络内部可信通信网络的漏洞。
- Unstaked due to compromise of the owner’s credentials 由于验证人节点运行人的名声受损而导致的撤销抵押:一旦验证人节点运行者的名声受到了损害,委托给他的权益将被撤回。
- Unstaked due to ransom / extortion / bribery由于敲诈勒索而导致的撤销抵押:委托人可能会经常变动他们的委托。验证人控制的权益数量也会影响委托人的行为。如果委托人的委托占比很大,那么委托人可能会威胁验证人来满足他的需要。
- WAN unavailable due to data center unavailability 由于数据中心的不可用导致了WAN不可用:由于各种不可预见的原因:断电、冷却系统破坏,数据中心的不可用可能会导致WAN的不可用,这可能会导致数据中心与外界隔离,尤其是backhoe attack。
- Website unavailable due to DDoS 由于DDoS导致网站的不可用:正如上文所述,验证人的网站可能有完全不同的基础架构。所以网站可能会遭受DDoS攻击,这会让外界对验证人节点的运营架构有所怀疑。
Uncontrolled Risks 不可控威胁
如果我们将影响和可能性结合起来,我们会得到下面附录中显示的不受控制的威胁的风险等级。 如果影响和可能性都很高,则风险很高(红色)。 如果一个是中等而另一个是高,那么风险是中高(橙色)。 如果两者都是中度或一个较高而另一个较低,则风险适中(黄色)。 如果一个是低的而另一个是中等的,那么风险是中低(石灰)。 如果两者都很低,则风险很低(绿色)。 请注意,威胁可能与多个风险级别相关联,具体取决于所涉及的资产和威胁参与者。 我们根据其最高风险等级对每个类别进行分类。 本节的其余部分按风险级别检查威胁。



High risk threats 高级别威胁
There are 19 high risk threats:有以下19个:
- Compromise due to exploited trust link from sentry or support system
- Compromise due to exploited trust link from validator or support system
- Compromise due to MitM attack
- Compromise due to other network vulnerability
- Compromise due to other network vulnerability over trusted link
- Compromise due to phishing / phishing hole
- Compromise due to ransom / extortion / bribery
- Compromise due to supply chain attack
- Compromise due to Tendermint network vulnerability
- Compromise due to Tendermint network vulnerability over trusted link
- Compromise of any accessible assets due to extortion
- Extreme event leaves personnel unable to perform duties
- Hardware failure
- Loss due to compromise of the holder’s wallet
- Network unavailable due to DDoS ransom
- Unavailable due to DDoS
- Unavailable due to ransom / extortion
- Unavailable due to targeted network outage
- Unstaked due to compromise of the owner’s credentials
Medium-high risk threats
There were 29 medium-high risk threats, and 12 of those were covered at a higher risk level, leaving 17:
- Compromise due to infected USB device
- Compromise for botnet due to network vulnerability
- Compromise for botnet due to other network vulnerability
- Compromise for botnet due to phishing / phishing hole
- Compromise keys due to compromise of backup / support system
- Compromise keys due to compromise of validator system
- Death due to natural or unnatural causes
- Destruction due to sabotage
- Keys on discarded hardware
- Posting of hate speech or other inflammatory material
- Stake flip attack
- Unavailable due to data center unavailability (power, cooling, etc.) due to disaster, weather event, etc.
- Unavailable due to ransom / ransomware
- Unavailable due to targeted network outage over trusted link
- Unstaked due to ransom / extortion / bribery
- WAN unavailable due to data center unavailability (power, cooling, etc.) due to disaster, weather event, etc.
- Website unavailable due to DDoS
Moderate risk threats中等威胁
目前有18个中等级别的安全威胁,11个中等安全威胁,就剩下7个:
- 由于钓鱼网站造成的损失Compromise due to phishing
- 由于网络漏洞导致Compromise website to add false, misleading, or inflammatory statements due to network vulnerability
- Destruction due to event that destroys data center
- Negative forum reviews
- Negative forum reviews for extortion
- Tie up stake with end of operations
- Unavailable due to DDoS over trusted link
中等-低级威胁
只有5个,都已经在高级分析过了。
低级威胁
只有1个已经在高级分析过了。
Open Questions遗留问题
在本文中,我们对Tendermint / Cosmos Hub运转进行了一些假设,下面列出了一些遗留问题:
- 一个验证人是否需要自身持有一些stake才能成为验证人?也就是说,验证人能不能只依赖委托的stake?
- 委托的权益是否安全?
- 如果一个验证人停止了服务,那么委托人的权益代币是否能马上
Cosmos 论坛中的解答:https://forum.cosmos.network/t/staking-questions/791
Conclusion 结论
本文分析了针对一个Tendermint / Cosmos Hub验证人节点的常见攻击手段。总而言之,有38种可能的手段。在没有任何补偿激励的情况下,评估这些威胁的可能性和影响,制定每种威胁的总体风险评级。 我们欢迎社群对威胁及其风险评级的反馈,以及评估过程中出现的一些未解决的问题。 请在下面的帖子评论中留下任何反馈。
翻译:Mufan Suyu
校对:Suyu

