DDOS атака . Объяснение и пример.
Всем привет. Это блог Компьютер76, и сейчас очередная статья об основах хакерского искусства. Сегодня мы поговорим о том, что такое DDOS атака простыми словами и примерами. Перед тем, как бросаться специальными терминами, будет введение, понятное каждому.
- Зачем используется DDOS атака ?
- Почему это вообще возможно?
- Вариант 1.
- Вариант 2.
- Как проводится DDOS атака ?
- Что такое DDOS атака вы можете узнать и попробовать прямо сейчас.
- DDOS атака с помощью программ.
- ПРЕДУПРЕЖДАЮ
- 1. HULK (Король невыносимой нагрузки HTTP)
- 2. Молот Тора
- 3. Слоулорис
- 4. LOIC (низкоорбитальная ионная пушка)
- 5. РУДИ (RU-Dead-Yet)
- 6. Пилорис
- 7. DDOSIM (распределенный симулятор отказа в обслуживании)
- 8. Давосет
- 9. Золотой глаз
- 10. HTTP-ОТПРАВКА OWASP
- 11. ХОИК
- 12. HOIC (высокоорбитальная ионная пушка)
- 13. Гиены
- 14. THC-SSL-DOS
- 15. Инструмент сравнительного анализа Apache
- Лучший инструмент для DDoS-атак для Windows
- DDos атака для новичков
- Как DDOS’ят игровые сервера?
- Похожие статьи
- Зачем искать людей?
- Я вычислю тебя по IP! Шутка ли?
- Поиск по электронному адресу и id
- Что такое DDoS-атака?
- Как работает распределенный отказ в обслуживании (DDoS)?
- Как предотвратить DDoS-атаку?
- Инструменты для проведения DDoS-атаки
- Как выполнить DDoS-атаку на веб-сайт с помощью CMD
- Подготовка
- Согласование нагрузочного тестирования
- Подготовка инфраструктуры
- Создание образа инстанса
- Выбор типа инстанса
- Запрос на увеличение лимита
- Тюнинг производительности
- Сценарии тестовых атак
- Скрипты для запуска атак
- Скрипты мониторинга
- Управление инстансами
- Мониторинг доступности сервиса
- Финансовый вопрос
Зачем используется DDOS атака ?
Взлом WiFi применяется для забора пароля беспроводной сети. Атаки в форме «человек-посередине» позволят слушать интернет-трафик. Анализ уязвимостей с последующей подгрузкой конкретного эксплойта даёт возможность захвата целевого компьютера. А что же делает DDOS атака ? Её цель в конечном итоге — отбор прав на владение ресурсом у законного хозяина. Я не имею ввиду, что сайт или блог вам не будет принадлежать. Это в том смысле, что в случае удачно проведённой атаки на ваш сайт, вы потеряете возможность им управления. По крайней мере, на некоторое время.
Однако в современной интерпретации DDOS атака чаще всего применяется для нарушения нормальной работы любого сервиса. Хакерские группы, названия которых постоянно на слуху, совершают нападения на крупные правительственные или государственные сайты с целью привлечь внимание к тем или иным проблемам. Но почти всегда за такими атаками стоит чисто меркантильный интерес: работа конкурентов или простые шалости с совсем неприлично незащищёнными сайтами. Главная концепция DDOS состоит в том, что к сайту единовременно обращается огромное количество пользователей, а точнее запросов со стороны компьютеров-ботов, что делает нагрузку на сервер неподъёмным. Мы нередко слышим выражение «сайт недоступен», однако мало, кто задумывается, что скрыто на самом деле за этой формулировкой. Ну, теперь-то вы знаете.
Почему это вообще возможно?
База данных, она же БД, любого веб приложения сконфигурирована таким образом, что сервер просто обязан что-то ответить на запрос удалённого хоста. Ну представьте, что вы вводите пароль и логин на какой-то из социальных страниц, а в ответ — тишина. Не хочу, мол, отвечать. И вы знаете, что сервер вам по любому вернёт либо подтверждение входа либо запрет на его посещение. Нам с вами, чтобы «спровоцировать» сервер на какое-то действие стоит лишь кнопкой мыши по заранее подготовленной веб-форме нажать
. А в это время на стороне сервера запускаются порой сложнейшие механизмы аутентификации, подбора и выдачи SQL операторов, идёт подгрузка дополнительного гипертекста и т.д. и т.п. И вот что могут хакеры дальше…
Вариант 1.
игроки столпились у входа
Представьте, что вы играете в многопользовательскую онлайн игру. С вами играют тысячи игроков. И с большинством из них вы знакомы. Вы обговариваете детали и в час Х проводите следующие действия. Вы все единовременно заходите на сайт и создаёте персонаж с одним и тем же набором характеристик. Группируетесь в одном месте, блокируя своим количеством одновременно созданных персонажей доступ к объектам в игре остальным добросовестным пользователям, которые о вашем сговоре ничего не подозревают.
Вариант 2.

