Скрытый канал
Скрытый канал — это коммуникационный канал, пересылающий информацию методом, который изначально был для этого не предназначен.
Впервые понятие скрытого канала было введено в работе Батлера Лэмпсона «A Note of the Confinement Problem» 10 октября 1973 года, как «[каналы], не предназначенные для передачи информации совершенно, такие как воздействие служебной программы на загрузку системы»[1]. Чаще всего скрытый канал является паразитом по отношению к основному каналу: скрытый канал уменьшает пропускную способность основного канала. Сторонние наблюдатели обычно не могут обнаружить, что помимо основного канала передачи данных есть ещё дополнительный. Только отправитель и получатель знают это. Например, в стеганографии скрытые сообщения кодировались внутри графических изображений или других данных таким образом, что на глаз изменений было не заметить, однако получатель сообщения мог раскодировать зашифрованное сообщение.
Отличительные черты
Скрытый канал носит своё название в силу того факта, что он спрятан от систем разграничения доступа даже безопасных операционных систем, так как он не использует законные механизмы передачи, такие как чтение и запись, и потому не может быть обнаружен или проконтролирован аппаратными механизмами обеспечения безопасности, которые лежат в основе защищённых операционных систем. В реальных системах скрытый канал практически невозможно установить, и также его часто можно обнаружить с помощью наблюдения за быстродействием системы; кроме того, недостатками скрытых каналов являются низкое отношение сигнал/шум и низкие скорости передачи данных (порядка нескольких бит в секунду). Их также можно удалить с защищённых систем вручную с высокой степенью надёжности, если воспользоваться признанными стратегиями анализа скрытых каналов.
Скрытые каналы часто путают с использованием законных каналов, при котором происходит атака на псевдозащищённые системы с низкой степенью доверенности, используя такие схемы как стеганография или даже менее сложные схемы, предназначенные для того, чтобы спрятать запрещённые объекты внутри объектов с легальной информацией. Подобные использования законных каналов с применением схем скрытия данных не являются скрытыми каналами и могут быть предотвращены доверенными системами с высокой степенью защищённости.
Скрытые каналы могут проходить сквозь защищённые операционные системы, и необходимы особые меры для их контроля. Единственным проверенным методом контроля скрытых каналов является так называемый анализ скрытых каналов. В то же время, защищённые операционные системы могут с лёгкостью предотвратить неверные (или незаконные) использования легальных каналов. Часто анализ легальных каналов на предмет скрытых объектов неверно представляют как единственную успешную меру против незаконного использования легальных каналов. Поскольку на практике это означает необходимость анализировать большое количество программного обеспечения, ещё в 1972 было показано что подобные меры неэффективны [2]. Не зная этого, многие верят в то, что подобный анализ может помочь справиться с рисками, связанными с легальными каналами.
Стандарт TCSEC
TCSEC — это набор стандартов, установленных Министерством обороны США.
Лэмпсоновское определение скрытого канала было перефразировано в TCSEC [2] так, чтобы имелись в виду способы передачи информации от более защищённого уровня к менее защищённому. В среде разделённых вычислений сложно полностью отделить один процесс от эффектов, которые другой процесс мог оказать на операционную среду. Скрытый канал создаётся процессом-отправителем, который модулирует некоторое состояние (такое как свободное пространство, доступность некоторого сервиса, времени ожидания запуска и т. д.), которое может быть обнаружено процессом-получателем.
В Критериях определяют два вида скрытых каналов:
- Скрытый канал памяти — процессы взаимодействуют благодаря тому, что один может прямо или косвенно записывать информацию в некоторую область памяти, а второй считывать. Обычно имеется в виду, что у процессов с разными уровнями безопасности имеется доступ к некоторому ресурсу (например, некоторые секторы диска).
- Скрытый канал времени — один процесс посылает информацию другому, модулируя своё собственное использование системных ресурсов (например, процессорное время) таким образом, что эта операция воздействует на реальное время отклика, наблюдаемое третьим процессом.
Критерии, также известные как Оранжевая книга,[3] требуют, чтобы анализ скрытых каналов памяти был классифицирован как требование для системы класса 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 существуют следующие важные аспекты:
- Идентифицируются скрытые каналы в сетевой среде.
- Получаются удовлетворительные методы кодирования и декодирования у отправителя и получателя, соответственно.
- Не учитывается эффект использования сети скрытых коммуникаций в целом.
См. также
Примечания
- ↑ Lampson, B.W., A Note on the Confinement Problem. Communications of the ACM, Oct.1973.16(10): p. 613—615. [1] Архивная копия от 9 ноября 2016 на Wayback Machine
- ↑ NCSC-TG-030, Covert Channel Analysis of Trusted Systems (Light Pink Book) Архивная копия от 1 сентября 2010 на Wayback Machine из публикаций Rainbow Series Министерства обороны США.
- ↑ 5200.28-STD, Trusted Computer System Evaluation Criteria (Orange Book) Архивировано 2 октября 2006 года. из публикаций Rainbow Series
Ссылки
- Gray-World — Команда разработчиков Gray-World : Программы и Статьи
- Steath Network Operations Centre — Система поддержки скрытой связи
- Timing Channels — Использование канала по времени в Multics.
- Covert channel tool hides data in IPv6, SecurityFocus, August 11, 2006.
- Covert Channels in the TCP/IP Suite (недоступная ссылка), 1996 — Статья Крэйга Роулэнда по скрытым каналам в протоколе TCP/IP.