На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Механизм обеспечения замкнутости программной среды

Механизм обеспечения замкнутости программной среды и его роль в системе защиты
Под обеспечением замкнутости программной среды понимается локали­зация прикладных программ для пользователей. Осуществляется это ме­ханизмом управления доступом к исполняемым файлам.
I ,*3 Механизм обеспечения замкнутости программной среды реализован корректно только в том случае, если выполняются требования к полноте управле­ния доступом к исполняемым файлам.
Проиллюстрируем сказанное примером. Например, для ОС Windows NT/2000 могут устанавливаться разграничения на исполнение файлов (запуск про­грамм) с жесткого диска. Однако данные ОС не позволяют управлять
Выводы:
запуском программ с внешних устройств ввода. Поэтому корректно обес­печить замкнутость программной среды, с целью локализации приклад­ных программ для пользователя, возможно лишь при отключении вне­шних устройств ввода.
Таким образом, разграничение доступа на запуск исполняемого файла и обеспечение замкнутости программной среды не одно и то же. Замкну­тость программной среды реализуется посредством механизма управле­ния доступом на запуск к исполняемым файлом, но можно говорить о его реализации в системе лишь при выполнении требований к полноте
подобных разграничений.
Как отмечалось ранее, несмотря на то, что в современных универсальных ОС присутствует механизм управления доступом к запуску процессов, ме­ханизм обеспечения замкнутости программной среды в них не реализован. Это объясняется невыполнением требований к полноте разграничений -для ОС Windows исполняемый файл может быть запущен с внешнего уст­ройства ввода, например, посредством дискеты. В ОС семейства UNIX не­возможно установить атрибут «исполнение» на каталог (под этим атрибу­том для каталога подразумевается «обзор»), т.е. невозможно запретить запуск из каталога. При этом (этот вопрос ранее рассматривался) пользователь сам может присвоить атрибут создаваемому им файлу, т.е. пользователь может
записать в свой каталог исполняемый файл, установить на него для себя
право исполнения, затем запустить данный файл.
Обеспечение замкнутости программной среды -- это важнейший меха­низм противодействия организации пользователем скрытых каналов до­ступа к ресурсам защищаемого объекта. Целью применения механизма является предоставление пользователям возможности запускать только санкционированные программы из заданных для них списков. При этом предотвращается возможность запуска пользователем собственной про­граммы, которая может содержать скрытый канал доступа к ресурсам. Без реализации данного механизма в системе защиты вообще не приходится говорить о какой-либо защищенности объекта [11, 12, 19].
В общем случае механизм обеспечения замкнутости программной среды предназначен для локализации программного обеспечения на компью­тере (системного, функционального и прикладного ПО) и обеспечение
невозможности запуска пользователем несанкционированного процесса
(программы). Благодаря этому обеспечивается то, что пользователь мо­жет работать на компьютере только жестко в рамках своих функциональ­ных обязанностей и инструкций, т.е. в границах списка санкционирован­ных действий. К этой же задаче относится защита от проникновения (прежде всего из сети) и запуска на компьютере деструктивных программ (троянов, программ sniffer клавиатуры и канала, программ взлома или под­бора паролей, программ перепрограммирования BIOS, инструментальных средств и т.д.).
Если вернуться к рассмотрению существующей статистики угроз (приве­денной в п. 2.2), то можем сделать вывод, что подавляющая их часть тре­бовала от пользователя запуска программного средства, реализующего дан­ные угрозы. Таким образом, путем предотвращения возможности запуска пользователем собственных программ злоумышленник лишается собствен­но инструментария взлома. При этом неважно, о какой угрозе, о какой цели и способе атаки идет речь. Поэтому данный механизм позициони­руется нами как основной механизм защиты, позволяющий противодей­ствовать скрытым угрозам НСД к информации.
Ранее нами отмечалось, что защита информации — это комплексная за­дача, решение которой достигается реализацией совокупности механизмов
защиты и что невозможно рассматривать механизм защиты в отдельнос­ти, т.к. найдутся угрозы данному механизму, которые должны предотвра­щаться другими механизмами. Рассмотрим иную сторону этой проблемы, когда использование в системе защиты одного механизма может принци­пиально изменить требование к другим механизмам.
С учетом применения механизма обеспечения замкнутости программной среды могут существенно снижаться требования к реализации других механизмов защиты. Рассмотрим пример.
Ввиду того, что при удалении информации с диска осуществляется лишь переразметка диска, а собственно информация на нем остается, появля­ется скрытый канал в виде возможности несанкционированного доступа
к остаточной информации на диске. Данный канал может быть устра­нен, если реализовать механизм гарантированного удаления информации,
который будет заключаться:
В перехвате обращения приложения к ядру ОС «на удаление» объекта.
2. В записи в объект маскирующей информации (осуществляется N — кратная запись «О» и «1»).
3. В передаче ядру ОС запрос «на удаление» объекта.
При этом остаточной информации на диске не остается. Реализация дан­ного механизма защиты связана с существенными потерями производи­тельности защищаемого объекта. Остаточная информация также может
оставаться в оперативной памяти после завершения процесса (если ОС или приложение не осуществляет ее очистку).
Однако стандартным приложением прочитать остаточную информацию не представляется возможным, для этого нужны специальные програм­мы, запуск которых на компьютере предотвращается механизмом обес­печения замкнутости программной среды. Таким образом, прочитать
остаточную информацию без запуска несанкционированнорго процесса на защищенном компьютере становится невозможно. Остается только одна возможность ее прочтения — это удалить с компьютера жесткий диск и считать информацию с него на другом компьютере. Но если такое воз-
можно, то оберегать уже следует не остаточную, а актуальную информа­цию на диске, для чего, в рассматриваемых предположениях, должны применяться криптографические методы защиты информации на диске. Сказанное в полной мере относится и к защите оперативной памяти. Вместе с тем, учитывая, что критичной ситуацией здесь является запуск несанкционированного процесса пользователем, механизм очистки памя­ти, на наш взгляд, следует запускать в качестве реакции на обнаружение запущенного несанкционированного процесса. Механизм, реализующий данную возможность, рассматривается в следующей главе.
Могут быть приведены и иные примеры, когда использование в системе
механизма обеспечения замкнутости программной среды либо делает необязательными целый ряд других механизмов защиты, либо существен­но изменяются требования к решаемым ими задачам.
Таким образом, можно сделать следующий вывод: механизм обеспечения замкнутости программной среды важнейший механизм, который обяза­тельно должен присутствовать в системе защиты, т.к. этот механизм мож­но позиционировать, как основной механизм противодействия скрытым уг­розам (возможности реализации неизвестной угрозы, присутсвующей в
несанкционированной пользовательской программе).
Ввиду того, что данный механизм не имеет корректной реализации в современных ОС, его следует реализовать добавочными средствами за­щиты информации. В противном случае невозможно говорить о возмож­ности противодействия скрытым угрозам в принципе.
Механизм обеспечения замкнутости программной среды может быть ре­ализован двумя способами:
» в виде задания списков исполняемых файлов; * в виде задания каталогов исполняемых файлов.
Рассмотрению и анализу обоих этих подходов посвящен следующий раз­дел книги.
Реализация механизма обеспечения замкнутости программной среды
Посредством задания списков исполняемых файлов
Данный механизм состоит в задании для каждого пользователя списка про­цессов (исполняемых файлов), которые ему разрешено запускать. Коррект­ность функционирования механизма связана с предотвращением явных и скрытых каналов модификации списка санкционированных исполняемых файлов, а также запуска исполняемых файлов, не вошедших в список.
Примечание
I 'При данном походе объект доступа в матрице доступа к исполняемым фай­лам представляет собой список исполняемых файлов.
Требования к корректности функционирования механизма обеспечения замкнутости программной среды таковы |30|:
» исполняемый файл должен быть задан с указанием его полного пути, что предотвращает возможность запуска несанкционированого процес­са с таким же именем из другого места. При этом пользователю дол­жен быть запрещен запуск программ с внешних устройств ввода (ло­кальных и общих — разделяемых в сети), а также из общих папок (разделяемых в сети файловых объектов), т.к. иначе невозможно про­тиводействовать запуску несанкционированной программы пользова­теля с полнопутевым именем легальной программы;
* пользователю должен быть задан список санкционированных для его запуска исполняемых файлов, к которым ему должен быть разрешен доступ «на исполнение». Ко всем другим файловым объектам пользо­вателю должен быть запрещен доступ «на исполнение»;
* пользователю должен быть запрещен доступ «на запись» и «модифика­цию» к исполняемым файлам. В противном случае он сможет подме­нить санкционированный файл другого пользователя. Особенно это критично по отношению к системным процессам, поскольку нельзя допускать, чтобы пользователь мог подменить его собственным несанк­ционированным процессом. Из сказанного следует, что механизм обес­печения замкнутости программной среды не может быть корректно реализован без запрета доступа «на запись» и «на модификацию» к системному диску и без возможности управлять доступом на исполне­ние программ с устройств ввода, с разделяемых в сети ресурсов (уст­ройств и файловых объектов).
Рассмотренный подход интуитивно понятен, но имеет существенные недо­статки. Главным из них является необходимость перечислять в списках все процессы, разрешенные к запуску пользователем, в том числе и процессы, порождаемые уже разрешенными процессами. Из-за этого списки разрешен­ных процессов становятся очень громоздкими, существенно снижается про­изводительность системы за счет больших затрат времени на анализ таких
списков при каждом обращении к объекту файловой системы
Сильно усложняется администрирование подобной системы так как администратору приходится составлять такие списки для каждого пользователя, а при добавлении новых программ изменять списки у каж­дого пользователя. Соответственно, при удалении некоторой программы приходится удалять из множества списков не только саму программу, но
и все процессы, порождаемые удаляемой программой. Кроме того, воз­никает проблема, связанная с необходимостью введения в список разре-
шеи пых некоторому пользователю процессов отладочных и иных про­грамм, которые необходимо запускать эксплуатационным службам при работе этого пользователя в системе. С другой стороны, необходимо ис­ключить возможность прямого запуска этих отладочных профамм несан­кционированным пользователем.
Посредством каталогов исполняемых файлов
Обеспечить замкнутость программной среды можно не непосредственно заданием списков разрешенных к запуску процессов, а областью диско­вого пространства (каталогом), откуда пользователю можно запускать процессы. То есть пользователю можно разрешать/запрещать не что за­пускать, а откуда запускать. Другими словами, для каждого пользователя может быть выделен каталог, только из которого ему будет дозволено запускать программы. На этот каталог должно быть установлено право «Исполнение» для пользователя. Причем в данный каталог ему должен быть запрещен доступ «на запись» и «на модификацию», с целью пре­дотвращения возможности внесения в данный каталог других, не разре­шенных к запуску программ, а также с целью предотвращения возмож­ности модификации расположенных в каталоге программ.
При этом из всех остальных каталогов (а также с устройств ввода), кро­ме системного, пользователю должен быть запрещен запуск программ. Кроме того, пользователю должен быть запрещен доступ «на запись» и «на модификацию» в системный каталог. Это необходимо с целью пре­дотвращения возможности модификации системного каталога — занесе­ния в него несанкционированных процессов).
Список разрешенных к запуску профамм (не процессов) определяется набором профамм, инсталлированных администратором безопасности в
каталог, откуда пользователю разрешен их запуск.
Можем сформулировать следующие требования к корректности функци­онирования рассматриваемого механизма:
« для пользователя должен быть задан каталог, откуда ему разрешено запускать программы. На доступ к этому каталогу пользователю дол­жно быть установлено право «Исполнение», а доступ «на запись» и
«на модификацию» должен быть запрещен;
* в этот выделенный каталог администратором должны быть инсталли­рованы профаммы, разрешенные пользователю для запуска;
» ко всем остальным каталогам, а также к усфойствам (дисководу, CD-
ROM и т.д.), разделяемым сетевым ресурсам пользователю должен
быть запрещен доступ «Исполнение»;
* к системному диску, а также к каталогам с исполняемыми файлами остальных пользователей, пользователю должен быть запрещен дос­туп «на запись» и «на модификацию».
239
Часть IV. Управление доступом к ресурсам
Достоинством рассмотренного здесь механизма является серьезное упро­щение его администрирования, т.к. исключается необходимость перечис­ления всех процессов, которые запускает программа, при разрешении ее запуска пользователем (при установке и удалении программы из списка разрешенных к запуску). Кроме того, в предыдущей реализации механизма обеспечения замкнутости программной среды необходимость подобного перечисления могла привести к тупикам. Например, программе для ра­боты может потребоваться некоторый процесс, а разрешать запускать этот процесс пользователю нельзя.
3 приведена схема обработки запроса доступа к объекту, реа­лизуемая диспетчером доступа в КСЗИ «Панцирь» с целью обеспечения замкнутости программной среды [31].
Работает система обеспечения замкнутости программной среды следующим
образом. С входа/выхода 4 производится авторизация пользователя (иден­тификация и аутентификация) при входе в систему. В случае, если ему разрешен вход в систему, то его имя через вход 2.6 поступает на вход бло­ков 2.2. и 2.4. В противном случае блоком 1 со входа/выхода 4 пользова­тель извещается об отсутствии у него прав на доступ в систему.
После получения доступа в систему, при обращении к файлу запрос на доступ к файлу со входа 5 поступает через вход 2.7 в блок 2.1. Запрос
содержит: имя процесса, обращающегося к файлу, полный путь распо­ложения файла в блоке 3, команду над файлом (чтение, запись и т.д.).
Данный запрос анализируется блоком 2.1, который выявляет, является ли этот запрос от системного или пользовательского процесса.
Если запрос от системного процесса, то он транслируется с первого вы­хода блока 2.1 в блок 2.5, которым далее выдается в блок 3 (запрос по­ступает в обход блока 2.2). Если выявлен запрос от пользовательского про­цесса, то он транслируется в блок 2.2 (со второго выхода блока 2.1), где для каждого пользователя (по его имени) содержится матрица его прав доступа (полные пути к каталогам и файлам, к которым пользователь
может обращаться, и команды (например, только чтение), которые
пользователь может производить над файлами).
Матрица прав доступа задается администратором безопасности (после его авторизации в блоке 1) со входа 6 через вход 2.8. В случае, если запрос пользователя удовлетворяет разфаничениям, хранящимся для него в блоке 2.2, то блоком 2.2 этот запрос транслируется в блок 2.3. Блок 2.3 анали­зирует расширение файла, к которому обращается пользователь, с целью определения, является ли этот файл исполняемым (программой), если имеет расширения, например, .com, .ехе, либо данными, например, рас­ширения .doc, .rtf, .txt.
Если пользователь обращается к данным, то его запрос блоком 2.3 транс­лируется в блок 3. Если запрос не удовлетворяет требованиям разграни­чений в блоке 2.2, запрос блоком 2.2 не пропускается — игнорируется си­стемой. Если блоком 2.3 выявляется, что пользователь обращается в программе в рамках общих разграничений к каталогам и файлам в блоке 2.2, то запрос им транслируется в блок 2.4 (в блок 2.5 не поступает).
В блоке 2.4 каждого пользователя (по его имени) содержится матрица его прав доступа к запускаемым программам (полные пути к каталогам и фай­лам к которым пользователь может обращаться и команды (например, толь­ко чтение), которые пользователь может производить над исполняемыми файлами). Например, здесь задаются разграничения доступа к каталогам, из которых пользователь может запускать программы (обращаться «на чте­ние» к исполняемым файлам). В частности, пользователю может быть за­дан режим запуска профамм только из системного диска, тогда все зап­росы, поступающие в блок 2.4 будут им игнорированы. Может быть запрещена запись программ (исполняемых файлов) в пользовательские каталоги и т.д. Матрица прав доступа к запуску профамм также задается администратором безопасности (после его авторизации в блоке 1) со вхо­да 6 через вход 2.8.
Если запрос пользователя удовлетворяет разграничениям в блоке 2.4, то его запрос через блок 2.5 в блок 3. Если запрос не удовлетворяет требо­ваниям разграничений в блоке 2.4, запрос блоком 2.4 не пропускается -игнорируется системой.
При всех достоинствах данного подхода он не может быть использован в том случае, если приложение при инсталляции должно размещать ис­полняемые и конфигурационные файлы (куда необходимо разрешить
запись) в одном каталоге. В этом случае невозможно на данный каталог
установить атрибут «исполнение», не установив атрибута «запись», что противоречит самой концепции реализации механизма защиты.
Расширение возможностей механизма обеспечения замкнутости программной среды
Расширение возможностей механизма защиты обеспечения замкнутости
программной среды состоит в том, чтобы и в качестве субъекта доступа, и
в качестве объекта доступа рассматривать «ПРОЦЕСС». В этом случае можно разграничивать права доступа для процессов на запуск процессов, т.е. мож­но обепечивать замкнутость программной среды не на уровне списков сан­кционированных процессов (разрешения запуска пользователем отдельных программ), а уже на уровне последовательностей запуска процессов (техно­логий обработки данных). Другими словами, можно задавать последователь­ности обработки — каким процессом какой процесс может быть запущен.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика