Информационная безопасность Модели управления доступом Разграничение доступа Глобальные сети Средства анализа и управления сетями Примеры скриптов на JavaScript Примеры программирования на Java

Информационная безопасность

Локализация прав доступа стандартных приложений к ресурсам

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

Локализация прав доступа к ресурсам виртуальных машин

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

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

Серьезные проблемы безопасности, связанные с защитой от несанкционированных действий виртуальных машин, вызваны тем, что виртуальная машина «видна» только именем своего исполняемого файла (например, winword.exe) или процессом внешнего интерпретатора команд (если интерпретатор команд не встроен в приложение). При этом машина имеет встроенные средства программирования, например, VBA для создания макросов в редакторе Word и других офисных приложениях.

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

Настройкой прав доступа виртуальных машин (процесса виртуальной машины, либо процесса внешнего интерпретатора команд) к различным частям файловой системы можно создать некоторую «рабочую область» для данной виртуальной машины (например, каталог), вне которой она не сможет что- либо изменять. Сделать это возможно благодаря средствам разграничения доступа для субъекта «ПРОЦЕСС». При этом для виртуальных машин, доступ которых к ресурсам следует разграничивать отдельно, можно:

* предотвратить запуск каких-либо программ, установленных на компьютере (если запретить к ним доступ виртуальной машины); » предотвратить доступ к настроечным и критичным файлам данных, располагающемся на компьютере (в том числе к системному диску). Таким образом, можно минимизировать возможный ущерб от скрытых каналов доступа к ресурсам, которые априори могут быть организованы средствами программирования виртуальной машины [19]. Решение данной задачи является весьма существенным моментом в рамках реализации механизма обеспечения замкнутости программной среды.

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

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

Потратить 10 млн долл. на разработку и изготовление специализированного криптоаналитического суперкомпьютера? Ну уж нет! Лучше за 1000 долл. подкупить шифровальщика, который будет регулярно передавать ключи к шифру. А если бюджет позволяет, то за миллион долларов можно накупить этих ключей на много-много лет вперед. Американский военнослужащий Джон Уокер, к примеру, годами снабжал советскую разведку ключами к шифрам ВМС США, что позволило КГБ прочесть огромное количество американских шифровок. Ну а за несколько миллионов долларов доставать где-то ключи, чтобы потом с их помощью читать шифрованные сообщения, нет нужды и вовсе. За такие огромные деньги лучше сразу приобрести открытые тексты этих сообщений. Например, всего 2 млн долларов понадобилось советской разведке, чтобы купить высокопоставленного сотрудника американской контрразведки Олдрича Эймса вместе с женой.

Ну а если из бюджета не удается выкроить нужную сумму на подкуп, то можно воспользоваться другими методами. Человек слаб: его можно напоить, усыпить или просто оглушить тяжелым предметом, чтобы выкрасть криптографические ключи. Его можно также соблазнить. Морские пехотинцы, охранявшие американское посольство в Москве, по просьбе своих русских любовниц пропускали в шифровальный отсек посольства сотрудников КГБ — на “экскурсию”.

Это значит, что криптографические ключи нуждаются в такой же защите, как и сами данные, которые шифруются с их помощью. К сожалению, во многих коммерческих средствах шифрования часто считается достаточным провозгласить об использовании DES-алгоритма или другого достаточно стойкого шифра, а о генерации и хранении ключей к ним не говорить ни слова. Например, программа DiskLock (версия 2.1) для персонального компьютера Macintosh позволяет шифровать файлы по DES-алгоритму. Однако ключ, использованный этой программой для зашифрования, она сохраняет на носителе информации вместе с файлом. Зная, где лежит ключ, его можно оттуда извлечь и затем без особых хлопот прочесть с помощью этого ключа содержимое зашифрованного файла. В данном случае совершенно неважно, что сам алгоритм шифрования достаточно надежен. Имеет значение только то, что его реализация абсолютно никуда не годится.

Генерация случайных и псевдослучайных последовательностей

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

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

Общие принципы построения вычислительных сетей