Skip to main content

CocoaPods делает миллионы приложений iOS и macOS уязвимыми для атак

В открытом репозитории Swift и Objective-C CocoaPods было множество уязвимостей, из-за которых миллионы приложений iOS и macOS на протяжении десятилетия оставались уязвимыми для потенциальных атак, но теперь они исправлены.

Несмотря на то, что репозиторий CocoaPods был потенциальной целью так долго и так много приложений, нет известных эксплойтов в приложениях iOS или macOS. Уязвимости, о которых идет речь, были исправлены в октябре и теперь раскрываются в отчете EVA Information Security.

Отчет был подробно описан Ars Technica, в котором объясняется, что пошло не так и как уязвимости могли быть использованы. Эти проблемы могли привести к серьезным проблемам, если бы злоумышленник сумел их использовать, и всегда есть вероятность, что они были использованы без ведома кого-либо.

Уязвимости CocoaPods

Было три ключевых проблемы с CocoaPods, репозиторием для пакетов Swift и Objective-C. Все они связаны с тем, как разработчики входили в систему, чтобы управлять своими так называемыми pods, которые представляют собой пакеты кода, которые разработчики могли включать в свои приложения, обновляемые удаленно.

Когда менеджер pod входил в систему, ему нужно было ввести адрес электронной почты, связанный с pod. Было отправлено электронное письмо со ссылкой для проверки, которая перенаправляла их прямо на страницу их учетной записи, уже аутентифицированной.

Манипулирование этой ссылкой может позволить злоумышленнику направить ее на контролируемый им сервер (CVE-2024-38367), вторгнуться и контролировать заброшенные модули (CVE-2024-38368) или выполнить код на сервере trunk (CVE-2024-38366). В результате злоумышленник сможет повлиять на модуль, который может использоваться в любом из миллионов приложений iOS и macOS, использующих преимущества CocoaPods.

Теоретически, это будет работать так: злоумышленник может манипулировать pod, заставляя его автоматически обновляться в каждом приложении, в котором он используется, и таким образом выполнять любые новые инструкции, которые ему были даны. Если pod имел доступ к конфиденциальной информации пользователя, такой как пароли или данные кредитной карты, эта информация теперь была бы в руках злоумышленника.

«Возможность выполнять произвольные команды оболочки на сервере давала потенциальному злоумышленнику возможность читать наши переменные среды, которые можно было использовать для записи в репозиторий CocoaPods/Specs и чтения базы данных trunk», — объяснил мейнтейнер CocoaPods Орта Терокс. «Возможность заставить людей нажать на ссылку, которая перенаправит их на сторонний сайт, могла использоваться для кражи их сеансовых ключей. Я не могу гарантировать, что ни одно из этого не произошло, и я бы предпочел перестраховаться».

Разработчики, использующие CocoaPods до октября, могут сделать несколько вещей, чтобы обезопасить себя от атак.

Синхронизируйте файл podfile.lock со всеми разработчиками CocoaPods, чтобы убедиться, что все используют одну и ту же версию пакетов. Это гарантирует, что при фиксации нового, потенциально опасного обновления разработчики не будут автоматически обновляться до него. Если вы используете Pod, который разработан внутри и размещен только в CocoaPods для массового распространения, разработчикам следует выполнить проверку CRC (контрольной суммы) по отношению к тому, который загружен с сервера ствола CocoaPods, чтобы убедиться, что он такой же, как и разработанный внутри (где это возможно). Реализуйте тщательную проверку безопасности любого стороннего кода, используемого в ваших приложениях. Просмотрите зависимости CocoaPods и убедитесь, что вы не используете потерянный Pod. Убедитесь, что вы используете сторонние зависимости, которые активно поддерживаются и чье право собственности ясно. Выполняйте периодические сканирования кода безопасности для обнаружения секретов и вредоносного кода во всех внешних библиотеках, особенно CocoaPods. Будьте осторожны с очень широко используемыми зависимостями, так как они могут стать более привлекательной целью для потенциальных злоумышленников. CocoaPods — это только начало.

Что тебе необходимо сделать

Короче говоря, все просто — скорее всего, у вас все в порядке. Нет никаких доказательств того, что эти уязвимости когда-либо эксплуатировались. Конечно, отсутствие доказательств не означает, что их нет, так что это не полная победа.

iPhone лежит экраном вниз на поверхности

Регулярно обновляйте свой iPhone и приложения, чтобы защитить себя от известных уязвимостей

Однако если pod был изменен и использовался для сбора конфиденциальных данных или заражения машин другими способами, это явно не было сделано так, чтобы кто-то заметил. Как пользователь, единственное, что вы можете сделать, это убедиться, что вы используете надежные приложения, которые остаются обновленными, и вы должны следить за своими учетными записями на предмет странной активности.

Проблема была исправлена, и старые ключи сеанса были стерты. Таким образом, в будущем проблем с CocoaPods, связанных с этими уязвимостями, возникнуть не должно.

Регулярно обновляйте свои устройства и приложения, чтобы всегда иметь доступ к последним обновлениям и исправлениям ошибок.