Чтение онлайн

ЖАНРЫ

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

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

В разд. 5.2 мы рассмотрели, как можно шифровать трафик любого сервиса. Вы можете закодировать любые соединения и должны это делать, если передается секретная информация.

Но прежде, чем организовывать

зашифрованные каналы, необходимо убедиться, что этого не сделали до вас. Нет, я не говорю, что кто-то зашифровал ваш трафик по FTP-протоколу, я имею в виду готовые технологии. Так, для протокола HTTP уже давно существует реализация с поддержкой шифрования — HTTPS. Вы можете использовать протокол HTTP для передачи открытых данных, которые итак доступны для всеобщего просмотра (публичные Web-страницы), а секретную информацию (номера кредитных карт) можно передавать через HTTPS.

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

14.5.6. Практика прослушивания

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

Это не совсем так. Программы снифферы разрабатывались для программистов и администраторов и являются очень удобным средством для отладки работы различных протоколов.

Я не буду рассматривать все известные мне программы прослушивания трафика, потому что их много, и каждая из них обладает своими особенностями. Но хочу обратить ваше внимание на мою любимую (и одну из самых мощных) — hunt. С ее помощью можно подслушивать трафик, подменять ARP-записи и даже перехватывать соединения.

Очень популярным, а в некоторых случаях и более удобным, является пакет dsniff. Он включает свыше десяти утилит и может использоваться для решения любых, как администраторских, так и хакерских задач. Подробней о составе этого пакета можно узнать из приложения 2.

14.6. DoS/DdoS-атаки

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

Существует разновидность DoS-атаки — DDoS (Distributed DoS, распределенная DoS), отличается она тем, что штурм производят сразу множество компьютеров.

Самое страшное заключается в том, что от данного типа атаки иногда невозможно защититься, особенно от DDoS. Если на сервер поступает слишком много запросов, то он не успевает их обрабатывать, и не все смогут получить доступ к серверу. Представьте себе, если бы все компьютеры планеты одновременно попытались обратиться даже к самому могучему серверу (кластеру из серверов). Ни один канал связи не сможет пропустить такого количества соединений, даже у таких

мощных серверов, как yahoo.com, googIe.com, не хватит мощностей. Таким образом, далеко не все пользователи смогут работать с сайтами.

Давайте разберем основные атаки DoS и DDoS и посмотрим, с какими можно бороться, а с какими — бесполезно. К тому же, нас будут интересовать методы противостояния этим атакам.

14.6.1. Ping of Dead

Мы уже знаем, что с помощью утилиты ping можно проверить соединение с удаленной системой (см. разд. 5.1). Для этого используется ICMP-протокол. Когда сервер получает ICMP-сообщение с кодом Echo Request, то он должен ответить таким же сообщением, с тем же количеством данных.

В некоторых ОС обнаружились ошибки обработки ping-пакетов. Просто программисты, которые реализовывали ICMP-протокол, подразумевали, что пользователи будут применять его правильно и не станут посылать слишком большие пакеты. Надежда на добросовестность пользователей обернулась появлением атаки Ping of Dead (Ping смерти). Хакеры формировали такие пакеты, которые сервер обрабатывал неверно и зависал. Наиболее нашумевшая атака вылилась в посылку пакетов размером более 64 Кбайт. Программисты зарезервировали под принимаемые данные только 64 Кбайта, и этого не хватило для приема пакетов. На сервере это может выглядеть как переполнение буфера.

Борьба с такими атаками может быть реализована только средствами сетевого экрана. Можно запретить получение ICMP-пакетов с кодом Echo Request и атака Ping of Dead на вашу систему не принесет результата. А затем обновите ОС.

14.6.2. ICMP flood

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

Допустим, что у сервера есть канал связи с пропускной способностью 64 Кбит/с. Вам достаточно половины, чтобы полностью его загрузить. Для этого непрерывно посылаем на сервер ping-запросы с большим размером пакета. Желательно, чтобы в качестве отправителя стоял не ваш адрес, а любой другой. Если вы своими ping-пакетами создадите нагрузку на канал сервера в 32 Кбита/с, то вторая его половина будет занята ответами на несуществующий или чужой адрес.

Защита от этой атаки такая же, как и от Ping of Dead, а именно запрет ICMP-трафика. Благо этот протокол не очень нужен, особенно входящий из Интернета ICMP-трафик.

14.6.3. TCP SYN

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

Из названия атаки можно догадаться, что задача хакера — направить на сервер большое количество TCP-пакетов с установленным флагом

SYN
. Эти пакеты используются для установки подключения к серверу. Таким образом, достигнув ограничения, сервер больше не будет принимать новые подключения со стороны клиентов.

Поделиться с друзьями: