Аникеев м в скрытые каналы. Скрытые каналы передачи информации. Скрытые каналы в IP-сетях

Скрытые каналы (covert channels) – это один из методов в информационной безопасности, который может применяться как со знаком плюс (для обеспечения анонимности и конфиденциальности), так и со знаком минус (для организации утечек данных). Рассмотрим именно вторую составляющую – обнаружение скрытой передачи данных, или передачи данных по скрытым каналам, что является одной из самых труднорешаемых на практике задач информационной безопасности. Чтобы не увеличивать размер статьи, я сознательно обойду вниманием такие механизмы скрытия данных, как шифрование и стеганография.

Алексей Лукацкий
Консультант по безопасности Cisco

Что такое скрытая передача данных?

Скрытая передача данных по сети – это не единственное применение данного метода. Впервые термин "скрытый канал" появился в 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;)

Резюме

Неуниверсальность – вот, пожалуй, основное препятствие и для активного использования скрытых каналов, и для борьбы с ними.

Скрытые каналы в сетевом трафике – это очень специфический метод, который не является универсальным и имеет свои ограничения и область применения. Каждый скрытый канал имеет свои характеристики, например пропускную способность, шум, режим передачи (двусторонний или односторонний), которые надо учитывать – как при их использовании, так и при борьбе с ними. Все-таки "Войну и мир" Л.Н. Толстого через такие каналы оперативно не передать, а у некоторых способов скрытой передачи очень высок уровень шума, что мешает им быть эффективно примененными в глобальных сетях, в которых внешние факторы могут сильно влиять на успешность скрытой передачи.

Неуниверсальность – вот, пожалуй, основное препятствие и для активного использования скрытых каналов, и для борьбы с ними. Большое количество ограничений для скрытой передачи данных делает ее уделом только целенаправленных угроз, разрабатываемых под конкретную задачу и конкретного заказчика. Эта же неуниверсальность приводит к мысли, что и серебряной пули в виде одного продукта сейчас тоже нет, и необходимо использовать целый комплекс средств и технологий для обнаружения и нейтрализации скрытой передачи данных.

В настоящее время все источники, освещающие вопросы информационной безопасности, содержат сведения раскрытые г-ном Сноуденом о скрытых каналах получения информации и умышленно внедряемых в различные технические средства АНБ устройствах негласного доступа к информации (получения, съема).
А что же у нас в стране с решением данной проблемы? Анализируя современную отечественную нормативную базу, можно выделить следующие документы, регламентирующие вопросы выявления и борьбы со скрытыми каналами:
ГОСТ Р 53113.1-2008 «Информационная технология. Защита информационных технологий и автоматизированных систем от угроз информационной безопасности, реализуемых с использованием скрытых каналов. Часть 1. Общие положения»;
ГОСТ Р 53113.2-2009 «Информационная технология. Защита информационных технологий и автоматизированных систем от угроз информационной безопасности, реализуемых с использованием скрытых каналов. Часть 2. Рекомендации по организации защиты информации, информационных технологий и автоматизированных систем от атак с использованием скрытых каналов».

В соответствии с ГОСТами определен термин «скрытый канал» – это непредусмотренный разработчиком системы информационных технологий и автоматизированных систем коммуникационный канал, который может быть применен для нарушения политики безопасности.
С помощью скрытых каналов могут быть реализованы следующие нарушения политики безопасности:

Интерпретированная модель функционирования скрытого канала представлена на рисунке (из ГОСТР 53113.2-2009):

Создание скрытого канала и осуществление воздействия нарушителя на защищаемые информационные ресурсы в соответствии с приведенной моделью осуществляется следующим порядком:

  • 1. В режиме штатного функционирования работа с защищаемыми информационными ресурсами проводится в установленном порядке, субъекты, имеющие санкционированный доступ к ним, осуществляют обработку в соответствии с установленными правилами разграничения доступа. Инспектор отображает отсутствие нарушений политики безопасности.
  • 2. В составе средства обработки защищаемых информационных ресурсов присутствуют заранее злонамеренно внедренный агент нарушителя безопасности, который не проявляет своей активности и ни каким образом не обнаруживает своего присутствия в данной ИТ (АС).
  • 3. В необходимый для нарушителя момент времени агенту от нарушителя безопасности подается команда на активацию и выполнение своей функциональной нагрузки. Команда может быть подана как по штатным каналам связи ИТ (АС), в случаи наличия возможности такого подключения (например через Интернет), так и дистанционно (например с использованием радиоканалов), при наличии такой возможности у агента нарушителя.
  • 4. Внедренный агент нарушителя безопасности реализует свою функциональную нагрузку, при этом канал информационного взаимодействия между нарушителем и внедренным агентом может быть скрыт от инспектора.
  • 5. После достижения поставленной задачи работа агента завершается самостоятельно или по команде нарушителя.

