Программа Bug Bounty: как «белые» хакеры могут помочь вашему бизнесу
В последнее время все чаще появляются новости об атаках хакеров на крупные организации. Согласно исследованию компании Cybersecurity Ventures , международного эксперта по информационной безопасности, в 2019 году кибератаки происходили каждые 14 секунд. Также Cybersecurity Ventures заявляют, что сумма планетарного ущерба от кибератак может вырасти до 6 трлн долларов к 2021 году.
Как обезопасить свой бизнес и не допустить взлом корпоративной сети и кражу данных? Одно из возможных решений проблемы — программа Bug Bounty. Опережай хакеров — обратись к «белым» хакерам!
Bug Bounty («вознаграждение за ошибку») — это программа, которая предусматривает денежное вознаграждение или другие бенефиты за нахождение багов, эксплойтов и уязвимостей в работе ПО. Программы Bug Bounty реализованы многими компаниями, в том числе Facebook, Google, Reddit, Apple, Microsoft и др.
Термины Инфобеза: Уязвимость, 0-Day, Эксплойт, Бэкдор, Bug Bounty
Благодаря Bug Bounty багхантеры могут получить неплохой доход. Например, размер одной из самых крупных наград составил 200 000 долларов: так компания Microsoft поблагодарила «белого» хакера за найденную уязвимость в Hyper-V. Apple готова заплатить 1 млн долларов за сообщения об уязвимостях, с помощью которых злоумышленник может осуществить сетевую атаку без участия пользователя, позволяющую выполнить код на уровне ядра с сохранением персистентности.
Способы запуска программы Bug Bounty
Компания может запустить подобную программу самостоятельно, своими силами организовав все процессы и взаимодействия. Опубликуйте на сайте информацию: приглашение участвовать, форму и размер вознаграждения, контактные данные. Дополнительно можно напоминать о Bug Bounty и клиентам в маркетинговых рассылках. За нахождение некритичного бага компании часто дарят мерч, скидки на свою продукцию или сертификаты.
Альтернативным решением может быть запуск внутренней программы Bug Bounty: в этом случае мы обращаемся к сотрудникам компании, лояльной и заинтересованной аудитории. За найденные баги заранее предусмотрите подарки сотрудникам и/или премии.
Еще один способ — обратиться к специальным платформам. На каждой такой площадке работает целое сообщество «белых» хакеров. Они предоставляют компании репорты (отчеты), в которых описаны найденные уязвимости и иногда необходимые шаги для их устранения.
Если вы решили сотрудничать с Bug Bounty платформой, предлагаем вам пару рекомендаций от экспертов Timeweb. Мы запустили Bug Bounty программу около года назад и продолжаем работать с багхантерами на одной из платформ. За это время мы получили около 70 репортов и исправили несколько критических уязвимостей.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Запускаем Bug Bounty на платформе
Баг Баунти для новичков или как начать в bug bounty? Техники и моя методика.
Подготовка
- Убедитесь, что вы сделали все, что могли
Перед запуском программы постарайтесь своими силами отыскать все возможные уязвимости. После этого можно обращаться к багхантерам. Конечно, найти самим все баги нереально , поэтому воспринимайте Баг Баунти как дополнительный способ поиска уязвимостей.
- Анализируйте экономическую целесообразность
А стоит ли вообще запускать Bug Bounty программу? Насколько это экономически обосновано? Готовы ли ваши продукты к тому, что сейчас на них накинется толпа голодных багхантеров? Есть и другие способы вытащить максимум уязвимостей.
Например, можно расширить компетенции своего отдела безопасности. Скорее всего, такой вариант будет дешевле, но он позволит найти меньше уязвимостей, чем Bug Bounty программа. Можно обратиться к внешним организациям для проведения аудита. Так вы обнаружите нестандартные, более сложные проблемы.
В случае сотрудничества с Bug Bounty платформами и багхантерами удельная стоимость одной уязвимости будет стоить дороже по сравнению с другими вариантами, но и сложность найденных багов здесь выше.
- Воспользуйтесь услугами внешнего аудита ИБ для одного процесса, продукта или компании в целом
Опционально, но перед запуском программы будет особенно полезно проанализировать все существующие проблемы. Кроме того, внешний аудит сэкономит вам деньги.
Старт Bug Bounty программы
Сейчас, получив опыт работы с Bug Bounty, мы рассматриваем возможность реализовать программу самостоятельно. Однако на момент запуска ни у кого из нас не было понимания, как правильно выстроить процесс, поэтому мы обратились за помощью к Bug Bounty платформам. Проанализировав существующие варианты, мы выбрали наиболее подходящий для нас, оптимальный по количеству багхантеров и стоимости услуг.
Наиболее известные Bug Bounty платформы:
- Hackerone
- Bugcrowd
- Synack
- HackenProof
- Intigriti
- YesWeHack
- Bugbounty Japan
- Отдельно стоит отметить платформу Open Bug Bounty — некоммерческая Bug Bounty платформа, которая объединяет ИБ специалистов-энтузиастов и популяризирует этичный хакинг. Исследователи могут сообщить о найденном баге в работе любого ПО, за что компании предоставляет вознаграждение (денежные выплаты, мерч, скидки или собственную продукцию). Timeweb предоставляет багхантерам бесплатный хостинг.
- Перелопатьте багтрекер
Важно вдоль и поперек знать продукт, который вы планируете отдать на растерзание багхантерам: какие проблемы есть сейчас, какие были, появляются ли систематические ошибки. Эта информация позволит вам сформировать корректный скоуп (scope) — емко, но исчерпывающе дать вводные данные и описать запрос для багхантеров.
В скоупе мы указываем: за какие баги предусмотрена награда, какие уязвимости нам уже известны, как зависит премия от критичности найденного бага и полноты репорта. В скоупе обозначается предметная область, границы тестирования и правила сотрудничества.
- Потратьте достаточно времени на скоуп
Чем больше, тем лучше! Скоуп своего рода публичная оферта с багхантерами. На ее основе решаются, например, все спорные инциденты.
Если все опишем тщательно и подробно — больше шансов получить то, что нам действительно нужно, а нерелевантных репортов, наоборот, будет меньше. Если сформировать скоуп невнимательно, придется платить награду за каждый мелкий и неинтересный баг.
- Не бойтесь устанавливать собственный уровень вознаграждения
Сразу отметим, что политики или лучших практик, как формировать размер награды, просто не существует. Да, можно обратиться к менеджерам Bug Bounty платформы, которые помогут и описать скоуп, и определить уровень вознаграждения. Однако нужно понимать, что это заинтересованные лица, и они опираются на опыт других компаний. При этом у вас могут быть совершенно другие проблемы, процессы и потребности.
Нам кажется, при определении размера вознаграждения стоит опираться на рекомендации, связанные с менеджментом рисков: оцените сложность поиска уязвимости в текущем продукте. Если продукт еще сырой, то и предлагать большую награду странно. При условии, что продукт на рынке давно и многие успели его изучить, можно назначить достойное вознаграждение.
- Установите прозрачную зависимость между критичностью ошибки и размером награды
Чем прозрачнее, тем меньше вопросов к вам! Хорошая практика — привязать размер награды к шкале CVSS (открытый стандарт для оценки критичности уязвимости). В Timeweb мы самостоятельно оцениваем критичность ситуации в зависимости от влияния на бизнес.
- Выработайте регламент работы с репортами
Заранее обсудите, кто за что отвечает: какой отдел проверяет репорт на валидность и релевантность; как быстро разработчики берут в работу репорты; как зависит эта скорость от критичности бага. Если не выработать регламент работы внутри компании, можно нарушить соглашение с платформой, провалить сроки и не успевать вовремя обрабатывать репорты от багхантеров.
Work in progress
- Будьте лояльны к хантерам
Здесь они ваши партнеры и помощники.
Соблюдайте соглашение с платформой, вовремя реагируйте на репорты и награждайте багхантеров за хорошую работу.
Да, мы все люди, и хантеры тоже могут хитрить и лукавить, выдавая одну проблему за разные уязвимости. Будьте внимательны! Важно оговорить, что является одной уязвимостью, а что разными, и подробно описать скоуп, чтобы избежать подобных конфликтов.
Если вы пока не готовы запускать большую кампанию и выделять большой бюджет на работу с Bug Bounty платформами, попробуйте начать с малого: например, эффективно обрабатывать обратную связь от клиентов и использовать ее на благо компании. Подарки или другие вознаграждения в таком случае будут приятным бонусом для пользователей.
Источник: timeweb.com
Легкий способ заработать на Bug Bounty
Наверняка вы уже не раз слышали выражение «багхантинг», и я уверен, что вы бы не отказались заработать пару-тройку сотен (а то и тысяч) долларов, найдя в чужой программе потенциальную уязвимость. В этой статье я расскажу о трюке, который поможет исследовать проекты с открытым исходным кодом на наличие таких уязвимостей.
Bug Bounties on Free and Open Source Software — что это такое?
Bug Bounty — это общее название для различных программ, в которых разработчики сайтов и программного обеспечения предлагают денежные вознаграждения за нахождение багов и уязвимостей. Помимо весьма известных Bug Bounty программ от крупных корпораций типа Apple или Microsoft, существуют также программы по поиску уязвимостей в проектах с открытым исходным кодом.
Многие из них можно найти на HackerOne, но, пожалуй, самым крупным является FOSSA — Free and Open Source Software Audit. Это программа по поиску уязвимостей в различных открытых проектах, спонсируемая Европейским Союзом. Суммарный призовой фонд представляет собой внушительную сумму — аж 850 000 евро!
Как принять участие?
Для начала нужно зарегистрироваться на HackerOne. Нам будут нужны именно те проекты, которые имеют открытый исходный код. На HackerOne есть целый список.
Если же есть желание поучаствовать в Bug Bounty от Европейского союза — список проектов, участвующих в этой программе, можно найти вот здесь. Для большинства проектов будет достаточно быть зарегистрированным на HackerOne, но многие их приведенных в том списке программ находятся на сайте intigriti.com.
Чтобы принять участие, необходимо выбрать подходящий для себя проект, а затем внимательно прочитать условия участия. Если они вас удовлетворяют — значит, настала пора практики.
Чтобы найти уязвимость и получить свои деньги, нужно будет всего лишь скачать проект (или клонировать его с GitHub) и тщательно проанализировать каждую строчку кода, исследуя каждое выражение на предмет потенциальных ошибок. Если найдёте что-нибудь, что может повлиять на безопасность программы — оформляйте это в отчет и присылайте разработчикам. Если они оценят вашу находку как стоящую поощрения — ваши денежки у вас в кармане :).
Подождите, а где легкость?
А легкость заключается в том, что анализировать код исключительно вручную вовсе не обязательно. Существуют инструменты, позволяющие искать ошибки в коде в автоматическом режиме. Например — статические анализаторы кода. Я предпочитаю использовать нашу разработку – PVS-Studio. Анализатор PVS-Studio способен находить ошибки в коде, написанном на C++, C# и Java, а также имеет удобный интерфейс.
Помимо этого, есть несколько вариантов его бесплатного использования. Также существует и множество других анализаторов кода.
Конечно, статические анализаторы могут выявить далеко не все ошибки. Да и бог с ними! Ведь перед нами стоит цель найти ошибки быстро и просто, а не найти их все.
После того, как проект скачан и собран, будет достаточно сделать лишь пару кликов, чтобы запустить анализ. Результатом его будет отчет с некоторым (как правило, немалым) количеством сгенерированных анализатором предупреждений. В PVS-Studio они классифицируются на три уровня достоверности. Начинать стоит с предупреждений первого уровня, поэтому оранжевый и желтый уровни можно отфильтровать из результата анализа.
Пример фильтрации результатов анализа. Кликните на картинку для увеличения.
Таким образом, останется лишь просмотреть оставшиеся предупреждения и выбрать из них те места, которые могут представлять собой наибольшую опасность. Стоит обязательно проверить, можно ли воспроизвести какую-либо из них непосредственно во время работы программы. Если у вас получится это сделать — это не только увеличит шансы на то, что разработчики примут отчет, но и наверняка увеличит сумму выплаты. В этом деле наглядность — ваш лучший друг.
Также стоит подумать, не влияет ли найденная ошибка на безопасность программы. Ведь в этом случае выплаченная вам сумма будет в несколько раз больше 🙂
На скриншоте показан интерфейс Visual Studio. Однако, пусть это не вводит вас в заблуждение. Анализатор можно использовать не только как плагин для Visual Studio, но и самостоятельно, в том числе в среде Linux и macOS.
Плюсы данного подхода
Во-первых, использование статического анализатора — это один из самых простых способов поиска ошибок. Чтобы использовать анализаторы кода, вовсе не обязательно обладать какими-то специальными знаниями: достаточно лишь разбираться в языке, на котором написан проверяемый код.
Во-вторых, анализаторы внимательны. Они не устают и не теряют бдительности, в отличие от человека. Поэтому с помощью них можно анализировать сколь угодно большие базы кода с практически минимальными затратами.
В-третьих, анализаторы зачастую обладают большим знанием, чем человек. Что это значит? Давайте я поясню свою мысль на примере кода из ядра Android:
static void FwdLockGlue_InitializeRoundKeys() < unsigned char keyEncryptionKey[KEY_SIZE]; . memset(keyEncryptionKey, 0, KEY_SIZE); // Zero out key data. >
Казалось бы, где здесь может быть ошибка?
Оказывается, компилятор, видя, что массив keyEncryptionKey больше нигде не используется, может оптимизировать код и удалить из него вызов функции memset. Причем делать это он будет только при сборке в конфигурации release. Всё бы ничего, да только ключ шифрования на какое-то время останется в оперативной памяти незатёртым, благодаря чему он может быть получен злоумышленником. Настоящая брешь в безопасности!
И ведь найти эту ошибку самому практически невозможно: в режиме отладки вызов memset работает нормально. Да и тесты для этого особо и не напишешь. Остается об этой фиче только знать и помнить самому.
А что, если об этой фиче не знают разработчики проекта? Что, если при поиске багов об этой фиче не будете знать и вы? Анализатору это не важно, потому что у него есть диагностика V597, поэтому во время просмотра отчета вы обязательно о ней узнаете.
Наконец, в-четвертых. Один из самых полезных плюсов применения статического анализа при участии в погоне за Bug Bounty — это скорость. Да, с помощью него можно проверить два, три, четыре проекта за вечер — но это еще не всё.
Самое главное, что вы можете быть первым. Пока за нахождение багов в каком-либо проекте предлагается награда, проект продолжает дорабатываться и развиваться. Разработчики выкатывают новые релизы и новые фичи, а вместе с ними приходят новый код и новые просторы для ошибок. При использовании описанного мной подхода можно будет прицельно рассматривать новые ошибки и потенциальные уязвимости в первый же день их выхода в свет.
Потенциальные уязвимости
Внимательный читатель может озадачиться:
Стоп, стоп! С одной стороны, говорится об поиске в коде ошибок в программах, с другой стороны упоминаются потенциальные уязвимости. Более того, уязвимости более интересны с точки Bug Bounty. Прошу пояснить!
Дело в том, что ошибки и потенциальные уязвимости – это, по сути, одно и тоже. Конечно, только немногие ошибки/потенциальные уязвимости при дальнейшем исследовании могут оказываются настоящими уязвимостями. Однако, безобидный ляп и серьезная уязвимость может выглядеть в коде совершенно одинаково. В статье «Как PVS-Studio может помочь в поиске уязвимостей?» приводитсся несколько таких (на первый взгляд обыкновенных) ошибок, которые, как теперь известно, являются уязвимостями.
Кстати, согласно докладу National Institute of Standards and Technology (NIST), около 64% уязвимостей в приложениях, связаны именно с программными ошибками, а не с недостатками системы безопасности (not a lack of security features).
Так что уверенно берите в руки PVS-Studio и приступайте к поиску ошибок и дефектов безопасности! В этом, кстати, вам поможет классификация предупреждений согласно CWE.
Заключение
Надеюсь, я помог читателю в поисках того самого бага, который принесет ему немного признания и денежного вознаграждения. Уверен, что статический анализ им в этом поможет! Помните, что у разработчиков, как правило, нет времени на детальный анализ найденных ошибок, поэтому вам еще предстоит доказать, что ваша находка действительно может повлиять на работу программы. Лучшим способом будет наглядно её воспроизвести. И помните: чем сильнее баг в коде может нарушить безопасность, тем больше за неё заплатят.
На этом, пожалуй, всё. Желаю удачи в поисках награды!
Источник: pvs-studio.com
Самые высокооплачиваемые Bug Bounty программы
Bug Bounty — это программа, предлагаемая многими веб-сайтами и разработчиками программного обеспечения, с помощью которой люди могут получить признание и вознаграждение за нахождение ошибок. Эти программы позволяют разработчикам обнаружить и устранить ошибки, прежде чем широкая общественность узнает о них, предотвращая случаи массовых злоупотреблений. С определением разобрались, теперь давайте взглянем на топ-10 программ Bug Bounty.
1. Apple
На момент запуска программы Bug Bounty от Apple, доступ к ней имел ограниченный круг лиц, но в 2016 году она стала доступна всем желающим. У вознаграждений нет фиксированного потолка, и, кроме того, компания готова заплатить 100,000 $ тому, кто сможет получить доступ к данным, защищённым технологией Apple Secure Enclave. Самая высокая награда составила 200,000 $ за нахождение дыр в безопасности этой технологии.
2. Microsoft
Официально запущенная 23 сентября 2014 года программа Microsoft касается только онлайн-сервисов. К сожалению, награда полагается только за важные и критические уязвимости. Минимальное вознаграждение за критические уязвимости составляет 15,000 $, а максимальное — 250,000 $.
3. Facebook Whitehat
В рамках Bug Bounty программы от Facebook, пользователи могут сообщать о проблемах с безопасностью в Facebook, Instagram, Atlas, WhatsApp и других сервисах компании. Тем не менее, если отчёт о проблеме не соответствует правилам, то Facebook может инициировать судебный иск. Потолка у вознаграждений нет, а минимальная выплата составляет 500 $.
4. Google Vulnerability Reward Program
Под программу Bug Bounty от Google попадают все веб-сервисы компании, которые имеют дело с конфиденциальными данными пользователей: Google, YouTube, Blogger. За них платят от 100 $ до 31,337 $. Также можно искать уязвимости и в других продуктах Google, таких как Chrome и Android, за которые готовы заплатить вплоть до 200,000 $.
5. Intel
Bug Bounty программа от Intel в основном ориентирована на аппаратное обеспечение, прошивку и программное обеспечение компании. К сожалению, в неё не входят недавние приобретения компании, веб-инфраструкутра, сторонние продукты или что-либо, связанное с McAfee. Максимальное вознаграждение за критические уязвимости составляет 250,000 $, минимальное — 500 $.
6. Twitter
Twitter даёт возможность исследователям безопасности сообщать о возможных уязвимостях и поощряет их согласно своей программе Bug Bounty. Минимальное вознаграждение составляет 140 $, а максимальное — 15,000 $.
7. Avast
Avast платит за обнаружение уязвимостей вроде удалённого выполнения кода, повышения привилегий, DoS и обхода сканера. Выплаты составляют от 400 $ до 10,000 $, хотя могут заплатить и больше.
8. Yahoo
Yahoo платит до 15,000 $ за нахождение уязвимостей в своей системе, однако компания не предлагает вознаграждение за поиск уязвимостей в yahoo.net, Yahoo7, Yahoo Japan, Onwander и блоги Yahoo на WordPress. Также Yahoo не устанавливает конкретной минимальной выплаты.
9. Mozilla
Mozilla платит за найденные уязвимости в своих продуктах вроде Firefox, Thunderbird и других. Минимальное вознаграждение составляет 500 $, а максимальное может достигать 10,000 $ и больше.
10. GitHub
В 2013 году у GitHub появилась своя программа Bug Bounty. Кроме выплат исследователи получают очки за найденные уязвимости и продвигаются выше по соревновательной таблице. Тем не менее, вознаграждение полагается только тем, кто не нарушил установленных правил. GitHub платит от 555 $ до 20,000 $.
Источник: tproger.ru
Как начать работу с Bug Bounty?
Программы Bug Bounty — отличный способ для компаний добавить уровень защиты к своим онлайн-активам. Программа bug bounty — это краудсорсинговая программа тестирования на проникновение, которая вознаграждает за обнаружение ошибок безопасности и способы их использования. Для исследователей или профессионалов в области кибербезопасности это отличный способ проверить свои навыки на различных целях и получить хорошую оплату в случае обнаружения уязвимостей в системе безопасности. Число компаний, имеющих официальную краудсорсинговую программу, растет, как и людей, которые хотят стать внештатными тестерами на проникновение. У честолюбивых охотников за головами есть много разных знаний, опыта и уровней навыков.
Некоторые из них совершенно не знакомы с идеей веб-разработки с небольшим опытом программирования, некоторые являются опытными веб-разработчиками без опыта в области кибербезопасности, а некоторые являются высококвалифицированными специалистами в области кибербезопасности. Шаги, которые следует предпринять, одинаковы для всех, однако можно пропустить один или несколько шагов в зависимости от его / ее навыков и опыта. Популярность программ bug bounty среди компаний может быть
- Geeksforgeeks.org
- Coursera
- Edx.org
- Удеми
- Сеть: подход сверху вниз
- TCP / IP для чайников
- cybrary.it
- GeeksforGeeks.org
- Справочник хакера веб-приложений (книга)
- HTTP: полное руководство
- w3schools.com
- Книги и чтение в Интернете:
- Справочник хакера веб-приложений
- Освоение современного тестирования на проникновение веб-приложений
- Веб-взлом 101
- Hacker101.com
- Университет BugCrowd
- Компьютерил
- Jackks
- Thenewboston
- Bugcrowd
- Owasp.Org
- GeeksforGeeks.org
- Cybrary.it
- Hackernoon.com
- Portswigger.net
- PentesterLab.com
- Уязвимые веб-приложения: это намеренно уязвимые виртуальные машины или пакеты веб-приложений. Уязвимые веб-приложения доступны как общие варианты, содержащие множество типов уязвимостей, так и отдельные варианты, ориентированные на одну уязвимость и ее тонкости. Вот несколько примеров:
- BWapp
- DVWA
- OWASP Webgoat
- Циклонные передачи
- Кирпичи
- Проект безопасности бабочки
- Hacme
- Магазин соков
- Рельсы Коза
- SQLol
- Твиттер
- Verizon
- Starbucks
- Shopify
- Spotify
- яблоко
- Mail.ru
- Яндекс.Ру
- Каталог программ Hackerone
- Список программ BugCrowd
- Франс Розен
- Джейсон Хэддикс
- Geekboy
- PortSwigger
- Джоберт Абма
Источник: progler.ru