Новости
Уязвимости в CocoaPods позволяли манипулировать библиотеками
Исследователи EVA советуют разработчикам, использующим CocoaPods в своих приложениях, всегда проверять зависимости CocoaPods и запускать сканирование безопасности для обнаружения вредоносного кода во всех внешних библиотеках.
Миллионы приложений для iOS и macOS имели уязвимость, которая может быть использована для потенциальных атак на цепочки поставок, говорится в отчете ArsTechnica, основанном на исследовании компании EVA Information Security. Эксплойт был обнаружен в CocoaPods, репозитории с открытым исходным кодом, который используется во многих популярных приложениях, разработанных для платформ Apple.
Согласно отчету, около 3 миллионов приложений для iOS и macOS, созданных с использованием CocoaPods, были уязвимы уже около 10 лет. EVA Information Security сообщила, что эксплойт может привести к тому, что злоумышленники получат доступ к конфиденциальным данным приложений, таким как данные кредитных карт, медицинские записи и персональные данные. Эти данные могут быть использованы в различных вредоносных целях, включая мошенничество, шантаж и корпоративный шпионаж.
Первая из трех уязвимостей, обнаруженных EVA, связана с небезопасным механизмом проверки электронной почты, используемым для аутентификации разработчиков отдельных библиотек. Разработчик вводил адрес электронной почты, связанный с его Pod-ом. В ответ магистральный сервер отправлял на этот адрес ссылку. Когда человек нажимал на ссылку, он получал доступ к учетной записи. В одном случае злоумышленник мог манипулировать URL-адресом в ссылке, чтобы она указывала на сервер, находящийся под контролем злоумышленника. Сервер принимал поддельный XFH, HTTP-заголовок для идентификации целевого хоста, указанного в HTTP-запросе. Исследователи EVA обнаружили, что могут использовать поддельный XFH для создания URL по своему усмотрению.
Вторая уязвимость позволяла злоумышленникам получить контроль над Pod-ами, которые были заброшены их разработчиками, но продолжали использоваться приложениями. API, позволяющий разработчикам вернуть контроль над своими библиотеками, оставался активным почти 10 лет после того, как он был впервые реализован. Исследователи обнаружили, что любой, кто находил интерфейс к осиротевшей библиотеке, мог активировать его и получить контроль над ним, причем доказательств права собственности не требовалось.
Третья уязвимость позволяла злоумышленникам выполнить код на магистральном (trunk) сервере. Для проверки уникальности зарегистрированных адресов электронной почты разработчиков и проверки правильности их формата магистральный сервер полагается на RFC822, формализованный в 1982 году. Часть процесса включает в себя проверку MX-записи для домена адреса электронной почты. Процесс включает в себя получение входного параметра и использование regex для проверки соответствия адреса электронной почты требуемому формату. Во время проверки реализация выполняет команду для конкатенации с почтовым доменом без какой-либо проверки на наличие вредоносных символов, которые могут в нем содержаться. Эксплойт, разработанный исследователями, заключается в создании MX-записи, в которой хранится вредоносный bash-скрипт, устанавливающий shell-соединение с магистральным сервером. Затем злоумышленник отправляет адрес на магистральный сервер с добавлением команды. Эта команда заставляет магистральный сервер выполнить сценарий bash, предоставляя доступ к серверу.
После того как исследователи EVA в частном порядке уведомили разработчиков CocoaPods об уязвимости, те стерли все сеансовые ключи, чтобы никто не смог получить доступ к учетным записям, не имея предварительно контроля над зарегистрированным адресом электронной почты. Мантейнеры CocoaPods также добавили новую процедуру восстановления старых бесхозных библиотек, которая требует обращения непосредственно к сопровождающим. На данный момент автору нужно связаться с компанией, чтобы получить себе одну из этих зависимостей.
Это не первый случай, когда CocoaPods становится мишенью для злоумышленников. В 2021 году сопровождающие проекта подтвердили наличие проблемы безопасности, которая позволяла репозиториям CocoaPods выполнять произвольный код на управляющих ими серверах. Это могло быть использовано для замены существующих пакетов на вредоносные версии с кодом, который мог попасть в приложения для iOS и Mac.
Исследователи EVA советуют разработчикам, использующим CocoaPods в своих приложениях, всегда проверять зависимости CocoaPods и запускать сканирование безопасности для обнаружения вредоносного кода во всех внешних библиотеках.