Небольшая история о том, как я зарепортил баги в Apple BugBounty Program

image

Эта история началась 18 января 2022 года. У компании Apple есть платная API для разработчиков Apple Developer Program

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

Более подробно ознакомиться с методами, доступными через API можно здесь.

Для доступа к Apple Developer API вы должны быть участником программы Apple Developer. Стоимость регистрации составляет 99 долларов США (или в местной валюте, если она доступна) за год членства.

Для ознакомления я выбрал метод, который отдавал информацию о плейлистах.

Пока у меня не было валидного токена для авторизации я решил настроить среду разработки, внести необходимые url в Advanced REST плагинчик для Chrome, чтобы в будущем не тратить время на чтение документации на предмет необходимых параметров. Естественно не удержался и сделал парочку запросиков с неверным токеном.
Прежде всего, я делаю запрос без токена доступа и получаю ответ: 401 Unauthorized

image

Я думаю, что мне нужно пойти сделать валидный токен доступа, но пока я искал, как его сгенерировать, я решил попробовать произвольный токен. Поскольку не было никакой информации о длине токена, то я сгенерил обычный JWT токен, абсолютно случайный и подставил его хедера запроса: Authorization: Bearer ZrtCDYwfcen0G6ODNMr2x34uGeiEzo Сделал запрос и уже хотел закрыть REST клиент, и тут внезапно я получил данные из API. Был очень удивлен, что без валидного токена я стал получать валидные данные из платного API.

image

Ранее у меня был опыт работы в отделе тестирования Почта@Mail.Ru Group (на данный момент VK и на текущий момент там не работаю), я решил более детально изучить работу авторизации API.

Я начал пробовать разные запросы с разными токенами.
Попробовал другие произвольные токены разной длины и состоящие из разных символов.

К примеру, авторизационный токен, который длинее или короче на один символ, токена указанного выше, не приводило к успешному выполнению запроса.

Дальше стало понятно, что в Apple не проверят токен на валидность, а тупо чекают длинну токена:

image

Проверил остальные методы из API, все они не чекали правильность токена, а проверяли только соотвествие длины токена лишь какой-то определенной длинне.

Конечно же был наслышан о багбаунти программе, которая обещала, что за обход авторизации щедро отсыплют денег:

image

По привычке пошел на HackerOne платформу, чтобы зарепортить найденный баг. Однако, как выяснилось компания Apple не регистрирует баги через платформу HackerOne и просит написать о найденных уязвимостях на почту product-security@apple.com Были сомнения, но все-таки я решил зарепортить.

image

После этого письма пришла автоматическая отбивка, что они приняли мое обращение.
Обращению был присвоен номер: 791460310
Далее мне написал специалист из сесурити тим Apple, просил, чтобы я уточнил все нюансы.

image

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

Спустя достаточно долгое время мне прислали письмо, где сесурити тим Apple спрашивали как меня закредитовать в бюллетене
информационной безопастности. Ну и естественно написали, что если решат прислать денег, то уведомят меня об этом в следующем письме.

image

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

image

Почему я написал эту статью сюда?


Как выяснилось, что я не один такой. На хабре я нашел статьи Denis Tokarev(illusionofchaos), в которой он пишет о проблемах с выплатами по программе BugBounty. Денису точно так же как и мне ничего не выплатили. Статья Дениса доступна на habr по ссылке тыц.

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

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

P.S.S. Решение о репорте багов в компанию Apple каждый принимает сам, но имейте в виду статьи с Хабра. Так же я предполагаю, что возможно, моя статья окажет кому-то подспорье в поиске более серьезных уязвимостей.

Комментарии (35)


  1. Expany
    26.03.2022 15:00
    +3

    Субъективно считаю, что вопрос вознаграждения необходимо обговаривать до того, как репортить сам баг. Возможно только в общих чертах обрисовывая его наличие, а так же, обещать освящение оного публично, в случае отказа от "обещанного" вознаграждения, до того, как будет передан сам баг, с отсылкой на уже имеющиеся прецеденты. Не столько шантажа ради, сколько гарантии для.
    Иначе, есть большой шанс поработать бесплатно.


    1. agent_0007 Автор
      26.03.2022 15:07
      +24

      Так и получилось, поработал бесплатно. Даже не за "спасибо". Но в случае с Apple по другому не получится работать, потому что они просят им все репортить на email. Поэтому лучше вообще не работать и ничего туда не слать. Либо продавать найденные вещи в других местах.


      1. dezinger
        28.03.2022 01:45
        +1

        А что если попробовать написать статью на иностранной платформе и/или соцсети и обратить на нее внимание разработчиков / управленцев апл через линкедин? Если проблема имеет массовый характер то можно призвать объединиться и описать свои кейсы, обратив внимание бОльшего числа людей из компании? Поднять больше шума что людей кидают. Написать в теже их профильные СМИ и/или конкретным редакторам. Или это только к нам такое отношение?


    1. artebel
      26.03.2022 15:47
      +7

      Если просить деньги перед отправкой отчета - это уже шантаж и уголовно наказуемое действие


      1. ILDAR_BAHTIGOZIN
        26.03.2022 17:23

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


        1. artebel
          26.03.2022 19:33
          +4

          Окей, они ответят что-то в духе «платим до 100к, но все зависит от конкретно твоего отчета, ты присылай нам багу и мы подумаем сколько платить)». Дальше какие ваши действия?)


  1. artebel
    26.03.2022 15:52
    +27

    Я в 2021 отправлял в их баг баунти отчёт про возможность получения доступа к личным данным любого аккаунта, они это приняли, исправили, также прислали сообщение с HoF и после моих вопросов о вознаграждении вообще перестали отвечать ????‍♂️

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


    1. connected201
      26.03.2022 16:12
      +3

      Они просто через это ещё не проходили! а жаль что ещё нету публичных прецедентов о том что они пострадали от собственной жадности!.


    1. isden
      26.03.2022 18:57

      Мне кажется, о всех таких случаях нужно писать в твиттер/реддит/медиум и поднимать как можно больше шумихи.


      1. artebel
        26.03.2022 19:24

        Тут сложный кейс на самом деле.

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


        1. DaneSoul
          27.03.2022 03:17
          +6

          А доказательства ты по нда раскрыть не имеешь права, иначе уже против тебя могут завести дело.
          Тут на самом деле основной вопрос — в какой момент это самое NDA возникает? Ведь NDA это «соглашение», то есть договоренность между двумя сторонами о определенном поведении, которое должно быть как-то явно заключено, а не подразумеваться по умолчанию. Если человек получил баунти и при этом подписал бумаги — это одно. Если никаких фактических отношений с компанией не было, а была только переписка по е-мейл, то с чего вдруг эта NDA возникает?


          1. artebel
            27.03.2022 11:05

            Есть правила баг баунти, размещённые на сайте компании, там прописаны цели для атаки, что можно делать, что нельзя, а также как правило есть пункт, запрещающий разглашение найденной уязвимости.

            Фактически, без заключения договора, вся твоя деятельность на сайте является нарушением законов, но компании баг баунти страницей говорят, на какие твои действия они могут закрыть глаза в обмен на твоё молчание об уязвимостях


            1. Dogrtt
              28.03.2022 08:55

              Кто-то выставил задницей кривое нечто (серьёзно, проверка длинны токена? Такое ощущение, что кто-то спецом себе оставил такой бэкдор. Кстати, забавно, что автор попал в нужное количество символов) в тырнет, ты дёрнул ручку, оно открылось, а ты ещё и виноват? Какие ещё к чёрту белые шляпы? Играть честно можно только с теми кто имеет хоть малейшее понятие о чести.


              1. artebel
                28.03.2022 10:45
                +1

                Я правда пытался понять о чем вы, но смог разобрать только треть ????‍♂️

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


  1. artebel
    26.03.2022 15:59
    +5

    А вообще свинство со стороны компаний, которые размещают на своих сайтах bug bounty страницу и потом просто не платят, встречаю очень часто. Особенно в последний месяц. Иностранные компании кидают потому что ты русский и им можно, русские компании кидают тоже по этой же причине и плюс из-за отсутствия ответственности. По этой причине, в данный момент времени, я вообще перестал участвовать в баг баунти программах, работаю только с проверенными временем заказчиками.


    1. agent_0007 Автор
      26.03.2022 16:15
      +2

      После блокировки VISA и Mastercard вроде как сначала карты МИР добавили и была возможность оплаты, а на текущий момент народ сообщает, что МИР тоже отключают. Понимаю бы еще они придумывали сказки про невозможность оплаты, но тут напряму прослеживается их отношение.


      1. artebel
        26.03.2022 16:27
        +1

        Да тут надо смотреть шире, в мировом bug bounty коммьюнити видим кучу обмана, это не должно так работать.

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


  1. funca
    26.03.2022 17:27

    Ни кто не платит за уже оказанные услуги даром.


  1. lukasafonov
    26.03.2022 17:42
    +6

    09.05.21 сдал багу, 04.11.21 они ее закрыли после длительной переписки с абсолютно непонимающим саппортом. В HoF добавили, про вознаграждение я даже не стал им писать.

    https://support.apple.com/ru-ru/HT201536

    03 Nov 2021: Luka Safonov A server configuration issue was addressed.

    Описание абсолютно не соответсвует зарепорченной баге.


    1. c_denis_bh2
      28.03.2022 10:31

      У них в конфигурации переключатель быстрая/медленная проверка :)


  1. raven19
    26.03.2022 22:44

    Не вступайте г... и не будет пахнуть! Ужели до сих пор не поняли?


    1. agent_0007 Автор
      26.03.2022 23:39
      +3

      требуется пояснительная бригада


  1. CustomRC
    26.03.2022 23:35
    +1

    Очень жаль, что Apple так поступает с теми кто по сути работает за них...


  1. Upsarin01
    26.03.2022 23:36

    Ну значит нужно использовать найденные баги во благо корпорации Apple, чтобы гарантировать себе справедливое вознаграждение.

    Зачем платить глупым русским, когда можно не платить? ????????????

    Зы. Мне вот интересно, если бы скажем какой-то баг позволял получить персональную информацию об аккаунтах пользователей, и вы перед тем как отправить отчёт на bug hunting, провели тестирование и смогли получить допустим информацию о всех клиентах их США, как бы в этом случае могли строиться переговоры о возможном вознаграждении?


    1. tuxi
      27.03.2022 00:14
      +1

      как бы в этом случае могли строиться переговоры о возможном вознаграждении?
      подозреваю, что фото нашедшего баг появится «на доске почета» ФБР.


    1. artebel
      27.03.2022 02:19

      Точно также бы и строились, неправомерный доступ к информации по идее оплачивается как P1 или максимум P2


    1. mayorovp
      27.03.2022 13:45
      +1

      Зы. Мне вот интересно, если бы скажем какой-то баг позволял получить персональную информацию об аккаунтах пользователей, и вы перед тем как отправить отчёт на bug hunting, провели тестирование и смогли получить допустим информацию о всех клиентах их США, как бы в этом случае могли строиться переговоры о возможном вознаграждении?

      В таком случае переговоры о возможном вознаграждении попали бы под статью 163 УК РФ, пункт первый.


  1. AlexanderS
    26.03.2022 23:42
    +4

    Самое печальное в череде всех этих историй в том, что менее принципиальные люди в очередной раз будут убеждаться в том, что зарабатывать на баге нужно не по баунти, а как-нибудь через даркнет. И толкают к этому не какие-то маленькие/средненькие компании, которые бдят за расходами и их ещё как-то можно понять, а транснациональные корпорации, спускающие огромные деньги на всякие несущественные встречи, которым установить годовой бюджет в 100-200к$ на баунти — вообще незаметно будет. И непонятно — это жадность? Глупость? Паралич управленческой компетенции в сильно растянутом вертикальном управлении?


    1. artebel
      27.03.2022 02:26
      +3

      «Мы не хотим становиться плохими, но нас вынуждают» - вот девиз багхантеров в 2022 году.

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


  1. alchemist666
    27.03.2022 02:15
    -1

    ну а может компания не всегда не причем, а человек который получил письмо, решил сам её зарепортить или через друга и сам получить вот эти самые 100к, ну а переписчику как бы типа наши полномочия все, этот баг кому-то оплачен


  1. Alien_AV
    27.03.2022 08:59
    +4

    я-бы предположил, что просто произошла какая-то путаница. "не ищи злой умысел там, где можно обойтись просто глупостью". попробуй написать этому "Ричарду", что-то в духе: "I'm afraid there has been a misunderstanding. This security bug was fixed as a consequence of my report, as noted previously in our email thread. It was valid and reproduced before the fix."

    может, путаница как раз там где тебя просят подтвердить фикс бага? (в не выложенной части переписки)


    1. agent_0007 Автор
      27.03.2022 09:06
      +2

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


  1. NeverIn
    27.03.2022 13:29

    Была такая же тема с Гуглом, обращение проигнорировали, да и ладно, живите с багом.


  1. Daddy_Cool
    27.03.2022 14:52
    -1

    Я не верю, что Apple жалко денег - в конце концов это же не деньги наемных сотрудников. Есть подозрение, что кому-то в Apple невыгодно, чтобы о том, что баг найден сторонними людьми узнавали наверху. А не выплачивая вознаграждение этот факт возможно можно скрыть. Был найден некий баг и пофиксен доблестными сотрудниками. Кто нашел баг? Ну... сотрудники и нашли. Вот письмо какое-то прочитали - и сразу нашли. Т.е. имеет место серьезный управленческий косяк (ну или паталогическая жадность, что одно и то же).


    1. agent_0007 Автор
      27.03.2022 15:42

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