Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Сергей Борисов
Чаще всего хакерская атака начинается с fingerprinting – сбора информации о точной версии операционной системы и публичных сервисов. Приняв меры для противодействия удалённому снятию отпечатков системы, вы сможете остановить большинство атак на свою систему на самом ранем этапе.
Чтобы определить версии операционной системы или прикладных сервисов, последователи Кевина Митника предпочли бы позвонить системному администратору и выяснить все подробности по телефону. Остальные же будут проводить исследование особенностей реализации стека TCP/IP и других протоколов в удаленной операционной системе.
Кроме того, fingerprinting используется при сборе какой- либо статистической информации. В системах обнаружения атак он позволяет определить ОС атакующего или даже однозначно выделить его из общей массы (так же, как отпечатки пальцев позволяют идентифицировать преступника).
От чего защищаться?
Посмотрим, что выдает версию операционной системы и публичных сервисов, и узнаем, от чего нам защищаться. В fingerprinting используются следующие методы:
n Сбор баннеров и ручной анализ системы.
n Активное исследование реализации протоколов.
n Пассивное исследование реализации протоколов.
n Исследование некоторых технических характеристик системы.
Сбор баннеров
Это один из классических методов fingerprinting. Он заключается в опросе открытых в системе сервисов и анализа возвращаемых ими стандартных приглашений (баннеров). Помимо этого сервисы иногда предоставляют дополнительную возможность для определения версии ОС.
Так, например, ftp-сервис может позволить выполнение команды SYST, которая выдает версию операционной системы. Заголовок веб-сервера можно получить командой:
# echo ‘GET / HTTP/1.0 ’ | nc securitylab.ru 80 | grep ‘^Server:’
Server: Apache/2.0.52 (Unix)
Активное исследование реализаций протоколов
Это контрольный набор тестов, проводимых над удаленной системой. Нас будут интересовать в первую очередь те протоколы, реализация которых имеет свои особенности у каждого производителя. К ним можно отнести протоколы стека TCP/IP, SNMP, HTTP, Telnet, FTP. Таким образом, достаточно подобрать хороший набор тестов, в которых различные системы ведут себя по-разному.
Fingerprinting стека протоколов TCP/IP-серверов
Сетевой стек в разных операционных системах различается по нескольким параметрам, и для каждого из них есть технология получения отличий.
Часть возможных исследований, в результатах которых есть различия, приведена в таблице 1.
Таблица 1. Результаты исследования стека TCP/IP Windows, Linux и FreeBSD
|
FreeBSD |
Windows Server 2003 |
Linux 2.2.X |
Начальное значение TCP window |
8192 байт |
17520 байт |
32120 байт |
Начальное значение IP TTL |
64 |
128 |
64 |
Значение АСК в ответе на FIN, PSH, URG-пакет |
Равно значению SEQ в пришедшем пакете |
Равно значению SEQ+1 в пришедшем пакете |
Равно значению SEQ в пришедшем пакете |
Размер ICMP эхо-ответа |
56 байт |
176 байт |
356 байт |
Значение ICMP TOC |
0 |
0 |
1 |
Порядок TCP Options |
«MSS NOP WSCALE NOP NOP TIMESTAMP» |
«MSS NOP WSCALE NOP NOP TIMESTAMP NOP NOP SACK» |
«MSS SACK TIMESTAMP NOP SCALE» |
Количество повторных ответов на SYN-запрос |
3 |
2 |
2 |
Базовая модель стека TCP |
NewReno |
TahoeNoFR плюс SACK |
NewReno |