Информационная безопасность сейчас одна из наиболее горячих тем для обсуждения, которая вышла далеко за пределы ИБ-сообщества. Количество инцидентов и утечек возросло многократно, что стало дополнительным стимулом усиливать безопасность инфраструктуры и приложений, а уход иностранных вендоров только усугубил этот процесс. Одним из новых трендов стало проведение Багбаунти программ. В этой статье я раскрою основные плюсы и минусы таких подходов как 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 месяцев, в идеале даже дольше). Это позволит хакерам, которые недавно зарегистрировались, предупредить вас об ошибках безопасности, вызванных, например, незначительными обновлениями в вашей системе.
Самым оптимальным вариантом для компании со зрелым циклом обеспечения информационной безопасности будет как проведение тестов на проникновение, так и организация багбаунти программ.
ссылка на оригинал статьи https://habr.com/ru/articles/708470/
Добавить комментарий