вторник, 18 декабря 2012 г.
TTL – ловим нарушителей периметра сети или развенчиваем мифы.
Доброго времени суток всем тем, кто сегодня читает данную статью!
Я не нашел во всемирной сети Интернет упоминания о возможности использования поля TTL (time to live /время жизни пакета данных в протоколе IP/) таким образом, о котором пойдет речь.
Данного функционала мною не найдено ни в одной общеизвестной коммерческой или Open Source реализации системы безопасности локальных и глобальных сетей.
Между тем возможности по использованию данного поля при обеспечении информационной безопасности локальных и глобальных сетей довольно широки, т. к. имеется возможность с большой степенью достоверности (не совсем верно при использовании генераторов пакетов) определять нарушителей периметра локальной сети или сегмента любой другой сети, а также выполнять достаточно точную идентификацию регионального расположения пользователей в глобальных сетях. Сегодня пойдёт речь лишь об одном из вариантов использования поля TTL для систем безопасности локальной сети, обещаю через некоторое выставить на ваше обозрение материал об использовании поля TTL в целях идентификации пользователей в глобальных сетях.
Начнём, алгоритм с использованием которого возможно выявление компьютерных хулиганов/нарушителей периметра безопасности сети:
1. Устанавливаем для хостов в нашей локальной сети периодически меняющиеся значение поля TTL. На платформах MS Windows данное значение возможно выставить использованием локальных, групповых политик безопасности, либо изменением параметра реестра [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters] «DefaultTTL»=dword:00000063; для платформ на основе операционных систем Linux данное значение возможно изменить с помощью модификации соответствующего параметра сетевого стека “echo 120 > /proc/sys/net/ipv4/ip_default_ttl”. Изменение данных параметров возможно реализовать в виде соответствующих скриптов на VBScript для MS Windows с последующим добавлением в GPO и bash (shell) для Linux платформ, а также последующим добавлением данных заданий в планировщик задач (шедулер, cron) для периодического выполнения данных скриптов. Возможно и единоразовое изменение параметра TTL по возникшей потребности в выявлении нарушителя периметра сети. Нарушение периметра безопасности сети возможно по различным причинам, в т. ч. и в результате действия инсайдеров.
2. Периодически изменяющиеся значение поля TTL, отличное от значения TTL для других хостов, имеет смысл установить особенно для хостов, которым не разрешен выход в сеть интернет через шлюз организации, что позволит отслеживать пользователей, которые нарушают систему безопасности организации, т. к. логично предположить, что данные нарушители получили тем или иным способом административные права на своем хосте (при аутентификации на шлюзе по паре MAC-IP) и/или кто-то по доброте душевной сообщил другому сотруднику свой пароль авторизации на шлюзе доступа в сеть интернет. Для таких хостов, которым не разрешен выход в интернет, устанавливаем значение поля TTL в несколько единиц, такое значение позволит пройти пакетам только через несколько маршрутизаторов (-р) и не даст нарушителям доступа к ресурсам сети интернет.
3. После таких нехитрых приготовлений мы получим в итоге известные значения TTL для нашей подсети (сети), которые меняются со временем. Согласитесь, что нарушителю об этом не будет известно, а это дает возможность выявить такого непрошенного гостя по значению его TTL. Значение TTL нарушителя будет отличным от известных нам в текущий момент значений TTL для нашей подсети (сети).
4. Остается дело техники. Для мониторинга значений TTL в сети можно воспользоваться различным программным обеспечением (анализаторы пакетов с фильтрацией по известным нам значениям полей TTL; IDS, IPS с соответствующим написанным дополнением), которое будет отслеживать не валидные значения поля TTL в пакетах и сообщать нам информацию о нарушителе, а также будет иметься возможность по автоматической блокировке нарушителя со стороны средств превентивного реагирования. Дополнительная фильтрация осуществляется: по флагу SYN (TCP) или по запросу на соединение (NEW); для UDP по запросу на соединение NEW, для валидного диапазона сети.
5. После выявления нарушителя можно воспользоваться станцией управления сетью (SNMP) для поиска оного на портах наших коммутаторов по значениям его MAC и IP адресов.
6. Идем к нарушителю и вершим суд праведный.
Как вы уже поняли, данный способ делает поиск нарушителя в локальной сети довольно тривиальным.
Это вся информация, которой я хотел поделиться с вами, уважаемые читатели моего блога.
Обращаю ваше внимание, уважаемые посетители, при использовании материала данной статьи или её части, прямая ссылка на данную статью обязательна. Все права на данную статью, в т. ч. интеллектуальные, принадлежат автору данного сайта.
Если вас заинтересовала данная статья, пожалуйста, распространите ссылку на данную статью через своих знакомых.
UPD: Надеюсь читатели имеют представление о граничных значениях для поля TTL для локальных и глобальных сетей. Не забываем так же о влиянии флага TTL на маршрутизацию пакетов, при прохождении пакета через маршрутизаторы, но это забота провайдеров, которые обязаны производить соответствующее изменение некоторых полей проходящих транзитных пакетов, таких как TTL, ToS согласно требований вышестоящих телекоммуникационных компаний. Особенное внимание не забываем обращать на мультикаст, аникаст трафик.
UPD2: Обращаю внимание, что данный алгоритм позволяет выявлять и такой бич вычислительных сетей, как генераторы пакетов, с точностью до сегмента, а затем до порта (поиск в сегменте труда не составит, если задействовать зеркалирование трафика на управляемом оборудовании или даже вручную). Есть и другие применения данного алгоритма, которые позволяют вывести уровень защиты вычислительных сетей на качественно новый уровень. Но об этом позже.
http://nikitushkinandrey.wordpress.com/2011/03/10/ttl-%d0%bb%d0%be%d0%b2%d0%b8%d0%bc-%d0%bd%d0%b0%d1%80%d1%83%d1%88%d0%b8%d1%82%d0%b5%d0%bb%d0%b5%d0%b9-%d0%bf%d0%b5%d1%80%d0%b8%d0%bc%d0%b5%d1%82%d1%80%d0%b0-%d1%81%d0%b5%d1%82%d0%b8-%d0%b8/