DoS-атака (Denial of Service)

DoS-атака (Denial of Service) или атака на отказ в обслуживании - действия злоумышленников, которые направлены на блокировку или замедление работы отдельных сервисов или всей информационной системы. В некоторых случаях атака приводит к перерасходу ресурсов. Например, если в облачной системе стоит автоматическое добавление виртуальных машин в случае замедления сервиса, то, обнаружив снижение времени отклика, облако автоматически добавит новые виртуальные машины, и для посетителей ресурса атака не будет заметна, однако оплата услуг оператора, которая обычно привязана к затрачиваемым ресурсам, может и увеличиться.

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

Классификация и способы DoS-атак

Выделяют следующие типы DoS-атак:

  • Эксплойт уязвимости. Для атаки этого типа необходима уязвимость, эксплуатация которой приводит к выводу целевой системы из строя или сильному замедлению ее работы. Для совершения этой атаки не нужно большого числа запросов, а иногда достаточно одного пакета, чтобы вывести систему из строя, поэтому такую атаку иногда называют низкоскоростной. Для защиты от нее необходимо устанавливать исправления уязвимостей системы или WAF с фильтрацией пакетов, эксплуатирующих уязвимость. Также помогает поведение аудита информационной системы или проверки ее на устойчивость к нагрузкам - стресс-тест.
  • Сложные запросы. Другим типом атаки против веб-систем построенных на интерпретируемых языках типа PHP или Python является эксплуатация сложных запросов. Дело в том, что современные сервера приложений хорошо оптимизированы на массовое исполнение простых запросов, часть которых кешируется и не требует исполнения собственно кода. Но сильно персонифицированные запросы, ответы которых не попадают в кеш, могут создавать большую нагрузку на систему. В штатном режиме таких запросов не очень много, и поэтому система справляется с ними, однако злоумышленники могут спровоцировать большое число таких запросов, что и приведет к исчерпанию процессорного времени. Такая атака не требует большого количества запросов, и может быть организована при помощи распределенной зомби-сети. Однако она требует большой предварительной подготовки и квалификации нападающих, поэтому встречается достаточно редко. Для предотвращения подобного типа атак стоит проводить аудит кода приложений и его архитектуры, а также стресс-тест. В некоторых CMS есть встроенные механизмы профилирования приложений, которые позволяют выявить подобные узкие места - их также стоит задействовать как минимум во время текстовой эксплуатации.
  • Захват ресурсов. Вполне возможны атаки, когда злоумышленник тем или иным способом получает контроль над ресурсами компании, например, ее облачными сервисам, а потом шантажирует уничтожением накопленной в них информации. Такие атаки также можно отнести к DoS, поскольку результатом реализованной угрозы является вывод системы из эксплуатации. Как правило, возможность для реализации подобной угрозы появляется при слабой системе аутентификации, поэтому для административных учетных записей особенно в публичных сервисах стоит использовать строгие методы аутентификации и запись административных команд с блокировкой наиболее опасных из них.

Цель DoS-атак

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

DoS-атака (Denial of Service)

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

Источник DoS-атак

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

 

Анализ риска

Для защиты от DoS-атак пользователь может поменять следующие механизмы защиты:

  • Анализатор кода. Если веб-приложение разрабатывается самостоятельно или под заказ, то в нем возможно появление ошибок. Для их поиска предлагаются сервисы и программы по анализу кода приложений. Рекомендуется перед переводом написанной системы в публичный доступ проверять систему на таком анализаторе и исправлять наиболее критичные ошибки.
  • Обновление приложений. Если приложение стороннее, то стоит использовать систему установки обновлений. Собственно, для базовых компонент - операционной системы, СУБД и сервера приложений - обновления нужно устанавливать всегда, хотя и после проверки в небольшой пилотной конфигурации.
  • WAF (Web Application Firewall). Иногда с DoS-атакой может справиться экран уровня приложений (WAF), который будет блокировать попытки эксплуатации уязвимостей и посторонние протоколы. Он также может блокировать попытки привилегированных пользователей уничтожить ценные данные.

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