Архитектура подсистемы защиты ос

Операционная система

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

Основные функции операционных систем:

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

Операционная система управляет процессами. Одна из задач операционной системы — распределение ресурсов между процессами, конкурирующими за эти ресурсы.

На пальцах. Допустим есть у нас компьютер с 2 ГБ оперативной памяти. На компьютере установлен антивирус Касперского и MS офис. Например мы работаем только в экселе. Итого что происходит:
1. Запускается ОС, запускаются процессы необходимые для стабильной работы ОС.
2. Запускается процесс Касперского (у меня он называется AVP21.2 Kaspersky Anti-Virus Service).
3. Вы запускаете эксель, он запускает свой процесс.
4. Вся оперативная память начинает забиваться так как антивирусу и экселю нужны ресурсы, а часть ресурсов уже занята процессами ОС.
5. Возникает конкуренция за ресурсы.

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

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

Контекст процесса — информация о текущем состоянии процесса, которая включает описание:

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

Задачи операционной системы при управлении ресурсами

  • Планирование ресурса.
  • Раздача ресурсов.
  • Отслеживание состояния и учет ресурсов.
  • Решение конфликтов между ресурсами.

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

Пользователь взаимодействует с операционной системой через пользовательский интерфейс (UI — user interface).

Пользовательские интерфейсы бывают:
1. CLI — интерфейс командной строки.
2. GUI — графический пользовательский интерфейс.

Пример интерфейса командной строки.

Пример графического пользовательского интерфейса.

Подсистема управления памятью

Подсистема управления памятью выполняет следующие задачи:

  1. Ведет учет занятой и свободной оперативной памяти.
  2. Выделяет память процессам и освобождает память при завершении процесса.
  3. Настраивает адресно-зависимые части кодов процесса на физические адреса выделенной памяти.
  4. Защищает память выделенную определенному процессу.
  5. Работает с виртуальной памятью.

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

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

Из-за этого довольно сильно тормозит Windows 10 без SSD, так как операционная система часто использует виртуальную память, а скорости обычного HDD диска не хватает для быстрой реакции, поэтому начинаются тормоза.

По сути подсистема управления памятью проверяет есть ли свадебная оперативная память, если да — выделяет, если нет — задействует виртуальную память.

Подсистема управления файлами

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

Файл, по сути, это некоторая последовательность байт которая имеет определенное имя. Тесть виртуальный объект.

  1. Предоставление наборов данных в виде иерархической структуры файлов и каталогов.
  2. Преобразование символьных имен файлов в физические адреса данных на диске.
  3. Организация совместного доступа к файлам.
  4. Защита файлов от несанкционированного доступа.

Подсистема управления процессами

Позволяет работать процессам с ресурсами.

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

В чем разница между прошивкой и ОС

Многие устройства просто запускают «прошивку» — тип низкоуровневого программного обеспечения, которое обычно запрограммировано непосредственно в памяти аппаратного устройства. Прошивка — это всего лишь небольшая часть программного обеспечения, предназначенного для работы только с абсолютными основами.

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

Граница между прошивкой и операционной системой также может быть немного размытой. Например, операционную систему для iPhone и iPads от Apple, называемую iOS, часто называют «прошивкой». Операционная система PlayStation 4 официально называется прошивкой.

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

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

Положение ОС в многоуровневой иерархии организации компьютера¶

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

Рис. 2. Основные уровни устройства ПК

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

В целом, общей схемой это можно отобразить так:

Рис. 3. Место ОС в компьютерной системе

  • App — пользователь ресурсов;
  • Hardware — оборудование;
  • Proc — Процессор;
  • Memory — Оперативная память;
  • I/O — Устройства ввода/вывода;

Интерфейс — набор правил и средств взаимодействия двух систем. Иными словами способ взаимодействия.

Kernel space — адресное пространство ядра ОС, в котором процессы имеют привилегированный доступ к ресурсам компьютера и другим процессам.

User space — адресное пространство, отведённое для пользовательских процессов (приложений), то есть не имеющих привилегированный доступ к ресурсам.

Что такое операционная система?

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

Но существуют и другие устройства, которые операционная система наделяет несколькими важными способностями:

  • Позволяет выполнять различные задачи
  • Обеспечивает взаимодействие пользователя с устройством на более сложном уровне
  • Поддерживает в порядке изменения, вносимые пользователем

Операционными системами обладают все настольные компьютеры. Наиболее распространены операционные системы семейства Windows, разработанные корпорацией Microsoft. Apple предустанавливает на свои компьютеры собственную операционную систему, о которой речь шла выше. Кроме того, существует огромное семейство UNIX-систем. История их разработки полна выдающимися личностями, инновационными корпорациями и примерами сотрудничества во имя достижения совместной цели. На свете существуют сотни различных операционных систем, ориентированных на выполнение узкоспециальных задач. В их числе операционные системы для больших ЭВМ (мэйнфреймов), роботов, промышленного оборудования и систем реального времени.

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

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

Как приложения взаимодействуют с ОС?¶

Взаимодействие процессов с ОС осуществляется с помощью системных вызовов.

Примечание

Механизм системных вызовов — это интерфейс, который предоставляет ядро ОС (kernel space) пользовательским процессам (user space).

Системный вызов – программное прерывание, обращение пользовательского процесса к ядру операционной системы для выполнения какой-либо операции.

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

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

Схема организации ОС расширяется добавлением интерфейса для взаимодействия приложений с ядром ОС — механизмом системных вызовов:

Почему наборы шифров важны?

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

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

Управление памятью

Рассмотрим управление памятью в операционных системах подробнее.

Виртуальное адресное пространство процесса

Типы адресов:

  • Символьные имена — идентификаторы переменных и команд в программе, присваиваемые программистом.
  • Виртуальные адреса — условные адреса, присваиваемые транслятором.
  • Физические адреса — номера ячеек оперативной памяти, в которых находятся переменные и команды.

Символьные метки:

  1. Метки операторов заменяют для программиста адреса, по которым команды находятся в памяти.
  2. Имена переменных заменяют адреса, по которым данные находятся в памяти.
  3. Имя программы заменяет адрес, по которому первая команда программы находится в памяти.

Физическая память

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

Количество ячеек физической памяти ограничено и фиксировано.

Виртуальное адресное пространство

Совокупностью виртуальных адресов процесса называют виртуальным адресным пространством.

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

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

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

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

Размер назначенного адресного пространства может меняться во время выполнения процесса.

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

Память бывает разделяемая и неразделяемая.

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

Неразделяемая память это закрытая область для хранения собственных данных процесса.

На рисунке выше разделимый участок оперативной памяти отмечен серым цветом.

Для каждого процесса виртуальное адресное пространство делиться на две части:

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

Системная часть разделяется на вытесняемую и не вытесняемую.

По сути: если памяти не хватает, то вытесняемая память переходит из оперативной памяти на жесткий диск. Как я писал ранее это очень любимая тема Windows 10.

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

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

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

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

Зачем нужны комплекты шифров?

  • Алгоритм обмена ключами, определяющий способ обмена симметричными ключами.
  • Алгоритм аутентификации или цифровой подписи, который определяет, как будет реализована аутентификация сервера и аутентификация клиента (если требуется).
  • Шифр массового шифрования, используемый для шифрования данных.
  • Функция хеширования/MAC, которая определяет, как будут выполняться проверки целостности данных.

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

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

Идентификация, аутентификация и авторизация субъектов доступа

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

Идентификация субъекта доступа заключается в том, что субъект сообщает ОС идентифицирующую информацию о себе (имя, учетный номер и т. д.) и таким образом идентифицирует себя.

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

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

Авторизация субъекта доступа происходит после успешной идентификации и аутентификации. При авторизации субъекта ОС выполняет действия, необходимые для того, чтобы субъект мог начать работу в системе. Например, авторизация пользователя в операционной системе UNIX включает в себя порождение процесса, являющегося операционной оболочкой, с которой в дальнейшем будет работать пользователь. В ОС Windows NT авторизация пользователя включает в себя создание маркера доступа пользователя, создание рабочего стола и запуск на нем от имени авторизуемого пользователя процесса Userinit, инициализирующего индивидуальную программную среду пользователя. Авторизация субъекта не относится напрямую к подсистеме зашиты ОС. В процессе авторизации решаются технические задачи, связанные с организацией начала работы в системе уже идентифицированного и аутентифицированного субъекта доступа.

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

Управление устройствами в операционных системах

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

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

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

Операционная система взаимодействует с подсистемой ввода-вывода с помощью:

  • Контроллеров.
  • Драйверов.

Контроллер это блок управления устройством ввода-вывода.

Драйвер это программный модуль, который управляет устройством.

Контроллер получает от драйвера выводимые на устройстве данные и управляющие команды. После окончания выполнения задачи контроллер выполняет прерывание.

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

Организация параллельной работы устройств ввода-вывода и процессора происходит следующим образом.

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

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

Подсистема ввода-вывода согласовывает скорость обмена и кеширования данных с контроллером устройства.

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

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

Как это работает?

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

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

Алгоритмы обмена ключами, такие как RSA, DH, ECDH, DHE, ECDHE или PSK.

Алгоритм аутентификации/цифровой подписи, такой как RSA, ECDSA или DSA

Алгоритмы массового шифрования, такие как AES, CHACHA20, Camellia или ARIA.

Алгоритмы кода аутентификации сообщения, такие как SHA-256 и POLY1305

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

Поддержка наборов шифров в TLS 1.3

Кроме того, наборы шифров TLS 1.3 теперь намного короче, чем соответствующие наборы шифров TLS 1.2. В комплектах шифров не указан тип сертификата — RSA или ECDSA — и механизм обмена ключами — DHE или ECDHE. Таким образом, количество переговоров, необходимых для определения параметров шифрования, было сокращено с четырех до двух. Наборы шифров в TLS 1.3 выглядят следующим образом:

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

Поддерживаемые наборы шифров в TLS 1.3 сократились до пяти и включают следующие:

  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_GCM_SHA256
  • TLS_AES_128_CCM_8_SHA256
  • TLS_AES_128_CCM_SHA256

Основные функции подсистемы защиты ОС

Подсистема защиты ОС выполняет следующие основные функции.

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

2. Разграничение доступа. Каждый пользователь системы имеет доступ только к тем объектам ОС, к которым ему предоставлен доступ в соответствии с текущей политикой безопасности.

3. Аудит. ОС регистрирует в специальном журнале события, потенциально опасные для поддержания безопасности системы.

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

5. Криптографические функции. Защита информации немыслима без использования криптографических средств защиты. Шифрование используется в ОС при хранении и передаче по каналам связи паролей пользователей и некоторых других данных, критичных для безопасности системы.

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

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

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

Заключение

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

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

  • Opera 80: что нового

      

  • Как долго держит заряд psp

      

  • Какая версия Coreldraw лучше

      

  • Что такое касперский аварийный диск

      

  • Установка через xiaomi usb
Понравилась статья? Поделиться с друзьями:
Портал компьютеров
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: