Программно-аппаратная защита информации

Автор работы: Пользователь скрыл имя, 20 Февраля 2011 в 14:59, курс лекций

Описание работы

Программные и аппаратные механизмы защиты

Файлы: 1 файл

Аникин_Катасёв_Кривилёв_ПАЗИ_Конспекты_лекций_2008.doc

— 1.34 Мб (Скачать файл)

    Планирование  задач может быть двух типов.

  1. Вытесняющее.
  2. Не вытесняющее.

    Во втором случае, выполнение задачи может быть прервано только по инициативе самой задачи. Задача, выполнив необходимые действия, должна самостоятельно прервать свое выполнение (Win 3.1). Здесь пока задача не завершила обработку сообщения, другие задачи не могут получить управления. Если задача зациклилась, то другие задачи никогда не получат управления – ОС зависает. Вывести из строя такую ОС можно просто написав пустой цикл. Обычно ОС с не вытесняющим планированием содержат спец. средства аварийного завершения задач в экстренных случаях, но эти средства никогда не работают достаточно надежно.

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

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

  1. Поддерживается вытеснение задач.
  2. Создание высокоприоритетных задач доступно только привилегированным пользователям.
  3. Критичные для обеспечения безопасности системы задачи защищены от несанкционированного вмешательства в ход их выполнения (например, от несанкционированного снижения приоритета подсистем защиты).
  4. Фатальный сбой в процессе функционирования одной из задач, критичных для обеспечения безопасности, должен вызывать крах ОС.

    Обеспечение корректности совместного  доступа к объектам

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

      В данном случае, если какая-то задача изменяет данные, то доступ к этим данным должен быть запрещен другим задачам. Единственное исключение – все задачи, изменяющие один и тот же объект открывают его в режиме, допускающем совместное изменение данных. Открывая объект таким образом, задача тем самым заявляет ОС, что она полностью берет на себя ответственность за все действия, связанные с обеспечением корректности совместного доступа к данным.

    Предотвращение  тупиковых ситуаций

    Тупиковая ситуация может возникнуть тогда, когда несколько программ одновременно пытаются открыть несколько одних и тех же объектов в режиме монопольного доступа. Если одна программа открыла одну часть объектов, а другая – другую, то ни одна из программ сможет открыть остальные объекты до тех пор, пока другая программа их не закроет. Если функции закрытия объектов не предусмотрены ни в одной из программ, ситуация становится тупиковой – каждая программа ждет, пока другая закроет открытые ею объекты.

    Один  из методов борьбы с тупиковыми ситуациями состоит в следующем: если программа для выполнения некоторой операции должна открыть в монопольном режиме несколько объектов ОС, но не смогла этого сделать, так как некоторые из этих объектов уже открыты в монопольном режиме другой программой, то она должна закрыть все уже открытые объекты, подождать некоторое время и повторить операцию сначала. Наилучшие результаты – если время ожидания случайно.

    Уровни  привелигированности

    Для реализации защитных механизмов на Intel могут использоваться уровни привилегированности. Уровень привилегированности  - это числовой идентификатор, принимающий значения от 0 до 3, который определяет возможности задачи выполнять команды процессора, модифицировать регистры и области ОЗУ и т.д. Чем меньше идентификатор уровня, тем более полный доступ имеет задача к аппаратным возможностям процессора. Множество задач, обладающих некоторым конкретным уровнем привилегированности- кольцо защиты. Например, если программа имеет уровень 3, то третье кольцо. Обычно код программы – в третьем кольце, а код ОС – в нулевом. Первое и второе – редко (OS/2). RISC – 2 кольца. 
 

Лекция  № 17

    Защищенные  механизмы в NT

    Ядро  и драйверы устройств в NT – в нулевом кольце, весь остальной код ОС и программы – в третьем. 1 и 2  - не используются.

    Планирование  задач

    Каждый  поток может находиться в одном  из трех состояний – 

  1. Выполняющемся.
  2. Ожидающем – ожидает сигнала от внешнего устройства.
  3. Прерванном – поток готов выполняться и ожидает своей очереди.

    Многозадачность – вытесняющая. Для вытеснения –  аппаратное прерывание от таймера.

    Каждый  поток имеет приоритет – от 1 до 31. Чем выше приоритет, тем больше шансы у процесса получить квант  времени. Для присвоения потокам  приоритетов в NT применяется двухступенчатая система – абсолютный приоритет потока вычисляется на основе

  1. Класса приоритета процесса.
  2. Относительного приоритета потока.

    Каждый  процесс имеет базовый приоритет, определяемый классом приоритета процесса. Базовые приоритеты имеют следующие  значения:

    • Фоновый (idle): 4
    • Нормальный (normal): 9 если процесс обслуживает активное окно и 7 в противном случае.
    • Высокий (high): 13.
    • Реального времени (real-time): 24.

    Обычно  хранители экрана – фоновый класс  приоритета, прикладные программы –  нормальный класс и системные  процессы – высокий. Реальное время  – редко.

    Относительные приоритеты могут быть следующими:

  • Фоновый (idle): 16 если процесс имеет класс приоритета реального времени и 1 в противном случае.
  • Низший (lowest): на 2 ниже базового приоритета процеса.
  • Пониженный (below normal): на 1 ниже базового приоритета процесса.
  • Нормальный (normal): совпадает с базовым приоритетом процесса.
  • Повышенный: на 1 выше базового приоритета процесса.
  • Высший: на 2 выше базового приоритета процесса.
  • Критичный: 31, если базовый - приоритет реального времени или 16 в ином случае.

    В 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 метода доступа субъектов к объектам. Шесть из них представляют собой стандартные методы доступа и поддерживаются для объектов всех типов.

Информация о работе Программно-аппаратная защита информации