ソフトウェアサプライチェーンの危機:アカウント乗っ取りの脅威

ソフトウェアサプライチェーンの危機:アカウント乗っ取りの脅威

Cisco Talosが最近明らかにしたように、ソフトウェアサプライチェーン攻撃はあらゆる種類のサイバー犯罪者の間で人気を博しています。かつてはサイバースパイ活動を行う脅威アクターのみが利用していましたが、今ではあらゆるサイバー犯罪者にとって魅力的なものとなっています。彼らは、この脅威をたった一度の操作で数百台、数千台のコンピュータに侵入できる手段と捉えています。

研究者らの報告によると、これがソフトウェアサプライチェーン攻撃の脅威が2020年と比較して2021年に3倍以上に増加した理由を説明しています。

ソフトウェアサプライチェーン攻撃とは何ですか?

ソフトウェア・サプライチェーン攻撃は、正規のソフトウェアの代わりに、あるいは正規のソフトウェアに加えてマルウェアを拡散させるために、ソフトウェア・リポジトリやダウンロード場所を標的とする攻撃です。攻撃者は、ソフトウェア・サプライチェーンを侵害するために、複数の方法を用いる可能​​性があります。

一つの方法は、ダウンロード可能なソフトウェア、特にサードパーティのウェブサイトに保存されているソフトウェアのストレージを侵害する脆弱性を見つけることです。しかし、ソフトウェアの一部を保存するコードリポジトリでは、この方法は成功しない可能性があります。

もう一つの手口は、開発者アカウントを攻撃してアクセス権を取得するか、ソフトウェアやウェブサイトの管理者アカウントにアクセスすることです。アクセスが侵害されると、攻撃者はソフトウェアの悪意のあるアップデートを公開し、新しいアップデートをダウンロードしてインストールするすべてのユーザーと企業に影響を与える可能性があります。

特に、世界中の何百もの異なるソフトウェアで使用されている可能性のある、侵害され改変されたライブラリの場合、これは壊滅的な被害をもたらす可能性があります。実際のソフトウェアパッケージだけでなく、何年も使用されていない古いパッケージが突然新しいアップデートをリリースするケースでも発生する可能性があります。

参照:パスワード侵害:ポップカルチャーとパスワードが混ざらない理由(無料PDF)(TechRepublic)

多くの開発者は効率性の向上を目指しており、既に完成していて無料で利用できるものを再開発する必要を避けるために、サードパーティのコード(一般的にはライブラリ)を多用しています。しかし、これらのサードパーティのソフトウェアは開発者によるレビューを受けることがほとんどなく、完全に信頼されています。

現在のコードリポジトリにおけるアカウント乗っ取りのリスク

Talosの研究者は、最も頻繁に使用されているコードリポジトリを分析し、攻撃者が開発者アカウントへの侵入に成功するのがどれほど困難かを鋭く分析しました。また、これらのリポジトリで発見された重大な問題の解決にも取り組んできました。

国立博物館

NPM(Node Package Manager)は、JavaScriptプログラミング言語専用のコードリポジトリで、200万以上のパッケージを提供しています。これらのパッケージには、説明、パッケージアーカイブファイルへのリンク、開発者のユーザー名とメールアドレスを含むパッケージメンテナーのリストなどのメタデータが含まれています(図A)。

図A

NPM パッケージからのメタデータ
画像: Cisco Talos。NPM パッケージのメタデータには、開発者のニックネームとメールアドレスが表示されます。

NPMリポジトリは最近独立した監査を受けており、開発者のメールアドレスへの攻撃を受けにくいことが確認されています。期限切れの開発者アカウントは、NPMが講じた特別なセキュリティ対策により、取得できませんでした。

パイパイ

Python Package Indexには、Pythonプログラミング言語で書かれた約40万件のプロジェクトが保存されています。このリポジトリでは、開発者のメールアドレスはデフォルトで公開されません。しかし、多くの開発者は、機能に関するフィードバック、改善提案、バグ報告など、様々な理由で自分のコードを実行している他の開発者と交流する必要がある、あるいは交流したいと考えているため、この機能を有効にしています。

リポジトリの大部分では、多要素認証がデフォルトで有効化されていません。必須となっているのは「重要なプロジェクト」のみで、ダウンロード数に基づいてPyPIプロジェクトの上位1%に相当します。PyPIは、これらの重要なプロジェクト向けに、多要素認証用のハードウェアセキュリティキーを4,000個配布しています。

PyPI でのアカウント乗っ取りはすでに発生しているが、管理者が最近行った変更により、アカウントのセキュリティは正しい方向に向かっているようだ、と Talos の研究者らは述べている。

CPAN

20万以上のPerlプログラミング言語モジュールが、Comprehensive Perl Archive Networkに保存されています。モジュール開発者は、自身の貢献とメールアドレスを掲載した独自のホームページを持っています(図B)。

図B

CPANホームページ
画像: Cisco Talos。CPANのホームページに開発者のメールアドレスが掲載されている。

このリポジトリでは、開発者が既に存在しないドメインを使用していた場合、開発者の放棄されたメールアドレスにアクセスできる可能性があります。攻撃者はそのドメインを登録し、メールアドレスを設定して、パスワードのリセットを要求する可能性があります。

Talos は CPAN に連絡し、CPAN が無効化した脆弱なアカウントのリストを提供しました。

ヌゲット

NuGetは317,000以上のパッケージを擁する.NETソフトウェアリポジトリです。開発者のメールアドレスは、プラットフォーム上でデフォルトで非表示になっています。その代わりに、NuGetはウェブサイト上にフォームを用意しており、メールアドレスを漏らすことなく開発者に連絡を取ることができます。開発者がTwitterハンドルを追加するオプションも提供されていますが、これは開発者を侵害するための直接的な手段とは考えられません。

ルビージェムズ

Ruby開発者は、約172,000個のパッケージ(gemとも呼ばれます)で構成されるRubyGemsリポジトリを使用する場合があります。開発者のメールアドレスはデフォルトで非表示になっています。ただし、一部のgemにはメンテナーファイルが含まれており、開発者の連絡先メールアドレスが記載されています。ただし、この情報はgem間で一貫していません。

RubyGems は最近、アカウント乗っ取りに対抗するためにトップ開発者アカウントに MFA を適用すると発表しました。

この脅威に対して何ができるでしょうか?

まず、開発者とメンテナーのアカウントをアカウント乗っ取りから保護する必要があります。これは、すべてのコードリポジトリにMFAを導入し、コードへのアクセスに必須にすることで実現できます。いくつかのリポジトリではすでにこのポリシーが施行されていますが、主にトップクラスの開発者を対象としています。

第二に、コードリポジトリでは開発者やメンテナーのメールアドレスを公開すべきではありません。開発者に連絡するためのフォームを提供する方が安全です。

開発者の期限切れのドメイン名が攻撃者に使用されないように、コード署名キーも導入する必要があります。攻撃者はコード署名キーを所有していないためです。

消費者レベルでは、組織は使用しているソフトウェアを慎重に分析し、特定のソフトウェアを実行しているシステムのグループを社内ネットワークの他の部分から分離する必要があります。ただし、これにも限界があります。

理想的には、あらゆるソフトウェアの新しいアップデートは、展開前に新旧のコードの違いを確認してレビューする必要があります。理想的ではありますが、この手法は社内のリソースを大量に消費することになります。

開示:私はトレンドマイクロに勤務していますが、この記事で述べられている意見は私自身のものです。

TechRepublic Academy の以下のリソースを活用して、セキュリティ エキスパートになるための一歩を踏み出しましょう。

  • 完全な情報セキュリティ認定バンドル
  • 2022年版CompTIA Cyber​​Security & Security+ 試験対策プレミアムバンドル
  • 高度なサイバーセキュリティキャリアアップバンドル
  • AからZまでのサイバーセキュリティとIT認定トレーニングバンドル
Tagged: