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

Программа Bug Bounty — это датчик
Первые вопросы от заинтересованных лиц в вашей компании, на которые вам придется ответить, наверняка будут типа:

Зачем нам нужна программа Bug Bounty? мы уже провели множество пентестов и исправили все обнаруженные ошибки. Наше приложение будет переработано очень скоро, так действительно ли необходим новый этап тестирования этой версии? Как мы можем доверить тестирование внешнему и анонимному сообществу?

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

Другими словами, ваш CVD должен быть дополнен поощрительной программой и, более того, он может и должен дополнять другие компоненты вашего CVD, такие как стандарт security.txt, команды CERT, политика безопасности для продуктов с открытым исходным кодом или веб-сайты. как zerodisclo.com.

Необходимо обогатить ваш CVD и поощрить хакеров наградами за раскрытие уязвимостей в соответствии с вашим процессом, иначе их место займут другие. Например, я обычно привожу количество отчетов, отправленных в органы управления персональными данными моей страны (количество которых резко увеличилось с момента введения регламента GDPR), количество нежелательных раскрытий на openbugbounty.org или zerodium.com и, конечно же, числа инцидентов безопасности, выявленных нашими внутренними синими командами. Этот подход также имеет то преимущество, что задействует ваши оборонительные команды, и позже он станет преимуществом.

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

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

  • онлайн-разоблачение активов, которые должны оставаться конфиденциальными (среды разработки или тестирования, метаданные в документах и ​​т. д.).
  • отсутствие робастности при выводе приложений из эксплуатации: данные, серверы, поддомены не «удаляются» корректно (мы редко делаем пентест продукта после окончания его жизни, верно?).
  • конфиденциальные данные, хранящиеся у неадекватного провайдера веб-хостинга.
  • открытие теневых ИТ.
  • взлом справочных служб.

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

В отчете об ошибке данные структурированы по нескольким полям, таким как серьезность ошибки с указанием стандарта CVSS, тип ошибки с указанием стандарта CWE, конечная точка , уязвимый метод HTTP, полезная нагрузка и многое другое.

Первая возможность — например, автоматически записать шаблон виртуального патча на ваш WAF. Это всего лишь шаблон, и всегда будет ручная часть, сделанная человеком, чтобы гарантировать, что патч не заблокирует законный трафик и в то же время заблокирует варианты атаки.

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

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

Платформы Bug Bounty, такие как yeswehack.com, сотрудничают, помимо других редакторов программного обеспечения, с поставщиками коммерческих WAF и разрабатывают для своих клиентов множество инструментов для эффективного использования этих данных. Я представил несколько крутых методов, но вы догадались о более общей идее: вы должны извлечь выгоду из результатов своей программы. Речь идет не только об исправлении ошибок в режиме пожаротушения, но и о внедрении лучших практик, чтобы те же самые ошибки не повторялись во время разработки приложения. Используйте данные внутри платформы в качестве входных данных для других действий по обеспечению безопасности, которые вы можете выполнять.

Улучшите свой мониторинг безопасности с помощью программы Bug Bounty
Как только ваша программа будет запущена, ваши группы мониторинга будут получать множество предупреждений, связанных с действиями хакеров, и они могут потерять свою способность для выявления тех, кого они называют «настоящими злоумышленниками». С помощью программы Bug Bounty хакерам в белой и черной шляпе разрешено совершать некоторые атаки, конечно, до этого хакеры в черной шляпе не ждали вашего разрешения на проведение вредоносной деятельности в вашей сети.

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

В прошлом, когда кибератаки были не так распространены, как сегодня, группы мониторинга использовали такие методы, как добавление уникального и секретного пользовательского агента HTTP для идентификации и фильтрации трафика «ненастоящих злоумышленников», таких как пентестеры. разрешили делать тесты. К сожалению, эти методы по-прежнему распространены, но это не вариант в программе вознаграждения за обнаружение ошибок.

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

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

Это легко сказать, но сложнее на практике: вам нужно сопоставить атаки и воздействия, чтобы уменьшить количество ложных срабатываний (беспокоиться только при обнаружении воздействий) и организовать SOC. Например, в реальной программе вознаграждения за обнаружение ошибок некоторые хакеры видели виртуальное исправление ошибок так быстро, что у них не было достаточно времени, чтобы сообщить программе об уязвимости (уязвимость была обнаружена в режиме реального времени в результате атак во время вознаграждения за обнаружение ошибок). . Конечно, когда вы хакер, сделайте много скриншотов в качестве доказательства того, что ошибка была там, и сообщите об этом программе, это должно быть принято. Это хороший пример того, как синяя команда должна обнаруживать и реагировать на использование уязвимости.

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

Первое, что нужно сделать, но самое сложное, это «облегчить охоту»:

  1. Ваша область действия должна быть широкой, например *.yourcompany.com, чтобы хакеры могли обнаружить некоторые поперечные ошибки (обычно «рикошетные атаки»), теневые ИТ/веб-сайты, созданные вне вашего контроля и т. д. Не тратьте время хакера, предлагая небольшие и ограниченные области для тестирования.
  2. Вы слышали об инициативе Facebook, белом меню настроек в их мобильных приложениях? Это очень хороший пример потрясающей работы, которую Facebook делает в интересах белых хакеров.
  3. Конечно, будьте быстры, чтобы исправить ошибку: чем быстрее вы, тем больше вы избегаете появления повторяющихся ошибок, чтобы хакеры продолжали тестировать вашу программу.
  4. Вы должны предоставить своего рода безопасную гавань для защиты хакеров от законов о борьбе со взломом, проводящих добросовестные исследования в области безопасности.

Второй и важный момент — использовать «стандартные методы»:

  1. Используйте CVSS, CWE для всей вашей организации, вы получите возможность взаимодействия между вашими объектами, службами и инструментами.
  2. Это также хороший способ завоевать доверие хакеров. Если вы не используете стандартные методы для квалификации обнаруженных ошибок, вы не будете беспристрастны в процессе вознаграждения: каждая уязвимость одного и того же типа и на одном и том же веб-сайте должна приводить к тот же CVSS и баунти иначе хакеры перейдут на другую программу.
  3. Ваша политика в отношении дубликатов должна быть прозрачной. Каковы ваши критерии? домен? URL-адрес? основная причина бага? На практике это все, но изложите это в письменной форме и не отклоняйтесь от своих правил. И подумайте о политике обходов тоже.

Третий шаг — ваша «компенсационная стратегия»:

  1. «Не скупитесь». Я подробно расскажу об этом в следующей главе, а пока думайте только о своих конкурентах, обо всех других программах, таких как программы Microsoft, Google, Facebook или Dropbox. который может ввести много денег, чтобы вознаградить хакеров.
  2. Как и в случае с любой работой, деньги не являются единственной мотивацией для людей. Если ваша программа не интересна, не интересна и не вызывает уважения, вы потеряете хороших хакеров, даже если будете хорошо им платить. Краткий рассказ о программе поощрения ошибок системы электронного голосования Swisspost в марте 2019 года: трое исследователей, включая Сару Джейми Льюис, нашли лазейку в системе, но отказались отправлять информацию об ошибках через программу Swisspost (они могли рассчитывать на вознаграждение в размере 50 000 $) и публично обнародовал его, утверждая, что любая информация, которая может повлиять на демократию, должна быть общедоступной. Некоторые люди пытаются творить добро в мире, их нельзя купить.

Последний шаг — наймите лучших:

  1. Хакеры, как и все остальные, хотят быть признанными за качество своей работы, поэтому привлекайте их к безопасности своих продуктов и услуг: сначала вы должны признать свои ошибки при обнаружении ошибки, не пытаться ее скрыть, а затем спросить хакерам за советы: как исправить ошибку? По вашему опыту, на каких веб-сайтах эта ошибка может быть обнаружена снова? Было бы очень претенциозно думать, что только ваша внутренняя служба безопасности знает, как защитить приложения. В конце концов, пойдите еще дальше, наняв лучших хакеров в свою компанию!
  2. Сегодня я пишу эту статью, чтобы поделиться тем, что мне нравится, хакеры хотят того же: рассказать о своих открытиях, своих инструментах и ​​т. д. Вы должны перейти к публичному раскрытию ошибок, как только будете готовы.

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

  1. Если вы не хотите всегда платить за одни и те же ошибки (например, XSS), у вас должен быть надежный безопасный процесс разработки: предоставьте ресурсы, обязанности и амбиции своим внутренним командам разработчиков и экспертов по безопасности.
  2. Вы должны вознаграждать ошибку в соответствии с уровнем вашей безопасности: увеличивайте размер сетки выплат, когда найти ошибку становится труднее.
  3. Если вы знаете, что вы уязвимы с классом ошибок, исключите их из ваших правил для начала! Конечно, это возможно для не самых опасных, таких как open redirect, может быть. Таким образом, вы сосредотачиваете внимание сообщества хакеров на проблеме взлома вашей самой надежной защиты.

