• Категории
  • Подписка
  • Разместить статью
11/11/10 6 3249 Определение типа ОС
-

Пассивное исследование стека

Было доказано, что во многих случаях определение типа опера­ционной системы может быть выполнено благодаря перехвату фрагментов сетевого трафика. Автором идеи является Ланц Спитзнер (Lance Spitzner). Для этого метода требуется установление соединения с исследуемым компьютером, но не тре­буется использования специально сформированных пакетов, поэтому подобное сканирование не будет выявлено ни одной программой обнаружения вторжений.
Спитзнер обнаружил, что операционные системы используют различные атрибуты, кото­рые связаны с сеансом сетевого взаимодействия, установленного по протоколу TCP/IP. Срав­нивая значения четырех основных атрибутов: TTL (Time-to-Live — время жизни), Windows Size (размер окна), DF (Don’t Fragment — бит фрагментации) и TOS (Type-of-Service — тип обслуживания) со значениями из базы данных, можно определить тип удаленной операционной системы.
Этот метод менее надежный, чем активное исследование стека, поскольку используется меньшее количество параметров, требуется установление соединения, и на удаленном узле без проблем могут быть изменены значения параметров соединения.

Программа p0f

На сегодня самой поддерживаемой утилитой для проведения пассивного анализа стека можно назвать p0f, создателем которой является Михал Залевски (Michal Zalewski, lcamtuf@dione.cc). В январе 2002 года он передал управление процессом поддержки и обновления этой программы Вильяму Стернсу (William Stearns, wstearns@pobox.com). Программа p0f доступна из репозитория, но эта инфо не точная, во всяком случае для Ubuntu есть, или по адресу www.stearns.org.
Программа p0f работает относительно стабильно, имеет большую базу данных сигнатур и использует много характеристик IP-пакетов для определения типа операционной системы. Все это вместе позволяет получать более точные результаты. Результаты мо­гут сохраняться непосредственно в базе данных MySQL. Достаточно простой и понятный код программы понравится тем, кто любит проверять приложения до их запуска от имени root.
Но самая привлекательная особенность утилиты, по мнению специалистов, заключается в возможно­сти создания правил (подобных правилам для tcpdump), которые позволяют перехватывать пакеты только интересующих компьютеров. Для выбора пакетов из общего трафика можно за­дать конкретные IP-адреса, номера портов, адреса сетей или интерфейсов. Также p0f очень удобно и желательно устанавливать на брандмауэр при выполнении аудита системы безопасности! Это позволяет быст­ро выявлять компьютеры, обменивающиеся данными по Internet.
Программа p0f может выполнять анализ перехваченных пакетов, сохраненных в стандарт­ном формате tcpdump или же может выполнять чтение сетевого трафика в неразборчивом ре­жиме.

sudo p0f -i eth0 -v
p0f - passive os fingerprinting utility, version 2.0.8
(C) M. Zalewski < lcamtuf@dione.cc>, W. Stearns < wstearns@pobox.com>
p0f: listening (SYN) on 'eth0', 262 sigs (14 generic, cksum 0F1F5CA2), rule: 'all'.
 
172.16.217.179 [1 hops]: Linux 2.2.9 - 2.2.18
+ 172.16.217.179:1631 -> 192.168.164.74:22
192.168.164.74 [14 hops]: SunOS   5.8
+ 192.168.164.74:60786 -> 172.16.18.82:80
169.207.233.226 [18 hops]; Linux 2.4.2 - 2.4.14 (1)
+ 169.207.233.226:33328 -> 216.162.217.179:23
172.16.217.179 [1 hops]: Linux 2.2.9 - 2.2.18
+ 172.16.217.179:1633 -> 10.20.196.98:
10.20.196.98: UNKNOWN [5840:56:1460:1:162:1:1:60].
+ 10.20.196.98:2118 -> 172.16.217.179:25
10.20.196.98 [9 hops]: Linux 2.4.2 - 2.4.14 (1)
+ 10.20.196.98:2119 -> 172.16.217.179:110

Как видно из приведенного выше листинга, в отчетах p0f также указывается количество переходов (hop) от хоста, на котором запущена эта программа. Чем меньше количество переходов (например, для хоста 172.16.217.179), тем ближе данный компьютер к хосту, на кото­ром проводится проверка. Кроме того, p0f иногда не в состоянии определить операционную систему с первого раза, и тогда в отчете используется слово UNKNOWN, но он может получить ис­комый результат со второй попытки (как видно из примера для хоста 10. 20.196. 98).

Как помешать пассивному исследованию стека

Можно изменить стандартные параметры соединения по протоколу IP, которые проверяют­ся средствами пассивного исследования стека, что сделает невозможным классификацию опе­рационных систем. Например, для изменения устанавливаемого по умолчанию значения TTL достаточно выполнить следующие команды:

# cd /proc/sys/net/ipv4
# cat ip_default_ttl
64
# echo 35 > ip_dafault_ttl
# cat ip_default_ttl
35

Таким образом, по умолчанию будет использоваться значение поля TTL, равное 35, которое не соответствует стандартным значениям в базе данных сигнатур. Будьте осторожны при смене значений, используемых по умолчанию, так как эти значения установлены не без основания, и их смена может привести к уменьшению производительности сети или потере совместимости.
Намного важнее поддерживать полную безопасность компьютера, чем по­лагаться на дезинформацию хакера при определении им типа используе­мой операционной системы.


6 комментариев на «“Пассивное исследование стека”»

  1. pupkin:

    Да, этот Ланц Спитзнер (Lance Spitzner) должно быть очень умный человек, что придумал такое.

  2. Яковлевна:

    Да, пожалуй метод надёжнее, чем активное исследование стека. Спасибо.

  3. Непонятен тот момент, что если изменить ТЛЛ со значения 35, то появится глюки? насколько можно отклонять это значение от стандартного?

  4. Ну, хоть что-то новое выдумали.

  5. Вопрос один. Что такое стек?…

Добавить комментарий

Яндекс.Метрика