EVA Information Securityは7月1日、オープンソースの依存関係管理ツールCocoaPodsの脆弱性により、多くのmacOSおよびiOSアプリケーションが影響を受けていたことを明らかにした。EVAが最初にこの脆弱性を発見して以来、この脆弱性は修正されており、この脆弱性と確実に関連している攻撃は発生していない。
しかし、この脆弱性が長らく気づかれずにいたことが、開発者がオープンソースライブラリを慎重に扱うべきことを浮き彫りにしたという点で、この事例は興味深いものです。この脆弱性は、開発者やDevOpsチームにとって、組織のデバイスが影響を受ける可能性があるかどうかを確認する良い機会となるでしょう。
EVAによると、「数千ものアプリケーションと数百万台のデバイス」が下流で影響を受けた可能性があるという。セキュリティチームは、「Meta(Facebook、Whatsapp)、Apple(Safari、AppleTV、Xcode)、Microsoft(Teams)が提供するアプリケーションのドキュメントまたは利用規約文書、さらにTikTok、Snapchat、Amazon、LinkedIn、Netflix、Okta、Yahoo、Zyngaなど、多数のアプリケーション」に脆弱なCocoaPodsポッドを発見したと述べている。
EVA は 2023 年 10 月に CocoaPods に脆弱性を報告し、その時点で修正プログラムが適用されました。
EVA Information Securityは「CocoaPodsチームは脆弱性が明らかになると責任を持って迅速に対応した」と記している。
CocoaPodsに起因する脆弱性
CocoaPodsはSwiftおよびObjective-Cプロジェクトの依存関係管理ツールであり、オープンソースコンポーネントの正当性を検証します。EVA Information Securityは当初、CocoaPodsの脆弱性を探していたわけではなく、顧客向けのレッドチーム演習中に発見しました。
参照: CISA は、オープンソース プロジェクトにメモリセーフなプログラミング言語を使用することを推奨しています。
EVAは、これらの脆弱性の原因をいくつか報告しました。まず、CocoaPodは2014年にGitHubから「トランク」サーバーに移行しましたが、ポッド所有者は手動でスポットを回収する必要がありました。一部の所有者は回収せず、1,866個の「孤立した」ポッドがその後10年間放置されていました。誰でもCocoaPodにメールを送信してこれらのポッドを回収することができ、攻撃者が悪意のあるコンテンツを挿入することができた可能性があります。
第二に、攻撃者は安全でないメール検証ワークフローを悪用することで、「トランク」サーバー自体で悪意のあるコードを実行する可能性があります。そこから、そのサーバーからダウンロードされたパッケージを操作したり、置き換えたりする可能性があります。
第三に、攻撃者はHTTPヘッダーを偽装し、設定ミスのあるメールセキュリティツールを悪用することで、アカウント検証トークンを盗む可能性があります。そして、そのトークンを使ってCocoaPodsサーバー上のパッケージを変更し、サプライチェーン攻撃やゼロデイ攻撃に繋がる可能性があります。

開発者とDevOpsチームがCocoaPodsの脆弱性を軽減するためにできること
CocoaPodsの脆弱性は、開発者とDevOpsチームにとって、サプライチェーンのセキュリティにおける潜在的な弱点となり得る依存関係管理ツールの存在を忘れてはならないことを改めて認識させるものです。CocoaPodsの脆弱性に対処するために、開発者とDevOpsチームは、アプリケーションコードで使用されているオープンソースの依存関係を改めて確認する必要があります。
EVA の提案:
- 孤立した CocoaPods パッケージに依存するソフトウェアを使用している場合は、podfile.lock ファイルをすべての CocoaPods 開発者と同期させ、全員が同じバージョンのパッケージを使用していることを確認します。
- アプリケーションで使用されている依存関係リストとパッケージ マネージャーを確認します。
- サードパーティ ライブラリのチェックサムを検証します。
- 悪意のあるコードや疑わしい変更を検出するために、外部ライブラリ、特に CocoaPods の定期的なスキャンを実行します。
- ソフトウェアを最新の状態に保ってください。
- 孤立した、またはメンテナンスされていない CocoaPods パッケージの使用を制限します。
- CocoaPods のような広く使用されている依存関係が悪用される可能性に注意してください。