Представьте, что кому-то вздумалось нарушить автобусное сообщение в городе по определённому маршруту с целью не допустить добросовестных пассажиров к пользованию услугами общественного транспорта. Тысячи ваших друзей единовременно выходят на остановки в начале указанного маршрута и бесцельно катаются во всех машинах от конечной до конечной, пока деньги не кончатся. Поездка оплачена, но никто не выходит ни на одной остановке, кроме конечных пунктов назначения. А другие пассажиры, стоя на промежуточных остановках, грустно смотрят удаляющимся маршруткам вслед, не сумев протолкнуться в забитые автобусы. В прогаре все: и владельцы такси, и потенциальные пассажиры.
В реальности эти варианты физически не претворить в жизнь. Однако в виртуальном мире ваших друзей могут заменить компьютеры недобросовестных пользователей, которые не удосуживаются хоть как-то защитить свой компьютер или ноутбук. И таких подавляющее большинство. Программ для проведения DDOS атаки множество. Стоит ли напоминать, что такие действия противозаконны. А нелепо подготовленная DDOS атака, неважно с каким успехом проведённая, обнаруживается и карается.
Как проводится DDOS атака ?
Кликая по ссылке сайта, ваш браузер отсылает запрос серверу на отображение искомой страницы. Этот запрос выражается в виде пакета данных. И не одного даже, а целого пакета пакетов! В любом случае объём передаваемых данных на канал всегда ограничен определённой шириной. А объём данных, возвращаемых сервером, несоизмеримо больше тех, что содержаться в вашем запросе. У сервера это отнимает силы и средства. Чем более сильный сервер, тем дороже он стоит для владельца и тем дороже предоставляемые им услуги. Современные серверы легко справляются с резко возросшим наплывом посетителей. Но для любого из серверов всё равно существует критическая величина пользователей, которые хотят ознакомиться с содержанием сайта. Тем яснее ситуация с сервером, который предоставляет услуги по хостингу сайтов. Чуть что, и сайт-потерпевший отключается от обслуживания, дабы не перегрузить процессоры, которые обслуживают тысячи других сайтов, находящиеся на том же хостинге. Работа сайта прекращается до момента, когда прекратится сама DDOS атака . Ну, представьте, что вы начинаете перезагружать любую из страниц сайта тысячу раз в секунду (DOS). И тысячи ваших друзей делают на своих компьютерах тоже самое (distributed DOS или DDOS)… Крупные серверы научились распознавать, что началась DDOS атака , и противодействуют этому. Однако хакеры тоже совершенствуют свои подходы. Так что в рамках этой статьи, что такое DDOS атака более развёрнуто, я уже объяснить не смогу.
Что такое DDOS атака вы можете узнать и попробовать прямо сейчас.
Если вы решитесь попробовать, все несохранённые данные будут утеряны, для возвращения компьютера в рабочее состояние потребуется кнопка . Но вы сможете узнать, что конкретно «чувствует» сервер, на который напали. Развёрнутый пример абзацем ниже, а сейчас — простые команды на перегрузку системы.
- Для Линукс в терминале наберите команду:
:(){ :|:& };:Система откажется работать.
- Для Windows предлагаю создать бат-файл в Блокноте с кодом:
:1 Start goto 1
Назовите типа DDOS.bat
Объяснять смысл обоих команд, я думаю, не стоит. Видно всё невооружённым взглядом. Обе команды заставляют систему исполнить скрипт и тут же его повторить, отсылая в начало скрипта. Учитывая скорость исполнения, система впадает через пару секунд в ступор. Game, как говориться, over.
DDOS атака с помощью программ.
Для более наглядного примера воспользуйтесь программой Low Orbit Ion Cannon (Ионная пушка с низкой орбиты). Или LOIC. Самый скачиваемый дистрибутив располагается по адресу (работаем в Windows):
! Ваш антивирус должен отреагировать на файл как на вредоносный. Это нормально: вы уже знаете, что качаете. В базе сигнатур он помечен как генератор флуда — в переводе на русский это и есть конечная цель бесконечных обращений на определённый сетевой адрес. Я ЛИЧНО не заметил ни вирусов, ни троянов. Но вы вправе засомневаться и отложить загрузку.

Так как нерадивые пользователи забрасывают ресурс сообщениями о вредоносном файле, Source Forge перекинет вас на следующую страницу с прямой ссылкой на файл:

Окно программы выглядит вот так:

