Об охоте на «насекомых»: программа bug bounty в Одноклассниках

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


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



История программы


Участвовать в нашей программе могут все желающие. Основная задача — найти и обезвредить ошибки в сфере безопасности и приватности в Одноклассниках. Вы можете присылать нам свои bug report«ы, и мы обязательно их изучим, исправим и выплатим вознаграждение. Награда вручается за сообщение о неизвестной нам ранее проблеме с безопасностью в Одноклассниках. Идеальный отчет написан кратко, по делу, содержит сценарий воспроизведения или proof of concept и не является копипастой из сканеров уязвимостей. Подробнее о правилах — на нашей странице в HackerOne.


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


С тех пор появился американский стартап HackerOne. Это платформа, своеобразная социальная сеть, для специалистов по безопасности со встроенным трекером задач и платёжной платформой. Этот проект призван объединить авторов ПО и охотников за ошибками и берет на себя всю организационную часть процесса.


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


Преступники не дремлют


Итак, мы добровольно пригласили толпу хакеров искать уязвимости в Одноклассниках. Для нас, в общем-то, ситуация почти не поменялась: нас постоянно атакуют далеко не только багхантеры. Мы постоянно боремся с вредоносной активностью, с теми, кто наносит ущерб нашим пользователям. Но сложившуюся ситуацию нельзя назвать характерной только для Одноклассников, так живут все популярные ресурсы. Взлом аккаунтов, кража персональных данных и рассылка спама — прибыльный бизнес. Так что нельзя сказать, что до запуска Bug Bounty мы жили спокойно.


Особенности поиска уязвимостей



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


b52d39206c0f4a4c9fbfd700b576f65f.png

кто-то запустил Acunetix


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


Cпециальных условий искателям уязвимостей мы не предоставляем. Они пытают счастья в обычном режиме, для наших систем безопасности их изыскания ничем не отличаются от атак злоумышленников.
Система мониторинга также подверглась «тестированию» в рамках публичного поиска уязвимостей и прошла испытание достойно: все успешные попытки атак, так или иначе затрагивающих инфраструктуру, например DOS и SSRF, были выявлены еще до того как нам присылали соответствующий отчет.


Первые результаты


На сегодняшний день, спустя почти год после запуска программы, нам приходит порядка десяти отчётов в неделю. А в первые две недели мы получили около 700 (сиреневый график).


5d8a4d33cb2543bdb2f979fca1ce502f.png
  • New — это новые присланные отчёты;
  • Triaged — проверенные нами и поставленные в очередь на исправление;
  • Resolved — исправленные баги.

Запуская программу, мы были готовы к всплеску. У нас был не только свой опыт проведения bug bounty, но и опыт Mail.Ru Group, запустивших поиск уязвимостей в 2014 году. Но отклик превзошел наши ожидания и в первый месяц мы едва справлялись, обрабатывая отчёты и отвечая на них.
Ожидаемо, большая часть отчетов в первые недели представляла собой стандартные тексты о ложных срабатываниях популярных сканеров уязвимости и ценности не представляла.
Тем не менее, мы получили и полезные данные. За первый месяц работы программы мы завели тикеты примерно на 50 багов разной степени критичности.


Был и забавный случай: накануне запуска программы хранимая XSS обошла двухэтапный процесс ревью кода, ручное тестирование и автоматическое сканирование и проникла в продакшн. Мы получили 11 отчетов об этом баге за полтора дня, своеобразный бенчмарк для новой программы.
Также мы получили несколько интересных отчётов об уязвимостях в старых неиспользуемых версиях кода, сценарии атак на нас через баги в экзотических браузерах и даже сообщения о неопубликованных проблемах (0day) в используемых нами библиотеках.


Трудовые будни охотников за уязвимостями


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


17f7792f7df742669edcaf42dec3c2a6.png

Новый присланный баг (New) проходит процесс проверки: отсеиваются ошибочные отчеты и дубликаты, проблема воспроизводится и анализируется. Мы оцениваем вероятность эксплуатации и возможный ущерб, иногда уточняем дополнительные детали у приславшего. Если проблема подтверждается, заявка переходит в статус Triaged и передается разработчикам. Соотношение хороших и плохих отчетов, а также время, требуемое на принятие решения и исправление, можно оценить на графике сверху


Занятная энтомология


Каких же «насекомых» отыскали участники?


Помимо стандартного набора из OWASP Top 10, мы получили и весьма занятные отчеты. Перечислю самые запомнившиеся:


  • способ купить внутреннюю валюту Одноклассников дешевле официального курса, ставший возможным из-за ошибки округления (4lemon)
  • обход csrf токенов в заголовках путем эксплуатации открытого перенаправления (ragnar)
  • обход same origin policy на основном домене с помощью уязвимой флешки на CDN домене (zoczus)

Итоги


За год работы мы получили от участников 1328 сообщений. В сумме 143 хакера и 167 настоящих уязвимостей разной степени критичности. Могли ли мы организовать равноценный по масштабу и эффективности аудит внутри компании? Очевидно нет.
Из этого я смело делаю вывод, что наша затея вышла успешной. Если у вас есть вопросы или хотите поделиться своим опытом — пишите в комментариях!

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

  • 9 августа 2016 в 14:43

    +1

    А какая статистика оплат по уязвимостям?

© Habrahabr.ru