Что такое фаззинг в кибербезопасности?
Безопасность

Что такое фаззинг в кибербезопасности?

Фаззинг – это техника, используемая как экспертами по безопасности, так и хакерами для поиска уязвимостей в программном обеспечении. Вот что вам нужно знать

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

Все профессиональные программные продукты тщательно тестируются перед выпуском. К сожалению, уязвимости по-прежнему встречаются часто. Один из способов найти дополнительные уязвимости – использовать технику тестирования программного обеспечения, известную как fuzzing

Что же такое фаззинг и как он работает?

Что такое фаззинг?

Фаззинг – это автоматизированная техника тестирования программного обеспечения, которая пытается найти уязвимости с помощью случайных входных данных

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

Фаззинг используется для тестирования программных продуктов и специалистами по безопасности для определения безопасности сети. Он также используется хакерами, которые практикуют фаззинг для поиска уязвимостей, которые они сами могут использовать

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

Каковы преимущества фаззинга?

Фаззинг – это всего лишь один из многих способов тестирования программных продуктов на наличие уязвимостей. Он популярен потому, что:

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

Как работает фаззинг?

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

Поэт

Поэт начинает процесс и отвечает за генерацию тестового варианта. Тестовый пример – это длинный список потенциальных входных данных

Курьер

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

Оракул

Оракул проверяет, не заставляет ли какой-либо из входных сигналов делать что-то иное, чем было задумано. Если фаззинг проводится в законных целях, то такое поведение можно воспроизвести и исправить. Если же fuzzing проводится хакером, и неожиданное поведение полезно, оно может быть использовано в злонамеренных целях

Как злоумышленники используют фаззинг?

Фаззинг – популярная техника среди хакеров, поскольку она позволяет находить уязвимости в программном обеспечении без доступа к исходному коду. Поскольку фаззинг автоматизирован, его также легко выполнить. Если хакер обнаружит уязвимость, он сможет выполнить следующие атаки

DDoS-атаки

Если в результате фаззинга обнаруживается, что определенные входные данные требуют длительного времени для обработки, эта информация может быть использована для организации DDoS-атаки.DDoS-атака включает в себя отправку такого количества запросов системе, что она перестает функционировать. Фаззинг позволяет настроить запросы таким образом, чтобы они требовали наибольшего количества системных ресурсов для ответа

SQL-инъекция

Атака SQL-инъекции – это когда в приложение отправляются вредоносные SQL-запросы. Если эти операторы не санированы должным образом, они могут позволить злоумышленнику взаимодействовать с базой данных. Это может позволить им украсть данные или изменить их. Фаззинг – это эффективный инструмент для проверки большого количества SQL-запросов и определения того, какие из них дают благоприятный ответ

Переполнение буфера

Атака на переполнение буфера – это когда в буфер программы добавляется больше данных, чем она может обработать. В этом случае хакер может заставить программу выполнить вредоносный код. Это может быть использовано для кражи данных или получения несанкционированного доступа. Фаззинг используется для поиска входных данных, которые могут вызвать переполнение буфера

Типы фаззинга

Инструменты фаззинга можно классифицировать на основе того, как генерируются тестовые случаи и как много известно о системе

Тупой противУмные

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

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

Мутационный vs.Generational

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

Фаззеры поколения создают совершенно новые входные данные на основе того, что известно о принятом формате

Белый ящик противЧерный ящик

Фаззинг ‘черного ящика’ используется без какой-либо информации о тестируемом приложении. Он менее эффективен, чем фаззинг белого ящика, но может быть применен к любому приложению без доступа к исходному коду. Это делает его популярным среди хакеров

White box fuzzing использует информацию о тестируемом приложении для создания входных данных, которые с наибольшей вероятностью будут приняты и создадут уязвимости. Он в основном используется разработчиками программного обеспечения, поскольку является более эффективным, чем фаззинг ‘черного ящика’

Фаззинг – важный инструмент для предотвращения эксплойтов нулевого дня

Фаззинг – это мощный метод тестирования программного обеспечения, который используется разработчиками программного обеспечения, специалистами по безопасности и хакерами. Он требует минимальных усилий для реализации и способен находить уязвимости, которые не могут найти другие методы тестирования программного обеспечения

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

Об авторе

Алексей Белоусов

Привет, меня зовут Филипп. Я фрилансер энтузиаст . В свободное время занимаюсь переводом статей и пишу о потребительских технологиях для широкого круга изданий , не переставая питать большую страсть ко всему мобильному =)

Комментировать

Оставить комментарий