
Процесс безопасной разработки
Узнать больше10.01.2024
Чтобы оперативно выпускать на рынок качественные приложения, важно решать вопросы безопасности параллельно с разработкой ПО. А именно — уже на первых этапах их создания внедрять разноплановые инструменты контроля безопасности. Один из них — метод фаззинг-тестирования, которое относится к классу динамического анализа ПО. Обсудим суть метода, его этапы и разберемся, как его грамотно внедрить.
Что такое фаззинг-тестирование
Фаззинг (fuzzing или fuzz testing) — тестирование, призванное намеренно вызвать сбои в проверяемом ПО, «прорвать» защиту. Этого можно добиться, передавая приложению неверные или случайные данные. Несмотря на простоту, метод показал высокую эффективность, поэтому часто применяется в рамках комплексного подхода к обеспечению безопасности.
Что можно выявить с помощью фаззинг-тестирования:
Фаззинг-тестирование позволяет обеспечить максимальное покрытие кода при исследовании. Также с его помощью можно выявить проблемы планирования и производительности ПО.
Этапы анализа
Фаззинг-тестирование ПО включает следующие этапы:
Чаще всего анализ реализуется благодаря специальным инструментам-фаззерам, позволяющим автоматизировать процесс. С их помощью можно проверить, как интерфейс ПО обрабатывает заведомо ложные входные данные и какую реакцию выдает.
Методы фаззинг-тестирования
Метод анализа зависит от способа генерации входных данных. По этому принципу можно выделить следующие методы:
Метод фаззинг-тестирования в каждом конкретном случае зависит от подхода к проверке. Например, иногда реализуется фаззинг «белого ящика» — исследование внутренней структуры ПО, что позволяет увеличить покрытие кода. Второй подход — анализ методом «серого ящика», подразумевающий расчет покрытия кода, но не направленный на детальное изучение структуры. Третий вариант тестирования — фаззинг «черного ящика», который не предполагает осведомленности о структуре программного обеспечения.
Сильные и слабые стороны фаззинг-тестирования программного обеспечения
К преимуществам фаззинг-тестирования можно отнести то, что оно позволяет:
Перейдем к слабым сторонам фаззинг-тестирования ПО, которые практически все связаны с финансовыми вопросами. Например, важно учесть затраты на внедрение анализаторов кода. Еще одна статья расходов — привлечение экспертов высокого уровня для оценки результатов тестирования и устранения обнаруженных проблем, если на данный момент в штате компании нет таких специалистов.
Также к недостаткам фаззинг-тестирования программного обеспечения можно отнести немалые временные затраты. В некоторых случаях проводят поверхностный быстрый анализ, однако он не обнаружит все уязвимости и по эффективности будет примерно равен тестированию на проникновение. Поэтому специалисты выступают за детальное фаззинг-тестирование, которое займет больше времени, но оно будет в разы эффективнее.
Фаззинг-тесты в комплексе с другими видами анализа
Фаззинг-тестирование часто применяется в комплексном подходе к обеспечению безопасности ПО совместно с другими видами анализа:
Все эти проверки можно выполнять с помощью одного инструмента — Solar appScreener. Он позволяет всесторонне контролировать безопасность ПО, вовремя выявлять уязвимости, ошибки и недостатки кода. По результатам SAST, DAST, SCA и SCS инструмент формирует отчеты с детальным описанием обнаруженных недочетов и рекомендациями по их устранению.
Заключение
Фаззинг-тестирование показывает высокую эффективность в обнаружении уязвимостей в приложениях, поэтому рекомендуется встраивать этот вид проверки в цикл безопасной разработки ПО наряду с другими инструментами – SAST, DAST, SCA, SCS.
Самые важные новости кибербезопасности у вас в почте
Выберите темы, на которые бы вам было интересно получать новости.
Для получения бесплатной консультации заполните форму ниже и отправьте заявку. Наш менеджер свяжется с вами в ближайшее время.