Исследование методов атаки и защиты от MAC-Spoofing
"Научный аспект №6-2024" - Информ. технологии
УДК 004.056.5
Воробьев Павел Артемович – студент кафедры вычислительной техники и защиты информации Институт информатики, математики и робототехники Уфимского университета науки и технологий.
Зиятдинов Нариман Рафаэлевич – студент кафедры вычислительной техники и защиты информации Института информатики, математики и робототехники Уфимского университета науки и технологий.
Научный руководитель Вульфин Алексей Михайлович – доктор технических наук, доцент кафедры вычислительной техники и защиты информации Института информатики, математики и робототехники Уфимского университета науки и технологий.
Аннотация: Статья посвящена проведению исследования методов атаки и защиты от MAC-Spoofing. Рассмотрен как теоретический вопрос ее проведения, так и практический, который включает в себя попытку проведения данного типа атаки, а также оценку сложности данного вектора. Это особенно актуально для предприятий, причем как частных, так и государственных, поскольку это может привести к краже конфиденциальной информации, а также к получению несанкционированного доступа.
Ключевые слова: MAC-адрес, IP- адрес, атака с подменой физического адреса, реализация атаки, угроза утечки информации, защита от утечек.
Атаки с подменой MAC- и IP-адресов могут происходить следующим образом в зависимости от провайдера. На первом этапе, когда жертва находится в Сети, злоумышленник использует сниффер, чтобы проверить, находится ли жертва в том же сегменте сети. Сегмент сети – это область, где все устройства равны и получают одинаковую информацию. Например, все устройства, подключенные к концентратору, находятся в одном сегменте, поскольку концентратор просто передает информацию с одного устройства на все остальные устройства.
Одним из критериев определения того, что вы находитесь в том же сегменте сети, что и устройство X, является то, что вы видите пакеты, отправленные устройством X, но не предназначенные вам. Информация по сети передается в виде пакетов данных - небольшой порции данных определенного размера.
Существует два типа пакетов данных: адресованные определенному устройству или "всем". Разница между последними заключается в том, что MAC-адрес их получателя - FF-FF-FF-FF-FF-FF-FF. Если вы получаете пакет, MAC-адрес получателя которого отличается от вашего MAC-адреса, это означает, что отправитель находится в том же сегменте сети. Чтобы узнать MAC-адрес, вы можете воспользоваться командой arp -a, которая отображает список MAC-адресов в кэше компьютера. Если адреса нет в кэше, вы можете попробовать выполнить ping по этому адресу, а затем arp -a. Если адреса нет в списке, вполне вероятно, что жертва находится не в вашем сегменте сети.
В сети, где устройства расположены в одном сегменте, важно понимать, что MAC-адрес используется для идентификации устройств в этом сегменте, в то время как IP-адрес может указывать на систему, расположенную далеко, например, на другом континенте. Когда данные передаются через маршрутизатор, MAC-адрес отправителя заменяется MAC-адресом маршрутизатора, поэтому виден только он. Обычно нет необходимости знать MAC-адрес реального отправителя.
Чтобы определить шлюз жертвы по умолчанию, который обеспечивает связь с другими сетями, можно воспользоваться особенностью маршрутизатора: пакеты с разных IP-адресов приходят с одного и того же MAC-адреса. Это поможет вам идентифицировать маршрутизатор.
Метод обнаружения шлюза может быть пассивным (анализ пакетов) или активным (назначение жертв шлюза и отправка пакетов данных). Однако такой подход может быть опасен, поскольку жертва может заметить такое поведение.
Вы также можете воспользоваться шлюзом, предоставленным провайдером, не пытаясь найти другой шлюз. Этот метод более опасен, но часто оказывается эффективным.
После получения информации о жертве (IP, MAC, шлюз по умолчанию) можно приступать ко второму этапу: скопируйте параметры жертвы и используйте их (важно, чтобы жертва при этом выключалась) до тех пор, пока она не вернется в сеть. Когда жертва вернется, работа будет прервана, но это не представляет серьезной угрозы, поскольку трудно определить, кто пытается подделать ее данные в вашем сегменте сети.
Теперь попробуем провести такую атаку. Для этого будем использовать EVE-NG. Развернем в ней локальную сеть, с межсетевым экраном и выходом в интернет (Рис. 1).
Рисунок 1. Созданная локальная сеть
В качестве машины атакующего будем использовать kali-linux. Для начала посмотрим сетевую конфигурацию нашей виртуальной машины. Введем команду ip a. На Рис. 2 мы увидим все сетевые интерфейсы, в нашем случае нас интересует eth0, который в данном случае как раз и используется для подключения рабочей станции к локальной сети. Здесь мы видим MAC и IP адреса, обычные и broadcast. В контексте рассматриваемого нами вопроса нам необходимо посмотреть на MAC-адрес, он имеет вид 00:50:00:00:01:00.
Рисунок 2. Сетевые настройки машины атакующего
Далее введем команду, которая покажет к каким именно рабочим станциям были обращения с машины, где мы сейчас вводим команды. Введем для этого команду arp -a, которая используется для отображения кэша ARP (Address Resolution Protocol) на вашем компьютере. ARP - это протокол, который используется для сопоставления IP-адресов с физическими MAC-адресами в локальной сети. Когда компьютер пытается связаться с другим устройством в локальной сети, он использует ARP, чтобы узнать MAC-адрес этого устройства (Рис. 3). Команда arp -a выводит таблицу, содержащую соответствия IP-адресов и MAC-адресов устройств, с которыми ваш компьютер общался недавно. Здесь нас будет интересовать станция Win7 с IP-адресом 192.168.10.10 и MAC-адресом 50:bb:83:00:34:00 (Рис. 4), так как именно она станет той самой жертвой нашего MAC-спуффинга. Представим, что цель атаки выключила компьютер это нужно, чтобы атака прошла успешно.
Рисунок 3. Просмотр адреса жертвы с помощью просмотра последних обращений в сети
Рисунок 4. Отключение рабочей станции жертвы
С этого момента развитие атаки проходит очень простым способом. На нашей машине атакующего мы вводим команду ip a, снова смотрим на то, какой MAC-адрес у нас установлен на данный момент в интерфейсе eth0, после чего вводим команду ip link set dev eth0 address 50:bb:83:00:34:00, за счет чего меняем наш MAC-адрес на физический адрес нашей жертвы. Снова вводим ip a, после чего удостоверяемся, что наш MAC-адрес действительно был изменен (Рис. 5), и он совпадает с тем, который мы указали в команде ip link set dev eth0 address 50:bb:83:00:34:00.
Рисунок 5. Изменение MAC-адреса
На свитче после этого мы можем увидеть (Рис. 6), что порт для этого MAC-адреса был изменен, и теперь все запросы, которые шли на win-7 машину, будут идти на Kali Linux.
Рисунок 6. Изменения на свитче
После этих действий мы можем просматривать трафик, который был предназначен для 192.168.10.10. С KALI-MITM мы отправляем ICMP пакеты, которые были направлены на win-7, однако она выключена, и пакеты принимаются. Отправка ICMP пакетов обусловлена тем, что мы ввели команду ping 192.168.10.10 с KALI-MITM, адрес которой 192.168.1.112. Можем сделать вывод, что атака прошла успешно, так как при генерации трафика до машины жертвы, мы можем просматривать этот трафик с адаптера ethernet0 на нашей kali-linux (Рис. 7).
Рисунок 7. Просмотр трафика жертвы кибератаки
Однако может возникнуть вопросы, что возможно мы можем увидеть любой другой трафик внутри сети, и не обязательно использовать для этого спуфинг. Для того, чтобы проверить это, попробуем пропинговать другую виртуальную машину. Снова делаем это с KALI-MITM, после чего удостоверимся, что хоть пинги идут, никаких ICMP пакетов мы не видим (Рис. 8).
Рисунок 8. Попытка просмотра трафика без MAC-Spoofing
Итак, атака прошла очень просто, и мы легко смогли убедиться в том, что перехват трафика, который был предназначен для win-7, прошел успешно, и мы бы не смогли просмотреть трафик просто так. Сама атака проводится крайне простым способом, нужно знать всего лишь несколько команд, и всё готово. Но защититься от этой атаки тоже довольно простая задача. Официально рекомендуемый метод – включение port-security на интерфейсе коммутатора.
Port Security – это технология, которая обеспечивает контроль над устройствами, подключенными к коммутатору, и защищает сеть от переполнения таблицы MAC-адресов и других аномалий или атак.
С помощью функции защиты портов вы можете установить максимальное количество MAC-адресов, которые могут быть зарегистрированы на определенном порту коммутатора или VLAN, и ограничить доступ только к определенным MAC-адресам.
Для его включения мы можем использовать такие команды: switchport mode access
switchport port-security.
Включим port-security на интерфейсах свитча (Рис. 9)
Рисунок 9. Включение Port-security
Защита была установлена. Сбросим после этого таблицу MAC-адресов на свитче командой clear mac address-table dynamic, и пробуем заново провести нашу атаку. Выполняем команду ping 192.168.10.10 с машины kali mitm, и как и в прошлый раз начинаем просматривать трафик, который идет на адаптер kali-linux. Видим, что того трафика, который был мы уже не видим, и больше мы ничего не ловим. Защита полностью сработала и функционирует.
Это подтверждает и тот факт, что на самом свитче мы видим (Рис. 10), что port security увидел данную попытку атаки, определил MAC-адрес и адаптер, с которого ведется атака, после чего он перевел адаптер в выключенное состояние (Рис. 11).
Рисунок 10. Повторное проведение атаки
Рисунок 11. Демонстрация работы Port-Security на коммутаторе
Вывод
В данной статье мы рассмотрели, что представляет из себя MAC-Spoofing, теоретическую часть данной атаки, а также провели собственную атаку, и смогли установить защиту от спуфинга с помощью Port-Security. Было установлено то, что внутри нашей локальной сети от злоумышленника не требуется никакой специальной подготовки или особых знаний, поскольку сама атака проводится очень просто. Также сама установка защиты тоже проводится не так сложно, но при этом предотвращает возможность получения несанкционированного доступа к устройству из одной сети с помощью другого устройства, за счет чего была закрыта одна из уязвимостей, которая впоследствии могла бы привести к серьезной утечке информации. Ввиду того, что атака и защита являются нетривиальными задачами, сама методика уже давно изучена, и сам вектор атаки уже давно не является чем-то новым, все руководства и по атаке, и по защите можно найти в открытом доступе, необходимо понимать, что обеспечение защиты от MAC-Spoofing крайне важно внутри локальной сети.
Список литературы
- Lalit Jain, Computer Network: An Implementation of MAC Spoofing // IJECS Volume 12 Issue 05 May 2023
- Таненбаум Эндрю, Фимстер Ник, Уэзеролл Дэвид, Компьютерные сети. 6-е изд // СПб.: Питер, 2023. — 992 с.: ил. — (Серия «Классика computer science»).ISBN 978-5-4461-1766-6
- Протокол ARP и «с чем его едят» (дополнено): сайт Хабр [Электронный ресурс] URL: https://habr.com/ru/articles/80364/ (дата обращения 18.05.2024)
- Как ломать банкоматы: ARP spoofing, CVE, обход киоска: сайт Хабр [Электронный ресурс] URL: https://habr.com/ru/companies/pt/articles/579516/ (дата обращения 21.05.2024)
- Подмена MAC-адреса: сайт SecurityLab.ru [Электронный ресурс] URL: https://www.securitylab.ru/glossary/podmena_mac_adresa/ (дата обращения 10.06.2024)
- Защита от атак типа MAC-спуфинг: сайт Касперский [Электронный ресурс] URL: https://support.kaspersky.com/KESWin/11.4.0/ru-RU/174954.htm (дата обращения 16.06.2024)