Курс лекций «Проблемы безопасности в информационных технологиях»



жүктеу 4.51 Mb.
бет18/44
Дата13.09.2017
өлшемі4.51 Mb.
түріКурс лекций
1   ...   14   15   16   17   18   19   20   21   ...   44

Защита в ОС семейства Windows NT


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

Так же, как и для семейства ОС Unix, здесь основными механизмами защиты являются:



  • идентификация и аутентификация пользователя при входе в систему;

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

  • аудит, т.е. регистрация событий.

По сравнению с разграничениями прав доступа к файловым объектам на Unix-подобных ОС, Windows NT обладает существенно более продвинутыми возможностями, реализованными в её основной файловой системе NTFS. Существенно расширены атрибуты доступа, устанавливаемые на различные иерархические объекты файловой системы (логические диски, каталоги, файлы). В частности, атрибут «запись» может устанавливаться и на каталог, тогда он наследуется соответствующими файлами.

При этом существенно ограничены возможности управления доступом к другим защищаемым ресурсам, в частности, к устройствам ввода. Например, в NT отсутствует атрибут «исполнение», т.е. невозможно запретить запуск несанкционированной программы с определённого устройства ввода.

Любой пользователь Windows NT характеризуется определенной учётной записью. Под учётной записью понимается совокупность прав и дополнительных параметров, ассоциированных с определенным пользователем. Кроме того, пользователь принадлежит к одной или нескольким группам безопасности. Принадлежность к группе позволяет быстро назначать права доступа и полномочия.

Windows NT содержит некоторые предопределённые (встроенные) учётные пользовательские записи:


  • Guest – учетная запись, фиксирующая минимальные привилегии гостя;

  • Administrator – встроенная учетная запись для пользователей, наделенных максимальными привилегиями;

Кроме них имеются две скрытые встроенные учетные записи:




  • System – учетная запись, используемая операционной системой; обладает более высокими привилегиями в локальной системе, чем Administrator;

  • Creator-owner – создатель-владелец (файла или каталога).

Локальные встроенные группы содержат3:




  • Account operators;

  • Administrators;

  • Backup operators;

  • Guests;

  • Print operators;

  • Replicator;

  • Server operators;

  • Users.

Помимо этих встроенных групп имеется ещё ряд специальных групп:




  • Everyone – в эту группу по умолчанию включаются все без исключения пользователи в системе (невозможно не быть членом группы Everyone);

  • Authenticated users – в эту группу включаются все аутентифицированные пользователи;

  • Self – сам объект.


Локальная политика безопасности ОС Windows NT регламентирует правила безопасности на локальном компьютере. С ее помощью можно распределить административные роли, конкретизировать привилегии пользователей, назначить правила аудита.

Каждый защищенный объект Windows – в том числе файлы, папки, общие ресурсы, принтеры и разделы реестра – поддерживает разрешения безопасности. Любую папку Windows можно сделать общедоступной, чтобы разрешить к ней удалённый доступ. Разрешения Share (Доступ) можно назначать любым объектам типа папка и принтер в Windows, но разрешения применяются (действуют), только если обращение к объекту происходит через сеть. К разрешениям Folder Share относятся Full Control, Change и Read.

Построение файловой системы и разграничение доступа к файловым объектам на NTFS имеет особенности, присущие только семейству Windows. Поскольку файлы и каталоги в Windows NT являются объектами, контроль безопасности осуществляется на объектном уровне. Дескриптор безопасности любого объекта в разделе NTFS содержит два списка контроля доступа (ACL) — дискреционный (discretionary ACL (DACL)) и системный (system ACL (SACL)).

Если объект, к которому предоставлен сетевой доступ, расположен на файловой системе NTFS, то эффективные права, которые получает пользователь при обращении к этому объекту, будут определяться более жёсткими (наименьшими) из двух: Share или NTFS permissions.

В ОС Windows NT управление доступом к файлам и каталогам NTFS возлагается не только на администратора, но и на владельца ресурса и контролируется системой безопасности с помощью т.н. маски доступа (access mask), содержащейся в записях списка контроля доступа ACL.

Маска доступа включает стандартные (Synchronize, Write_Owner, Write_Dac, Read_Control, Delete), специфические (Read(Write)_Data, Append_Data, Read(Write)_Attributes, Read(Write)_ExtendedAttributes, Execute) и общие (Generic_Read(Write), Generic_Execute) права доступа. Все эти права входят в дискреционный список контроля доступа (DACL). Вдобавок маска доступа содержит бит, который соответствует праву Access_System_Security. Это право контролирует доступ к системному списку контроля доступа (SACL).

В списке DACL определяется, каким пользователям и группам разрешен или запрещен доступ к данному ресурсу. Именно этим списком может управлять владелец объекта.

SACL (System Access Control List) — список управления доступом к объектам Microsoft Windows, используемый для аудита доступа к объекту. SACL – это традиционный механизм логирования событий, который определяет, как проверяется доступ к файлам и папкам. В отличие от DACL, SACL не может ограничивать доступ к файлам и папкам. Но он может отследить событие, которое будет записано в журнал событий безопасности (security event log), когда пользователь обратится к файлу или папке. Это отслеживание может быть полезно при решении проблем доступа или при определении запрещенного проникновения. Только системный администратор управляет этим списком.



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


  • Full Control (Полный доступ)

  • Modify (на изменение)

  • Read & Execute (на чтение и выполнение)

  • Read (на чтение)

  • Write (на запись)

Папки имеют такие же стандартные права, что и файлы, за исключением одного дополнительного стандартного права под названием “List Folder Contents” (список содержимого папок). Если же посмотреть на права на ключи реестра (Registry keys), на принтеры и на объекты Active Directory, то для этих объектов существует совершенно различный набор стандартных прав.



Расширенные права – это специальные права, которые сгруппированы вместе для создания стандартных прав. Т.к. расширенные права используются в сочетаниях для создания стандартных прав, в целом их гораздо больше. Можно сказать, что более «крупные» стандартные права образуются из более «мелких» расширенных прав. Для файлов список расширенных прав будет выглядеть следующим образом:


  • Full Control

  • Traverse Folder/Execute File

  • List Folder/Read Data

  • Read Attributes

  • Read Extended Attributes

  • Create Files/Write Data

  • Create Folders/Append Data

  • Write Attributes

  • Write Extended Attributes

  • Delete Read Permissions

  • Change Permissions

  • Take Ownership

Например, набор расширенных прав, которые образуют стандартное право Read (право на чтение), включат в себя:




  • List Folder/Read Data

  • Read Attributes

  • Read Extended Attributes

  • Read Permissions

Например, имея для какой-либо папки расширенные права Create Files/Write Data и Create Folders/Append Data, можно разрешить создавать в этой папке только новые файлы, но не разрешать создавать подкаталоги (подпапки).

Для папки расширенные права идентичны правам для файла. Но расширенные права для принтеров или ключей реестра (Registry key) полностью различаются.

При просмотре списка access control list (ACL) можно увидеть два типа прав: Inherited (наследуемые) и Explicit (прямые). Наследуемые права в графическом интерфейсе отображены закрашенными (бледными) галочками, прямые – яркими. Унаследованные права изменить невозможно, пока наследование не будет явным образом отменено снятием отметки “Inherit from parent the permission entries that apply to child objects. Include these with entries explicitly defined here”, как показано на рисунке:




Рис.46 Вы не можете изменять наследуемые права для любой папки или файла
На любом уровне в структуре ресурсов, вы всегда можете добавлять новые элементы в ACL. Эти элементы для целевого ресурса называются прямыми правами (explicit permissions), т.к. они настраиваются непосредственно для ресурса.

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

По сравнению с динамической формой наследования, статическая не вносит больших задержек при обращении к объекту, т.к. фактически проверка выполняется ровно в одном ACL, связанном с этим объектом. Но, оборотной стороной статической формы наследования является значительное время и потребление ресурсов в момент создания прав. Для больших иерархических структур – «широких» и «глубоких», с количеством в десятки, сотни тысяч и более объектов – время «прорастания» прав может достигать очень ощутимых значений – десятков минут, часов и даже нескольких суток! И при этом довольно ощутимо нагружается процессор системы, в которой «прорастают» права. Что неприятно: практически невозможно оценить, за какое время полностью произойдёт это самое «прорастание» (по сути, запись во все ACL всех «нижележащих» объектов), и нет возможности повлиять на это какими-либо настройками операционной системы.

Ещё один момент, связанный со статической природой записей в ACL. Предположим, у вас в корне диска D: имеется рабочая папка \DOC, в которой содержится несколько других подкаталогов (подпапок), например, \DOC\Work1, \DOC\Work2, \DOC\Work3 и т.д. Права явно назначены только на D:\DOC и, соответственно, были унаследованы для всех нижележащих каталогов. После переноса (move) системными средствами, например, с помощью проводника, одной из папок (скажем, D:\DOC\Work2) в корень диска D:, «внезапно» выяснятся, что права доступа к D:\Work2 остались такими же, какими они были до перемещения папки, а не унаследовались от корня диска D:\. Т.е., ACL папки Work2 (в который статически были вписаны наследованные от D:\DOC права), переместился вместе с самой папкой. Об этой особенности статической формы наследования надо обязательно помнить.

Интересной особенностью системы назначения прав в Windows NT является возможность назначить или Разрешение (Allow) или Запрет (Deny). Подсистема безопасности Local Security Authority (LSASS), когда осуществляет контроль доступа к ресурсу, основывается на security ID (SID), помещённом в ACL объекта, сравнивая его с SID, который назначается пользователю при входе в систему. Если SID, присвоенный пользователю, находится в ACL, то LSASS должен определить, какой тип доступа установлен для объекта – Allow или Deny. Права Allow и Deny наследуются также для всей структуры, как и для прав описанных выше.

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

Как упоминалось выше, при входе в систему пользователь получает т.н. «маркер доступа» – сеансовый «билет», в котором вписан SID пользователя и SID-ы групп безопасности, членом которых он является. Из этого следует не вполне очевидный вывод: если вы модифицируете права доступа пользователя к ресурсу, включая/исключая его в/из группу/-ы, то LSASS «узнает» об этом только при входе пользователя в систему, т.е. если пользователь уже вошёл в систему и администратор уже после входа включил его в какую-либо группу, то пользователь не получит доступа к ресурсам, разрешённым для группы, пока не сделает logoff-logon (только тогда в его «маркере доступа» появится SID новой группы).

Как уже было упомянуто выше, назначенный на одном уровне Deny имеет приоритет перед Allow. Но при этом унаследованный Deny менее приоритетен, чем явно назначенный Allow. Список приоритетов прав приведён ниже, более высокое положение в списке означает более высокий приоритет:


  • Explicit Deny

  • Explicit Allow

  • Inherited Deny

  • Inherited Allow

В ранних версиях NT право Deny всегда имело приоритет перед Allow, невзирая на то, было Deny назначение прямым или унаследованным. В современных вариантах наследование принимается во внимание.

Ещё одним любопытным элементом назначения прав в Windows NT является наличие специального пользователя Creator-Owner (создатель-владелец). При назначении прав для этого пользователя, они (права) в итоге (в ACL объекта) окажутся с соответствующим SID-ом того, кто создал этот объект. С помощью creator-owner можно сделать полный эквивалент sticky bit для каталога в файловой системе Unix: при создании файла разрешить к нему полный доступ для владельца и ограничить доступ для остальных пользователей. Заметным и существенным отличием в парадигме назначения прав в Windows NT по сравнению с Unix можно отметить, что право удаления файла – это не право Write в содержащий его каталог, а свойство самого файла. Т.е., в одном и том же каталоге в NT можно иметь множество файлов с возможностью их удаления и с запретом удаления, даже если у всех файлов будет один и тот же владелец.

Дополнительным (но встроенным исходно в систему) средством защиты файловой системы ОС семейства Windows NT является возможность шифрования файлов и/или каталогов. Первые версии (начиная с Windows2000) назывались EFS (шифрованная файловая система), они обладали некоторыми существенными недостатками. Начиная с Vista, эта функция была дополнена более продвинутой технологией BitLocker.

Шифрование диска BitLocker и шифрованная файловая система (EFS) имеют ряд различий. Шифрование BitLocker защищает все личные и системные файлы на диске с установленной ОС Windows (диск операционной системы) на случай кражи компьютера или попытки доступа к нему посторонних лиц. С помощью BitLocker можно шифровать все файлы на несъёмных дисках (например, внутренних жестких дисках), а также файлы на съёмных носителях (например, внешних жестких дисках или USB-устройствах флэш-памяти) с помощью BitLocker To Go. Файловая система EFS используется для защиты отдельных файлов на любом диске на уровне пользователя. Ниже приведена таблица, в которой сведены основные различия между BitLocker и EFS:


BitLocker

Файловая система EFS

BitLocker выполняет шифрование всех личных и системных файлов на диске с ОС, несъемных и съемных дисках.

EFS по отдельности шифрует личные файлы и папки и не шифрует все содержимое диска.

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

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

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

EFS не требует и не использует дополнительное оборудование.

Для включения или отключения шифрования BitLocker на диске с установленной ОС Windows и на съемных дисках необходимо иметь права администратора.

Для использования EFS прав администратора не требуется.

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



Начиная с Vista, в состав ОС была включён механизм управления учетными записями пользователей (UAC). То, как он был реализован в Vista, многих пользователей системы очень раздражало – на каждое, с точки зрения системы, подозрительное действие, выскакивало окошко с требованием подтвердить это действие. У UAC существовало всего два состояния – включено и выключено. Многих эта технология очень раздражала и пользователи почти поголовно её отключали. В Windows 7 механизм был существенно доработан и улучшен. Даже если вы работаете под учётной записью администратора или её эквивалентом (конечно же, это не рекомендуемый режим, но так поступают очень многие), то при включённом UAC’е любая попытка доступа к системным файлам, службам или реестру будет блокирована и появится окно, которое потребует подтверждение пользователя на дальнейшие действия. Уровень предупреждений имеет теперь четыре градации, вместо простого «включено-выключено»:

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

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

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

  4. Четвертый уровень – полное отключение UAC.

Также появилась возможность изменить настройки UAC средствами политик безопасности:

  1. Behavior of the elevation prompt for administrators – позволяет задать режим поведения окна валидации при повышении прав для администраторов. К примеру, можно включить подтверждение прав с помощью пароля (prompt for credentials) или оставить подтверждение прав только с помощью нажатия OK (prompt for consent).

  2. Behavior of the elevation prompt for users – аналогично первому пункту, но для учетных записей в режиме пользователя.

  3. Switch to the secure desktop when prompting for elevation – переключению рабочего стола в безопасный режим при прохождении валидации. Для пользователя включение данной политики отражается в виде затенения рабочего стола при прохождении проверки. В действительности роль данной политики состоит в изоляции процедуры валидации от других работающих программ с целью предотвратить перехват окна UAC программным способом.

  4. Virtualizes file and registry write failures to per-user locations – виртуализация файлов и реестра. Позволяет работать с программами в режиме виртуализации, с целью исключить повреждения файловой системы и реестра (режим песочницы).

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

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

Далее, в ОС семейства Windows NT не в полном объеме реализуется дискреционная модель доступа, в частности, не могут разграничиваться права доступа для пользователя System («Система»). В ОС присутствуют не только пользовательские, но и системные процессы, которые запускаются непосредственно системой. При этом доступ системных процессов не может быть разграничен. Соответственно, все запускаемые системные процессы имеют неограниченный доступ к защищаемым ресурсам. С этим недостатком системы защиты связано множество атак, в частности, несанкционированный запуск собственного процесса с правами системного. Это возможно и вследствие некорректной реализации механизма обеспечения замкнутости программной среды. Одним из серьёзных улучшений в этой области стало принципиальное лишение сервисов возможности выводить диалоговые интерактивные окна (начиная с Vista).

В ОС семейства Windows (NT/2000/XP) невозможно в общем случае обеспечить замкнутость (или целостность) программной среды. С точки зрения обеспечения замкнутости программной среды (т.е. реализации механизма, обеспечивающего возможность пользователям запускать только санкционированные процессы (программы)), действия пользователя по запуску процесса могут быть как явными, так и скрытыми.

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

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

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

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

Аудит в ОС семейства Windows NT не обеспечивается регистрация выдачи документов на «твёрдую копию», а также некоторые другие требования к регистрации событий.

Многие механизмы, необходимые с точки зрения выполнения формализованных требований безопасности, ОС семейства Windows не реализуют в принципе, либо реализуют лишь частично. Большинство современных универсальных ОС не выполняют в полном объеме требования к защите АС по классу 1Г. Это значит, что, учитывая требования нормативных документов, они не могут – без использования добавочных средств защиты – применяться для защиты даже конфиденциальной информации. При этом следует отметить, что основные проблемы защиты здесь вызваны не невыполнимостью ОС требований к отдельным механизмам защиты, а принципиальными причинами, обусловленными реализуемой в ОС концепцией. Концепция эта основана на реализации распределённой схемы администрирования механизмов защиты, что само по себе является невыполнением формализованных требований к основным механизмам защиты.





Достарыңызбен бөлісу:
1   ...   14   15   16   17   18   19   20   21   ...   44


©kzref.org 2019
әкімшілігінің қараңыз

    Басты бет