Под давлением - может ли стресс-тестирование сайтов быть опасным

  1. Нагрузочные и стресс-тесты
  2. Тесты или DDoS-атаки?

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

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

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

Нагрузочные и стресс-тесты

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

Сценарии нагрузочных тестов в системах данных

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

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

Разведка через огонь

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

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

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

Для этой цели, т. Е. Тестирование интернет-приложений или внешних источников данных, доступных в Интернете (к ним относятся службы электронной почты, службы FTP и т. Д.), Были разработаны специализированные - довольно хорошо работающие - онлайн-сервисы нагрузочного тестирования.

Стресс-тесты

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

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

Конфигурация нагрузочных тестов по одному из проектов, которые сейчас тестируются: установив условия нагрузки, мы достигли максимальной грузоподъемности.

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

Протокол испытаний содержит много статистики. Например, распределение времени загрузки при нагрузочном тестировании


Результат нагрузочных тестов интернет-приложений с использованием онлайн-сервиса

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

Тесты или DDoS-атаки?

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

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

Демо-режим службы онлайн-тестирования нагрузки может имитировать посещения максимум 10 000 пользователей в месяц, что может быть смертельно опасным для многих небольших интернет-проектов. До 50 пользователей в течение 3-минутного периода могут вызвать проблемы для некоторых основных онлайн-решений.

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

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

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

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

Тестирование загрузки онлайн-ресурсов с использованием сервиса, не требующего регистрации. Просто зайдите на сайт, введите URL ресурса, который вы хотите проверить, и просмотрите отчет о результатах.

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

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

Некоторые сайты предлагают демонстрационный нагрузочный тест без регистрации. Это означает, что владелец небольшого ботнета, состоящего из 50-100 машин, может использовать эти сервисы для увеличения мощности DDoS-атак в сотни раз. Один бот может генерировать 10 независимых нагрузочных тестовых запросов для различных сайтов. Это означает, что они могут самостоятельно генерировать сотни запросов. Результат? Цель этого типа атаки будет полностью затоплена, казалось бы, «законным» движением.

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

«Использование Веб-сайта и возможность получать точные и фактические результаты в значительной степени зависят от способности Пользователя использовать Веб-сайт. Поэтому вы должны убедиться, что обладаете достаточными знаниями для написания сценариев, необходимых для получения оптимальных результатов на Веб-сайте ... »

Другими словами: вы несете ответственность за свои действия.

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

Тесты или DDoS-атаки?
Можем ли мы достичь этого с помощью онлайн-сервисов нагрузочного тестирования?
Откуда неподготовленный блогер знает, кто настоящий человек, а кто мошенник?
Результат?
Как вы можете предотвратить злоупотребление услугами онлайн-тестирования?