<<
>>

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

Даже при наличии списков управления доступом и мандатов в системе безопасности могут существовать бреши. В данном разделе мы поговорим о существовании утечек информации в системах, для которых строго математически доказано, что подобные утечки невозможны.
Изложенные здесь идеи впервые высказаны в [72].

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

Третий процесс, являясь сообщником сервера, намеревается украсть конфиденциальные сведения клиента. Владельцем этого процесса, как и сервера, обычно является один и тот же человек. Все три процесса показаны на рис. 5.27. Цель данной модели — помочь разработать систему, в которой невозможна утечка к сообщнику сервера информации, полученной сервером у клиента. В [72] это названо проблемой изоляции.

Рис. 5.27. Проблема изоляции: а — клиент, сервер и сообщник сервера; б — даже от изолированного сервера информация может попасть к сообщнику по секретному каналу

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

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

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

Сообщник может принимать этот поток, тщательно отслеживая время отклика сервера. Как правило, время отклика меньше у простаивающего сервера, то есть меньшее время отклика означает ноль, большее — единицу. Этот канал связи называется секретным. Он показан на рис. 5.27, б.

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

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

Модуляция центрального процессора не является единственным вариантом секретного канала. Информация может также кодироваться ошибками отсутствия страниц, например, много ошибок отсутствия страниц в течение определенного интервала времени будет означать 1, а отсутствие ошибок — 0. В принципе для этой цели подойдет любой способ снижения производительности системы в течение определенного интервала времени. Если система позволяет блокировать файлы, тогда сервер может блокировать некий файл, что будет означать, например, 1, и разблокировать его, кодируя, таким образом, 0. Некоторые системы позволяют процессу определить, что файл блокирован, даже если у него нет доступа к этому файлу.

Такой секретный канал представлен на рис. 5.28, где блокировка файла устанавливается и снимается через определенные интервалы времени, известные серверу и его сообщнику. В проиллюстрированном примере по секретному битовому потоку передается последовательность 11010100.

Блокировка и разблокировка предопределенного файла S не является слишком зашумленным каналом, однако требует точного согласования по времени, если только передача не ведется очень медленно. Надежность и производительность можно повысить, введя протокол с подтверждениями. В этом протоколе используются два дополнительных файла F1 и F2, блокируемых соответственно сервером и его сообщником с целью синхронизации. После блокировки или разблокировки файла S сервер инвертирует состояние файла F1, показывая, что бит передан. Считав бит, сообщник инвертирует состояние файла F2, информируя сервер о том, что готов к приему следующего бита. Затем он ждет инвертирования F1, которое укажет ему на присутствие очередного бита в S. Поскольку согласование по времени больше не нужно, протокол является абсолютно надежным даже в загруженной системе. Скорость его работы определяется скоростью планирования двух процессов. Чтобы повысить ее, можно использовать два файла в одном битовом интервале или увеличить ширину канала до байта, введя 8 сигнальных файлов S0-S7.

Для передачи скрытых сигналов также применимы захват и освобождение внешних ресурсов (например, магнитофонов, плоттеров и т. д.). В системе UNIX сервер может создавать файл, что будет означать 1, и удалять его, передавая 0. Сообщник может проверять наличие файла при помощи системного вызова access. Этот системный вызов будет работать, даже если у сообщника нет доступа к создаваемому сервером файлу. К сожалению, помимо таких «семафоров» существует множество других возможностей для создания секретного канала.

В [72] также упомянуто о еще одном возможном потайном канале связи, но уже между сервером и человеком. Например, сервер может сообщать, сколько работы он сделал для клиента, выставляя ему счет. Если такой счет составляет 100 долларов, а доход клиента равен 53 000 долларов, то сервер может сообщить об этом в виде счета в 100,53 доллара.

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

5.6.

<< | >>
Источник: Э. ТАНЕНБАУМ, А. ВУДХАЛЛ. ОПЕРАЦИОННЫЕ СИСТЕМЫ Разработка и реализация 3-е издание. 2007

Еще по теме Секретные каналы:

  1. 9.13. Передне-срединный канал, VC (фр.), круглосуточно, канал "инь"
  2. 9.2. Канал толстой кишки, GI (франц.), 5-7 час., канал "ян"
  3. 9.6. Канал тонкой кишки, IG (фр.), 13-15 час., канал "ян"
  4. 9.4. Канал селезенки-поджелудочной железы, RP, 9-11 час., канал "ян"
  5. Рекомендации Крайона Магнитному Каналу и всем каналам Духа
  6. 9.8. Канал почек, R (фр.), 17-19 час., канал "инь"
  7. 9.12. Канал печени, F (фр.), 1-3 час., канал "инь"
  8. 9.14. Задне-срединный канал, VG, (фр.), круглосуточно, канал "ян"
  9. 4. Особенности использования секретных изобретений
  10. 15.3.2. Секретное оружие
  11. 9. Особенности правовой охраны секретных изобретений
  12. Статья 1249. Удостоверение нотариусом секретных завещаний