Общая структура Windows XP и методы атак

Автор работы: Пользователь скрыл имя, 06 Февраля 2013 в 04:57, реферат

Описание

Архитектура функционирования ОС Windows XP состоит из двух частей: привилегированного режима ядра и пользовательского непривилегированного режима, степень ограничение прав которого зави¬сит от типа ОС и используемого центрального процес¬сора.

Работа состоит из  1 файл

Сис адм 1 февраля.doc

— 110.50 Кб (Скачать документ)

Общая структура Windows XP  
и методы атак

Цель: изучение структуры Windows XP.

 

1. Теоретическая  часть: 

1.1. Базовые механизмы функционирования Windows XP

 

Архитектура функционирования ОС Windows XP состоит из двух частей: привилегированного режима ядра и пользовательского непривилегированного режима, степень ограничение прав которого зависит от типа ОС и используемого центрального процессора.

ОС Windows XP в значительной мере использует возможности процессоров, совместимых с семейством Intel x86. В их аппаратной архитектуре предусматривается четыре уровня привилегий выполнения кода программ от 0-го наивысшего привилегированного, до 4-го пользовательского режима с ограниченным набором команд процессора. Программы режима ядра ОС Windows XP функционируют в нулевом, защищенном и привилегированном режиме, а остальные пользовательские программы работают в менее привилегированных режимах, находясь под контролем программ режима ядра. ОС Windows, как и большинство других современных ОС, в основном использует только два приоритета: 0 и 3, соответственно для режимов системы ядра и режима пользовательских программ. В режиме пользователя функционируют:

1.Пользовательские приложения.

2.Подсистемы среды Win32, которые выполняют роль переводчиков на язык ядра системы.

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

4.Подсистема DLL, Dynamic Link Library определяет загрузку частей программ по мере их надобности операционной системе. Функционирование подсистемы обеспечивает файл NTDLL.DLL – программа по поддержке в системе файлов *.DLL, которыми могут пользоваться программы пользователя.

В режиме ядра выполняется  программы, которые относятся к критически важным функциям ОС. Именно в режиме ядра происходит выполнение системного потока операционной системы (программы операционной системы). Поток – часть программы, которая выполняется операционной системой. Процессом ОС называется целиком приложение, которое исполняется в данный момент в системе.

ОС предоставляет  своим программам свой набор API-вызовов. API, Application Program Interface – сервисы, функции или данные, которые предоставляет операционная система пользовательским программам. Все современные операционные системы запрещают доступ программ к ресурсам компьютера, предоставляя им взамен мощные, быстрые и надежные сервисы API. При вызове системной API-функции система переходит из уровня пользователя в уровень системы.

Помимо ядра ОС содержит ряд подпрограмм, например: для выполнения запросов к файловой системе используется файловая подсистема, для координации операций ввода-вывода используется менеджер ввода-вывода, для ускорения работы системы используется менеджер кэш-памяти, который сохраняет наиболее часто используемую информацию в сверхбыстрой оперативной памяти. В состав ОС входят специальные системы управления потоками и процессами, система безопасности, система виртуальной памяти, которая виртуально расширяет доступную память в компьютере, делая работу прикладных программ более комфортной и быстрой. Для отображения информации на мониторе компьютера используется модуль GDI, Graphics Device Interface – интерфейс графических устройств.

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

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

 

1.2. Принципы внутреннего функционирования Windows XP

 

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

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

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

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

  • ядро Windows XP выполняет все низкоуровневые функции ОС: управление потоками, управление прерываниями и исключениями, управление синхронизацией процессов, так же включает набор процедур и базовых объектов, используемых исполняемой частью для создания высокоуровневых элементов;
  • исполняемая часть, NT Executive включает управление: памятью, процессами, потоками, безопасностью, вводом-выводом и межпроцессорными обменами;
  • уровень абстрагирования от оборудования, HAL изолирует ядро, драйвера устройств и исполняемую часть Windows от аппаратных особенностей платформы;
  • драйвера устройств, включая файловую систему и аппаратные драйвера, которые транслируют пользовательские запросы и вызовы в соответствующие команды оборудованию по портам ввода-вывода, а потом возвращают информацию о статусе этих устройств обратно программам и компонентами ОС более высокого уровня; находятся в подкаталоге Isystem32l drivers системного каталога и имеют тип файла *.sys,
  • функции графического интерфейса (файл Gdi32.dll) работают с окнами, элементами управления и рисунками.

Ядро ОС находится в файле: 

%SystemRoot%\SYSTEM32\ntoskrnl.exe,

где %SystemRoot% – значение системно-зависимой переменной SystemRoot.

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

Одной из функций ядра является формирование специальных примитивов, используемых ОС – структурами данных, называемыми объектами ядра. Данные виды объектов обеспечивают нормальную работу компонентов высшего уровня. Ядро изолирует себя от остальной части ОС, что позволяет все, кроме диспетчеризации потоков, вынести за его уровень. Ядро использует набор простейших объектов (объектов ядра), которые позволяют управлять работой центрального процессора и порядком создания обрабатываемых объектов. Большинство обрабатываемых объектов включает в себя один или более объектов ядра, включая определенные ядром атрибуты. Один из наборов объектов связан с обработкой вызова различных процедур, в то время как другие заняты диспетчеризацией и синхронизацией потоков, потоком ядра, объектами синхронизации потоков, различными событиями системы, вроде возникновения прерывания, ответа от устройства и прочее.

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

Исполняемая часть, NT Executive использует сервисы ядра и включает следующие компоненты:

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

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

  • менеджер объектов, который создает объекты и абстрактные типы 
    данных и управляет ими; объекты используются для предоставления таких ресурсов, как процессы, потоки и объекты синхронизации потоков;
  • система LPC (Local Process Communication, локальная коммуникация между процессами) передает сообщения между клиентским процессом и процессом сервера на том же компьютере; фактически это оптимизированная версия процедуры удаленного вызова процедур RPC (Remote Procedure Call, удаленный вызов процедур), который является стандартным для организации процесса взаимодействия процессов в архитектуре клиент/сервер;
  • набор библиотечных функций: обработка строк, арифметические операции, преобразование типов данных, обработка структур.
  • процедуры распределения памяти, взаимообмен между процессами через память; два специальных типа объектов синхронизации: ресурсы и объекты fast mutex (объекты класса mutex обеспечивают исключительный доступ программ к какому-либо ресурсу системы).

Уровень абстракции от оборудования HAL являются одним из наиболее важных компонентов ядра, который определяет переносимость и надежность ОС. Загружаемый модуль ядра hal.dll обеспечивает низкоуровневый интерфейс с аппаратной платформой, что позволяет скрыть аппаратно-зависимые и специфичные для архитектуры детали: интерфейс ввода-вывода, котроллеры прерываний, механизм обмена данными между процессорами.

Драйвера устройств – загружаемые модули, которые работают в режиме ядра и обеспечивают интерфейс между системой ввода-вывода и соответствующим оборудованием. Имена модулей обычно имеют расширения .sys. Как правило, они написаны на языке Си (но иногда встречается и язык C++) с использованием процедур и функций уровня HAL и могут быть переносимы на уровне двоичного кода между платформами, поддерживаемыми Windows XP. Существует несколько типов драйверов устройств:

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

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

В режиме пользователя ОС Windows XP имеется четыре типа пользовательских процессов:

  • специальные процессы поддержки системы, например, процесс регистрации пользователей и менеджер сессий, которые не являются службами ОС;
  • процессы сервера, которые являются службами системы, например, регистратор событий Event Logger; многие устанавливаемые приложения и драйвера устройств включают в себя процессы-серверы, работающие как службы;
  • подсистемы среды, которые обеспечивают пользовательским приложениям среду для других ОС; Windows XP поставляется с тремя типами систем: Win32, POSIX и OS/2 2.1;
  • пользовательские приложения одного из пяти типов: Win32 (например программы, из комплекта Microsoft Office, Windows Media Player и др.), Windows 3.1, MS-DOS, POSIX или OS/2 2.1.

Информация о работе Общая структура Windows XP и методы атак