company_banner

Bug bounty Ozon: вопросы и ответы

image

Мы запустили публичную bug bounty программу на HackerOne — теперь за найденные на сайте Ozon уязвимости можно получить вознаграждение, а заодно помочь компании, сервисом которой пользуются друзья, знакомые и родственники. В этой статье команда информационной безопасности Ozon отвечает на самые популярные вопросы о программе.

Какие ресурсы Ozon участвуют в программе?


Пока только основной сайт, но мы планируем подключать и другие сервисы.

Сколько платим за найденные баги?


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

Кому-то уже заплатили?


Да, в марте программа стартовала в закрытом режиме, и порядка 360 000 рублей мы уже заплатили исследователям.

Первый репорт мы получили от r0hack в тогда ещё приватной программе, об отсутствии защиты от атак вида CSRF. У нас действительно не используется классический способ защиты от подобных атак в виде т.н. CSRF-токена, которым подписывается соответствующий запрос (см. OWASP Cross-Site Request Forgery Prevention Cheat Sheet), мы сделали ставку на относительно новый, но уже достаточно давно поддерживаемый всеми основными браузерами, механизм маркировки сессионных кук атрибутом SameSite. Его суть в том, что такая сессионная кука перестает передаваться (в зависимости от значения атрибута) при обычных межсайтовых запросах. Таким образом решается изначальная причина, приводящая к CSRF. Проблема для нас оказалась в том, что сессионная кука также менялась и на стороне браузера в JavaScript (да-да, это само по себе плохо и совсем скоро избавимся от этого) и там этот атрибут сбрасывался, выключая таким образом защиту — и вот это оказалось для нас неприятным сюрпризом, а исследователю пришлось приложить усилия, чтобы доказать нам с помощью PoC и видео, существование проблемы. За что ему отдельное спасибо!

Почему сразу не запустились в публичном доступе?


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

Теперь Ozon сам безопасностью заниматься не намерен?


Наоборот — мы усиливаем команду и планируем не только активнее работать с сообществом хакеров, но и продолжим выстраивать процессы в рамках S-SDLC, включая: контроль безопасности кода, анализ защищённости сервисов и обучение сотрудников, и даже проводить митапы об инфобезе. Кстати, выступление руководителя группы продуктовой безопасности Тараса Иващенко с предыдущего OWASP митапа можно почитать у нас в блоге.

Запасаемся кофе и удачного хакинга!
OZON: life in tech
e-commerce, где есть примерно всё

Похожие публикации

