Миллионы приложений Apple оказались уязвимы для атаки на цепочку поставок CocoaPods
4 июля 2024 г.Многие приложения macOS и iOS были уязвимы в CocoaPods, менеджере зависимостей с открытым исходным кодом E.V.A. Информационная безопасность была раскрыта 1 июля. Уязвимость была исправлена с тех пор, как EVA впервые обнаружила ее, и никаких атак, однозначно связанных с ней, не произошло.
Однако этот случай интересен тем, что уязвимость так долго оставалась незамеченной и показала, как разработчикам следует быть осторожными с библиотеками с открытым исходным кодом. Эта уязвимость является хорошим напоминанием разработчикам и командам DevOps о необходимости проверить, не затронуты ли какие-либо устройства их организаций.
«Тысячи приложений и миллионы устройств» могли быть затронуты в дальнейшем, считает E.V.A. сказал. Команда безопасности сообщает, что они обнаружили уязвимые модули CocoaPods в «документации или условиях обслуживания приложений, предоставленных Meta (Facebook, Whatsapp), Apple (Safari, AppleTV, Xcode) и Microsoft (Teams); а также в TikTok, Snapchat, Amazon, LinkedIn, Netflix, Okta, Yahoo, Zynga и многих других».
Е.В.А. сообщил об уязвимости CocoaPods в октябре 2023 года, после чего она была исправлена.
«Команда CocoaPods ответственно и быстро отреагировала на обнаруженные уязвимости», — заявил E.V.A. Информационная безопасность написала.
Уязвимости возникли в CocoaPods
CocoaPods — это менеджер зависимостей для проектов Swift и Objective-C, который проверяет легитимность компонентов с открытым исходным кодом. Е.В.А. Информационная безопасность изначально не занималась поиском уязвимостей в CocoaPods; вместо этого команда обнаружила их, когда объединилась в красную команду для клиента.
СМ.: CISA рекомендует использовать безопасные для памяти языки программирования для проектов с открытым исходным кодом.
Е.В.А. сообщил о нескольких причинах уязвимостей. Во-первых, CocoaPods мигрировали с GitHub на «магистральный» сервер в 2014 году, но владельцам модулей пришлось вручную возвращать свои места. Некоторые из них этого не сделали, оставив 1866 «осиротевших» капсул, которые оставались нетронутыми в течение следующих 10 лет. Любой мог отправить CocoaPods электронное письмо с просьбой заявить права на эти модули, что позволило бы злоумышленникам внедрить вредоносный контент.
Во-вторых, злоумышленники могут запустить вредоносный код на самом «магистральном» сервере, воспользовавшись небезопасным процессом проверки электронной почты. Оттуда они могли манипулировать пакетами, загруженными с этого сервера, или заменять их.
В-третьих, злоумышленники могут украсть токены проверки учетной записи, подделав заголовок HTTP и воспользовавшись неправильно настроенными инструментами безопасности электронной почты. Оттуда они могли бы использовать этот токен для изменения пакетов на сервере CocoaPods, что потенциально может привести к атакам в цепочке поставок и атакам нулевого дня.
Что разработчики и команды DevOps могут сделать для устранения уязвимостей CocoaPods
Уязвимости CocoaPods — хорошее напоминание разработчикам и командам DevOps о том, что нельзя забывать о менеджерах зависимостей, которые могут стать потенциальным слабым звеном в безопасности цепочки поставок. Чтобы справиться с уязвимостями CocoaPods, разработчикам и командам DevOps следует дважды проверить зависимости с открытым исходным кодом, используемые в коде их приложений.
Е.В.А. предложенный:
- Если вы используете программное обеспечение, основанное на потерянных пакетах CocoaPods, синхронизируйте файл podfile.lock со всеми разработчиками CocoaPods, чтобы гарантировать, что все используют одну и ту же версию пакетов.
Просмотрите списки зависимостей и менеджеры пакетов, используемые в ваших приложениях.
Проверка контрольных сумм сторонних библиотек.
Выполняйте периодическое сканирование внешних библиотек, особенно CocoaPods, для обнаружения вредоносного кода или подозрительных изменений.
Постоянно обновляйте программное обеспечение.
Ограничьте использование потерянных или необслуживаемых пакетов CocoaPods.
Будьте осторожны с потенциальной эксплуатацией широко используемых зависимостей, таких как CocoaPods.
Оригинал