xz-utilsパッケージに関するこの2つのサプライチェーン攻撃ノートを読み終えたところだが、攻撃者は3年間も潜んでいたようである。
要約すると
1.攻撃者であるJiaT75(Jia Tan)は2021年にGitHubアカウントにサインアップし、それ以来xzプロジェクトのメンテナンスに積極的に関与し、徐々に信頼とコードを直接コミットする権利を得ている。
2.JiaT75はここ数ヶ月の間に、あるコミットにbad-3-corrupt_lzma2.xzとgood-large_compressed.lzmaをひっそりと追加した。これは一見無害なテストバイナリのように見えたが、コンパイルスクリプトでは特定の条件下でこの2つのファイルから読み込むことでコンパイル結果が変更されていた。 しかし、ある条件下では、コンパイルスクリプトがこれら2つのファイルから読み込んでコンパイル結果を修正するため、コンパイル結果と公開されているソースコードとの間に不整合が生じる。
3.予備調査によると、注入されたコードは glibc の IFUNC を使用して OpenSSH の RSA_public_decrypt 関数をフックしており、攻撃者は特定の検証データを構築することで RSA 署名検証をバイパスすることができます。 (詳細はまだ解析中です)
4.liblzmaとOpenSSHの両方を使用するプログラムが影響を受けます。 最も直接的な標的はsshdで、攻撃者は特定のリクエストを作成することで、リモートアクセスのための鍵認証をバイパスすることができます。
5.影響を受けるxz-utilsパッケージはDebian testingにマージされており、攻撃者はfedoraとubuntuにもマージを試みている。
6.幸運なことに、注入されたコードには、特定の状況下でsshdのCPU使用率を急上昇させる何らかのバグがあるようだ。 このバグに気づいたセキュリティ研究者が陰謀を発見し、oss-securityに報告したため、事件は収束した。
もしこのバグがなかったら、このバックドアがメインストリームのディストリビューションの安定版に組み込まれていた可能性はかなり高く、前代未聞の大規模なセキュリティ事件になっていただろう。
さらに、攻撃者が非常に慎重であったことを示す詳細もある:
1.攻撃者は、テスト期間中に発見されるまでの時間が短くなることを期待して、ubuntuベータ版フリーズの数日前に新バージョンを組み込もうとした。
2.xz-utilsプロジェクトのオリジナルメンテナであるLasse Collin (Larhzu)は、定期的にインターネットを中断する癖があり、最近もそうしていたため、彼がレビューする機会がなく、現在も彼と連絡を取ることができないまま変更が行われている。 これが攻撃者がxz-utilsプロジェクトを選んだ理由の一つかもしれない。
GitHubは現在、xzプロジェクト全体を閉鎖している。