Комментарии 22

    +1
    Вы б лучше дали по башке тому уникальному человеку, который предложил регать юрлица через номер смартфона, причем если оного у юрлица нет, то пусть типа регается на номер сотрудника методом удаления сего номера из личного профиля человека на озоне.
    Не, ну серьезно, Озон, вы там специально выдумывали самый идиотский способ регистрации юрлица на сайте? А то до надежности площадки даже доходить не хочется при таком подходе к людям.
      –1
      Добрый день, я из Ozon.
      Регистрация у юр.лиц проходит в два этапа — ввод ИНН с проверкой, ввод номера телефона.
      Вы правы, один номер телефона использовать на два аккаунта (физ.лицо и юр.лицо) не получится.
      Почему так? Верификация аккаунтов по номеру телефона была введена для безопасности аккаунтов наших клиентов — чтобы злоумышленники не могли попасть в аккаунт без кода из СМС-сообщения.
      Подумаем над возможностью заводить два разных типа аккаунтов на один номер, спасибо за фидбек.
        +1
        Верификация аккаунтов по номеру телефона была введена для безопасности аккаунтов наших клиентов — чтобы злоумышленники не могли попасть в аккаунт без кода из СМС-сообщения.

        Ага, ровно поэтому в вашей же ТП сказано, что после заведения можно будет удалить этот номер нафиг.
        Ну серьезно, с десятками интернет магазинов работали — ни в одном такого современного решения не было, чтоб отбить желания работать.
          0
          Удалить номер из учётной записи конечно же можно, но при оформлении заказа нужно будет указать новый номер и он будет к учётной записи привязан.
          Лучше выбрать один номер, который будет использоваться в учётной записи юридического лица и не отвязывать его.
          Процесс верификации точно останется таким же, но мы подумаем над разделением в системе аккаунтов физ.лиц и юр.лиц таким образом, чтобы на один номер можно было завести по одному аккаунту разного типа.
            0
            А, то есть ещё и ваша ТП при этом меня нагло вводила в заблуждение, тем что я смогу потом свой номер вернуть своему аккаунту, а при заказе указывать любой номер?
            Скажите, вот серьезно, по какому закону РФ юрлица обязаны иметь даже не просто номер телефона, а мобильный номер телефона? И уж тем более не будут привязываться номера, по которым идёт общение с банком, например. Потому что вы — не банк и не гарантируете конфидециальности.

            Кому вообще такое в голову пришло? Ну серьезно, открываем ваших конкурентов: Ситилинк, Онлайнтрейд. Нигде номер телефона не используется, и никакой защиты он не даст свыше пароля и эмейла, ни для вас (привет симки у метро), ни для клиента. При этом обе конторы спокойно на каждый заказ по два-три номера привязывают, хоть каждый раз разные, и заказы доставляют без проблем.

            PS. Не буду голословным:
            Если у вас нет рабочего телефона, на который могут поступать смс, то можно временно указать номер телефона кого-то из сотрудников. Потом нужно добавить адрес электронной почты, а номер телефона удалить. Для оформления новых заказов система будет спрашивать контактный номер телефона, там можно будет указать ваш при необходимости.
              0
              Объясню процесс чуть глубже.
              Теоретически да, вы можете зарегистрироваться с одним номером телефона, после чего отвязать его и оформлять заказ с другим номером. В момент оформления заказа с другим номером, привяжется к аккаунту именно он.

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

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

                0
                В момент оформления заказа с другим номером, привяжется к аккаунту именно он.
                Так я повторюсь — слова вашей ТП — прямая ложь. Я не смогу по номеру из другого аккаунта сделать заказ, потому что он привязан? Ну так — вот вам первая найденая ошибка, ваши ТП сообщает ложную информацию клиенту.
                Понимаю, что это может быть несколько неудобно, но повторюсь, что подтвреждение по коду из смс безопаснее, чем вход по связке логин/пароль.
                Угу, смс же у нас гарантированный протокол передачи данных, неподверженный перехвату? И легко не выясняется методом социнженерии?
                Вообще-то, всегда было, что логин, пароль ПЛЮС одноразовый код безопаснее. А у вас — просто фикция безопасности.
                  0
                  Если у аккаунта нет привязанного номера и при оформлении вы вводите телефон, который привязан к какому-либо аккаунту — использовать его не получится.
                  К аккаунту юр.лица можно привязать абсолютно любой номер для входа, а при оформлении использовать любой другой в качестве номера получателя. Так получится, даже если этот номер сейчас используется в другом аккаунте.

                  Как выше писал — в таком случае он останется верифицированным в аккаунте физ.лица, так как аккаунт юр.лица не пустой и там есть основной номер для входа.
                    0
                    Вообще-то, всегда было, что логин, пароль ПЛЮС одноразовый код безопаснее.

                    Вы правы — чем больше факторов, тем лучше (безопаснее). Но у самого фактора пароля есть длинная и обширная история проблем. В качестве второго фактора в такой схеме обычно используется либо всё тот же СМС-код, либо HOTP/TOTP-решения. У каждого из этих вариантов есть свои плюсы и минусы. Ниже в комментариях я постарался развёрнуто ответить по вопросу развития нашей системы аутентификации.

                      0
                      Ок, давайте в разрезе ИБ (хотя, конечно, моя квалификация после обучения за 15 лет в этой теме упала до нуля) поговорим о безопасности единственного фактора — одноразового пароля, который на большинстве смартфоном можно прочитать без проблем, ибо большая часть населения не будет настраивать такое удобное стандартное поведение смартфонов, как отображение текста поступающих сообщений на экране блокировки. Так что зная телефон другого человека я могу в тот момент, когда он отошёл от смартфона легко и непринужденно считать сий одноразовый код в момент его пересылки.
                        0

                        Физический доступ к устройству со знанием номера телефона жертвы — это, согласитесь, достаточно серьёзный фактор для реализации угрозы в контексте конкретного человека. Имея такой доступ, вы сможете многое. Но мы конечно принимаем во внимание и такие типы угроз, поэтому следите за нашими анонсами. Будем добавлять больше разных интересных фишек безопасности тут.

                          0
                          Физический доступ к ЗАБЛОКИРОВАННОМУ телефону людей на работе — совершенно не редкость. При этом его даже касаться не надо, лежит себе на шнурке зарядки и всё.
                          Узнать номер человека во времена, когда даже с курьерами в ватсапе общаются — три раза ХА.
                          Имея такой доступ, вы сможете многое.
                          войти на озон и личный кабинет оператора связи, да.
                          большинство прочих предпочитает добавлять секретную информацию
                            0

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


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

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


                            Но мы конечно принимаем во внимание и такие типы угроз, поэтому следите за нашими анонсами. Будем добавлять больше разных интересных фишек безопасности тут.
        0
        нашел self stored xss, а раскрутить не могу из-за заголовков referrer и origin. молодцы
          +2
          Ага, а еще бесит тот факт, что для входа на сайт оставили безальтернативный вариант по одноразовому SMS-коду, убрав пару «логин-пароль» в принципе. Но при этом и присылать SMS о поступлении заказа в ПВЗ тоже перестали — видимо, «экономика должна быть экономной», и чтобы компенсировать рассылку кодов для входа, реально полезные сообщения о доставке убрали
            –1
            Вход по смс-коду введён для дополнительной безопасности — это надёжнее, чем использование связки почта/пароль.
            Смс отправляем клиентам, но не по всем сценариям. Например о поступлении заказа в пункт выдачи или постамат можно узнать из почтового письма или push-уведомления от приложения.
            Больше 60% наших клиентов оформляют заказы через мобильное приложение и мы видим, что им удобно получать пуши.
            Мы следим за реакцией клиентов и собираем фидбек по частичной замене смс на письма и пуши, чтобы у нас было понимание, насколько это удобно/не удобно нашим клиентам.
            Такую практику используем уже больше месяца, пока не встретили негатива, но спасибо вам за обратную связь.
              +1
              Ага, а еще бесит тот факт, что для входа на сайт оставили безальтернативный вариант по одноразовому SMS-коду, убрав пару «логин-пароль» в принципе.

              Аутентификация с помощью логина и пароля уже давно считается небезопасной сама по себе и требует усиления с помощью 2FA. Если кратко, то человеку сложно придумать уникальный и достаточно стойкий пароль, также как и запомнить его. Парольные менеджеры конечно помогают, но этого не достаточно. Поэтому интернет-индустрия активно исследует и испытывает новые способы аутентификации, в том числе и безпарольные. Например, в рамках известного проекта FIDO2, о котором были материалы тут же на Хабре. Мы поддерживаем это движение и планируем дальше повышать безопасность системы аутентификации.

                0
                Только смс-ки, которые отображаются на экране заблокированного телефона как единственный способ входа в аккаунт без единственного хоть какого-то секрета (ибо телефонный номер им не является, да и адрес почты не помог бы) со стороны пользователя — никак не улучшают безопасность.
                Не, я точно никому не посоветую покупать у вас товары 18+ в связи с вашим подходом к безопасности аккаунта клиента.
                  0

                  Выше ответил касательно физического доступа к телефону.

                    0
                    Выше я указал, что подобный подход — профанация защиты.
                    И это я даже ещё на дошёл до пункта под названием:
                    «Номер смартфона пожизненно не привязан к человеку», о котором все такие сервисы регулярно забывают.
                    Или вы круче банков и после перевыпуска симки блокируете ЛК?
                      0

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

                        0
                        увы, но даже сейчас далеко не все банки блокируют ЛК после перевыпуска сим-карты

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

              Самое читаемое