Фильтрация протоколов системы BitTorrent на основе http признана устаревшей, однако для неё существуют некоторые перспективы. Это либо контроль генерации случайных составляющих некоторых параметров приложения, либо (что более реально, но более трудоёмко) проведение детального дизассемблирования элементов всех протоколов.
Система фильтрации собственно bittorrent protocol более надёжна, однако на данный момент она охватывает достаточно небольшое число функций и не охватывает все особенности функционирования клиента. Для неё необходимо проводить серию дизассемблирований, а также изучать особенности поведения и частоты возникновения конкретных полей и заголовков в пакетах. Существуют гипотетические предпосылки, указывающие на зависимость появления некоторых элементов протокола от таких параметров, как количество пиров, участвующих в обмене и скорости работы клиента.
Поведение трафика в системе BitTorrent представляет собой достаточно упорядоченный процесс со сложной структурой контроля и высокой степенью устойчивостью к каким-либо изменениям и высокой степенью живучести. Сложностью для осуществления фильтрации также представляется тот факт, что система `паразитирует` на стандартных протоколах, подведя их возможности под свои собственные нужды. И закрывая отдельные элементы торрент-сетей, мы невольно запрещаем работу всего остального.
1.2.2.3 Структура и фильтрация Skype.
Skype – бесплатная проприетарная система обеспечения шифрованной голосовой связи и видео-связи через компьютерные сети (VoIP), поддерживающая платные услуги связи с абонентами традиционных телефонных сетей. Программа Skype поддерживает многопользовательский чат без поддержки именованных каналов (в отличии от ICQ или IRC). Официально для обеспечения качественной голосовой связи требуется широкополосное Интернет-соединение, однако на практике достаточно использовать мобильное соединение edge-уровня при полностью свободном канале. Неофициальных Skype-клиентов на данный момент не существует в связи с его закрытостью.
В отличие от многих других программ IP-телефонии, для передачи данных Skype первоначально использовал P2P-архитектуру. Каталог пользователей Skype распределён по компьютерам пользователей сети Skype, что позволяет сети легко масштабироваться до очень больших размеров (в данный момент более 100 миллионов пользователей, 10-15 миллионов онлайн) без дорогой инфраструктуры централизованных серверов. Кроме того, Skype может маршрутизировать звонки через компьютеры других пользователей. Это позволяет соединяться друг с другом пользователям, находящимися за NAT или межсетевым экраном, однако создаёт дополнительную нагрузку на компьютеры и каналы пользователей, подключённых к Интернет напрямую. Единственным центральным элементом для Skype является сервер идентификации, на котором хранятся учётные записи пользователей и резервные копии их списков контактов. Центральный сервер нужен только для установки связи. После того, как связь установлена, компьютеры пересылают голосовые данные напрямую друг другу (если между ними есть прямая связь), или через Skype-посредник (суперузел — компьютер, у которого есть внешний IP-адрес и открыт TCP-порт для Skype). В частности, если два компьютера, находящиеся внутри одной локальной сети, установили между собой Skype-соединение, то связь с Интернетом можно прервать, и разговор будет продолжаться вплоть до его завершения пользователями или какого-либо сбоя связи внутри локальной сети. Однако, вследствие неоднократных проблем с надёжностью сети, Microsoft без уведомления пользователей перевел все суперузлы на собственные серверы (стать им стало невозможно), так что от концепции Р2Р на данный момент система перешла к архитектуре более близкой к клиент-серверной.
Система Skype является чрезвычайно устойчивой к различным внешним воздействиям. Даже при полном запрете протокола UDP эта программа функционирует в особом режиме схожем с работой вредоносных троянских программ. Skype проходит через межсетевые экрана используя специальные протоколы (STUN и TURN). Однако, на самом деле Skype — обычный VoIP-клиент с поддержкой усовершенствованного STUN-подобного протокола.
При установке соединения между узлами данные шифруются при помощи AES-256, для передачи ключа которого, в свою очередь, используется 1024-битный ключ RSA. Открытые ключи пользователей сертифицируются центральным сервером Skype при входе в систему с использованием 1536 или 2048-битных сертификатов RSA. Также Skype прекрасно работает через TOR, систему анонимных сетевых маршрутизаций, защищённых от прослушивания. А в дополнении к внутреннему закрытому шифрованию Skype может запускаться через сверхустойчивую анонимную оверлейную I2P-сеть, где дополнительно будет зашифрован четырёхуровневым шифрованием самой сети.
Подобная закрытость является предметом обсуждения среди спецслужб в связи с невозможность его прослушивания и перехвата разговоров. Единственные известные случаи перехватов осуществлялись с помощью троянских программ, берущих звук непосредственно с микрофонов до использования внутреннего шифрования.
Взлом исполняемого файла Skype с целью получения информации о его функционировании для последующего контроля представляет собой чрезвычайно сложную задачу. Он содержит ряд средств и механизмов, противодействующих анализу с использованием различных инструментальных средств, таких как отладчики, дамперы, дизассемблеры и т. д.). Требуемые для его анализа временные и технические ресурсы весьма велики.
Первые сложности возникают при работе с исходным двоичным файлом, который целиком зашифрован и расшифровывается по мере загрузки в память. Любое несанкционированное воздействие, распознанное внутренними механизмами Skype, приводит к сбросу исполняемого кода до начального состояния и полной очистки результатов его выполнения. Все прикладные функции вызываются по мере процесса распаковки. Многие функции проверки и вызова исполняемых элементов задаются случайно, на основе данных от внутренних генераторов, и выполняются при использовании различных криптографических сигнатур, полученных с полиморфных генераторов, генерирующих и смешивающих случайные команды (в том числе и пустые) со значимыми. Каждый вызов функции осуществляется через динамически генерируемый указатель адреса, обработанный обфусцирующим блоком для усложнения кода.
Основным приёмом передачи управления для Skype являются структурные исключения. В этих случаях система модифицирует регистры памяти, выходит на исключение (фактически, прерывание) и переходит на выполнения кода с прерванного сегмента или передаёт его в случайное место. Это стратегическое преимущество велико, но может быть снято путём подбора корректных отладчиков.
Протокол взаимодействия между Skype-клиентами полностью недокументирован, поэтому все известные данные о нем были получены эмпирическими методами: дизассемблирования Skype-клиентов, анализа перехваченного сетевого трафика и т. д. Поскольку существует огромное множество версий Skype-клиентов, существенно отличающихся между собой, то описание протокола может содержать неточности для различных версий. При запуске Skype-клиент открывает TCP и UDP порты, номера которых случайным образом задаются при инсталляции и могут быть в любой момент изменены через диалог конфигурации, что затрудняет блокирование Skype-трафика на межсетевом экране. Помимо этого, Skype открывает 80 (HTTP) и 443 (HTTP-over-TLS) порты, однако их блокировка не сказывается на полноценном функционировании системы. Поиск функциональных сигнатур в трафике Skype осложняется использованием различных встроенных технологий шифрования и обфускации, подвергающихся постоянным модификациям.
Идентификация и гибкая (эффективная) фильтрация трафика Skype на сегодняшний день серьёзно затруднена из-за всех вышеперечисленных технологий, используемых в этой системе. Доступных, универсальных и актуальных способов контроля Skype неизвестно. Разработчики Skype предостерегают администраторов от попыток выявления и блокирования его трафика.
Можно перечислить ряд решений, в той или иной степени решающих проблему фильтрации Skype, по большей степени основанных на использовании известных незашифрованных данных. Например, каждое UDP-соединение Skype использует открытый протокол для получения публичных IP-адресов super-узлов, что свободно определяется анализатором трафика. А TCP-соединение использует один и тот же RC4 поток дважды, что позволяет восстанавливать первые 10 байт ключа, расшифровав часть постоянных полей заголовков протокола Skype.
Распознать и заблокировать UDP-трафик гораздо проще: каждый фрейм начинается с двухбайтового идентификационного номера (ID) и типа пакета (payload). В UDP пакет вложен обфусцированный 39-байтный NAck-пакет, содержащий следующие данные:
· идентификатор пакета (непостоянен и варьируется от одного пакета к другому);
· номер функции (func), пропущенный через обфускатор,
· IP-отправителя;
· IP-получателя.
Таким образом, чтобы заблокировать UDP-трафик, генерируемый Skype, достаточно запретить такой тип пакетов.
Вторым шагом к полному запрету Skype является блокировка протокола TCP. Заголовки входящих IP-пакетов, относящиеся к протоколу обмена SSL-ключами (SSL key-exchange packets) содержат нехарактерный для обычных приложений идентификатор 170301h, возвращаемый в ответ на запрос с идентификатором 160301h (стандартный SSL версии 3.1). Таким образом, блокирование всех входящих пакетов, содержащих в заголовке 170301h серьёзно скажется на Skype и текущие версии потеряют работоспособность.
2 Принцип функционирования ССПТ-2 в режиме фильтрации прикладного уровня
Принципы работы МЭ ССПТ-2 в режиме пакетного фильтра были рассмотрены в [1,2].
2.1 Режим управления сессиями и фильтрация прикладного уровня
ПО ССПТ-2 обеспечивает возможность выявления среди общего трафика потоков данных (сессий), в том числе виртуальных соединений, между парами адресатов (инициатор соединения – клиент, второй участник сессии - сервер) и контроль корректности последовательностей пакетов в пределах этого потока (контроль сессий). Контроль сессий поддерживается для следующих протоколов:
1) TCP, при этом осуществляется:
- контроль неизменности параметров отправителя и получателя пакетов на протяжении всей сессии;
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 |


