Управлние правами доступа к ресурсам




Система безопасности платформы Windows основана на модели безопасности для каждого пользователя или группы пользователей. Каждый пользователь, зарегистрированный в системе, имеет собственную учетную запись, которая содержит персональную информацию о пользователе. Эти данные система использует для проверки подлинности пользователя и для авторизации его при доступе к ресурсам домена. После прохождения процедуры аутентификации пользователю присваивается маркер доступа, идентифицирующий пользователя, его группу, а также определяющий доступные пользователю привилегии в системе для доступа к ресурсам. При этом каждому объекту системы, включая файлы, принтеры, сетевые службы, контейнеры Active Directory и другие, присваивается дескриптор безопасности. Дескриптор безопасности объекта определяет права доступа к объекту и содержит список контроля доступа (ACL – Access Control List), в котором явно определяется, каким пользователям разрешено выполнять те или иные действия с этим объектом. Дескриптор безопасности объекта также определяет, для каких событий должен вестись аудит. Авторизация Windows основана на сопоставлении маркера доступа субъекта с дескриптором безопасности объекта. Управляя свойствами объекта, администраторы могут устанавливать разрешения, назначать право владения и отслеживать доступ пользователей. Каждый дескриптор безопасности может содержать списки двух типов. Системный список управления доступом (SACL – System Access Control List) позволяет отслеживать права и ограничения, установленные для объекта на системном уровне. В этот список могут вносить изменения только те пользователи, которые обладают правами доступа на уровне системы.

Пользовательский список управления доступом (DACL – Discretionary Access Control List) позволяет отслеживать права и ограничения, установленные владельцем данного объекта. DACL может быть изменен пользователем, который указан как текущий владелец объекта.

Оба списка имеют одинаковую структуру. Они могут не содержать ни одной записи либо содержать одну или несколько записей. Каждая запись (ACE – Access Control Entry) состоит из трех частей: в первой указываются пользователи или группы, к которым относится данная запись, во второй – права доступа, а третья информирует о том, предоставляются эти права или отбираются. Дескрипторы безопасности могут быть представлены либо в абсолютном, либо в относительном формате. Абсолютный формат предусматривает запись дескриптора безопасности в память в виде структуры указателей и, поэтому, онболее удобен для обновления содержимого дескриптора.

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

Задавать список прав доступа можно непосредственно в оконном диалоге Windows в окне свойств объекта (см. рис.6.2 с определением прав на доступ к файлу), а можно программно, используя специальные API-функции. В листинге 1 представлен фрагмент программы, позволяющей программно изменить права доступа к файлу для некоторого пользователя.

Рис.6.2. Определения прав доступа к файлу в Windows

Листинг 1. Программа управления правами доступа к объектам в Windows

SID_NAME_USE SIDType;

PSECURITY_DESCRIPTOR pNewFileSD;

PACL pNewFileDACL;

char *filename = “c:\estfle.dat”; //имя файла

char *username =”guest”; //имя пользователя

char szDomainName[250]=”VPI”; //название домена

char UserSID[2048]; //идентификатор безопасности пользователя

DWORD dwSIDLength = sizeof(UserSID);

DWORD dwDomainLength = sizeof(szDomainName);

DWORD dwNewACLSize;

// получитьSID (идентификатор безопасности) пользователя (группы)

LookupAccountName((LPSTR) NULL, username, UserSID, &dwSIDLength, szDomainName,

&dwDomainLength, &SIDType);

// Инициализировать новыйSD (дескриптор безопасности)

InitializeSecurityDescriptor(pNewFileSD, SECURITY_DESCRIPTOR_REVISION);

//получить размер ACL

dwNewACLSize =sizeof(ACL) + sizeof(ACCESS_ALLOWED_ACE)+ GetLengthSid(UserSID) -

sizeof(DWORD);

//создать и проинициализировать новый ACL

InitializeAcl(pNewFileDACL, dwNewACLSize, ACL_REVISION2);

//поместить новый ACE с разрешением на чтение файла для пользователя в конец DACL

AddAccessAllowedAce(pNewFileDACL, ACL_REVISION2, GENERIC_READ, &UserSID);

// записатьDACL в новый SD файла

SetSecurityDescriptorDacl(pNewFileSD, TRUE, pNewFileDACL, FALSE);

// установить новый SD для файла с именем в filename

SetFileSecurity(filename, DACL_SECURITY_INFORMATION, pNewFileSD);

Разграничение прав доступа пользователей к файлам и папкам в Windows возможно только при использовании файловой системы NTFS. Эта файловая система обеспечивает поддержку дескрипторов безопасности для элементов файловой системы и позволяет определять следующие права на доступ: чтение, запись, выполнение, удаление, изменение прав доступа, получение права владельца, запись/чтение атрибутов (см. рис. 6.2). Необходимо, однако, отметить, что файловая система NTFS не выполняет шифрования информации на носителях, в связи с чем существует возможность получить доступ к информации на физическом уровне, например, загрузившись с другой операционной системы, получить доступ к информации в файлах. Такую возможность предоставляет утилита ntfsdos.exe, которую можно запустить, предварительно загрузив на компьютер операционную систему MS DOS c гибкого диска. Для того чтобы предотвратить доступ к логическим NTFS – дискам необходимо запретить загрузку компьютера с гибкого диска, запретить подключение других носителей к компьютеру и отключение носителя от компьютера. Альтернативой этому комплексу мер может стать использование файловой системы EFS (Encrypting File System). Шифрующая файловая система EFS - это тесно интегрированная с NTFS служба, располагающаяся в ядре Windows. Ее назначение: защита данных, хранящихся на диске, от несанкционированного доступа путем их шифрования. EFS использует архитектуру Windows CryptoAPI. В ее основе лежит технология шифрования с открытым ключом. Для шифрования каждого файла случайным образом генерируется ключ шифрования файла. В текущей реализации EFS использует алгоритм - DESX, являющийся специальной модификацией стандарта DES.

Локальные учетные записи пользователей в Windows хранятся в базе данных SAM (Security Account Manager). Она располагается в каталоге \%Systemroot%\System32\ConfIg в отдельном файле, который называется SAM. В учетных записях базы данных SAM находится информация о пользовательских именах и паролях, которая необходима для идентификации и аутентификации пользователей при их интерактивном входе в систему. Учетные записи создаются с использованием инструмента Local Users and Groups (Локальные пользователи и группы) из программы Computer Management (Управление компьютером). Информация в SAM хранится в зашифрованном виде. Пароль пользователя сначала хэшируется алгоритмом MD4, затем результат хэширования кодируется алгоритмом DES, причем в качестве ключа шифрования используется так называемый относительный идентификатор пользователя (Relative Identifier, RID), который представляет собой автоматически увеличивающийся порядковый номер учетной записи данного пользователя в базе данных SAM. При входе пользователя в систему его пароль подвергается аналогичным преобразованиям, и если их результат совпадет с содержимым SAM, пользователь проходит аутентификацию. Для предотвращения доступа злоумышленника к базе данных SAM доступ к ней заблокирован для всех без исключения ее пользователей. Однако, существует возможность сохранить копию этого файла с помощью утилиты резервного копирования NTBACKUP. Доступ возможен также при загрузке альтернативной ОС (уже упоминавшаяся утилита ntfsdos.exe из под MS DOS может предоставить доступ к SAM). Необходимо также защищать от несанкционированного доступа автоматически создаваемую сжатую архивную копию SAM (файл SAM) в каталоге \%Systemroot%\Repair.

При наличии файла SAM злоумышленник может получить доступ к хранящимся в нем учетным записям, используя такие программы, как LOphtCrack или Advanced NT Security Explorer. В связи с этим необходимо защищать SAM от несанкционированного доступа, запретив загрузку альтернативных ОС с других дисков в BIOS, установив соответствующие права доступа к файлам SAM в системе или используя специальную утилиту SYSKEY, дополнительно шифрующую содержимое файла SAM.

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

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-12-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: