Поскольку все приведенные выше термины, касающиеся скрытой передачи информации, отличаются нюансами приложений, мы будем без ограничения общности способы скрытой передачи информации называть скрытыми каналами. Возвращаться к исходным терминам мы будем в тех особых случаях, когда выделение соответствующих каналов вытекает из контекста.
Во всех случаях скрытых каналов необходимо уточнять понятие канала связи. В связи с этим в следующем разделе 2 мы приводим различные определения, которые порождают различные понимания скрытых каналов, использованных в этом обзоре.
В разделе 3 мы раскрываем связь различных политик безопасности и скрытых каналов. Выявление этой связи позволяет определить, от чего и как защищают те или иные механизмы реализации различных политик безопасности, и в каких случаях вопрос о существовании скрытых каналов требуется решать дополнительно.
4 раздел посвящен примерам скрытых каналов в различных трактовках этого термина.
Раздел 5 посвящен задачам анализа скрытых каналов. В нем приводятся методы выявления скрытых каналов при анализе компьютерных систем и программного обеспечения. В частности, рассматривается известный метод зависимостей и метод матрицы общих ресурсов.
В разделе 6 приводятся некоторые данные о противодействии стеганографическим схемам в некоторых традиционных видах носителей.
2. Информационный поток
Простейший подход к определению информационного потока можно найти в TCSEC [11] («Оранжевая книга», 1985 г.) и на русском языке в работе А.Грушо и Е.Тимониной [1]. Если осуществляется доступ на чтение (read) субъекта S к объекту О, то поток информации идет от О к S. Если S имеет доступ на запись (write) к О, то информационный поток направлен от S к О. Транзитивное замыкание цепочек доступа (даже без учета времени) представляет собой сложный информационный поток.
Пример 1.
Например, документ D записан в файл О пользователем U1, а пользователь U2 прочитал документ D в файле О. Таким образом информация, содержащаяся в документе D, перешла от пользователя U1 к пользователю U2 с помощью двух информационных потоков:
- U1 организовал информационный поток от себя к О с помощью операции write;
- U2 организовал информационный поток от О к себе с помощью операции read.
Более привычное определение информационного потока вводится через среднюю взаимную информацию (см. работы Шеннона [8]). Как определено в работе [1] объект О в информационной системе представляет собой конечное множество допустимых записей в данном языке, а состоянием объекта О является конкретная запись из этого конечного множества, которая находится в информационной системе в данный момент времени с именем О. Пусть X и Y два объекта в информационной системе и предположим, что в данный момент времени состояния объектов X и Y определяются совместным распределением вероятностей P(x, y) на конечном множестве пар (x, y), x∈X, y∈Y, P(x,y)≥0,
Определение. Информационный поток между объектами Х и Y существует, если средняя взаимная информация I(X,Y)>0.
Можно доказать, что существование информационного потока эквивалентно условию, что существует пара (x,y) такая, что P(x,y)≠PX(x)PY(y).
Ясно, что если существует информационный поток от Х к Y, то существует такой же информационный поток от Y к Х. В компьютерной безопасности данный подход к описанию информационных потоков предложен в работе Деннинг [10].
Пример 2.
Пусть файл О1 является копией файла О2. Тогда P(x,y)=0 при x≠y. Если вероятность состояния х объекта О1 не равна 0, и вероятность состояния y объекта О2 не равна 0, то из эквивалентного определения информационного потока следует, что существует информационный поток от объекта О1 к объекту О2.
Другие примеры простейших потоков данного типа в программах можно найти в [1]. Отметим, что данное определение потока эквивалентно заданию совместного распределения на множествах состояний объектов Х и Y при условии, что меры, индуцируемые на Х и Y, не являются независимыми.
Рассмотрим еще одно определение информационного потока, приведенное в [13, 19]. В этих работах для анализа скрытых каналов вводится понятие зависимости. С точки зрения нашего анализа любая зависимость порождает канал передачи данных. Поэтому мы рассматриваем понятие зависимостей как один из способов определения информационного потока.
Определение. Информационным потоком от объектов {S} к объекту Т можно считать тройку (Т,
{S}, G), где Т меняет свое состояние, если {S} меняет свое состояние при условии, что логическое выражение G принимает значение истина.
Пример 3.
При вхождении в систему пользователь называет свое имя И и вводит свой пароль П. Данный пароль после шифрования преобразуется в запись К(П), которая сравнивается со значением в таблице паролей, соответствующей данному имени И пользователя. В данном случае значение переменной Г, равное 1, если пользователю разрешено войти в систему, и 0 — в противном случае, зависит от введенных переменных И и П при выполнении логического условия, что в соответствующей строчке таблицы паролей К(П) введенного пароля совпадает с имеющейся там записью. В данном случае переменная 5 принимает значение имени пользователя И, переменная S1 принимает значение пароля К, а логическое условие G соответствует совпадению записей в таблице паролей.
К этому определению относятся все виды функциональных связей, в которых значение Т есть функция от некоторого набора переменных, куда входит {S}.
Об общением данной схемы является модель информационного потока как конечного автомата, в котором источник сообщения посылает входное слово на вход автомата, а получатель сообщения видит выходную последовательность автомата [6].
Следующими обобщениями являются модель канала как вероятностного автомата и модель детерминированного автомата со случайным входом.
3. Политики безопасности
Будем следовать общепринятому определению политики безопасности (ПБ), приведенному в стандарте TCSEC [11].
Определение. Политика безопасности это набор норм, правил и практических приемов, которые регулируют управление, защиту и распределение ценной информации.
Многие политики безопасности выражаются через информационные потоки. Например, все информационные потоки в системе (в том числе потенциальные) делятся на два непересекающихся подмножества: разрешенные и неразрешенные потоки. Тогда система защиты должна обеспечивать поддержку разрешенных потоков и препятствовать запрещенным потокам. К политикам такого класса относится многоуровневая политика (MLS).
Многоуровневая политика безопасности (политика MLS) принята всеми развитыми государствами мира. В секретном повседневном делопроизводстве госсектор России также придерживается этой политики.
Решетка ценностей SC является основой политики MLS. Линейно упорядоченное множество грифов секретности «несекретно» < «секретно» < «совершенно секретно» является простейшим примером такой решетки ценности. В более общем случае к грифам конфиденциальности добавляются подмножества тематических категорий из заданного набора категорий. В этом случае также получается решетка ценностей, в которой некоторые элементы упорядочены. Например, приведем сравнение двух элементов такой решетки: «секретно, кадры, финансы» < «совершенно секретно, кадры, финансы, материальное обеспечение». Классификация информационных ресурсов это отображение с множества объектов системы О в множество узлов SC решетки ценности. То есть каждый объект системы классифицируется уровнем секретности и множеством тематических категорий. Отображение с: O –> SC считается заданным. Если c(Y)≥c(X), то Y – более ценный объект, чем X.
Определение. Политика MLS считает информационный поток X––>Y разрешенным тогда и только тогда, когда c(Y)≥c(X) в решетке SС.
Таким образом политика MLS имеет дело с множеством информационных потоков в системе и делит их на разрешенные и неразрешенные очень простым условием. Однако эта простота касается информационных потоков, которых в системе огромное количество. Поэтому приведенное выше определение неконструктивно. Хотелось бы иметь конструктивное определение на языке доступов. Рассмотрим класс систем с двумя видами доступов read и write (хотя могут быть и другие доступы, но они либо не определяют информационный поток, либо выражаются через write и read). Пусть процесс S в ходе решения своей задачи последовательно обращается к объектам O1, O2,..., Ol (некоторые из них могут возникнуть в ходе решения задачи). Пусть
Тогда из определения MLS следует, что при выполнении условий c(S)≥c(Oit), t=1,...,k, соответствующие потоки информации, определяемые доступом read, будут идти в разрешенном политикой MLS направлении, а при c(S)≤c(Oit), t=1,...,k, потоки, определяемые доступом write, будут идти в разрешенном направлении. Таким образом, в результате выполнения задачи процессом S, информационные потоки, с ним связанные, удовлетворяют политике MLS. Такого качественного анализа оказывается достаточно, чтобы классифицировать почти все процессы и принять решение о соблюдении или нет политики MLS. Если где-то политика MLS нарушается, то соответственный доступ не разрешается. Причем разрешенность цепочки (1) вовсе не означает, что субъект S не может создать объект O такой, что c(S)>c(O). Однако он не может писать туда информацию. При передаче управления поток информации от процесса S или к нему прерывается (хотя в него другие процессы могут записывать или считывать информацию как в объект). При этом, если правила направления потока при read и write выполняются, то MLS соблюдается, если нет, то соответствующий процесс не получает доступ. Таким образом, мы приходим к управлению потоками через контроль доступов. В результате для определенного класса систем получим конструктивное описание политики MLS.
Определение. В системе с двумя доступами read и write политика MLS определяется следующими правилами доступа
Структура решетки очень помогает организации поддержки политики MLS. В самом деле, пусть имеется последовательная цепочка информационных потоков
Если каждый из потоков разрешен, то свойства решетки позволяют утверждать, что разрешен сквозной поток O1––>Ok. Действительно, если информационный поток на каждом шаге разрешен, то c(Oi+1)≥c(Ok), тогда по свойству транзитивности решетки c(O1)≤c(Ok), то есть сквозной поток разрешен.
MLS политика в современных системах защиты реализуется через мандатный контроль (или, также говорят, через мандатную политику). Устройство мандатного контроля, удовлетворяющее некоторым дополнительным требованиям, называется монитором обращений. Мандатный контроль еще называют обязательным, так как через него проходит каждое обращение субъекта к объекту, если субъект и объект находятся под защитой системы безопасности. Организуется мандатный контроль следующим образом. Каждый объект O имеет метку с информацией о классе c(O). Каждый субъект также имеет метку, содержащую информацию о том, какой класс доступа c(S) он имеет.
Мандатный контроль сравнивает метки и удовлетворяет запрос субъекта S к объекту O на чтение, если c(S)≥c(O) и удовлетворяет запрос на запись, если c(S)≤c(O). Тогда согласно изложенному выше мандатный контроль реализует политику MLS. Однако метки конфиденциальности это не единственный способ управления информационными потоками в компьютерных системах.
В системе с многоуровневой политикой безопасности, в которой информационные потоки сведены к доступам, возможны потоки более общего типа из рассмотренных в п. 2, которые могут нарушать политику безопасности MLS. Например, любой информационный поток между несравнимыми узлами решетки или сверху вниз, который существует, но не выражается через доступы read и write, будет нарушать политику безопасности MLS даже при корректной реализации мандатного контроля доступов. В простейшем случае, к которому мы будем апеллировать дальше, если система разделена, по крайней мере, на два уровня High и Low и в системе принята многоуровневая политика безопасности [1], разрешающая информационные потоки снизу вверх (от Low к High) и запрещающая потоки сверху вниз, то нарушитель может использовать скрытый канал для передачи информации от программно-аппаратного агента в среде High к программно-аппаратному агенту в среде Low. При этом скрытый канал должен защищать нарушителя от системы защиты, поддерживающей многоуровневую политику, основанную на определении потоков через доступы read и write. То есть скрытый канал должен быть невидим монитору обращений, системе аудита, аналитику, исследующему защищенность системы и т.д.
Потоки в MLS разрешены только между сравнимыми узлами снизу вверх. Данная политика защищает конфиденциальность информации.
Точно так же, как многоуровневая политика, определяется политика защиты целостности Байба [9], только разрешенными в данной политике являются все потоки между сравнимыми узлами, направленные вниз.
Предположим, что опасности для нарушения секретности не существует, а единственная цель политики безопасности защита от нарушений целостности информации. Пусть, по-прежнему, в информацию внесена решетка ценностей SС. В этой связи любой информационный поток X––>Y может воздействовать на целостность объекта Y. Если в Y более ценная информация, чем в X, то такой поток при нарушении целостности Y принесет более ощутимый ущерб, чем поток в обратном направлении от более ценного объекта Y к менее ценному X. Байба [9] предложил в качестве политики безопасности для защиты целостности следующее.
Определение. В политике Байба информационный поток X––>Y разрешен тогда и только тогда, когда c(Y)≤c(X).
Можно показать, что в широком классе систем эта политика эквивалентна следующей.
Определение. Для систем с доступами write и read политика Байба разрешает доступ в следующих случаях:
Очевидно, что для реализации этой политики также подходит мандатный контроль. Точно так же как и раньше при выполнении мандатного контроля доступов read и write возможно нарушение политики Байба с помощью скрытых каналов (информационных потоков более общего типа).
Помимо указанных политик следует назвать класс политик защиты связи, в которых информационный поток, передаваемый от отправителя к получателю, не должен быть перехвачен или искажен при различных допущениях относительно возможностей противника по искажению информационных потоков или по перехвату части передаваемой информации, или наоборот, по попыткам вклиниться в передаваемый информационный поток. Сюда следует отнести ряд стеганографических схем, в которых основная задача создать информационный поток, «невидимый» для наблюдателя, с определенным набором возможностей.
Еще одним примером [4] является ситуация, когда производитель продает пользователю компьютерную систему для обработки данных, при этом производитель встроил программно-аппаратного агента для анализа данных, которые обрабатываются покупателем. Данная система может быть сделана таким образом, что программно-аппаратный агент соответствует уровню High, а легальный вычислительный процесс проходит на уровне Low. Для передачи агентом информации во вне системы необходимо построить скрытый канал между верхним и нижним уровнями с выходом во внешнюю среду (например, в Интернет). Аналогично агент должен получать инструкции с нижнего уровня скрытно, поскольку входные сообщения для легального вычислительного процесса и агента приходят по одному каналу.
Суммируем кратко выводы раздела 3. Для поддержки политики безопасности используются механизмы защиты, препятствующие нарушению политики безопасности. Одним из способов нарушения политики безопасности является создание скрытых информационных потоков, не выявляемых системами защиты. В случае многоуровневой политики скрытые каналы передают информацию с верхних уровней конфиденциальности на нижний уровень так, чтобы механизмы защиты не могли препятствовать нарушению политики защиты конфиденциальности. В политике Biba скрытый канал с нижнего уровня на верхний может передать команду “Троянскому коню” на уничтожение или модификацию информационных ресурсов, целостность которых защищает данная политика.
В связи с этим возникла проблема анализа скрытых каналов всюду, где возникают ограничения на информационные потоки. Любой такой анализ предполагает решение четырех взаимосвязанных задач:
1) Выявление скрытых каналов;
2) Оценка пропускной способности скрытых каналов и оценка опасности, которую несет их скрытое функционирование;
3) Выделение сигнала или получение какой-нибудь информации, передаваемой по скрытым каналам;
4) Противодействие реализации скрытого канала вплоть до его уничтожения.
4. Примеры скрытых каналов
Традиционно [19] скрытые каналы характеризуются как каналы по памяти или каналы по времени. В работе Кемерера [15] определяются скрытые каналы по памяти как такие каналы, в которых информация передается через доступ отправителя на запись и получателя на чтение к одним и тем же ресурсам или объектам. Скрытый канал по времени характеризуется доступом отправителя и получателя к одному и тому же процессу или изменяемому во времени атрибуту.
Как и прежде будем полагать, что система разделена, по крайней мере, на два уровня High и Low и в системе принята многоуровневая политика безопасности [1], разрешающая информационные потоки снизу вверх (от Low к High) и запрещающая потоки сверху вниз.
Нарушитель может использовать скрытый канал для передачи информации от программно-аппаратного агента в среде High к программно-аппаратному агенту в среде Low. При этом скрытый канал должен защищать нарушителя от системы защиты, поддерживающей многоуровневую политику.
Простейшим скрытым каналом по памяти является возможность показа на уровне Low названий директорий и файлов, созданных на уровне High. В данном случае информация может передаваться в именах файлов, которые выбираются в соответствии с заранее условленным кодом, в атрибутах файлов, в которых информация может кодироваться, размерами файлов, датами изменения файлов и т.д. И, наконец, существование файла с данным названием несет бит информации с верхнего уровня на нижний.
Другим примером канала по памяти является кодирование информации в сохраняемых настройках каких-либо ресурсов общего пользования субъектов уровней High и Low. Настройки, проведенные на уровне High, доступны наблюдению на уровне Low и, следовательно, могут нести информацию, выраженную заранее условленным кодом.
Скрытые каналы по времени впервые стали серьезно рассматриваться с 1976 г., когда один из создателей защищенной операционной системы Multics Миллен [17] продемонстрировал своим коллегам скрытый канал по времени, реализованный на изолированных машинах High и Low. Обе машины были подсоединены к некоторым общим ресурсам ROM, других каналов или связей между ними не было. В подсистемах High и Low находились “Троянские кони”. На уровне High “Троянский конь” при нажатии букв на клавиатуре модулировал специальным кодом интервалы времен занятости библиотеки ROM. Время занятости библиотеки верхним уровнем сканировалось запросами в библиотеку “Троянским конем” нижнего уровня. Получившийся скрытый канал по времени позволял в реальном времени печатать информацию, получаемую через скрытый канал с клавиатуры подсистемы уровня High.
Рассмотрим еще один пример скрытого канала по времени. Пусть в программно-аппаратной схеме, реализующей интерфейс RS 232 между Low и High, нет передатчика на уровне High и нет приемника на уровне Low. Вместе с тем для передачи байт с нижнего уровня на верхний машина верхнего уровня выставляет сигнал готовности к приему информации. Очередной байт передается только тогда, когда выставлен сигнал готовности приема. Тогда задержка в выставлении сигнала после очередного переданного байта считается таймером на нижнем уровне и может таким образом передавать информацию от программно-аппаратного агента на верхнем уровне к программно-аппаратному агенту на нижнем уровне. Для этого агент на верхнем уровне кодирует сообщение различными по длине интервалами задержки выставления сигнала, а агент на нижнем уровне считывает эти сообщения с помощью таймера.
Хорошо известен пример построения скрытого канала в работе Шнайера [22], когда речь не идет о многоуровневой политике. Скрытый канал передачи информации через Интернет строится с помощью вписывания сообщения вместо последнего бита оцифрованного изображения, которое передается в качестве легального сообщения. Поскольку последний бит мало влияет на качество изображения, передача информации оказывается скрытой от субъекта ведущего перехват и допускающего передачу только легальных изображений. Хорошо известен метод борьбы с данным методом стеганографии, заключающийся в изменении формата изображения, например, с помощью компрессии. Данный метод уничтожает скрытый канал указанного вида.
Еще одним примером скрытого канала в аналогичной задаче является скрытый канал в TCP/IP протоколе, рассмотренный в работе Роуланда [21]. Поле ISN в TCP протоколе служит для организации связи клиента с удаленным сервером. Размер этого поля 32 бита. Используя это поле в 5 пакетах, было скрытно передано слово Hello.
Ряд скрытых каналов по времени, порожденных работой процессора, приведен в работе [19]. Особо следует выделить два примера каналов по времени, использующих возможности изменять длительности занятости в работе центрального процессора. В первом примере отправитель информации меняет время занятости CPU в течение каждого фрагмента времени, выделенного для его работы. Например, для передачи 0 и 1 одна длина промежутка времени кодирует 1, а другая 0. В другом случае отправитель использует промежутки времени между обращениями к процессору. Более подробно об этих каналах можно прочитать в работе Хаскампа [14].
5. Модели скрытых каналов и их анализ
Модели скрытых каналов используются для разработки методов выявления скрытых каналов или, наоборот, для обоснования невозможности выявить подобные каналы. Традиционный метод выявления скрытых каналов [13] опирается на модель зависимости. Как определялось выше зависимости представляют из себя тройки (T, {S}, G), в которых изменение параметра Т определяется изменением исходных параметров {S}, когда логическое выражение G принимает значение истина.
Пусть в рассмотренном ранее примере скрытого канала при использовании однонаправленного канала RS 232 условие G принимает значение истина, когда при передаче появляется фиксированный байт. В этом случае S есть время задержки выставления сигнала о возможности приема следующего байта. Агент нижнего уровня измеряет время задержки выставления сигнала на таймере Т только тогда, когда передан байт, обращающий логическое выражение G в истину. Поиск данного скрытого канала наблюдателем за временами задержки выставления сигнала значительно сложнее, чем в приведенном ранее примере. Однако статистическими методами сам факт такой передачи можно распознать.
С методом зависимостей тесно связан метод поиска скрытых каналов на основе матрицы разделяемых ресурсов (SRM, Кемерер, 1980 г. [15]). В этом методе предполагается, что система полностью описывается переменными a, b, c, d, ... Анализ операций ОР1 проводится в матрице следующим образом. Строчки матрицы соответствуют атрибутам разделяемых ресурсов (в нашем примере a, b, c, d, ...). Столбцы матрицы соответствуют операциям системы (ОР1 в нашем примере). Значения в клетках матрицы соответствуют действиям оператора над соответствующим атрибутом. Тогда матрица в нашем примере примет вид.
Данная матрица показывает потенциальные информационные потоки между переменными. Для анализа таких матриц были созданы пакеты прикладных программ.
Следующий вопрос, который возникает в таких задачах, можно ли создать «невидимые» для контролирующего субъекта скрытые каналы. В работе А.Грушо [2] доказано, что если противник знает схему контроля в системе защиты, то при выполнении определенных условий возможно построение невидимого для системы защиты срытого канала управления программно-аппаратным агентом в компьютерной среде. При этом «невидимость» понимается в абсолютном смысле, то есть доказывается невозможность выявления такого канала любыми методами и средствами. Аналогично в работе А.Грушо [3] при условии знания противником системы защиты доказывается возможность построения «невидимого» скрытого канала при общении программно-аппаратных агентов в открытой среде между собой. Полученные в этой работе результаты также носят абсолютный характер, то есть доказывается, что скрытый канал невозможно выявить любыми методами и средствами.
При использовании метода зависимостей следует отметить следующее:
- Предложенный аппарат и некоторые его реализации (например, метод матриц разделяемых ресурсов (SRM), предложенный в [15] и др.) является конструктивным инструментом поиска скрытых каналов;
- Не все скрытые каналы могут быть описаны с помощью данного метода.
В частности, существуют скрытые статистические каналы (см. работу Е.Тимониной [7]), которые не выявляются с помощью метода выявления зависимостей. Например, если Т и S связаны между собой статистической зависимостью, то метод зависимостей может не выявить детерминированную связь между этими параметрами. Пусть в рассмотренном ранее примере скрытого канала при однонаправленном интерфейсе RS 232 условие G попрежнему соответствует появлению в передаче фиксированного байта. В случаях, когда G истина, агент на уровне High генерирует случайную величину с распределением Р1, если он хочет передать вниз единицу. Если агент хочет передать ноль или не передает сообщение вообще, то задержка выставления сигнала происходит в соответствии с распределением Р0. Агент нижнего уровня накапливает средние значения времен задержки только при передаче указанного выше байта. Идентификация единицы или нуля производится агентом нижнего уровня с помощью статистического критерия. При этом контролирующий субъект, наблюдающий за задержками выставляемого сигнала на верхнем уровне, не знает при каком байте происходит изменение распределения времени задержки.
Поэтому возможности выявления данного канала контролирующим субъектом значительно ниже возможности агента нижнего уровня распознать передаваемый сигнал. В работе [12] приводится пример соотношения параметров в аналогичном канале, при которых выявление скрытого канала контролирующим субъектом практически невозможно.
Одной из важнейших задач анализа скрытых каналов является оценка их пропускной способности. Пропускная способность скрытых каналов вычисляется методами теории информации. Часто пропускная способность скрытых каналов измеряется отношением количества скрытно переданной информации к количеству информации в легальном маскирующем скрытую передачу процессе или контейнере. Например в обычном цифровом изображении, содержащем 2,5 мегабит информации, манипуляцией последнего бита безопасно можно передать только 100 бит скрытого сообщения. С другой стороны, скрытый канал потайного копирования интересующего файла на дискету обладает пропускной способностью, равной объему копируемого файла. Другие примеры таких вычислений можно найти в работах А.Грушо, Е.Тимониной [4] и Деннинг [10]. В силу того, что скрытые каналы обладают, как правило, небольшой пропускной способностью, может сложиться мнение, что они не представляют опасности. Часто в таких случаях устанавливается порог на пропускную способность, ниже которого канал считается не опасным. Однако не следует забывать, что оценки пропускной способности, носят асимптотический характер и подход, связанный с ограничением пропускной способности, может оказаться неэффективным в реальных приложениях. Например, в работе Московиц [18] показано, что канал может иметь асимптотически нулевую пропускную способность, однако через него вполне можно передать скрытое сообщение небольшой длины.
6. Борьба со скрытыми каналами
Перехват информации, передаваемой по скрытым каналам, представляет большую сложность. Кажется, что здесь возникают только технологические сложности, связанные с регистрацией и анализом быстро протекающих процессов в компьютерных системах. Вместе с тем в работе А.Грушо и Е.Тимониной [5] доказано, что возможно создание производителем закладок в аппаратных системах, которые могут общаться между собой «невидимо» для большинства средств защиты.
В случае использования методов стеганографии решение задачи выделения скрытых сообщений представляется более оптимистичным. Примером успешного выявления стеганографических вставок является использование скрытого канала в поле ISN протокола TCP, упоминавшегося выше.
Наиболее эффективным способом борьбы со скрытыми каналами является их уничтожение. Например, в приведенных выше примерах скрытых каналов спуска информации при использовании интерфейса RS 232 встраивание между уровнями High и Low устройства, транслирующего байты и рандомизирующего задержку выставления сигнала на верхнем уровне, видимую на нижнем уровне, позволяет полностью уничтожить любой детерминированный скрытый канал по времени и существенно испортить скрытый статистический канал.
Аналогичные методы успешно используются для защиты от скрытых каналов при скрытой передаче информации через открытые системы. Детальный обзор этих методов можно найти в работе Петиколаса [20].
К тематике скрытых информационных потоков близко подходит проблема «скрытого влияния». Для пояснения проблемы остановимся на скрытых каналах, которые физически не существуют. Для объяснения этой парадоксальной ситуации рассмотрим двухуровневую систему, в которой уровень High соответствует аналитической подсистеме, вырабатывающей варианты некоторого решения. Уровень Low соответствует подсистеме сбора информации из открытых источников и открытых сетей. Пусть подсистемы Low и High связаны однонаправленным каналом от Low к High, который позволяет реплицировать на верхнем уровне собранные на нижнем уровне данные.
Пусть объект Y принадлежит уровню High, а объект X принадлежит уровню Low. Пусть совместное распределение состояний (х, у) объектов Y и Х не равно произведению индуцированных вероятностей РX(х) и РY(у). Тогда, как было отмечено ранее, согласно математической теории связи, от Х к Y существует информационный поток, который измеряется средней взаимной информацией I(X, Y). Но тогда точно такой же информационный поток существует от Y к Х, измеряемый той же величиной. В случае однонаправленного канала такая симметрия имеет очень простую интерпретацию. На нижнем уровне, реплицируя объект Х на верхний уровень, известно, что на верхнем уровне существует объект Y в точности с тем же состоянием, что и Х. Если какой-то объект Z связан с объектом Y на верхнем уровне, и известно, что существует объект с данным видом связи, то естественно возникает информационный поток между Х и Z. Причем этот информационный поток также симметричен, что означает возможность получения некоторой информации об объекте верхнего уровня, не имея физического канала от Z к Х.
Для того, чтобы лучше понять суть таких каналов, представим себе, что на верхнем уровне секретное решение принимается с помощью некоторого известного алгоритма только на основании информации, реплицированной с нижнего уровня. Зная это противник на нижнем уровне может из той же информации с помощью того же алгоритма получить точно такое же решение. Для офицера информационной безопасности это значит, что секретная информация верхнего уровня стала известна на нижнем уровне, что можно интерпретировать как существование некоторого скрытого канала, передающего информацию с верхнего уровня на нижний и несанкционированно снижающего гриф информации. Сам факт существования этого канала определяется симметрией информационного потока от объектов нижнего уровня на верхний. В общем случае те же рассуждения приводят нас к тому, что на нижнем уровне становятся известными некоторые вероятностные характеристики решения принимаемого на верхнем уровне. Таким образом, интерпретируется парадоксальный факт существования скрытого канала с верхнего уровня на нижний, хотя физически этот канал не существует. Из указанного примера следует два важных вывода.
Первый вывод состоит в том, что многоуровневая политика не является гарантией безопасности, так как секретная информация верхнего уровня может стать известной на нижнем уровне независимо от способа реализации многоуровневой политики. Второй вывод состоит в том, что наиболее общая вероятностная трактовка информационного потока не позволяет просто разделить множество информационных потоков на разрешенные и не разрешенные.
Литература
1. Грушо А.А., Тимонина Е.Е. Теоретические основы защиты информации, М.: Агентство «Яхтсмен», 1996, 186 с
2. Грушо А.А. Скрытые каналы и безопасность информации в компьютерных системах // Дискретная математика, т.10, вып. 1, 1998.
3. Грушо А.А. О существовании скрытых каналов// Дискретная математика, т.11, вып. 1, 1999.
4. Грушо А.А., Тимонина Е.Е. Двойственность многоуровневой политики безопасности //Тезисы докладов конференции «Методы и технические средства обеспечения безопасности информации», С.-Петербург, изд-во СПбГТУ, 2000.
5. Грушо А.А., Тимонина Е.Е. Модель невлияния для сети// Тезисы докладов пятой международной Петрозаводской конференции «Вероятностные методы в дискретной математике», Обозрение прикладной и промышленной математики, научное изд-во «ТВП», Москва, 2000.
6. Кудрявцев В.Б., Алешин С.В., Подколзин А.С. Введение в теорию автоматов, М.: Наука, 1985.
7. Тимонина Е.Е. Механизмы контроля скрытых каналов / Труды международной конференции «Информационные технологии в науке, образовании, телекоммуникации, бизнесе», Украина, Крым, 20-30 мая 2002, стр. 152-153.
8. Шеннон К. Работы по теории информации и кибернетике, М.: Иностранная литература, 1963.
9. Biba K.J. Integrity Considerations for Secure Computer Systems //The MITRE Corp., Report No. MTR-3153 Revision 1, Electronic System Division, U.S. Air Force Systems Command, Technical Report Esd-TR-76-372, Bedford, Massachusetts, April 19975.
10.Denning D.E. A Lattice Model of Secure Information Flow// Communications of ASM, 19:5, pp. 236-243, May 1976.
11. Department of Defense Trusted Computer System Evaluation Criteria, DoD, 1985.
12. Grusho A.A. Mathematical Models of the Covert Channels// Information Assurance in Computer Networks. Methods, Models, and Architectures for Network Security: International Workshop MMMACNS 2001 St. Petersburg, Russia, May 212-23, 2001/ Springer, 2001.
13. Handbook for the Computer Security Certification of Trusted Systems //NRL Technical Memorandum 5540:062A, 12 Feb. 1996.
14.Huskamp J.C. Covert Communications Channels in Timesharing Systems/ Technical Report UCBCS-78-02, Ph.D. Thesis, University of California, Berkley, California, 1978.
15. Kemmerer R.A. Shared Resource Matrix Methodology: An Approach to Identifying Storage and Timing Channels //ACM Transactions on Computer Systems, 1:3, pp. 256-277, August 1983.
16. Lampson B.W. A Note of the Confinement Problem //Communications of ACM, 16:10, pp. 613-615, October 1973.
17. Millen J.K. Security Kernel Validation in Practice/ Communications of ASM, 19:5, May 1976.
18. Moscowitz I.S., Kang M.H. Covert Channels Here to Stay?// Information Technology Division Naval Research Laboratory, Washington, DC 20375, 1995.
19. National Computer Security Center. A Guide to Understanding Covert Channel Analysis of Trusted Systems, 1993, NCSC-TG-030, ver. 1.
20.Petitcolas F. A.P., Anderson R.J., Kuhn M.G. Attacks on Copyright Marking Systems/ Second workshop on information hiding, in vol. 1525 of Lecture Notes in Computer Science, Portland, Oregon, USA, 14-17 April, 1998, pp. 218-238.
21.Rowland C.H. Covert Channels in the TCP/IP Protocol Suite// 11-14-1996, Psionic Technologies Inc., 2002.
22. Schneier B. Applied Cryptography: Protocols, Algorithms, and Source Code in C, John Wiley & Sons, New York, 2nd edition, 1996.
23. Tsai C.-R., Gligor V.D., Chandersekaran C.S. A Formal Method for the Identification of Covert Storage Channels in Source Code// IEEE Transactions on Software Engineering, v.16:6, June 1990, pp. 569-580.