Charles Guillemet said Taiko lost about $1.7M after a Raiko SGX signing key was exposed, showing the risk of TEE-based trust.Charles Guillemet指出Taiko约170万美元被盗源于Raiko仓库中暴露的SGX enclave签名key,攻击者可借MrSigner信任路径注册恶意证明者,并凸显有效性证明替代TEE信任的重要性。Charles Guillemet は、Raiko の SGX 署名鍵公開により Taiko から約 170 万ドルが流出したと指摘した。TEE 依存のリスクを示す事例だ。
NotesNotes要点
enclave-key.pem reportedly appeared in the public Raiko repo.
The attacker could derive MrSigner and sign a malicious enclave.
Matching MrSigner let fake SGX attestations pass the trust path.
processMessage() made messages retriable; retryMessage() skipped proof checks.
Replies note that accepting debug enclaves was also key.
The case favors validity proofs over single-key TEE trust.
Why didn't other checks stop it?私钥泄露已经是致命失误,为什么系统内部的其他安全验证也没能拦住黑客?他の検証はなぜ止められなかったのか?
The leaked key broke the signer check. The remaining guard, MREnclave pinning, was weakened because debug enclaves were accepted.私钥泄露等于直接交出了大门钥匙。按理说,系统还会验证运行代码的指纹(mrenclave)作为最后一道防线。但偏偏系统当时开启了接受调试飞地(debug enclaves)的权限。这等于不仅弄丢了大门钥匙,还主动关掉了内部的指纹识别,让黑客彻底畅通无阻。漏れた鍵で署名者確認が破られた。さらに debug enclaves を受け入れていたため、MREnclave 固定による防御も弱まった。
How was trust forged?黑客是如何利用公开的私钥获得系统信任的?信頼はどう偽造されたのか?
The L1 contract trusted enclaves by MrSigner. With the exposed key, the attacker could sign malicious code and appear as a trusted prover.L1智能合约通过核对MrSigner(签名者身份)来信任SGX飞地。黑客利用公开的私钥推导出了正确的MrSigner,并用它签署了自己编写的恶意代码。配合调试模式的漏洞,黑客成功伪装成了受信任的证明者。L1 コントラクトは MrSigner でエンクレーブを信頼していた。攻撃者は漏れた鍵で悪意あるコードに署名し、信頼済み証明者に見せかけた。
How were funds drained?成功潜入系统后,这170万美元是如何被转走的?資金はどう流出したのか?
The attacker forged SGX attestations for fake L2 blocks, marked messages as retriable with processMessage(), then used retryMessage(), which lacked proof verification.黑客在虚假的L2区块上伪造了SGX证明。随后他们利用合约代码逻辑,通过processMessage()函数将消息状态标记为可重试,接着调用了毫无证明验证环节的retryMessage()函数,轻松抽干了资金。攻撃者は偽の L2 ブロックに SGX 証明を作り、processMessage() で再試行可能にした後、証明検証のない retryMessage() を使った。