В статьях, посвященных атакам на сети, обычно очень подробно анализируется техника нападения извне, а злоумышленники, находящиеся внутри локальной сети, остаются без внимания, хотя, согласно статистике, доля таковых превышает 70%. Отсутствие механизмов безопасности позволяет им легко проникать в локальные сети при помощи протокола разрешения адресов (Address Resolution Protocol, ARP), просматривать данные и даже манипулировать ими. В то же время технологии и инструменты взлома хорошо известны, что помогает организовать различные контрмеры.
В пределах локальной сети Ethernet МАС-адрес служит для идентификации сетевой карты. Его длина составляет 6 байт, он является уникальным во всемирном масштабе и хранится в постоянном запоминающем устройстве каждой сетевой карты. Однако приложения, выполняющиеся на отдельных хостах в локальной сети, используют для адресации известный им IP-адрес партнера по коммуникации. Сетевой протокол ARP в соответствии с эталонной моделью TCP/IP находится на межсетевом уровне. Зная IP-адрес партнера в той же подсети, хост, собирающийся начать передачу, может посредством ARP установить его МАС-адрес, чтобы в итоге сформировать кадр Ethernet с необходимыми данными.
В оптимальном случае хост определяет МАС-адрес желаемого партнера без дополнительных запросов по сети: каждый хост ведет собственную таблицу ARP, где содержится известное число пар IP-МАС. Эта таблица, как правило, изменяется динамически.
Если соответствующая запись для желаемого IP-адреса отсутствует, то хост должен запросить сведения о нем в подсети: в обычном режиме любая сетевая карта обращает внимание только на кадры Ethernet, в заголовке которых имеется ее собственный МАС-адрес, пропуская все остальные. Для одновременной адресации сетевых карт всех хостов сегмента Ethernet хост использует так называемый широковещательный адрес Ethernet (FF-FF-FF-FF-FF-FF в шестнадцатеричной форме). Таким образом, вопрос относительно МАС-адреса у IP-адреса 192.168.1.3 звучит следующим образом: «Я, 192.168.1.2, с МАС-адресом 12-34-56-78-9А-01, хочу знать, кто такой 192.168.1.3?»
Этот запрос называется запросом ARP. Его просматривает каждая сетевая карта и каждый хост. При получении хостом запроса ARP, где содержится его IP-адрес, последний отсылает ответ — отклик ARP. Поскольку в пределах по крайней мере одного сегмента Ethernet один IP-адрес может использоваться единственным хостом, то теоретически ответ ARP также может отсылать только один хост. В ответе ARP он передает запрашивающему хосту свой МАС-адрес: «192.168.1.3 — это я, мой МАС-адрес 12-34-56-78-9А-01!»
Таблица ARP выглядит тогда следующим образом (флаг «С» означает, что запись закончена):
# arp IP-адрес МАС-адрес Флаги 192.168.1.2 12-34-56-78-9А-01 С 192.168.1.3 12-34-56-78-9А-02 С
Зная МАС-адрес получателя, передающий хост может теперь отправить первый инкапсулированный в кадр Ethernet пакет IP. Новый МАС-адрес он сохраняет в своей таблице ARP так же, как и получатель сохраняет у себя пару IP-МАС отправителя, если она не была известна ему до сих пор. Отправляя запросы ARP, хосты исходят из того, что отклик ARP правилен и аутентификации данных не производится.
Таблицы ARP организованы как кэш-память: если запись не используется на протяжении определенного времени (зависящего от реализации, но обычно — несколько минут), она становится недействительной и удаляется из таблицы. Кроме того, наиболее редко запрашиваемые записи переписываются также в числе первых.
ARP — протокол без учета состояния. Получив ответ ARP, хост его обрабатывает независимо от того, посылал ли он запрос ARP или нет. Такой образ действий — слабое место ARP, но он был реализован по причинам производительности.
СЛАБЫЕ МЕСТА И ПОТЕНЦИАЛЬНЫЕ ТОЧКИ АТАК
По мнению многих администраторов, прослушивание невозможно, когда сегменты сети Ethernet связаны посредством коммутатора, т. е. имеют топологию «звезда» с выделенным соединением для каждого хоста: благодаря коммутатору хост видит лишь те пакеты данных, которые посланы именно ему. При этом коммутатору известно, какому из подключенных к его портам хостов он должен отправить кадр Ethernet в зависимости от МАС-адреса. Две следующие атаки называются спуфингом (подделкой).
Первый метод известен также как «отказ в обслуживании»: атакующий отправляет хосту поддельный ответ ARP, в результате IP-адресу маршрутизатора подсети ставится в соответствие несуществующий МАС-адрес. Доверившись этой информации, хост оказывается изолированным. Те кадры, которые он после этого отправляет в другой сегмент, не могут его покинуть.
Наиболее неприятные последствия для целостности передаваемых данных следует ожидать от атаки с промежуточной инстанцией Man in the Middle. В этом случае атакующему в локальной сети удается поставить МАС-адрес своего хоста в соответствие IP-адресу другого. Например, злоумышленник М собирается просматривать трафик между хостами А и В. IP-адрес участника х обозначим как IP-х, соответствующий МАС-адрес — как МАС-х. На основании предшествующего наблюдения за сетью атакующий М знает пары IP-МАС для А и В. М отсылает ответ ARP с IP-адресом В, но со своим МАС-адресом участнику А. Как уже упоминалось, ARP — протокол без учета состояния. А не замечает, что он не отсылал запроса ARP на МАС-адрес В путем широковещания в подсети и, не сомневаясь в подлинности пары запроса ARP, включает пару (IP-B, MAC-M), в свою таблицу ARP. Аналогичный поддельный ответ ARP (IP-адрес А и собственный МАС-адрес М) М посылает В. На Рисунке 1а представлена ситуация без спуфинга, на 1б — с успешным спуфингом.
Рисунок 1. Вверху — ситуация до спуфинга, внизу — после нападения. |
Теперь любая коммуникация между А и В проходит через М. Пока М не предпринимает никаких действий, эта ситуация не заметна ни для А, ни для В. Если А и В не являются обычными хостами в сети, т. е., к примеру, А — это персональный компьютер, а В — маршрутизатор подсети, создается пикантное положение, когда М может читать трафик А в полном объеме, включая трафик Internet. Это прослушивание распространяется на все — от паролей до персональных данных. Предположительно безопасные соединения по протоколу SSL, который в случае защищенных страниц Web используется, в частности, при интерактивных банковских операциях, или по протоколу SSH — для организации шифруемого сеанса с сервером — при определенных обстоятельствах также могут просматриваться атакующим.
ИНСТРУМЕНТЫ
Несмотря на то что нападения происходят на сетевом уровне, организация атаки не представляет проблем даже для дилетантов: в Internet немало программ такого назначения.
ARPoison — приложение для командной строки под UNIX. Оно позволяет генерировать и пересылать поддельные отклики ARP.
dsniff — библиотека инструментов для спуфинга ARP или DNS. Дополнительно она помогает проводить атаки Man in the Middle на сеансы HTTP.
Ettercap можно назвать «швейцарским ножом» среди инструментов для прослушивания и спуфинга: наряду с приведенными функциями перечисленных программ это ПО успешно проводит атаки Man in the Middle на соединения SSH1 и HTTP-S — даже защищенные криптографическими методами соединения, создаваемые, например, при интерактивных банковских операциях, уязвимы. Атакующий в состоянии считывать коды PIN и TAN и манипулировать узлами. Лежащий в основе соединений HTTP-S протокол SSL используется многими другими приложениями (к примеру, SAP). Тем самым у сотрудников компании появляется возможность несанкционированного доступа к финансовым документам и манипуляции ими.
К прочим функциям относятся:
- атаки на протокол PPTP (Point-to-Point Tunneling Protocol), который используется в продуктах Microsoft для построения предположительно защищенных виртуальных частных сетей (Virtual Private Network, VPN);
- собиратель паролей почти для всех распространенных протоколов;
- пассивный поиск в локальной сети (сканирование): для определения топологии, подключенных серверов и т. д.
Версии Ettercap имеются для всех популярных операционных систем, в том числе и для Microsoft Windows.
КОНТРМЕРЫ
Как видим, безопасность в локальной сети скомпрометировать очень легко, а с помощью перечисленных выше инструментов этим могут заниматься даже не сведущие в техническом отношении люди (или недовольные компанией сотрудники). К каким же контрмерам могут прибегнуть сетевые администраторы?
Превентивным методом является статичный ARP. В этом случае каждому хосту приписывается пара адресов IP-MAC, которая в таблице ARP определяется как «статичная» (в приведенной таблице ARP у каждой такой записи в столбце «Флаги» стояла бы буква «М»). Указанные записи больше не изменяются при получении запросов и ответов ARP. Однако подобная мера влечет за собой чрезмерные издержки на администрирование и потому неприемлема в крупных сетях. Кроме того, в Microsoft Windows версий 9x, NT и 2000 статические записи ARP все равно можно изменять при помощи соответствующих запросов ARP.
Простое решение для обнаружения злоумышленников предлагает программа ARPwatch: она наблюдает за сегментом локальной сети и ведет собственную таблицу пар адресов IP-МАС. При появлении отклика ARP с известным IP-адресом, но с МАС-адресом, не содержащимся в ее внутренней таблице, ARPwatch извещает системного администратора по электронной почте.
Система обнаружения вторжения Snort также обладает препроцессором arpspoof, функциональность которого соответствует ARPwatch. Правда, администратор должен сам задавать действительную таблицу ARP.
Против перечисленных контрмер говорят ошибки при реализации (статический ARP в Microsoft Windows) или слишком высокие издержки администрирования, когда администратору приходится самому составлять фиксированные пары адресов IP-МАС. Средние и крупные предприятия с сотнями и тысячами хостов уже не смогут воспользоваться этим методом. ARPwatch лучше всего подходит для небольших сетевых сред. Однако в современных сетях в качестве основного нокаут-критерия выступает протокол динамической конфигурации хоста (Dynamic Host Configuration Protocol, DHCP), который используется для динамического распределения IP-адресов между хостами. ARPwatch отреагировал бы на него множеством сообщений о псевдоатаках.
Решение ARP Guard компании ISL призвано ликвидировать опасность спуфинга ARP и восполнить недостающие звенья в семействе продуктов для распознавания. Система ARP Guard состоит из датчиков для определения атак спуфинга ARP и системы управления для оценки и дальнейшей обработки сообщений от этих датчиков. В случае нападения система управления автоматически оповещает о случившемся лиц, ответственных за безопасность. Датчики ARP Guard анализируют сообщения ARP в отдельных сетевых сегментах, для чего подключаются к каждому коммутатору локальной сети через имеющийся зеркальный порт. Датчики ARP Guard для локальных сетей могут устанавливаться на отдельных персональных компьютерах и на любых не слишком загруженных рабочих станциях. Каждый из них может наблюдать за восемью коммутаторами. В более крупных сетях датчики каскадируются и распределяются по отдельным сетевым сегментам (см. Рисунок 2). Для еще более крупных сетей, где повсеместное наблюдение при помощи датчиков слишком дорого, ISL разработала решение, где их функции возлагаются на маршрутизаторы с поддержкой SNMP. Один датчик SNMP обеспечивает наблюдение за таблицами ARP нескольких сотен маршрутизаторов и информирует обо всех происходящих изменениях с помощью средств управления.
Рисунок 2. Датчики системы ARP Guard распознают смену отношений IP-MAC. |
Отдельные датчики ARP Guard взаимодействуют с системой управления ARP Guard посредством шифруемых соединений IP. Система управления анализирует сообщения и готовит их для сетевого администратора, которого она оповещает по SMS или электронной почте. Кроме того, все изменения в таблицах ARP протоколируются и доступны для просмотра через внешний интерфейс Web. С помощью этого интерфейса администратор может конфигурировать систему. Кроме того, ARP Guard работает с DHCP и учитывает смену пар адресов IP-MAC вследствие динамического распределения IP-адресов. Сама система защищена от атак спуфинга ARP.
ЗАКЛЮЧЕНИЕ
Внутри сети злоумышленники без особых усилий могут атаковать коммуникационные соединения в локальной сети, а затем просматривать и даже изменять информацию, в том числе пароли или банковские данные. В Internet доступны как инструменты для взлома, так и соответствующие контрмеры. Поскольку корпоративные сети всегда находятся под угрозой внезапных атак, не следует забывать о профессиональной помощи со стороны компаний, специализирующихся на обеспечении безопасности.
Томас Демут — независимый автор. С ним можно связаться по адресу: mw@lanline.awi.de.
? AWi Verlag