среда, 20 декабря 2017 г.

Windows. QoS. Нестандартное использование

Приветствую, уважаемый читатель!

Иногда отсутствие финансовых возможностей заставляет искать нестандартные решения для, казалось бы, простых задач в области ИБ (например, контроль активности пользователей). Результатом таких изысканий может быть контроль ПО с помощью WinEvent Log и визуализация в Splunk - http://unitybas.blogspot.ru/2016/12/windows_8.html , а может маркирование трафика, который уходит в сеть с компьютера пользователя. Про это чуть подробнее. J




Маркировать трафик предполагается методами в рамках технологии QoS, которая позволяет относить сетевой трафик к различным классам и определять их приоритет. Понятно, что IP-телефония и видеоконференцсвязь требуют более высокого уровня и скорости обслуживания, чем, предположим, отправка электронной почты и web-серфинг. Суть маркировки заключается в принудительном помещении в DS-байт заголовка IP-пакета специального числового значения (DSCP значение). С приоритетами всё просто: чем выше DSCP значение, тем приоритет трафика выше. Вообще, маркировкой трафика обычно не занимаются конечные узлы, но нам интересен именно этот сценарий.

Какая основная идея. Если пометить трафик некоторых приложений специальным DSCP  значением, то можно контролировать факт их использования и активность в них пользователя (можно, конечно, ещё его дропать, перенаправлять и т.д.). В качестве подопытного выступит виртуалка с Windows 7, не включённая в домен.

Включаем маркировку пакетов

1) Необходимо проверить включен ли в свойствах сетевого интерфейса «Планировщик пакетов QoS».



2) В реестре Windows необходимо создать новую ветку «HKLM\SYSTEM\CurrentControlSet\services\Tcpip\QoS» со строковым параметром «Do not use NLA».

Type: REG_SZ
Name: Do not use NLA
Value: 1


Настройка правил маркировки

Правила маркировки настраиваются в локальной политике безопасности Windows (Конфигурация компьютера – Конфигурация Windows QoS на основе политики). Далее выбираем «Создать новую политику».



Для первоначальной настройки главное вписать имя новой политики и выбрать DSCP  значение (от 0 до 56).



Маркировать трафик можно в соответствии с разными сценариями, например:
1) Весь трафик.
2) Трафик отдельного приложения.
3) Трафик отправляемый/получаемый с конкретного IP-адреса/диапазона.
4) Трафик отправляемый/получаемый с конкретного TCP/UDP порта.

Естественно, настройки маркировки можно комбинировать между собой, и для нескольких политик можно задать одно и то же DSCP значение. Для примера, я промаркировал трафик отправляемый браузерами Chrome и Firefox (DSCP 10), а весь остальной трафик DSCP 15:






Проверка выполненной маркировки

Успешность выполненной маркировки можно проверить с помощью WireShark, в заголовке IP-пакета будет соответствующее поле (показано на скрине ниже):


Значение в заголовке приведено в Hex-формате и равно «0x28» или «40» в десятичном представлении. Возникает вопрос, значение DSCP ставили 10, а в пакете получили значение 40. Связано это с тем, что на текущий момент (после  RFC 2474) под значение DSCP в IP-пакете выделяется 6 бит, а оставшиеся 2 бита выделены под значение Explicit Congestion Notification (ECN), которое равно «00» (подробнее почитать тут - https://ru.wikipedia.org/wiki/Explicit_Congestion_Notification). Но, до RFC 2474 для маркировки IP-пакетов использовалось поле Type of Service (ToS) с другими правилами маркировки, и, соответственно, значение DSCP и ToS не совпадают. Причем, например, Iptables и Tcpdump оперируют ToS.

Для устранения несоответствия есть специальная таблица (приведена ниже), но если не лезть в дебри, то DSCP всегда в 4 раза меньше ToS.



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




Комментариев нет:

Отправить комментарий