Некоторые эксперты, такие как Алекс Ионеску или Кэти Муссури, иногда критикуют гонку владельцев программ за то, чтобы всегда платить больше:

  1. Поскольку чем выше вознаграждение за обнаружение ошибки, тем более опытные компьютерщики выбирают направление наступательной карьеры в области безопасности (отказ от оборонительной безопасности), и, следовательно, внутри компании никто не знает, как правильно устранить ошибку со стратегическим долгосрочным видением. Однако, как было замечено ранее, в этой статье я дал несколько советов по привлечению ваших защитников к вашей программе вознаграждения за обнаружение ошибок, и мы также можем поговорить о программах вознаграждения за обнаружение ошибок, таких как FOSSA, которые вознаграждают не только ошибки, но и их исправления.
  2. Что касается более социального аспекта, мы можем рассматривать программу поощрения как способ для компаний купить молчание хакеров: без публичных разоблачений компании, которые совершают ошибки, никогда не подвергаются санкциям. Являются ли программы поощрения выгодными для конечных пользователей/покупателей?
  3. Также сообщалось, что в некоторых странах, таких как Азия или Африка, квалифицированные компьютерщики зарабатывают много в долларах или евро на вознаграждениях по сравнению с низкими зарплатами, которые могут предложить местные компании. Поэтому этим последним трудно нанять лучших хакеров или разработчиков. Я не согласен с тем, что награды могут быть возможностью договориться о лучшей зарплате или получить компенсационный доход. Хакеры, которые живут за счет наград, очень редки, и даже если это возможно для немногих, это не заменяет преимуществ (кроме денег) работы в компании.

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

С помощью Owasp to CVSS tool ваш CVSS всегда будет рассчитываться одинаково, поэтому больше не будет ошибок для определения приоритетов исправления или вознаграждения хакеров. Этот инструмент основан на таксономии рейтинга уязвимостей Bugcrowd и работе Edoverflow, чтобы связать серьезность с суммой вознаграждения.

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

Предприятия, которые запускают частные программы вознаграждения за ошибки, точно знают, что они делают, они хотят уменьшить шум сообщества хакеров (например, Microsoft получает 200 000 отчетов в год, которые необходимо проверить), особенно дубликаты, они хотят выбрать хакеров чтобы пригласить или, может быть, они просто хотят остаться в определенном бюджете вознаграждений. Награда за обнаружение ошибок была создана для привлечения всего сообщества хакеров, потому что больше людей будут внимательно изучать ваши продукты и услуги, и у вас будет больше шансов найти ошибки. На самом деле, часто элиту приглашают на закрытые программы, даже если они найдут какие-то баги, они не смогут тратить много времени на тестирование ваших приложений, потому что они перегружены.

Пожалуй, самое время поговорить о выборе платформы:

  • Все платформы имеют одинаковый тип пользовательского интерфейса, функций, сервисов, и они проводят вознаграждение за ошибки своей платформы на своей собственной платформе.
  • Они различаются по хакерскому сообществу и тому, как им управлять. Первым критерием, конечно же, является количество хакеров, зарегистрированных на платформе, а также их местонахождение. Возможно, вы захотите поддерживать отношения с местным сообществом хакеров рядом с вашим бизнесом, чтобы организовать, например, общественные мероприятия или попытаться нанять некоторых из них в будущем.
  • Также может быть важна привязка регулирования к платформе: например, американские платформы подпадают под действие закона о патриотизме/свободе.
  • Мы можем заметить, что крупные компании, такие как Google, не являются клиентами платформы и организуют вознаграждение за обнаружение ошибок самостоятельно. Некоторые организации также стараются не зависеть от одной платформы и делиться своими программами на многих.

Создайте внутренний информационный бюллетень
Bug bounty — очень живая и богатая область, есть много вещей, которые нужно учитывать, например, все больше и больше студентов узнают из обнаруженных прошлых ошибок на Платформы для поиска ошибок, последние очень интересны и предлагают интерфейсы с WAF, сканерами безопасности, технологиями статического анализа или системами продажи билетов, а также бесплатные услуги, такие как тренинги по кибербезопасности (CTF, викторина и т. .yeswehack.com».

Некоторые баг-баунти проводятся в проектах с открытым исходным кодом: Программа FOSSA, организованная Европейской комиссией для проектов с открытым исходным кодом, используемых Комиссией (Apache, VLC, drupal…) или программа Gitlab bug-bounty являются хорошими примерами. В этих случаях патчи, исправляющие ошибки, выявленные во время баг-баунти, видны всем, и это возможность связать вашу программу баг-баунти с программой безопасности вашего приложения. Например, вы можете воспроизвести в тестовой/тренировочной среде реальные ошибки, о которых сообщалось во время вашей программы Bug Bounty, чтобы дать возможность всем сотрудникам вашей компании попытаться взломать ваши приложения, как это сделали хакеры.

По всем этим причинам я рекомендую вам создать внутренний информационный бюллетень. Для этого смотрите новостные платформы и инструменты:

И несколько интересных хакеров:

Расскажите истории об ошибках, обнаруженных в других программах:

Помните, что даже с программой вознаграждения за ошибки ваши продукты никогда не будут свободны от ошибок, всегда будут инциденты безопасности, нарушения, влияние на конфиденциальность и т. Д. Вознаграждение за ошибку не заменяет другой процесс обеспечения безопасности, на самом деле это дополнительные расходы, которые не помогут вам исправить ваши ошибки быстро, надежно и в масштабе на таких же уязвимых активах. Я думаю, что программы Bug Bounty очень важны и очень интересны для управления, но в первую очередь вам нужно сосредоточить свои усилия на безопасности по замыслу.

Другие ресурсы по той же теме