Swiftリポジトリに脆弱性が見つかり、数百万のiPhoneアプリが危険にさらされる

Swiftリポジトリに脆弱性が見つかり、数百万のiPhoneアプリが危険にさらされる

オープンソースの Swift および Objective-C リポジトリである CocoaPods には複数の脆弱性があり、何百万もの iOS および macOS アプリが 10 年にわたって潜在的な攻撃にさらされていましたが、現在は修正されています。

CocoaPodsリポジトリは長年にわたり、多くのアプリが標的となる可能性がありましたが、iOSアプリやmacOSアプリにおける既知の脆弱性は確認されていません。問題の脆弱性は10月に修正され、現在EVA Information Securityのレポートで公開されています。

Ars Technicaは、何が問題だったのか、そして脆弱性がどのように悪用される可能性があるのか​​を詳細に報告しました。これらの問題は、悪意のある人物が悪用した場合、深刻な問題を引き起こす可能性があり、誰にも知られずに悪用される可能性も常に存在します。

CocoaPodsの脆弱性

SwiftおよびObjective-CパッケージのリポジトリであるCocoaPodsには、3つの主要な問題がありました。これらはすべて、開発者が「ポッド」と呼ばれるコードパッケージを管理するためにログインする方法に関係しています。ポッドとは、開発者がアプリに組み込むことができ、リモートで更新されるコードパッケージです。

ポッドマネージャーがログインする際、ポッドに関連付けられたメールアドレスを入力する必要がありました。認証リンクが記載されたメールが送信され、認証済みのアカウントページに直接アクセスできるようになりました。

このリンクを操作することで、悪意のある人物が自身の管理下にあるサーバーにリンクを誘導したり(CVE-2024-38367)、放棄されたポッドに侵入して制御したり(CVE-2024-38368)、トランクサーバー上でコードを実行したり(CVE-2024-38366)することが可能になります。その結果、CocoaPodsを利用する数百万ものiOSおよびmacOSアプリで使用されている可能性のあるポッドに悪意のある人物が影響を与える可能性が高くなります。

理論上、この仕組みは、悪意のある人物がポッドを操作し、ポッドが使用されているすべてのアプリで自動的に更新させ、与えられた新しい指示を実行させるというものです。ポッドがパスワードやクレジットカード情報などの機密性の高いユーザー情報にアクセスできた場合、その情報は悪意のある人物の手に渡ってしまうことになります。

「サーバー上で任意のシェルコマンドを実行できたことで、攻撃者は環境変数を読み取ることができ、CocoaPods/Specsリポジトリへの書き込みやトランクデータベースの読み取りに利用される可能性がありました」とCocoaPodsのメンテナーであるOrta Therox氏は説明した。「ユーザーを騙してリンクをクリックさせ、サードパーティのサイトへ誘導することで、セッションキーを盗むことも可能でした。これらのいずれも発生しなかったと保証することはできませんが、安全策を講じたいと考えています。」

10 月より前に CocoaPods を使用する開発者は、攻撃から安全を確保するためにいくつかの対策を講じることができます。

  • podfile.lock ファイルをすべての CocoaPods 開発者と同期させ、全員が同じバージョンのパッケージを使用していることを確認してください。これにより、潜在的に有害な新しいアップデートがコミットされた場合でも、開発者が自動的にアップデートしてしまうことを防ぎます。
  • 社内で開発され、大量配布用に CocoaPods でのみホストされている Pod を使用している場合、開発者は CocoaPods トランク サーバーからダウンロードしたものに対して CRC (チェックサム) 検証を実行し、社内で開発されたものと同じであることを確認する必要があります (可能な場合)。
  • アプリケーションで使用されるサードパーティのコードに対して徹底的なセキュリティレビューを実施します。
  • CocoaPods の依存関係を確認し、孤立した Pod を使用していないことを確認します。
  • 積極的に保守され、所有権が明確なサードパーティの依存関係を使用するようにしてください。
  • 定期的にセキュリティ コード スキャンを実行して、すべての外部ライブラリ (特に CocoaPods) 上の秘密と悪意のあるコードを検出します。
  • 広く使用されている依存関係は、潜在的な攻撃者にとってより魅力的な標的となる可能性があるため、注意が必要です。CocoaPods はほんの始まりに過ぎません。

あなたがすべきこと

要するに、おそらく大丈夫でしょう。これらの脆弱性が悪用されたという証拠はありません。もちろん、証拠がないからといって、証拠が全くないわけではありませんので、完全に勝利とは言えません。

iPhoneを表面を下にして置いた状態

既知の脆弱性から安全を保つために、iPhoneとアプリを最新の状態に保ってください

しかし、もしポッドが改変され、機密データの収集やマシンへの感染に利用されていたとしても、誰も気づかないような形で行われたわけではないことは明らかです。ユーザーとしてできることは、信頼できるアプリを常に最新の状態に保ち、アカウントの不審なアクティビティを監視することだけです。

この問題は修正され、古いセッションキーは消去されました。そのため、今後これらの脆弱性に関連するCocoaPodsの問題が発生することはありません。

常に最新のパッチとバグ修正を適用できるように、デバイスとアプリを最新の状態に保ってください。