Мы запустили публичную 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 митапа можно почитать у нас в блоге.
Запасаемся кофе и удачного хакинга!
Am0ralist
Вы б лучше дали по башке тому уникальному человеку, который предложил регать юрлица через номер смартфона, причем если оного у юрлица нет, то пусть типа регается на номер сотрудника методом удаления сего номера из личного профиля человека на озоне.
Не, ну серьезно, Озон, вы там специально выдумывали самый идиотский способ регистрации юрлица на сайте? А то до надежности площадки даже доходить не хочется при таком подходе к людям.
gektor2510
Добрый день, я из Ozon.
Регистрация у юр.лиц проходит в два этапа — ввод ИНН с проверкой, ввод номера телефона.
Вы правы, один номер телефона использовать на два аккаунта (физ.лицо и юр.лицо) не получится.
Почему так? Верификация аккаунтов по номеру телефона была введена для безопасности аккаунтов наших клиентов — чтобы злоумышленники не могли попасть в аккаунт без кода из СМС-сообщения.
Подумаем над возможностью заводить два разных типа аккаунтов на один номер, спасибо за фидбек.
Am0ralist
Ага, ровно поэтому в вашей же ТП сказано, что после заведения можно будет удалить этот номер нафиг.
Ну серьезно, с десятками интернет магазинов работали — ни в одном такого современного решения не было, чтоб отбить желания работать.
gektor2510
Удалить номер из учётной записи конечно же можно, но при оформлении заказа нужно будет указать новый номер и он будет к учётной записи привязан.
Лучше выбрать один номер, который будет использоваться в учётной записи юридического лица и не отвязывать его.
Процесс верификации точно останется таким же, но мы подумаем над разделением в системе аккаунтов физ.лиц и юр.лиц таким образом, чтобы на один номер можно было завести по одному аккаунту разного типа.
Am0ralist
А, то есть ещё и ваша ТП при этом меня нагло вводила в заблуждение, тем что я смогу потом свой номер вернуть своему аккаунту, а при заказе указывать любой номер?
Скажите, вот серьезно, по какому закону РФ юрлица обязаны иметь даже не просто номер телефона, а мобильный номер телефона? И уж тем более не будут привязываться номера, по которым идёт общение с банком, например. Потому что вы — не банк и не гарантируете конфидециальности.
Кому вообще такое в голову пришло? Ну серьезно, открываем ваших конкурентов: Ситилинк, Онлайнтрейд. Нигде номер телефона не используется, и никакой защиты он не даст свыше пароля и эмейла, ни для вас (привет симки у метро), ни для клиента. При этом обе конторы спокойно на каждый заказ по два-три номера привязывают, хоть каждый раз разные, и заказы доставляют без проблем.
PS. Не буду голословным:
gektor2510
Объясню процесс чуть глубже.
Теоретически да, вы можете зарегистрироваться с одним номером телефона, после чего отвязать его и оформлять заказ с другим номером. В момент оформления заказа с другим номером, привяжется к аккаунту именно он.
К аккаунту в любом случае должен быть привязан один номер телефона, так как при входе на сайт нужно подтверждение владельца аккаунта по коду из смс.
Одновременно на один телефон привязать несколько аккаунтов нельзя, также нельзя использовать несколько телефонов для входа в один аккаунт — вход будет по одному верифицированному номеру, а номер получателя в заказах может быть любой, он не влияет на вход в учётную запись.
Понимаю, что это может быть несколько неудобно, но повторюсь, что подтвреждение по коду из смс безопаснее, чем вход по связке логин/пароль.
Am0ralist
Угу, смс же у нас гарантированный протокол передачи данных, неподверженный перехвату? И легко не выясняется методом социнженерии?
Вообще-то, всегда было, что логин, пароль ПЛЮС одноразовый код безопаснее. А у вас — просто фикция безопасности.
gektor2510
Если у аккаунта нет привязанного номера и при оформлении вы вводите телефон, который привязан к какому-либо аккаунту — использовать его не получится.
К аккаунту юр.лица можно привязать абсолютно любой номер для входа, а при оформлении использовать любой другой в качестве номера получателя. Так получится, даже если этот номер сейчас используется в другом аккаунте.
Как выше писал — в таком случае он останется верифицированным в аккаунте физ.лица, так как аккаунт юр.лица не пустой и там есть основной номер для входа.
oxdef
Вы правы — чем больше факторов, тем лучше (безопаснее). Но у самого фактора пароля есть длинная и обширная история проблем. В качестве второго фактора в такой схеме обычно используется либо всё тот же СМС-код, либо HOTP/TOTP-решения. У каждого из этих вариантов есть свои плюсы и минусы. Ниже в комментариях я постарался развёрнуто ответить по вопросу развития нашей системы аутентификации.
Am0ralist
Ок, давайте в разрезе ИБ (хотя, конечно, моя квалификация после обучения за 15 лет в этой теме упала до нуля) поговорим о безопасности единственного фактора — одноразового пароля, который на большинстве смартфоном можно прочитать без проблем, ибо большая часть населения не будет настраивать такое удобное стандартное поведение смартфонов, как отображение текста поступающих сообщений на экране блокировки. Так что зная телефон другого человека я могу в тот момент, когда он отошёл от смартфона легко и непринужденно считать сий одноразовый код в момент его пересылки.
oxdef
Физический доступ к устройству со знанием номера телефона жертвы — это, согласитесь, достаточно серьёзный фактор для реализации угрозы в контексте конкретного человека. Имея такой доступ, вы сможете многое. Но мы конечно принимаем во внимание и такие типы угроз, поэтому следите за нашими анонсами. Будем добавлять больше разных интересных фишек безопасности тут.
Am0ralist
Физический доступ к ЗАБЛОКИРОВАННОМУ телефону людей на работе — совершенно не редкость. При этом его даже касаться не надо, лежит себе на шнурке зарядки и всё.
войти на озон и личный кабинет оператора связи, да.Узнать номер человека во времена, когда даже с курьерами в ватсапе общаются — три раза ХА.
большинство прочих предпочитает добавлять секретную информацию
oxdef
Давайте всё-таки определимся, что и как мы сравниваем в контексте безопасности. Вероятность и сложность угрозы с физическим доступом к личному устройству просто не сопоставимы с таковыми при получения злонамеренного доступа к учётной записи из-за проблем парольной аутентификации. Особенно в контексте атак на большое количество пользователей и удобства сценария аутентификации для них же.
А также получить доступ (на разном уровне) к куче мессенджеров и других популярных приложений, к кодам банковских приложений и восстановлению аккаунтов на других сервисах, а также просто попробовать тогда и сразу разблокировать устройство, раз уж оно оказалось у вас в руках. При этом я специально выше явным образом обозначил, что: