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

Данный механизм состоит в задании для каждого пользователя списка процессов (исполняемых файлов), которые ему разрешено запускать. Корректность функционирования механизма связана с предотвращением явных и скрытых каналов модификации списка санкционированных исполняемых файлов, а также запуска исполняемых файлов, не вошедших в список. При данном походе объект доступа в матрице доступа к исполняемым фай лам представляет собой список исполняемых файлов. Требования к корректности функционирования механизма обеспечения замкнутости программной среды таковы [30]: » исполняемый файл должен быть задан с указанием его полного пути, что предотвращает возможность запуска несанкционированого процесса с таким же именем из другого места. При этом пользователю должен быть запрещен запуск программ с внешних устройств ввода (локальных и общих — разделяемых в сети), а также из общих папок (разделяемых в сети файловых объектов), т.к. иначе невозможно противодействовать запуску несанкционированной программы пользователя с полнопутевым именем легальной программы;

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

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

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

Посредством каталогов исполняемых файлов

Обеспечить замкнутость программной среды можно не непосредственнозаданием списков разрешенных к запуску процессов, а областью дискового пространства (каталогом), откуда пользователю можно запускатьпроцессы. То есть пользователю можно разрешать/запрещать не что запускать, а откуда запускать. Другими словами, для каждого пользователяможет быть выделен каталог, только из которого ему будет дозволенозапускать программы. На этот каталог должно быть установлено право«Исполнение» для пользователя. Причем в данный каталог ему долженбыть запрещен доступ «на запись» и «на модификацию», с целью предотвращения возможности внесения в данный каталог других, не разрешенных к запуску программ, а также с целью предотвращения возможности модификации расположенных в каталоге программ.При этом из всех остальных каталогов (а также с устройств ввода), кроме системного, пользователю должен быть запрещен запуск программ.Кроме того, пользователю должен быть запрещен доступ «на запись» и«на модификацию» в системный каталог. Это необходимо с целью предотвращения возможности модификации системного каталога — занесения в него несанкционированных процессов).Список разрешенных к запуску профамм (не процессов) определяетсянабором профамм, инсталлированных администратором безопасности вкаталог, откуда пользователю разрешен их запуск [11, 12, 19].Можем сформулировать следующие требования к корректности функционирования рассматриваемого механизма:* для пользователя должен быть задан каталог, откуда ему разрешено запускать профаммы. На доступ к этому каталогу пользователю должно быть установлено право «Исполнение», а доступ «на запись» и «на модификацию» должен быть запрещен;

* в этот выделенный каталог администратором должны быть инсталлированы профаммы, разрешенные пользователю для запуска;

* ко всем остальным каталогам, а также к усфойствам (дисководу, CDROM и т.д.), разделяемым сетевым ресурсам пользователю должен быть запрещен доступ «Исполнение»;

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

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