【時間がない人向け】記事の3行要約
- xz-utilsに潜入したバックドアが発見され深刻な脆弱性が明らかに
- xz-utils 5.6.0と5.6.1のリリース版tarballに不正なコードが仕込まれていた
- 脆弱性を悪用されるとsshd経由でリモートから任意のコード実行が可能に
xz-utilsに潜入したバックドアにより深刻な脆弱性が発覚
2024年3月29日、データ圧縮ソフトウェアのxz-utilsにバックドアが仕込まれていたことが明らかになった。この問題は「CVE-2024-3094」として識別されている。xz-utilsはソフトウェアパッケージやカーネルイメージの圧縮などに幅広く使われているため、影響範囲は非常に広い。
バックドアが見つかったのはxz-utils 5.6.0と5.6.1のリリース版tarballで、コミッターの一人であるJia Tanが不正なコードを仕込んでいたことが判明した。Jia TanはLasse Collinに次ぐ中心メンバーで、約1年半前からリリース管理者の権限を得ていた。
この脆弱性が悪用されると、sshdを通じてリモートから任意のコード実行が可能になる。ただし、一定の条件を満たす必要があり、現時点で判明しているのはglibc採用ディストリビューションのamd64版システムが影響を受けることだ。
脆弱性を突くバックドアの巧妙な仕組みが次第に明らかに
xz-utilsに仕込まれたバックドアは非常に巧妙に作られており、ビルド時のスクリプトを改ざんすることで不正なコードを紛れ込ませていた。GitHubのソースコードとリリース版tarballの内容に違いがあるのはよくあることだが、それを悪用したものだ。
バックドアはglibcのIFUNC機能を利用して、OpenSSHの認証ルーチンをランタイムにフックする。これによりパスワードチェックを迂回し、攻撃者の指定した鍵を使った認証を可能にする。ただし、glibcを使っていない他のLibcや、OpenSSHにパッチを当てていないシステムは影響を受けない。
バックドアの詳細な解析はまだ進行中だが、sshd以外にも複数の攻撃経路が存在する可能性がある。感染の有無に関わらず、関連パッケージのアップデートを早急に適用することが強く推奨されている。
OpenSSHとsystemdの連携パッチが危険性を高めた可能性
今回の問題で注目されているのが、ディストリビューションがOpenSSHに適用しているsystemd連携パッチだ。これはsshdの起動をsystemdに通知するためのもので、必然的にlibsystemdへの依存が生じる。libsystemdはライブラリの性質上、liblzmaにリンクしていることが多い。
つまり、OpenSSH自体はliblzmaに依存していなくても、systemdとの連携パッチを適用したがゆえにプロセス空間内に脆弱なliblzmaが読み込まれてしまう。これが攻撃の成功率を高めた一因と見られている。OpenSSHではパッチに頼らずsystemd連携機能を実装することが検討されている。
systemd連携パッチの適用はメジャーディストリビューションで広く行われており、脆弱性の影響はかなり広範囲に及ぶ。一方、組み込み機器などでは独自のinitシステムを使うことも多く、そういったケースでの影響は限定的と予想される。
セキュリティ体制の課題も浮き彫りに、根本的な対策が急務
xz-utilsのメンテナーLasse Collinは今回の事態を受けてJia Tanの権限を剥奪し、GitHubのリポジトリやウェブサイトの管理を取り戻した。だが、コードがコミュニティの目に晒されているオープンソースプロジェクトでこのような不正が長期間見過ごされていたことは大きな衝撃となっている。
オープンソースソフトウェアの安全性を高めるには、開発プロセスの透明性向上とレビューの強化が欠かせない。特に配布物の完全性検証は重要で、ソースコードと配布物の内容に差異がないことを確認する仕組みの整備が急がれる。またコミッターの監査体制も見直しが必要だろう。
ユーザー側でもバックドアの検知を難しくしている要因がある。それがビルドフラグだ。xz-utilsのようなライブラリは、ディストリビューションごとに細かくビルドオプションをカスタマイズすることが多いため、再現ビルドによる検証が難しくなっている面がある。
trends編集部「K」の一言
xz-utilsのバックドア問題は「サプライチェーン攻撃」の新たな形と言えるだろう。これまでにも、ソフトウェアの開発や配布の過程で悪意のあるコードが混入される事例は数多く報告されてきた。オープンソースプロジェクトはその透明性ゆえに安全と見なされがちだが、人的な脆弱性は避けられない。
国家的なサイバー攻撃の脅威が高まる中、ソフトウェアのサプライチェーンを狙った攻撃はますます巧妙化している。セキュリティ意識の高い企業や組織でも、気づかないうちに不正なコードを取り込んでしまうリスクは十分にある。公開されたソースコードをそのまま信用するのではなく、常に監査の目を光らせておく必要がある。
オープンソースコミュニティでは、開発者に対する厳格な身元確認と権限管理、配布物の完全性検証、脆弱性対応プロセスの確立など、ガバナンス面での取り組み強化が求められている。個々のプロジェクトの努力だけでは限界があるため、LinuxファウンデーションやApache Foundationのような団体がリードし、ベストプラクティスを確立していくことが期待されることを期待したい。
一方でユーザー企業には、サプライチェーンリスクへの意識改革と体制整備が欠かせない。自社で開発していないソフトウェアの安全性を過信せず、予め想定したリスクシナリオに基づいて対策を講じておくことが肝要だ。OSSコンポーネントの管理は特に重要で、脆弱性データベースと連携した自動追跡・アラート機構などの導入が有効だろう。
xz-utilsの一件は、ソフトウェアのサプライチェーンセキュリティが喫緊の課題であることを改めて突きつけた。業界を挙げた知見の共有と対策の強化が急務と言えるだろう。これを機に、オープンソースプロジェクトとユーザー企業がそれぞれの立場から安全性向上に努め、サイバー空間の信頼を高めていくことを期待したい。
References
- ^ tukaani.org. 「XZ Utils backdoor」. https://tukaani.org/xz-backdoor/, (参照 24-04-02).
- ^ GitHub. 「xz-utils backdoor situation (CVE-2024-3094) · GitHub」. https://gist.github.com/thesamesam/223949d5a074ebc3dce9ee78baad9e27, (参照 24-04-02).
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
- 【日本発】テキストやPDFから動画生成できる「NoLang」を使ってみた。商用利用の可否も併せて解説
- 議事録作成をすべて賄えるAIガジェット「Hidock H1」がハイテクすぎる。画期的な機能と利用するメリットを紹介
- 多様な画像を生成できる「RenderNet」の使い方|機能面や料金形態も詳しく紹介。
- 教育現場が抱えるDXの課題と必要性|教育のデジタル化との違いや解決策の具体例を紹介
- DX推進に役立つコミュニケーションツールのおすすめ10選|種類別にわかりやすく解説