|
Как выявить скрытую передачу данных в сети?
Алексей Лукацкий
Консультант по безопасности Cisco
Itsec.Ru
Скрытые каналы (covert channels) – это один из методов в информационной безопасности, который может применяться как со знаком плюс (для обеспечения анонимности и конфиденциальности), так и со знаком минус (для организации утечек данных). Рассмотрим именно вторую составляющую – обнаружение скрытой передачи данных, или передачи данных по скрытым каналам, что является одной из самых труднорешаемых на практике задач информационной безопасности. Чтобы не увеличивать размер статьи, я сознательно обойду вниманием такие механизмы скрытия данных, как шифрование и стеганография.
Что такое скрытая передача данных?
Скрытая передача данных по сети – это не единственное применение данного метода. Впервые термин "скрытый канал" появился в 1973 г. и применялся для вычислительных систем, не имеющих традиционного сетевого подключения. Например, четное значение длительности процесса может означать единицу, а нечетное – ноль. Таким образом, манипулируя длительностью процесса, мы можем формировать последовательность из 0 и 1, которыми можем описать все, что угодно (это так называемый временной канал). Другой пример скрытого процесса в вычислительных системах – запуск процессом той или иной задачи и ее завершение в определенное время, которое может трактоваться как единица; и ноль, если задача не завершена в указанное время.
Как может быть реализована скрытая передача?
Если говорить о скрытой сетевой передаче данных, то одним из самых популярных и относительно простых в реализации методов является инкапсуляция, которая заключается во включении защищаемой информации, которая должна быть передана наружу, или команды, которая должна быть принята снаружи, в разрешенный протокол.
В 1987 г. была предложена идея скрытой передачи по сети, и с этого момента начались серьезные исследования данного метода обеспечения конфиденциальности или утечек данных (зависит от того, с какой стороны баррикад смотреть). В частности, в 1989 г. впервые было предложено манипулировать неиспользуемыми битами фреймов Ethernet и ряда других канальных протоколов. Очевидно, что скрытые каналы в локальной сети не так интересны для изучения, в отличие от скрытия данных в глобальных сетях. Прорывом (по крайней мере, публичным) можно считать 1996 г., когда было опубликовано исследование, в котором демонстрировалась реальная передача и прием данных по скрытому в TCP/IP-каналу; а точнее, в отдельных полях его заголовка. |
При этом могут быть использованы совершенно различные варианты инкапсуляции:
- На уровне HTTP, который уже давно стал стандартом де-факто для построения на его базе других прикладных протоколов. Например, анонимная сеть JAP использует HTTP для передачи данных, задействуя еще и сложноконтролируемую сеть Tor. В HTTP возможно использовать команды GET и POST для передачи данных, а если HTTP применяется для передачи потокового видео и аудио, то возможности злоумышленников по передаче больших объемов данных становятся практически безграничными.
- На уровне DNS, когда информация скрывается внутри DNS-запросов и ответов на них. Впервые про этот метод начали говорить в начале 2000-х гг., когда появился инструмент DeNiSe для туннелирования протокола TCP в DNS. Позже было исследование Дэна Камински, показывающее возможность инкапсуляции SSH через DNS и представленное на конференции Defcon в 2005 г. А затем эта тема стала набирать популярность – появились dns2tcp, DNScapy, DNScat, Heyoka, iodine, squeeza и т.п.
- На уровне ICMP, когда данные инкапсулируются внутрь обычно разрешенного средствами защиты протокола ICMP. По такому принципу в свое время действовала программа Loki, впервые упомянутая в 1996 г. в журнале Phrack. За ней последовала более продвинутая Loki2. Также есть такой инструмент, как icm-pchat, который позволяет общаться зашифрованными сообщениями через ICMP.
- На уровне TCP/UDP/IP, когда для скрытия утечки или получения команд извне применяются отдельные поля заголовка пакета. В зависимости от используемого протокола размер передаваемых данных будет варьироваться от 2 до 12 и 38 байт соответственно в IP-, UDP-и TCP-протоколах. Очень интересный инструмент, использующий модификацию TCP-заголовка, называется Nushu. Его особенность в том, что он сам не создает никакого трафика, а только модифицирует тот, который уже отправляется с узла каким-либо приложением или процессом. Иными словами, измененный трафик направляется, куда должен, а злоумышленник просто перехватывает его по сети, собирая утекшие таким образом данные.
- В беспроводных сетях, когда данные маскируются в передаваемом трафике, распространяемом широковещательно. Кстати, в этом случае непросто обнаружить принимающую сторону, которая может работать в пассивном режиме – только для приема данных. По такому принципу построен инструмент HICCUPS.
Как может быть обнаружена скрытая передача?
Видя такое многообразие методов, которые используются скрытыми каналами, и протоколов, в которых они находятся, понимаешь, почему предлагается столь много разных методов обнаружения скрытой передачи. Основным из них является контроль аномалий, который заключается в проверке следующих параметров (неполный список):
- Размер запроса и ответа. Например, известно, что средняя длина DNS-запроса составляет не более 40–60 байт. Поэтому увеличение числа запросов DNS с увеличенными длинами пакетов может означать работу скрытого канала. Аналогичная практика может быть предложена и для других протоколов – ICMP, SIP и т.п.
- Объем запросов. Обычно объем трафика по определенным типам протоколов является если величиной и не фиксированной, то редко меняющейся в пределах нескольких долей процента. Поэтому внезапное возрастание трафика служебных протоколов или числа DNS-запросов или их размера может говорить об аномалии и необходимости разобраться. При этом профиль трафика в этом случае может оцениваться и для узла отправителя, и для узла получателя.
- Число или география обращений также может служить характеристикой скрытых каналов. Например, при наличии внутреннего DNS-сервера постоянное обращение к внешнему DNS-узлу также может служить признаком аномалии.
- Другие виды статистического анализа также полезны для обнаружения скрытых каналов. Например, можно анализировать уровень энтропии в именах узлов для DNS. Если в DNS-запросах будет передаваться скрытая информация, то распределение используемых символов будет отличаться от традиционного.
Инструментом, который позволяет отслеживать такие аномалии в сетевом трафике, являются системы класса NBAD (Network-based Anomaly Detection), которые либо уже содержат большое количество встроенных правил, либо могут быть настроены самостоятельно после проведенного режима обучения. Помимо анализа аномалий скрытые каналы могут быть обнаружены и с помощью изучения содержимого в тех или иных протоколах. Это может быть сделано как с помощью традиционных решений класса Next Generation, которые могут отслеживать отклонения трафика прикладных протоколов от RFC, так и с помощью систем обнаружения вторжений. Например, вот так выглядит сигнатура для обнаружения скрытого канала NSTX в протоколе DNS для open source-решения Snort:
alert udp $EXTERNAL_NET any - > $HOME_NET 53 (msg:"Potential NSTX DNS Tunneling"; content:"|01 00|"; offset:2; within:4; content:"cT"; offset:12; depth:3; content:"|00 10 00 01|"; within:255; classtype:bad-unknown; sid:1000 2;)
Резюме
Неуниверсальность – вот, пожалуй, основное препятствие и для активного использования скрытых каналов, и для борьбы с ними. |
Скрытые каналы в сетевом трафике – это очень специфический метод, который не является универсальным и имеет свои ограничения и область применения. Каждый скрытый канал имеет свои характеристики, например пропускную способность, шум, режим передачи (двусторонний или односторонний), которые надо учитывать – как при их использовании, так и при борьбе с ними. Все-таки "Войну и мир" Л.Н. Толстого через такие каналы оперативно не передать, а у некоторых способов скрытой передачи очень высок уровень шума, что мешает им быть эффективно примененными в глобальных сетях, в которых внешние факторы могут сильно влиять на успешность скрытой передачи.
Неуниверсальность – вот, пожалуй, основное препятствие и для активного использования скрытых каналов, и для борьбы с ними. Большое количество ограничений для скрытой передачи данных делает ее уделом только целенаправленных угроз, разрабатываемых под конкретную задачу и конкретного заказчика. Эта же неуниверсальность приводит к мысли, что и серебряной пули в виде одного продукта сейчас тоже нет, и необходимо использовать целый комплекс средств и технологий для обнаружения и нейтрализации скрытой передачи данных.
Опубликовано: Журнал "Information Security/ Информационная безопасность" #2, 2015
|
|