Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник по Ос иС.doc
Скачиваний:
34
Добавлен:
19.08.2019
Размер:
4.46 Mб
Скачать
    1. Защищённость и отказоустойчивость ос

Основные понятия безопасности

Безопасная информационная система обладает следующими свойствами:

  1. конфиденциальность (confidentiality) – это гарантия того, что секретные данные доступны только тем пользователям, которым этот доступ разрешен (авторизованным пользователям);

  2. доступность (availability) – гарантия того, что авторизованные пользователи всегда получают доступ к данным;

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

Эти понятия определены ко всей вычислительной сети.

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

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

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

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

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

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

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

Базовые технологии безопасности

Шифрование – это средство канала или способ безопасного хранения данных.

Любая процедура шифрования должна быть дополнена процедурой дешифрования. Такая пара процедур – шифрование и дешифрование – называется криптосистемой.

В современных алгоритмах шифрования предусматривается наличие параметра – секретного ключа. Хакеру может быть известно все об алгоритме шифрования, кроме секретного ключа.

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

Существуют два класса криптосхем.

Симметричные алгоритмы шифрования впервые теоретически были изложены в 1949 году в работе Клода Шеннона. На рисунке 3.14 приведена классическая модель симметричной криптосхемы. Задача отправителя – передать по открытому каналу некоторое сообщение в защищенном виде. Для этого он на ключе k зашифровывает открытый текст X и передает шифрованный текст Y. Задача получателя – расшифровать Y и прочитать сообщение X. Предполагается, что отправитель имеет свой источник ключа. Сгенерированный ключ заранее передается получателю по надежному каналу. Задача хакера – перехват и чтение передаваемых сообщений и имитация ложных сообщений.

Рисунок 3.14 – Модель симметричного шифрования.

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

Наиболее популярным стандартом симметричных алгоритмов шифрования является DES (Data Encryption Standard), разработанный фирмой IBM и в 1976 году был рекомендован Национальным бюро стандартов к использованию в открытых секторах экономики.

В симметричных алгоритмах главную проблему представляют ключи:

  1. криптостойкость многих симметричных алгоритмов зависит от качества ключа;

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

В середине 70-х годов двое ученых – Винфилд Диффи и Мартин Хелман – описали принципы шифрования с открытыми ключами.

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

На рисунке 3.15 приведена модель криптосхемы с открытым ключом. Задача отправителя – передать по открытому каналу некоторое сообщение в защищенном виде. Получатель генерирует на свой стороне два ключа: открытый Е и закрытый D. Закрытый ключ D абонент должен сохранять в защищенном месте, а открытый Е он может передать всем, с кем он хочет поддерживать защищенные отношения. Открытый ключ передается отправителю в незащищенном виде. Отправитель используя открытый ключ шифрует сообщение X и передает его получателю. Получатель расшифровывает сообщение своим закрытым ключом D.

Рисунок 3.15 – Модель криптосхемы с открытым ключом.

В 1978 году трое ученых (Ривест, Шамир, Адлеман) разработали систему шифрования с открытым ключом RSA, полностью отвечающую всем принципам Диффи-Хеллмана.

Суть этого метода состоит в следующем:

  1. случайно выбираются два очень больших простых числа p и q;

  2. вычисляются два произведения n=p*q и m=(p-1)(q-1);

  3. выбирается случайное целое число Е, не имеющее цел ых сомножителей с m;

  4. находится D, такое, что DЕ=1 по модулю m;

  5. исходный текст, X, разбивается на блоки таким образом, чтобы 0< X < n;

  6. для шифрования сообщений необходимо вычислить С= XЕ по модулю n;

  7. для дешифрования вычисляется X=СD по модулю n.

Таким образом, что бы зашифровать сообщение, необходимо знать пару чисел (Е, n), а что бы дешифровать – пару чисел (D, n). Первая пара – открытый ключ, а вторая пара – закрытый ключ.

Существует шифрование с помощью односторонней функции (one-way function). Эта функция применяется к шифрующим данным, дает в результате значение (дайджест), состоящего из фиксированного небольшого числа байт (рисунок 3.16, а). Дайджест передается вместе с исходным сообщением. Получатель сообщения, зная как односторонняя функция шифрования (ОФШ) была применена для получения дайджеста, заново вычисляет его использую незашифрованную часть сообщения. Если значение полученного и вычисленного дайджестов совпадают, то значит содержимое сообщения не было подвергнуто никаким изменениям. Знание дайджеста не дает возможности восстановить сообщение, но зато позволяет проверить целостность данных.

Рисунок 3.16, а – Односторонняя функция шифрования.

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

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

Рисунок 3.16, б - Односторонняя функция шифрования.

Построение односторонних функций должны удовлетворять двум условиям:

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

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

Наиболее популярным в системе безопасности в настоящее время является серия хеш-функций MD2,MD4, MD5. Все они генерирую дайджесты фиксированной длины 16 байт. Адаптированным вариантом MD4 является американский стандарт SHA, длина дайджеста составляет 20 байт. Компания IBM поддерживает односторонние функции MDC2 и MDC4, основанные на алгоритме шифрования DES.

Аутентификация, авторизация, аудит

Аутентификация (authentication) предотвращает доступ к сети нежелательных лиц и разрешает вход для легальных пользователей.

В процедуре аутентификации участвуют две стороны: одна доказывает свою аутентичность, предъявляя доказательства, а другая сторона – аутентификатор – проверяет эти доказательства и принимает решение.

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

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

Система авторизации наделяет пользователя правами выполнять определенные действия над определенными ресурсами:

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

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

Процедуры авторизации реализуются программными средствами или в виде отдельных программных продуктов. При этом программные системы авторизации строятся на базе двух схем:

  1. централизованная система авторизации, базирующая на сервере. Сервер управляет процессом предоставления ресурсов пользователю. Главная цель таких схем – реализовать «принцип единого входа». Реализуют этот подход системы Kerberos, TACACS, RADIUS;

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

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

Аудит (auditing) – фиксация в системном журнале событий, связанных с доступом к защищаемым системным ресурсам. Подсистема аудита в современных ОС позволяет дифференцированно задавать перечень интересующих администратора событий с помощью удобного графического интерфейса. Аудит используется для засечения даже неудачных попыток «взлома» системы.

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

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

Отказоустойчивость файловых и дисковых систем

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

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

Транзакции (transactions) — недели­мые работы, которые не могут быть выполнены частично. Они либо выполняют­ся полностью, либо вообще не выполняются. Проблемы, связанные с восстановлением файловой системы, могут быть решены при помощи техники протоколирования транзакций.

В файловых системах транзакциями являются операции ввода-вывода, изменяющие содержимое файлов, каталогов или других системных структур файловой системы (например, индексных дескрипторов ufs или элементов FAT). Пусть к файловой системе поступает запрос на выполнение той или иной операции ввода-вывода. Эта операция включает несколько шагов, связанных с созда­нием, уничтожением и модификацией объектов файловой системы. Если все подоперации были благополучно завершены, то транзакция считается выполнен­ной. Это действие называется фиксацией (committing) транзакции. Если же одна или более подопераций не успели выполниться из-за сбоя питания или краха ОС, тогда для обеспечения целостности файловой системы все измененные в рамках транзакции данные файловой системы должны быть возвращены точно в то состояние, в котором они находились до начала выполнения транзакции.

Незавершенная операция с диском несет угрозу целостности файловой системы. Решение в этом случае одно — необходимо протоколировать (запоминать) все изменения, происходящие в рам­ках транзакции, чтобы сделать откат транзакции.

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

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

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

Файловая система NTFS является восстанавливаемой файловой системой, однако восстанавливаемость обеспечивается только для системной информации файловой системы.

Для повышения производительности файловая система NTFS использует диско­вый кэш.

Журнал регистрации транзакций в NTFS делится на две части: область рестарта и область протоколирования, что показано на рисунке 3.17:

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

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

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

Рисунок 3.17 – Записи модификации в журнале транзакций.

После сбоя файловая система может иметь следующие дефекты:

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

  2. противоречия в файловой системе из-за потери тех изменений, которые были сделаны транзакциями, завершившимися еще до сброса кэша, но записанные на диск в ходе последнего сброса.

Дисковые под­системы RAID (Redundant Array of Inexpensive Disks, дословно — «избыточный массив недорогих дисков») являются примером реализации принципа избыточности средств обеспечения отказоустойчивости дисковой памяти для всех отказоустойчивых систем.

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

При оценке эффективности RAID-массивов чаще всего используются следую­щие критерии:

  1. степень избыточности хранимой информации (или тесно связанная с этим критерием стоимость хранения единицы информации);

  2. производительность операций чтения и записи;

  3. степень отказоустойчивости.

Набор средств межпроцессного обмена данными, то есть IPC (Inter-Process Communications) в большинстве современных ОС выглядит следующим образом:

  1. конвейеры (pipes). Как средство межпроцессного обмена данными конвейеры впервые появились в операционной системе UNIX. Системный вызов pipe позволяет двум процессам обмениваться неструктурированным потоком байт. Конвейер представляет со­бой буфер в оперативной памяти, поддерживающий очередь байт по алгоритму FIFO. Для программиста, использующего системный вызов pipe, этот буфер выглядит как безымянный файл, в который можно писать и читать, осуществляя тем самым обмен данными. Конвейер обеспечивает автоматическую синхронизацию процессов – если при использовании системного вызова read в буфере конвейера нет данных, то про­цесс, обратившийся к ОС с системным вызовом read, переводится в состояние ожидания и активизируется при появлении данных в буфере;

  2. именованные конвейеры (named pipes). Представляют собой развитие механизма обычных кон­вейеров и имеют имя, которое является записью в каталоге фай­ловой системы ОС, поэтому они пригодны для обмена данными между двумя произвольными процессами или потоками этих процессов. Является специальным файлом типа FIFO и не имеет области данных на диске. Именованные кон­вейеры используют файловую систему только для хранения имени конвейера в каталоге, а данные между процессами передаются через буфер в оперативной па­мяти, как и в случае программного конвейера.

  3. очереди сообщений (message queues). Механизм очередей сообщений позволяет процессам и потокам обмениваться структурированными сооб­щениями. При этом синхронизация осуществляется по сообщениям, то есть про­цесс, пытающийся прочитать сообщение, переводится в состояние ожидания в том случае, если в очереди нет ни одного полного сообщения. Очереди сообще­ний являются глобальными средствами коммуникаций для процессов операци­онной системы, так как каждая очередь имеет в пределах ОС уникальное имя;

  4. разделяемая память (shared memory). Разделяемая память представляет собой сегмент физической памяти, отображен­ной в виртуальное адресное пространство двух или более процессов. Этот механизм поддерживается подсистемой виртуальной памяти, которая настраивает таблицы отображения адресов для процессов, запросивших разделе­ние памяти, так что одни и те же адреса некоторой области физической памяти соответствуют виртуальным адресам разных процессов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]