Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Безопасность сетей Windows для профессионалов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

1.1.3 Как "разобрать" кадр Ethernet

Структура пакетов, передаваемых по сети, разбор кадра (frame) Ethernet, MAC-адреса, данные протокола IP, порты TCP и UDP, прикладные протоколы

Все снифферы оперируют кадрами (фреймами, frames - иногда их называют также пакетами Ethernet). Кадр - это минимальная единица передаваемой информации в сети Ethernet. Вся информация передается только кадрами. Либо кадр прошел (информация дошла до получателя), либо по каким-то причинам получить его не удалось (коллизия, другое повреждение кадра, физические проблемы в сети и т.п.)

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

Мы продемонстрируем содержание кадра Ethernet с некоторыми комментариями на примере того, что показывает Network Monitor.

Для просмотра кадров в Network Monitor необходимо поймать их, затем в меню Capture выбрать Display Captured Data (или Stop and View, если захват данных продолжается - откроется экран просмотра захваченных кадров. Далее необходимо выбрать интересующий нас пакет и дважды щелкнуть по нему мышью - откроется два дополнительных окна. В самом нижем окне показывается кадр в двоичном формате, а в среднем окне - та информация, которую удалось расшифровать.

Каждый кадр организован как "матрешка" - в пакет протокола более низкого уровня упакован пакет вышестоящего протокола, и в только в саму середину "завернуты" передаваемые данные. В Network Monitor перечисление идет сверху вниз от "наружных обложек" - протоколов более низкого уровня к внутренним - протоколам более высоких уровней и данным.

На самом верху в Network Monitor показан узел Frame. Собственно говоря, это информация не самого пакета, а Network Monitor об этом пакете: когда был пойман кадр, сколько времени прошло с момента поимки предыдущего пакета, размер пакета.

Ниже расположен узел Ethernet. Здесь - только два блока полезной информации: MAC-адрес получателя и MAC-адрес отправителя (еще есть ссылка на вышестоящий протокол - для IP всегда 0x0800 - и контрольная сумма кадра, но они нам вряд ли будут интересны). Про MAC-адреса необходимо сказать подробнее. Эти адреса прошиваются в каждый сетевой адаптер производителем адаптера при изготовлении. У каждого сетевого адаптера - свой уникальный MAC-адрес, за уникальностью следит IEEE (она раздает диапазоны MAC-адресов производителям) и производитель. Узнать, какой диапазон какому производителю выдан, можно по адресу http://standards.ieee.org/regauth/oui/index.shtml.

Просмотреть MAC‑адрес сетевого адаптера локального компьютера можно при помощи ipconfig /all, удаленного - при помощи тех же самых снифферов (организовав любой обмен пакетами, например, ping, с удаленным компьютером).

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

·        самый простой вариант - кто-то принес ноутбук и подключился к сети. Подобные подключения (особенно если на ноутбуке не стоить антивирусное программное обеспечение и он использовался для выхода в Интернет из дома) - часто становятся источником больших проблем для администраторов;

·        второй вариант (маловероятный) - кто-то поменял MAC-адрес. Многие современные производители прописывают MAC-адрес во флэш-память сетевого адаптера и его можно изменить - обычно при помощи утилит самих производителей;

·        третий вариант - кто-то установил у себя на компьютере виртуальный компьютер VMWare или Virtual PC с доступом в сеть. Для старых версий VMWare такие карточки выглядят как NE2000, для новых - как производства фирмы AMD;

·        четвертый вариант - кто-то воспользовался утилитой SMAC (в каталоге Spoofing на компакт-диске), которая умеет осуществлять подмену MAC-адреса "на лету". В этом случае обнаружить компьютер злоумышленника практически невозможно.

Если пакет отправлен на MAC-адрес FF-FF-FF-FF-FF-FF, то это значит, что это пакет - широковещательный на уровне фрейма и его примут все компьютеры этого сегмента сети. Если пакет отправлен на MAC-адрес 03-00-00-00-00-01, то это - широковещание в сети NETBEUI.

Следующая "матрешка" в кадре Ethernet - это заголовок (служебные данные) протокола IP. Подробнее про все поля этого заголовка - в справочниках по TCP/IP, для нас же самые важные поля - это IP-адрес отправителя и получателя. Специальный адрес 255.255.255.255 или когда 255 стоит в последних октетах - это широковещание на уровне протокола IP (на по всем адресам или только адресам одной сети), специальный адрес 0.0.0.0 означает, что адаптер не имеет IP-адреса (например, такой адрес используется адаптером при взаимодействии с сервером DHCP до получения IP-адреса). Если у адаптера адрес начинается на 169.254.x.x - это сработал протокол APIPA, то есть компьютер Windows 2000/XP/2003 не смог получить адрес у DHCP сервера и взял себе адрес из этой сети самостоятельно.

IP-адреса можно менять (если у пользователя есть права администратора), а можно подменять (IP Spoofing). Самый простой вариант IP Spoofing - создать пакет вручную, например, в IRIS, и отправить его. Обычно используется специализированным программным обеспечением для сокрытия следов при DoS-атаках. Если IP-адрес получателя и отправителя в принимаемом пакете совпадают (а также совпадают и порты), некоторые старые операционные системы (Win95, WinNT до SP3, Novell 4.11, MacOS 8.0, FreeBSD до 2.2.5 включительно, AS/400 3.7) приходят в изумление и зависают (или подвисают) при попытке обработать такой пакет - получается LAND-атака.

Дальше в кадрах Ethernet, пойманных в IP-сети, начинаются различия. Выше идут протоколы так называемого уровня 3+ по модели OSI. Наиболее часто используются следующие протоколы этого уровня:

·        TCP - основной протокол для передачи пользовательских (и многих служебных) данных. Используется для надежной передачи данных (с установкой соединения). Самая важная информация протокола TCP - номер порта получателя и номер порта отправителя, то есть идентификаторы конечных приложений (служб) на компьютере, которым предназначен пакет.

·        UDP - аналог TCP, но работает без установки соединения, поэтому используется обычно для передачи служебных данных (обращение к DHCP, DNS, WINS и т.п.). Самая важная информация - также порты.

·        ICMP - протокол управляющих сообщений Интернета. Определяется RFC 792. Протокол очень простой, в нем предусмотрено всего 11 типов сообщений. Наиболее частое использование - Ping, Tracert, перехват пакетов ICMP Source Quench. Часто используется также вирусами-червями (Welchia и т.п.) для обнаружения компьютеров в сети, поэтому если компьютер рассылает очень большое количество ICMP-пакетов, скорее, всего, на нем завелся червь.

·        IGMP - протокол групповых сообщений. Используется для передачи групповых (multicast) данных - которые посылаются одним компьютером и принимаются группой других. Обычно используется для аудио и видео трансляций, установки ПО (Norton Ghost) и т.п.

Самое важное, что можно перехватить на этом уровне - это порты, то есть идентификаторы сетевых приложений/служб на этом компьютере. Порты делятся на несколько категорий:

·        первое деление - по протоколам (TCP и UDP). Обычно под портами подразумеваются порты TCP, но про то, что есть и порты UDP, также забывать не следует. Например, если вы откроете порт TCP 53 на брандмауэре, то проходить трафик DNS через него не будет (только zone transfers и очень большие DNS-запросы).

·        второе деление - на порты, приписанные к приложениям в соответствии со стандартами IANA (например TCP 21, 25, 80, 110, полный официальный список - на www.iana.org/assignments/port-numbers) и динамические (обычно все остальные, которые динамически выбираются приложениями из числа свободных в данный момент на компьютере);

·        третье деление - на порты открытые (занятые приложениями, которые готовы принимать на них данные, или для брандмауэра - пакеты, отправленные на эти порты, он будет принимать) и закрытые (пакеты на эти порты не принимаются и не пропускаются). Обращение на закрытые порты можно использовать для дополнительных проверок и повышения уровня безопасности - Port Knocking (www.portknocking.org, реализация на Java находится в каталоге Снифферы). Лишние открытые порты - потенциальные уязвимости компьютера (а иногда и результат установки троянских программ), и подробнее про их выявление будет рассказано в модуле про сканеры безопасности и управление патчами.

Выше TCP/UDP находятся уже прикладные протоколы. Некоторые из них (DNS, WINS, BOOTP-DHCP) расшифровываются Network Monitor полностью, другие (SMB, RPC и т.п.) - лишь частично, третьи (например, RDP и TDS) - вообще не расшифровываются. Для некоторых протоколов можно установить дополнительные парсеры - разборщики (специальные модули DLL, которые позволяют расшифровать данный протокол), для других таких парсеров не существует.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru