Как Apple кинула студентов из России или очередная критика программы Apple Security Bounty
Apple славятся заботой о своих пользователях в вопросах безопасности и удобства пользования. Они щедро вознаграждает исследователей безопасности, которые помогают исправить уязвимости в их продуктах. На международной арене у них одни из самых высоких вознаграждений. Однако все чаще их обвиняют в недобросовестном отношении к исследователям, нашедших уязвимости на их платформах. Пример выплат по уязвимостям в девайсах Apple.
Важно заметить что Apple не представлена ни на одной из bug-bounty площадок, все баг-репорты необходимо отправлять напрямую им. Что позволяет им контролировать всю информацию о найденных уязвимостях.
Только по открытой информации за прошлый год компания закрыла более десятка zero-day уязвимостей в iOS.
Давайте рассмотрим их программу вознаграждений поподробнее.
Apple Security Bounty
В рамках приверженности Apple обеспечению безопасности мы вознаграждаем исследователей, которые делятся с нами критическими проблемами и методами, используемыми для их использования. Мы уделяем первоочередное внимание устранению подтвержденных проблем как можно быстрее, чтобы максимально защитить клиентов. Apple предлагает общественное признание тем, кто представляет достоверные отчеты.
Цитата с сайта компании
Требования на получение вознаграждения
Исследователи должны:
Быть первыми, кто сообщит о проблеме в службу безопасности продуктов Apple;
Предоставить четкий отчет, который включает рабочий эксплойт;
Не раскрывать проблему публично до того, как Apple выпустит рекомендации по безопасности для отчета.
Цепочка и отчет должны включать:
Как скомпилированную, так и ее исходный код;
Все необходимое для выполнения цепочки;
При необходимости образец неразрушающей полезной нагрузки.
А теперь посмотрим как на практике работает программа «Apple Security Bounty» на примере найденной нами DoS уязвимости.
SkyWalk 0-day (
Для того чтобы вызвать панику ядра необходимо подключиться к сети, которую раздаёт устройство под управлением операционной системы на основе XNU (macOS, iOS, iPadOS), и отправить два пакета на любой интернет ресурс с порта 0 на разные порты назначения. Результатом является зависание устройства с последующей перезагрузкой. Ниже приведен скриншот логов события (panic_full).
Из лога событий мы можем выделить:
Bug_type: 210.
Версия ядра: XNU-8011.0.0.122.3 (так же работает с младшими версиями)
Логи ведут нас по адресу »/Library/Caches/com.apple.xbs/Sources/xnu/xnu-7195.140.42/bsd/skywalk/namespace/netns.c» в компонент skywalk. Поиск по сети привел нас к книге «OS Internals» автора Jonathan Levin. В которой описывается «таинственный» компонент SkyWalk. В данной книге сказано, что это «незадокументированная сетевая подсистема».
Уязвимость затрагивала устройства на ядре XNU и была протестирована на:
iPhone 12 Pro (iOS 15.0);
iPhone 11 (iOS 14.7.1);
iPhone Xr (iOS 14.6);
MacBook Air, 2020 M1 (macOS 12.0);
Macbook Pro (Retina 13, Mid 2014) (macOS 11.5.2).
Собрав всю эту информацию, написав PoC и отчет мы поспешили уведомить компанию. (Исходный код PoC)
Сообщенная проблема безопасности
Хронология Событий:
14 сентября мы отправили отчет product-security@apple.com с подробным описанием проблемы, как ее воспроизвести, а также с предоставлением исполняемого PoC и его исходного кода.
На следующий день, 15 сентября, мы получили письмо, в котором было сказано об инициации расследования, с просьбой сохранить информацию в тайне.
1 октября мы отправили еще одно письмо с целью узнать как проходит расследование и достаточно ли приложенных материалов.
5 октября пришло ответное сообщение. В нем говорилось о том, что проблема будет решена в ближайшем обновлении безопасности, а также уточнили, как нас можно упомянуть.
После этого был выпущен патч, который отключил возможность отправлять пакеты с порта 0, что делало невозможным атаку с устройств Apple. Однако воспроизвести атаку все также можно было с linux системы.
Спустя некоторое время вышло глобальное обновление, в котором уязвимость была окончательно закрыта на всех системах, при этом в списке исправлений отсутствовала данная уязвимость, ровно как и упоминания о нас.
27 октября мы отправили им письмо с просьбой разъяснить ситуацию, но ответа не последовало.
Спустя полтора месяца мы начали писать статью, периодически отправляли письма на product-security.
9 ноября нам ответили, что уязвимость подтверждена для iPhone и iPad, ей присвоен CVE-идентификатор (CVE-2021–30924).
От нас последовали вопросы: почему отклонены макбуки и можем ли мы рассчитывать на вознаграждение.
18 ноября, спустя 8 дней, мы все же были упомянуты в обновлении безопасности macOS 12.0.1, но упоминаний в обновлениях для iOS и iPadOS не последовало, хотя уязвимость была закрыта.
На этом общение со стороны Apple было завершено.
Скриншот с сайта Apple
На основе этой ситуации можем предположить, что Apple намеренно не регистрируется на площадках bug-bounty для сокрытия информации о найденных уязвимостях и их количестве, а также для усложнения получения вознаграждений.
Эпилог
Так как информация об уязвимости была сообщена более 90-и дней назад, считаем необходимым опубликовать подробную информацию о ней. Также в очередной раз предупредить исследователей о том, что Apple может кинуть не только с выплатой гонорара за уязвимость, но и даже с бесплатным действием в виде выражения благодарности за то, что вы проделали работу которую должны были сделать сотрудники Apple.
Elaman Iskakov (@darling_x0r) and Alexey Katkov (@watman27).