Пункт 1 Select target позволит злоумышленнику сосредоточиться на конкретной цели (вводится IP адрес или url сайта), пункт 3 Attack options позволит выбрать атакуемый порт, протокол (Method) из трёх TCP, UDP и HTTP. В поле TCP/UDP message можно ввести сообщение для атакуемого. После проделанного атака начинается по нажатии кнопки IMMA CHARGIN MAH LAZER (это фраза на грани фола из популярного некогда комикс—мема; американского мата в программе, кстати, немало). Всё.
ПРЕДУПРЕЖДАЮ
Этот вариант для опробывания только для локального хоста. Вот почему:
- против чужих сайтов это противозаконно, и за это на Западе уже реально сидят (а значит, будут скоро сажать и здесь)
- адрес, с которого идёт флуд, вычислят быстро, пожалуются провайдеру, а тот вынесет вам предупреждение и напомнит про первый пункт
- в сетях с низким пропускным каналом (то есть во всех домашних) вещица не сработает. С сетью TOR всё тоже самое.
- если её настроить должным образом, вы быстрее забьёте именно СВОЙ канал связи, чем навредите кому-то. Так что это именно тот вариант, когда груша бьёт боксёра, а не наоборот. И вариант с прокси будет проходить по тому же принципу: флуд с вашей стороны не понравится никому.
Распределенная атака типа «отказ в обслуживании» (DDoS) — это разновидность атаки «отказ в обслуживании» (DoS), которая переполняет целевую сеть, веб-сайт и сервер фальшивым трафиком, чтобы нарушить нормальный трафик. Как правило, атаки являются случайными, и цель автоматически выбирается онлайн-инструментом DDoS-атаки, но онлайн-атака DDoS также может быть специально нацелена на конкретную сеть, веб-сайт и сервер. Вся информация, представленная в этом блоге, носит исключительно образовательный характер, мы не поддерживаем какую-либо незаконную деятельность вредоносных программ в Интернете. DDoS-атаки являются незаконными в большинстве стран мира, и в США лицо, признанное виновным, может быть заключено в тюрьму на срок до 10 лет.
DDoS-атаку можно использовать как во благо, так и во вред. В основном он используется хакерами для получения известности, чтобы нарушить работу серверов или служб жертвы. Существует множество инструментов для проведения DDoS-атак онлайн.
Ниже перечислены лучшие бесплатные инструменты DDoS, доступные для загрузки, с их функциями.
1. HULK (Король невыносимой нагрузки HTTP)

Этот инструмент отправляет малоизвестный и уникальный трафик на веб-сервер. Это инструмент атаки типа «отказ в обслуживании», но отправляемый им трафик может быть заблокирован, и злоумышленник может не быть полностью анонимным. ХАЛК претендует на то, чтобы быть созданным только для исследовательских целей, хотя его можно использовать не только для исследовательских целей.
- На целевой веб-сервер генерируется большой объем уникального трафика.
Труднее обнаружить, но не невозможно.
- Поражает непосредственно пул ресурсов сервера, минуя механизм кэширования.
2. Молот Тора

Лучше всего использовать его с сетью Tor, чтобы оставаться неопознанным при проведении DDoS-атаки. Чтобы использовать его с сетью Tor, используйте этот адрес 127.0.0.1:9050. Молот Тора создан для целей тестирования, но его можно использовать для медленной пост-атаки. Используя Tor’s Hammer, пользователь может атаковать серверы IIS и Apache.
- Специализируется на анонимных атаках.
- Также используется для проведения демонстрационных атак пентестерами на структуры безопасности.
- Работает на уровне 7 модели OSI.
3. Слоулорис

Слоулорис представляет собой многоуровневое приложение, которое атакует многопоточные серверы, используя частичные HTTP-запросы для открытия соединений между целевым веб-сервером и отдельным компьютером, после чего соединения остаются открытыми в течение более длительного времени, чтобы заполнить и замедлить целевые серверы трафиком.
- Проводите атаки, отправляя законные HTTP-запросы.
- Может поддерживать соединение с сервером-жертвой столько времени, сколько это необходимо.
- Требуется минимальная пропускная способность на целевом веб-сервере.
4. LOIC (низкоорбитальная ионная пушка)

- В основном используется для атаки на небольшие серверы.
- Доступно на Linux, Windows и Android.
- Простота в использовании, несколько шагов, чтобы инициировать атаку.
5. РУДИ (RU-Dead-Yet)

РУДИ автоматически просматривает целевой DDoS-сайт и находит встроенные веб-формы. Он выполняет только короткие медленные DDoS-атаки уровня 7, которые реализуются с использованием длинных полей, которые генерируют низкую и медленную скорость трафика.
- Трудно обнаружить.
Интерактивное консольное меню.
- Работает в медленном темпе.
6. Пилорис

