Тема OS25асу. Защита памяти Защита памяти, аппаратные и программные средства для предотвращения записи или воспроизведения информации по неразрешенному адресу памяти вычислительной системы или машины. Сущность З. п. заключается в том. что память ЦВМ программно или аппаратно разбивается на ряд участков и каждому участку или группе участков присваивается код-ключ, который запоминается в той же или специальной памяти. При обращении к памяти определяется её участок и соответствующий ключ, который сравнивается с разрешённым ключом З. п., указанным в самой команде или диспетчером-программой. Несоответствие ключей рассматривается как нарушение З. п. и выполнение программы прерывается. Прерывание программы организуется так, чтобы содержание защищённой области памяти осталось без изменения. З. п. функционирует при каждом обращении к памяти либо в режиме записи информации, либо в режиме воспроизведения информации, либо в обоих режимах. З. п. выполняет следующие функции: защиту содержимого определенных областей памяти от потери информации во время выполнения программ из-за ошибочных засылок информации, вызванных отказами и сбоями оборудования или диспетчер-программы ЦВМ, ошибками программиста или пользователя; защиту информации от попадания её в руки постороннего пользователя при несанкционированном случайном или намеренном вмешательстве.   К аппаратным средствам З. п. относятся: запоминающее устройство ключей защиты, ёмкость которого соответствует числу защищаемых участков, а быстродействие на порядок больше, чем у основной памяти ЦВМ; схемы сравнения ключей защиты, прерывания и индикации при нарушении З. п. К программным средствам З. п. относятся: программы контроля участков памяти, их кодирования и составления таблиц соответствия; программы динамического перераспределения З. п. по распоряжениям потребителей, по параметрам одновременно решаемых задач; программы анализа причин нарушений З. п. и принятия решений по их устранению. З. п. повышает эффективность работы ЦВМ, сокращая временные затраты на поиск ошибок, неисправностей и на повторные вычисления из-за потери информации. З. п. необходима при одновременном решении нескольких задач одной ЦВМ в режиме разделения времени, одновременном обслуживании нескольких пользователей, наличии библиотек программ, архивов, принадлежащих определённым потребителям, одновременной работе нескольких устройств в составе ЦВМ.   А. В. Гусев.   ЗАЩИТА ПАМЯТИ (memory protection). Меры, не, позволяющие выполняемой задаче получить доступ к "чужой" памяти, т. е. к памяти, которая за ней не закреплена. При обращении к памяти осуществляется проверка принадлежности адреса, по которому происходит обращение, к адресному пространству задачи. Широко распространен способ 3. п., при котором программе присваивается ключ защиты, который должен совпадать с ключами защиты памяти всех блоков памяти, выделенных данной программе. Эти меры предотвращают порчу хранящихся в памяти программ и данных другими программами. 3. п. реализуется как аппаратными, так и программными средствами. Для оперативной памяти защита реализуется аппаратно, чтобы поддерживать ее высокое быстродействие; для более медленных запоминающих устройств 3. п. может быть полностью реализована программно. В настоящее время разработаны различные механизмы контроля за доступом к какой-либо области памяти с учетом допустимых режимов обращений. Широко распространен такой вид аппаратной 3. п., как использование ограничительных регистров, содержимое которых обозначает границы области памяти с определенной формой доступа. Например, область, предназначенная для хранения подпрограмм общего использования, может быть отмечена операционной системой, как доступная только для исполнения, и данные из нее будут только считываться либо как команды, либо как операнды исполняемых команд. Для защиты виртуальной памяти также используются дескрипторы страниц или сегментов. Нарушение системы 3. п. исполняемой программой обычно вызывает ее аварийное завершение. Ср. защита данных Защита памяти процесса Есть OS (большинство), в которых сбой одной (какой-нибудь) программы не вызывает "зависание" всей системы (напр. Unix), а есть OS, у которых от сбоя программы "виснет" вся система (напр. бытовые Windows ранних версий). ЗАЩИТА ДАННЫХ (data protection). http://comp.vslovar.org.ru/344.html Меры, направленные против несанкционированного доступа к информации, хранящейся в памяти компьютера - так называемого компьютерного браконьерства. Одним из способов 3. д., хранящихся в вычислительной системе, является использование символьных паролей или цифровых кодов. В этом случае вычислительная система допускает к информации только пользователей, знающих пароль. Кроме того, в памяти может храниться специальная таблица, в которой перечислены права каждого пользователя на доступ к тем или иным данным. В соответствии с этой таблицей разрешается (или не разрешается) доступ конкретному пользователю к конкретным данным. При этом может производиться регистрация всех попыток и несанкционированного доступа. Для большей надежности информацию можно хранить в зашифрованном виде. Для этого применяются специальные шифры (тайнопись, криптография). Ср. защита памяти. См. аппаратный ключ, защита от копирования и защита файлов Режим реальных адресов (реальный режим) Режим защищенных виртуальных адресов (виртуальный режим). Архитектура микропроцессора Intel 486 (обозначаемый также i486) представляет собой высокопроизводительное устройство, имеющее полную 32-разр. архитектуру, включая 32-разр. регистры и шины. Наиболее часто выполняемые команды выполняются за один цикл, что обеспечивает быстродействие, сравнимое с процессорами архитектуры RISC. Микропроцессор i486 использует один источник питания с напряжением 5 В. Типовые значения потребляемой мощности составляют 3..4 Вт в зависимости от тактовой частоты (25:50 МГц). В микропроцессорах, обозначение которых содержит символы DX2 или DX4, используется внутреннее удвоение или учетверение тактовой частоты. Исполняемый код микропроцессора i486 совместим с кодом микропроцессоров 8086, 8088, 80186, 80188, 80286, 80386, поэтому для него может использоваться весь объем ранее разработанного программного обеспечения. Микропроцессор i486 стал основой для создания новых, еще более мощных и быстродействующих микропроцессоров - Pentium и Pentium Pro. Содержит на одном кристалле, кроме собственно центрального процессора, также блок обработки данных с плавающей запятой (FPU - Floating Point Unit), устройство управления, диспетчер памяти (MMU - Memory Manager Unit), блок предварительной выборки команд и данных, интерфейс магистрали, кэш-память. Центральный процессор, в свою очередь, включает в себя арифметико-логическое устройство (АЛУ, или ALU - Arithmetical-Logical Unit), восемь 32-разрядных регистров общего назначения (РОН), многоразрядный сдвигатель (Shifter), используемый не только при отработке команд сдвига, но и при выполнении операций умножения и деления. Блок FPU имеет собственные регистры данных и управления; он работает параллельно с центральным процессором. Устройство управления включает дешифратор команд, поступающих из блока предварительной выборки (очереди команд), и блок микропрограммного управления, содержащий ПЗУ микрокоманд. В процессе выполнения каждой команды микропроцессора его устройство управления формирует соответствующие последовательности микрокоманд, поступающие на все блоки микропроцессора. Диспетчер памяти, состоящий из блока сегментации и блока страничной адресации, осуществляет формирование физического адреса ячейки памяти. Диспетчер обеспечивает два режима работы микропроцессора: режим реальных адресов (реальный режим) и режим защищенных виртуальных адресов (виртуальный режим). В реальном режиме i486 работает как очень быстрый процессор 8086. При этом реализуется расширенный набор команд и допускается увеличение разрядности операндов и адресов до 32. В защищенном режиме могут одновременно выполняться несколько задач (программ). Задачи при этом изолированы и защищены одна от другой. Интерфейс магистрали реализует протоколы обмена микропроцессора с памятью, контроллерами ввода-вывода, другими активными устройствами. Обмен осуществляется с помощью 32-разрядной двунаправленной шины данных, 34-разрядной шины адреса и 32-разрядной шины управления, причем разрядность шины данных может переключаться непосредственно в ходе работы; могут использоваться один, два или все четыре байта. Регистры микропроцессора i486 делятся на четыре группы: Основные функциональные регистры: регистры общего назначения; регистр-указатель команд; регистр флагов; регистры сегментов. Регистры FPU: регистры данных; регистр тэгов; регистр состояния; указатели команд и данных FPU; регистр управления FPU. Системные регистры: регистры управления микропроцессором; регистры системных адресов. Регистры отладки и тестирования. Регистры общего назначения (РОН) EAX, EBX, ECX, EDX 32-разрядные (буква Е означает Extended - расширенный), причем каждый из них может использоваться либо как единое целое, либо только своей младшей 16-разрядной частью (AX, BX, CX, DX). В свою очередь, эти 16-разрядные части допускают независимое использование своих младших (LOW) и старших (HIGH) половин, то есть фактически 8-разрядных регистров (AH и AL, BH и BL и т.д.). Как правило, в РОН размещаются промежуточные результаты вычислений, кроме того, ряд команд микропроцессора принудительно использует те или иные РОН. Следующие далее регистры ESP (Stack Pointer - указатель стека), EBP (Base Pointer - указатель базы), ESI (Source Index - индекс источника), EDI (Destination Index - индекс получателя) используются в различных методах адресации. Наконец, EIP (Instruction Pointer) - это указатель команд, программно-недоступный регистр, содержащий адрес текущей выполняемой команды; EFLAGS - это регистр признаков (флагов), указывающих текущее состояние микропроцессора. Его младшая половина - FLAGS - аналогична регистру флагов предшествующих моделей микропроцессоров, в частности, 8086: Отметим, что младший байт этого регистра, в свою очередь, полностью совпадает с регистром флагов для 8-разрядного микропроцессора Intel 8080 (К580ВМ80). Для нас представляют интерес лишь часть флагов этого регистра: CF - флаг переноса. Равен 1 при наличии переноса за пределы слова (байта). ZF - флаг нулевого результата. Равен 1 при получении нулевого результата в арифметических и логических операциях. SF - флаг знака. Дублирует значение старшего бита результата при использовании дополнительного кода. IF - флаг управления прерываниями (см. п. 2.4.2). DF - флаг направления в командах обработки строк (см. п. 2.4.2). OF - флаг переполнения при работе со знаковыми числами. Другие флаги, а также флаги старшей половины EFLAGS, применяемые в защищенном режиме, в данном практикуме не рассматриваются. Процессор Pentium: Реальный режим Защищенный режим Режим виртуального 8086 Защищенный режим является основным и наиболее естественным режимом работы 32-разрядных процессоров. Этот режим был в полной мере реализован в процессорах серии i386 и с тех пор существенных изменений не претерпел. Защищенный режим 32-разрядных процессоров реализует поддержку следующих механизмов: - Организация памяти, при которой используются два механизма преобразования памяти: сегментация и разбиение на страницы. - Четырехуровневая система защиты пространства памяти и ввода/вывода. - Переключение задач. Сегмент - это блок пространства памяти определенного назначения, внутри которого применяется линейная адресация. Максимальный размер сегмента при 32-разрядной адресации составляет 4 Гб (2^32 байт). Максимальное число таких сегментов равно 2^13 (8192). Сегмент может иметь произвольную длину в допустимых границах. Каждый сегмент характеризуется 8-байтной структурой данных - дескриптором сегмента, в котором, в числе прочего, указаны: - Права доступа, которые определяют возможность чтения, записи и исполнения сегмента. - Уровень привилегий (относится к четырехуровневой системе защиты). На сегментации основана защита памяти. При этом не допускается: - использовать сегменты не по назначению (нарушение прав доступа); - обращаться к сегменту, не имея достаточных привилегий; - адресоваться к элементам, выходящим за границы сегмента. Страничная организация памяти позволяет использовать большее пространство памяти. При этом базовым объектом памяти служит блок фиксированного размера 4 Кб. Физический адрес памяти, получаемый на выходе сегментного и страничного преобразования памяти, является 32-разрядным, позволяя адресовать, таким образом, до 4 Гб реально доступной физической памяти. Четырехуровневая система привилегий предназначена для управления использованием привилегированных инструкций, а также для защиты пространства памяти и ввода/вывода. Уровни привилегий нумеруются от 0 до 3, нулевой уровень соответствует максимальным (неограниченным) возможностям доступа и отводится для ядра ОС, Уровень 3 имеет самые ограниченные права и обычно предоставляется прикладным задачам. Систему защиты обычно изображают в виде колец, соответствующих уровням привилегий, а сами уровни привилегий иногда называют кольцами защиты. В зависимости от уровня привилегий осуществляется защита по доступу к привилегированным командам, по доступу к данным с более высоким уровнем привилегий и по передаче управления коду с уровнем привилегий, отличным от текущего. Защищенный режим предоставляет средства переключения задач. Состояние каждой задачи (значения всех связанных с ней регистров процессора) может быть сохранено в специальном сегменте состояния задачи. Там же хранится карта разрешения ввода/вывода, указывающая для каждого из 64К адресов портов ввода/вывода возможность обращения к нему. ОС NT использует два кольца защиты - 0 и 3, имея соответственно режим работы в 0 кольце - kernel mode, в 3 кольце - user mode. Предотвращение выполнения данных (DEP) используется для предотвращения проникновения на компьютер вирусов и других угроз безопасности, которые выполняют вредоносный код из областей памяти, которые должны использоваться только операционной системой Windows и другими программами. Такой тип угроз безопасности наносит ущерб, занимая по очереди все области памяти, используемые программой. Затем вирус распространяется и повреждает другие программы, файлы и даже контакты электронной почты. В отличие от брандмауэра или антивирусной программы средство DEP не препятствует установке потенциально опасных программ на компьютер. Вместо этого выполняется наблюдение, чтобы программы использовали системную память безопасным образом. Для этого DEP работает отдельно или вместе с совместимыми микропроцессорами и помечает некоторые области как «невыполняемые». Если программа пытается запустить код (любой код) из защищенной области, DEP закрывает программу и отображает уведомление. В Windows XP SP2 технология DEP обеспечивается аппаратными и программными средствами. Аппаратная защита Предотвращение выполнения данных (DEP) отмечает все ячейки памяти в процессе как невыполнимые, если ячейки явно не содержит выполнимый код. Есть отдельный класс атак, которые пытаются вставить и выполнить вредоносный код из невыполнимых ячеек памяти. Предотвращение выполнения данных (DEP)помогает предотвращать эти атаки, перехватывая их и подключая исключения. Программная защита Дополнительный набор проверок безопасности предотвращения выполнения данных был добавлен в SP2. Эти разработки, известные как принужденное программное предотвращение выполнения данных, разработаны, чтобы смягчить работу исключений, работающих с механизмами в Windows XP. Gринужденное программноепредотвращение выполнения данных работает на любом процессоре, который позволяет работать с Windows XP SP2. Программная защита работает независимо от Аппаратной защиты. Как можно проверить доступность DEP на компьютере? Откройте окно «Свойства системы» На вкладке Дополнительно в группе Производительность нажмите кнопку Параметры. Откройте вкладку Предотвращение выполнения данных. Как включить или отключить предотвращение выполнения данных для программы Если предотвращение выполнения данных (DEP) отключено для конкретной программы, эта программа становится уязвимой для атак. Успешная атака может распространиться на другие программы на компьютере и повредить контакты и личные файлы. Если возможно, что программа не работает правильно при включенных параметрах DEP, обратитесь к издателю программного обеспечения за версией программы, совместимой с DEP, и выполните обновление программы, прежде чем изменять параметры DEP.Для выполнения этой процедуры необходимо войти в систему с учетной записью «Администратор» или члена группы «Администраторы». Если компьютер подключен к сети, то параметры сетевой политики могут запретить выполнение данной процедуры. Откройте окно «Свойства системы» На вкладке Дополнительно в группе Производительность нажмите кнопку Параметры. Откройте вкладку Предотвращение выполнения данных. В списке Включить DEP для всех программ, кроме выбранных выполните одно из следующих действий. Чтобы отключить DEP для программы, установите флажок рядом с именем программы и нажмите кнопку OK. (Если имени необходимой программы нет в списке, нажмите кнопку Добавить, перейдите в папку Program Files, выделите исполняемый файл программы (он должен иметь расширение EXE) и нажмите кнопку OK.) или Чтобы включить DEP для программы, снимите флажок рядом с именем программы и нажмите кнопку OK