В качестве практической реализации подобного подхода, на базе материалов, опубликованных Сноуденом (http://freesnowden.is/2013/12/31/ant-product-data/), в пример можно привести программное средство IRONCHEF, функционирующее на базе аппаратных закладок типов COTTONMOUTH-I (II, III), реализованные устройствами HOWLERMONKEY и TRINITY (можно сказать, «классическое» построение скрытого канала).
Как же проводить работу по выявлению скрытых каналов?
С точки зрения «теории» процесс выявления скрытого канала включает в себя следующие действия:

1. Оценка архитектуры исследуемой системы и имеющихся в ней коммуникационных каналов (рассмотрению подлежат как существующие, так и потенциальные каналы). Оценка архитектуры системы подразумевает выявление всех имеющихся в ней каналов связи (информационного взаимодействия) и анализ взаимодействия ее компонентов на предмет потенциального использования их для организации скрытого канала. В результате проведения такого анализа должны быть выявлены компоненты системы, в которых потенциально могут быть использованы скрытые каналы.
2. Выявление возможных путей обмена скрытой информацией между нарушителем и его предполагаемым агентом в системе.Данная работа выполняется на основании общей схемы модели функционирования скрытого канала. Следует для каждого из защищаемых активов выявить, какие субъекты имеют к ним доступ и при этом изолированы от внешней среды, но имеют возможность взаимодействовать с отдельными субъектами из внешней среды (при этом необходимо учитывать, что подобного рода взаимодействие контролируется владельцем активов и может наблюдаться потенциальным нарушителем).
3. Оценка опасности выявленных скрытых каналов для защищаемых активов организации. После выявления скрытых каналов следует оценить, насколько они реализуемы и опасны для защищаемых активов организации. Для проведения оценки наиболее критичными показателями являются: объем активов, предполагаемая пропускная способность скрытого канала и временной интервал, в течение которого активы сохраняют ценность. Все параметры поддаются числовому исчислению и могут быть использованы в соответствующих аналитических отчетах. На основании этой оценки каналы, не предоставляющие реальной опасности для активов, признаются неопасными.
4. Принятие решения о целесообразности противодействия каждому из выявленных скрытых каналов (минимизации уровня риска).

В качестве защитных мероприятий предлагается использовать:

  • снижение/ограничение пропускной способности канала передачи информации (касательно скрытых каналов);
  • архитектурные решения построения системы;
  • мониторинг эффективности защиты системы.

При этом необходимо заметить, что выбор методов противодействия угрозам, реализуемым с использованием скрытых каналов определяется, исходя из индивидуальных особенностей той или иной защищаемой системы (топология построения системы, используемых протоколов информационного взаимодействия, особенностей расположения элементов системы и их взаимодействия между собой, выбираемых телекоммуникационных средств и средств защиты информации).
В завершении хотелось бы обратиться к методам выявления скрытых каналов. Согласно ГОСТ предлагается два метода:

  • статистический метод;
  • сигнатурный метод.

Статистический метод выявления скрытых каналов подразумевает сбор статистических данных о пакетах, проходящих через защищаемый участок сети, без внесения в них каких-либо изменений. При этом выявление скрытых каналов может проводиться как в режиме реального времени, так и автономно, используя данные, накопленные за предыдущие отрезки времени.
Метод выявления скрытых каналов на основе сигнатурного анализа аналогичен способу, используемому антивирусным ПО для поиска вредоносных программ. При наличии набора известных реализаций скрытых каналов, для каждой из них формируется сигнатура. В потоке данных проводится поиск таких сигнатур. По результатам этой работы делается вывод об отсутствии или наличии скрытых каналов в системе и варианте его реализации.
Таким образом, подводя итоги, можно заявить, что мы получаем новый виток информационного противостояния «нарушитель - администратор безопасности», который вносит в нашу жизнь как новые технологии и методы нападения, так и новые средства и методы защиты.
Завершить статью хотелось бы такими размышлениями:

Что если мы взглянем на материалы, раскрытые Сноуденом, вот под каким углом. В последнее время появился целый ряд автоматизированных систем, для которых обеспечение конфиденциальности вообще не является приоритетом, например автоматизированные системы управления производственным и технологическим процессом. Нарушение доступности и работоспособности такой системы может привести даже к более тяжелым последствиям для государства или, чем утечка конфиденциальной или секретной информации. Отягчающим является ещё и то, что подавляющее большинство элементной базы для таких систем производится и поставляется из-за границы, а провести полный комплекс мероприятий по поиску возможных скрытых каналов и закладных устройств, для всего перечня ввозимых элементов, невозможно технически. А как стало известно, технические средства иностранного производства могут быть полны неприятных «сюрпризов».
Нельзя обойти стороной и повсеместное развитие сети Интернет, и использование её как транспорта для связи различных корпоративных и промышленных сетей, что автоматически позволяет внешнему злоумышленнику получить управляющий доступ к внедренному закладному устройство или модулю.
Есть над чем думать и работать. Вопрос выявления скрытых каналов в автоматизированных системах организаций становится злободневным, вне зависимости от уровня организации и ее формы собственности. Тайна и является тайной, потому что ее знает ограниченный круг лиц. Плюс к этому можно добавить наличие (получение) негативных эмоций, когда кто-то злоумышленно наносит ущерб Вашей информационной инфраструктуре, в защищенности которой Вы были уверены. И испорченное настроение не самое страшное, если при этом может пострадать бизнес-процесс в организации.

Попытки скрыть сам факт передачи информации имеют длинную историю. Способы сокрытия самого факта передачи информации получили название стеганография. Исторически для стеганографии применялись «невидимые» чернила, точечные фотовставки и т.д. Данное направление получило вторую жизнь в наше время в связи с широким использованием сетей передачи данных .

Появился термин «скрытый канал» (covert channel). Впервые понятие скрытого канала было введено в работе Лэмпсона в 1973 году. Канал называется скрытым, если он не проектировался, не предполагался для передачи информации в электронной системе обработки данных. Таким образом, термин скрытые каналы больше относится к внутрикомпьютерным телекоммуникациям.

В настоящее время существует множество утилит и средств для реализации стеганографического сокрытия информации. В связи с этим остро возникает проблема обнаружения передачи скрытой информации в каналах связи и, в частности, обнаружение утечек конфиденциальных данных.

В любом наборе информации, будь то исполняемая программа, графическое изображение или сетевой протокол есть пути переноса дополнительных «скрытых» данных. Такая возможность есть и практически на всех уровнях модели OSI. Широко известны инструменты туннелирования, использующие служебные заголовки протоколов сетевого уровняTCP/UDP.

Основное поле для использования скрытых каналов это локальные сети, имеющие доступ в Интернет.

Скрытый канал носит свое название в силу того факта, что он спрятан от систем разграничения доступа даже безопасных операционных систем, так как он не использует законные механизмы передачи, такие как чтение и запись, и потому не может быть обнаружен или проконтролирован аппаратными механизмами обеспечения безопасности, которые лежат в основе защищённых операционных систем.

Традиционно скрытые каналы характеризуются как каналы по памяти или каналы по времени/

Скрытый канал по памяти - процессы взаимодействуют благодаря тому, что один может прямо или косвенно записывать информацию в некоторую область памяти, а второй считывать. Обычно имеется в виду, что у процессов с разными уровнями безопасности имеется доступ к некоторому ресурсу (например, некоторые секторы диска).

Скрытый канал по времени - один процесс посылает информацию другому, модулируя свое собственное использование системных ресурсов (например, процессорное время) таким образом, что эта операция воздействует на реальное время отклика, наблюдаемое вторым процессом.

Простейшим скрытым каналом по памяти является возможность показа на уровне Low названий директорий и файлов, созданных на уровне High. В данном случае информация может передаваться в именах файлов, которые выбираются в соответствии с заранее условленным кодом, в атрибутах файлов, в которых информация может кодироваться, размерами файлов, датами изменения файлов и т.д. И, наконец, существование файла с данным названием несет бит информации с верхнего уровня на нижний.

Другим примером канала по памяти является кодирование информации в сохраняемых настройках каких-либо ресурсов общего пользования субъектов уровней High и Low. Настройки, проведенные на уровне High, доступны наблюдению на уровне Low и, следовательно, могут нести информацию, выраженную заранее условленным кодом .

Скрытые каналы по времени впервые стали серьезно рассматриваться с 1976 г., когда один из создателей защищенной операционной системы Multics Миллен продемонстрировал своим коллегам скрытый канал по времени, реализованный на изолированных машинах High и Low. Обе машины были подсоединены к некоторым общим ресурсам ROM, других каналов или связей между ними не было. В подсистемах High и Low находились «Троянские кони». На уровне High «Троянский конь» при нажатии букв на клавиатуре модулировал специальным кодом интервалы времен занятости библиотеки ROM. Время занятости библиотеки верхним уровнем сканировалось запросами в библиотеку «Троянским конем» нижнего уровня. Получившийся скрытый канал по времени позволял в реальном времени печатать информацию, получаемую через скрытый канал с клавиатуры подсистемы уровня High.

Скрытый канал передачи информации через Интернет строится с помощью вписывания сообщения вместо последнего бита оцифрованного изображения, которое передается в качестве легального сообщения. Поскольку последний бит мало влияет на качество изображения, передача информации оказывается скрытой от субъекта, ведущего перехват и допускающего передачу только легальных изображений. Хорошо известен метод борьбы с данным методом стеганографии, заключающийся в изменении формата изображения, например, с помощью компрессии. Данный метод уничтожает скрытый канал указанного вида.

Примером скрытого канала в аналогичной задаче является скрытый канал в TCP/IP протоколе. Поле ISN в TCP-протоколе служит для организации связи клиента с удаленным сервером. Размер этого поля 32 бита. Используя это поле, например в n пакетах, можно осуществить скрытую передачу.

Один из способов организации скрытого канала - перестановка сетевых пакетов определенным образом. При этом на основе заранее оговоренных признаков передается последовательность бит.

Еще один способ организации скрытого канала - использование алгоритмов электронной цифровой подписи. С.В. Белим и А.М. Федосеев в 2007 г. провели исследование и доказали возможность создания скрытых каналов в рамках алгоритма электронной цифровой подписи ГОСТ Р 34.10-2001.

Особо следует выделить два примера каналов по времени, использующих возможности изменять длительности занятости в работе центрального процессора. В первом примере отправитель информации меняет время занятости CPU в течение каждого фрагмента времени, выделенного для его работы. Например, для передачи 0 и 1 одна длина промежутка времени кодирует 1, а другая - 0. В другом случае отправитель использует промежутки времени между обращениями к процессору.

Перехват информации, передаваемой по скрытым каналам, представляет большую сложность. Кажется, что здесь возникают только технологические сложности, связанные с регистрацией и анализом быстро протекающих процессов в компьютерных системах. Вместе с тем доказано, что возможно создание производителем закладок в аппаратных системах, которые могут общаться между собой «невидимо» для большинства средств защиты.

В случае использования методов стеганографии решение задачи выделения скрытых сообщений представляется более оптимистичным. Примером успешного выявления стеганографических вставок является использование скрытого канала в поле ISN протокола TCP, упоминавшегося выше.

Наиболее эффективным способом борьбы со скрытыми каналами является их уничтожение. Например, в приведенных выше примерах скрытых каналов спуска информации при использовании интерфейса RS-232 встраивание между уровнями High и Low устройства, транслирующего байты и рандомизирующего задержку выставления сигнала на верхнем уровне, видимую на нижнем уровне, позволяет полностью уничтожить любой детерминированный скрытый канал по времени и существенно испортить скрытый статистический канал. Аналогичные методы успешно используются для защиты от скрытых каналов при скрытой передаче информации через открытые системы.

Современные специализированные методы обнаружения стеганографического сокрытия информации основаны на обнаружении отклонения статистических характеристик наблюдаемой информации (типов файлов, сообщений) от ее ожидаемой модели. Общий недостаток статистических методов стегоанализа состоит в том, что построение точной математической модели контейнера - возможного носителя скрытой информации - является исключительно сложной и в настоящее время нерешенной задачей. Кроме того, основным ограничением существующих методов является то, что все они позволяют обнаруживать скрытую информацию постфактум.

В России о разработке научной методологии организации борьбы со скрытыми каналами в информационных сетях было заявлено в конце 2006 г. Российские ученые разработали математическую модель построения скрытых каналов, оценки их пропускной способности и методов борьбы с ними.

В 2008м году в Российской Федерации был принят ГОСТ Р 53113.1 «Информационная технология. Защита информационных технологий и автоматизированных систем от угроз информационной безопасности, реализуемых с использованием скрытых каналов. Часть 1. Общие положения.»

В 2009 году принимается ГОСТ Р 53113.2 «Защита информационных технологий и автоматизированных систем от угроз информационной безопасности, реализуемых с использованием скрытых каналов. Часть 2. Рекомендации по организации защиты информации, информационных технологий и автоматизированных систем от атак с использованием скрытых каналов.»

Скрытый канал

Скрытый канал - это коммуникационный канал, пересылающий информацию методом, который изначально был для этого не предназначен.

Отличительные черты

Скрытый канал носит своё название в силу того факта, что он спрятан от систем разграничения доступа даже безопасных операционных систем, так как он не использует законные механизмы передачи, такие как чтение и запись, и потому не может быть обнаружен или проконтролирован аппаратными механизмами обеспечения безопасности, которые лежат в основе защищённых операционных систем. В реальных системах скрытый канал практически невозможно установить, и также его часто можно обнаружить с помощью наблюдения за быстродействием системы; кроме того, недостатками скрытых каналов являются низкое отношение сигнал/шум и низкие скорости передачи данных (порядка нескольких бит в секунду). Их также можно удалить с защищённых систем вручную с высокой степенью надёжности, если воспользоваться признанными стратегиями анализа скрытых каналов.

Скрытые каналы часто путают с использованием законных каналов, при котором происходит атака на псевдо-защищённые системы с низкой степенью доверенности, используя такие схемы как стеганография или даже менее сложные схемы, предназначенные для того, чтобы спрятать запрещённые объекты внутри объектов с легальной информацией. Подобные использования законных каналов с применением схем скрытия данных не являются скрытыми каналами и могут быть предотвращены доверенными системами с высокой степенью защищённости.

Скрытые каналы могут проходить сквозь защищённые операционные системы, и необходимы особые меры для их контроля. Единственным проверенным методом контроля скрытых каналов является так называемый анализ скрытых каналов. В то же время, защищённые операционные системы могут с лёгкостью предотвратить неверные (или незаконные) использования легальных каналов. Часто анализ легальных каналов на предмет скрытых объектов неверно представляют как единственную успешную меру против незаконного использования легальных каналов. Поскольку на практике это означает необходимость анализировать большое количество программного обеспечения, ещё в 1972 было показано что подобные меры неэффективны . Не зная этого, многие верят в то, что подобный анализ может помочь справиться с рисками, связанными с легальными каналами.

Стандарт TCSEC

Лэмпсоновское определение скрытого канала было перефразировано в TCSEC так, чтобы имелись в виду способы передачи информации от более защищённого уровня к менее защищённому. В среде разделённых вычислений сложно полностью отделить один процесс от эффектов, которые другой процесс мог оказать на операционную среду. Скрытый канал создаётся процессом-отправителем, который модулирует некоторое состояние (такое как свободное пространство, доступность некоторого сервиса, времени ожидания запуска и т. д.), которое может быть обнаружено процессом-получателем.

В Критериях определяют два вида скрытых каналов:

  • Скрытый канал памяти - процессы взаимодействуют благодаря тому, что один может прямо или косвенно записывать информацию в некоторую область памяти, а второй считывать. Обычно имеется в виду, что у процессов с разными уровнями безопасности имеется доступ к некоторому ресурсу (например, некоторые секторы диска).
  • Скрытый канал времени - один процесс посылает информацию другому, модулируя своё собственное использование системных ресурсов (например, процессорное время) таким образом, что эта операция воздействует на реальное время отклика, наблюдаемое вторым процессом.

Критерии, также известные как Оранжевая книга , требуют, чтобы анализ скрытых каналов памяти был классифицирован как требование для системы класса B2, а анализ скрытых каналов времени как требование для класса B3.

Устранение скрытых каналов

Возможность наличия скрытых каналов не может быть устранена полностью, но её можно существенно уменьшить аккуратным проектированием системы и её анализом.

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

Похожим случаем является технология «port knocking». Обычно при передаче информации распределение запросов во времени не важно, и за ним не наблюдают, но при использовании «port knocking» оно становится существенным.

Скрытие данных в модели OSI

Хэнделом и Сэнфордом была предпринята попытка расширить перспективу и сфокусироваться на скрытых каналах в общей модели сетевых протоколов. В качестве основы своих рассуждений они берут сетевую модель OSI и затем характеризуют элементы системы, которые возможно использовать для скрытия данных. У принятого подхода есть преимущества над подходом Хэндела и Сэнфорда, так как в последнем рассматриваются стандарты, противоположные некоторым используемым сетевым средам и архитектурам. Также не разработано надёжной схемы стенографирования.

Тем не менее, установлены общие принципы для скрытия данных на каждом из семи уровней модели OSI. Помимо того, что Хэндел и Сэнфорд предложили использовать зарезервированные поля заголовков протоколов (что легко обнаружимо), они также предположили возможность каналов по времени, касающуюся операции над CSMA/CD на физическом уровне.

Их работа определяет ценность скрытого канала по следующим параметрам:

  • Обнаружимость: Только у получателя, для которого предназначена передача, должна быть возможность производить измерения скрытого канала.
  • Неотличимость: Скрытый канал должен быть неидентифицируем.
  • Полоса пропускания: Количество битов скрытых данных за каждое использование канала.

Также был представлен анализ скрытых каналов, но он не рассматривает такие проблемы, как-то: взаимодействие с помощью упомянутых методов между сетевыми узлами, оценка ёмкости канала, эффект, который скрытие данных оказывает на сеть. Кроме того, применимость методов не может быть полностью оправдана на практике, так как модель OSI не существует как таковая в действующих системах.

Скрытие данных в среде ЛВС

Первым, кто проанализировал скрытые каналы в среде локальных сетей, был Гирлинг. Его работа фокусируется на локальных вычислительных сетях (ЛВС), в которых определяются три очевидных скрытых канала - два по памяти и один по времени. Это показывает реальные примеры возможных полос пропускания для простых скрытых каналов в ЛАС. Для особой среды ЛАС, автор ввёл понятие перехватчика, который наблюдает за действиями определённого передатчика в ЛВС. Стороны, осуществляющие скрытую передачу, - это передатчик и перехватчик. Скрытая информация, согласно Гирлингу, может быть передана любым из следующих способов:

  • Наблюдение за адресами, к которым обращается передатчик. Если количество адресов, к которым он может обращаться, равно 16, то существует возможность секретной передачи с размером секретного сообщения 4 бита. Автор отнёс эту возможность к скрытым каналам памяти, так как она зависит от посылаемого содержимого.
  • Другой очевидный скрытый канал полагается на размер кадра, посланного передатчиком. Если существует 256 различных размеров кадра, то количество секретной информации, полученной при расшифровке одного размера кадра, будет 8 бит. Этот канал также был отнесён автором к скрытым каналам памяти.
  • Третий, временной, способ полагается на разность между временами передачи. К примеру, нечётная разность будет означать «0», а чётная - «1». Время, необходимое для передачи блок данных, рассчитывается как функция от программной вычислительной скорости, скорости сети, размеров сетевого блока и затрат времени протокола. В предположении, что в ЛВС передаются блоки различных размеров, вычисляются средние программные затраты времени и также оценивается полоса пропускания скрытых каналов.

Скрытие данных в пакете протоколов TCP/IP

Более конкретный подход был предпринят Роулэндом. Сосредотачиваясь на IP и TCP заголовках пакета протоколов TCP/IP, Роулэнд выводит правильные методы кодирования и декодирования с использованием поля идентификации IP и TCP-поля начального номера последовательности и номера последовательности подтверждения. Эти методы реализованы в простом приложении, написанном для Linux-систем, работающих на ядре версии 2.0.

Роулэнд просто доказывает саму идею существования скрытых каналов в TCP/IP, а также их использования. Соответственно, его работу можно оценивать как практический прорыв в этой сфере. Принятые им методы кодирования и декодирования более прагматичны по сравнению с ранее предложенными работами. Эти методы проанализированы с учётом механизмов безопасности, таких как преобразование сетевых адресов брандмауэром.

Тем не менее, необнаружимость этих методов скрытой передачи стоит под вопросом. Например, в случае когда производятся операции над полем номера последовательности TCP-заголовка, принята схема, в которой алфавит каждый раз скрытно передаётся, но тем не менее кодируется одним и тем же номером последовательности.

Более того, использование поля номера последовательности, так же, как и поля подтверждения, нельзя осуществлять с привязкой к ASCII -кодировке английского алфавита, как это предложено, так как оба поля учитывают получение байтов данных, относящихся с определённым сетевым пакетам.

У скрытия данных в пакете протоколов TCP/IP существуют следующие важные аспекты:

  • Идентифицируются скрытые каналы в сетевой среде.
  • Получаются удовлетворительные методы кодирования и декодирования у отправителя и получателя, соответственно.
  • Не учитывается эффект использования сети скрытых коммуникаций в целом.

Примечания

См. также

Ссылки

  • Gray-World - Команда разработчиков Gray-World: Программы и Статьи
  • Steath Network Operations Centre - Система поддержки скрытой связи

Польские исследователи предложили новый способ сетевой стеганографии основанный на особенностях работы широко распространенного протокола транспортного уровня TCP. Авторы работы считают, что их схема, к примеру, может применяться для пересылки скрытых сообщений в тоталитарных странах вводящих жесткую интернет цензуру. Попробуем разобраться в чем, собственно, состоит нововведение и насколько оно действительно полезно.

В первую очередь нужно определить что такое стеганография. Так вот, стеганография - это наука о скрытой передаче сообщений. То есть используя ее методы стороны пытаются скрыть сам факт передачи . В этом и состоит отличие этой науки от криптографии, которая пытается сделать недоступным для прочтения содержание сообщения . Стоит отметить, что профессиональное сообщество криптографов достаточно презрительно относится к стеганографии в силу близости ее идеологии к принципу «Security through obscurity» (не знаю как это правильно звучит по-русски, что-то вроде «Безопасность через незнание»). Этим принципом, к примеру, пользуются в компании Skype Inc. - исходный код популярной звонилки закрыт и никто толком не знает как именно осуществляется шифрование данных. Недавно, кстати, об этом сетовали в NSA, о чем известный специалист Брюс Шнайер написал у себя в блоге.

Возвращаясь к стеганографии, ответим на вопрос а зачем она вообще нужна, если есть криптография. Действительно, ведь можно зашифровать сообщение при помощи какого-либо современного алгоритма и при использовании достаточного длинного ключа никто это сообщение прочитать не сможет если только вы этого не пожелаете. И тем не менее, иногда бывает полезнее скрыть сам факт тайной передачи. К примеру, если соответствующие органы перехватили ваше зашиврованное сообщение, расшифровать не могут, но очень хочется, то в конце концов есть и некомпьютерные методы воздействия и добычи информации. Звучит антиутопично, но, согласитесь, такое в принципе возможно. Поэтому лучше бы сделать так, чтобы те кому неположено вообще не знали, что передача имела место. Польские исследователи как раз и предложили такой метод. Причем сделать они это предлагают при помощи протокола, который каждый пользователь интернета использует по тысяче раз на дню.

Тут мы вплотную подошли к Transmission Control Protocol (TCP). Объяснять все его детали, разумеетется, не имеет смысла - длинно, скучно, те кому надо и так знают. Вкратце же можно сказать, что TCP - это протокол транспортного уровня (т.е. работает «над» IP и «под» протоколами уровня приложений, к примеру HTTP, FTP или SMTP), который обеспечивает надежную доставку данных от отправителя к получателю. Надежная доставка означает, что если какой-то пакет потерялся или пришел с изменениями, то TCP позаботится о том, чтобы переслать этот пакет. Отметим, что под изменениями в пакете тут подразумевается не умышленное искажение данных, а ошибки в передаче возникающие на физическом уровне. К примеру, пока пакет шел по медным проводам пару бит поменяли свое значение на противоположное или вообще затерялись среди шума (кстати для Ethernet значение Bit Error Rate обычно принимают равным порядка 10 -8). Потеря пакетов в пути также относительно частое явление в интернете. Происходить она может, к примеру, из-за загруженности маршрутизаторов, которая приводит к переполнения буферов и как следствие отбросу всех вновь прибывающих пакетов. Обычно доля потерянных пакетов составляет около 0.1%, а при значении в пару процентов TCP вообще перестает нормально работать - у пользователя все будет жутко тормозить.

Таким образом мы видим, что пересылка (ретрансмиссия) пакетов явление для TCP частое и в общем-то нужное. Так почему бы не использовать его для нужд стеганографии при том что TCP, как уже отмечалось выше, используется повсеместно (по разным оценкам на сегодняшний день доля TCP в интернете достигает 80-95%). Суть предложенного метода состоит в том, чтобы в пересылаемом сообщении отправлять не то, что было в первичном пакете, а те данные, которые мы пытаемся скрыть. При этом обнаружить такую подмену не так-то просто. Ведь нужно знать куда смотреть - количество одновременных TCP соединений, проходящих через провайдера просто огромно. Если знать примерный уровень ретрансмиссии в сети, то можно подстроить механизм стеганографической пересылки так, что ваше соединение ничем не будет отличаться от других.

Конечно этот метод не свободен от недостатков. К примеру, с практической точки зрения внедрить его будет не так-то просто - это потребует изменения сетевого стэка в операционных системах, хотя и запредельно сложного в этом ничего нет. Кроме того, при наличии достаточного количества ресурсов все равно можно обнаружить «тайные» пакеты, для этого нужно просматривать и анализировать каждый пакет в сети. Но как правило это практически невозможно, поэтому обычно ищут чем-то выделяющиеся пакеты и соединения, а предложенный метод как раз и делает ваше соединение ничем не примечательным. Да и никто не мешает вам зашифровать тайные данные на всякий случай. При этом само соединение может оставаться незашифрованным, чтобы вызывать меньше подозрений.

Понравилась статья? Поделиться с друзьями: