CocoaPodsのサプライチェーン騒動:知っておくべきこと
E.V.A Information SecurityがCocoaPodsに重大な脆弱性を発見し、ただちにパッチが適用されました。開発者は今後、所有者のいないパッケージを削除し、依存関係を検証し、アプリをスキャンしてセキュリティを確保する必要があります。
状況の概要
E.V.A Information Securityの研究者は最近、CocoaPods依存関係マネージャーに重大な脆弱性を発見しました。これらの欠陥により、悪意のある攻撃者が所有者のいないpodの所有権を取得し、多数の人気iOSおよびMacOSアプリに悪意のあるコードを注入できる状態になっていました。これらの脆弱性にはすでにパッチが適用されていますが、このような攻撃はほぼすべてのAppleデバイスを侵害しえたため、潜在的な影響は深刻でした。
主要な脆弱性の一つがCVE-2024-38368です。この脆弱性により、攻撃者は所有者のいないCocoaPodsパッケージの所有権を取得し、悪意のあるコードを挿入できました。広範な被害をもたらす可能性は甚大で、依存関係の管理にCocoaPodsを利用している個人開発者と大規模組織の両方に影響が及ぶおそれがありました。
根本原因
これらの脆弱性の根本原因は、CocoaPodsリポジトリにおいて、所有者のいないpodに対する厳格な所有権管理と検証の仕組みが欠如していたことにあります。この見落としにより、攻撃者は所有者のいないパッケージを掌握し、それを改ざんして悪意のあるコードを拡散することが可能になっていました。
実施された修復措置
この発見を受けて、CocoaPodsのメンテナーはいくつかの重要な修復措置を実施しました。
- 脆弱性へのパッチ適用:さらなる悪用を防ぐため、特定されたすべての脆弱性にパッチが適用されました。
- ガバナンスの改善:CocoaPodsリポジトリのガバナンスと監督を改善するための措置が導入されました。
- 所有権の検証:正当な開発者だけがpodの所有権を取得できるよう、パッケージの所有権を申請する際の検証プロセスが強化されました。
Ostorlabによる分析
Ostorlabのスキャンと分析により、次のことが明らかになりました。
- さまざまなスキャンで290,000件を超えるCocoaPodsの参照が特定されました。
- これらの参照は、推移的依存関係を含め、約9,500個の一意のCocoaPodsパッケージに相当します。
- 所有者のいないパッケージは、複数の
AmazonアプリやTinderをはじめ、多くの著名なアプリで見つかっています。 - これらのパッケージのうち、所有者がおらず、かつアプリで使用されていたのは9502個中わずか67個(0.07%)で、具体的には次のとおりです。
JJPluralForm
ObjectiveGumbo
MosaicUI
GCPlaceholderTextView
iOS-QR-Code-Encoder
JSONKit-NoWarning
GCNetworkReachability
UIImageEffects
MHPrettyDate
NHAlignmentFlowLayout
DBChooser
QR-Code-Encoder-for-Objective-C
GRKInputStreamAggregate
ASCScreenBrightnessDetector
FMMoveTableView
nv-ios-http-status
DYRateView
RegexKitLite
SDNetworkActivityIndicator
MASAttributes
MRCircularProgressView
PPTopMostController
NTMonthYearPicker
UIActionSheet-Blocks
MoPubSDK
NoticeView
HPGrowingTextView
ImageCache
MDSpreadView
Courier
MessagePack
PDKeychainBindingsController
CRGradientNavigationBar
Base64nl
ASIHTTPRequest
JAGPropertyConverter
SHXMLParser
UIAlertView-Blocks
MulticastDelegate
AsyncImageDownloader
DBKit
FPPopover
MagicKit
OAuthCore
XYPieChart
KeychainItemWrapper
MDHTMLLabel
SOCKit
TSCurrencyTextField
CRMotionView
DebugKit
MKMapView-ZoomLevel
ALActionBlocks
StyledPageControl
TouchXML
PinYin4Objc
PopoverView
LogEntries
Promise
WMGaugeView
MGImageUtilities
CSV
MAObjCRuntime
KLSwitch
DejalActivityView
XMLReader
MJPopupViewController
CocoaPodsのメンテナーによる対応で、差し迫った脅威のリスクは部分的に抑えられました。しかし、開発者や組織は、潜在的なリスクをさらに緩和するために主体的な対策を講じる必要があります。
次に行うべきこと
アプリのセキュリティを確保するために、次の手順に従ってください。
- アプリをスキャンする:Ostorlabは、所有者のいないパッケージを報告します。これには推移的依存関係も含まれます。

- 所有者のいないパッケージを削除する:潜在的な悪用を防ぐため、所有者のいないパッケージをビルドからすべて取り除いてください。
タグ:
Supply chain