Автор работы: Пользователь скрыл имя, 20 Февраля 2011 в 14:59, курс лекций
Программные и аппаратные механизмы защиты
Планирование задач может быть двух типов.
Во втором случае, выполнение задачи может быть прервано только по инициативе самой задачи. Задача, выполнив необходимые действия, должна самостоятельно прервать свое выполнение (Win 3.1). Здесь пока задача не завершила обработку сообщения, другие задачи не могут получить управления. Если задача зациклилась, то другие задачи никогда не получат управления – ОС зависает. Вывести из строя такую ОС можно просто написав пустой цикл. Обычно ОС с не вытесняющим планированием содержат спец. средства аварийного завершения задач в экстренных случаях, но эти средства никогда не работают достаточно надежно.
При планировании задач с вытеснением, выполнение любой задачи может быть прервано в любой момент. Это реализуется, как правило, с помощью специальных функций процессора. На программном уровне это реализовано в OS/2 и данная реализация негативно сказывается на производительности ОС.
Основная
угроза подсистеме планирования задач
заключается в том, что злоумышленник
может приостановить или
Обеспечение корректности совместного доступа к объектам
В
процессе функционирования многозадачной
ОС часто возникает ситуация, когда
две или более задач
В данном случае, если какая-то задача изменяет данные, то доступ к этим данным должен быть запрещен другим задачам. Единственное исключение – все задачи, изменяющие один и тот же объект открывают его в режиме, допускающем совместное изменение данных. Открывая объект таким образом, задача тем самым заявляет ОС, что она полностью берет на себя ответственность за все действия, связанные с обеспечением корректности совместного доступа к данным.
Предотвращение тупиковых ситуаций
Тупиковая ситуация может возникнуть тогда, когда несколько программ одновременно пытаются открыть несколько одних и тех же объектов в режиме монопольного доступа. Если одна программа открыла одну часть объектов, а другая – другую, то ни одна из программ сможет открыть остальные объекты до тех пор, пока другая программа их не закроет. Если функции закрытия объектов не предусмотрены ни в одной из программ, ситуация становится тупиковой – каждая программа ждет, пока другая закроет открытые ею объекты.
Один из методов борьбы с тупиковыми ситуациями состоит в следующем: если программа для выполнения некоторой операции должна открыть в монопольном режиме несколько объектов ОС, но не смогла этого сделать, так как некоторые из этих объектов уже открыты в монопольном режиме другой программой, то она должна закрыть все уже открытые объекты, подождать некоторое время и повторить операцию сначала. Наилучшие результаты – если время ожидания случайно.
Уровни привелигированности
Для
реализации защитных механизмов на Intel
могут использоваться уровни привилегированности.
Уровень привилегированности - это
числовой идентификатор, принимающий
значения от 0 до 3, который определяет
возможности задачи выполнять команды
процессора, модифицировать регистры
и области ОЗУ и т.д. Чем меньше идентификатор
уровня, тем более полный доступ имеет
задача к аппаратным возможностям процессора.
Множество задач, обладающих некоторым
конкретным уровнем привилегированности-
кольцо защиты. Например, если программа
имеет уровень 3, то третье кольцо. Обычно
код программы – в третьем кольце, а код
ОС – в нулевом. Первое и второе – редко
(OS/2). RISC – 2 кольца.
Лекция № 17
Защищенные механизмы в NT
Ядро и драйверы устройств в NT – в нулевом кольце, весь остальной код ОС и программы – в третьем. 1 и 2 - не используются.
Планирование задач
Каждый поток может находиться в одном из трех состояний –
Многозадачность – вытесняющая. Для вытеснения – аппаратное прерывание от таймера.
Каждый поток имеет приоритет – от 1 до 31. Чем выше приоритет, тем больше шансы у процесса получить квант времени. Для присвоения потокам приоритетов в NT применяется двухступенчатая система – абсолютный приоритет потока вычисляется на основе
Каждый
процесс имеет базовый
Обычно хранители экрана – фоновый класс приоритета, прикладные программы – нормальный класс и системные процессы – высокий. Реальное время – редко.
Относительные приоритеты могут быть следующими:
В NT поддерживается временное повышение приоритета, для потоков, которые долгое время ожидают сигнала от медленнодействующих устройств (FD, Modem).
Обеспечение корректности совместного доступа к объектам.
В NT одновременный доступ нескольких процессов к одному объекту разрешается только в том случае, когда все процессы открывают объект для чтения.
Исключение составляют только объекты типа файл, которые можно открывать в режиме совместной записи. В режиме совместной записи файл должны открывать все процессы. Каждый процесс при записи/чтении должен заблокировать соответствующий участок файла.
Для обеспечения корректности совместного доступа к данным, не являющимся объектами ОС, в NT применяются мьютексы, критические секции и семафоры.
Мьютексы
Мьютекс представляет собой объект файловой системы, который может быть либо свободным, либо принадлежать одному из потоков ОС. Два потока не могут одновременно владеть одним и тем же мьютексом. NT поддерживает функции, которые позволяют создать мьютекс либо освободить его. Каждый поток, перед тем, как обратиться к совместно используемым данным, пытается завладеть мьютексом. Если мьютекс в настоящее время занят, поток ждет его освобождения. Если несколько запросов на захват - то в порядке очереди вне зависимости от приоритета. Мьютекссы могут эффективно использоваться для организации совместного доступа к оперативной памяти, разделяемым между несколькими процессами.
Аудит
Аудит
- регистрация в специальном
1.
Подсистема защиты ОС не
2.
Необходимо хранить
3.
Если произошла атака, то
Требования к аудиту
1. Только ОС может добавлять записи в журнал безопасности ОС.
2. Ни один субъект доступа, в том числе и ОС не имеет возможности редактировать или удалять отдельные записи в журнале аудита.
3.
Только пользователи-аудиторы, обладающие
соответстующей привелегией,
4.
Только пользователи-аудиторы
5.
При переполнении журнала
Политика аудита - совокупность правил, то, какие события должны регистрироваться в журнале аудита. Для адекватной политики безопасности, в журнале аудита должны обязательно регестрироваться следующие события
1.
Попытки входа-выхода
2.
Попытки изменения списка
3.
Попытки изменения политики
Выбор остальных событий определяется администратором. В некотрых ОС реализована возможность оповещения аудиторов о наиболее важных событиях, которые произошли в системе.
В ОС UNIX поддерживается регистракция следующих событий:
1. Загрузка-выгрузка системы.
2. Успешный вход и выход из системы.
3. Создание-уничтожение процесса.
4.
Сделать объект доступным (
5. Отобразить объект в субъект (выполнение программы).
6. Модификация объекта (запись в файл).
7.
Сделать объект недоступным (
8. Создание объекта (файла,...).
9. Удаление объекта.
10. Изменение разграничения доступа.
11. Отказ доступа.
12.Действия системных администраторов и операторов.
13. Процессы, которые пытаются превысить свои полномочия.
14.
Отказы в рессурсах (
15. Посылка сигналов и сообщений процессам.
16. Модификация процесса.
17. События системы контроля.
18. События базы данных (изменение базы данных безопасности и ее целостности).
19. События подсистемы (использование защищенных подсистем).
20. Использование привилегий (контроль действий с использованием различных привилегий).
Разграничение доступа в NT
Операционная система NT поддерживает 22 метода доступа субъектов к объектам. Шесть из них представляют собой стандартные методы доступа и поддерживаются для объектов всех типов.