我们的 AI 引擎 Neutron 在加州大学伯克利分校的 CyberGym 基准测试中取得了 96.75% 的成绩。 了解更多

安全

安全

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 的维护者实施了几项关键的修复措施:

  1. 修复漏洞:所有已发现的漏洞均已修复,以防止进一步被利用。
  2. 改进治理:已推出多项措施,加强对 CocoaPods 仓库的治理和监督。
  3. 所有权验证:已建立更严格的包认领验证流程,确保只有合法的开发者才能认领 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 维护者已应对了眼前的威胁,在一定程度上控制住了风险。然而,开发者和组织仍必须主动采取措施,进一步缓解潜在风险。

接下来您应该怎么做

为确保您的应用安全,请按照以下步骤操作:

  1. 扫描您的应用:Ostorlab 会报告所有者未被认领的包,其中包括传递依赖。

扫描结果
扫描结果

  1. 移除无主的包:为防止潜在的漏洞利用,请从您的构建中移除所有无主的包。

标签:

Supply chain