Как Apple кинула студентов из России или очередная критика программы Apple Security Bounty

image-loader.svg

Apple славятся заботой о своих пользователях в вопросах безопасности и удобства пользования. Они щедро вознаграждает исследователей безопасности, которые помогают исправить уязвимости в их продуктах.  На международной арене у них одни из самых высоких вознаграждений. Однако все чаще их обвиняют в недобросовестном отношении к исследователям, нашедших уязвимости на их платформах. Пример выплат по уязвимостям в девайсах Apple.

image-loader.svg

Важно заметить что 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).

image-loader.svg

Из лога событий мы можем выделить:

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 и его исходного кода.

image-loader.svg

На следующий день, 15 сентября, мы получили письмо, в котором было сказано об инициации расследования, с просьбой сохранить информацию в тайне.

1 октября мы отправили еще одно письмо с целью узнать как проходит расследование и достаточно ли приложенных материалов.

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

image-loader.svg

После этого был выпущен патч, который отключил возможность отправлять пакеты с порта 0, что делало невозможным атаку с устройств Apple. Однако воспроизвести атаку все также можно было с linux системы. 

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

27 октября мы отправили им письмо с просьбой разъяснить ситуацию, но ответа не последовало.

Спустя полтора месяца мы начали писать статью, периодически отправляли письма на product-security.

9 ноября нам ответили, что уязвимость подтверждена для iPhone и iPad, ей присвоен CVE-идентификатор (CVE-2021–30924).

От нас последовали вопросы: почему отклонены макбуки и можем ли мы рассчитывать на вознаграждение.

18 ноября, спустя 8 дней, мы все же были упомянуты в обновлении безопасности macOS 12.0.1, но упоминаний в обновлениях для iOS и iPadOS не последовало, хотя уязвимость была закрыта.

На этом общение со стороны Apple было завершено.

image-loader.svg

Скриншот с сайта Apple

На основе этой ситуации можем предположить, что Apple намеренно не регистрируется на площадках bug-bounty для сокрытия информации о найденных уязвимостях и их количестве, а также для усложнения получения вознаграждений.

Эпилог

Так как информация об уязвимости была сообщена более 90-и дней назад, считаем необходимым опубликовать подробную информацию о ней. Также в очередной раз предупредить исследователей о том, что Apple может кинуть не только с выплатой гонорара за уязвимость, но и даже с бесплатным действием в виде выражения благодарности за то, что вы проделали работу которую должны были сделать сотрудники Apple.

Elaman Iskakov (@darling_x0r) and Alexey Katkov (@watman27).

© Habrahabr.ru