Инструмент системного аудита

 

Вопросы информационной безопасности не могут успешно решаться, если нет средств контроля за про­исходящими событиями, поскольку только имея хро­нологическую запись всех производимых пользовате­лями действий, можно оперативно выявлять случаи нарушения режима информационной безопасности, определять причины нарушения, а также находить и устранять потенциально слабые места в системе безо­пасности. Аудит (auditing) — это запись определенных событий в журнал безопасности (security log). Кроме того, наличие аудита в системе игра­ет роль сдерживающего фактора: зная, что действия фиксируются, многие злоумышленники не рискуют совершать заведомо наказуемых действий.

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

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

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

 

Доступность данных

 

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

Средством повышения производительности и на­дежности дисковых систем является использование избыточных массивов RAID разных уровней. RAID (Redundant Arrays of Independent Discs) – это избыточный массив независимых дисков, на который возлагается задача обеспечения отказоустойчивости и повышения производи-тельности. Для реа­лизации технологии RAID создается псевдодрайвер, который помещается между пользовательскими прило­жениями и драйверами дисковых подсистем. Псевдо­драйвер принимает пользовательские запросы на ввод/вывод и прозрачным для приложений образом переад­ресует их реальным устройствам. С точки зрения пользователя, происходит увеличение скорости и на­дежности работы дисков без каких-либо аппаратных модификаций.

Увеличение надежности — одна из основных со­ставляющих обеспечения доступности информацион­ных ресурсов. Другой составляющей является система­тическое резервное копирование программ и данных с целью минимизации ущерба при возможных сбоях. Эта задача становится достаточно сложной в условиях ра­боты с распределенными ресурсами сети.

Ядро безопасности (ЯБ) ОС — набор про­грамм, управляющих частями операционной системы, ответственными за безопасность. ЯБ реа­лизует политику обеспечения безопасно­сти операционной системы. Данная политика состоит из множества правил надзора и охраны вза­имодействий между субъектами (процессы) и объектами (файлы, устройства, ре­сурсы межпроцессорного взаимодействия).

ЯБ выделяет два типа полномочий: полномочия ядра и полномочия подсистем.

Полномочия – право субъекта (терминала, программы, системы) осуществлять те или иные процедуры над защищенными объектами (файлами, устройствами, ресурсами).

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

Полномочия подсистем ассоциируются с пользова­телями. Они позволяют пользователю выполнять опре­деленное действие посредством команд, отнесенных к подсистеме.

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

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

 

Домены защиты

 

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

У каждого объекта есть уникальное имя, по которому к нему можно обращаться, и набор операций, которые могут выполнять с объектом процессы. Так, с файлом мо­гут выполняться операции read и write.

Очевидно, что для ограничения доступа к объектам требуется определенный механизм. Более того, этот механизм должен предоставлять возможность не пол­ного запрета доступа, а ограничения в пределах подмножества разрешенных опе­раций. Например, процессу А может быть разрешено читать, но не писать файл F.

Чтобы обсудить различные механизмы защиты, полезно ввести концепцию до­мена. Домен – множество пар “объект – права доступа”. Каждая пара указывает объект и некоторое подмножество операций, которые могут быть с ним выполнены. Права доступа означают в данном контексте разрешение вы­полнить одну из операций. Домен может соответствовать одному пользователю или группе пользователей.

На рис. 1 показаны три домена, содержащие объекты и разрешения [RWX — Read, Write, eXecute — чтение, запись выполнение] для каждого объекта. Обратите внимание на то, что объект Принтер 1 одновременно присутствует в двух доменах. Хотя это и не изображено в данном примере, один и тот же объект может иметь в раз­личных доменах разные разрешения.

 

Рис. 1. Три домена защиты

 

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

Важным вопросом является то, как система отслеживает, какой объект какому домену принадлежит. Можно себе представить большую матрицу, в которой ря­дами являются домены, а колонками — объекты. На пересечении располагаются ячейки, содержащие права доступа для данного домена к данному объекту. Пример такой мат­рицы показан в табл. 1. При наличии подобной матрицы опера­ционная система может для каждого домена определить разрешения к любому за­данному объекту.

 

Таблица 1

Матрица защиты

 

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

 

Таблица 2

Матрица защиты с доменами объектов