Проект TCP Stealth стал ответом на деятельность спецслужб по сканированию серверов

Фонд свободного ПО сообщил о выявлении активности, связанной с проведением совместной операции спецслужб США, Канады, Великобритании, Австралии и Новой Зеландии по созданию полной базы всех серверов сети. Операция проводится под именем HACIENDA и упоминается в ряде документов, раскрытых Эдвардом Сноуденом. Целью операции является проведение полного сканирования портов всех серверов в 27 странах и создание базы данных, отражающей такие параметры каждого сервера, как используемая операционная система и открытые сетевые порты. Используя данную базу спецслужбы смогут определить потенциально уязвимые системы для получения контроля над ними в случае проведения спецопераций. В процессе работы HACIEND применяются перехваченные гражданские компьютеры, которые используются для получения вычислительных ресурсов или скрытия следов.

В ответ на выявление подобной активности, группа разработчиков свободного фреймворка для построения безопасных P2P-сетей GNUnet, разработала технологию скрытия предоставляемых сетевых сервисов, которая получила имя TCP Stealth. Рабочий прототип с реализацией TCP Stealth для клиентских и серверных соединений подготовлен форме патча для ядра Linux (включается в приложении через опцию сетевого сокета) и библиотеки libknockify, позволяющей обеспечить поддержку TCP Stealth в любом клиентском или серверном приложении без его пересборки (libknockify через LD_PRELOAD подменяет системные вызовы для установки соединения).

Метод TCP Stealth относится к категории «port knoсking», т.е. подразумевает открытие заданного сетевого порта только после прохождения скрытой аутентификации. В отличие от классических методов подобной аутентификации, таких как последовательное обращение к набору портов или отправка специально оформленного пакета, в TCP Stealth предлагается подменять традиционный случайный номер последовательности TCP (TCP SQN) на специально сгенерированный маркер, который аутентифицирует запрос клиента.

Подобный подход позволяет организовать работу и при обращении через NAT, так как большинство реализаций NAT не меняют TCP SQN. Кроме того, для усиления стойкости ключа аутентификации от подбора, кроме 32-разрядного значения TCP SQN опционально часть ключа может передаваться в первых нескольких байтах в поле с данными. В будущем TCP Stealth планируется интегрировать в GNUnet и организовать возможность запуска пиров в стелс-режиме, позволяющем скрыть для внешних наблюдателей факт запуска узла GNUnet. Ожидается, что интерес к обеспечению поддержки представленной техники также могут проявить такие проекты как Tor и OpenSSH.

©  OpenNet