В данной статье речь пойдет о том, как действуют разрешения для папок и файлов, и о наиболее эффективных способах их применения
Для управления доступом пользователей к папкам и файлам используется детализированная и сложная система разрешений. Механизм управления доступом к объектам Windows — один из самых детализированных среди известных операционных систем. Для файлов и папок существует не менее 14 разрешений NTFS, которые могут быть включены или блокированы — и проверены. Эти разрешения можно назначать файлам или папкам и пользователям или группам. Кроме того, можно назначать порядок наследования разрешений для файлов или папок и пользователей или групп. В лабиринте разрешений легко заблудиться. .
Основы доступа к объектам
Пользователь никогда не входит в непосредственное «соприкосновение» с каким-либо объектом Windows. Весь доступ к объектам осуществляется через программы (например, Windows Explorer, Microsoft Office) или процессы. Программа, которая обращается к ресурсам от лица пользователя, выполняет процедуру, которая называется имперсонализацией (impersonation). Программа, которая обращается к удаленному ресурсу, выполняет процедуру, которая называется делегированием (delegation).
После регистрации пользователя его системный идентификатор (System Identifier — SID) и идентификаторы SID группы обрабатываются процессом lsass.exe, который генерирует маркер безопасного доступа пользователя. В маркер безопасного доступа вводится и другая информация, в том числе о назначенных пользователю правах (разрешениях), ID сеанса пользователя (уникален для каждого сеанса), маске разрешений с детальным описанием типа запрошенного доступа. Права, назначенные пользователю, можно увидеть с помощью команды
WHOAMI /all
Если программа обращается от лица пользователя к защищенному ресурсу, то монитор защиты (security reference monitor) Windows запрашивает у программы маркер безопасного доступа пользователя. Затем монитор защиты анализирует маркер, чтобы определить эффективные разрешения пользователя, и разрешает или запрещает выполнение запрошенной пользователем операции. Эффективные разрешения более подробно описаны ниже.
Разрешения Share
Каждый защищенный объект Windows — в том числе файлы, папки, общие ресурсы, принтеры и разделы реестра — поддерживает разрешения безопасности. Любую папку Windows можно сделать общедоступной, чтобы разрешить дистанционный доступ. Разрешения Share можно назначать любым объектам folder и printer в Windows, но разрешения применяются, только если обращение к объекту происходит через сетевой ресурс. К разрешениям Folder Share относятся Full Control, Change и Read.
Субъекты безопасности, которым присвоено право полного доступа (Full Control) к объекту, могут производить с объектом почти любые операции. Они могут удалить, переименовать, копировать, переместить и изменить объект. Пользователь с правом Full Control может изменить разрешения Share объекта и стать владельцем объекта (если он уже не является владельцем и не имеет разрешения Take Ownership). Таким образом, любой пользователь с разрешением Full Control может отменить разрешения других лиц, в том числе администратора (хотя администратор может всегда вернуть себе владение и разрешения). Возможность изменять разрешения — обязательное требование любой операционной системы с избирательным управлением доступом (discretionary access control — DAC), такой как Windows.
В большинстве случаев, основное разрешение доступа к ресурсу, необходимое обычным пользователям — Change. С помощью разрешения Change пользователь может добавлять, удалять, изменять и переименовывать любые ресурсы в соответствующей папке. Разрешение Read обеспечивает просмотр, копирование, переименование и печать объекта. Пользователь с разрешением Read может копировать объект в другое место, в котором имеет право Full Control.
Разрешения NTFS
Если в Windows используется файловая система NTFS (а не FAT), то все файлы, папки, разделы реестра и многие другие объекты имеют разрешения NTFS. Разрешения NTFS применяются как при локальном, так и при дистанционном доступе к объекту. Для просмотра и изменения разрешений NTFS файла или папки достаточно щелкнуть правой кнопкой мыши на объекте, выбрать пункт Properties и перейти к вкладке Security.
В Таблице 1 показаны 7 суммарных разрешений NTFS. Суммарные разрешения представляют собой различные комбинации 14 более детализированных разрешений, показанных в Таблице 2. Просмотреть детализированные разрешения можно, открыв диалоговое окно Advanced Security Settings для объекта щелчком на кнопке Advanced во вкладке Security, а затем щелкнуть на кнопке Edit во вкладке Permissions. Знакомиться с детализированными разрешениями объекта (особенно требующего повышенной безопасности) — полезная привычка, хотя для этого требуется больше усилий. Суммарные разрешения не всегда точно отражают состояние детализированных разрешений. Например, мне приходилось видеть суммарное разрешение Read, хотя в действительности пользователь имел разрешение Read & Execute.
Аналогично разрешению Full Control Share, разрешение Full Control NTFS предоставляет владельцам большие возможности. Пользователи, не являющиеся администраторами, часто имеют разрешение Full Control в своем домашнем каталоге и других файлах и папках. Как уже отмечалось, обладатель прав такого уровня может изменять разрешения файла и назначить себя владельцем. Вместо того чтобы предоставлять пользователям разрешение Full Control, можно дать им лишь право Modify. Если пользователь — владелец файла, то при необходимости можно вручную запретить ему изменять разрешения.
Технически, разрешения NTFS известны как избирательные списки управления доступом (discretionary ACL — DACL). Разрешения аудита известны как системные ACL (SACL). Большинство защищенных объектов NTFS располагают разрешениями обоих видов.
Влияние доверительных отношений Windows
По умолчанию все домены и леса Windows 2000 и более поздних версий имеют двусторонние доверительные отношения со всеми другими доменами леса. Если домен доверяет другому домену, то все пользователи в доверенном домене имеют те же разрешения безопасности в доверяющем домене, что и группа Everyone и группа Authenticated Users доверяющего домена. В любом домене многие разрешения этим группам назначаются по умолчанию, и доверительные отношения неявно обеспечивают широкие права, которые не были бы предоставлены в ином случае. Следует помнить, что если доверительные отношения не носят выборочного характера, то любые разрешения, предоставляемые группам Everyone и Authenticated Users, назначаются и всем другим пользователям в лесу.
Проверка разрешений из командной строки
Администраторы часто используют такие инструменты командной строки, как subinacl.exe, xacls.exe и cacls.exe для проверки разрешений NTFS. Subinacl входит в набор ресурсов Windows Server 2003 Resource Kit Tools, и программу можно загрузить отдельно из адреса http://www.microsoft.com/downloads/details.aspx?familyid=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b&displaylang=en. С помощью Subinacl можно просматривать и изменять разрешения NTFS для файлов, папок, объектов, разделов реестра и служб. Самая важная возможность Subinacl — скопировать разрешения пользователя, группы или объекта и применить их к другому пользователю, группе или объекту в том же или другом домене. Например, при перемещении пользователя из одного домена в другой в Windows создается новая учетная запись user; все ранее существовавшие SID или разрешения, связанные с первоначальным пользователем, отменяются. Скопировав разрешения в новую учетную запись user с помощью Subinacl, можно сделать их идентичными. Xcacls функционирует аналогично Subinacl и входит в состав комплекта ресурсов Windows 2000 Server Resource Kit. Программу можно также загрузить по адресу http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/xcacls-o.asp.
Программа Cacls описана в опубликованной компанией Microsoft статье «Undocumented CACLS: Group Permissions Capabilities» (http://support.microsoft.com/?kbid=162786). Это более старый инструмент, который появился в составе Windows со времени Windows NT. Cacls не столь полезна, как Subinacl или Xacls, но утилита всегда имеется в системе Windows. С помощью Cacls можно просматривать и изменять файлы и разрешения по пользователям и группам, но не создавать детализированные разрешения NTFS. В настоящее время возможности Cacls ограничены работой с разрешениями No Access, Read, Change и Full Control, которые соответствуют разрешениям NTFS, но не разрешением Share. Кроме того, разрешение Read программы Cacls соответствует разрешению Read & Execute системы NTFS.
Наследование
По умолчанию все файлы, папки и разделы реестра наследуют разрешения от родительского контейнера. Наследование можно активизировать или отключить для индивидуальных файлов, папок или разделов реестра и для отдельных пользователей или групп. Как мы видим на Экране 1, поле Apply To на вкладке Permissions диалогового окна Advanced Security Settings показывает, ограничено ли действие конкретного разрешения текущим контейнером, или оно распространяется на подпапки и файлы. Администратор может назначить разрешение (для отдельных пользователей), которые наследуются или нет. В данном примере группа Everyone имеет разрешение Read & Execute в текущей папке, и это разрешение не наследуется.
Экран 1. Детальные разрешения объекта
Если файл или папка наследует большинство своих разрешений, но имеет также и набор явно заданных разрешений, то последние всегда имеют приоритет перед унаследованными правами. Например, можно предоставить пользователю разрешение Full Control-Deny в корневом каталоге конкретного тома, и задать наследование этих разрешений всеми файлами и папками диска. Затем можно назначить любому файлу или папке на диске право доступа, которое отменяет унаследованный режим Full Control-Deny.
Эффективные разрешения
Монитор защиты Windows определяет эффективные разрешения пользователей (реальные разрешения, которыми они располагают на практике) с учетом нескольких факторов. Как отмечалось выше, монитор защиты сначала собирает информацию об индивидуальной учетной записи пользователя и всех группах, к которым он принадлежит, и обобщает все разрешения, назначенные всем пользовательским и групповым SID. Если разрешения Deny и Allow существуют на одном уровне, то, как правило, приоритет имеет Deny. Если приоритет получает Full Control-Deny, то пользователь, как правило, не имеет доступа к объекту.
По умолчанию при учете разрешений NTFS и Share (пользователь подключается к ресурсу через сеть) монитор защиты должен собрать все разрешения Share и NTFS. В результате эффективные разрешения пользователя представляют собой набор разрешений, предоставленных как разрешениями Share, так и NTFS.
Например, в конечном итоге у пользователя могут оказаться Share-разрешения Read и Change, и NTFS-разрешения Read и Modify. Эффективные разрешения — самый ограниченный набор разрешений. В данном случае разрешения почти идентичны. Эффективными разрешениями будут Read и Change/Modify. Многие администраторы ошибочно полагают, что эффективные разрешения — только Read, из-за плохих, чрезмерно упрощенных примеров или устаревшей документации.
В диалоговом окне Advanced Security Settings в Windows XP и более новых версиях появилась вкладка Effective Permissions (см. Экран 2). К сожалению, на вкладке Effective Permissions отражаются только разрешения NTFS. Не учитывается влияние разрешений Share, групп на базе действий, членства в которых пользователь не имеет, и других факторов, таких как файловая система с шифрованием (Encrypting File System — EFS). Если EFS активизирована для файла или папки, то пользователь с соответствующими разрешениями NTFS и Share может лишиться возможности доступа к объекту, если не имеет права доступа EFS к папке или файлу.
Экран 2. Эффективные разрешения объекта NTFS
Рекомендации
В завершении статьи — несколько рекомендаций по работе с файлами и папками:
- Осмотрительно предоставлять разрешения Full Control обычным пользователям. Полезно назначить им вместо этого разрешение Modify. В большинстве случаев такой подход обеспечивает пользователям все необходимые разрешения, не позволяя изменять права или присваивать себе владение.
- Аккуратно работайте с группой Everyone; лучше использовать группу Authenticated Users (или Users), или специальную группу с ограниченными правами. Важные упущения группы Authenticated Users — отсутствие Guest и неаутентифицированного пользователя.
- Нередко сетевых администраторов просят ввести гостевые учетные записи для сторонних пользователей (например, консультантов, подрядчиков, внештатных программистов). Но права обычного пользователя часто избыточны для гостя. Следует сформировать и использовать группу, права которой по умолчанию сильно урезаны (например, разрешение Full Control-Deny для корневых каталогов), а затем явно разрешить доступ только к файлам и папкам, необходимым данной гостевой учетной записи. Явно назначаемые разрешения предпочтительны, поскольку предоставляют гостевым пользователям именно те разрешения, которые необходимы для их работы, но не больше.
- Следует проявлять осторожность, налагая запреты на группы Everyone и Users, так как администраторы входят и в эти группы.
- В случае доверительных отношений с другими доменами полезно применять одностороннее и селективное доверие, чтобы ограничить права пользователей доверенного домена.
- Необходимо периодически осуществлять аудит разрешений NTFS и Share, чтобы убедиться в том, что они максимально ограничены.
Используя эти рекомендации и справочные таблицы с кратким описанием всех разрешений, можно смело отправляться в лабиринт файловой системы. Администратор сможет уверенно назначать разрешения для файлов, папок, пользователей и групп.
Роджер Граймз (roger@banneretcs.com) — консультант по проблемам безопасности. Имеет сертификаты CPA, CISSP, CEH, CHFI, TICSA и MCSE: Security.
Таблица 1. Сводка разрешений NTFS
Разрешение |
Действие |
Read |
Обеспечивает просмотр, копирование, печать и переименование файлов, папок и объектов. Не позволяет запускать выполняемые программы, кроме файлов сценариев. Позволяет считывать разрешения объектов, атрибуты объектов и расширенные атрибуты (например, бит Archive, EFS). Позволяет составить список файлов и подпапок папки |
Write |
Разрешения чтения, плюс создание и перезапись файлов и папок |
List (Folders Only) |
Позволяет просматривать имена файлов и подпапок внутри папки |
Read & Execute |
Чтение разрешений и запуск программных файлов |
Modify |
Предоставляет все разрешения, кроме возможности присвоить владение и назначать разрешения. Позволяет читать, удалять, изменять и перезаписывать файлы и папки |
Full Control |
Обеспечивает полное управление папками и файлами, в том числе позволяет назначать разрешения |
Special Permissions |
Позволяет составлять комбинации из 14 более детальных разрешений, которые не входят ни в одно из остальных 6 суммарных разрешений. К этой группе относится разрешение Synchronize |
Таблица 2. Детальные разрешения NTFS
Разрешение |
Действие |
Traverse Folder / Execute File |
Traverse Folder позволяет перемещаться по папкам для доступа к другим файлам и папкам, даже если субъект безопасности не имеет разрешений в транзитной папке. Применяется только к папкам. Traverse Folder вступает в силу, только если субъект безопасности не имеет разрешения Bypass traverse checking user (предоставляется группе Everyone по умолчанию). Execute File позволяет запускать программные файлы. Назначение разрешения Traverse Folder для папки не устанавливает автоматически разрешения Execute File для всех файлов в папке |
List Folder / Read Data |
Обеспечивает просмотр имен файлов и подпапок в папке. List Folder воздействует только на содержимое папки — оно не влияет на то, будет ли внесена в список папка, для которой назначается разрешение. Read Data позволяет просматривать, копировать и печатать файлы |
Read Attributes |
Субъект безопасности видит атрибуты объекта (например, Read-only, System, Hidden) |
Read Extended Attributes |
Субъект безопасности видит расширенные атрибуты объекта (например, EFS, Compression) |
Create Files / Write Data |
Create Files позволяет создавать файлы внутри папки (применяется только к папкам). Write Data позволяет вносить изменения в файл и перезаписывать существующий контент (применяется только к файлам) |
Create Folders / Append Data |
Create Folders позволяет создавать папки внутри папки (применяется только к папкам). Append Data позволяет вносить изменения в конец файла, но не изменять, удалять или перезаписывать существующие данные (применяется только к файлам) |
Write Attributes |
Определяет, может ли субъект безопасности записывать или изменять стандартные атрибуты (например, Read-only, System, Hidden) файлов и папок. Не влияет на содержимое файлов и папок, только на их атрибуты. |
Write Extended Attributes |
Определяет, может ли субъект безопасности записывать или изменять расширенные атрибуты (например, EFS, Compression) файлов и папок. Не влияет на содержимое файлов и папок, только на их атрибуты |
Delete Subfolders and Files |
Позволяет удалять подпапки и файлы, даже если разрешение Delete не предоставлено подпапке или файлу |
Delete |
Позволяет удалять папку или файл. При отсутствии разрешения Delete для файла или папки ее можно удалить, если имеется разрешение Delete Subfolders and Files в родительской папке |
Read Permissions |
Позволяет читать разрешения (например, Full Control, Read, Write) файла или папки. Не позволяет прочитать сам файл |
Change Permissions |
Позволяет изменять разрешения (например, Full Control, Read, Write) файла или папки. Не позволяет изменять сам файл |
Take Ownership |
Определяет, кто может быть владельцем файла или папки. Владельцы всегда могут иметь Full Control, и их разрешения в файле или папке не могут быть постоянно отменены, если при этом не отменяется и право владения |
Synchronize |
Администраторы редко используют это разрешение. Применяется для синхронизации в многопотоковых, многопроцессных программах и определяет взаимодействие между несколькими потоками, которые обращаются к одному ресурсу |
Написание, компиляция и прогон программы получения стандартного списка контроля доступа к объектам из маркера доступа процесса
На основе предыдущей программы рекомендуется написать программу, которая выводит на экран список прав доступа «по умолчанию» для объектов, создаваемых данным процессом.
Проверка прав доступа
После формализации атрибутов защиты субъектов и объектов можно перечислить основные этапы проверки прав доступа
[
Руссинович
]
,
[
Рихтер
]
,
[
Рихтер, Кларк
]
, см.
рис.
13.3.
Рис.
13.3.
Пример проверки прав доступа к защищенному объекту
Этапов проверки довольно много. Наиболее важные этапы из них:
- Если SID субъекта совпадает с SID владельца объекта и запрашиваются стандартные права доступа, то доступ предоставляется независимо от содержимого DACL.
- Далее система последовательно сравнивает SID каждого ACE из DACL с SID маркера. Если обнаруживается соответствие, выполняется сравнение маски доступа с проверяемыми правами. Для запрещающих ACE даже при частичном совпадении прав доступ немедленно отклоняется. Для успешной проверки разрешающих элементов необходимо совпадение всех прав.
Очевидно, что для процедуры проверки важен порядок расположения ACE в DACL. Поэтому Microsoft предлагает так называемый предпочтительный порядок размещения ACE. Например, для ускорения рекомендуется размещать запрещающие элементы перед разрешающими.
Заключение
Подсистема защиты данных является одной из наиболее важных. В центре системы безопасности ОС Windows находится система контроля доступом. Реализованные модели дискреционного и ролевого доступа являются удобными и широко распространены, однако не позволяют формально обосновать безопасность приложений в ряде случаев, представляющих практический интерес. С каждым процессом или потоком, то есть, активным компонентом (субъектом), связан маркер доступа, а у каждого защищаемого объекта (например, файла) имеется дескриптор защиты. Проверка прав доступа обычно осуществляется в момент открытия объекта и заключается в сопоставлении прав субъекта списку прав доступа, который хранится в составе дескриптора защиты объекта.
Приложение. Формальные модели защищенности в ОС Windows
Представление информационной системы как совокупности взаимодействующих сущностей — субъектов и объектов — является базовым представлением большинства формальных моделей. В защите нуждаются и объекты, и субъекты. В этом смысле субъект является частным случаем объекта. Иногда говорят, что субъект — это объект, который способен осуществлять преобразование данных и которому передано управление .
Применение формальной модели строится на присвоении субъектам и объектам идентификаторов и фиксации набора правил, позволяющих определить, имеет ли данный субъект авторизацию, достаточную для предоставления указанного типа доступа к данному объекту.
Применение данного подхода может быть проиллюстрировано следующим образом.
Имеется совокупность объектов {Oi}, субъектов {Si} и пользователей {Ui}. Вводится операция доступа {Si} -> {Oj}, под которой подразумевается использование i-м субъектом информации из j-го объекта. Основные варианты доступа: чтение, запись и активация процесса, записанного в объекте. В результате последней операции появляется новый субъект {Si} -> {Oj} -> {Sk}.
Во время загрузки создается ряд субъектов (системных процессов), и к их числу принадлежит оболочка Sshell, с помощью которой прошедшие аутентификацию пользователи могут создавать свои субъекты (запускать свои программы). При помощи выполняемых программ пользователи осуществляют доступ к объектам (например, осуществляют чтение файлов). В итоге деятельность такого пользователя может быть описана ориентированным графом доступа (см.
рис.
13.4).
Рис.
13.4.
Пример графа доступа
Множество графов доступа можно рассматривать как фазовое пространство, а функционирование конкретной системы — как траекторию в фазовом пространстве. Защита информации может состоять в том, чтобы избегать «неблагоприятных» траекторий. Практически такое управление возможно только ограничением на доступ в каждый момент времени, или, как утверждается в известной «оранжевой» книге
[
DoD
]
, все вопросы безопасности информации определяются описанием доступов субъектов к объектам.
Можно ввести также особый вид субъекта, который активизируется при каждом доступе и называется монитором обращений. Если монитор обращений в состоянии отличить легальный доступ от нелегального и не допустить последний, то такой монитор называется монитором безопасности (МБ) и является одним из важнейших компонентов системы защиты.
Дискреционная модель контроля и управления доступом
Модели управления доступом регламентируют доступ субъектов к объектам. Наиболее распространена так называемая дискреционная (произвольная) модель, в которой обычные пользователи могут принимать участие в определении функций политики и присвоении атрибутов безопасности. Среди дискреционных моделей классической считается модель Харрисона-Руззо-Ульмана (см.
[
Таненбаум
]
) — в ней система защиты представлена в виде набора множеств, элементами которых являются составные части системы защиты: субъекты, объекты, уровни доступа, операции и т.п.
С концептуальной точки зрения текущее состояние прав доступа при дискреционном управлении описывается матрицей (см.
рис.
13.5), в строках которой перечислены субъекты, в столбцах — объекты, а в ячейках — операции, которые субъект может выполнить над объектом. Операции зависят от объектов. Например, для файлов это операции чтения, записи, выполнения, изменения атрибутов, а для принтера — операции печати и управления. Поведение системы моделируется с помощью понятия состояния Q = (S,O,M), где S,O,M — соответственно текущие множества субъектов, объектов и текущее состояние матрицы доступа.
Рис.
13.5.
Пример матрицы доступа
С учетом дискреционной модели можно следующим образом сформулировать задачу системы защиты информации. С точки зрения безопасности, поведение системы может моделироваться как последовательность состояний, описываемых совокупностью субъектов, объектов и матрицей доступа. Тогда можно утверждать, что для безопасности системы в состоянии Q0 не должно существовать последовательности команд, в результате которой право R будет занесено в ячейку памяти матрицы доступа M, где оно отсутствовало в состоянии Q0. (критерий Харрисона-Руззо-Ульмана). По существу необходимо ответить на вопрос: сможет ли некоторый субъект S когда-либо получить какие-либо права доступа к некоторому объекту O?
Очевидно, что для обеспечения безопасности необходимо наложить запрет на некоторые отношения доступа. Харрисон, Руззо и Ульман доказали, что в общем случае не существует алгоритма, который может для произвольной системы, ее начального состояния Q0 и общего права r решить, является ли данная конфигурация безопасной. Чтобы удовлетворить критерию безопасности в общем случае, в ИС должны отсутствовать некоторые операции создания и удаления сущностей, в результате чего эксплуатация подобной системы теряет практический смысл.
Каналы утечки информации в системах с дискреционным доступом
Таким образом, если не предпринимать специальных мер, система с дискреционным доступом оказывается незащищенной. Для иллюстрации можно продемонстрировать организацию канала утечки.
Очевидно, что для каждого субъекта S, активизированного в момент времени t, существует единственный активизированный субъект S’, который активизировал субъект S. Поэтому можно, анализируя граф, подобный изображенному на
рис.
13.5, выявить единственного пользователя, от имени которого активизирован субъект S.
Соответственно, для любого объекта существует единственный пользователь, от имени которого активизирован субъект, создавший данный объект. Можно сказать, что этот пользователь породил данный объект, а также сформировал для него список прав доступа.
В этом случае схематичное изображение канала утечки в виде разрешенного доступа от имени разных пользователей к одному и тому же объекту будет выглядеть следующим образом:
Ui -> (Write)-> O, в момент времени t1 и Uj -> (Read)-> O в момент времени t2, где i≠j и t1 < t2,
Фактически это означает, что ничто не мешает легальному пользователю (например, вследствие программной ошибки) перебросить секретную информацию во вновь созданный объект, доступ к которому открыт всем желающим, или организовать скрытый канал утечки при помощи троянского коня.
Итак, формальный анализ показывает, что безопасное использование систем с дискреционным контролем доступа предполагает наличие дополнительных защитных мер, а именно — тщательное проектирование и корректную реализацию системы защиты.
Ролевая политика безопасности
Другая возможность, предоставляемая ОС Windows — управление ролевым, в частности привилегированным доступом. Ролевая политика предназначена в первую очередь для упрощения администрирования информационных систем с большим числом пользователей и различных ресурсов.
В ролевой политике управление доступом осуществляется с помощью правил. Вначале для каждой роли указывается набор привилегий по отношению к системе и полномочий, представляющих набор прав доступа к объектам, и уже затем каждому пользователю назначается список доступных ему ролей. Классическое понятие субъект замещается понятиями пользователь и роль. Примером роли является присутствующая почти в каждой системе роль суперпользователя (группа Administrator для ОС Windows). Количество ролей обычно не соответствует количеству реальных пользователей — один пользователь может выполнять несколько ролей, и наоборот, несколько пользователей могут в рамках одной и той же роли выполнять типовую работу.
Таким образом, в рамках ролевой модели формируются близкие к реальной жизни правила контроля доступа и ограничения, соблюдение которых и служит критерием безопасности системы. Однако, как и в случае дискреционной модели, ролевая политика безопасности не гарантирует безопасность с помощью формальных доказательств.
Иногда бывает необходимо понять кто удалил/изменил/переименовал конкретный файл или папку. В ОС Windows для этого используется аудит доступа к объектам.
Аудит это запись в специальные журналы информации об определенных событиях (источник, код события, успешность, объект и т.д. ). Объектом аудита может являться как любой файл или папка, так и определенное событие, например вход в систему или выход из нее, то есть можно записывать все события происходящие с конкретным файлом или папкой — чтение, запись, удаление и т.д., можно события входа в систему и т.д.
Необходимо понимать, что аудит забирает на себя.
Для того, чтобы можно было настраивать аудит файлов и папок необходимо предварительно включить эту возможность через локальные (или в случае если у Вас используется Microsoft AD групповые) политики безопасности.
В случае локальных политик необходимо запустить оснастку “Локальная политика безопасности”, для этого необходимо нажать комбинацию клавиш Win+R, в открывшееся поле ввести secpol.msc и нажать клавишу Enter.
В открывшейся оснастке в дереве слева необходимо перейти в раздел “Локальные политики” — “Политика аудита”.
Далее необходимо выбрать необходимую нам политику — в данном случае это “Аудит доступа к объектам”. Именно этой политикой регулируется доступ к объектам файловой системы (файлам и папкам) и раскрыть ее двойным щелчком мыши. В открывшемся окне необходимо выбрать какие именно типы событий будут регистрироваться — “Успех” (разрешение на операцию получено) и/или “Отказ” — запрет операции и проставить соответствующие галочки, после чего нажать “Ок”.
Теперь когда включена возможность ведения аудита интересующих нас событий и их тип можно переходить к настройке самих объектов — в нашем случае файлов и папок.
Для этого необходимо открыть свойства файла или папки, перейти на вкладку “Безопасность”, нажать “Дополнительно” и “Аудит”.
Нажимаем “Добавить” и начинаем настраивать аудит.
Сначала выбираем субъект — это чьи действия будут аудироваться (записываться в журнал аудита).
Можно вписать туда имя пользователя или группы, если имя заранее неизвестно, то можно воспользоваться кнопкой “Дополнительно” которая открывает форму поиска где можно выбрать интересующих нас пользователей и группы. Чтобы контролировались действия всех пользователей необходимо выбрать группу “Все”.
Далее необходимо настроить тип аудируемых событий (Успех, Отказ, Все), также область область применения для аудита папок — только эта папка, папка с подпапками, только подпапки. только файлы и т.д., а также сами события аудита.
Для папок поля такие:
А такие для файлов:
После этого начнется сбор данных аудита. Все события аудита пишутся в журнал “Безопасность”. Открыть его проще всего через оснастку “Управление компьютером” compmgmt.msc.
В дереве слева выбрать “Просмотр событий” — “Журналы Windows” — “Безопасность”.
Каждое событие ОС Windows имеет свой код события. Список событий достаточно обширен и доступен на сайте Microsoft либо в интернете.
Попробуем например найти событие удаления файла, для этого удалим файл на котором предварительно настроен аудит (если это не тестовые файл, то не забываем сделать его копию, так как аудит это всего лишь информация о действиях, а не разрешение/запрет этих действий). Нам нужно событие с кодом 4663 — получение доступа к объекту, у которого в поле Операции доступа Написано “DELETE” . Поиск событий в журналах Windows достаточно сложен, поэтому обычно используются специализированные средства анализа — системы мониторинга, скрипты и т.д.
Вручную можно, например, задать например такой фильтр:
Далее в отфильтрованных событиях необходимо найти интересующее нас по имени объекта.
Открыть его двойным щелчком мыши и увидеть кто удалил данный файл в поле субъект.
Статья о разграничении прав доступа в операционных системах Windows: дискретном и мандатном. В статье рассматриваются разграничения прав доступа к папкам и файлам на уровне операционной системы Windows и с помощью Secret Net.
Содержание:
- Разграничение прав доступа на уровне операционной системы (дискретное разграничение в Windows)
- Разграничение прав доступа с помощью Secret Net
Дискретное разграничение прав доступа
Для того, что бы настроить правила безопасности для папок нужно воспользоваться вкладкой «Безопасность». В Windows XP эта вкладка отключена по умолчанию. Для ее активации нужно зайти в свойства папки (Меню «Сервис» -> «Свойства папки» -> «Вид») и снять флажок «Использовать простой общий доступ к файлам».
Основные права доступа к папкам
В файловой системе NTFS в Windows XP существует шесть стандартных разрешений:
- Полный доступ;
- Изменить;
- Чтение и выполнение;
- Список содержимого папки;
- Чтение;
- Запись.
В Windows 10 нет стандартного разрешения «Список содержимого папки».
Эти разрешения могут предоставляться пользователю (или группе пользователей) для доступа к папкам и файлам. При этом право «Полный доступ» включат в себя все перечисленные права, и позволяет ими управлять.
Права доступа назначаются пользователю для каждого объекта (папки и файла). Для назначения прав нужно открыть меню «Свойства» и выбрать вкладку «Безопасность». После этого выбрать необходимо пользователя, которому будут назначаться разрешения.
Создайте папки по названиям разрешений, всего у вас будет 6 папок для Windows XP и для Windows 10. Я рассмотрю на примере Windows XP, на «десятке» вам будет проще. Скачайте папки по ссылке и скопируйте в них содержимое (не сами папки, а то, что в них находится).
Отройте вкладку «Безопасность» в свойствах папки «Список содержимого папки». У меня есть пользователь user, вы можете добавить своего. Для того, что бы изменить право на объект нужно выбрать пользователя и указать ему разрешение, в данном случае «Список содержимого папки». Затем нажмите «Применить» и «ОК».
По аналогии установите права для соответствующих папок.
После установки прав доступа проверьте их. Для этого войдите в операционную систему под пользователем, для которого устанавливали права, в моем случае это user.
«Список содержимого папки» — предоставляет возможность просмотра файлов и папок в текущем каталоге. То есть вы можете посмотреть, что есть в папке, но запустить и открыть ничего не получиться.
«Чтение» — предоставляет возможность открывать в папке все файлы, кроме исполняемых файлов (например, с расширением .exe).
«Чтение и выполнение» — предоставляет возможность открывать в данном каталоге все файлы.
«Запись» — предоставляет возможность добавления файлов в папку без права на доступ к вложенным в него объектам, в том числе на просмотр содержимого каталога.
«Изменить» — предоставляет возможность открывать и создавать (изменять) файлы в папке.
«Полный доступ» — предоставляет все возможности для работы с папкой и вложенными файлами, включая изменение разрешений.
Откройте каждую папку и проверьте, что разрешения выполняются.
Элементы разрешений на доступ
Каждое разрешение состоит из нескольких элементов, которые позволяют более гибко настраивать систему безопасности. Войдите в операционную систему под учетной записью администратора.
Просмотреть элементы разрешений на доступ можно, нажав на кнопку «Дополнительно» во вкладке «Безопасность» и выбрав любой элемент разрешений.
Поэкспериментируйте с элементами и проверьте, как они работаю.
Владелец файла
В файловой системе NTFS у каждого файла есть свой владелец. Владельцем файла является пользователь операционной системы. Он может управлять разрешениями на доступ к объекту независимо от установленных разрешений.
Узнать, какой пользователь является владельцем файла или папки можно на закладке «Владелец» в дополнительных параметрах безопасности.
Наследование прав доступа
В файловой системе NTFS поддерживается наследование разрешений. Если вы устанавливаете разрешение на папку, то оно наследуется для всех вложенных файлов и папок.
При любых изменениях разрешений на родительскую папку они меняются в дочерних (вложенных) файлах и каталогах.
Для изменения унаследованных разрешений нужно открыть вкладку «Разрешения» в дополнительных параметрах безопасности. Там же можно отключить наследование разрешений.
Запреты
Кроме установки разрешений в файловых системах можно устанавливать запреты. Например, вы можете разрешить чтение и выполнение, но запретить запись. Таким образом, пользователь для которого установлен запрет и разрешения сможет запустить исполняемый файл или прочитать текстовый, но не сможет отредактировать и сохранить текстовый файл.
В дополнительных параметрах безопасности можно посмотреть действующие разрешения и для конкретного пользователя.
Разграничение прав доступа с помощью Secret Net (на примере версии 5.1)
При использовании Secret Net доступ к файлам осуществляется, в случае если пользователю присваивается соответствующий уровень допуска. В примере я использую Windows XP с установленным программным продуктом Secret Net 5.1.
Первым делом нужно запустить локальные параметры безопасности от имени Администратора: «Пуск –> Программы –> Secret Net 5 –> Локальная политика безопасности».
Далее необходимо перейти в «Параметры Secret Net» –> «Настройка подсистем» –> «Полномочное управление доступом: название уровней конфиденциальности».
Введите названия уровней. У меня это:
- Низший – Общедоступно.
- Средний – Конфиденциально.
- Высший – Секретно.
Настройка субъектов
Настройка субъектов в Secret Net производится в группе «Локальные пользователи и группы». Зайдите в меню «Пуск» –> «Программы» –> «Secret Net 5» –> «Управление компьютером» –> «Локальные пользователи и группы» –> «Пользователи».
Что бы настроить права администратора нужно выбрать учетную запись «Администратор» и перейти на вкладку Secret Net 5. Установим уровень доступа «секретно».
Далее установите все флажки.
- Управление категориями конфиденциальности означает, что пользователь имеет право изменять категории конфиденциальности папок и файлов, а так же может управлять режимом наследования категорий конфиденциальности папок.
- Печать конфиденциальных документов означает, что пользователь может распечатывать конфиденциальные документы. Данная возможность появляется, если включен контроль печати конфиденциальных документов.
- Вывод конфиденциальной информации означает, что пользователь может копировать конфиденциальную информацию на внешние носители.
После установки всех флажков нажмите «Применить» и «ОК».
Создадим нового пользователя. Для этого нужно перейти «Локальные пользователи и Группы» –> «Пользователи». Создайте новых пользователей, я назову их «Конфиденциальный» и «Секретный». По аналогии с пользователем Администратор установите для новых пользователей аналогичные уровни доступа и настройки как на рисунках ниже.
Настройка объектов
Та или иная категория конфиденциальности является атрибутом папки или файла. Изменения этих атрибутов производятся уполномоченными пользователями (в данном случае Администратором). Категория конфиденциальности может присваиваться новым файлам или папкам автоматически или по запросу.
Автоматическое присваивание категории конфиденциальности можно включить или отключить в окне настройки свойств папки. Этот параметр может редактировать только пользователь, у которого есть права на «Редактирование категорий конфиденциальности».
При этом стоит учесть, что категории конфиденциальности могут назначаться только папка и файлам в файловой системе NTFS. В случае если у пользователя нет такой привилегии, он может только повысить категорию конфиденциальности и только не выше своего уровня.
Попробуйте создать в паке новый файл или каталог, а после чего изменить ее уровень (повысить) и установить флажок «Автоматически присваивать новым файлам». У вас появиться окно «Изменение категорий конфиденциальности».
Выберите пункт «Присвоение категорий конфиденциальности всем файлам в каталоге» и нажмите «ОК» для присвоения категории конфиденциальности всем файлам кроме скрытых и системных файлов.
В случае если категория допуска пользователя выше чем категория конфиденциальности объект, то пользователь имеет право на чтение документа, но не имеет права изменять и сохранять документ.
Если пользователь с категорией «Общедоступно» попробует прочитать или удалить документ, то он получит соответствующие ошибки.
То есть пользователь не может работать с документами, у которых уровень конфиденциальности выше, чем у него.
Если вы зайдете под пользователем «Секретный» то вы сможете повысить уровень конфиденциальности файлов и работать с ними.
Не стоит забывать, что конфиденциальные файлы нельзя копировать в общедоступные папки, чтобы не допустить их утечки.
Контроль потоков данных
Контроль потоков данных используется для того, что бы запретить пользователям возможность понижения уровня конфиденциальности файлов.
Для этого нужно запустить «Локальные параметры безопасности»: «Пуск» – «Программы» –> «Secret Net 5» –> «Локальная политика безопасности», затем перейти в группу «Параметры Secret Net» –> «Настройки подсистем» и выбрать параметр «Полномочное управление доступом: Режим работы» и включить контроль потоков. Изменения вступят в силу после перезагрузки компьютера.
Если зайти (после перезагрузки) под пользователем «Секретный» появиться выбор уровня конфиденциальности для текущего сеанса. Выберите секретный уровень.
Если вы откроете файл с уровнем «Конфиденциально», отредактируете его и попробуете сохранить под другим именем и в другую папку, то вы получите ошибку, так как уровень сеанса (секретный) выше, чем уровень файла (конфиденциальный) и включен контроль потоков данных.
На этом все, если у вас остались вопросы задавайте их в комментариях.
Иногда при работе с файлами можно увидеть такое сообщение — «Отсутствует доступ к файлу». Сам файл есть, он на вашем компьютере, вы его главный и единственный пользователь, но почему-то вам не дают распоряжаться файлами. В чём дело?
А дело в том, что в операционной системе есть две важные сущности, которые отвечают за этот процесс:
- Пользователи — о них мы говорили недавно.
- Права доступа — об этом поговорим сейчас.
При чём тут операционная система
Когда вы хотите что-то сделать с файлом на компьютере, это действие происходит не напрямую: оно проходит через операционную систему. Копирование, переименование, чтение файла — всё через операционку.
Когда операционка получает задачу, например переименовать файл, она может броситься делать это сразу; а может провести какие-то дополнительные проверки — например, существует ли этот файл и нет ли в новом названии запрещённых символов или служебных обозначений. Это делается для безопасности работы компьютера, чтобы он ненароком не сломал сам себя.
Среди проверок может быть и проверка прав доступа.
Что такое права доступа
Так вот, у каждого пользователя в системе есть свои права: они определяют, что может делать этот пользователь, а что нет. Что они включают в себя:
- Какие файлы и папки пользователь может прочитать.
- В какие файлы и папки он может записать данные.
- Какие программы может запустить, какие инструкции исполнить.
Если операционная система видит, что пользователь хочет сделать что-то за пределами своих прав, она должна его остановить.
Вам может быть интересно:
Какие ещё есть пользователи на компьютере кроме нас
Даже если вы работаете за компьютером в гордом одиночестве, параллельно с вами работают системные службы и сервисы. Обычно у каждой это службы есть либо свой «системный пользователь», либо они объединены в едином пользователе «система»:
- менеджер печати, который отвечает за печать на принтере;
- система работы сети — она следит за всеми сетями и организует доступ к ним для всех приложений;
- системные процессы, которые занимаются техническими задачами — файловой системой, драйверами и приложениями.
Если в Windows открыть диспетчер задач, вы заметите этих скрытых пользователей и службы:
Почему права доступа разные и зачем это нужно
Основная задача разделения прав доступа — чтобы один пользователь не мог помешать работе другого пользователя и системы в целом.
Например, в Windows есть пользователь SYSTEM (Система) или Администратор, а в MacOS и Linux — root. Они отвечают за самые важные параметры и настройки компьютера, поэтому у них самый высокий уровень доступа — они могут делать с любыми файлами что угодно. При этом им могут принадлежать какие-то свои файлы и папки, к которым доступ может быть запрещён для других пользователей.
У других служебных пользователей уровень доступа другой — они могут распоряжаться только своими файлами, но запретить к ним доступ другим пользователям они тоже могут.
А обычному пользователю можно работать только со своими файлами и с теми, к которым разрешили доступ другие пользователи. Поэтому мы можем просматривать разные системные файлы, но удалить что-то действительно важное нам не позволят права доступа.
Чтение, запись и исполнение
Чаще всего в файловых системах используются три категории доступа — на чтение, запись и исполнение. Они могут применяться одновременно или по отдельности для разных категорий пользователей.
Например, одному файлу можно назначить права «Все могут читать, но писать и запускать может только администратор». А какой-нибудь папке общего доступа можно сказать «В тебя могут писать файлы все, читать тоже все».
Как поменять права доступа
В MacOS и Linux права доступа меняются двумя командами:
chown
меняет владельца и группу
chmod
управляет разрешениями файла
Подробнее про эти команды поговорим в статье про скрипты в операционных системах.
В Windows права доступа меняются сложнее — нужно щёлкнуть правой кнопкой мыши по файлу, выбрать вкладку «Безопасность», в ней нажать кнопку «Изменить» и в новом окне добавить пользователей или настроить права для тех, кто есть в списке:
Как заполучить безграничную власть
Чтобы получить системные права на всё, нужно зайти в неё, имея права суперпользователя или администратора. В Linux это можно сделать двумя способами:
- Залогиниться в «Терминал» под именем и с паролем суперпользователя.
- Перед исполнением опасной команды использовать команду sudo. Она позволяет выполнить следующую за ней команду от имени администратора системы root.
Например, если в Ubuntu набрать в терминале команду sudo rm -rf --no-preserve-root
, она сначала спросит пароль администратора системы, а потом начнёт удалять все файлы и папки в текущей папке. Если вы предварительно оказались в корневой папке своей системы, то эта команда молча сотрёт всё, что было на диске, в том числе системные файлы. Системное ядро запаникует, консоль зависнет, и ваш компьютер превратится в тыкву. Это настоящая команда саморазрушения. Пруф:
Что дальше
Кроме файлов с разными правами доступа, на компьютере можно найти скрытые папки. Зачем они нужны и почему они скрытые — об этом поговорим в следующей статье.
Художник:
Даня Берковский
Вёрстка:
Кирилл Климентьев