Блог

Нагрузочное тестирование сайта. Как фильтровать DDoS-атаки?

Поговорим о DDoS-атаках, и о том, как эффективно их "отбивать".
28 ноября 20152 минуты8508
<h3 style="text-align: justify;"><img alt="" src="https://geekbrains-uploads.s3.amazonaws.com/geekbrains/public/ckeditor_assets/pictures/1090/content_28_11_15.jpg" /></h3> <p style="text-align: justify;">DDoS-атаки (Distributed Denial of Service)&nbsp;являются одними из самых простых. &quot;Принять участие&quot; в них может любой пользователь, с помощью, например этой доступной <a href="http://netler.ru/ikt/loic.htm" target="_blank">утилиты</a>.</p> <h3 style="text-align: justify;">Что это и как работает?</h3> <p style="text-align: justify;">Меняются инструменты, способы обхода защиты и блокировки, любые другие параметры, кроме одного, основного принципа атаки: <strong>сотни и тысячи разных рабочих станций по всему миру одновременно начинают отправлять запросы на атакуемый сервер</strong>, после чего он начинает испытывать перегрузку и не может своевременно обрабатывать запросы от легитимных пользователей. В итоге, после достижения определенного порога, происходит отказ сервера в обслуживании всем пользователям, чего и добивались злоумышленники. Бомбардировка сервера такими запросами (каждый из которых может оказаться легитимным) продолжается достаточно долгое время, и в течение всего этого периода пользователи не смогут на сервер&nbsp;зайти. Если объект атаки &ndash; крупный интернет-магазин, то он понесет значительные убытки и репутационные издержки. Клиенты, вероятно, закажут в другом месте и в будущем откажутся от использования этого онлайн-магазина. Любопытно, что ваш ПК может также принимать участие в DDoS атаке, а вы даже не будете об этом знать -&nbsp;так работают <a href="https://ru.wikipedia.org/wiki/Ботнет" target="_blank">ботнеты</a>.</p> <p style="text-align: justify;">С другой стороны, DDoS атаки не приводят к воровству данных и утечке персональной информации в том случае, если они не являются ширмой для других атак, нацеленных на&nbsp;проникновение&nbsp;в систему. Иначе, DDoS атаки могут выступать в некотором роде дымовой завесой для более опасных махинаций, например, таких, как блокировка взаимодействия банка и его клиента при краже денег, что позволяет атакующим выиграть время и успешно завершить нападение.&nbsp;</p> <h3 style="text-align: justify;">Как проверить устойчивость вашего сайта к DDoS атакам?</h3> <p style="text-align: justify;">Защититься от DDoS атак непросто, но вы можете прямо сейчас проверить устойчивость сайта к множественным запросам -&nbsp;это называется нагрузочное или стресс-тестирование. Такие программы, как <a href="http://jmeter.apache.org/" target="_blank">JMeter</a> и <a href="http://www.loadimpact.com" target="_blank">Load Impact</a> позволяют имитировать одновременное подключение к сайту удаленных хостов, от считанных единиц до многих тысяч, что позволяет<strong> вычислить реальную нагрузку, которую может выдержать сайт</strong>.</p> <h3 style="text-align: justify;">Некоторые варианты защиты</h3> <p style="text-align: justify;">Защита от DDoS-атак основывается на <strong>фильтрации запросов и отсеве множественных попыток соединения с одного IP-адреса</strong>. В частности, применяется фильтрация некорректных запросов, целью которых является вызов отказа в обслуживании и эксплуатация известных уязвимостей, функция выполняется межсетевыми экранами и\или IDS на основе известных сигнатур.</p> <p style="text-align: justify;">Если все запросы корректные, можно<strong> запретить все соединения с IP-адресов других регионов.</strong> К примеру, интернет-магазину цветов в Новосибирске вряд ли будут интересны клиенты из США, и наоборот. Однако, это может подойти лишь как временное решение, потому что пользователи активно используют анонимные прокси и прочие средства сокрытия реальных IP-адресов.</p> <h3 style="text-align: justify;">Для чего нужно нагрузочное тестирование?</h3> <p style="text-align: justify;">Вряд ли вы задаетесь вопросом, зачем вообще нужно тестирование. Тестирование - это проверка, которая необходима после любого процесса разработки ПО. Нагрузочное тестирование позволяет понять, как будет себя вести сайт в боевой обстановке при подключении множества реальных пользователей. Вы можете столкнуться с особенностями отклика сайта, даже если в исходном коде нет никаких проблем. Что нужно изменить/добавить для того, чтобы увеличить пропускную способность сайта и время отклика на запросы. Использовать ли собственные фильтры или всецело положиться на защиту хостинг-провайдера? Можно разместить вышеуказанные утилиты на нескольких удаленных хостах, либо воспользоваться готовыми решениями типа <a href="http://blazemeter.com" target="_blank">BlazeMeter</a>.</p> <p style="text-align: justify;">Все еще недостаточно? Закажите DDoS атаку у хакеров&nbsp;с реального ботнета. Это стоит 15-20 USD за час и позволяет однозначно подтвердить устойчивость сайта, либо отправить его обратно на доработку.</p> <p>Хотите стать программистом?&nbsp;Рекомендуем профессию <a href="https://geekbrains.ru/professions/web_developer?utm_source=blog&amp;utm_medium=geekbrains&amp;utm_term=security&amp;utm_campaign=blog_stress_testing_site">&laquo;Веб-разработчик&raquo;</a>.</p> ">

DDoS-атаки (Distributed Denial of Service) являются одними из самых простых. "Принять участие" в них может любой пользователь, с помощью, например этой доступной утилиты.

Что это и как работает?

Меняются инструменты, способы обхода защиты и блокировки, любые другие параметры, кроме одного, основного принципа атаки: сотни и тысячи разных рабочих станций по всему миру одновременно начинают отправлять запросы на атакуемый сервер, после чего он начинает испытывать перегрузку и не может своевременно обрабатывать запросы от легитимных пользователей. В итоге, после достижения определенного порога, происходит отказ сервера в обслуживании всем пользователям, чего и добивались злоумышленники. Бомбардировка сервера такими запросами (каждый из которых может оказаться легитимным) продолжается достаточно долгое время, и в течение всего этого периода пользователи не смогут на сервер зайти. Если объект атаки – крупный интернет-магазин, то он понесет значительные убытки и репутационные издержки. Клиенты, вероятно, закажут в другом месте и в будущем откажутся от использования этого онлайн-магазина. Любопытно, что ваш ПК может также принимать участие в DDoS атаке, а вы даже не будете об этом знать - так работают ботнеты.

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

Как проверить устойчивость вашего сайта к DDoS атакам?

Защититься от DDoS атак непросто, но вы можете прямо сейчас проверить устойчивость сайта к множественным запросам - это называется нагрузочное или стресс-тестирование. Такие программы, как JMeter и Load Impact позволяют имитировать одновременное подключение к сайту удаленных хостов, от считанных единиц до многих тысяч, что позволяет вычислить реальную нагрузку, которую может выдержать сайт.

Некоторые варианты защиты

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

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

Для чего нужно нагрузочное тестирование?

Вряд ли вы задаетесь вопросом, зачем вообще нужно тестирование. Тестирование - это проверка, которая необходима после любого процесса разработки ПО. Нагрузочное тестирование позволяет понять, как будет себя вести сайт в боевой обстановке при подключении множества реальных пользователей. Вы можете столкнуться с особенностями отклика сайта, даже если в исходном коде нет никаких проблем. Что нужно изменить/добавить для того, чтобы увеличить пропускную способность сайта и время отклика на запросы. Использовать ли собственные фильтры или всецело положиться на защиту хостинг-провайдера? Можно разместить вышеуказанные утилиты на нескольких удаленных хостах, либо воспользоваться готовыми решениями типа BlazeMeter.

Все еще недостаточно? Закажите DDoS атаку у хакеров с реального ботнета. Это стоит 15-20 USD за час и позволяет однозначно подтвердить устойчивость сайта, либо отправить его обратно на доработку.

Хотите стать программистом? Рекомендуем профессию «Веб-разработчик».

тестированиебезопасностьitразвитие
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!
Posts popup