Главная страница
Навигация по странице:

  • Выгружаемый ресурс

  • Условия необходимые для взаимоблокировки

  • Моделирование взаимоблокировок

  • Методы борьбы с взаимоблокировками

  • Пренебрежением проблемой в целом (страусовый алгоритм)

  • Обнаружение и устранение взаимоблокировок

  • Обнаружение взаимоблокировки при наличии нескольких ресурсов каждого типа Рассмотрим систему.m

  • C(ij)

  • Когда можно искать тупики

  • Выход из взаимоблокировки

  • Основные понятия безопасности Конфиденциальность, целостность и доступность данных

  • Лекция 7. Лекция 7 Взаимоблокировка процессов


    Скачать 84.04 Kb.
    НазваниеЛекция 7 Взаимоблокировка процессов
    АнкорЛекция 7
    Дата26.01.2022
    Размер84.04 Kb.
    Формат файлаdocx
    Имя файлаЛекция 7.docx
    ТипЛекция
    #342827

    Лекция 7 - Взаимоблокировка процессов

    Взаимоблокировка процессов

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

    Ресурсы бывают выгружаемые и невыгружаемые, аппаратные и программные.

    Выгружаемый ресурс- этот ресурс безболезненно можно забрать у процесса (например: память).

    Невыгружаемый ресурс -этот ресурс нельзя забрать у процесса без потери данных (например: принтер).

    Проблема взаимоблокировок процессов возникает при борьбе за невыгружаемый ресурсы.

    Условия необходимые для взаимоблокировки:

    1. Условие взаимного исключения - в какой-то момент времени, ресурс занят только одним процессом или свободен.

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

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

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

    Моделирование взаимоблокировок

    Моделирование тупиков с помощью графов.



    Условные обозначения

    На такой модели очень хорошо проверить возникает ли взаимоблокировка. Если есть цикл, значит, есть и взаимоблокировка.

    Рассмотрим простой пример:

    три процесса A, B, C

    три ресурса R, S, T



    Последовательное выполнение процессов, взаимоблокировка не возникает

    Рассмотрим циклический алгоритм:

    три процесса A, B, C

    три ресурса R, S, T



    Возникает взаимоблокировка

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



    Взаимоблокировка не возникает.

    Методы борьбы с взаимоблокировками

    Четыре стратегии избегания взаимоблокировок:

    1. Пренебрежением проблемой в целом (вдруг пронесет).

    2. Обнаружение и устранение (взаимоблокировка происходит, но оперативно ликвидируется).

    3. Динамическое избежание тупиков.

    4. Предотвращение четырех условий, необходимых для взаимоблокировок.

    Пренебрежением проблемой в целом (страусовый алгоритм)

    Если вероятность взаимоблокировки очень мала, то ею легче пренебречь, т.к. код исключения может очень усложнить ОС и привести к большим ошибкам. Также многие взаимоблокировки тяжело обнаружить.

    Этот алгоритм используется как в UNIX, так и в Windows.

    Поэтому (и не только) на серверах часто устанавливают автоматическую перезагрузку (раз в сутки, как правило, ночью), если возникнет взаимоблокировка, то после перезагрузки ее не будет.

    Обнаружение и устранение взаимоблокировок

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

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

    Под одним ресурсом каждого типа, подразумевается один принтер, один сканер и один плоттер и т.д.

    Рассмотрим систему из 7-ми процессов и 6-ти ресурсов.



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

    Визуально хорошо видна взаимоблокировка, но нам нужно чтобы ОС сама определяла взаимоблокировку.

    Для этого нужен алгоритм.

    Рассмотрим один из алгоритмов.

    Для каждого узла N в графе выполняется пять шагов.

    1. Задаются начальные условия: L-пустой список, все ребра не маркированы.

    2. Текущий узел добавляем вконец списка L и проверяем количество появления узла в списке. Если он встречается два раза, значит цикл и взаимоблокировка.

    3. Для заданного узла смотрим, выходит ли из него хотя бы одно немаркированное ребро. Если да, то переходим к шагу 4, если нет, то переходим к шагу 5.

    4. Выбираем новое немаркированное исходящее ребро и маркируем его. И переходим по нему к новому узлу и возвращаемся к шагу 3.

    5. Зашли в тупик. Удаляем последний узел из списка и возвращаемся к предыдущему узлу. Возвращаемся к шагу 3. Если это первоначальный узел, значит, циклов нет, и алгоритм завершается.


    Алгоритм обнаружения взаимоблокировок

    Для нашего случая тупик обнаруживается в списке L=[B,T,E,V,G,U,D,T]

    Обнаружение взаимоблокировки при наличии нескольких ресурсов каждого типа

    Рассмотрим систему.

    m - число классов ресурсов (например: принтеры это один класс)

    n - количество процессов

    P(n) - процессы

    E- вектор существующих ресурсов

    E(i)- количество ресурсов класса i

    A- вектор доступных (свободных)ресурсов

    A(i) - количество доступных ресурсов класса i

    С- матрица текущего распределения (какому процессу, какие ресурсы принадлежат)

    R-матрица запросов (какой процесс, какой ресурс запросил)

     



     

    C(ij) - количество экземпляров ресурса j, которое занимает процесс P(i).

    R(ij) - количество экземпляров ресурса j, которое хочет получить процесс P(i).

     



    Общее количество ресурсов равно сумме занятых и свободных ресурсов

     

    Рассмотрим алгоритм поиска тупиков.



    Алгоритм поиска тупиков при наличии нескольких ресурсов каждого типа

    Если остаются не маркированные процессы, значит, есть тупик.

    Рассмотрим работу алгоритма на реальном примере.



    Используем алгоритм:

    1. Третий процесс может получить желаемые ресурсы, т.к. R (2 1 0 0) = A (2 1 0 0)

    2. Третий процесс освобождает ресурсы. Прибавляем их к A. А = (2 1 0 0)+ (0 1 2 0)=(2 2 2 0). Маркируем процесс.

    3. Может выполняться процесс 2. По окончании А=(4 2 2 1).

    4. Теперь может работать первый процесс.

    Тупиков не обнаружено.

    Если рассмотреть пример, когда второму процессу требуются ресурсы (1 0 3 0), то два процесса окажутся в тупике.

    Когда можно искать тупики:

    • Когда запрашивается очередной ресурс (очень загружает систему)

    • Через какой то промежуток времени (в интерактивных системах пользователь это ощутит)

    • Когда загрузка процессора слишком велика

    Выход из взаимоблокировки

    Восстановление при помощи принудительной выгрузки ресурса

    Как правило, требует ручного вмешательства (например: принтер).

    Восстановление через откат

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

    С принтером опять будут проблемы.

    Восстановление путем уничтожения процесса

    Самый простой способ.
    Классификация угроз

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

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

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

    В вычислительных сетях можно выделить следующие типы умышленных угроз:

    • незаконное проникновение в один из компьютеров сети под видом легального пользователя;

    • разрушение системы с помощью программ-вирусов;

    • нелегальные действия легального пользователя;

    • «подслушивание» внутрисетевого трафика.

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

    Другим способом незаконного проникновения в сеть является использование «чужих» паролей, полученных путем подглядывания, расшифровки файла паролей, подбора паролей или получения пароля путем анализа сетевого трафика. Особенно опасно проникновение злоумышленника под именем пользователя, наделенного большими полномочиями, например, администратора сети. Для того чтобы завладеть паролем администратора, злоумышленник может попытаться войти в сеть под именем простого пользователя. Поэтому очень важно, чтобы все пользователи сети сохраняли свои пароли в тайне, а также выбирали их так, чтобы максимально затруднить угадывание.

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

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

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

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

    «Подслушивание» внутрисетевого трафика – это незаконный мониторинг сети,захват и анализ сетевых сообщений. Существует много доступных программных и аппаратных анализаторов трафика, которые делают эту задачу достаточно тривиальной. Еще более усложняется защита от этого типа утроз в сетях с глобальными связями. Глобальные связи, простирающиеся на десятки и тысячи километров, по своей природе являются менее защищенными, чем локальные связи (больше возможностей для прослушивания трафика, более удобная для злоумыш- ленника позиция при проведении процедур аутентификации). Такая опасность одинаково присуща всем видам территориальных каналов связи и никак не зависит от того, используются собственные, арендуемые каналы или услуги общедоступных территориальных сетей, подобных Интернету.

    Можно привести и более строгие примеры классификации угроз.

    Классификация угроз по цели:

    • несанкционированное чтение информации;

    • несанкционированное изменение информации;

    • несанкционированное уничтожение информации;

    • полное или частичное разрушение операционной системы (под разрушением операционной системы понимается целый комплекс разрушающих воздействий от кратковременного вывода из строя («завешивания») отдельных программных модулей системы до физического стирания с диска системных файлов).

    Классификация угроз по принципу воздействия на операционную систему:

    • использование известных (легальных) каналов получения информации; например, угроза несанкционированного чтения файла, доступ пользователей к которому определен некорректно – разрешен доступ пользователю, которому согласно адекватной политике безопасности доступ должен быть запрещен;

    • использование скрытых каналов получения информации; например, угроза использования злоумышленником недокументированных возможностей операционной системы;

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

    Классификация угроз по характеру воздействия на операционную систему:

    • активное воздействие – несанкционированные действия злоумышленника в системе;

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

    Классификация угроз по типу используемой злоумышленником слабости защиты:

    • неадекватная политика безопасности, в том числе и ошибки администратора системы;

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

    • ранее внедренная программная закладка.

    Классификация угроз по способу воздействия на объект атаки:

    • непосредственное воздействие;

    • превышение пользователем своих полномочий;

    • работа от имени другого пользователя;

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

    Классификация угроз по способу действий злоумышленника (нарушителя):

    • в интерактивном режиме (вручную);

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

    Классификация угроз по объекту атаки:

    • операционная система в целом;

    • объекты операционной системы (файлы, устройства и т.д.);

    • субъекты операционной системы (пользователи, системные процессы и т.д.);

    • каналы передачи данных.

    Классификация угроз по используемым средствам атаки:

    • штатные средства операционной системы без использования

    • дополнительного программного обеспечения;

    • программное обеспечение третьих фирм (к этому классу программного обеспечения относятся как компьютерные вирусы и другие вредоносные программы (exploits), которые можно легко найти в Internet, так и программное обеспечение, изначально разработанное для других целей: отладчики, сетевые мониторы и сканеры и т.д.);

    • специально разработанное программное обеспечение.

    Классификация угроз по состоянию атакуемого объекта операционной системы на момент атаки:

    • хранение;

    • передача;

    • обработка.

    Приведенная классификация не претендует ни на строгость, ни на полноту. Единственная ее цель – показать весь спектр возможных угроз безопасности ОС.

    Основные понятия безопасности Конфиденциальность, целостность и доступность данных


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

    • Конфиденциальность (confidentiality) - гарантия того, что секретные данные будут доступны только тем пользователям, которым этот доступ разрешен (такие пользователи называются авторизованными).

    • Доступность (availability) - гарантия того, что авторизованные пользователи всегда получат доступ к данным.

    • Целостность (integrity) - гарантия сохранности данными правильных значений, которая обеспечивается запретом для неавторизованных пользователей каким-либо образом изменять, модифицировать, разрушать или создавать данные.

    Требования безопасности могут меняться в зависимости от назначения системы, характера используемых данных и типа возможных угроз. Трудно представить систему, для которой были бы не важны свойства целостности и доступности, но свойство конфиденциальности не всегда является обязательным. Например, если вы публикуете информацию в Интернете на Web-сервере и вашей целью является сделать ее доступной для самого широкого круга людей, то конфиденциальность в данном случае не требуется. Однако требования целостности и доступности остаются актуальными.

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

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

    Понятия конфиденциальности, доступности и целостности могут быть определены не только по отношению к информации, но и к другим ресурсам вычислительной сети, например, внешним устройствам или приложениям. Существует множество системных ресурсов, возможность «незаконного» использования которых может привести к нарушению безопасности системы. Например, неограниченный доступ к устройству печати позволяет злоумышленнику получать копии распечатываемых документов, изменять параметры настройки, что может привести к изменению очередности работ и даже к выводу устройства из строя. Свойство конфиденциальности, примененное к устройству печати, можно интерпретировать так, что доступ к устройству имеют те и только те пользователи, которым этот доступ разрешен, причем они могут выполнять только те операции с устройством, которые для них определены. Свойство доступности устройства означает его готовность к использованию всякий раз, когда в этом возникает необходимость. А свойство целостности может быть определено как свойство неизменности параметров настройки данного устройства. Легальность использования сетевых устройств важна, поскольку она влияет на безопасность данных. Устройства могут предоставлять различные услуги: распечатку текстов, отправку факсов, доступ в Интернет, электронную почту и т. п., незаконное потребление которых, наносящее материальный ущерб предприятию, также является нарушением безопасности системы.

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


    написать администратору сайта