2024年3月29日、米国サイバーセキュリティ・インフラセキュリティ庁(CISA)は、xz Utils の 2つのバージョンが侵害されたことが判明したと警告しました。xz Utils のコードは改竄され、悪意のある「バックドア」が仕込まれていました。このバックドアにより、攻撃者は影響を受けたシステムに対して権限のある管理者と同等の権限を持つことができます。xz Libs は、世界中のサーバーインフラの大部分を支える Linux を含む Unix オペレーティングシステムの依存関係として広く使用されているオープンソースライブラリのセットです。
CISAが警告を発した同じ日に、オープンソース・ソフトウェア・プロバイダーの Red Hat は、Linux エコシステム製品 2 つが xz Utils マルウェアの影響を受けていることをユーザーに通知する緊急セキュリティアラートを発信しました。アラートには、「xz のバージョンをダウングレードできるようになるまで、Fedora 40 または Fedora Rawhide の使用を直ちに中止してください」と記されていました。
驚くべきことに、この攻撃は3年もの間、準備段階にあったようです。2021年、正体不明の人物または組織によって GitHub アカウントが作成され、当初のメンテナーが過労と燃え尽き症候群を理由に更新の主要な監督権限を譲ったため、このアカウントの背後にいる組織は徐々に xz ライブラリの共同メンテナーへと移行していきました。
2024年初頭、新しいメンテナーに紐づく悪意のあるコードが xz Libs プロジェクトに挿入されました。「これはこれまで見た中で最も巧妙なサプライチェーン攻撃かもしれません…悪夢のようなシナリオです。悪意があり、有能で、広く使用されているライブラリのアップストリームに権限のある者が侵入したのです」と、別のオープンソースメンテナーは述べています。もしこのバックドアが検出されなかったら、「世界中の何億台ものコンピューターのマスターキーを、作成者に渡していたでしょう…」とコンピューター科学者のアレックス・スタモスは述べています。
メンテナーの燃え尽き症候群は、多くのオープンソースプロジェクトに影響を与える危険な問題であり、xz Libs の場合も同様でした。OSSRA レポートで調査されたリスク評価を含む 900 件以上のアプリケーションのうち、49% には過去 2 年間に新規開発活動が行われていないオープンソースが含まれていました。
プロジェクトがメンテナンスされなくなったということは、機能のアップグレードもコードの改善も行われておらず、セキュリティ上の問題も修正されていないことを意味します。さらに悪いことに、xz Libs 攻撃が示すように、攻撃者はメンテナンスが減少している人気プロジェクトの信頼されるロールに潜り込み、最終的にはプロジェクトの汚染されたバージョンをサプライチェーンに送り込む機会を得る可能性があります。
メンテナンスが行き届いていない状態でありながら、依然として使用されている「ゾンビ」コードは、オープンソース・プロジェクトにとって珍しい問題ではありません。これらのプロジェクトは、プロジェクトのセキュリティと最新化を維持するために、無給のボランティアのメンテナーに大きく依存しています。一部のレポートによると、2022年にメンテナンスされていた Java や JavaScript のオープンソースプロジェクトの約20% が 2023年にはメンテナンスが終了しており、悪用やエクスプロイトの脅威にさらされています。
オープンソースの依存関係が普及してしまうと、その代償として、(通常は無給の)メンテナー(バグ報告、機能リクエスト、コードレビュー、コードコミットなど、フリーソフトウェアのコードを管理する人々)へのプレッシャーが増大します。「メンテナー」が実際には一人の開発者であることも珍しくありません。人気のインターネット・コミック xkcd にある「ネブラスカ州出身の無名の人」といったようにです。
現代のソフトウェアが依存するオープンソース・インフラストラクチャでは、その一部を支える最後の砦となるのは、往々にしてそのような無名の人々です。オープンソース・プロジェクトの人気が高まるにつれ、プロジェクトを保守する開発者がそれに見合った増加を示さないまま、結果としてメンテナーが燃え尽き症候群に陥り、多くのオープンソース・プロジェクトが放棄されてしまうことになるのです。
この傾向の一因として、セキュリティ脆弱性の増加により、多忙を極めるメンテナーがコードの更新を維持するのが困難になり、決して結論が出ない作業を続けるよりもプロジェクトを放棄してしまう可能性が挙げられます。実際、OSSRA レポートによると、2023年にセキュリティリスクスキャンを受けたアプリケーションの 74%に高リスクの脆弱性が含まれていたと報告されており、これは前年と比べて大幅に増加しています。Qualys のサイバーセキュリティ調査によると、2023年には 26,000件を超える脆弱性(オープンソースやその他のサードパーティコードに影響を与えるものを含む)が公表され、前年より 1,500件増加しました。
残念ながら、メンテナンス作業が不規則であることと、多くのオープンソースの利用者がセキュリティ上の潜在的な問題を確認せずにコードをダウンロードする傾向があることから、オープンソースの リポジトリは攻撃者にとって格好の標的となっているのです。
オープンソースの人気と利用が拡大するにつれ、ライセンスの互換性の問題や、脆弱性を悪用した攻撃、悪意のある攻撃まで、オープンソースのリスクも拡大しています。
ソフトウェア・サプライチェーンに対する計画的かつ意図的な攻撃は今や一般的であり、悪意のある攻撃者はコードの脆弱性を悪用するだけでなく、コードや開発パイプラインを実際に改ざんして汚染されたマルウェアを拡散させる手法へと移行しています。ReversingLabs は 2024年版レポート“The State of Software Supply Chain Security,” の中で、オープンソースパッケージのリポジトリに起因する脅威が過去 3年間で 1,300%以上増加したと報告しています。これには、攻撃者がソフトウェアパッケージを通じて直接マルウェアを拡散させるインシデントも含まれます。2つの人気オープンソースソフトウェアプラットフォームでは、悪意のある PyPI パッケージ( Python プログラミング言語用のサードパーティ製ソフトウェア)が、昨年だけで 400%増加しました。
自らのソフトウェアでオープンソースを使用する組織 (文字通りすべての組織) は、ソフトウェア・サプライチェーンをセキュリティ上の脅威から保護する一環として、これらの脅威を積極的に特定し、管理する必要があります。
自分の組織を守るために何ができるでしょうか?
-この記事のファクトチェックは Mike McGuire によって行われました。