ルーマニアの脅威研究者アレックス・ビルサン氏は最近、大手テクノロジー企業数十社のITシステムに侵入して13万ドル以上を稼いだ。
ビルサン氏は、革新的なサプライチェーン攻撃を1つだけ用いて、テスラ、Netflix、マイクロソフト、アップル、ペイパル、ウーバー、イェルプなど、少なくとも30社以上の企業に侵入しました。その過程で、同氏は重大な脆弱性を露呈させ、複数のバグ報奨金制度を通じて巨額の報酬を得ました。バグ報奨金とは、企業がオンライン防御のテストに成功した「ホワイトハット」ハッカーに支払う報酬です。
Birsanの手口は非常に興味深い。開発プロジェクト内のコード、特に依存関係(プログラムの実行に必要な特定の拡張コード)を操作しているのだ。Threatpostによると、この攻撃は「開発者プロジェクトで依存関係をインストールするための一般的なツール(GitHubなどの公開リポジトリを利用することが多い)に悪意のあるコードを注入する。そして、悪意のあるコードはこれらの依存関係を利用して、標的の企業の内部アプリケーションやシステムを通じてマルウェアを拡散させる」という。

かなり複雑な話ですが、Birsan氏は、大企業の内部コードパッケージの一部が、GitHubなどのパブリックリポジトリに意図せず公開されていることを突き止めました。その原因は様々で、「社内またはクラウドベースのビルドサーバーの設定ミス」や「開発パイプラインのシステム的な脆弱性」など、多岐にわたります。また、Birsan氏は、企業が開発時に使用する自動ビルドツールが、パッケージ名が同じ場合、この公開コードを社内コードと「誤認」してしまうことがあることも発見しました。
BleepingComputerによると、その結果、攻撃者は「オープンソースリポジトリにマルウェアをアップロード」し、それが企業のシステムに自動的に侵入する可能性があるという。これらの悪意のある偽造コードパッケージは、攻撃者が任意のコードを実行したり、「ビルドプロセス中に影響を受けるプロジェクト内にバックドアを追加」したりするために利用される可能性があると、ビルサン氏はYelpへの影響に関する最近の概要の中で述べている。
例えば、Paypal はビルサンの発見に関するメモを公開し、自社のケースで何が起こったのかを説明しました。
…一部の開発プロジェクトでは、本来内部で使用されるべきパッケージではなく、公開NPMレジストリがデフォルトで使用されていました。公開レジストリにパッケージが存在しなかったため、研究者はこれらのパッケージを作成し、ダウンロードされたことを確認しました。これらのパッケージが悪意を持って登録されていた場合、社内開発においてこのコードが組み込まれていた可能性があります。開発パイプラインには追加のチェックと制御が設けられていますが、これは社内システムに重大な問題を引き起こす可能性がありました。研究者の報告により、PayPalは公開レジストリを使用することで問題を軽減し、以前の悪意のある活動の証拠がないことを確認することができました。
ビルサン氏はこの脆弱性を「依存関係の混乱」と名付け、最近のブログ投稿で「これまでに35以上の組織で、テスト対象の3つのプログラミング言語すべてで検出された」と述べています。影響を受けた企業の大多数は従業員1000人以上の企業であり、これはおそらく大規模組織における内部ライブラリの利用率の高さを反映していると考えられます。」ビルサン氏はBleepingComputerに対し、この脆弱性は「自動ビルドまたはインストールツールの脆弱性または設計上の欠陥により、公開依存関係が全く同じ名前の内部依存関係と誤認される可能性がある」と説明しました。
ビルサン氏が昨年この戦略を活用し始めたとき、セキュリティ企業ソナタイプは同氏が送信していたパッケージをマルウェアとしてフラグ付けし始めたと同社が最近報じたが、ビルサン氏はすぐに同社に連絡を取り、進行中の研究について報告し、脆弱性に関する公式発表は2021年に予定されていると説明した。
ビルサン氏はハッキングの成功により、複数のバグ発見報奨金を獲得し、多くの大手テクノロジー企業から感謝されている。
「今回の調査で調査対象となったすべての組織は、公開バグ報奨金プログラムまたは非公開契約を通じて、セキュリティテストの実施を許可していることを明確にしておくことが重要だと考えています。許可なくこのようなテストを行わないでください」とビルサン氏はブログ投稿に記している。
以前はBitdefenderでPythonエンジニアとして働き、ここ3年間は自営業のITセキュリティコンサルタントとして活動してきたビルサン氏は、自分が発見したこの種の脆弱性は将来さらに大きな問題になる可能性があると指摘した。
「内部パッケージ名を漏らす新しい巧妙な方法が見つかれば、さらに脆弱なシステムが露呈することになるだろうし、標的とする別のプログラミング言語やリポジトリを調べることで、依存関係の混乱バグに対する新たな攻撃対象領域が明らかになるだろう」とビルサン氏は書いている。