Pull to refresh
43.76
OWASP
Open Web Application Security Project

Bug Bounty vs Penetration testing

Reading time5 min
Views4.9K

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

TL;DR

Два подхода проще всего сравнить по аналогии с такси: при пентесте вы платите по счетчику, а в багбаунти за километраж.

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

Классический пентест

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

Под "классическим" пентестом я подразумеваю старый добрый подход, который в большинстве своем сводится к понятию "время = деньги". Существует еще несколько разновидностей пентеста - от continuous pentest до red teaming. Обычно пентест включает в себя следующие пункты:

  • аудит внешнего периметра;

  • анализ безопасности веб-приложений;

  • аудит внутреннего периметра;

  • анализ безопасности беспроводного эфира;

  • анализ мобильных приложений.

Зачастую пентестом считают и социотехнические атаки (фишинг/социалка), но правильнее относить этот подвид к security awareness.

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

Хорошим итогом будет нахождение максимального количества уязвимостей за минимальный (условно) срок работ. Качество таких работ (кол-во найденных уязвимостей) зависит от:

  • скиллов команды пентестеров;

  • подхода к работам (методологии);

  • объекта тестирования;

  • количества пентестов "до";

  • сроков работ.

В своей практике я сталкивался с отчетами по пентесту, которые представляли из себя откровенный шлак, такие отчеты не нравятся заказчикам (не несут полезной составляющей):

  • отчет не содержит каких-либо значимых уязвимостей, при этом не описано какие проверки проводились и как;

  • отчет содержит информацию об уязвимостях, но без технических деталей и импакта (применения уязвимости и ее влияние на бизнес-процессы);

  • отчет не содержит рекомендаций;

  • отчет представляет из себя выгрузку из автоматизированной утилиты/сканера (!!!).

Итого: на выходе заказчик получает n-багов и рекомендаций по исправлению, которые он применимо к задачам применяет в пайплайне информационной безопасности и ИТ-подразделений.

Bug Bounty

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

Хотя на российском интернет пространстве это и не новый термин (например self-hosted программе bug bounty от Яндекс уже более 10 лет; первая российская платформа Bug Bounty запущена в феврале 2021 года), тем не менее подход к проведению, политика разглашения уязвимостей и сам факт участия в программе принимался многими российскими компаниями как высокорисковое мероприятие:

  • у нас априори не может быть уязвимостей, любой дисклоз (возможное публичное раскрытие информации) об уязвимости принесет нам репутационные риски;

  • мы привлечем внимание злых хакеров и они нас поломают;

  • а что если багхантеры понесут баги не нам, а на черный рынок? (а без публикации программы bb они этого сделать не могут?);

  • мы не сможем оперативно править баги;

  • вымогательство вознаграждений (да, такое бывает и без программ bb);

  • бизнес не даст денег.

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

Bug Bounty vs Penetration testing: подходы и различия

Ниже представлена табличка основных различий различных подходов обеспечения безопасности.

Bug Bounty

Penetration testing

Почет и публичная слава (Hall of Fame)

Безвестные герои NDA

Оплата только за результат

Гарантированная оплата

Доход неограничен

Доход средний/высокий

Уровень стресса низкий

Уровень стресса высокий

Слабые правовые гарантии

Сильные правовые гарантии

Рекомендуется продуктовая версия

Рекомендуется тестовая среда

Подразумевает работу "в ширину"

Подразумевает работу "в глубину"

Обычно это внешний периметр

Внешний, внутренний, тестовый и dev-периметры

Ограничен только жизнью программы

Ограничен по времени

Находят 0-day

Не ищут 0-day

Можно указать только вектор

Необходимо предоставление боевого PoC

Спектроскопическое тестирование с учетом опыта хантера

Автоматические и ручное тестирование

Может участвовать любой желающий

Нужен высокий хак-скилл

Сертификаты не нужны

Необходимы проф. сертификаты

Количество участников не ограничено

Ограниченное количество участников

Результат на "длине" программы

Результат сразу

Креативность (вариативность подходов, методов и инструментария)

Отработка методологий

Обычно запуск после пентестов

Запуск в любой момент

Низкое качество отчетов (в целом)

Высокое качество отчетов (в целом)

Постоянный стресс-тест СЗИ

Обычно СЗИ не затронуты (whitelist)

Широкий скоуп действий

Целенаправленные работы

Непрерывный процесс исследования

"Снимок" состояния безопасности

Выводы

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

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

После этих проверок происходит публикация приложения и запуск программы bug bounty. Важно, чтобы тестирование в программе bug bounty проходило в течение длительного времени (минимум от 3 до 6 месяцев, в идеале даже дольше). Это позволит хакерам, которые недавно зарегистрировались, предупредить вас об ошибках безопасности, вызванных, например, незначительными обновлениями в вашей системе.

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

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 8: ↑8 and ↓0+8
Comments6

Articles

Information

Website
owasp.org
Registered
Founded
Employees
1,001–5,000 employees
Location
Россия
Representative
Лука Сафонов