xz-utilsのバックドアにより重大な脆弱性が発覚、sshdを経由しリモートから任意コード実行の恐れ

xz-utilsのバックドアにより重大な脆弱性が発覚、sshdを経由しリモートから任意コード実行の恐れ

公開: 更新:


【時間がない人向け】記事の3行要約

  • xz-utilsに潜入したバックドアが発見され深刻な脆弱性が明らかに
  • xz-utils 5.6.0と5.6.1のリリース版tarballに不正なコードが仕込まれていた
  • 脆弱性を悪用されるとsshd経由でリモートから任意のコード実行が可能に

Python基礎・実践(Django)

企業・法人向けのPython研修では、基礎から応用まで体系的に学べます。

Python研修の詳細

DX社員研修

企業・法人向けのDX研修では、実務に繋がるリスキリングでITレベルを向上させます。

DX研修の詳細

Javaエンジニア育成研修

企業・法人向けのJavaエンジニア育成研修では、Javaの基礎から応用まで確実に習得できます。

Java研修の詳細

新卒・新入社員向け研修

企業・法人に新入社員・新卒社員に向けたプログラミング研修を提供しています。

新入社員研修の詳細

コードキャンプのIT研修を全て見る

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以外にも複数の攻撃経路が存在する可能性がある。感染の有無に関わらず、関連パッケージのアップデートを早急に適用することが強く推奨されている。

おすすめのPython研修一覧

Python研修を提供しているおすすめの企業・法人を一覧で掲載しております。

Python研修の一覧を見る

おすすめのDX研修一覧

DX研修を提供しているおすすめの企業・法人を一覧で掲載しております。

DX研修の一覧を見る

おすすめのJava研修一覧

Java研修を提供しているおすすめの企業・法人を一覧で掲載しております。

Java研修の一覧を見る

おすすめのJavaScript研修一覧

JavaScript研修を提供しているおすすめの企業・法人を一覧で掲載しております。

JavaScript研修の一覧を見る

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

  1. ^ tukaani.org. 「XZ Utils backdoor」. https://tukaani.org/xz-backdoor/, (参照 24-04-02).
  2. ^ GitHub. 「xz-utils backdoor situation (CVE-2024-3094) · GitHub」. https://gist.github.com/thesamesam/223949d5a074ebc3dce9ee78baad9e27, (参照 24-04-02).

※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。

ITやプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア 中途採用者向けのIT・プログラミング研修 - IT・プログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する