Нажмите "Enter", чтобы перейти к содержанию

Как сделать ddos атаку: Как сделать Ддос атаку: самые эффективные способы и программы

Как сделать Ддос атаку: самые эффективные способы и программы

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

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

 

Что такое Ддос-атака?

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

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

 

Почему Ddos-атаки имеют успех?

Ddos-атака — это реальный способ «насолить» конкуренту, и некоторые веб-предприниматели не гнушаются пользоваться этим «черным инструментом» конкурентной борьбы. Обычно Ддос-атака бывает эффективной из-за проблем провайдеров:

  • ненадежные межсетевые экраны;

  • бреши в системе безопасности;

  • проблемы в операционной системе серверов;

  • нехватка системной мощности для обработки запросов;

  • и др.

Именно эти проблемы и дают возможность осуществить эффективную Ddos-атаку. Поэтому проблема безопасности у IT-компаний всегда стоит на первом месте. Но современная защита стоит дорого, а потому условно считается, что чем больше денег компания-провайдер тратит на защиту своих ресурсов, тем надежнее защита. Но не все провайдеры у нас такие, как Microsoft или Yahoo (хотя и эти компании подвергались Ddos-атакам!), есть и менее финансово обеспеченные, которые более всего подвержены Ддосу.

 

Виды Ддос-атак

Даже у Ддос-атак есть собственная классификация. Вот как она выглядит:

  1. Массовое направление на сервер некорректных инструкций, выполнение которых приводит к аварийному завершению работы.

  2. Массовое направление пользовательских данных на сервер, что приводит к их бесконечной обработке и повышению нагрузки на сам сервер.

  3. Массовое направление неправильных инструкций к серверу, что также увеличивает его нагрузку.

  4. Массовая атака ложными адресами, что приводит к «забиванию» каналов связи.

Обобщив, можно сказать, что Ddos-атака — это «массовость» каких-либо действий, которые могут сделать так, что сервер перестанет работать. 

 

Ddos-атака: как сделать

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

 

Программа для Ddos-атак по IP и URL

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

Эта программа рассчитана для Ddos-атак, когда вам заранее известен IP и URL атакуемого ресурса. Чтобы воспользоваться данной программой, нужно:

  1. Найти и скачать ее из интернета, она там есть в открытом доступе.

  2. Активировать это приложение при помощи файла «loic.exe».

  3. Ввести в открывшихся полях IP и URL атакуемого ресурса.

  4. Отрегулировать уровень передачи запросов.

  5. Нажать для старта кнопку «imma chargin mah lazer».

Конечно, запуском одной такой программы с одного компьютера вы, скорее всего, не сможете навредить ресурсу, потому что у него сработает его система безопасности. Но если будет 10 запущенных программ на один ресурс? А 100? 

 

Еще инструменты, как сделать Ддос-атаку

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

  1. Fg Power Ddoser

  2. Silent Ddoser

  3. Dnet Ddoser

  4. Darth Ddoser

  5. Hypo Crite

  6. Host Booter 

  7. Good Bye v3/0-v5.0

  8. Black Peace Group Ddoser

Можно также использовать Ddos-атаку из «зараженной» программы, для этого подойдут следующие инструменты:

  1. PHPDos

  2. TWBooter

  3. Dark Shell

  4. War Bot

  5. Infinity Bot

  6. Darkness

  7. Russkill

  8. Armageddon

Если после применения инструментов, которые описаны выше, вы так и не нашли подходящий, то можете воспользоваться услугами Ddos-сервисов:

  1. Wild Ddos

  2. Death Ddos Serice

  3. Ddos SerVis

  4. Beer Ddos

  5. No Name

  6. Oxia Ddos Service

  7. Wotter Ddos Service

  8. Ice Ddos

 

Заключение

Список программ и инструментов «как можно сделать Ддос-атаку», на самом деле, очень большой. А это означает, что данное незаконное действие является весьма популярным среди пользователей.

Убедительная просьба, перед тем как планировать или организовывать Ddos-атаку, подумайте, нужно ли вам это? Хотим еще раз напомнить, что Ddos-атаки уголовно наказуемы!

Как организовать DDoS в благих целях? / Хабр

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

А как этот сервис отреагирует, если против него будет организована распределенная DoS-атака? Защищен ли ресурс от потенциальных действий злоумышленников?

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

В этой статье мы расскажем про опыт организации нагрузочного тестирования для DNS- и HTTP-сервисов.


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

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


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

Customer ID:
   Customer Name:
   Email Address:
   AWS Account ID load test will be performed from:
   Does the customer have an NDA?
Target Data
   EC2 Resources:
   Cloudfront Distribution:
   API Gateway / Lambda ID:
   ELB Names:
   Non-AWS Target:
   Region (please list all regions in scope for testing):
Source Data:
   IP Addresses:
   Source Account ID:
   Regions involved:
Testing Parameters:
   How much traffic do you plan to generate by region during testing?
   What is your expected peak load from source by region? (i.
e. xx Gbps) What is your expected peak load at destination? (i.e. xx Gbps) Are you testing traffic outbound from EC2, inbound into EC2, or both? Are you testing traffic outbound (egress) from EC2, inbound (ingress) into EC2, or both: Egress. What is your expected peak load from source by region? (i.e. xx Gbps) Ingress. What is your expected peak load from source by region? (i.e. xx Gbps) Start Date: End Date: Finite testing details including timeline of testing: Summary of Test: Testing Timelines by phase including rps, pps, and Gbps: Peak bandwidth for each source IP: Tools Used for each phase of test: Types of testing to be performed for each phase of the request: What criteria/metrics will you monitor to ensure the success of this test? Who is performing the Load Test? (Please provide contact details): Does the tester have an NDA? Testing Security Do you have a way to monitor the data traffic for the duration of the test to verify bandwidth limits do not exceed approved rates? Do you have a way to immediately stop the traffic if we/you discover any issue? 2 Emergency contact names and phone numbers:

Есть несколько нюансов:


  1. У нас спрашивают, кого будем «дубасить». Имеем ли мы на это право? Говорим, что это наш ресурс (по всей видимости, никто не проверяет, так ли это) и что тестирование полностью согласовано.


  2. Нам нужно обозначить, сколько трафика создадим в каждом из регионов. В ходе переписки выясняем, что каждый регион имеет свой лимит на количество сетевого трафика. В общей сложности разрешают запросить 645 Гб/c. Считаем, сколько нужно для атаки, и набираем регионы таким образом, чтобы получилось необходимое значение.


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


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


Скорее всего, в ответ на заполненную форму попросят какие-то разъяснения, поэтому переписываемся и отвечаем на вопросы до тех пор, пока не получим разрешение на тестирование.

На все согласование уходит примерно три рабочих дня, если отвечать оперативно.


После согласований сталкиваемся с необходимостью подготовить инфраструктуру для тестирования. Дело в том, что во время проверки нам нужно будет оперативно:

• включать инстанс;

• запускать тестовую атаку;

• собирать статистику о ходе проведения;

• останавливать тестовую атаку;

• менять IP-адрес;

• выключать инстанс.


Создание образа инстанса


Выбор типа инстанса

Сначала соберем AWS-образ, который будет содержать необходимые инструменты и скрипты для управления. Первым делом надо выбрать, какой инстанс арендовать. Изучаем характеристики разных типов инстансов: смотрим на цену, объем максимального трафика, мощность CPU (последнее важно, потому что трафик создается мощностями процессора как-никак), затем тестируем реальную производительность и максимальное число запросов. По нашим оценкам, наиболее удобными для тестирования являются инстансы t3.small, но тут каждый выбирает на свой вкус.

Характеристики инстансов можно посмотреть вот тут. Также выбирать и сравнивать инстансы можно здесь.


Запрос на увеличение лимита

Нужно заранее подумать о том, сколько инстансов будет участвовать в тестировании. Дело в том, что Amazon предоставляет для каждого региона свои ограничения на число инстансов. Если у вас есть ощущение, что понадобится больше инстансов, чем доступно по умолчанию, то стоит как можно раньше запросить увеличение лимита. Для этого переходим в раздел Support, создаем обращение типа Service limit increase. Время обработки обращения может быть разным: кто-то отвечает уже на следующий день, предоставляя столько сущностей, сколько было запрошено, кто-то говорит, что не даст запустить больше, чем N инстансов. Были и такие регионы, которые отвечали на запрос около месяца.


Тюнинг производительности

Далее нужно создать образ инстанса, который будет запускаться во время тестирования. Для этого включаем инстанс выбранного типа, производим на нем все настройки, затем сохраняем то, что получилось, в качестве образа (в том же меню Actions, где есть возможность включения инстанса, а также функциональность по созданию образа Image Create Image).

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

Для этого внесем настройки в файл /etc/sysctl.conf:

• Повысим диапазон локальных портов и уменьшим время нахождения сокетов в состоянии FIN_WAIT:

net.ipv4.ip_local_port_range = 1024-65535 (по умолчанию: 32768-61000)
net.ipv4.tcp_fin_timeout = 10 (по умолчанию: 60)

Диапазон локальных портов определяет максимальное количество исходящих сокетов, которое хост может создать из определенного IP.

С настройкой по умолчанию (61 000–32 768) получается 28 233 сокета. С новыми настройками – 64 500.

Fin_timeout определяет минимальное время, в течение которого исходящие сокеты могут находиться в состоянии FIN_WAIT.

Если указаны значения по умолчанию, система может обеспечить не более (61 000–32 768) / 60 = 470 сокетов в секунду.

Увеличивая port_range и уменьшая fin_timeout, мы можем повлиять на способность системы генерировать большее число исходящих соединений.

• Разрешим повторно использовать сокеты в состоянии TIME_WAIT, когда заканчиваются свободные:

net.ipv4.tcp_tw_reuse = 1 

Установка вышеуказанной опции (которая по умолчанию отключена) помогает минимизировать потери на «простаивание» уже отработавших соединений.

Очень подробно о TIME_WAIT рассказано в этой статье.

• Включим опцию tcp_timestamps для работы вышеуказанной опции tcp_tw_reuse:

net.ipv4.tcp_timestamps = 1 – включить опцию `tcp_timestamps` для работы вышеуказанной опции tcp_tw_reuse 

• Остальные опции:

net.ipv4.tcp_max_tw_buckets = 720000 – увеличить возможное количество сокетов в состоянии TIME_WAIT
net.ipv4.tcp_keepalive_time = 600 – уменьшить тайм-аут keepalive-соединений
net. ipv4.tcp_keepalive_probes = 3 – уменьшить количество keepalive-проб
net.ipv4.tcp_keepalive_intvl = 10 – уменьшить временной интервал между keepalive-пробами
net.ipv4.tcp_window_scaling = 1 – разрешить масштабирование TCP-окна
net.ipv4.tcp_mem = 8192 131072 196304 – увеличить размер буферов для TCP-пакетов 
net.ipv4.udp_mem = 8192 131072 196304 – увеличить размер буферов для udp-пакетов
net.ipv4.tcp_slow_start_after_idle=0 – отключить Slow-Start Restart
net.core.wmem_default = 31457280 – установить размер буфера по умолчанию для отправки данных 
net.core.wmem_max = 33554432 – установить максимальный размер буфера для отправки данных  
net.core.somaxconn = 65535 – увеличить размер очереди сокетов в ожидании обработки
net.core.netdev_max_backlog = 65535 – увеличить размер очереди пакетов между сетевой картой и ядром
vm.swappiness = 30 – понизить порог своппинга
vm.dirty_ratio = 50 – очищать буферы по достижении 50 % ОЗУ
vm.pagecache = 90 – ограничить размер файлового кеша

Сценарии тестовых атак

1. Атака на DNS

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

Для генерации подобного трафика подходит утилита DNSPerf.

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

В нашем случае нагружаются authoritative DNS-сервера, обслуживающие одну зону – example.com.

Для DNSPerf предварительно подготовим файл с запросами dns_queries.txt (преимущественно ANY для увеличения времени и размера ответа от DNS-сервера):

#dns_queries. txt
example.com ANY
www.example.com ANY
test.example.com ANY
static.example.com ANY
example.com АААА
www.example.com АААА
test.example.com MX

Пример запуска утилиты:

dnsperf -s TARGET_IP -d dns_queries.txt -c 100 -n 100 
-s = целевой IP-адрес
-d = путь к файлу данных с запросами. По умолчанию – stdin 
-c = количество имитируемых клиентов. Для каждого клиента используется уникальный исходящий номер порта 
-n = количество «прогонки» файла с запросами.

2. Атака на ICMP

Следующим этапом тестирования является оценка устойчивости к большому количеству ICMP-трафика. Так как по техническим причинам у серверов часто должна оставаться возможность отвечать на ping-request, существует вероятность DDoS-атаки с использованием ping-запросов. Помимо указания настроек, исключающих возможность ping-to-death, нужно убедиться в устойчивости серверов к пиковым нагрузкам на ICMP. Для создания таких нагрузок лучше использовать известную утилиту hping3, которая позволяет регулировать количество запросов, интервал между отправками, а также размер пакетов.

Пример запуска утилиты:

hping3 -i u1000 -d 1500 -c 100000 -1 TARGET_IP
-i u100 = интервал между отправляемыми пакетами (uX for X microseconds)
-d 1500 = размер каждого пакета
-c 1000000 = количество пакетов для отправки
-1 = режим ICMP

3. Атака на HTTP

Теперь проверяем на стрессоустойчивость основной функционал сервиса – обработку HTTP(S)-трафика. Одним из самых гибких и простых инструментов для генерации HTTP-трафика является siege. Siege – это многопоточная утилита с открытым исходным кодом, предназначенная для тестирования производительности веб-ресурса.

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

Пример запуска утилиты:

siege -b -c 100 -f test_urls.txt 
-b = без задержек (режим benchmark)
-c = количество имитируемых клиентов.  Для каждого клиента используется уникальный исходящий номер порта 
-f = файл с запросами

Формат содержимого test_urls.txt:

http://example.com/site/login POST login=username&password=test
http://example.com/site/client POST useragent=Mozilla&version=123&date=24May
http://example.com/site/order POST user=username&company=ooo&phone=812345678

Как видите, тесты проводились с использованием преимущественно POST-запросов, требующих обработки на стороне сервера и занимающих наибольшее количество ресурсов по сравнению с другими типами запросов.

Ни в одном из вариантов не используется подмена IP, так как Amazon не позволяет это реализовать. Какой бы src_IP ни был указан в пакете, на выходе с инстанса он будет изменен на правильный.

Все создаваемые запросы должны быть легитимными – никакой волны исходящего трафика без ответа, – так как политика Amazon в отношении DDoS довольно строгая. Даже согласованный стресс-тест отнимает минимум несколько дней на общение с техподдержкой, а при первых «вредоносных» действиях получаем бан порта, с которого выходил трафик, и требование немедленно объясниться. (start|stop|status)$ ]]; then echo «nothing to do: need argument for stop,start or status» exit 1 fi if [[ «$1» = «start» ]]; then shift dnsperf $@ fi if [[ «$1» = «stop» ]]; then kill $(pidof dnsperf) fi if [[ «$1» = «status» ]]; then if [[ ! «$(pidof dnsperf)» = «» ]]; then echo «dnperf is running with PID $(pidof dnsperf)» ps aux | grep dnsperf else echo «dnsperf is not running» fi fi

Как видно из кода, скрипт можно будет запускать и останавливать, а также проверять статус (запущен/не запущен).

Аналогичным образом построены скрипты для ICMP- и HTTP-тестов, запускающие соответственно hping3 и siege с переданной через аргумент строкой параметров.

Примеры команд:

ssh instance-amazon 'sudo dns.sh start -s TARGET_IP -d valid_dns_queries.txt -c 1 -n 100 &>>dns.log &'
ssh instance-amazon 'sudo ping.sh start -i u1000 -d 1500 -c 100000 -1 TARGET_IP &>>ping.log &'
ssh instance-amazon 'sudo http. sh start -b -c 100 -f test_urls.txt &>> http.log &'

Скрипты мониторинга

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

#iptables.sh
sudo iptables -N TRAFFIC_OUT
sudo iptables -A TRAFFIC_OUT -p tcp
sudo iptables -A TRAFFIC_OUT -p udp
sudo iptables -A TRAFFIC_OUT -p icmp
sudo iptables -A OUTPUT -j TRAFFIC_OUT
sudo iptables-save

Скрипт создает новую цепочку TRAFFIC_OUT и добавляет в нее фильтры для нужных протоколов: tcp, udp, icmp.

В цепочку OUTPUT добавляется перенаправление пакетов в TRAFFIC_OUT.

Количество переданных данных можно узнать командой:

# iptables -L TRAFFIC_OUT -v -n -x | tail -n 3 | awk '{print $2/1024/1024,"Mb\t\t\t",$3}’ : 
 2.2 Mb       tcp
 4.4 Mb      udp
 3.2 Mb      icmp

Установим скрипт в качестве сервиса. Для этого создадим файл monitoring.service и переместим его в директорию /etc/systemd/system нашего образа:

# /etc/systemd/system/monitoring.service
[Unit]
After=network.target
[Service]
ExecStart=/usr/local/bin/monitoring.sh
[Install]
WantedBy=default.target

Теперь можно добавить сервис в автозагрузку:

systemctl enable monitoring.service
systemctl start monitoring.service

Управление инстансами

Теперь разберемся с удаленным (максимально автоматизированным) управлением инстансами.

Для этих целей можно использовать механизм AWS CLI – управление с помощью консоли.

Создаем Secret Key (Access keys (access key ID and secret access key)) и настраиваем консоль.

Теперь у нас есть доступ ко всем возможностям учетной записи.

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

Для создания нового инстанса из образа, который мы выше смастерили (подразумеваем, что есть публичный ami-ID, который используем в скрипте), выполним следующие действия:


  • создаем SSH-ключ и добавляем его в AWS:
yes n |ssh-keygen -q -t rsa -f $KEYNAME -m pem -N "" > /dev/null
chmod 400 $KEYNAME
aws ec2 import-key-pair --region $REGION --key-name $KEYNAME --public-key-material file:///$(pwd)/$KEYNAME. pub

  • создаем security-group, который разрешает доступ к машине по SSH. В противном случае входящие SSH-соединения будут запрещаться:
SECURITY="ssh-group"
aws ec2 create-security-group --region $REGION --group-name $SECURITY --description "Just ssh. Nothing more"
IP_RANGE="0.0.0.0/24"
aws ec2 authorize-security-group-ingress --region $REGION  --group-name $SECURITY --protocol tcp --port 22 --cidr $IP_RANGE

  • создаем инстанс с созданными ранее ключом и security-group и указываем ID образа. Число инстансов, создаваемых единовременно, может быть произвольным:
IMG='ami-0d0eaed20348a3389'
NUM=1
aws ec2 run-instances --region $REGION --image-id $IMG --count $NUM --instance-type t2.micro --key-name $KEYNAME --security-groups default $SECURITY > instances.json

  • ждем, пока машина проинициализируется. Это занимает какое-то время: сначала мы получаем ответ об успехе (instances.json), но в это время машина только создана, но еще не запущена (например, ей еще не присвоен IP-адрес). Необходимо дождаться завершения запуска (обычно для этого достаточно минуты).

Затем можно подключиться по SSH, если нам известен IP-адрес. Просто запрашиваем список машин, которые сейчас запущены. Среди их параметров находим PublicDnsName или PublicIpAddress.

aws ec2 describe-instances --region

Далее выполняем SSH-команды, указав SSH-ключ, созданный выше:

ssh -I $KEYNAME -oStrictHostKeyChecking=no ubuntu’'+ins_dns echo‘'O’'

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

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

AWS присваивает новый IP-адрес каждый раз, когда машина запускается. Поэтому для смены IP потребуется выключить и включить машину заново (не нужно ее удалять!).

Разница между выключением и удалением заключается в том, что мы посылаем разные сигналы. Stop – чтобы выключить, terminate – чтобы выключить и сразу же удалить.

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

aws cloudwatch get-metric-statistics --region REGION --namespace AWS/EC2 \
        --statistics Sum --metric-name NetworkIn 
        --start-time $STARTTIME --end-time $FINISHTIME
        --period $PERIOD --dimensions Name=InstanceId,Value=$INCTANCEID

Дополнительно для проведения атаки потребуется наблюдать, жив ли тот сервис, который мы тестируем.

Создаем и запускаем простейший «пинг»-скрипт, который отслеживает доступность целевых портов (53 и 80 в нашем случае).

Пример кода на Python, который позволяет автоматизировать проверку доступности:

def http(url):
    cmd = ['curl', '-w', '"%{time_total}"', '-o', '/dev/null', '-s', url]
    result = check_output(cmd). decode('utf-8')
    result = float(json.loads(result))
    return result * 1000000
def dns(ip, domain):
    cmd = ['dig', 'any', '@'+ip, domain ]
    result = check_output(cmd).decode('utf-8')
    result = int(result.split('Query time:')[1].split('msec')[0])
    return result

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

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

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


Стоит обсудить еще один вопрос, связанный с организацией тестирования, — стоимость всего этого мероприятия.

Amazon предоставляет подробную информацию о тарифах, но нужно понимать, что приходится платить практически за все. Тем не менее многими расчетами можно пренебречь. В первую очередь стоит посчитать стоимость трафика (зависит от региона и от того, какой итоговый объем информации будет передан) и стоимость аренды инстансов (оплата поминутная). Эти пункты образуют примерно 99 % от стоимости всей атаки.

Поэтому стоимость атаки рассчитывается в каждом случае отдельно в зависимости от [масштаба боевых действий] максимальной мощности атаки и числа планируемых запусков.

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

Для того чтобы проиллюстрировать подсчет стоимости проведения нагрузочного тестирования, допустим, что хотим проверить устойчивость DNS-сервера к нагрузке в 10 Гб/c.

Нам известно, что используемые инструменты и возможности инстанса t3. small, запущенного в Мумбаи, позволяют выдать 500 Мб/c с одного запущенного инстанса. Цена за аренду сущности – 0,0224 $ в час, за трафик – 0,01093 $ за 1 Гб. То есть пик атаки означает одновременную работу 20 сущностей.

Мы будем увеличивать мощность атаки постепенно, для этого сначала запустим одну сущность, затем добавим еще по одной каждые 60 с.

Формула расчета стоимости принимает вид:

60 с * (стоимость аренды в секунду) + 60 с * 0,5 Гб/c * (стоимость Гб трафика) = стоимость атаки с одной сущности за 60 с.
1 * (стоимость атаки с одной сущности) + 2 * (стоимость атаки с одной сущности) + ... + 20 * (стоимость атаки с одной сущности) = стоимость всей атаки

Получается, что стоимость одной атаки мощностью в 10 Гб/c на DNS-сервер – примерно 70 $. Отметим, что это приблизительная оценка, так как объем трафика нельзя абсолютно точно спрогнозировать. Подробнее про цены можно почитать здесь. Более того, правильный подход – выполнить проверку несколько раз, чтобы откалибровать настройки тестируемого сервера.

На этом все про организацию нагрузочного тестирования. Желаем не убить ваши серверы в процессе проб и ошибок.

Как работают DDoS-атаки и как их предотвратить

Распределенные атаки типа «отказ в обслуживании» (DDoS) могут причинить большой ущерб. Узнайте, как работают DDoS-атаки, распространенные типы и как предотвратить их на своем сайте.

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

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

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

Как работает DDoS-атака?

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

Как они получают эти ботнеты? Угоняя другие машины. Часто хакер использует вредоносное ПО или неисправленную уязвимость на чужом сервере, чтобы получить к нему доступ с помощью программного обеспечения Command and Control (C2). Используя эти эксплойты, хакеры могут относительно дешевым и простым способом собрать большое количество компьютеров, которые они затем могут использовать для своих гнусных целей.

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

Это может быть что угодно: от детской шалости до мести бизнесу. И хотя на первый взгляд это звучит безобидно, важно знать, что средняя стоимость DDoS-атаки даже для операций малого бизнеса может достигать 120 000 долларов — этого достаточно, чтобы поставить на колени многие малые предприятия. Крупные корпорации могут потерять миллионы.

Аналогия для иллюстрации

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

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

Вот, по сути, что такое DDoS-атака.

Распространенные типы DDoS-атак

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

  • Атака на уровне приложений, или «DDoS-атака на уровне 7» — это попытка исчерпать ресурсы вашего веб-сайта и использовать всю его доступную полосу пропускания. Когда хакер внезапно отправляет большой объем трафика с множества разных компьютеров на сайт, сервер очень быстро перегружается. Неоднократно трафик отправляет запросы на перезагрузку на сервер (например, нажатие «обновить» в вашем браузере). В конце концов, сервер выдает ошибки, потому что больше не может справляться с рабочей нагрузкой.
  • Атака по протоколу немного сложнее, так как она специально нацелена на слабые места в серверах, отправляя запросы на подключение с разных IP-адресов. Для этого не требуется большая система компьютеров. Каждый запрос на подключение требует ответа, и сервер довольно быстро перегружается, так как его ресурсы исчерпываются.
  • Наконец, объемная атака — это другая версия атаки типа «переполнение трафика». В этом случае боты отправляют данные на сервер и ожидают ответа. Сделайте это достаточное количество раз, и ответ станет слишком длинным. Эти данные искусственно усиливаются перед отправкой на сервер, который быстро истощает ресурсы, пытаясь обработать приток.

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

Как предотвратить DDoS-атаку

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

Если атака на ваш веб-сайт еще не происходила, и вы просто хотите предотвратить этот невероятно распространенный тип атаки, рассмотрите следующее.

Разработка плана реагирования

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

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

  • Проверьте свои системы. Все они. Каждый актив, который у вас есть в сети, может стать мишенью. Составьте контрольный список каждой системы, которая может быть уязвима для DDoS-атаки. Когда вас атакуют, вы можете просмотреть список и посмотреть, сможете ли вы изолировать и спасти системы, которые еще не пострадали.
  • Создайте группу реагирования и дайте им четкие задачи. Атака — не время спорить и делегировать полномочия. Это должно было быть сделано уже. Убедитесь, что все роли понятны.
  • Составьте список экстренных сообщений. Также важно понимать, кто что должен знать и когда. Ваши клиенты, ваш поставщик услуг и любые другие поставщики средств обеспечения безопасности должны знать, что происходит, чтобы каждый из них мог отреагировать соответствующим образом.

Теперь это после нападения. Что вы можете сделать прямо сейчас, чтобы подготовиться и предотвратить нападение на вас?

Обновляйте свою систему

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

Если ваш веб-сайт работает на WordPress, перейдите на страницу обновлений и убедитесь, что все было недавно обновлено. Избавьтесь от плагинов, которые устарели и больше не разрабатываются. Вы не хотите рисковать.

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

Когда ваша инфраструктура обновлена, вы можете эффективно свести к минимуму угрозу атаки.

Практика базовой сетевой безопасности

Здесь нет ничего особенного или сложного — надежные пароли (и их регулярное обновление) и безопасные брандмауэры сотворят чудеса для вашей защиты.

Получите надлежащий мониторинг DDoS

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

SiteLock, компания Sectigo, предлагает полные планы безопасности веб-сайтов, которые автоматически сканируют, обнаруживают и блокируют попытки атак, прежде чем они перерастут в нечто более зловещее и разрушительное. Например, одна из функций SiteLock заключается в том, что он соединяет ваш сайт с глобальной сетью доставки контента (CDN), которая не только ускоряет ваш сайт, но и добавляет уровни защиты от DDoS. Другие функции включают брандмауэр веб-приложений (WAF), удаление вредоносных программ и службы резервного копирования.

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

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

Распределенный отказ в обслуживании: как работают DDoS-атаки

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

Финансовый ущерб для предприятий может быть серьезным. Недавнее исследование «Лаборатории Касперского» показало, что DDoS-атака может стоить компании более 1,6 миллиона долларов — ошеломляющая сумма для любой компании. DDoS-атаку можно рассматривать как «дымовую завесу», отвлекающую внимание вашего персонала, пока происходит другая атака, например, кража данных. Это усиливает важность защиты от DDoS-атак любой ценой и принятия необходимых мер безопасности, чтобы избежать катастрофических финансовых потерь.

Анатомия DDoS

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

Этот «ботнет» создан хакером, который использует уязвимую систему, превращая ее в ботмастера. Ботмастер ищет другие уязвимые системы и заражает их вредоносным ПО — чаще всего троянским вирусом. Когда заражено достаточное количество устройств, хакер приказывает им атаковать; каждая система начинает отправлять поток запросов на целевой сервер или сеть, перегружая их, что приводит к замедлению работы или полному сбою.

Существует несколько распространенных типов DDoS-атак, таких как тома, протокол и прикладной уровень. Атаки на основе тома включают в себя UDP, ICMP и любые другие флуд-пакеты с подделкой, которые пытаются использовать полосу пропускания; чем выше скорость передачи данных в битах в секунду (бит/с) при таком типе атаки, тем она эффективнее. Атаки по протоколу направлены непосредственно на ресурсы сервера и включают Smurf DDoS, Ping of Death и SYN-флуд. Если будет достигнута достаточно большая скорость передачи пакетов в секунду, сервер выйдет из строя.

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

Влияние DDoS-атак

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

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

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

Защита от DDoS-атак

w3.org/1999/xhtml»> Существует несколько способов защиты от DDoS-атак. По данным Института разработки программного обеспечения Карнеги-Меллона, одним из наиболее распространенных является ограничение количества попыток входа в систему, которые может сделать любой пользователь, прежде чем его учетная запись будет «заблокирована». Однако в случае DDoS-атаки этот метод может быть использован против компании, эффективно блокируя доступ пользователей к своим компьютерам в течение длительного периода времени. На этот случай в систему всегда должна быть встроена точка аварийного доступа.

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

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

w3.org/1999/xhtml»> Кроме того, компаниям следует отключать любые ненужные или незнакомые сетевые службы, которые могут использоваться в качестве точки проникновения DDoS. Квоты данных и функции разделения диска также помогают ограничить воздействие атаки.

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

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

DDoS: защитите себя

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

Ваш комментарий будет первым

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *