Атаки DoS и DDoS
Сегодня компьютеры все чаще становятся жертвами атак. Нападениям подвергаются не только корпоративные устройства и локальные сети крупных компаний, но и компьютеры рядовых пользователей. Атаки могут проводиться как с целью похищения персональных данных, особенно финансовых, так и из простого любопытства и развлечения, например, начинающими хакерами. Также распространенными причинами атак является личная неприязнь к владельцам ресурсов и конкурентная борьба. В последнем случае, они проводятся по заказу и за определенную плату. Способов и видов атак очень много, и с каждым годом они становятся все сложнее и хитроумнее.
Компьютерная атака – это воздействие на систему или получение несанкционированного доступа к ней с использованием программных или программно-аппаратных средств
Ярким примером атак, не ставящих целью похищение данных, являются DoS-атаки. Они приводят к прерыванию обслуживания легитимных пользователей, делают недоступными определенные сервисы или всю систему, что весьма неприятно. Хотя при этом сохраняется конфиденциальность данных, воспользоваться ими становится совершенно невозможно, атаки такого рода мешают полноценной работе с компьютерными ресурсами.
Суть DoS-атаки заключается в том, что злоумышленник пытается сделать временно недоступным конкретный сервер, перегрузить сеть, процессор или переполнить диск. Цель атаки – вывести компьютер из строя, захватить все ресурсы компьютера-жертвы, чтобы другие пользователи не имели к ним доступа. К ресурсам относятся, например, память, процессорное время, дисковое пространство, сетевые ресурсы и т. д.Текст термина
DoS-атака (отказ в обслуживании) – это атака, приводящая к парализации работы сервера или персонального компьютера вследствие огромного количества запросов, с высокой скоростью поступающих на атакуемый ресурс
Основные способы реализации DoS-атак
Существуют два основных способа реализации DoS-атак.
Первый, логический, заключается в использовании уязвимостей в программном обеспечении, установленном на атакуемом компьютере. Уязвимость позволяет вызвать определенную критическую ошибку, которая приводит к нарушению работоспособности системы. Эти атаки направлены на слабые места операционных систем, программного обеспечения, процессоров и программируемых микросхем.
Второй способ заключается в отсылке большого количества пакетов информации на атакуемый компьютер, что вызывает перегрузку сети. Атаки, производимые путем отсылки большого количества пакетов, могут быть выделены в два основных вида.
Атаки, направленные на блокирование каналов связи и маршрутизаторов. Суть атаки заключается в отправлении на атакуемый компьютер огромного потока флуда, то есть запросов неправильного формата или бессмысленных по сути. Флуд полностью забивает всю ширину канала данных или входной маршрутизатор. Поскольку объем данных превышает объем ресурсов для их обработки, становится невозможным получение корректных пакетов данных от других пользователей. В результате, система отказывает им в обслуживании.
Атаки, направленные на переполнение ресурсов операционной системы или приложений. Атаки данного типа нацелены не на канал связи, а на саму систему. Каждая система имеет множество ограничений по разным параметрам (процессорное время, дисковое пространство, память и др.), и смысл атаки заключается в том, чтобы заставить систему эти ограничения нарушить. Для этого на компьютер жертвы посылается огромное количество запросов. В результате перерасхода вычислительных мощностей на сервере система отказывает в обслуживании запросов легитимных пользователей.
Основные типы DoS-атак
Существует несколько типов атак «отказ в обслуживании», основывающихся на особенностях стека протоколов TCP/IP. Перечислим наиболее известные.
Атака Ping-of-Death использует такую уязвимость протокола TCP/IP как фрагментация пакетов данных. В процессе передачи по сети пакеты данных разделяются на фрагменты, которые собираются в единое целое уже по прибытии на компьютер-адресат. Атака происходит следующим образом: на компьютер жертвы посылается сильно фрагментированный ICMP-пакет, размер которого превышает допустимый в протоколе (более 64KB). Когда атакуемое устройство получает фрагменты и пытается восстановить пакет, операционная система полностью повисает, перестает также работать мышь и клавиатура. Атакам такого типа могут подвергнуться операционные системы семейства Windows, Mac и некоторые веpсии Unix.
Атака SYN-flooding («Смертельное рукопожатие») использует такую особенность протокола TCP/IP как механизм «тройного рукопожатия». Чтобы передать данные, клиент посылает пакет с установленным флагом SYN (synchronize). В ответ на него сервер должен ответить комбинацией флагов SYN+ACK (acknowledges). Затем клиент должен ответить пакетом с флагом ACK, после чего соединение считается установленным.
Суть данной атаки заключается в создании большого количества не до конца установленных TCP-соединений. Посылая жертве огромное число пакетов TCP SYN, злоумышленник вынуждает ее открыть соответствующее число TCP-соединений и реагировать на них, а сам затем не завершает процесс установки соединения. Он либо не высылает ответный пакет с флагом ACK, либо подделывает заголовок пакета таким образом, что ответный ACK отправляется на несуществующий адрес. Тем самым, требования механизма «тройного рукопожатия» не выполняются. Подключения продолжают ждать своей очереди, оставаясь в полуоткрытом состоянии. Атакуемый сервер при этом выделяет ресурсы для каждого полученного SYN-пакета, которые вскоре исчерпываются. По истечении определенного промежутка времени полуоткрытые подключения отбрасываются. Злоумышленник старается поддерживать очередь заполненной, чтобы не допустить новых подключений легитимных клиентов. В результате, установка связи либо происходит с большими задержками, либо не происходит вообще.
Атака Land также использует ту особенность протокола TCP/IP, что на запрос соединения нужно обязательно ответить. Суть данной атаки заключается в том, что компьютер-жертва в результате действий злоумышленников пытается установить соединение сам с собой, что приводит к перегрузке процессора и вызывает «зависание» или аварийное завершение системы.
Пакетная фрагментация. Данный тип атак использует упоминавшийся выше механизм передачи данных по протоколу TCP/IP, в соответствии с которым пакеты данных разбиваются на фрагменты. Фрагментация используется при необходимости передачи IP-дейтаграммы, то есть блока информации, передаваемого с помощью протокола IP, через сеть, в которой максимально допустимая единица передачи данных меньше размера этой дейтаграммы. Атаки данного типа вызывают отказ в обслуживании, используя уязвимости некоторых стеков TCP/IP, связанных со сборкой IP-фрагментов.
Примером может служить атака TearDrop, в результате которой во время передачи фрагментов происходит их смещение, что при сборке пакета вызывает их перекрытие. Попытка атакуемого компьютера восстановить правильную последовательность фрагментов вызывает аварийное завершение системы.
Атака DNS flooding заключается в передаче огромного количества DNS-запросов. Это приводит к перегрузке сервера DNS и делает невозможным обращение к нему других пользователей.
Если атака типа «Отказ в обслуживании» проводится одновременно сразу с большого числа компьютеров, то в этом случае говорят о DDoS-атаке.
DDoS-атака (распределенный отказ в обслуживании) – это разновидность DoS-атаки, которая организуется при помощи очень большого числа компьютеров, благодаря чему атаке могут быть подвержены сервера даже с очень большой пропускной способностью Интернет-каналов.
Для организации DDoS-атак злоумышленники используют ботнет – специальную сеть компьютеров, зараженных особым видом вирусов. Каждым таким компьютером злоумышленник может управлять удаленно, без ведома владельца. При помощи вируса или программы, искусно маскирующейся под легальную, на компьютер-жертву устанавливается вредоносный программный код, который не распознается антивирусом и работает в фоновом режиме. В нужный момент по команде владельца ботнета такая программа активизируется и начинает отправлять запросы на атакуемый сервер, в результате чего заполняется канал связи между сервисом, на который проводится атака, и Интернет-провайдером и сервер перестает работать.
Распределенную атаку можно провести с помощью не только ботнета, но и механизма отражения. Такие атаки называются DrDOS-атаки (атаки непрямого воздействия, Distributed Reflection DoS). Они осуществляются не напрямую, а через посредников. Чаще всего DrDoS-атаки происходят следующим образом: TCP-пакет отправляется не на атакуемый компьютер, а на любой сервер в Интернете, но в качестве обратного адреса указывается именно адрес компьютера-жертвы. Поскольку любой сервер на пакет TCP c SYN-флагом обязательно отвечает пакетом TCP c флагами SYN+ACK, произвольно выбранный компьютер, не подозревая об этом, отвечает на ложные запросы и автоматически забрасывает потоками пакетов компьютер-жертву.
Как защититься от атак «Отказ в обслуживании»?
Существует ряд способов, которые могут помочь предотвратить атаки подобного типа. В их числе: