Информационная безопасность: спуфинг-атака

arp spoofing attackС понятием «информация» связаны три следующих термина:

  1. Уязвимость – это некое свойство информационной системы, которое может создать угрозу безопасности данной информационной системы.
  2. Угроза.
  3. Атака – это путь, механизм, какие-то действия, с помощью которых угроза реализуется, эксплуатируя уязвимость.

Существуют две сетевые модели: модель TCP/IP и OSI. Модель OSI появилась позже и была попыткой разложить по полочкам стек протоколов. Модель TCP/IP появилась раньше и она является более практической. Она имеет четыре уровня. И на каждом уровне существуют свои проблемы безопасности.

Рассмотрим канальный уровень. Классическим примером уязвимости этого уровня является уязвимость ARP-протокола. Это канальный протокол второго уровня модели OSI или первого уровня модели TCP/IP. Он служит для связи MAC-адресов и IP-адресов в некотором сегменте сети.

ARP-запросы отвечают на то, какой MAC-адрес принадлежит тому IP, к которому мы обращаемся. Предположим у нас есть хост A, хост B и мы имеем коммутатор (switch). Надо отметить, что раньше сети проектировались на устройствах под названием хабы. Это достаточно примитивное устройство, в котором нет ничего кроме распайки.

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

Это было очень давно и уже много лет сети строятся на коммутаторах. Эти устройства более умные. Они имеют CAM-таблицу. Пакеты уже не рассылаются по всем портам, а свитч запоминает и ведёт в этой CAM-таблице соответствие портов хостам.

Предположим, что у нас есть компьютер А с IP-адресом 10. 0. 0. 1 , и компьютер В с IP-адресом 10.0.0.2. Чтобы отправить пакет с машины A на машину B, машина A рассылает широковещательный запрос, который пойдёт на все порты коммутатора. ARP-запрос (ARP-request) такого содержания: «Скажите пожалуйста по какому MAC-адресу расположена машина с IP-адресом 10.0.0.2 ?».

Все машины в сети получают этот запрос. Машина B отвечает (ARP-reply). Компьютер А, который инициирует соединение, обновляет свою ARP-таблицу и знает, что машина В имеет такой MAC-адрес, что позволяет отправить пакет напрямую.

Представим себе, что злоумышленник хочет увидеть трафик между машинами А и В. Так как у нас есть коммутатор, то запуская сниффер, он ничего не видит, потому что пакеты до него не «долетают». Надо понимать, что все протоколы, которые используются сейчас в интернете – это протоколы, которым очень много лет.

Когда их проектировали, то не думали о безопасности. Потому что никто не мог предположить, что стек протоколов TCP/IP станет популярным и интернет будет построен на его базе. Проблема протокола ARP заключается в отсутствии аутентификации.

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

В результате чего весь трафик между компьютером А и компьютером В теперь идёт через машину злоумышленника. Компьютер А посылает теперь пакеты ему, думая, что он машина В и машина В аналогично посылает пакеты ему, думая, что он машина А. В

сё что остаётся сделать злоумышленнику – это включить у себя на компьютере роутинг, чтобы трафик всё-таки шёл и обмен информацией был, и спокойно перехватывать все пакеты. Такой вид атаки называется ARP-spoofing (подделка ARP-ответов). Какие существуют способы защиты:

1. Использование функции коммутатора Port security таким образом, чтобы с данного порта можно было видеть только один MAC. Стоит помнить что, подделать MAC-адрес не трудно.

2. Использование статической ARP-таблицы. Это не совсем удобный способ, потому что когда появляется новый клиент, необходимо обновить информацию об этом клиенте на всех машинах.
3. Использование IPv6.
4. Аутентификация на порту коммутатора (802.1x).

Вам понравиться