DDoS — распределенные атаки типа «отказ в обслуживании»

DoS‑атака или Denial of Service attack — это атака типа «отказ в обслуживании».

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

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

DDoS — это не про HighLoad или производительность

DoS или DDoS не стоит путать с падением производительности или сбоями под нагрузкой.

Начнём с того, что 9 из 10 случаев, когда Заказчик говорит, что его проект DDoS"ят — это заблуждение, вызванное тем, что сайт просто «тормозит» по другим причинам: плохая архитектура приложения или недостаточно мощное хостинговое оборудование.

  • Реальный DDoS стоит для его инициатора денег и редко длится неделями, как это бывает у «заблуждающихся».
  • В принципе не DDoS"ят «местячковые» проекты, которые посещает не больше несколько сотен человек в сутки — они просто никому «дорогу не переходят».
  • Если сайт на дешёвом виртуальном хостинге, то там и легитимные посетители способны «положить» инфраструктуру.
  • Проекты, сделанные дёшево и «на коленке», могут просто плохо работать, для высокой производительности нужны усилия разработчиков, решения «из коробки» редко бывают устойчивыми к нагрузкам.

Решение очень простое — сменить хостинг на более производительный, осуществить профилирование работы сайта или веб‑приложения и убрать «узкие места».

Реальные атаки DDoS

Если классифицировать по уровню атаки, то есть 2 сценария:

  • (D)DoS на приложение
  • (D)DoS на сеть

В случае, когда имеет место реальный (D)DoS, распространены два основных варианта:

  1. Атака относительно слабая и нацелена в основном на уровень приложения, но приложение или сервер не могут от неё отбиться в силу недостаточной оптимизированности. Это наиболее частый вариант, когда атака имеет место на не самые популярные ресурсы. Чаще всего помогает настройка брандмауэра, выявление и бан атакующих, а если проблема в приложении — то спасает настройка кеширования и усложнение доступа к «тяжёлой» функциональности, которая грузит сервер.
  2. Атака сильная и полностью «забивает» канал связи — на уровне приложения и сервера с ней уже не справиться. Встречается в коммерческом сегменте такое не очень часто. Тут уже надо обращаться за помощью к хостеру или к специализированным компаниям — они могут «взять удар на себя» и пропустят к сайту только нормальных пользователей.

(D)DoS на приложение

Атака основана на отправке большого количества запросов на выполнение ресурсоёмких операций:

  • большие выборки объектов без лимитов
  • сложные фильтры / поиск
  • запросы на обработку графики
  • загрузка объёмных файлов

Также можно классифицировать атаки по ресурсу, который подвергается наибольшей нагрузке:

  • CPU — процессор перегружен вычислениями
  • RAM — не хватает оперативной памяти
  • I/O — не хватает производительности ввода‑вывода
  • Хранилище — забивается система хранения

Основные механики защиты от DDos на уровень приложения:

  • Настройка мониторинга показателей
  • Выявление и анализ ресурсоёмких запросов
  • Оптимизация производительности
  • Настройка кэширования
  • Установка лимитов
  • Использование очередей
  • Требование аутентификации для «тяжелых» операций
  • Проверка на человечность (капчи и подобные механизмы)
  • Блокировка по IP
  • Корректное конфигурирование серверного ПО под ресурсы (исключаем OOM)
  • Возможность отключения вторичного функционала без ущерба для работоспособности всей системы

(D)DoS на сеть

Принцип атаки: переполнение полосы пропускания, различный флуд (HTTP, ICMP, UPD, SYN)

Основные механики защиты от DDos на уровень сети:

  • Своевременное обновление ПО
  • Конфигурация ядра ОС для поддержки большого количества соединений
  • Брандмауэры / Firewalls
  • Deep Packet Inspection (DPI)
  • Услуги хостинг‑провайдера
  • Сервисы защиты / CDN

Тематические статьи

Вирусы на сайтах

Откуда берутся вирусы на сайтах? Как с ними бороться?

Три наиболее распространённые причины появления вирусов на сайтах — это кража паролей для доступа к файловой системе сервера, эксплуатация XSS‑уязвимостей веб‑сайтов, уязвимостей в серверном ПО (часто — в результате отсутствия своевременного обновления) и уязвимостей в используемых CMS (обычно тоже по причине отсутствия обновлений или из‑за установки плагинов / расширений из недоверненных источников).

информационная безопасность
системное администрирование
веб-разработка
Статья опубликована в 2019 году

Информационная безопасность: основные подходы, оценка рисков и затрат

Информационная безопасность — обеспечение конфиденциальности, целостности и доступности информации.

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

информационная безопасность
веб-разработка
системное администрирование
Статья опубликована в 2020 и обновлена в 2023 году

Информационная безопасность — основные угрозы

В статье мы рассмотрим мотивацию атакующих и проведем их классификацию. Также классифицируем основные методы атак, оценим их риски и возможные последствия.

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

информационная безопасность
веб-разработка
системное администрирование
Статья опубликована в 2020 и обновлена в 2022 году

Отказоустойчивость сайтов и веб‑приложений

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

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

отказоустойчивость
бэкенд
веб-разработка
серверы
системное администрирование
Статья опубликована в 2019 году

Процессы, необходимые для информационной безопасности

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

Взломы, утечки данных и неработоспособность ключевых систем приводит как к финансовых потерям, так и к репутационным издержкам. Чтобы снизить риски в сфере ИБ стоит внедрять базовые процессы ИБ в разработку, тестирование и системное администрирование.

информационная безопасность
веб-разработка
тестирование
системное администрирование
Статья опубликована в 2020 и обновлена в 2023 году

SQL-инъекции — распространённый метод взлома веб‑приложений и сайтов

SQL‑инъекции — это один из распространённых способов взлома сайтов и веб‑приложений, работающих с реляционными базами данных.

SQL‑инъекции основаны на внедрении в выполняемый приложением запрос к базе данных произвольного SQL‑кода, переданного злоумышленником. Последствиями SQL‑инъекций может быть как кража, модификация или удаление данных, так и полный взлом атакуемой системы — получение привилегированного доступа, например.

информационная безопасность
SQL
бэкенд
веб-разработка
СУБД
хранение данных
серверное ПО
Статья опубликована в 2019 году

Безопасность сайтов и веб‑приложений

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

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

информационная безопасность
веб-разработка
системное администрирование
Статья опубликована в 2019 году

Системы предотвращения вторжений (IPS)

В современном цифровом мире кибербезопасность стала неотъемлемой частью каждой организации. В этой статье мы разберём типы и принцип работы систем предотвращения вторжений (Intrusion Prevention Systems, IPS).

информационная безопасность
корпоративные информационные системы
Статья опубликована в 2023 году

Системы обнаружения вторжений (IDS)

В эпоху цифровизации и высокого уровня угроз в сфере информационной безопасности крайне важно иметь надежные инструменты для защиты корпоративных информационных систем. Одним из таких механизмов, которому на протяжении многих лет уделяется значительное внимание, являются системы обнаружения вторжений (Intrusion Detection Systems, IDS).

информационная безопасность
корпоративные информационные системы
Статья опубликована в 2023 году