Алгоритмы анализа удаленной системы (продолжение)

Passive fingerprinting

Итак, идея passive fingerprinting-а заключается в анализе информации, доступной без непосредственного воздействия на исследуемую систему. Существующие на сегодняшний день методы можно разделить на анализ сетевого трафика и анализ информации уровня приложений.

Метод анализа проходящих пакетов
--------------------------------

В сигнатуру пакета, на основе которой предпологается производить определение ОС входят следующие поля:

При применении данного метода следует использовать статистический подход - накапливать информацию, относящуюся к одному соединению, а затем определять по заранее составленным таблицам наиболее вероятную ОС.

Анализ проходящего трафика на менее глубоком уровне также может дать некоторую информацию - например какими сервисами каких удаленных систем пользуется система, относительно которой производится сбор информации. Удобным в установке и настройке сниффером (инструментом для анализа проходящих пакетов) является snort (www.snort.org).

Application level passive fingerprinting
----------------------------------------

Другим подходом к пассивному анализу удаленной системы является анализ информации уровня приложений. Он может осуществляться как на основе анализа проходящего трафика (как в предыдущем методе), так и на основе анализа информации, получаемой серверными приложениями исследующей системы от различных удаленных клиентов. Примером последнего метода могут послужить decoy server-ы - способ определения атак на систему путем подмены обычных серверных приложений (таких, как ftp, http, smtp, pop3 сервера) на приложения, выполняющие их функции и попутно регистрирующие нетипичную деятельность клиента.

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

Ping-payload
------------

Принцип работы утилиты ping основан на посылке ICMP пакета ICMP-Echo, содержащего произвольные данные, на который хост-адресат отвечает пакетом ICMP-Echo-Reply, содержащим те же самые данные. Время между отправкой ping-пакета и получением ответа на него и является временем отклика удаленной системы. С точки зрения пассивного анализа, интерес представляет способ генерации, данных заполняющих пакет. Различные операционные системы используют различное наполнение. Так, в случае Win2K, содержимое пакета будут составлять строчные символы латинского алфавита ("abcde...xyzabcd..."), а в случае RedHat 6.1 в содержимом будут и цифры, и специальные символы. Эти отличия позволяют попытаться распознать операционную систему ping-ующего хоста.

HTTP
----

Данный протокол позволяет серверу получить некоторую информацию о клиентской машине, основываясь, главным образом, на составе и порядке header-ов в запросе (несущих вспомогательную информацию). Так, например, заголовок User-Agent: содержит информацию об используемом браузере, а зачастую, и о клиентской операционной системе.

Более подробную информацию о клиенте (которым, собственно, является браузер) сервер может получить, отослав клиенту html-документ, содержащий специальный javascript-код, определяющий необходимые серверу параметры и возвращающий их серверу, используя, например, механизм CGI. На этом основывается работа многочисленных баннерных сетей и счетчиков. Хорошим примером подобного javascript-кода может служить счетчик spylog-а. Однако подобная техника не может считаться полностью пассивной, так как может быть опознана на клиентской стороне.

FTP
---

Несмотря на кажущуюся простоту, и этот протокол позволяет серверу достаточно точно определить клиентское программное обеспечение. При успешном соединении клиент в начале ftp-сессии подает некоторые из следующих команд: AUTH, USER, PASS, PWD, PORT, SYST, EPSV, PASV, LIST, CWD. То, какие именно команды и в каком порядке он подает, позволяет уверено различать многих клиентов:



Telnet
------

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

SMTP/POP3/NNTP
--------------

Служебные заголовки сообщений электронной почты дают обильную информацию об источнике и процессе пересылки письма. Анализируя их, исследователь может получить список хостов внутри сети исследуемой системы, участвующих в процессе пересылки почты, и сделать некоторые предположения относительно правил маршрутизации почты в исследуемой подсети. В заголовках всегда фигурирует ip или hostname источника письма. Рассмотрение таких полей, как Message-ID, X-Mailer, User-Agent дает возможность определить клиентское программное обеспечение, использованное при написании и отсылке письма (вплоть до номера версии) и, часто, операционную систему клиента. Например:

 Message-ID: <PINE.LNX.4.10.XXXXX...>
 X-Mailer: QUALCOMM Windows Eudora Version 4.3.2
 X-Mailer: Microsoft Outlook Express 5.00.3018.1300

Аналогичную информацию можно получить, анализируя заголовки новостных сообщений (NNTP). Здесь наиболее выразительными являются User-Agent, X-Http-User-Agent, X-Mailer, Message-ID, X-Newsreader, X-Operating-System.

Hosted by uCoz