300万個ものiOSおよびmacOSアプリが強力なサプライチェーン攻撃にさらされていたことが明らかに
iOSやmacOS向けのアプリケーション開発で利用されるライブラリ管理ツールの「CocoaPods」に、過去10年間にわたって脆弱(ぜいじゃく)性が存在していたことが明らかになりました。これにより、300万個ものiOSおよびmacOSアプリケーションがサプライチェーン攻撃の危機にさらされていたことが明らかになっています。
3 million iOS and macOS apps were exposed to potent supply-chain attacks | Ars Technica
https://arstechnica.com/security/2024/07/3-million-ios-and-macos-apps-were-exposed-to-potent-supply-chain-attacks/
Millions of iOS apps were exposed to CocoaPods security breach
https://9to5mac.com/2024/07/02/ios-apps-security-breach-cocoapods/
CocoaPodsの管理に使用されているトランクサーバーに、脆弱性が存在していたことを報告したのは、セキュリティ企業・E.V.A Information Securityの研究グループ。CocoaPodsでは個々のコードパッケージを指す「ポッド」に変更を加えると、CocoaPodsを利用しているアプリは通常、アプリのアップデートを通じてその変更を自動的に取り入れるよう設計されており、エンドユーザーによる操作は必要ありません。
E.V.A Information SecurityはCocoaPodsで3つの脆弱性を発見しており、これらは個々のポッドの開発者を認証するために使用される検証メールメカニズムが安全ではなかったことが原因です。開発者はポッドに関連付けられたメールアドレスを入力すると、トランクサーバーはメールアドレスにリンクを送信して応答します。ユーザーがこのリンクをクリックすると、アカウントにアクセスできるようになっています。
CocoaPodsから送信される通常の認証メール
しかし、攻撃者はトランクサーバーからの応答メールに偽装して、攻撃者が管理するサーバーへのリンクを送信することができたと研究者は指摘しています。サーバーはHTTPリクエストで指定されたターゲットホストを識別するためのHTTPヘッダーとして、偽のXFHを受け入れたそうです。E.V.A Information Securityの研究者は「偽造されたXFHを使用して任意のURL を構築できた」と指摘しています。
研究者が偽造した認証メール
なお、E.V.A Information Securityが発見した脆弱性は以下の3つ。
・CVE-2024-38367
・CVE-2024-38368
・CVE-2024-38366
この機能を悪用してアプリに悪意のあるコードを挿入すると、攻撃者はクレジットカード情報や医療記録などのユーザーの個人情報にアクセスして、ランサムウェア攻撃を行ったり企業スパイを行ったりすることが可能になっていました。E.V.A Information Securityの研究チームは「攻撃者はユーザーの個人情報にアクセスして、ランサムウェア・詐欺・脅迫・企業スパイなど、考えられるほぼあらゆる悪意のある目的に利用できるようになります。その過程で、企業は重大な法的責任や評判リスクにさらされる可能性があります」と述べています。
CocoaPodsのメンテナーは2023年10月にこれらの脆弱性を公開し、修正パッチを配布しています。パッチ配布時、メンテナーは「サーバー上で任意のシェルコマンドを実行できるということは、攻撃者が環境変数を読み取る能力を与え、CocoaPods/Specsリポジトリに書き込み、トランクデータベースを読み取ることができることを意味します」「ユーザーを騙してリンクをクリックさせ、サードパーティーのサイトに誘導することで、セッションキーを盗むことができます。これが起きたか否かは不明ですが、安全策をとりたいと思います」と語りました。
CocoaPodsのメンテナーは「最悪のシナリオは、攻撃者がこの技術を利用してセッションキーを入手し、アプリ開発者アカウントにアクセスし、認証されたユーザーをポッドに接続すること」と語っています。なお、E.V.A Information Securityの研究者はCocoaPods開発者にこの脆弱性を非公開で通知した後、登録されたメールアドレスを制御できない限り、誰もアカウントにアクセスできないようにするために、すべてのセッションキーを消去しました。
さらに、CocoaPodsはメンテナーに直接連絡する必要がある古い孤立したポッドを回復するための新しい手順も追加。アプリ開発者やアプリを使用するユーザー側で必要なアクションはありませんが、E.V.A Information Securityの研究者は「2023年10月以前にCocoaPodsを使用していたアプリ開発者」に対して、以下の手順に従うようアドバイスしています。
・podfile.lockファイルをすべてのCocoaPods開発者と同期させて、全員が同じバージョンのパッケージを使用していることを確認します。これにより、潜在的に有害な新しい更新がコミットされたときに、開発者が自動的に更新することがなくなります。
・社内で開発され、大量配布用にCocoaPodsでのみホストされているポッドを使用している場合、開発者はCocoaPodsトランクサーバーからダウンロードしたものに対してCRC(チェックサム)検証を実行し、社内で開発されたものと同じであることを確認する必要があります。
・アプリケーションで使用されるサードパーティーコードの徹底的なセキュリティレビューを実装します。
・CocoaPodsの依存関係を確認し、孤立したポッドを使用していないことを確認します。
・積極的に保守され、所有権が明確なサードパーティーの依存関係を使用するようにしてください。
・定期的にセキュリティコードスキャンを実行して、すべての外部ライブラリ(特にCocoaPods)上の悪意のあるコードを検出します。
・非常に広く使用されている依存関係は、潜在的な攻撃者にとってより魅力的なターゲットとなる可能性があるため、注意してください。
なお、E.V.A Information Securityの研究者は「潜在的なコード変更は、iPhone、Mac、Apple TV、Apple Watchデバイスなど世界中の何百万台ものAppleデバイスに影響を与える可能性があります」と言及しています。
07/03 11:05
GIGAZINE