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, распространены два основных варианта:
- Атака относительно слабая и нацелена в основном на уровень приложения, но приложение или сервер не могут от неё отбиться в силу недостаточной оптимизированности. Это наиболее частый вариант, когда атака имеет место на не самые популярные ресурсы. Чаще всего помогает настройка брандмауэра, выявление и бан атакующих, а если проблема в приложении — то спасает настройка кеширования и усложнение доступа к «тяжёлой» функциональности, которая грузит сервер.
- Атака сильная и полностью «забивает» канал связи — на уровне приложения и сервера с ней уже не справиться. Встречается в коммерческом сегменте такое не очень часто. Тут уже надо обращаться за помощью к хостеру или к специализированным компаниям — они могут «взять удар на себя» и пропустят к сайту только нормальных пользователей.
(D)DoS на приложение
Атака основана на отправке большого количества запросов на выполнение ресурсоёмких операций:
- большие выборки объектов без лимитов
- сложные фильтры / поиск
- запросы на обработку графики
- загрузка объёмных файлов
Также можно классифицировать атаки по ресурсу, который подвергается наибольшей нагрузке:
- CPU — процессор перегружен вычислениями
- RAM — не хватает оперативной памяти
- I/O — не хватает производительности ввода-вывода
- Хранилище — забивается система хранения
Основные механики защиты от DDos на уровень приложения:
- Настройка мониторинга показателей
- Выявление и анализ ресурсоёмких запросов
- Оптимизация производительности
- Настройка кэширования
- Установка лимитов
- Использование очередей
- Требование аутентификации для «тяжелых» операций
- Проверка на человечность (капчи и подобные механизмы)
- Блокировка по IP
- Корректное конфигурирование серверного ПО под ресурсы (исключаем OOM)
- Возможность отключения вторичного функционала без ущерба для работоспособности всей системы
(D)DoS на сеть
Принцип атаки: переполнение полосы пропускания, различный флуд (HTTP, ICMP, UPD, SYN)
Основные механики защиты от DDos на уровень сети:
- Своевременное обновление ПО
- Конфигурация ядра ОС для поддержки большого количества соединений
- Брандмауэры / Firewalls
- Deep Packet Inspection (DPI)
- Услуги хостинг-провайдера
- Сервисы защиты / CDN
DDoS — весьма часто используемый вектор атаки на веб-приложения, но очень часто его путают с банальными проблемами производительности.
Информационная безопасность — обеспечение конфиденциальности, целостности и доступности информации.
Конфиденциальность — обеспечение исключительно авторизованного доступа к информации: информация не должна предоставляться и не должна раскрываться неавторизованным физическим лицам, организациям или процессам. Целостность — поддержание и обеспечение точности и полноты данных на протяжении всего жизненного цикла: данные не должны быть изменены неавторизованным или незаметным способом. Доступность — обеспечение беспрепятственного доступа к информации авторизованным пользователям: системы хранения и обработки информации, интерфейсы работы с информацией, системы обеспечения авторизованного доступа и каналы связи должны функционировать корректно.
Информационная безопасность — очень важное направление в информационных технологиях. В современном мире достаточно много угроз лежит именно в сфере обеспечения безопасности данных.
В статье мы рассмотрим мотивацию атакующих и проведем их классификацию. Также классифицируем основные методы атак, оценим их риски и возможные последствия.
К сожалению, от атак не застрахован ни один веб-проект. Даже если ваш сайт ничем не интересен профессиональным хакерам (денег нет, данных мало и они не ценные), если проект не вызывает яркие негативные эмоции у кого-либо, а монетизация возможной атаки ничтожна по прибыльности, то это лишь снижает риски и всё равно проекту не избежать автоматизированных атак с целью захвата вычислительных ресурсов или для перенаправления трафика.
Ни один проект не застрахован от кибер-атак. Для оценки рисков важно понимать, что в вашем проекте может быть интересно злоумышленникам и с какими угрозами в результате можно столкнуться.
Под безопасностью веб-приложений понимается обеспечение сохранности данных, их недоступность для посторонних лиц, а также способность сервиса сохранять работоспособность при кибератаках.
Безопасность веб-приложений зависит от качества программного кода (это ответственность веб-разработчиков), от квалификации системного администратора и регулярности обсуживания серверов, а также от компетенций всех пользователей, имеющих доступ к чувствительной информации.
Безопасность веб-приложений — очень важное направление для любого бизнеса, зависящего от информационных технологий. Утечка данных или неработоспособность приложения из-за атаки обычно очень дорого обходится.