为何波卡在完成安全审计后却拒绝处理提示风险?
为何波卡在完成安全审计后却拒绝解决风险问题?
我们Web3 Foundation的使命是促进下一代互联网的发展:旨在建立一个去中心化的,公平的网络,在该网络上用户可以控制自己的数据,市场可以从网络效率和安全性中受益。这篇文章我们在其中报告了为加强我们的系统而进行的安全审核的相关内容。
该安全审计工作由信息安全公司Atredis Partners进行,该公司在渗透测试,逆向工程,硬件/软件开发以及嵌入式系统设计评估方面拥有丰富的经验。
什么是安全审计
我们邀请Atredis对波卡Runtime的完整性,机密性和可用性以及波卡验证程序的安全性和可靠性进行了安全性评估。
此链接可阅读整个审核员的报告。
https://assets.polkadot.network/security-audits/Atredis_Partners-Web3-Polkadot-PlatformSecurityAssessment.pdf
具体来说,Atredis的审计侧重于:
-
identify and define key attack chains against the Polkadot Runtime
-
识别并定义针可对波卡Runtime的攻击
-
识别确认任何可能损害Polkadot交易完整性的事件
-
identify cases where attacker-supplied code execution could be possible
-
确认是否存在可以执行攻击者提供的代码的可能
-
确定任何可能会影响Polkadot可信度的情景
-
确认波卡Runtime架构,开发情况和交易功能,与公认的能够确保最佳加密安全性的做法保持一致
-
尝试禁用或以其他方式干扰验证人在波卡网络上的正常工作
-
尝试选拔特定的验证人
-
查看是否有可能强行选拔任免作恶的验证人
报告摘要
评估是由Atredis Partners在2020年1月20日至2月11日进行的。其中包括对通信堆栈的自下而上的分析,针对波卡Runtime源代码以及Kusama网络的动态测试。在测试过程中特别测试了拒绝服务(DOS)方案和欺诈活动。评估得出了一项严重,一项高,一项中等风险和三项信息(仅做通知处理)方面的发现。
关键的发现是Substrate中的逻辑问题,该逻辑问题允许生成零成本交易。由于平台依赖于各种具有成本因素的交易,因此该问题可能允许作恶方通过向网络发送可能消耗存储空间的潜在免费交易来向网络发送时间延迟的操作,例如投票等,以致造成损失。
该问题可通过更新有关计算权重和费用的逻辑来修正,以便使得指令通行时始终支付费用,同时也可以通过标准化计算自定义权重信息的方式来进行辅助修正。
同时要保证识别出的其他问题不能被用来扰乱或颠覆整个网络秩序。据观察,Rust编程语言的使用大大降低了许多攻击类别的可能性,并且WASM Runtime的使用在沙盒实验的动态代码中非常有效。
对调查结果的回应
问题:通过Utility.batch进行免费交易滥用
性质:严重风险
状态:已解决。并由Atredis通过代码审查进行了验证
https://github.com/paritytech/substrate/pull/4953
问题:通过无效交易对Polkadot节点进行CPU消耗
性质:高风险
状态:已解决。并由Atredis通过代码审查进行了验证
https://github.com/paritytech/substrate/pull/5939
问题:解决P2P身份响应的端点流量反应
Medium性质:中等风险
Won’t Fix.回应:不会修复该问题
原因:在公共开放网络中基于Gossip-based的安全广播是一个没有正确答案的问题,不同的机构、学者、工程师提出了各种建议以及半解决方案,但都具有出于自身立场的不同权衡考虑。 比特币 通过给节点运营商增加执行网络级监控的负担,从而防止了不安全的Gossip,就现有经验来看这在提升性能方面是相当有效的。Polkadot提出并正在执行质押的概念,同时允许执行更多检查。另外,当前正在研究基于由节点自身完成的内置网络监视的解决方案。最后,节点运营商可以对大型比特币节点运营商进行连接和带宽使用方面的经典检查。
问题:解决P2P身份响应的可观测的地址DNS泄漏
性质:仅通知
回应:不会修复该问题
https://github.com/paritytech/substrate/pull/6582
问题:Substrate sr25519 Pair :: Verify()调用不推荐使用的函数
性质:仅通知
回应:不会修复该问题
https://github.com/paritytech/substrate/pull/5138
问题:Substrate 在 from_seed_slice()不一致的接口警告
性质:仅通知
回应:不会修复该问题
保持高透明度是我们Web3 Foundation最引以为豪的宗旨。因此我们将持续更新这个正在进行当中的系列内容,同时会刊登出我们发现并确定的问题和纠正的步骤。
编译/潜行之尧