В чём отличие программ по поиску уязвимостей (Bug Bounty) от пентестов и Red Teaming? Какие возможности предоставляют заказчикам российские платформы Bug Bounty в сравнении с ушедшей HackerOne? Как измерить эффективность от проведения Bug Bounty? Как правильно заложить бюджет и сколько реально могут заработать хакеры? Как добиться того, чтобы программа Bug Bounty принесла фактическую пользу компании, а не стала проявлением «бледного» пиара, который не принёс никаких плодов?
- Введение
- Что такое программа Bug Bounty?
- Кто становится заказчиком программ Bug Bounty?
- Почему нельзя просто привлечь экспертов по безопасности?
- Публичные и непубличные (приватные) программы Bug Bounty
- Оценка эффективности программ Bug Bounty
- Сколько можно заработать на Bug Bounty?
- Другие стимулы для исследователей
- Исследователи в программах Bug Bounty: кто они?
- Пентестеры и специалисты по поиску багов
- Риски в программах Bug Bounty
- Как сделать инициативу Bug Bounty привлекательной для компаний?
- Как планировать бюджет инициативы Bug Bounty?
- Выводы
Введение
12 мая прошёл очередной эфир AM Live. На этот раз он был посвящён обсуждению популярной опции при разработке крупных программ — запуска инициатив Bug Bounty. Их участники получают легальную возможность заработать немалые деньги (от 1 до 100 тыс. долларов США, а иногда и более), выполнив задание, связанное с поиском уязвимостей / багов в определённой программе или инфраструктуре. Обнаружив баг, достаточно описать его и предоставить отчёт, за который можно получить вознаграждение. Очень заманчиво и просто.
Приглашённые на эфир эксперты рассказали, как выстраивается процесс, насколько реально заработать немалые деньги, кто участвует в этих программах. Но главное — они объяснили, почему компаниям выгодно участвовать в подобных инициативах и почему они готовы платить такие огромные деньги.
Ранее мы в рамках проекта AM Live анализировали, кому и зачем нужен пентест и как правильно выбрать пентестера. Также вам наверняка будет интересно ознакомиться с нашим обзором рынка услуг тестирования на проникновение.
В дискуссии приняли участие:
- Ярослав Бабин, руководитель продукта The Standoff, Positive Technologies.
- Лука Сафонов, технический директор компании «Синклит».
- Дмитрий Шмойлов, руководитель отдела безопасности программного обеспечения, «Лаборатория Касперского».
- Алексей Гришин, руководитель программы Bug Bounty, VK.
- Илья Сафронов, директор по информационной безопасности (CISO) Delivery Club.
Модератором дискуссии выступил Илья Шабанов, генеральный директор аналитического центра Anti-Malware.ru.
Что такое программа Bug Bounty?
Инициатива Bug Bounty предоставляет всем желающим возможность принять участие в поиске уязвимостей заданного типа. Поиск ведётся в продуктах или в инфраструктуре, выставленных заказчиком для теста. Объявления о таких программах обычно появляются на специальных площадках, которые становятся посредниками между хакерами / исследователями и заказчиком.
«Исследователь получает в своё распоряжение описание политик, список правил, описание того, что можно и что нельзя делать с инфраструктурой и набором приложений. В политиках описывается, как хакер может прийти на “объект” и что может делать / ломать» (Ярослав Бабин).
Соглашаясь с этими правилами, можно в удобное время выполнить задание. Обнаружив баг, следует отослать отчёт на площадку. Заказчик проводит анализ, оценивает уровень обнаруженной угрозы и выплачивает вознаграждение.
Расценки по багам известны заранее. Деньги получает только тот хакер, который первым сообщил об обнаруженной уязвимости.
Кто становится заказчиком программ Bug Bounty?
«Участие в программах Bug Bounty характерно только для крупных компаний со зрелыми процессами ИБ, выстроенными политиками и внутренними регламентами. У небольших компаний нет таких бюджетов, которые способны привлечь хакеров» (Лука Сафонов).
Участие в таких инициативах не заменяет компаниям использования других методов оценки безопасности: аудита и пр. По сути, принятое решение об участии становится публичным заявлением для рынка: компания достигла высокого уровня разработки и готова выставить свой продукт для независимой оценки.
Участие даёт возможность реализовать «краудсорсинг в безопасности, когда продукт оценивается в условиях реальной практики. Это позволяет реально оценить продукт с точки зрения рынка, не ограничиваясь только мнением собственной группы разработчиков» (Дмитрий Шмойлов).
Появление опции Bug Bounty отражает следование современным подходам к организации разработки, достигнутый компанией уровень рыночной культуры. Участие позволяет сформировать поток собираемой информации о багах и исправлять их заранее, без значительного ущерба.
«Участие в таких программах положительно влияет на создание положительного имиджа. Он формируется в профессиональных кругах, на форумах. Это — своеобразный маркетинг в профессиональной среде» (Дмитрий Шмойлов).
Почему нельзя просто привлечь экспертов по безопасности?
Возникновение инициатив Bug Bounty объясняется вполне обыденными причинами. «Как показывает практика, привлечение к поиску багов индивидуальных хакеров часто приводит к вымогательству с их стороны. Кто-то нашёл что-то и начинает требовать немыслимых денег за информацию, раскрыть которую заранее он отказывается. Иначе он угрожает распространить сведения о баге по всем форумам и телеграм-каналам, переходя к угрозам и не предоставляя достоверных данных об обнаруженной уязвимости. В такой ситуации невозможно провести анализ, невозможно определить реальную цену» (Лука Сафонов).
Без программ Bug Bounty нельзя рассчитывать на высокую культуру хакеров. Её формируют именно эти инициативы. До них поведение хакера определяется тем, что даже имея на руках реальный баг, он лишён всяких гарантий получения платы за свой труд. Более того, любые попытки надавить на менеджмент, угрозы разглашения информации об уязвимости в случае отказа от обещанной платы порождают обвинения в вымогательстве. Это — уже статья УК.
«Появление Bug Bounty становится катализатором развития культуры на рынке. Эти площадки привлекают опытных специалистов в области безопасности, которые могут найти здесь интересную работу» (Ярослав Бабин).
Это имеет ценность и для компаний. Взамен получения сведений о случайных, единичных багах создаётся поток собираемой полезной информации. Он позволяет достичь уверенности в созданном продукте, подталкивает к выстраиванию процессов в компании, проведению широкого анализа. Это помогает своевременно выявить большинство недочётов и избавиться от системных ошибок.
Рисунок 1. Оценка уязвимости продуктов в рамках программы Bug Bounty
Публичные и непубличные (приватные) программы Bug Bounty
Многим хорошо известны прежде всего публичные платформы Bug Bounty, когда компании объявляют о готовности выплатить вознаграждение за найденные баги. Такие акции проводятся на публичных, известных платформах, которые способны привлечь большое количество хакеров и обеспечить широкий охват поиска.
Публичные платформы формируют рынок поиска багов для ИБ. Они помогают новичкам быстро вырасти профессионально и набрать необходимый опыт. Привлекательным становится также объявление крупных сумм вознаграждений, хотя получить их непросто.
Участие в публичных программах с большим наплывом хакеров приносит исследователям в первую очередь профессиональный рост. Чтобы получить вознаграждение, надо суметь найти баг и успеть первым сообщить об этом.
На рынке существуют также и приватные платформы Bug Bounty. «Исследователей отбирает сам вендор, который предоставляет им эксклюзивный доступ для оценки. В список избранных попадают высококвалифицированные, известные хакеры. Благодаря им многие программы вычищаются от большинства уязвимостей. Это делается максимально быстро» (Ярослав Бабин).
«Приватная программа Bug Bounty позволяет собрать максимальный “улов” доступных багов. Публичная программа помогает выявить эксклюзивные ошибки, которые не очевидны ни разработчикам программ, ни специалистам по ИБ» (Лука Сафонов).
Рисунок 2. Выбор платформы Bug Bounty
Оценка эффективности программ Bug Bounty
«Главное достоинство программ Bug Bounty состоит в следующем. Хотя обнаружить одну и ту же ошибку могут сразу десять исследователей, компания обязана заплатить только первому из них. Это позволяет избавиться от ошибок с максимальной эффективностью, потому что при любых других формах тестирования пришлось бы заплатить всем 10 участникам» (Лука Сафонов).
Но следует принять во внимание и обратный эффект. «Публичное участие в Bug Bounty, скорее всего, приведёт к тому, что количество выявленных багов возрастёт, а не сократится. Этого не стоит бояться: на компанию стали смотреть с разных углов зрения, которые раньше не принимались во внимание» (Алексей Гришин).
Встречаются инциденты разных типов. Простое выявление и устранение багов не означает повышения уровня защищённости. «Оценка безопасности по количеству обнаруженных уязвимостей не является корректной. Положительный эффект состоит в том, что разработчик внедряет правильный процесс контроля безопасности. Участие в Bug Bounty повышает уровень зрелости компании, её команды разработчиков, системы защиты. Вся компания выигрывает в целом, она становится более зрелой и безопасной» (Алексей Гришин).
Сколько можно заработать на Bug Bounty?
До сих пор самой известной площадкой для исследователей была HackerOne. Однако из-за сложностей в получении вознаграждений с калифорнийской площадки теперь внимание в России приковано к локальным ресурсам.
«Самые щедрые вознаграждения на российском рынке предлагала, если не ошибаюсь, VK. Они обещали выплату 70 000 долларов за обнаружение ошибки уровня RCE (Remote Code Execution), как на площадке HackerOne.
Telegram обещал выплачивать до 200 000 долларов за баг. Но реально я получил там 1 500 долларов. Больше в этой программе я не участвовал. Apple также обещала выплатить до 200 000 долларов, но хотя отправленный репорт разместили в общем списке, сделать выплату они отказались. Приличный заработок даёт в первую очередь участие в приватных программах Bug Bounty. Например, в одной из них я получил 10 000 долларов. Кто платит, тот и получает приток багхантеров.
Был случай, когда я нашёл уязвимость в Mail.ru, которая требовала только специальной настройки. Она выполнялась в течение двух минут. В результате удалось заработать 800 долларов. С другой стороны, я сталкивался со случаем, когда отправил репорт, а в ответ получил уведомление, что ошибка стала частью более серьёзной уязвимости, которая уже обнаружена. Несколько тысяч долларов “ушли” к другому» (Лука Сафонов).
Рисунок 3. Целесообразность использования программ Bug Bounty
Другие стимулы для исследователей
Следует сразу отметить, что исследователей привлекают не только заработки. «Многие приходят за новыми навыками, на которых можно повысить репутацию, получить признание в профессиональном сообществе» (Ярослав Бабин).
«Репутация хакера — это его реальная валюта. Она позволяет получать новые заказы. Её можно заработать не только на суммах полученных вознаграждений, подходит также участие в социально значимых проектах» (Лука Сафонов).
«На своей площадке мы планируем привлекать хакеров также за счёт необычных предложений, которые позволяют получить более широкие навыки. Например, реализовать события, которые формально неприемлемы для оцениваемого продукта. Разработчики не исследуют подобные опции, опираясь на невозможность событий. Нахождение багов помогает серьёзно поднять уровень навыков» (Ярослав Бабин).
Исследователи в программах Bug Bounty: кто они?
Следует отметить, что несмотря на большое число участников публичных программ Bug Bounty, многие среди них не являются высококвалифицированными специалистами. «По большей части это — новички, которые научились запускать сканеры безопасности. Они создают отчёты диагностики, пользуясь автоматическими сканерами. Большинство выявляемых ими багов являются неопасными либо не входят в список уязвимостей, за которые компания готова платить деньги» (Ярослав Бабин).
Исследователями чаще всего становятся молодые специалисты в возрасте 20–25 лет. Официально многие из них уже работают в ИБ, а в свободное время они участвуют в программах Bug Bounty. Это позволяет им заработать дополнительные деньги.
Главный стимул — «на программе Bug Bounty можно очень хорошо прокачать свои навыки. Исследователь получает реальную задачу и возможность заработать вознаграждение. Такое участие позволяет серьёзно повысить свой уровень» (Ярослав Бабин).
«Существуют также те, для кого багхантинг — это основной вид заработка, причём вполне достойный. Хотя главная притягательная функция — это практическое изучение новых технологий. Там встречаются сисадмины, разработчики, настоящие технари — люди, которые хорошо понимают архитектуру» (Лука Сафонов).
«Нередко там можно встретить и зрелых разработчиков, которые имеют большой опыт в программировании» (Дмитрий Шмойлов).
«Большую пользу приносят реальные практики. У нас был случай, когда большинство репортов приносил специалист, который занимался установкой ПО в компаниях. Хорошо зная пользовательский рынок, как ведёт себя продукт на практике, он отыскивал ошибки там, где не додумались разработчики» (Илья Сафронов).
«Хорошие результаты показывают пентестеры. Имея опыт перебора различных опций, они приобретают хорошие навыки в поиске уязвимостей» (Алексей Гришин).
Пентестеры и специалисты по поиску багов
Во многих компаниях не рассматривают участие в инициативах Bug Bounty, ограничиваясь проведением пентестов. Но «пентесты проводятся в рамках отведённого времени. Это становится ограничением, которое мешает исследователям добиться полноценной оценки безопасности для своего продукта.
Пентесты нацелены на поиск уязвимостей в тех областях, которые интуитивно осознаются как создающие риск появления багов. Часто они не позволяют выявить сложные, критические уязвимости, не позволяют оценить угрозы в бизнес-логике, то есть то, что обычно упускают при разработке, но выявляют в реальной жизни» (Лука Сафонов).
«Пентест может проходить с раскрытием внутренней архитектуры приложения, пентестерам могут быть доступны исходные коды. Это создаёт сильный крен в сторону поиска “заранее ожидаемых” багов. Bug Bounty работает иначе. Это всегда “чёрный ящик”, когда условия похожи на реальный взлом, тогда как в пентестах проверяются отчасти искусственные условия» (Дмитрий Шмойлов).
«Большую пользу приносит проведение приватных программ Bug Bounty. В этом случае исследователь получает специальный доступ, то есть бизнес-аккаунты, аккаунты юридических лиц, к которым обычные багхантеры в публичных программах не имеют доступа» (Лука Сафонов).
Риски в программах Bug Bounty
Главный риск исследователя, принимающего участие в программе Bug Bounty, — это отказ от выплаты ему вознаграждения. Можно назвать четыре случая, когда это происходит.
«Первый — после отправки репорта о баге становится известно, что это — дубликат: кто-то нашёл баг раньше. В качестве доказательства предоставляется репорт, признанный как победный.
Второй — компания уже обнаружила уязвимость, о которой сообщает исследователь. Это должно быть отражено в документах. Там указывается на раскрытую уязвимость, даже если она ещё не была исправлена.
Третий — открытый исследователем баг является частью другого бага, более высокого уровня. В этом случае должен быть предоставлен отчёт со стороны компании, с указанием бага верхнего уровня.
Четвёртый — баг относится к типу, который не отвечает правилам программы Bug Bounty. Это — самый сложный случай. В случае разногласий проводится арбитраж на площадке» (Алексей Гришин).
Если оценивать риски со стороны компаний, запускающих свою программу Bug Bounty, то большие опасения связаны с риском утечки обнаруженных багов. Но здесь срабатывает другая логика.
«Если бы не было программы Bug Bounty, то риск обнаружения бага также остаётся, но в этом случае информация сразу уйдёт на чёрный рынок. Если баг был обнаружен в ходе проведения программы первым исследователем, который утаил его от разработчика, то за ним придёт второй или третий исследователь, который с большой вероятностью сможет найти тот же баг. В большинстве случае информация о баге попадёт к разработчику» (Алексей Гришин).
Как сделать инициативу Bug Bounty привлекательной для компаний?
Сильным аргументом для руководства компаний является то, что в отличие от приватных программ и пентестов публичные программы Bug Bounty предусматривают оплату найденных багов по результату. «Это — максимально эффективно и максимально дёшево» (Илья Сафронов).
«Для компаний это — ещё и имиджевая история. Это порождает доверие к компании со стороны рынка» (Ярослав Бабин).
«Bug Bounty позволяет выстроить активную защиту с учётом особенностей мышления реальных людей. Эта программа позволяет оценить безопасность с точки зрения того, как работают живые люди, а не программы или роботы. Так удаётся выявить те места, через которые хакеры “ломают” программу.
Bug Bounty позволяет закрыть уязвимость не только там, где проводится тест. Появление репортов порождает процессы в системе безопасности, которые помогают закрыть аналогичные уязвимости в других проектах. Это влияет на рост уровня безопасности разработки» (Алексей Гришин).
«Пентест — это, условно говоря, просто покупка отчёта, который хорошо принимают различные аналитические агентства. Участие в программе Bug Bounty — это оценка в условиях реального рынка. Но есть и другая важная особенность: минимизируются риски вредоносного использования уязвимостей. Когда исследователи не имеют возможности для получения легального вознаграждения за обнаруженные баги, информация о них попадает на чёрный рынок. Там за них могут также предложить деньги. Bug Bounty — это канал, который удерживает хакеров от нелегального использования результатов проделанной ими работы» (Лука Сафонов).
«Руководство компаний должно прийти к пониманию, что проблема существования багов в якобы полностью готовых продуктах вполне реальна. Для получения ощущения высокой уверенности в своих продуктах, для выхода на мировой рынок требуется участие в таких программах» (Дмитрий Шмойлов).
Как планировать бюджет инициативы Bug Bounty?
Реальная подготовка бюджета для участия в программе Bug Bounty представляет собой нетривиальную задачу. «Но можно предложить простую прикидочную схему. Надо сначала оценить, сколько будет стоить для компании появление одной RCE-ошибки в созданном сервисе. После этого надо умножить это число на четыре и заложить полученный результат как годовой бюджет на Bug Bounty» (Алексей Гришин).
Но возникает также задача не растратить выделенные средства понапрасну. «Для этого компания прописывает в своих правилах, что после достижения определённого размера выплат дальнейшее проведение программы Bug Bounty приостанавливается. Лучше заняться сначала устранением выявленных ошибок, чем продолжать участие без намерения выплачивать вознаграждение» (Лука Сафонов). Обман хакеров ведёт к потере репутации и в дальнейшем лишает поддержки со стороны хакерского сообщества.
«К выработке бюджета надо подходить с умом. Не надо выставлять для оценки сразу всю инфраструктуру. Достаточно выделить участки, в надёжности работы которых есть наибольшая уверенность. Например, по ним уже был проведён аудит. Можно также ограничить охват только информацией о самых критически значимых уязвимостях, например RCE и SQL-инъекциях. Это позволит открыто взаимодействовать с хакерами и постепенно расширять охват, добавляя уязвимости среднего и низшего уровня» (Ярослав Бабин).
Выводы
В эфире AM Live от 12 мая приняли участие эксперты, которые представляют рынок Bug Bounty со всех сторон: заказчики инициатив, организаторы платформ для их проведения, хакеры. Они согласились, что программа Bug Bounty может принести большую пользу компаниям, позволив им рассматривать свой продукт как полностью готовый для работы на рынке. В то же время в планировании и проведении таких программ есть ряд важных особенностей, которые необходимо учитывать, чтобы добиться полезного эффекта.
Самые горячие для российского рынка информационной безопасности темы мы обсуждаем в прямом эфире онлайн-конференции AM Live. Чтобы не пропускать свежие выпуски и иметь возможность задать вопрос гостям студии, не забудьте подписаться на YouTube-канал Anti-Malware.ru. До встречи в эфире!