Какие методы используются злоумышленниками для своего вредоносного воздействия на серверы, сетевое оборудование, приложения? Настало время разобраться с их «арсеналом» подробнее
В предыдущей статье мы выяснили, что DoS/DDoS-атаки представляют одну из наиболее серьезных угроз информационной безопасности для современного предприятия независимо от его сферы деятельности.
Какие же бывают атаки? Следует познакомиться с арсеналом средств злоумышленников, чтобы научиться им противостоять. Современная классификация предусматривает следующие типы DoS/DDoS-атак:
- Network floods – самый простой для злоумышленника вариант. Не требуется установки TCP-сессии с компьютером жертвы. Приводят к исчерпанию ресурсов атакуемой системы или полосы пропускания канала. Примерами таких атак являются ICMP и UDP flood.
- Атаки, направленные на серверные ресурсы. Обычно этот вариант используется для воздействия на серверы приложений. Примерами являются TCP-SYN, TCP-RST, TCP-ACK.
- Атаки на ресурсы приложений. Надо отметить, что это не только воздействие на HTTP, но и HTTPS, DNS, VOIP, SMTP, FTP и другие прикладные протоколы. Среди этих атак HTTP flood, DNS flood и прочее.
- Сканирование. В сущности, само по себе сканирование на первый взгляд представляется безвредным, поскольку само по себе не создает проблем, но на самом деле это «разведка перед боем», позволяющая выяснить информацию, которая поможет в дальнейшем атаковать систему.
- Медленные атаки малого объема, так называемые Low and Slow. Этот вариант представляет наибольшую опасность в силу малой заметности и продолжительного времени нарастания зловредного воздействия. Обычно здесь речь идет о воздействии на приложения и иногда на серверные ресурсы.
- Сложные атаки на веб-приложения. Эти механизмы используют уязвимости в веб-приложениях, которые предоставляют разработчики. Это приводит к несанкционированному доступу к системе, потерям и несанкционированным изменениям данных.
- Атаки под SSL – подразумевается, что злоумышленник может маскировать свои деструктивные действия внутри SSL-трафика, что значительно усложняет противодействие. Протокол SSL работает поверх TCP/IP, обеспечивая безопасность обмена информацией для пользователей. Какие же здесь есть возможности для злоумышленников? Можно говорить об атаках на сам процесс установки SSL-взаимодействия (SSL handshake), отправка «мусорных» пакетов серверу или злоупотребление функциями согласования ключевой информации и т.д.
Примеры сетевых атак (network floods)
Пусть некто решил продать свой автомобиль и дал объявление. Недоброжелатель дает другое объявление с тем же телефоном и информацией о той же машине, но более низкой ценой. Что произойдет? Будет шквал звонков от желающих купить автомобиль дешево, но ведь это не те покупатели, которые нам нужны. А вот как раз реальные покупатели нам могут и не дозвониться. При этом наш продавец будет вынужден реагировать на все звонки.
Цель атакующего достигнута. Настоящие клиенты не могут дозвониться. А теперь посмотрим, как это происходит в сети.
Как работает ICMP flood
Принцип работы ICMP flood выглядит не слишком сложно. На узел жертвы отправляется эхо-запрос, который требуется обработать и отправить эхо-ответ, при этом необходимо будет задействовать большие ресурсы по сравнению с обычным пакетом, хотя сам запрос по объему небольшой. В результате при относительно небольшом трафике можно добиться перегрузки по количеству пакетов. Атакуемый узел начинает работать нестабильно, терять пакеты. Усиление атаки достигается использованием бот-сети, когда запросы приходят с тысяч узлов. Кроме этого, можно отправить запрос по широковещательному адресу с поддельным адресом источника пакета, так называемые Smurf-атаки. Отправка эхо-запроса ICMP на широковещательный адрес заставляет все узлы в этой сети отправить эхо-ответы на подмененный адрес, который и является адресом жертвы, то есть происходит усиление атаки (см. рис. 1).
Рисунок 1. Атака ICMP flood
Как работает UDP flood
Принципы атаки довольно схожи с предыдущим вариантом и заключаются в отправке множества UDP-пакетов на определенные номера портов атакуемого узла, который длякаждого полученного пакета должен идентифицировать соответствующее приложение, отправить ответное ICMP-сообщение «адресат недоступен». В итоге атакуемая система окажется перегруженной, поэтому после начала атаки зловредный трафик может быстро захватить всю доступную полосу пропускания, не оставив ничего легитимному трафику, что и является целью злоумышленника – не дать работать «правильным пользователям». Подменив IP-адреса источников в UDP-пакетах, злоумышленник может перенаправить поток ICMP-ответов и тем самым сохранить работоспособность атакующих узлов, а также обеспечить их маскировку.
Как можно было заметить, ни ICMP, ни UDP flood не используют уязвимости системы, то есть мы имеем дело со стандартными принципами работы стека TCP/IP. Значит, подобным атакам может быть подвергнута абсолютно любая среда.
Кроме того, существуют методы, позволяющие значительно усилить атаку, например, подмена адреса источника пакета на адрес атакуемой системы – ICMP-усиление (Smurf)и UDP-усиление (Fraggle), которые были описаны выше.
Примеры атак на серверы
Как работает TCP-SYN flood
Рассмотрим другой пример: пусть надо записаться на прием к врачу, и пациенты должны прийти и взять талон на определенное время. Как будет выглядеть атака в этом случае? Большое количество людей берут талоны, выбирая таким способом все временные ресурсы, при этом они потом никуда не приходят. Настоящих пациентов неприняли, поскольку они просто не смогли записаться. Теперь посмотрим, как это будет происходить в сети. Этот пример иллюстрирует принцип работы атаки SYN flood.
В этих атаках используется другая особенность стека протоколов TCP/IP – потребность установки TCP-сессии. В отличие от UDP, где это не требуется, при TCP-взаимодействии необходимо, чтобы отправитель «договорился» с получателем перед тем, как что-то будет отправлено. Для этого используется механизм three-way handshake – трехэтапного подтверждения. Принцип его работы выглядит следующим образом: клиент посылает пакет SYN (Synchronize), сервер отвечает пакетом SYN-ACK (Synchronize-Acknowledge), клиент подтверждает прием пакета SYN-ACK пакетом ACK (Acknowledge). На этом процедура установления соединения завершается (см. рис. 2).
Рисунок 2. Атака SYN-flood
Это и использует злоумышленник. Установим фальшивый IP-адрес отправителя и пошлем серверу большое количество SYN-пакетов. Получая пакет SYN, сервер должен выделить часть своих ресурсов для установления нового соединения. А раз так, то в конце концов все ресурсы сервера будут исчерпаны, что приведет к невозможности обслуживания новых запросов. Цель атакующего достигнута.
Как работает TCP-RESET
Допустим, нам надо отправить обычное письмо. Что мы делаем? Пишем текст, вкладываем в конверт, указываем адрес получателя и адрес отправителя, дальше опускаем его впочтовый ящик. В нашем почтовом отделении есть недоброжелатель, который отслеживает все, что приходит к нам и от нас, и, увидев сообщение, отбрасывает его и пишет ответ отправителю: «адресат выбыл». Таким образом, переписка с нашим корреспондентом нарушена.
В TCP/IP эта атака называется TCP-RESET. Ее задача – нарушить взаимодействие между участниками.
Любой TCP-пакет содержит заголовок. В числе прочего он содержит бит флага сброса (RST). Обычно этот бит имеет нулевое значение, но в случае установки его в 1 получатель должен немедленно прекратить использовать данное соединение. Этот механизм используется, когда на одном компьютере в процессе передачи данных происходит сбой. Второй компьютер, не зная об этом, продолжает отправлять информацию. После восстановления исходного компьютера после сбоя он может продолжать получать пакеты от старого соединения, но поскольку о нем не осталось никакой информации, непонятно, что с ними делать. Именно в этой ситуации будет отправлено требование сброса (RESET) второму компьютеру. Дальше можно устанавливать новое соединение.
Получается, что этот механизм нужен, но эту функциональность может использовать атакующий. Каким образом? Перехватить пакеты, подделать пакет и установить в нем флаг RESET, флаг сброса. Дальше отправить эти поддельные пакеты участникам взаимодействия, что в конечном счете приводит к нарушению TCP-сессии между ними.
Примеры атак на приложения
Как работает HTTP flood
Наиболее распространенной DDoS-атакой, нацеленной на приложения, является HTTP flood. Обычно для ее осуществления используется бот-сеть, впрочем, в состав атакующих вполне могут входить и добровольцы, например, когда речь идет о целенаправленной хактивистской деятельности. Существуют варианты GET и POST. Всущности, обе эти альтернативы направлены на исчерпание ресурсов веб-приложения.
Как же осуществляется эта атака? Злоумышленник отправляет небольшой по объему HTTP-пакет, в ответ на который сервер должен прислать куда больше информации, например, GET. Конечно, канал сервера во много раз шире канала, который использует атакующий, но ведь и отдавать информации приходится намного больше, кроме того,не составит труда подменить адрес источника на другой. Следовательно, ответные пакеты не вызовут отказа в обслуживании атакующего узла. И, разумеется, таких узлов может быть огромное количество. И опять легитимный пользователь не может обратиться к требуемому ресурсу (см. рис 3).
Рисунок 3. Атака HTTP flood
Как работает DNS flood
Характерным примером атаки на приложения является DNS flood [2]. Серверы DNS служат для разрешения имен в IP-адреса. Нам привычнее и удобнее обращаться кресурсам, используя интуитивно понятные схемы именования. Основная задача DNS-сервера – найти нам требуемый адрес, чтобы наш компьютер смог обратиться наискомый сайт. Атака построена на принципах взаимодействия клиента и сервера DNS. Злоумышленник, используя бот-сеть, посылает множество запросов на сервер жертвы. Сервер перегружен и не сможет разрешать имена по запросам легитимных пользователей, и, следовательно, они не смогут обратиться на требуемый им ресурс, поскольку несмогли разрешить его имя в адрес.
За последнее время (2014-2015 годы) появилась информация об успешных DDoS-атаках против российских ресурсов. По данным PC Week: «Россия заняла четвертую позициюв рейтинге стран, чьи веб-ресурсы наиболее часто оказывались под прицелом организаторов DDoS-атак».
Далеко не всегда деструктивные действия атакующего направлены на какие-то уязвимости систем. Речь вполне может идти об использовании их стандартного поведения, того, что называется функциональностью «by design». Именно это мы имели возможность увидеть в приведенных выше примерах.
Фактически DDoS-атакам может быть подвержено любое устройство, имеющее IP-адрес. Следовательно, никто не может считать себя в безопасности, не предприняв определенных мер по защите своей инфраструктуры.
Разумеется, злоумышленник не станет применять только одну атаку (вектор), напротив, постарается использовать сразу несколько, чтобы усложнить защиту системы.
Наконец, еще один и, пожалуй, наиболее важный аспект – изменение атаки может происходить за минуты или даже секунды, поскольку злоумышленники используют весьма совершенные средства. А раз так, то никакие «ручные» методы защиты, подразумевающие выполнение администратором безопасности первоначальной идентификации атакии последующей реализации контрмер для ее отражения, не будут в должной мере эффективны. Атакующий сможет изменить способ воздействия на ресурсы жертвы быстрее, чем администратор безопасности идентифицировать и отразить атаку. Следовательно, необходимо обеспечить отражение в автоматическом режиме.
(Окончание. Начало см. здесь)
Источник: http://bit.samag.ru/archive/article/1521
|