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

Возможности 15.03.2019
Возможности

Алексей Галатенко

Прежде чем ввести вас в курс дела, я хочу, чтобы вы поклялись в том, что все останется между нами.

Р. Стаут. "Если бы смерть спала"

Оправдания

Не имея личного опыта по части того, что происходит в приютах похоти, я не мог считаться экспертом в этой области.

Р. Стаут. "Слишком много клиентов"

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

К истокам Чем выше ум, тем тень длиннее ляжет,Отброшенная им на дальний мир.Р. Браунинг. "Парацельс"В статьях и обзорах, посвященных скрытым каналам, обычно пишут, что этот термин введен в работе Лэмпсона . Важно отметить, однако, что Батлер Лэмпсон упоминает о скрытых каналах как бы между делом, не они являются предметом исследования. Его трехстраничная заметка называется "О проблеме ограничения" ("A Note on the Confinement Problem") и посвящена она, выражаясь современным языком, контролируемому выполнению (недоверенных) программ с целью помешать им организовать утечку конфиденциальной информации.Идея дополнительного ограничения действий, которые разрешается выполнять программе, (помимо применения имеющихся в операционной системе механизмов контроля доступа), является исключительно важной и глубокой, опередившей свое время. По сути Лэмпсон пунктиром обозначил будущие модели безопасности для Java-аплетов — от "песочницы" до контроля по стеку вызовов, причем сделал это на 25 лет раньше разработчиков Java (заметка была сдана в редакцию в июле 1972 года, а по ссылкам видно, что он занимался проблемами динамической защиты еще в 1960-е годы).Лэмпсон рассматривает следующую задачу. Пусть клиент вызывает некоторый сервис, передавая ему в качестве параметров конфиденциальную информацию, утечка которой нежелательна. Спрашивается, как следует ограничить поведение произвольного сервиса? (В 1972 году сервис представлял собой процедуру, вызываемую из клиентской программы; о распределенных архитектурах речь не шла, но многопроцессные конфигурации были обычным явлением.)Подчеркнем, что речь идет о создании "песочницы" для произвольной программы. Если ограничения окажутся нарушенными, выполнение сервиса должно аварийно завершаться.Чтобы понять характер налагаемых ограничений, Лэмпсон сначала исследует возможные каналы утечки информации, выделяя следующие:Если у сервиса есть память, он может сохранить клиентскую информацию, дождаться, когда его вызовет хозяин, и передать тому сохраненную информацию;Сервис может записать информацию в постоянный файл в каталоге хозяина; Сервис может создать временный файл (что само по себе вполне законно: как же без временных файлов?); хозяин может периодически проверять его (файла) существование и прочитать информацию прежде, чем сервис завершит работу и удалит все временное; Сервис может послать сообщение процессу, контролируемому хозяином;Сервис может закодировать информацию в счете за свои услуги, поскольку хозяин должен получить копию этого счета; ограничения на формат счета способны свести объем утечки к нескольким десяткам бит, но полностью ликвидировать ее нереально;Если могут возникать конфликты по ресурсам, сам факт конфликта может быть использован для передачи информации (чуть ниже мы подробнее рассмотрим этот канал утечки);Сервис может варьировать отношение вычислительной активности к темпу подкачки страниц или числу операций ввода/вывода, кодируя таким способом информацию; параллельно работающий процесс способен наблюдать поведение системы и получать передаваемую информацию; это зашумленный канал, его пропускная способность невелика, но он есть, и им можно воспользоваться.Всегда интересно не просто теоретически знать, что каналы утечки существуют, но и понять на практике, как они могут быть устроены. Лэмпсон описывает "эксплойт" для использования конфликтов по ресурсам (мы приведем его в несколько модифицированном виде). Пусть, например, один и тот же файл нельзя параллельно открыть из двух процессов (при попытке сделать это фиксируется ошибка). Данный факт можно использовать для побитной передачи информации. Две следующие процедуры, написанные на АЛГОЛоподобном языке обеспечивают, соответственно, установку нужного бита и его проверку.

Листинг 1

setbit (file, bit); Boolean bit; begin if bit = true then loop1: open (file, loop1) else close (file) end; Boolean procedure testbit (file); begin testbit: = true; open (file, loop2); testbit:= false; close (file) loop2: end;

(К своему стыду, автор не знает, как окружение АЛГОЛ-программ реагирует на попытку закрыть неоткрытый файл).Сейчас далеко не все помнят тонкости АЛГОЛа-60, поэтому нужно пояснить по крайней мере два момента. Во-первых, метки в АЛГОЛе являются допустимым типом данных, значения которого можно передавать в качестве параметров. Во-вторых, если (занятый) файл открыть не удалось, управление нелокально передается на метку, заданную в качестве второго аргумента процедуры open. Кстати, это более практичный способ обработки исключительных ситуаций, чем проверка кодов возврата, которую зачастую забывают сделать, что является одним из источников уязвимостей программных систем.Теперь, располагая элементарными операциями, можно организовать передачу бита между процессами. Для этого Лэмпсон использует три файла: data, sendclock и receiveclock.В программе-сервисе может присутствовать такой фрагмент (написанный нами с некоторыми вольностями):

Листинг 2

Переходя к правилам ограничения (контролируемого выполнения), Лэмпсон прежде всего указывает, что ограничиваемая программа не должна иметь возможности сохранять информацию между вызовами. Для процедур это условие легко проверяется: оно означает отсутствие обращений к нелокальным переменным.Если нелокальная память отсутствует, то для успешной реализации ограничения достаточно, чтобы ограничиваемая программа не вызывала других программ. Это правило полной изоляции по сути совпадает с моделью "песочницы" в версии JDK 1.0. Разумеется, Лэмпсон тут же отвергает его как нереалистичное, поскольку, как показывают два последних из перечисленных выше примеров утечек, в числе прочих должны быть запрещены явные и неявные вызовы супервизора (ядра ОС). Попытка применить правило полной изоляции "насквозь" и потребовать, чтобы ограничивались все вызываемые программы, не проходит, поскольку супервизор нельзя ограничивать.Чтобы исправить ситуацию, предлагается, как и следовало ожидать, поделить всех на чистых и нечистых, то есть на тех, кому доверяют, и тех, кого ограничивают. В результате получается следующее правило: если ограничиваемая программа вызывает недоверенную, то последнюю также необходимо ограничивать.Дело осталось за малым — написать доверенный супервизор. Как показывают два последних из перечисленных выше примеров утечек, дело это непростое, поскольку используемые для этого каналы могут быть самыми неожиданными. Тем не менее Лэмпсон придерживается оптимистической точки зрения: каналов утечки, конечно, на удивление много, но все-таки конечное число. Необходимо их перенумеровать, а потом и заблокировать. В качестве отправной точки предлагается следующая классификация каналов:Разного рода память, управляемая супервизором, в которую может писать ограничиваемая программа (в рассматриваемых примерах — сервис), а читать — неограничиваемая (вскоре после записи или позднее); все приведенные выше примеры, кроме двух, относятся к этому классу;Легальные каналы, используемые ограничиваемой программой (например, счет за обслуживания);Скрытые каналы, вообще не предназначенные для передачи информации, (например, влияние сервиса на загруженность системы).Вот в каком контексте вводится понятие скрытого канала (covert channel) и как оно определяется Лэмпсоном. Обратим внимание читателя на то, что все каналы по памяти отнесены к другому классу утечек. Важно и то, что помимо скрытых, Лэмпсон рассматривает и так называемые "подсознательные" или потайные каналы (легальные каналы, по которым передаются данные, допускающие нестандартную интерпретацию и, следовательно, которые могут служить каналом утечки конфиденциальной информации), хотя используемый в настоящее время термин subliminal channel, по-видимому, введен Б. Шнейером примерно двадцать лет спустя.По мнению Лэмпсона предотвратить утечки через память довольно просто. Например, чтобы избавиться от блокировок при совместном доступе к ресурсам, можно при попытке записи копировать файл и бесконфликтно предоставлять копию для чтения ограничиваемой программой. (Заметим, что идея эта весьма глубока, только лучше при попытке записи открывать новую версию файла и писать в нее, применяя в дальнейшем механизмы конфигурационного управления.)Для блокирования легальных и скрытых каналов предлагается следующий принцип маскирования: ограничиваемая программа должна позволять вызывающему полностью определять вывод в легальные и скрытые каналы. Таким образом каналы маскируются вызывающим (клиентом).Это — центральная идея работы Лэмпсона. Программа ограничивается в соответствии с ожидаемой семантикой и специфическими потребностями вызывающего. Например программа для просмотра документов не должна изменять или создавать файлы. Напротив компилятору без создания файлов (временных и постоянных) не обойтись.Вообще говоря при разных вызовах одного сервиса ограничения могут быть разными. Тем более они могут быть разными для разных сервисов. Если сервис не в состоянии удовлетворить требования клиента, вызов отвергается.Для скрытых каналов Лэмпсон формулирует еще одно правило — проведения в жизнь: супервизор обязан обеспечить соответствие вывода ограничиваемой программы в скрытые каналы спецификациям вызывающего. Считается, что концептуально это несложно: можно искусственно замедлять выполнение программы, генерировать фиктивные обращения к дискам и т.п., короче говоря, зашумлять скрытые каналы. Цена проведения в жизнь может быть большой. Более практичной альтернативой (если клиент готов допустить некоторую утечку) является ограничение пропускной способности скрытых каналов.Конечно, можно отметить, что некоторые положения работы Лэмпсона, касающиеся концептуальной простоты или принципиальной реализуемости выявления и блокирования каналов утечки (в частности, скрытых каналов), остались необоснованными. Более того, как показали последующие исследования, они неверны. Тем не менее эта работа продолжает оставаться актуальной и в наше время, а ее идейный потенциал далеко не исчерпан. Тематика ограничения (контролируемого выполнения) программ ждет дальнейшего развития.

Коротко о традиционном подходе к проблеме скрытых каналов

Прими с достоинством то, что не можешь изменить.СенекаЛэмпсон понимал, что без учета семантики программ невозможно управлять доступом и, в частности, не допускать утечек информации. К огромному сожалению, эта идея не была воспринята. Последующие усилия в основном оказались направленными на разработку и реализацию универсальных и формальных, но недостаточно содержательных моделей безопасности (в особенности моделей доступа), а также на выявление и оценку пропускной способности скрытых каналов для таких моделей. Более содержательная и важная для практики задача ограничения программ по сути оказалась забытой.Традиционным стало следующее определение скрытого канала (см. ). Пусть дана модель недискреционной политики безопасности М и ее реализация I(M) в операционной системе. Потенциальная связь между субъектами I(S i) и I(S j) в I(M) называется скрытым каналом тогда и только тогда, когда эта связь между S i и S j в модели M не разрешена.Несмотря на формальный стиль и пугающее слово "недискреционной", смысл этого определения довольно прост. С одной стороны, по сравнению с работой Лэмпсона, понятие скрытого канала стало трактоваться шире. Фактически к нему отнесены все виды передачи информации, нарушающие политику безопасности. С другой стороны, наложено ограничение на дисциплину разграничения доступа, реализуемую в ОС. Она не должна сводиться к произвольному (дискреционному, согласно официальной терминологии) управлению доступом. Это значит, что круг рассматриваемых систем сужен до весьма немногочисленных, хотя и критически важных, режимных конфигураций, использующих многоуровневую политику безопасности и принудительное (мандатное) управление доступом.Напомним, что в "Оранжевой книге" требования, касающиеся скрытых каналов, фигурируют, начиная с класса B2, а мандатный доступ появляется в классе B1. В тех странах, где нормативные документы в области информационной безопасности построены на основе "Оранжевой книги", режимные организации должны бороться со скрытыми каналами и по содержательным, и по формальным причинам, для них и реализация принудительного управления доступом, и блокирование скрытых каналов — действия необходимые. В то же время, они весьма сложны. Например, в упомянутой выше работе обосновывается необходимость анализа исходного текста (наряду с анализом спецификаций) ядра ОС для выявления скрытых каналов по памяти и утверждается, что на ручной анализ ядра Secure Xenix требуется два человеко-года. Разумеется, анализ можно автоматизировать, что и было сделано, после чего было выявлено 25 переменных, потенциально пригодных для организации скрытых каналов. Любопытно отметить, что существование пяти каналов стало возможным из-за конфликтов между программным интерфейсом ядра Secure Xenix и правилами мандатного доступа; очевидно, без потери совместимости ликвидировать эти каналы невозможно.В подавляющем большинстве случаев многоуровневая политика безопасности направлена на сохранение конфиденциальности. С этой целью запрещаются информационные потоки "вниз", с верхних уровней секретности (доверия) на нижние. В таких условиях передатчиком в скрытом канале должна служить "троянская" программа с высоким уровнем доверия.Скрытые каналы по памяти были детально рассмотрены в предыдущем разделе. В принципе, скрытые каналы по времени устроены аналогично примеру с конфликтами при открытии файлов; различия касаются в основном способов кодирования передаваемой информации.Чтобы организовать скрытый канал по времени, нужен разделяемый ресурс (например, процессор) с возможностью воздействия со стороны одного процесса и выявления этого воздействия со стороны другого, а также двое часов — эталонные и сигнальные. Часы могут быть виртуальными и реализовываться в виде последовательности наблюдаемых событий. Передача информации осуществляется за счет модуляции последовательности сигнальных событий, прием — путем измерения модуляции относительно эталонных часов.В работе рассматривается построение скрытого канала по времени, использующего модуляцию занятости процессора. Идея состоит в следующем. На верхнем уровне доверия действует одна программа-передатчик. За один такт эталонных часов передатчик выполняет два вида циклов. Сначала (фаза 1) он почти не тратит процессорное время, сразу отдавая управление планировщику; затем (фаза 2), наоборот, занимает процессор максимально плотно. Приемник пытается определить относительную длительность этих двух фаз. Для этого приемник реализуется в виде двух процессов. Один подсчитывает, сколько раз он получил доступ к процессору, в цикле увеличивая (разделяемый) счетчик и тут же отдавая управление планировщику; другой в конце такта часов считывает и сохраняет значение счетчика, обнуляет его и откладывается до конца следующего такта.Со скрытыми каналами можно бороться двумя способами: пытаться блокировать их полностью или уменьшать пропускную способность.Для полного блокирования скрытого канала нужно устранить разделение ресурсов, видимое для процессов с низким уровнем доверия; последние должны выполняться так, будто кроме них в системе никого и ничего нет. Подобного невлияния можно добиться либо избегая конфликтов (например, за счет устранения разделения ресурсов), либо незаметным образом разрешая их в пользу "низших". Это, в свою очередь, порождает проблему, аналогичную инвертированию приоритетов: процесс с высоким уровнем доверия рискует получить слишком мало ресурсов, а совершаемые им транзакции могут слишком часто откладываться. Для борьбы с дискриминацией "секретных" процессов приходится идти на новые хитрости (см., например, ).Разумеется, в сколько-нибудь сложной системе избежать видимого разделения ресурсов невозможно. Идея реализации доменов безопасности с непроницаемыми границами и аппаратно односторонними междоменными каналами (см. ) относится скорее к области курьезов, поскольку игнорирует реально используемые коммуникационные протоколы. Следовательно, с существованием некоторых скрытых каналов приходится мириться, пытаясь, однако, уменьшить (или, по крайней мере, оценить) их пропускную способность.Если считать, что такт T эталонных часов постоянен, и за один такт можно различить N модуляций, то пропускная способность скрытого канала по времени оценивается величиной log2(N)/T. Для уменьшения пропускной способности можно "сбивать" часы (эталонные и/или сигнальные), "зашумлять" канал еще каким-либо способом (например, обслуживая фиктивные запросы), уменьшать разрешающую способность часов (увеличивая такт). (Заметим, что предпочтительнее воздействовать на эталонные, а не сигнальные часы, так как первое дает линейный эффект, а второе — лишь логарифмический). Любопытно отметить, что в локальной сети корпорации Боинг, сертифицированной по классу A1, разрешающая способность часов, доступных недоверенным процессам, составляет одну секунду (см. ). Как говорится, страшнее скрытого канала зверя нет, и для борьбы с ним приходится применять весьма сильнодействующие средства, существенно снижающие эффективность и осложняющие работу приложений. Впрочем, как показывает рассмотренный выше пример, можно добраться до более тонких внутренних часов планировщика; он демонстрирует также, насколько сложны анализ пропускной способности скрытых каналов и борьба с ними.Первопричина существования скрытых каналов и невозможность их устранения при традиционном подходе к построению информационных систем видится нам в следующем. Поскольку такие формальные модели безопасности, как известная модель Белла-Лападула, разграничивают доступ "в принципе", но не содержат понятия времени и не регламентируют конкуренцию за ресурсы, то есть ситуации, когда "в принципе ресурс использовать можно, только в данный момент нельзя — он занят", при любом распределении прав доступа разного рода сигнальные события и, в частности, коллизии вследствие конкуренции могут быть использованы для организации скрытых каналов.С потайными каналами (см. выше раздел 1) дело обстоит еще хуже. Представляется очевидным, что если не формализовать структуру данных, передаваемых программами по легальным каналам (Лэмпсон указывал на необходимость подобной формализации), последние всегда можно использовать для скрытой передачи информации. Строгое доказательство невозможности устранения и даже обнаружения потайных каналов при весьма общих предположениях относительно схем контроля имеется в работах А.А. Грушо , .Перечисленными причинами объясняется необходимость развития отдельной науки под названием "анализ скрытых каналов", а также принципиальная невозможность полностью блокировать утечку конфиденциальной информации универсальными средствами, не учитывающими семантику программ.

Скрытые каналы и повседневная практика

"Баржа с грузом трески вошла в порт. Поспешите, товар скоропортящийся."Г. Мопассан. "Заведение Телье"В повседневной практике скрытые каналы трактуются шире, чем в теории. Расширение происходит по четырем направлениям:Рассматриваются системы с произвольной дисциплиной управления доступом (а не только с многоуровневой политикой безопасности);Рассматриваются не только нестандартные каналы передачи информации, но и нестандартные способы передачи информации по легальным каналам (потайные каналы);Рассматриваются угрозы не только конфиденциальности, но и целостности;Рассматриваются не только однонаправленные, но и двунаправленные каналы.В повседневной практике скрытые каналы чаще всего возникают из-за возможности доступа к данным несколькими способами. Например, если в корневом каталоге файловой системы располагается tftp-сервер, он позволит получить всем пользователям доступ на чтение ко всем файлам, независимо от установленных прав доступа. Второй пример: если есть программа со взведенным битом переустановки действующего идентификатора пользователя, владельцем root и... уязвимостью, то обычный пользователь может проэксплуатировать уязвимость, захватить привилегии суперпользователя и нарушить конфиденциальность и целостность чего угодно. Третий пример: пароль в незашифрованном виде, хранящийся в оперативной памяти и сбрасываемый в файл с образом памяти при аварийном завершении. Очевидно, число подобных примеров можно умножать до бесконечности.Нестандартные способы передачи информации по легальным каналам получили название "подсознательных" или потайных каналов (subliminal channels), хотя по аналогии с наложенными сетями их лучше было назвать наложенными скрытыми каналами. Потайные каналы используют тогда, когда имеется легальный коммуникационный канал, но политика безопасности запрещает передавать по нему определенную информацию; иными словами, информацию передавать можно, но она не должна выглядеть подозрительно (в соответствии с некими, обычно не очень четкими критериями). Помимо разведчиков, в потайных каналах нуждаются хозяева "троянских" программ, таких, например, как Back Orifice или Netbus; если канал взаимодействия с ними будет явным, "троянца" быстро вычислят и уничтожат. Подобные каналы, используемые для управления, должны быть двунаправленными.Потайной канал возможен тогда, когда в передаваемых легальных данных есть незначащие или почти незначащие биты, например, некоторые биты в заголовках IP-пакетов или младшие биты интенсивности цветов в графическом файле, присоединенном к письму. (Электронная почта — идеальный легальный канал, на который удобно накладывать скрытые.) В работе рассматривается другой пример: нестандартный алгоритм электронной подписи, оставляющий место для тайных сообщений, не препятствующих проверке аутентичности ЭЦП.Для нарушения целостности чаще всего используют уязвимости, связанные с переполнением буферов. Если тем самым изменяется содержимое стека вызовов, то перед нами еще один пример скрытого канала, основанного на возможности доступа к данным нестандартным способом. Применяются также атаки пользовательских процессов на целостность транзакций, выполняемых процессами привилегированными (соответствующий англоязычный термин — race condition). Возможность подобной атаки появляется, если временные данные для транзакции располагаются в общедоступных каталогах, таких как /tmp.Разумеется, при расширительном толковании понятия скрытого канала проблемы, описанные в предыдущем разделе, не только остаются, но и обостряются; кроме того, к ним добавляются новые. С этими проблемами можно бороться двумя способами: формальным и содержательным.Формальный способ усиления безопасности состоит в попытке добавить к употребительным операционным системам, таким как Linux, возможности, реализующие требования классов B2 и старше из "Оранжевой книги", то есть реализовать в ядре ОС мандатный доступ ко всем ресурсам и провести анализ скрытых каналов. Вне зависимости от выполнимости последнего пункта, подобный путь представляется тупиковым. Одно дело анализировать скрытые каналы в операционной системе мэйнфрейма, изначально спроектированной с учетом требований безопасности и прошедшей многолетнюю апробацию (см., например, ) и совсем другое — в ОС, содержащей ошибки, связанные с переполнением буферов. Для подлинной безопасности нужно не только добавление принудительного управления доступом, но и существенное перепроектирование ОС.Содержательный способ борьбы со скрытыми каналами состоит в выстраивании эшелонированной обороны; утечки информации признаются неизбежными, но их пытаются локализовать и отследить. Для иллюстрации рассмотрим следующий гипотетический пример. Банк, информационная система которого имеет соединение с Интернет, защищенное межсетевым экраном, приобрел за рубежом автоматизированную банковскую систему (АБС). Изучение регистрационной информации экрана показало, что время от времени за рубеж отправляются IP-пакеты, содержащие какие-то непонятные данные. Стали разбираться, куда же пакеты направляются, и оказалось, что идут они в форму-разработчик АБС. Возникло подозрение, что в АБС встроены "троянская" программа и скрытый канал, чтобы получать информацию о деятельности банка. Связались с фирмой и в конце концов выяснили, что один из программистов не убрал из поставленного в банк варианта отладочную выдачу, которая была организована сетевым образом (как передача IP-пакетов специфического вида, с явно заданным IP-адресом рабочего места этого программиста). Если бы не межсетевой экран, канал оставался бы скрытым, а конфиденциальная информация о платежах свободно гуляла по сетям.Конечно, мысль о необходимости эшелонированной обороны не нова; надо только не забыть реализовать ее на практике...Еще один практически важный в данном контексте архитектурный принцип — разнесение доменов выполнения для приложений с разным уровнем доверия на разные узлы сети. Если такие приложения будут функционировать в распределенной среде клиент/сервер, ограничить их взаимное влияние (и, следовательно, заблокировать скрытые каналы) будет существенно проще, чем в случае единых многопользовательских систем.

Скрытые каналы и Java-аплеты

"Подразумевается, что Вульф приложит все силы для сохранения в тайне фактов, способных нанести ущерб корпорации; при несоблюдении этого условия он теряет право на гонорар."Р. Стаут. "Слишком много клиентов"Одной из актуальных и практически важных проблем информационной безопасности является пресечение вредоносных действий со стороны мобильных агентов и, в частности, Java-аплетов. Подобные агенты — обязательная составляющая систем электронной коммерции, электронного голосования и других приложений, ориентированных на массовое, повседневное использование.Универсальной модели безопасности, реализованной на платформе Java 2 и ориентированной на защиту локальных ресурсов от несанкционированного доступа со стороны аплета, недостаточно для того, чтобы предотвратить утечку конфиденциальной информации по скрытым каналам, поскольку такую информацию может передать аплету сам пользователь (в надежде на корректность поведения аплета). Хотелось бы, чтобы кроме надежды, у пользователя были и другие основания для доверия. Для этого необходимо ограничить поведение аплета в соответствии с его спецификациями, что означает возврат к истокам, к постановке задачи, предложенной Лэмпсоном тридцать лет назад.В работе рассматривается пример простого протокола из области электронной торговли, возникающие при этом сложности с обеспечением конфиденциальности и возможные пути их преодоления. Суть примера в следующем. Имеются три субъекта: покупатель, продавец и банк, обслуживающий покупателя. Для оформления заказа покупатель загружает с сервера продавца Java-аплет, осуществляющий ввод данных о заказываемом товаре и реквизитах счета покупателя. Аплет должен передать эту информацию продавцу, предварительно зашифровав банковские реквизиты имеющимся у покупателя ключом банка (продавцу знать реквизиты счета покупателя не полагается, ему нужно лишь получить от банка плату за покупку).Очевидно, у аплета есть много способов разной степени скрытности передать продавцу конфиденциальную информацию о счете покупателя: изменить представление заказа зависящим от реквизитов образом, зашифровать реквизиты своим ключом (а не ключом банка) и т.п. Идея ограничения аплетов, предлагаемая в , состоит в том, чтобы вместе с интерпретируемым кодом поступали спецификация свойств конфиденциальности и допускающее автоматическую проверку доказательство того, что байт-код соответствует спецификации. В свою очередь, в спецификации задаются зависимости между изменением исходных данных (вводимых пользователем) и наблюдаемым поведением аплета. Эти зависимости должны быть в точности такими, как предписывает протокол. Например, результат шифрования реквизитов должен меняться при их изменении, равно как и при изменении банковского ключа; если последнее утверждение неверно, значит аплет использует для шифрования нелегальный ключ. Еще пример: данные о заказываемом товаре, передаваемые продавцу, не должны меняться при изменении реквизитов.Мы не будем вдаваться в тонкости применяемого в формализма. Отметим лишь, что предлагаемый подход представляется весьма перспективным; это подтверждается прототипной реализацией. Он не решает всех проблем; со скрытыми каналами по времени бороться по-прежнему трудно, хотя в принципе можно варьировать уровень детализации наблюдаемого поведения, добиваясь видимости все более тонких эффектов.

О скрытых каналах в искусстве и жизни

По всей земле разбросано множество древних образов, неизгладимых и вечных; любой из них способен служить искомым символом. Словом Бога может оказаться гора, или река, или империя, или сочетание звезд.Х.Л. Борхес. "Письмена Бога"Идея скрытых и потайных каналов стара как мир. Аллегории, эзопов язык — это способы организовать потайные каналы при словесной передаче данных. Для визуальной передачи применяют пресловутые горшки с геранью, выставляемые на подоконник в определенных случаях, и другие условные знаки. Такая привычная вещь, как школьная подсказка, также является формой использования скрытых каналов.Впрочем, подсказки практикуются не только в школе. В сентябре 2001 года, при записи английской телепередачи "Who wants to be a millionaire?" майор Чарльз Ингрэм правильно ответил на все вопросы, но не получил положенный миллион фунтов стерлингов, поскольку организаторы шоу заподозрили обман и не только не выпустили записанную передачу в эфир, но и обратились в полицию.Режиссеру показалось, что ответ на последний, пятнадцатый вопрос ("Как называется число 10 в сотой степени?") игрок дал сразу после того, как в зале отчетливо прозвучал одиночный кашель (правильным был первый вариант ответа).Стали разбираться, изучать видеозапись (передача записывалась два дня). Выяснилось, что при ответе на первый вопрос второго дня (а всего восьмой, на восемь тысяч фунтов стерлингов) ("Кто был вторым мужем Жаклин Кеннеди?") майор по очереди вслух произносил представленные варианты ответов, и после озвучивания правильного варианта также послышался кашель.Дальнейшее расследование показало, что в зале присутствовала жена майора, Диана, якобы передававшая по рации вопросы другу семьи, который находил в Интернет ответы и сообщал их Диане, передававшей их мужу с помощью описанного выше скрытого канала с переменной схемой кодирования. (На самом деле, мы излагаем здесь реконструированную и наиболее логичную, на наш взгляд, версию происходившего; разные источники — www.izvestia.ru , www.tv-digest.ru , www.interpolice.ru — расходятся в деталях.) В марте 2003 года начался суд, призванный решить судьбу миллиона. Естественно, адвокаты Ингрэма утверждают, что никакого обмана со стороны их клиента не было, а кашель в аудитории, насчитывающей двести человек, слышится постоянно (что, заметим, затрудняет мониторинг подобных скрытых каналов, хотя и зашумляет их).После скандальной передачи организаторы игры усилили меры безопасности (см. http://www.interpolice.ru/archiv/2001/24/show.shtml?16). Все зрители подвергаются личному досмотру, участники — психологическому тестированию на предмет выявления криминальных склонностей. За залом ведется постоянное наблюдение, в том числе с помощью камер ночного видения. Эфир прослушивается радиосканером, чтобы выявить и заглушить возможную передачу ответа на миниатюрный приемник, который может быть спрятан у игрока в ухе. Вот так приходится бороться со скрытыми каналами, которые могут использовать злоумышленники с высокой мотивацией. Но не будет у организаторов гарантий информационной безопасности, пока у игрока и зрителей остается хоть один разделяемый ресурс, даже если этот ресурс — воздух.Не беремся предсказывать, чем закончится эта история. Отметим лишь, что если у кого-то есть друг, умеющий быстро находить в Интернет нужную информацию, и жена, способная эту информацию воспринять и правильно, да еще с вариациями, прокашлять, то ему, безусловно, повезло. А организаторам подобных игр лучше бы озаботиться качеством вопросов, а не сканированием ушей игроков...Тема использования скрытых каналов в процессе игры, конечно, не нова. По крайней мере, внимание художников она привлекла более четырехсот лет назад. Наверняка многие помнят классическое полотно Караваджо (Микеланджело Меризи) "Игроки в карты" (второе название — "Игра в карты с шулерами"), датируемое приблизительно 1594 годом. На нем изображена типичная ситуация: недоверенный субъект осуществляет несанкционированное раскрытие информации, после чего передает ее по скрытому каналу. Отметим также, что еще один изображенный на картине недоверенный субъект уже обзавелся средствами (лишней картой за поясом) для нарушения целостности.

Рисунок 1. Караваджо (Микеланджело Меризи) "Игроки в карты" (второе название — "Игра в карты с шулерами")

Последователь Караваджо, Валантен (Жан де Булонь), на полотне "Игра в карты" изобразил более тонкий метод нарушения конфиденциальности, но механизм передачи данных остался тем же.

Рисунок 2. Валантен (Жан де Булонь) "Игра в карты"

(По адресу http://www.citycat.ru/rest/cards/painting/ можно найти и другие полотна аналогичной направленности, например, картину Йоса ван Красбека "Игроки в карты", где изображен трюк с зеркальцем.)Не счесть примеров скрытых и потайных каналов в литературе. Один из лучших и самых драматичных принадлежит перу Борхеса и описан в его замечательной новелле "Сад расходящихся тропок". Мы приведем несколько фрагментов из нее, чтобы читатель смог оценить ресурсы и методы, потребовавшиеся для организацию подобного канала, результаты использования переданной информации и соотношение между тем и другим.Отметим, что в данном случае скрытый канал стал возможен из-за наличия свободного доступа к части регистрационной информации. Поучительно проанализировать и обстоятельства, способствовавшие успеху предприятия, в первую очередь — слабость некоторых методов биометрической идентификации/аутентификации (по разрезу глаз и цвету кожи)Итак, слово Борхесу.На двадцать второй странице "Истории мировой войны" Лиддел Гарта сообщается, что предполагавшееся на участке Сер-Монтобан 24 июля 1916 года наступление тринадцати британских дивизий (при поддержке тысячи четырехсот орудий) пришлось отложить до утра двадцать девятого. Нижеследующее заявление, продиктованное, прочитанное и подписанное доктором Ю. Цуном, бывшим преподавателем английского языка в Hoch Schule города Циндао, проливает на случившееся неожиданный свет.... Значит, Рунеберг арестован или убит. Солнце не зайдет, как та же участь постигнет и меня. ... я знаю Тайну — точное название места в долине Анкра, где расположен новый парк британской артиллерии. ... О, если бы... я смог выкрикнуть это известие так, чтобы его расслышали в Германии... Мой человеческий голос был слишком слаб. Как сделать, чтобы он дошел до слуха шефа? До слуха этого слабогрудого, ненавистного человечка, который только знает обо мне и Рунеберге, что мы в Стаффордшире, и напрасно ждет от нас известий в своем унылом английском кабинете, день за днем изучая газеты... ... Что-то — наверное, простое желание убедиться в ничтожности своих ресурсов — подтолкнуло меня осмотреть карманы. Там нашлось только то, что я и думал найти. Американские часы, ... крона, два шиллинга и несколько пенсов, ... револьвер с одной пулей. Я зачем-то взял его и, придавая себе решимости, взвесил в руке. Тут у меня мелькнула смутная мысль, что выстрел услышат издалека. Через десять минут план был готов. По телефонному справочнику я разыскал имя единственного человека, способного передать мое известие: он жил в предместье Фэнтона, с полчаса езды по железной дороге.... я исполнил свой замысел потому, что чувствовал: шеф презирает людей моей крови — тех бесчисленных предков, которые слиты во мне. Я хотел доказать ему, что желтолицый может спасти германскую армию. ...Платформу освещал фонарь, но лица ребят оставались в темноте. Один из них спросил: "Вам к дому доктора Стивена Альбера?" Другой сказал, не дожидаясь ответа: "До дома не близко, но вы не заблудитесь: ступайте вот этой дорогой налево и сворачивайте влево на каждой развилке". Я бросил им последнюю монету, спустился по каменным ступенькам и вышел на безлюдную дорогу. ...... из дома за оградой показался фонарь... Нес его рослый мужчина. ... Он приоткрыл ворота и медленно произнес на моем родном языке:— Я вижу, благочестивый Си Пэн почел своим долгом скрасить мое уединение. Наверное, вы хотите посмотреть сад?Он назвал меня именем одного из наших посланников, и я в замешательстве повторил за ним:— Сад?— - Ну да, сам расходящихся тропок.Что-то всколыхнулось у меня в памяти, и с необъяснимой уверенностью я сказал:— Это сад моего прадеда Цюй Пэна.— Вашего прадеда? Так вы потомок этого прославленного человека? Прошу.Альбер поднялся во весь рост. Он выдвинул ящик высокой конторки и на миг стал ко мне спиной. Мой револьвер был давно наготове. Я выстрелил, целясь как можно тщательней: Альбер упал тут же, без единого слова. Клянусь, смерть его была мгновенной, как вспышка.Остальное уже нереально и не имеет значения. ... я был арестован. Меня приговорили к повешению. Как ни ужасно, я победил: я передал в Берлин название города, где нужно было нанести удар. Вчера его разбомбили: я прочитал об этом в газетах, известивших Англию о загадочном убийстве признанного китаиста Стивена Альбера, которое совершил некий Ю. Цун. Шеф справился с этой загадкой. Теперь он знает, что вопрос для меня был в том, как сообщить ему о городе под названием Альбер, и что мне, среди грохота войны, оставалось одно: убить человека, носящего это имя. Он только не знает — и никому не узнать, — как неизбывны моя боль и усталость.

Заключение

"На этот раз я буду умнее", — подумал он, доставая камни из сумки и пряча их в карман. Это ведь портовый город, а в порту, как верно заметил тот, кто его обокрал, всегда полно жуликов.П. Коэльо. "Алхимик"Изучение проблематики скрытых каналов показывает, как важно правильно поставить задачу и рассматривать ее не изолированно, а в реальном окружении.На наш взгляд, правильная постановка, связанная с контролируемым выполнением (ограничением) программ, с самого начала предложенная Лэмпсоном, в дальнейшем незаслуженно отошла на второй план. Попытки бороться со скрытыми (и потайными) каналами с помощью формальных методов, не учитывающих семантику программ, как показывают результаты А.А. Грушо, обречены на неудачу.В реальном окружении проблема утечки конфиденциальной информации стоит особенно остро для распределенных систем с мобильными агентами. В настоящее время существуют перспективные подходы к ее решению.На практике требуется блокировать скрытые каналы всех видов: как те, что угрожают конфиденциальности, так и представляющие угрозу целостности программ и данных. В частности, необходимо выявлять и пресекать общение "троянских" программ со своими хозяевами (равно как и попытки внедрения таких программ).Следование принципам архитектурной безопасности (эшелонированность обороны, разнесение доменов выполнения) помогает бороться как со скрытыми каналами, так и с последствиями их функционирования. При современной технологии создания информационных систем выявить и блокировать все скрытые каналы невозможно. Нужно заставить злоумышленников выстраивать как можно более длинные цепочки из таких каналов; обнаружить и разорвать подобную цепочку существенно проще, чем отдельный канал.

Благодарности

Здесь аванс в десять тысяч долларов. Если бы я дал вам чек, об этом могли бы разнюхать те, от кого я хочу сохранить это в тайне. Расписка не нужна.Р. Стаут. "Если бы смерть спала"Автор признателен И.А. Трифаленкову, которому принадлежит общий замысел данной статьи, определивший ее практическую направленность.

Литература

B.W. Lampson -- A Note of the Confinement Problem. -- Communications of ACM, v. 16, n. 10 , Oct. 1973 B. Schneier -- Applied Cryptography: Protocols, Algorithms, and Source Code in C., 2nd edition -- John Wiley & Sons, New York , 1996 C.-R. Tsai , V.D. Gligor , C.S. Chandersekaran -- A Formal Method for the Identification of Covert Storage Channels in Source Code -- IEEE Transactions on Software Engineering, v.16:6 , 1990 J.V.A. James , D.B. Darby , D.D. Schnachenberg -- Building Higher Resolution Synthetic Clocks for Signalling in Covert Timing Channels. — Proceedings of the Eight IEEE Computer Security FOundations Workshop (CSFW"95). -- IEEE , 1995 S.H. Son , R. Mukkamala , R. David -- Integrating Security and Real-Time Requirements Using Covert Channel Capacity. -- IEEE Transactions on Knowledge and Data Engineering, v. 12, n. 6 , Nov.-Dec. 2000 J.A. Davidson -- Asymmetric Isolation. — Proceedings of the 12th Annual Computer Security Applications Conference (ACSAC). -- IEEE , 1996 А.А. Грушо -- Скрытые каналы и безопасность информации в компьютерных системах -- Дискретная математика , т.10, вып. 1 , 1998 А.А. Грушо -- О существовании скрытых каналов -- Дискретная математика , т.11, вып. 1 , 1999 J.-K. Jan , Y.-M. Tseng -- New Digital Signature with Subliminal Channels on the Discrete Logarithm Problem. — Proceedings of the 1999 International Workshops on Parallel Processing. -- IEEE , 1999 С. Симонов, П. Колдышев -- Обеспечение информационной безопасности в вычислительных комплексах на базе мэйнфреймов. -- Jet Info , No. 4 , 2002 M. Dam , P. Giambiagi -- Confidentiality for Mobile Code: The Case of a Simple Payment Protocol. — Proceedings of the 13th IEEE Computer Security Foundations Workshop (CSFW"00). -- IEEE , 2000
  • IT-стандарты
  • В настоящее время все источники, освещающие вопросы информационной безопасности, содержат сведения раскрытые г-ном Сноуденом о скрытых каналах получения информации и умышленно внедряемых в различные технические средства АНБ устройствах негласного доступа к информации (получения, съема).
    А что же у нас в стране с решением данной проблемы? Анализируя современную отечественную нормативную базу, можно выделить следующие документы, регламентирующие вопросы выявления и борьбы со скрытыми каналами:
    ГОСТ Р 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. Принятие решения о целесообразности противодействия каждому из выявленных скрытых каналов (минимизации уровня риска).

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

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

    Введение

    Попытки скрыть сам факт передачи информации имеют длинную историю. Способы сокрытия самого факта передачи информации получили название стеганография. Исторически для стеганографии применялись "невидимые" чернила, точечные фотовставки и т.д. Данное направление получило вторую жизнь в наше время в связи с широким использованием сетей передачи данных. Чтобы выделить методы стеганографии, связанные с электронным представлением данных, появился термин компьютерная стеганография. Однако в работе Шнайера стеганографические способы передачи по каналам связи получили название потайных каналов (subliminal channels). Наряду с этим появился термин "скрытый канал" (covert channel). Впервые понятие скрытого канала было введено в работе Лэмпсона в 1973 году. Канал называется скрытым, если он не проектировался, не предполагался для передачи информации в электронной системе обработки данных. Таким образом, термин скрытые каналы больше относится к внутрикомпьютерным телекоммуникациям. В работе Тсаи дано следующее определение скрытого канала. Если нам дана модель не дискреционной политики безопасности М и ее имплементация I(M) в операционной системе, то любая потенциальная связь между двумя субъектамиI(Sh) и I(Si) в I(M) называется скрытым каналом, если эта связь между субъектами Sh и Si в модели M не разрешена.
    Поскольку все приведенные выше термины, касающиеся скрытой передачи информации, отличаются нюансами приложений, мы будем без ограничения общности способы скрытой передачи информации называть скрытыми каналами. Возвращаться к исходным терминам мы будем в тех особых случаях, когда выделение соответствующих каналов вытекает из контекста.

    информационный поток

    Простейший подход к определению информационного потока можно найти в TCSEC ("Оранжевая книга", 1985 г.). Если осуществляется доступ на чтение (read) субъекта S к объекту О, то поток информации идет от О к S. Если S имеет доступ на запись (write) к О, то информационный поток направлен от S к О. Транзитивное замыкание цепочек доступа (даже без учета времени) представляет собой сложный информационный поток.

    пример 1
    Например, документ D записан в файл О пользователем U1, а пользователь U2 прочитал документ D в файле О. Таким образом информация, содержащаяся в документе D, перешла от пользователя U1 к пользователю U2 с помощью двух информационных потоков:
    ·U1 организовал информационный поток от себя к О с помощью операции write;
    ·U2 организовал информационный поток от О к себе с помощью операции read.
    Более привычное определение информационного потока вводится через среднюю взаимную информацию. Объект О в информационной системе представляет собой конечное множество допустимых записей в данном языке, а состоянием объекта О является конкретная запись из этого конечного множества, которая находится в информационной системе в данный момент времени с именем О. Пусть X и Y два объекта в информационной системе и предположим, что в данный момент времени состояния объектов X и Y определяются совместным распределением вероятностей P(x, y) на конечном множестве пар

    Обозначим


    и аналогично


    Средней взаимной информацией объектов Х и Y называется величина


    Определение. Информационный поток между объектами Х и Y существует, если средняя взаимная информация I(X,Y)>0.
    Можно доказать, что существование информационного потока эквивалентно условию, что существует пара (x,y) такая, что


    Ясно, что если существует информационный поток от Х к Y, то существует такой же информационный поток от Y к Х.

    пример 2
    Пусть файл О1 является копией файла О2. Тогда P(x,y)=0при x не равном y. Если вероятность состояния х объекта О1 не равна 0, и вероятность состояния y объекта О2 не равна 0, то из эквивалентного определения информационного потока следует, что существует информационный поток от объекта О1 к объекту О2.
    Отметим, что данное определение потока эквивалентно заданию совместного распределения на множествах состояний объектов Х и Y при условии, что меры, индуцируемые на Х и Y, не являются независимыми.
    Рассмотрим еще одно определение информационного потока. В некоторых работах для анализа скрытых каналов вводится понятие зависимости. С точки зрения нашего анализа любая зависимость порождает канал передачи данных. Поэтому мы рассматриваем понятие зависимостей как один из способов определения информационного потока.
    Определение. Информационным потоком от объектов {S} к объекту T можно считать тройку (T, {S}, G), где Т меняет свое состояние, если {S} меняет свое состояние при условии, что логическое выражение G принимает значение истина.

    пример 3
    При вхождении в систему пользователь называет свое имя И и вводит свой пароль П. Данный пароль после шифрования преобразуется в запись К(П), которая сравнивается со значением в таблице паролей, соответствующей данному имени И пользователя. В данном случае значение переменной Т, равное 1, если пользователю разрешено войти в систему, и 0 - в противном случае, зависит от введенных переменных И и П при выполнении логического условия, что в соответствующей строчке таблицы паролей К(П) введенного пароля совпадает с имеющейся там записью. В данном случае переменная S принимает значение имени пользователя И, переменная S1 принимает значение пароля К, а логическое условие G соответствует совпадению записей в таблице паролей.
    К этому определению относятся все виды функциональных связей, в которых значение Т есть функция от некоторого набора переменных, куда входит {S}.
    Обобщением данной схемы является модель информационного потока как конечного автомата, в котором источник сообщения посылает входное слово на вход автомата, а получатель сообщения видит выходную последовательность автомата. Следующими обобщениями являются модель канала как вероятностного автомата и модель детерминированного автомата со случайным входом.

    политики безопасности

    Будем следовать общепринятому определению политики безопасности (ПБ), приведенному в стандарте TCSEC.
    Определение. Политика безопасности это набор норм, правил и практических приемов, которые регулируют управление, защиту и распределение ценной информации.
    Многие политики безопасности выражаются через информационные потоки. Например, все информационные потоки в системе (в том числе потенциальные) делятся на два непересекающихся подмножества: разрешенные и неразрешенные потоки. Тогда система защиты должна обеспечивать поддержку разрешенных потоков и препятствовать запрещенным потокам. К политикам такого класса относится многоуровневая политика безопасности (MLS).
    MLS принята всеми развитыми государствами мира. В секретном повседневном делопроизводстве госсектор России также придерживается этой политики.
    Решетка ценностей SC является основой политики MLS. Линейно упорядоченное множество грифов секретности "несекретно" < "секретно" < "совершенно секретно" является простейшим примером такой решетки ценности. В более общем случае к грифам конфиденциальности добавляются подмножества тематических категорий из заданного набора категорий. В этом случае также получается решетка ценностей, в которой некоторые элементы упорядочены. Например, приведем сравнение двух элементов такой решетки: "секретно, кадры, финансы" < "совершенно секретно, кадры, финансы, материальное обеспечение". Классификация информационных ресурсов - это отображение с множества объектов системы О в множество узлов SC решетки ценности. То есть каждый объект системы классифицируется уровнем секретности и множеством тематических категорий. Отображение с: O -->SC считается заданным. Если c(Y) больше или равно с(X), то Y - более ценный объект, чем X.
    Определение. Политика MLS считает информационный поток X-->Y разрешенным тогда и только тогда, когда c(Y) больше или равно c(X) в решетке SС.
    Таким образом политика MLS имеет дело с множеством информационных потоков в системе и делит их на разрешенные и неразрешенные очень простым условием. Однако эта простота касается информационных потоков, которых в системе огромное количество. Поэтому приведенное выше определение неконструктивно. Хотелось бы иметь конструктивное определение на языке доступов. Рассмотрим класс систем с двумя видами доступов read и write (хотя могут быть и другие доступы, но они либо не определяют информационный поток, либо выражаются через write и read). Пусть процесс S в ходе решения своей задачи последовательно обращается к объектам O1, O2,..., Ol (некоторые из них могут возникнуть в ходе решения задачи). Пусть

    Тогда из определения MLS следует, что при выполнении условий


    соответствующие потоки информации, определяемые доступом read, будут идти в разрешенном политикой MLS направлении, а при


    потоки, определяемые доступом write, будут идти в разрешенном направлении. Таким образом, в результате выполнения задачи процессом S, информационные потоки, с ним связанные, удовлетворяют политике MLS. Такого качественного анализа оказывается достаточно, чтобы классифицировать почти все процессы и принять решение о соблюдении или нет политики MLS. Если где-то политика MLS нарушается, то соответственный доступ не разрешается. Причем разрешенность цепочки (1) вовсе не означает, что субъект S не может создать объект O такой, что c(S)>c(O). Однако он не может писать туда информацию. При передаче управления поток информации от процесса S или к нему прерывается (хотя в него другие процессы могут записывать или считывать информацию как в объект). При этом, если правила направления потока при read и write выполняются, то MLS соблюдается, если нет, то соответствующий процесс не получает доступ. Таким образом, мы приходим к управлению потоками через контроль доступов. В результате для определенного класса систем получим конструктивное описание политики MLS.
    Определение. В системе с двумя доступами read и write политика MLS определяется следующими правилами доступа


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

    Если каждый из потоков разрешен, то свойства решетки позволяют утверждать, что разрешен сквозной поток O1-->Ok. Действительно, если информационный поток на каждом шаге разрешен, то


    тогда по свойству транзитивности решетки


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

    и удовлетворяет запрос на запись, если

    Тогда согласно изложенному выше мандатный контроль реализует политику MLS. Однако метки конфиденциальности - это не единственный способ управления информационными потоками в компьютерных системах.
    В системе с многоуровневой политикой безопасности, в которой информационные потоки сведены к доступам, возможны потоки более общего типа из рассмотренных в п. 2, которые могут нарушать политику безопасности MLS. Например, любой информационный поток между несравнимыми узлами решетки или сверху вниз, который существует, но не выражается через доступы read и write, будет нарушать политику безопасности MLS даже при корректной реализации мандатного контроля доступов. В простейшем случае, к которому мы будем апеллировать дальше, если система разделена, по крайней мере, на два уровня High и Low и в системе принята многоуровневая политика безопасности, разрешающая информационные потоки снизу вверх (от Low к High) и запрещающая потоки сверху вниз, то нарушитель может использовать скрытый канал для передачи информации от программно-аппаратного агента в среде High к программно-аппаратному агенту в среде Low. При этом скрытый канал должен защищать нарушителя от системы защиты, поддерживающей многоуровневую политику, основанную на определении потоков через доступы read и write. То есть скрытый канал должен быть невидим монитору обращений, системе аудита, аналитику, исследующему защищенность системы и т.д.
    Потоки в MLS разрешены только между сравнимыми узлами снизу вверх. Данная политика защищает конфиденциальность информации. Точно так же, как многоуровневая политика, определяется политика защиты целостности Байба, только разрешенными в данной политике являются все потоки между сравнимыми узлами, направленные вниз.
    Предположим, что опасности для нарушения секретности не существует, а единственная цель политики безопасности - защита от нарушений целостности информации. Пусть, по-прежнему, в информацию внесена решетка ценностей SС. В этой связи любой информационный поток X-->Y может воздействовать на целостность объекта Y. Если в Y более ценная информация, чем в X, то такой поток при нарушении целостности Y принесет более ощутимый ущерб, чем поток в обратном направлении от более ценного объекта Y к менее ценному X. Байба предложил в качестве политики безопасности для защиты целостности следующее.
    Определение. В политике Байба информационный поток X-->Y разрешен тогда и только тогда, когда

    Можно показать, что в широком классе систем эта политика эквивалентна следующей.
    Определение. Для систем с доступами write и read политика Байба разрешает доступ в следующих случаях:


    Очевидно, что для реализации этой политики также подходит мандатный контроль. Точно так же как и раньше при выполнении мандатного контроля доступов read и write возможно нарушение политики Байба с помощью скрытых каналов (информационных потоков более общего типа).
    Помимо указанных политик следует назвать класс политик защиты связи, в которых информационный поток, передаваемый от отправителя к получателю, не должен быть перехвачен или искажен при различных допущениях относительно возможностей противника по искажению информационных потоков или по перехвату части передаваемой информации, или наоборот, по попыткам вклиниться в передаваемый информационный поток. Сюда следует отнести ряд стеганографических схем, в которых основная задача создать информационный поток, "невидимый" для наблюдателя, с определенным набором возможностей.
    Еще одним примером является ситуация, когда производитель продает пользователю компьютерную систему для обработки данных, при этом производитель встроил программно-аппаратного агента для анализа данных, которые обрабатываются покупателем. Данная система может быть сделана таким образом, что программно-аппаратный агент соответствует уровню High, а легальный вычислительный процесс проходит на уровне Low. Для передачи агентом информации во вне системы необходимо построить скрытый канал между верхним и нижним уровнями с выходом во внешнюю среду (например, в Интернет). Аналогично агент должен получать инструкции с нижнего уровня скрытно, поскольку входные сообщения для легального вычислительного процесса и агента приходят по одному каналу.
    Суммируем кратко выводы этого раздела. Для поддержки политики безопасности используются механизмы защиты, препятствующие нарушению политики безопасности. Одним из способов нарушения политики безопасности является создание скрытых информационных потоков, не выявляемых системами защиты. В случае многоуровневой политики скрытые каналы передают информацию с верхних уровней конфиденциальности на нижний уровень так, чтобы механизмы защиты не могли препятствовать нарушению политики защиты конфиденциальности. В политике Biba скрытый канал с нижнего уровня на верхний может передать команду "Троянскому коню" на уничтожение или модификацию информационных ресурсов, целостность которых защищает данная политика.
    В связи с этим возникла проблема анализа скрытых каналов всюду, где возникают ограничения на информационные потоки. Любой такой анализ предполагает решение четырех взаимосвязанных задач:
    1.Выявление скрытых каналов;
    2.Оценка пропускной способности скрытых каналов и оценка опасности, которую несет их скрытое функционирование;
    3.Выделение сигнала или получение какой-нибудь информации, передаваемой по скрытым каналам;
    4.Противодействие реализации скрытого канала вплоть до его уничтожения.

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

    Традиционно скрытые каналы характеризуются как каналы по памяти или каналы по времени. В работе Кемерера определяются скрытые каналы по памяти как такие каналы, в которых информация передается через доступ отправителя на запись и получателя на чтение к одним и тем же ресурсам или объектам. Скрытый канал по времени характеризуется доступом отправителя и получателя к одному и тому же процессу или изменяемому во времени атрибуту.
    Как и прежде будем полагать, что система разделена, по крайней мере, на два уровня High и Low и в системе принята многоуровневая политика безопасности, разрешающая информационные потоки снизу вверх (от Low к High) и запрещающая потоки сверху вниз. Нарушитель может использовать скрытый канал для передачи информации от программно-аппаратного агента в среде High к программно-аппаратному агенту в среде Low. При этом скрытый канал должен защищать нарушителя от системы защиты, поддерживающей многоуровневую политику.
    Простейшим скрытым каналом по памяти является возможность показа на уровне Low названий директорий и файлов, созданных на уровне High. В данном случае информация может передаваться в именах файлов, которые выбираются в соответствии с заранее условленным кодом, в атрибутах файлов, в которых информация может кодироваться, размерами файлов, датами изменения файлов и т.д. И, наконец, существование файла с данным названием несет бит информации с верхнего уровня на нижний.
    Другим примером канала по памяти является кодирование информации в сохраняемых настройках каких-либо ресурсов общего пользования субъектов уровней High и Low. Настройки, проведенные на уровне High, доступны наблюдению на уровне Low и, следовательно, могут нести информацию, выраженную заранее условленным кодом.
    Скрытые каналы по времени впервые стали серьезно рассматриваться с 1976 г., когда один из создателей защищенной операционной системы Multics Миллен продемонстрировал своим коллегам скрытый канал по времени, реализованный на изолированных машинах High и Low. Обе машины были подсоединены к некоторым общим ресурсам ROM, других каналов или связей между ними не было. В подсистемах High и Low находились "Троянские кони". На уровне High "Троянский конь" при нажатии букв на клавиатуре модулировал специальным кодом интервалы времен занятости библиотеки ROM. Время занятости библиотеки верхним уровнем сканировалось запросами в библиотеку "Троянским конем" нижнего уровня. Получившийся скрытый канал по времени позволял в реальном времени печатать информацию, получаемую через скрытый канал с клавиатуры подсистемы уровня High.
    Рассмотрим еще один пример скрытого канала по времени. Пусть в программно-аппаратной схеме, реализующей интерфейс RS 232 между Low и High, нет передатчика на уровне High и нет приемника на уровне Low. Вместе с тем для передачи байт с нижнего уровня на верхний машина верхнего уровня выставляет сигнал готовности к приему информации. Очередной байт передается только тогда, когда выставлен сигнал готовности приема. Тогда задержка в выставлении сигнала после очередного переданного байта считается таймером на нижнем уровне и может таким образом передавать информацию от программно-аппаратного агента на верхнем уровне к программно-аппаратному агенту на нижнем уровне. Для этого агент на верхнем уровне кодирует сообщение различными по длине интервалами задержки выставления сигнала, а агент на нижнем уровне считывает эти сообщения с помощью таймера.
    Скрытый канал передачи информации через Интернет строится с помощью вписывания сообщения вместо последнего бита оцифрованного изображения, которое передается в качестве легального сообщения. Поскольку последний бит мало влияет на качество изображения, передача информации оказывается скрытой от субъекта, ведущего перехват и допускающего передачу только легальных изображений. Хорошо известен метод борьбы с данным методом стеганографии, заключающийся в изменении формата изображения, например, с помощью компрессии. Данный метод уничтожает скрытый канал указанного вида.
    Еще одним примером скрытого канала в аналогичной задаче является скрытый канал в TCP/IP протоколе. Поле ISN в TCP-протоколе служит для организации связи клиента с удаленным сервером. Размер этого поля 32 бита. Используя это поле в 5 пакетах, было скрытно передано слово Hello.
    Особо следует выделить два примера каналов по времени, использующих возможности изменять длительности занятости в работе центрального процессора. В первом примере отправитель информации меняет время занятости CPU в течение каждого фрагмента времени, выделенного для его работы. Например, для передачи 0 и 1 одна длина промежутка времени кодирует 1, а другая - 0. В другом случае отправитель использует промежутки времени между обращениями к процессору

    модели скрытых каналов и их анализ

    Модели скрытых каналов используются для разработки методов выявления скрытых каналов или, наоборот, для обоснования невозможности выявить подобные каналы. Традиционный метод выявления скрытых каналов опирается на модель зависимости. Как определялось выше зависимости представляют из себя тройки (T, {S}, G), в которых изменение параметра Т определяется изменением исходных параметров {S}, когда логическое выражение G принимает значение истина.
    Пусть в рассмотренном ранее примере скрытого канала при использовании однонаправленного канала RS-232 условие G принимает значение истина, когда при передаче появляется фиксированный байт. В этом случае S есть время задержки выставления сигнала о возможности приема следующего байта. Агент нижнего уровня измеряет время задержки выставления сигнала на таймере Т только тогда, когда передан байт, обращающий логическое выражение G в истину. Поиск данного скрытого канала наблюдателем за временами задержки выставления сигнала значительно сложнее, чем в приведенном ранее примере. Однако статистическими методами сам факт такой передачи можно распознать.
    С методом зависимостей тесно связан метод поиска скрытых каналов на основе матрицы разделяемых ресурсов. В этом методе предполагается, что система полностью описывается переменными a, b, c, d, ... Анализ операций ОР1 проводится в матрице следующим образом. Строчки матрицы соответствуют атрибутам разделяемых ресурсов (в нашем примере a, b, c, d, ...). Столбцы матрицы соответствуют операциям системы (ОР1 в нашем примере). Значения в клетках матрицы соответствуют действиям оператора над соответствующим атрибутом. Тогда матрица в нашем примере примет вид.
    Разделяемый ресурсОР1
    awrite
    bread
    cread
    dread
    Данная матрица показывает потенциальные информационные потоки между переменными. Для анализа таких матриц были созданы пакеты прикладных программ.
    Следующий вопрос, который возникает в таких задачах, можно ли создать "невидимые" для контролирующего субъекта скрытые каналы. В работе А.Грушо доказано, что если противник знает схему контроля в системе защиты, то при выполнении определенных условий возможно построение невидимого для системы защиты срытого канала управления программно-аппаратным агентом в компьютерной среде. При этом "невидимость" понимается в абсолютном смысле, то есть доказывается невозможность выявления такого канала любыми методами и средствами. Аналогично в работе А.Грушо при условии знания противником системы защиты доказывается возможность построения "невидимого" скрытого канала при общении программно-аппаратных агентов в открытой среде между собой. Полученные в этой работе результаты также носят абсолютный характер, то есть доказывается, что скрытый канал невозможно выявить любыми методами и средствами.
    При использовании метода зависимостей следует отметить следующее:

    • Предложенный аппарат и некоторые его реализации (например, метод матриц разделяемых ресурсов (SRM) является конструктивным инструментом поиска скрытых каналов;
    • Не все скрытые каналы могут быть описаны с помощью данного метода.

    В частности, существуют скрытые статистические каналы, которые не выявляются с помощью метода выявления зависимостей. Например, если Т и S связаны между собой статистической зависимостью, то метод зависимостей может не выявить детерминированную связь между этими параметрами. Пусть в рассмотренном ранее примере скрытого канала при однонаправленном интерфейсе RS-232 условие G по-прежнему соответствует появлению в передаче фиксированного байта. В случаях, когда G истина, агент на уровне High генерирует случайную величину с распределением Р1, если он хочет передать вниз единицу. Если агент хочет передать ноль или не передает сообщение вообще, то задержка выставления сигнала происходит в соответствии с распределением Р0. Агент нижнего уровня накапливает средние значения времен задержки только при передаче указанного выше байта. Идентификация единицы или нуля производится агентом нижнего уровня с помощью статистического критерия. При этом контролирующий субъект, наблюдающий за задержками выставляемого сигнала на верхнем уровне, не знает при каком байте происходит изменение распределения времени задержки. Поэтому возможности выявления данного канала контролирующим субъектом значительно ниже возможности агента нижнего уровня распознать передаваемый сигнал. Одной из важнейших задач анализа скрытых каналов является оценка их пропускной способности. Пропускная способность скрытых каналов вычисляется методами теории информации. Часто пропускная способность скрытых каналов измеряется отношением количества скрытно переданной информации к количеству информации в легальном маскирующем скрытую передачу процессе или контейнере. Например в обычном цифровом изображении, содержащем 2,5 мегабит информации, манипуляцией последнего бита безопасно можно передать только 100 бит скрытого сообщения. С другой стороны, скрытый канал потайного копирования интересующего файла на дискету обладает пропускной способностью, равной объему копируемого файла.
    В силу того, что скрытые каналы обладают, как правило, небольшой пропускной способностью, может сложиться мнение, что они не представляют опасности. Часто в таких случаях устанавливается порог на пропускную способность, ниже которого канал считается не опасным. Однако не следует забывать, что оценки пропускной способности, носят асимптотический характер и подход, связанный с ограничением пропускной способности, может оказаться неэффективным в реальных приложениях.

    борьба со скрытыми каналами

    Перехват информации, передаваемой по скрытым каналам, представляет большую сложность. Кажется, что здесь возникают только технологические сложности, связанные с регистрацией и анализом быстро протекающих процессов в компьютерных системах. Вместе с тем доказано, что возможно создание производителем закладок в аппаратных системах, которые могут общаться между собой "невидимо" для большинства средств защиты.
    В случае использования методов стеганографии решение задачи выделения скрытых сообщений представляется более оптимистичным. Примером успешного выявления стеганографических вставок является использование скрытого канала в поле ISN протокола TCP, упоминавшегося выше.
    Наиболее эффективным способом борьбы со скрытыми каналами является их уничтожение. Например, в приведенных выше примерах скрытых каналов спуска информации при использовании интерфейса RS-232 встраивание между уровнями High и Low устройства, транслирующего байты и рандомизирующего задержку выставления сигнала на верхнем уровне, видимую на нижнем уровне, позволяет полностью уничтожить любой детерминированный скрытый канал по времени и существенно испортить скрытый статистический канал. Аналогичные методы успешно используются для защиты от скрытых каналов при скрытой передаче информации через открытые системы.
    К тематике скрытых информационных потоков близко подходит проблема "скрытого влияния". Для пояснения проблемы остановимся на скрытых каналах, которые физически не существуют. Для объяснения этой парадоксальной ситуации рассмотрим двухуровневую систему, в которой уровень High соответствует аналитической подсистеме, вырабатывающей варианты некоторого решения. Уровень Low соответствует подсистеме сбора информации из открытых источников и открытых сетей. Пусть подсистемы Low и High связаны однонаправленным каналом от Low к High, который позволяет реплицировать на верхнем уровне собранные на нижнем уровне данные. Пусть объект Y принадлежит уровню High, а объект X принадлежит уровню Low. Пусть совместное распределение состояний (х, у) объектов Y и Х не равно произведению индуцированных вероятностей РX(х) и РY(у). Тогда, как было отмечено ранее, согласно математической теории связи, от Х к Y существует информационный поток, который измеряется средней взаимной информацией I(X, Y). Но тогда точно такой же информационный поток существует от Y к Х, измеряемый той же величиной. В случае однонаправленного канала такая симметрия имеет очень простую интерпретацию. На нижнем уровне, реплицируя объект Х на верхний уровень, известно, что на верхнем уровне существует объект Y в точности с тем же состоянием, что и Х. Если какой-то объект Z связан с объектом Y на верхнем уровне, и известно, что существует объект с данным видом связи, то естественно возникает информационный поток между Х и Z. Причем этот информационный поток также симметричен, что означает возможность получения некоторой информации об объекте верхнего уровня, не имея физического канала от Z к Х. Для того, чтобы лучше понять суть таких каналов, представим себе, что на верхнем уровне секретное решение принимается с помощью некоторого известного алгоритма только на основании информации, реплицированной с нижнего уровня. Зная это противник на нижнем уровне может из той же информации с помощью того же алгоритма получить точно такое же решение. Для офицера информационной безопасности это значит, что секретная информация верхнего уровня стала известна на нижнем уровне, что можно интерпретировать как существование некоторого скрытого канала, передающего информацию с верхнего уровня на нижний и несанкционированно снижающего гриф информации. Сам факт существования этого канала определяется симметрией информационного потока от объектов нижнего уровня на верхний. В общем случае те же рассуждения приводят нас к тому, что на нижнем уровне становятся известными некоторые вероятностные характеристики решения, принимаемого на верхнем уровне. Таким образом интерпретируется парадоксальный факт существования скрытого канала с верхнего уровня на нижний, хотя физически этот канал не существует. Из указанного примера следует два важных вывода. Первый вывод состоит в том, что многоуровневая политика не является гарантией безопасности, так как секретная информация верхнего уровня может стать известной на нижнем уровне независимо от способа реализации многоуровневой политики. Второй вывод состоит в том, что наиболее общая вероятностная трактовка информационного потока не позволяет просто разделить множество информационных потоков на разрешенные и не разрешенные.

    Елена Тимонина, доцент кафедры математической и программной защиты информации факультета защиты информации РГГУ.

    Польские исследователи предложили новый способ сетевой стеганографии основанный на особенностях работы широко распространенного протокола транспортного уровня 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 соединений, проходящих через провайдера просто огромно. Если знать примерный уровень ретрансмиссии в сети, то можно подстроить механизм стеганографической пересылки так, что ваше соединение ничем не будет отличаться от других.

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



    Рекомендуем почитать

    Наверх