Пилорис — это инструмент для проверки уязвимости сервера к исчерпанию соединения с использованием общего количества одновременных TCP-соединений, если есть ограничение на то же самое. Службы, которые занимают много памяти на одно соединение или обрабатывают соединение в независимых потоках, чаще всего подвержены этой форме уязвимости.
- Атаки могут быть совершены на SMTP, HTTP, FTP, Telnet и IMAP.
- Интерактивный и удобный интерфейс после установки.
- Использует прокси SOCK и соединения SSL.
7. DDOSIM (распределенный симулятор отказа в обслуживании)

ДДОСИМ заключается в имитации DDoS-атаки как на сайте, так и в сети. Он атакует сервер, копируя различные хосты-зомби, после чего эти хосты устанавливают полное TCP-соединение с сервером или сетью.
HTTP DDoS-атаки могут быть выполнены с использованием действительных запросов.
- DDoS-атаки могут быть совершены с использованием недействительных запросов.
- Работает на Linux и Windows.
8. Давосет

Давосет используется для проведения атак на веб-сайты путем получения доступа через другие сайты. Этот конкретный метод в последнее время используется хакерами для злонамеренной деятельности в Интернете. Этот инструмент поможет вам легко проводить DDoS-атаки.
- Обеспечивает поддержку файлов cookie.
- Бесплатное программное обеспечение, предоставляющее пользовательский интерфейс командной строки для совершения атаки.
- Проводит атаку с использованием внешних сущностей XML.
9. Золотой глаз

Золотой глаз Инструмент проводит атаку, отправляя HTTP-запрос на целевой сервер. Он использует все сокеты HTTP/S, имеющиеся на целевом сервере, для DDoS-атаки.
- Рандомизирует GET, POST для получения смешанного трафика.
- Написано на Питоне.
- Легко использовать.
10. HTTP-ОТПРАВКА OWASP

HTTP-сообщение Open Web Application Security Project (OWASP) помогает вам проверить сетевую производительность ваших веб-приложений. Это позволяет вам составить отказ в обслуживании с одной DDoS-машины онлайн.
- Пользователи могут выбирать мощность сервера.
- Бесплатное использование даже в коммерческих целях.
- Позволяет пользователю тестировать атаки на прикладном уровне.
11. ХОИК

Хоик это инструмент, который проводит атаки на небольшие веб-сайты с использованием сообщений TCP, UDP. Атаки Xoic легко обнаруживаются и блокируются.
- Поставляется с тремя режимами для атаки.
- Очень прост в использовании.
- Выполняет DoS-атаки с помощью сообщений ICMP, UDP, HTTP или TCP.
12. HOIC (высокоорбитальная ионная пушка)

Высокоорбитальная ионная пушка (HOIC) это инструмент, который был выпущен для замены LOIC. Он может проводить 256 одновременных сеансов атаки одновременно. Заполнение целевой системы ненужными запросами, чтобы законный запрос не мог быть обработан.
- Полностью бесплатное использование.
- Доступно для Windows, Mac и Linux.
- Разрешить пользователям контролировать атаки с низкими, средними и высокими настройками.
13. Гиены

Гиены позволяет вам производить несколько атак MITM, DoS и DDoS, которые поставляются с кластерным удаленным демоном и интерактивным помощником по атаке.
- Множество функций, таких как переполнение ARP-запросов, отравление ARP-кэша, переполнение ICMP-эхо и т. д.
- Интеллектуальное определение адреса и протокола адреса.
- Умная рандомизация на основе подстановочных знаков.
14. THC-SSL-DOS

THC-SSL-DOS это инструмент, который помогает пользователю успешно провести атаку на целевой веб-сайт, исчерпав все SSL-соединения и отключив сервер жертвы.
- Пользователи могут проверить производительность SSL.
- Также использует функцию безопасного повторного согласования SSL.
- Поддерживает Linux, Windows и macOS.
15. Инструмент сравнительного анализа Apache

Инструмент сравнительного анализа Apache в основном используется для тестирования загрузки серверов путем отправки многочисленных одновременных запросов. Кроме того, его также можно использовать для проведения DDoS-атаки.
- Может протестировать любой HTTP-сервер.
- Отображает результат в конце.
- Поддерживает Windows и macOS.
Лучший инструмент для DDoS-атак для Windows
Все перечисленные выше инструменты являются инструментами DDoS-атаки для Окна. Некоторые из них также доступны в других операционных системах, таких как Linux и macOS.
DDoS-атаки незаконны, но есть способы, которыми они используются для абсолютно законных действий, таких как блокировка вашего собственного сервера или службы, которые вы не хотите привлекать внимание людей в Интернете, и мы надеемся, что ваш запрос на лучшую DDoS-атаку онлайн-инструмент предназначен для хороших и законных целей. Надеюсь, мы ответили на все ваши вопросы, связанные с загрузкой лучшего инструмента DDoS. Дайте нам свои отзывы в комментариях ниже.

DDos атака для новичков
DoS-атака — атака на вычислительную систему с целью довести её до отказа, то есть создание таких условий, при которых легитимные (правомерные) пользователи системы не могут получить доступ к предоставляемым системой ресурсам (серверам), либо этот доступ затруднён. Отказ «вражеской» системы может быть и шагом к овладению системой (если во внештатной ситуации ПО выдаёт какую-либо критическую информацию — например, версию, часть программного кода и т. д.). Но чаще это мера экономического давления: простои службы, приносящей доход, счета от провайдера и меры по уходу от атаки ощутимо бьют «цель» по карману.
Если атака выполняется одновременно с большого числа компьютеров, говорят о DDoS-атаке (от англ. Distributed Denial of Service, распределённая атака типа «отказ в обслуживании»). В некоторых случаях к фактической DDoS-атаке приводит непреднамеренное действие, например, размещение на популярном интернет-ресурсе ссылки на сайт, размещённый на не очень производительном сервере (слэшдот-эффект). Большой наплыв пользователей приводит к превышению допустимой нагрузки на сервер и, следовательно, отказу в обслуживании части из них.
На благо Анонимусов я напишу эту статью, дабы поднять уровень знаний в этой области.
Лучше Ддосить НТТР методом т.к. остальные сложны в обращении!
Обучение программе Loic:
Loic Ддосит большим количеством ложных запросов, в итоге сайт сам себе засерает интернет-канал. Для «Быстрого» Ддоса лучше пользоваться им. Бытует мнение, что Лоик – самый мощный паблик Ддосер, это неправда, есть паблик ддосеры, в 70. Раз эффективнее лоика(200 потоков Ддосера = 5000 потоков Лоика).
1. Скачиваем Лоик(Архив в самом
2. Вверху мы видим 2 поля: в 1-м пишем адрес цели, во 2-м IP жертвы.(пр. http://dom2.ru/ )
3. Нажимаем «Lock on»
Как DDOS’ят игровые сервера?
Настраиваем метод(Где ТРС написано) ставим НТТР
5. Threads – потоки, на среднем компе ставим 100-200(если не банят по IP, то 250+)
6. Выбираем порт(см. Приложение 1)
7. Жмем «IMMA CHARGIN MAH LAZER» это значит «ОГОНЬ. 111»
В одиночку Лоиком ни один сайт не уложить(минимум 5 человек)
Обучение программе Hoic:
3. Вводим адрес цели(пр. http://dom2.ru/ )
4. Передвигаем ползунок в сторону High
5. Выбираем тип атаки(из 4) ставим GenericBoots.hoic
7. Нажимаем стрелку вправо и смотрим как потоки доходят до 20(в принципе хватит)(см. Приложение 2)
8. Ну и на кнопочку «FIRE THE LAZER!» нажимаем
В одиночку Хоиком сайт тоже не уложишь, минимум 3-е нужно
Обучение программе Sprut:
Спрут – слабая программа для Ддоса, она бьет не по самому серверу, а по портам, следовательно обычные пользователи не могут подключиться.
1. Вводим IP или адрес жертвы (Пр. dom2.ru )(Только в таком виде, без http://)
2. Ставим порт(80)(см. Приложение 1)
3. Потоки(50-100 хватит)
Предварительно просканируйте порты у ресурса.
Когда идет запрос в 443 порт, запрос шифруется сервером(затрачивая ресурсы), потом расшифровывается, обрабатывается, далее опять зашифровывается и отправляется назад, но для Лоика и Хоика шифр не важен.
Похожие статьи
Как найти человека через программу Skype
Как узнать адрес человека, зная ip его компьютера?
Как по фото найти человека «В Контакте»? Другие способы поиска людей «ВКонтакте»
Найти человека по IP
Как найти человека по айпи адресу вконтакте
![]()
Наверное каждый хотел пошутить над другом/подругой, выключив интернет, во время файта в каком нибудь шутере, так вот в этой статье, вы узнаете как выключить интернет зная только IP человека, в этом нам поможет сервис fruitStresser.
1) Переходим на сайт сервиса fruitStresser (тут).
2) Проходим регистрацию.
Интернет наполнен разнообразной информацией. Каждый день миллионы пользователей ищут и находят то, что им нужно. Однако, осуществляя поиск и пользуясь интернетом в других целях, люди оставляют определенную информацию о себе.
Эти данные могут быть использованы для определения личности ( полного или частичного ) и местонахождения человека:
Любое подключение к сети не обходится без предоставления IP адреса. Это тот номер, по которому определяется пользователь интернета. Какое бы то ни было действие во Всемирной паутине привязано к IP адресу, который уже в свою очередь относится к конкретному человеку или организации.
В данной статье будут даны советы по тому, как найти человека по IP адресу. Также будет рассмотрен поиск по ID и электронному адресу.
Зачем искать людей?
Конечно, в мире существуют аналоги известного телевизионного проекта « Жди меня », и одни люди ищут других исключительно с благими намерениями и из добрых побуждений. Однако, во многих случаях причины совершенно иные. Ниже приведены наиболее популярные.
- Необходима информация о человеке, который нарушил закон. Правоохранительные органы имеют право получать персональные данные у интернет-провайдеров, однако те, кто скрывается от правосудия, чаще всего заботятся о максимально возможном сохранении анонимности;
- Необходимость собирать пользовательскую статистику. Этим занимаются специальные программы, которые позволяют определить географическое положение и некоторые другие данные пользователя;
- Интерес. Часто у нас имеются в наличии лишь частичные данные о том или ином человеке. Адрес электронной почты или ID в социальной сети ничего не скажут тем, у кого нет доступа к интернету. Однако, попав в сеть, в большинстве случаев этих данных более чем достаточно.
Я вычислю тебя по IP! Шутка ли?
Наверняка, те, кто имеет опыт участия в онлайн-играх, хоть раз в жизни натыкались на ставшую уже афоризмом фразу « Да я тебя по IP вычислю !».
Чаще всего, те, кто её произносят, понятия не имеют, что такое IP адрес, но так уж повелось.
Тем не менее, получить данные о физическом расположении владельца IP адреса достаточно легко, и это, без преувеличения, под силу каждому. Во-первых, нужно иметь сам адрес.
Если у вас есть собственный сайт, то вы можете получить информацию об IP адресах посетителей. Правда, решение о предоставлении подобных данных принимает хостинг-провайдер ( и причина должна быть достаточно веской ). Чтобы получить контроль над информацией о посетителях, лучше пользоваться выделенным сервером.
Если же сайта у вас нет, то можно пойти менее честными путями и « одарить » свою « цель » ссылкой ( сгенерировать можно на iplogger.ru ):
Перейдя по ней, жертва « засветит » вам свой IP адрес. Однако перед тем как узнать IP адрес человека подобным способом, следует серьезно задуматься о необходимости таких действий.
Некоторые почтовые сервисы ( например, mail.ru или yandex.ru ) позволяют узнать информацию об отправителе письма, в том числе и его IP адрес.
Когда « на руках » имеется IP адрес, любой пользователь может получить информацию о владельце данного IP . Для этого достаточно воспользоваться одним из онлайн-сервисов, которые предоставляют whois -данные ( к примеру, whoisinform.ru ):
Полученная информация позволит установить лицо или компанию, на которую зарегистрирован IP . Также вам будут предоставлены контактные данные и физический адрес. Таким образом, можно сказать, что зная IP , мы знаем о человеке всё. Но здесь стоит сделать важное уточнение: человек, о котором нам « известно всё » – это владелец IP адреса, а не его пользователь.
Но не так просто дело обстоит и с владельцем, иначе все школьники уже бы давным-давно нашли друг друга по IP и никогда этим больше не угрожали. Всё дело в том, что IP адреса делятся на статические и динамические. Статический адрес остается постоянным при каждом новом подключении к интернету, а динамический же, напротив, изменяется.
Не меняющийся адрес, как правило, заказывают специально, и за него требуется платить деньги; добытая о нём информация позволяет однозначно определить владельца, но такие люди, в большинстве случаев, и не стремятся себя скрыть. Если же вы заполучили физический адрес человека, то такие сервисы, как Google Maps или Яндекс.Карты позволят быстро определить маршрут к месту назначения:
Динамические адреса получают обычные пользователи при каждом подключении к интернету. Адрес выделяется провайдером из определенного диапазона, поэтому whois даст информацию лишь о том, кто предоставляет услуги доступа в интернет. Естественно, данные о каждом пользователе хранятся у провайдера, но чтобы их получить, потребуется устроиться на работу в правоохранительные органы.
Поиск по электронному адресу и id
Часто бывает так, что о человеке вам известен лишь его электронный адрес или ID в социальной сети. Фамилия и имя же указаны не настоящие, поэтому личность определить невозможно. Для того чтобы получить больше информации, стоит воспользоваться следующими рекомендациями:
- Ищите « след ». В некоторых случаях люди используют часть адреса электронной почты в качестве никнейма на сайтах. Поищите в поисковых системах: не оставил ли этот пользователь более полную информацию о себе где-либо еще. Также можно воспользоваться такими сервисами, как poiskmail.com , которые позволяют проверить регистрацию пользователей с таким никнеймом на других сайтах:

- Для тех, кто хочет узнать, как по электронному адресу найти человека, не помешает информация о поиске по IP адресу. Как было упомянуто выше, электронные почтовые системы предоставляют информацию об IP . Чтобы вытащить из письма IP отправителя, к примеру, на mail.ru , необходимо перейти к тексту письма, после чего нажать на вкладку « Ещё ». В выпавшем меню выбрать пункт « Служебные заголовки ». В открывшемся окне наблюдаем IP адрес отправителя;
- Втереться в доверие. Если вам так уж нужно иметь больше информации о скрывающемся пользователе, то попробуйте пообщаться с ним, изменив свое имя. Социальные сети дают возможность регистрировать более одного аккаунта. Кто знает, может, если создать правильный образ, люди вам откроются. Однако всегда следует помнить об этичности.
В конечном счете, информация, добытая о человеке, будет чаще всего ограничиваться данными об интернет-провайдере, но в некоторых ситуациях это не так уж и мало.
Сегодня хакеру очень легко взломать незащищенный веб-сайт. Даже одна лазейка на веб-сайте или в приложении позволяет хакеру взломать его различными методами. И DDoS-атака — один из широко используемых методов для этого. Используя DDoS-атаку, любой небольшой веб-сайт можно очень легко вывести из строя. Итак, давайте разберемся в этом глубже.

Прежде чем научиться выполнять DDoS-атаку, вы должны понять, что такое DDoS-атака.
Что такое DDoS-атака?
DDoS означает « D istributed D enial о е S е р в ». DDoS-атака — это кибератака, при которой злоумышленник пытается сделать веб-сайт, сеть или машину недоступными для предполагаемых пользователей, временно нарушив работу служб хоста, подключенного к Интернету. Такие атаки обычно осуществляются путем одновременного попадания слишком большого количества запросов в целевой ресурс, такой как веб-серверы, сети, электронные письма и т. Д. Из-за этого сервер не может ответить на все запросы одновременно и приводит к его сбою или замедлению.
Как работает распределенный отказ в обслуживании (DDoS)?
У каждого сервера есть предопределенная способность обрабатывать запросы за раз, и он может обрабатывать только это количество запросов в это время. Для реализации DDoS-атаки на сервер на сервер одновременно отправляется большое количество запросов. Из-за этого прерывается передача данных между сервером и пользователем. В результате веб-сайт выходит из строя или временно отключается, поскольку он теряет выделенную пропускную способность.
Как предотвратить DDoS-атаку?
DDoS-атаку можно предотвратить:
- Установка исправлений безопасности .
- Использование систем обнаружения вторжений для выявления и даже пресечения любых незаконных действий.
- Использование брандмауэра для блокировки всего трафика, исходящего от злоумышленника, путем определения его IP-адреса.
- Или с помощью маршрутизатора, настроенного через список управления доступом (ACL), чтобы ограничить доступ к сети и отбросить подозрительный нелегальный трафик.
Инструменты для проведения DDoS-атаки
Ниже приведены инструменты, обычно используемые для выполнения DDoS-атаки.
Он используется для генерации случайных пакетов. Работает на окнах. Из-за особенностей программы, если у вас есть антивирус, он, скорее всего, будет обнаружен как вирус.
2. Земля и ЛаТьерра
Этот инструмент можно использовать для наводнения сети жертвы несколькими пакетами UDP .
Если вам интересно узнать, как выполнить DDoS-атаку и вывести из строя любой веб-сайт, продолжайте читать эту статью, поскольку в этой статье дается пошаговый метод выполнения DDoS-атаки с использованием командной строки (CMD).
Как выполнить DDoS-атаку на веб-сайт с помощью CMD
Чтобы выполнить DDoS-атаку на веб-сайт с помощью командной строки (CMD), выполните следующие действия:
Примечание . Для проведения этой атаки у вас должно быть хорошее интернет-соединение с неограниченной пропускной способностью.
1. Выберите веб-сайт, на котором вы хотите выполнить DDoS-атаку.
а. Откройте командную строку .

б. Введите команду ниже и нажмите клавишу ввода.
ping www.google.com –t
Примечание. Замените www.google.com веб-сайтом, на котором вы хотите выполнить DDoS-атаку.



Используя указанную выше команду, на компьютер жертвы будет отправлено бесконечное количество пакетов данных 65500.
В приведенной выше команде:
- Пинг отправляет пакеты данных на сайт жертвы.
- IP-адрес выбранного веб-сайта — это IP-адрес веб-сайта жертвы.
- В -t означает , что пакеты данных должны быть отправлены , пока программа не останавливается.
- В -l указывает загрузки данных , которые должны быть отправлены на сайт жертвы.
- Значение 65500 — это количество пакетов данных, отправленных на сайт жертвы.
4. Нажмите кнопку ввода, чтобы запустить команду, и обязательно запускайте ее несколько часов.
Примечание. Чтобы сделать атаку более эффективной, вы должны выполнить атаку на веб-сайт жертвы с помощью эхо-запросов с более чем одного компьютера. Для этого просто запустите указанную выше команду на нескольких компьютерах одновременно.
5. Теперь посетите веб-сайт через 2 или 3 часа. Вы заметите, что веб-сайт временно не работает или сервер отображает сообщение о недоступности .
Таким образом, внимательно следуя каждому шагу, вы сможете выполнить успешную DDoS-атаку на веб-сайт, используя только командную строку, чтобы отключить или временно вывести его из строя.

Вы также можете увидеть эффект DDoS-атаки на целевой веб-сайт, используя диспетчер задач и просмотрев сетевую активность.
Чтобы увидеть эффект DDoS-атаки на целевой веб-сайт, выполните следующие действия.
1. Откройте диспетчер задач на компьютере.
2. Щелкните правой кнопкой мыши и выберите Запустить диспетчер задач .
3. Вы увидите шесть вкладок под строкой меню. Нажмите на Сеть
4. Вы увидите результаты, аналогичные результатам, показанным на рисунке ниже.

Вывод заключается в том, что если 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:Есть несколько нюансов:
У нас спрашивают, кого будем «дубасить». Имеем ли мы на это право? Говорим, что это наш ресурс (по всей видимости, никто не проверяет, так ли это) и что тестирование полностью согласовано.
Нам нужно обозначить, сколько трафика создадим в каждом из регионов. В ходе переписки выясняем, что каждый регион имеет свой лимит на количество сетевого трафика. В общей сложности разрешают запросить 645 Гб/c. Считаем, сколько нужно для атаки, и набираем регионы таким образом, чтобы получилось необходимое значение.
Требуется описать, в какое время будет проводиться атака, как долго будет длиться и как будет расти ее мощность. В свободной форме, но достаточно подробно рассказываем о своих планах. Атака проводится с постепенным увеличением мощности, поэтому расписываем, какие этапы будут у тестирования и какая максимальная мощность предполагается на каждом из них. Дату атаки можно не указывать с точностью до дня, вполне можно обозначить диапазон в две-три недели.
И в обязательном порядке всеми силами стараемся заверить, что будем вести себя хорошо, внимательно наблюдать за ходом тестирования и остановим его по первому требованию в случае необходимости.
Скорее всего, в ответ на заполненную форму попросят какие-то разъяснения, поэтому переписываемся и отвечаем на вопросы до тех пор, пока не получим разрешение на тестирование.
На все согласование уходит примерно три рабочих дня, если отвечать оперативно.
Подготовка инфраструктуры
После согласований сталкиваемся с необходимостью подготовить инфраструктуру для тестирования. Дело в том, что во время проверки нам нужно будет оперативно:
• включать инстанс;
• запускать тестовую атаку;
• собирать статистику о ходе проведения;
• останавливать тестовую атаку;
• выключать инстанс.
Создание образа инстанса
Выбор типа инстанса
Сначала соберем 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 = режим ICMP3. Атака на 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 довольно строгая. Даже согласованный стресс-тест отнимает минимум несколько дней на общение с техподдержкой, а при первых «вредоносных» действиях получаем бан порта, с которого выходил трафик, и требование немедленно объясниться.
Скрипты для запуска атак
Для удаленного управления тестами подготовим bash-скрипты (dns.sh, ping.sh, http.sh), запускающие нужный вид атаки, и файлы с пейлоадами (test_urls.txt, valid_dns_queries.txt).
Когда мы загрузим все это на AWS-образ (из которого и будут создаваться все инстансы), каждый тест можно будет запускать удаленно командой следующего формата:
ssh instance-amazon 'sudo <stress-script>.sh start <params> &>>stress.log &'В качестве stress-script.sh указывается скрипт нужного типа, а params — соответствующие параметры. В файле stress.log мы будем отслеживать вывод запущенной утилиты. Для удобства будем использовать разные логи для разных утилит: dns.log, ping.log, http.log.
Пример скрипта dns.sh:
#!/bin/bash
if [[ ! "$1" =~ ^(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-адрес). Необходимо дождаться завершения запуска (обычно для этого достаточно минуты).
aws ec2 describe-instances --regionДалее выполняем SSH-команды, указав SSH-ключ, созданный выше:
ssh -I $KEYNAME -oStrictHostKeyChecking=no ubuntu’'+ins_dns echo‘'O’'SSH-команды позволяют управлять атакой и получать всю информацию о состоянии атаки, так как мы снабдили инстансы всеми необходимыми скриптами и инструментами.
Разница между выключением и удалением заключается в том, что мы посылаем разные сигналы. 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 $. Отметим, что это приблизительная оценка, так как объем трафика нельзя абсолютно точно спрогнозировать. Подробнее про цены можно почитать здесь. Более того, правильный подход – выполнить проверку несколько раз, чтобы откалибровать настройки тестируемого сервера.
На этом все про организацию нагрузочного тестирования. Желаем не убить ваши серверы в процессе проб и ошибок.

