八月初,跨链通讯协议 Nomad 被曝遭遇黑客攻击,导致其代币桥内的 1.9 亿美元资金几乎全被“掏空”:据 Defil Lama 统计数据显示,原本 Nomad 的总价值锁定(TVL)为 1.9 亿美元,但几个小时后其官方账户中只剩下了 651.54 美元。
尽管周二一早,Nomad 官方就发推特表示已得知此事,并称目前正在调查,但这起事件还是在 Web3 领域引起了巨大争议:
Terra 研究员 FatMan 认为本次 Nomad 遭遇的攻击是“真正的加密市场中首次发生的去中心化抢劫”。
Paradigm 研究合伙人兼安全主管 Samczsun 也发推表示:“刚刚发生的 Nomad 事件是我在 Web3 中见过的最混乱的黑客攻击之一。”
更令人意外的是,最终导致了这 1.9 亿美元损失的源头,竟然只是一个“低级漏洞”。
大量资产从 Nomad 代币桥转移出去
具体来说,Nomad 是以太坊、Avalanche、Milkomeda 和 Moonbeam 之间跨链转移的代币桥梁,特点在于不依赖大量外部方来验证跨链通信,可通过一种名为“optimistic”机制,让用户可以安全地发送消息和桥接资产。
最初注意到不对劲的是一名推特用户 @spreekaway:“Nomad 代币桥变得很‘崎岖’???看起来非常可疑。”从他提供的截图来看,彼时正有大量资产从 Nomad 代币桥转移出去,这显然不太寻常。
对此,Paradigm 研究合伙人兼安全主管 Samczsun 的第一反应:可能是 Token 小数点的配置有误。从他的视角来看,当时跨链桥似乎正在进行一个 “发送 0.01 WBTC,返还 100 WBTC”的促销活动。
最初 Samczsun 是不信的,但在 Moonbeam 上进行了一些手动挖掘后,他确认了这一事实:“虽然我从 Moonbeam 只转出了 0.01 WBTC,但不知道为什么以太坊上却收到了 100 WBTC。”也就是说,这不并是 Token 小数点的错误配置。
但与此同时,Samczsun 发现了更糟糕的一点:在 WBTC 中桥接的交易实际上并没有“证明(prove)”这个步骤,而是直接进行“process”操作。这明显不符合逻辑。
Replica 合约中存在致命错误
基于此,Samczsun 总结出有两种可能性:要么是在先前的区块中单独提交了证明,要么就是 Replica 合约中存在严重错误。然而,没有任何迹象表明最近有什么信息被提前证明了,这也就只剩下了一种可能性,即 Replica 合约中存在致命错误。
在快速浏览代码后,Samczsun 推测出了问题所在。在进行 process 操作时,用户提交的消息必须来自可接受的根(会在 prove 中被设置),其中第 185 行的“acceptableRoot”就是用来检查根是否被证明或已被确认。
一般在进行 Replica 合约部署初始化时,会先把可信根设置为 0,再将其改为非 0 数据的新根,同时将旧根设为失效——而 Samczsun 怀疑,可能旧根的“0”还处于生效状态。
这个想法很好验证,Samczsun 用 0x00 来检查合同是否会接受这个根,结果居然真的通过了……
“事实证明,在升级期间,Nomad 团队将可信根初始化为 0x00。说白了,使用 0 值作为初始化值是一种常见的做法。不幸的是,在这种情况下,它也有一个很小的副作用,即会自动验证每一条消息。”
这也就意味着,攻击者可以直接构造任意消息,而这些消息都可以正常执行。这一漏洞的性质决定了本次黑客事件的规模,正如 Samczsun 所说:“这就是此次事件如此混乱的原因——你甚至不需要知道 Solidity 或默克尔树(Merkle Trees)这类技术知识,只需找到一个有效交易,用你的地址替换原本的地址,然后再推广出去。”
网络安全人才的重要性
从这次的事件中也侧面印证了网络安全的重要性,近几年来,市场也逐渐加大了对网络完全领域人才的培养。
根据数据统计,2022年第一季度,网络安全领域的招聘比例进一步提升,其中技术人才招聘占比增至67.6%,平均招聘月薪为20235元。
这个数据的原因也有迹可循,对前沿技术的重视能够提高网络安全领域的技术深度,是取得人才和行业发展的重要手段之一,而网络安全作为一个复合性领域,其对技术要求也就不言而喻。
专家提出,网络安全技术人才供需严重失衡,不仅体现在数量,更体现在不同类型人才供给和需求之间的错位。目前行业平均供求比约为1:2,存在资深人才储备不足、新人培养和育留难度大等挑战。
根据数据统计,以下岗位是2022年一季度网络安全岗位需求TOP 10,其中,测试排在了第十位。由此可见,安全测试人才的需求量在社会仍不容小觑。
写在最后
所以如今安全测试对于测试员来说,是一个风口,安全测试未来的发展方向有信息安全专家、信息安全分析师、信息安全总监、安全咨询师、IT安全架构师等等,岗位职业晋升方向还是比较多的。
|