Билет № 38 взаимоблокировки процессов (тупики). Условия возникновения, методы и алгоритмы обнаружения тупиков

Проблемы безопасности. Выявление вторжений. Подходы к выявлению вторжений. Основные инструменты выявления вторжений.

Взаимоблокировки процессов (тупики). Условия возникновения, методы и алгоритмы обнаружения тупиков.

Задача. Пользовательский процесс формирует строку из 70 символов для вывода на принтер, затрачивая на это 5 мс. Объем буфера равен одной строке. Страница текста содержит 50 строк. Принтер способен печатать 10 страниц в минуту. Будет ли приостанавливаться ли пользовательский процесс? Улучшит ли ситуацию двойная буферизация?

Быстрое обнаружение вторжения позволяет идентифицировать и изгнать взломщика прежде чем он причинит вред.

Эффективная система обнаружения вторжений служит сдерживающим средством, предотвращающим вторжения.

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

Подходы к выявлению вторжений

1. Выявление статистических отклонений (пороговое обнаружение, профильное обнаружение).

2. Выявление на основе правил (выявление отклонений от обычных характеристик, идентификация проникновения –поиск подозрительного поведения).

Системы обнаружения вторжения (intrusion detection system — IDS) — это работающие процессы или устройства, анализирующие активность в сети или системе на предмет неавторизованных и/или злонамеренных действий. Некоторые системы IDS основаны на знаниях и заранее предупреждают администраторов о вторжении, используя базу данных распространённых атак. Системы IDS, основанные на поведении, напротив, обнаруживают аномалии, которые часто являются признаком активности злоумышленников, отслеживая использование ресурсов. Некоторые IDS — отдельные службы, работающие в фоновом режиме и анализирующие активность пассивно, регистрируя все подозрительные пакеты извне. Другие мощные средства выявления вторжений получаются в результате сочетания стандартных системных средств, изменённых конфигураций и подробного ведения журнала с интуицией и опытом администратора.

Основной инструмент выявления вторжений – записи данных аудита.

Аудит (auditing) – фиксация в системном журнале событий, происходящих в операционной системе, имеющих отношение к безопасности и связанных с доступом к защищаемым системным ресурсам.

Регистрация успешных и неуспешных действий:

Регистрация в системе;

Управление учетной записью;

Доступ к службе каталогов;

Доступ к объекту;

Использование привилегий;

Изменение политики;

Исполнение процессов и системные события.

Аудит включается в локальной (групповой) политике аудита.

Журнал безопасности содержит записи, связанные с системой безопасности.

Поскольку никакая система безопасности не гарантирует защиту на уровне 100 %, то последним рубежом в борьбе с нарушениями оказывается система аудита.

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

2) В условиях не осторожного использования средств синхронизации, могут возникнуть непредвиденные затруднения (тупиковые ситуации).

Группа процессов находится в тупиковой ситуации, если каждый процесс из группы ожидает события, которое может вызвать только другой процесс из этой же группы.

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

- ресурс

- процесс

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

Условия возникновения тупиковых ситуаций

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

Условие удержания и ожидания. Процессы, в данный момент удерживающие полученные ранее ресурсы, могут запрашивать новые ресурсы.

Отсутствие принудительной выгрузки ресурсов. У процесса нельзя забрать принудительно ранее полученные ресурсы.

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

Методы и алгоритмы обнаружения тупиков.

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

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

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

Методы:

Принудительная выгрузка ресурсов. Изъятие ресурса у процесса, передача его другому процессу, а затем возврат ресурса таким образом, что исходный процесс этого “ не замечает” (сложно и чаще всего невозможно).

Восстановление через “откат”. Процессы периодически создают контрольные точки, позволяющие запустить процесс с предыстории.

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

3) Задача

10 страниц/минута = 500 строк/минута

Чтобы распечатать одну строку принтеру требуется 1/500 минута = 60000/500 мс = 120 мс, что больше чем требуется пользовательскому процессу на обработку одной строки. Поэтому пользовательский процесс будет приостанавливаться через каждые 5 мс на 120 - 5 = 115 мс


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: