Linux глазами хакера
Шрифт:
Маршрутизаторы тоже можно обманывать, точнее сказать, можно провести компьютер. Допустим, что ваша сеть разбита на несколько подсетей и использует несколько маршрутизаторов. На рис. 14.2 показан пример такой сети.
Рис. 14.2. Сеть с двумя маршрутизаторами
Если компьютер из сети 1 отправляет пакет другому компьютеру своей сети, то, как мы знаем, посылка осуществляется по MAC-адресу, и маршрутизатор
Так как ICMP-протокол не использует авторизацию и шифрование, злоумышленник самостоятельно может направить такой пакет любому клиенту и попросить его работать не с маршрутизатором, а с его компьютером. В результате пакеты пойдут через компьютер хакера, и он сможет их просмотреть.
Я рекомендую отключить перенаправление маршрутизации. Для этого установите 1 в файле /proc/sys/net/ipv4/conf/all/accept_redirects, выполнив команду:
Можно изменить этот параметр и через файл /etc/sysctrl.conf, добавив в нем строку:
Если в вашей сети только один маршрутизатор, то ничего кроме повышения безопасности не произойдет. Даже если у вас два или более таких устройств, на работе сети это сильно не скажется. Разве что трафик будет идти через два маршрутизатора, а не напрямую.
Так как для проведения атаки необходим ICMP-протокол, то его можно запретить с помощью сетевого экрана, и хакер не сможет направить вам сообщение о перенаправлении маршрутизатора.
14.5.4. Перехват соединения
Атака на компьютеры с помощью перехвата соединения была первый раз применена еще несколько десятков лет назад, и до сих пор единственным эффективным методом борьбы с ней является использование шифрования пакетов.
Когда компьютеры по протоколу TCP устанавливают связь друг с другом, на начальном этапе вводятся два счетчика, увеличивающихся с каждым отправленным пакетом. Это позволяет проверять целостность соединения. С помощью сниффера этот счетчик может быть подслушан, что в определенный момент позволит хакеру перехватить соединение и стать его владельцем, общаясь с сервером вместо клиента. Компьютер, который устанавливал соединение, в этот момент теряет связь с сервером.
Опасность атаки заключается в том, что хакер таким образом обходит все механизмы аутентификации. Легальный клиент авторизуется на сервере, а хакер после этого перехватывает соединение на себя и использует его в своих целях.
Проблема незащищенности соединения кроется в устарелости протокола TCP/IP. Его создатели не ожидали, что сеть будут прослушивать, и злоумышленники смогут обойти простую защиту соединений, встроенную в протокол. Вопрос решится с переходом на протокол IPv6.
14.5.5.
Несмотря на то, что можно определить, что вас прослушивают, иногда это может оказаться слишком поздно. Пока вы ищете хакера, он может успеть поймать пакет с паролями и взломать систему. Если прослушиванием занимается программа, которая установлена на взломанный компьютер, то можно вычислить только этот компьютер и его владельца, но не факт, что вы найдете самого хакера.
Получается, что бороться с прослушиванием такими методами нельзя. Необходимо сделать так, чтобы этот способ не дал результатов, и хакер перестал даже думать об этом. Полноценное решение проблемы таится в шифровании любого трафика.
Доверяться сети и передавать открытые данные уже нельзя. Прошли те времена, когда сети были только для профессионалов, использующих их исключительно по назначению. В наше время в Интернете можно встретить кого угодно, от ребенка до пенсионера, от школьника до ученого. В сети сейчас работают не только добропорядочные граждане, но и молодые любопытные ребята, и даже преступники.
В разд. 5.2 мы рассмотрели, как можно шифровать трафик любого сервиса. Вы можете закодировать любые соединения и должны это делать, если передается секретная информация.
Но прежде, чем организовывать зашифрованные каналы, необходимо убедиться, что этого не сделали до вас. Нет, я не говорю, что кто-то зашифровал ваш трафик по FTP-протоколу, я имею в виду готовые технологии. Так, для протокола HTTP уже давно существует реализация с поддержкой шифрования — HTTPS. Вы можете использовать протокол HTTP для передачи открытых данных, которые итак доступны для всеобщего просмотра (публичные Web-страницы), а секретную информацию (номера кредитных карт) можно передавать через HTTPS.
Если хакер перехватит зашифрованный пакет, то не сможет его расшифровать без закрытых ключей, которые получить практически невозможно. Единственный способ раскрыть данные — подбор пароля, но это отнимет слишком много времени, и не факт, что перехваченный пакет содержит необходимую злоумышленнику информацию.
14.5.6. Практика прослушивания
Прочитав этот раздел, складывается впечатление, что прослушивание сети приносит только беды и является оружием хакеров. Может даже показаться, что производители оборудования должны сделать аппаратную защиту от прослушивания.
Это не совсем так. Программы снифферы разрабатывались для программистов и администраторов и являются очень удобным средством для отладки работы различных протоколов.
Я не буду рассматривать все известные мне программы прослушивания трафика, потому что их много, и каждая из них обладает своими особенностями. Но хочу обратить ваше внимание на мою любимую (и одну из самых мощных) — hunt. С ее помощью можно подслушивать трафик, подменять ARP-записи и даже перехватывать соединения.
Очень популярным, а в некоторых случаях и более удобным, является пакет dsniff. Он включает свыше десяти утилит и может использоваться для решения любых, как администраторских, так и хакерских задач. Подробней о составе этого пакета можно узнать из приложения 2.