サプライチェーン攻撃の元凶!1Passwordは安全か?(更新)

サプライチェーン攻撃の元凶!1Passwordは安全か?(更新)

悪意のある裏口広く使用されている圧縮ライブラリ xz にバックドアが仕込まれたというニュースが金曜日に報じられた。

幸いなことに、お使いのLinuxディストリビューションは、最新版を使っている場合を除き、おそらく安全です。例えば、 RedHat Fedora 41やFedora Rawhideを使っている場合は脆弱性が存在するため、直ちに対策を講じる必要があります。Debian Unstableを使っている場合も同様です。

しかし、一般的なユーザー(Debian 12、RHEL、Ubuntu などの安定バージョン)の場合は安全です。

それでも、広く使用されているアップストリーム(GitHub リポジトリ、npm パッケージなど)に何かを紛れ込ませると、ダウンストリームに広範囲にわたる脆弱性が生じるという、サプライ チェーン攻撃のリスクが高まっていることが浮き彫りになっています。

Openwall には非常に詳しい説明があります。

過去数週間、Debian sid インストールの liblzma (xz パッケージの一部) に関するいくつかの奇妙な症状 (ssh でのログインで大量の CPU が消費される、valgrind エラーが発生する) を観察した後、答えがわかりました。

アップストリームの xz リポジトリと xz tarball にバックドアが仕掛けられています。

最初は、これは Debian のパッケージの妥協案だと思ったのですが、アップストリームのものであることが判明しました。

バックドアの作成者はテスト ケースにコードを配置し、それがビルド中に実行されてマルウェアが挿入されます。

さて、あまり報道されていない視点ですが、ycombinatorにはこの件について議論する長いスレッドがあります。あるユーザーはこうコメントしています。

ご存知のとおり、広く使用されている圧縮ライブラリ xz には、バージョン 5.6 でバックドアが導入されていることが判明しました。

Ycombinator のスレッドに次のようなコメントがあります:

数年前、xz C コードをラップして Go で xz 圧縮を可能にする Go ライブラリを作成しました: https://github.com/jamespfennell/xz 約 1 週間前、このリポジトリで 5.6.1 へのアップグレードに関する最初の PR を受け取りました。このようなランダムな PR を受け取るのは奇妙だと思いました…ただし、アップストリームと同じ GitHub アカウントではないようです。

5.6.1 は xz の脆弱なバージョンです。

これに続いて、別の ycombinator ポスター投稿者から次のようなコメントが寄せられました。

あまり深読みはしたくないのですが、PRを送信した(と思われる)人物は、LinkedInによると昨年12月から1Passwordで働いているようです。(そして、彼のLinkedinページには、PRを作成したGithubプロフィールへのリンクがあります。)

やばい! 1Passwordは、言うまでもなくマルウェアにとって格好の標的です。1Passwordにチケットを送信し、この件を伝えて調査を促しました。

先ほども申し上げたように、Linuxコミュニティ全体は今回の最悪の事態を免れたようですが、こうした攻撃は非常に憂慮すべきものです。オープンソースソフトウェアは共有という性質上、攻撃者が私たちのデジタルドリンクに危険なものを紛れ込ませるのは容易です。

更新: 1Password は、xz の状況に関するこの要約の著者に連絡を取ったようです:

1Passwordの従業員がGoライブラリへのプルリクエストを開き、ライブラリを脆弱なバージョンにアップグレードするよう求めていましたが、タイミングが悪かったようです。1Passwordからメールで連絡があり、このコメントを参照したとのことで、すべて問題ないようです。

更新 #2: 1Password が私のチケットに返信しました:

1Password にお問い合わせいただきありがとうございます。

もう少し背景を説明すると、当社の従業員が個人の GitHub アカウントを持っており、そこには 1Password とは無関係の個人プロジェクトが含まれています。

この個人プロジェクトの開発の一環として、 CVE-2024-3094の影響を受けるxz プロジェクトプルリクエストが送信されました。このアクティビティは偶然の産物であり、 CVE-2024-3094とは関連がありません

これについて、弊社の従業員がさらに詳しい説明を Github に投稿しました

これで少しは状況が明確になれば幸いですが、さらにご質問がある場合はお知らせください。

おすすめの記事