Підвищення безпеки в ОС Windows Vista за допомогою нових списків контролю доступу (ACL), Безпека ПЗ, Security & Hack, статті







Принципова структура списків управління доступом в ОС Windows Vista не зазнала кардинальних змін, але є ряд невеликих, але важливих змін, про які необхідно мати уявлення. Деякі з цих змін необхідні через проблеми зі списками ACL, властивих ОС Windows XP. Перша проблема полягає в тому, що більшість користувачів в ОС Windows XP є адміністраторами, тобто облікові записи цих користувачів є членами вбудованої групи “Адміністратори”. Ця проблема дуже поширена серед домашніх користувачів, тому що всіх облікових записів, що додається під час установки системи, автоматично даються права адміністраторів. Таким чином, всі програми, що запускаються цими користувачами, також виконуються з правами адміністраторів, що надає цим програмам повний доступ до операційної системи. У разі шкідливих програм ця проблема постає особливо гостро.

Принципова структура списків управління доступом в ОС Windows Vista не зазнала кардинальних змін, але є ряд невеликих, але важливих змін, про які необхідно мати уявлення. Деякі з цих змін необхідні через проблеми зі списками ACL, властивих ОС Windows XP. Перша проблема полягає в тому, що більшість користувачів в ОС Windows XP є адміністраторами, тобто облікові записи цих користувачів є членами вбудованої групи “Адміністратори”. Ця проблема дуже поширена серед домашніх користувачів, тому що всіх облікових записів, що додається під час установки системи, автоматично даються права адміністраторів. Таким чином, всі програми, що запускаються цими користувачами, також виконуються з правами адміністраторів, що надає цим програмам повний доступ до операційної системи. У разі шкідливих програм ця проблема постає особливо гостро.

Інша проблема, яка дратує багатьох користувачів, полягає в тому, що за замовчуванням списки ACL включають в себе записи управління доступом (ACE) для вбудованого учасника безпеки «Все», членів групи «Досвідчені користувачі» і т.п. Наприклад, список ACL кореневої папки завантажувального розділу ОС Windows XP (зазвичай C 🙂 надає права на читання всім і права на створення папок членам групи «Користувачі». Крім цього, в ОС Windows XP накладається ряд обмежень на дії, які можна здійснювати зі списками ACL. Наприклад, неможливо встановити дозволи для поточного власника об’єкта. Можна встановити дозволу для власника об’єкта, але вони не переносяться в разі зміни поточного власника. Також власники об’єктів неявним чином володіють правами на ці об’єкти незалежно від встановлених дозволів.

При розробці ОС Windows Vista в корпорації Майкрософт був розгорнутий проект для вирішення багатьох з цих проблем та забезпечення підтримки інших можливостей, таких як управління обліковими записами користувачів (UAC). В цій статті увага приділяється основним змін, пов’язаних з управлінням доступом в ОС Windows Vista. В наступному випуску журналу, який вийде через місяць, буде наведений огляд інструментів для настройки управління доступом.

Зміни в облікових записах користувачів і групах

Деякі облікові записи користувачів та групи з’явилися в ОС Windows Vista вперше, а деякі облікові записи користувачів та групи, які є в ОС Windows XP, відсутні в ОС Windows Vista. Також була змінена функціональність деяких облікових записів і груп. Кожне з змін впливає на спосіб настройки управління доступом.

Рахунок «Адміністратор» за замовчуванням відключена



Вбудована обліковий запис «Адміністратор» з відносним ідентифікатором безпеки (RID) 500 за замовчуванням у більшості випадків тепер відключена. Спочатку передбачалося, що ця обліковий запис буде використовуватися тільки в крайніх випадках. Вона призначалася для відновлення системи і даних у випадках, коли всі інші способи виявилися безуспішними. Однак дуже часто вона використовується в якості звичайної адміністративної облікового запису, що порушує кілька принципів безпеки. Найголовнішим з цих принципів є принцип відстеження та визначення відповідальності. У разі використання згаданої облікового запису неможливо відстежити, хто саме здійснював зміни в системі. Тому використання цього облікового запису не віталося. Можливо, надалі в корпорації Майкрософт буде прийнято рішення повністю відмовитися від цього облікового запису, на сьогоднішній же день її зробили відключеною вона за замовчуванням. У разі якщо в групі “Адміністратори” крім цього облікового запису більше немає інших членів, можливе використання ідентифікатора RID 500 в консолі відновлення і в безпечному режимі, але в інших випадках його неможливо і не потрібно використовувати.


Зверніть увагу, що вбудована обліковий запис «Адміністратор» – це не те ж саме, що обліковий запис-член групи “Адміністратори”. Далі в тексті мається на увазі, що «Адміністратор» (з великої літери) – Це обліковий запис з ідентифікатором RID 500, а просто слово «адміністратор» – це будь-яка інша обліковий запис, який є членом групи «Адміністратори». Назва групи «Адміністратори» також будемо писати з великої літери.

В ОС Windows XP обліковий запис «Адміністратор» має низку особливих прав, якими не володіє жодна інша обліковий запис з правами адміністратора. В ОС Windows Vista для цього облікового запису з усіх цих прав залишено тільки два. По-перше, відключена обліковий запис «Адміністратор» може використовуватися в консолі відновлення, у випадку, якщо в системі більше немає інших локальних адміністраторів. По-друге, на цей обліковий запис не поширюються обмеження управління обліковими записами (UAC), і тому вона завжди має повними правами. Це відноситься і до облікового запису «Адміністратор домену» з ідентифікатором RID 500 в домені.
Обмеження прав групи «Досвідчені користувачі»
З практичних міркувань від групи «Досвідчені користувачі» було вирішено відмовитися. Сама група залишилася, але було прибрано більшість дозволів, які призначалися цій групі. Не секрет, що користувач, який є членом групи «Досвідчені користувачі» є насправді адміністратором, який просто ще не встановив собі відповідні права. Одного разу я продемонстрував, як можна за 45 хвилин отримати повний доступ до комп’ютера під управлінням системи Windows XP з пакетом оновлень 2 і всіма необхідними оновленнями шляхом надання свого облікового запису прав адміністратора. Цей час потрібно на оцінку обстановки, написання невеликої програми на мові C + +, вихід із системи і потім повторний вхід. Все це було можливо завдяки тому, що моя обліковий запис був членом групи «Досвідчені користувачі».

Повністю прибрати з системи цю групу було не можна, тому що в багатьох організаціях існує складна система налаштованих дозволів, в якій беруть участь облікові записи-члени цієї групи. Тим не менше, в наступних версіях ОС Windows планується повністю відмовитися від цієї групи. Настійно рекомендується вже зараз почати планування дій для поступової відмови від використання групи «Досвідчені користувачі ».


Рахунок Trusted Installer


У багатьох місцях в настройках дозволів файлової системи можна побачити обліковий запис Trusted Installer. Насправді це служба, а не обліковий запис. Безпека служб була посилена, тому тепер кожна служба є повноцінним учасником безпеки, нарівні з обліковими записами користувачів. Опис цієї можливості наводиться в журналі TechNet Magazine в номері за січень 2007 р. У книзі Граймса і Йохансона Безпека ОС Windows Vista (видавництво Wiley Press, 2007 р.) докладно описується посилення безпеки служб, а також підвищення ефективності цих служб за рахунок інших можливостей, таких як брандмауер і служба IPsec.

Ідентифікатор безпеки (SID) для служб тепер не призначається звичними адміністраторами безпеки, такими як NT AUTHORITY або адміністратор домену. Повна назва віртуальної облікового запису для служби TrustedInstaller – «NT SERVICETrustedInstaller», а ідентифікатор безпеки (SID) цього запису

S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464

Ідентифікатор безпеки (SID) можна отримати для будь-якої, навіть для неіснуючої служби. Для цього потрібно виконати команду «sc showsid». Команда «sc showsid» виводить на екран ідентифікатор SID для будь-якої, навіть неіснуючої служби.

Цей ідентифікатор безпеки (SID) починається зі строчки S-1-5-80. Октет 80 відповідає відносному ідентифікатору SECURIY_SERIVCE_ID_BASE_RID. Це означає, що ідентифікатор служби призначається адміністратором безпеки NT SERVICE. Це справедливо для будь-служби. Інша частина ідентифікатора і відносні ідентифікатори RID залежать від імені служби. Це дозволяє розробнику служби встановлювати для неї дозволу, навіть якщо служба ще не була зібрана і встановлена. Ідентифікатор визначається ім’ям служби і тому збігається на різних комп’ютерах.

У консолі управління службами службі «TrustedInstaller» відповідає псевдонім «Установник модулів Windows».


Облікові записи Центру довідки та підтримки видалені


Облікові записи «Support_xxxxxx» і «HelpAssistant» відсутні в системі Windows Vista при установці з нуля, однак при оновленні з попередньою версією ОС Windows ці облікові записи зберігаються. Рахунок «Support_xxxxxx» використовувалася для запуску сценаріїв з Центру довідки та підтримай. Деякі постачальники OEM, які поставляли свої власні довідкові системи, могли також додавати в систему власні облікові записи підтримки. Неясно, що станеться з цими обліковими записами, але, швидше за все, постачальники OEM просто перестануть їх створювати. Насправді, ці записи просто більше не потрібні. Більш того, з точки зору забезпечення безпеки неправильно, що користувачі могли запускати сценарії з центру довідки з правами інших облікових записів. Краще, якщо таких облікових записів взагалі не буде. В ОС Windows Vista є інший спосіб виконувати ці завдання.


Рахунок «HelpAssistant» використовувалася під час сеансів роботи з віддаленим помічником. Так само як і центр довідки та підтримки, віддалений помічник був перероблений таким чином, щоб для його роботи не була потрібна обліковий запис «HelpAssistant», відповідно, цей запис було видалено.

Нові ідентифікатори безпеки мережевого розташування


В операційних системах на основі ядра Windows NT завжди були присутні ідентифікатори безпеки (SID) мережного розташування, такі як «NETWORK» і «INTERACTIVE». З їх допомогою можна було розрізняти користувачів, виконали вихід через мережу і інтерактивно. Також в системах був ідентифікатор безпеки (SID) «REMOTE INTERACTIVE LOGON», який призначався користувачам, які виконали вхід через службу терміналів. Насправді у користувачів служби терміналів в маркері безпеки є обидва ідентифікатора: «REMOTE INTERACTIVE LOGON» і «INTERACTIVE LOGON». В ОС Windows Vista крім цих двох ідентифікаторів були додані ще два: «DIALUP» і «INTERNET». Сенс виділення користувачів, які виконали вхід через телефонне підключення, не зовсім зрозумілий, особливо враховуючи той факт, що все більше і більше користувачів воліють не використовувати такі сполуки як єдиного способу підключення до мережі. Тим не менш, цей ідентифікатор присутня. Ідентифікатор «INTERNET» очевидно призначений для виділення користувачів, які виконали вхід з-за меж локальної мережі. Ідентифікатором «NETWORK», тим не менше, відзначаються будь-які користувачі, які виконали вхід через локальну мережу або через Інтернет.


Ідентифікатор «OWNER RIGHTS» і права власника


Тепер в системі є ідентифікатор безпеки (SID) «OWNER RIGHTS», який застосовується до власника файла, який є ним на момент звернення. Основне призначення цього ідентифікатора – обмежувати дії, які може здійснювати з файлом сам власник. У порівнянні з правами власника в системі Windows XP, в системі Windows Vista є два істотні відмінності. По-перше, якщо запис ACE поширюється на власника файлу, то призначаються цим записом права мають пріоритет перед фактом володіння файлом. Це дуже значна зміна. Воно сильно вплине на певні аспекти адміністрування системи, так як багато хто звик до того, що власник неявно володіє повними правами. По-друге, ідентифікатор безпеки (SID) «OWNER RIGHTS» може використовуватися для обмеження дій, які може здійснювати з об’єктом його власник.


Уявіть, що є папка, власником якої є користувач Jesper. Список ACL цієї папки представлений на рис. 2. Користувач Jesper володіє правами тільки на читання, незважаючи на те, що він є власником цієї папки. Якщо він спробує скопіювати файл в цю папку, виникне помилка, тому що у користувача Jesper немає дозволів на запис в папку. З повідомлення про помилку це зрозуміти не так просто. При спробі скопіювати за допомогою Провідника Windows ® файл в папку, власником який користувач є, але дозволами на запис в яку він не володіє, відбудеться наступне. Спочатку Провідник повідомить, що необхідно розширити права для копіювання файлу, і попросить користувача їх розширити, але копіювання файлу не відбудеться, так як прав на копіювання об’єктів в цю папку у користувача немає. Видається повідомлення про помилку «У вас немає дозволів на виконання цієї дії», де є кнопки для двох варіантів дій: «Повторити» (неначе це може допомогти) і «Скасувати». І все це незважаючи на те, що користувач є власником папки. Доступ до папки є тільки у облікового запису «Local System» і ще у одного користувача.

Якщо користувач Jesper спробує змінити список ACL файлу, йому буде запропоновано підняти рівень його маркера. Так як він є власником файла, він зможе це зробити. У власника зберігаються неявні права на читання і зміна списків ACL (права «READ_CONTROL» і «WRITE_DAC»), якщо тільки інше не задано за допомогою запису ACE для ідентифікатора «OWNER RIGHTS».

Щоб зрозуміти, як працює ідентифікатор SID «OWNER RIGHTS», додамо його до наведеного вище списку ACL. Тепер обліковий запис має дозволу. Додавання дозволів на доступ до папки для ідентифікатора безпеки «OWNER RIGHTS» змінює дозволу для користувача Jesper

Після установки таких дозволів користувач Jesper може спокійно скопіювати файл в папку, тому що він є власником папки і в нього є відповідні права. Однак при спробі користувача Jesper змінити список ACL папки виникне помилка. Запис ACE для ідентифікатора «OWNER RIGHTS» вказує, що у власника є тільки дозволу на зміну об’єкта. Дозволів на зміну списку управління доступом на рівні користувачів (DACL) у власника немає. Таким чином, основне призначення ідентифікатора «OWNER RIGHTS» – позбутися від ідентифікатора маркера WRITE_DAC (тобто від можливості зміни власником дескриптора безпеки).

У разі зміни адміністратором власника об’єкта дозвіл для ідентифікатора «OWNER RIGHTS» на нового власника автоматично не переносяться. У даному випадку запис ACE для цього ідентифікатора відключається за рахунок установки успадкування при заборону застосування цього запису до вкладених папок і файлів. Іншими словами, цей запис ACE не застосовується ні до яких об’єктів. Це необхідно, щоб адміністратор міг зберегти за собою можливість контролю над об’єктом. Щоб запис ACE для ідентифікатора «OWNER RIGHTS» знову стала активною, необхідно, щоб її вручну активував користувач «Адміністратор». Для цього він повинен вказати для цього запису область застосування: до даної папці, вкладених папок, до папок і файлів, в залежності від необхідності.

Є ряд завдань, для вирішення яких корисно використовувати ідентифікатор безпеки (SID) «OWNER RIGHTS». Наприклад, у адміністратора може виникнути необхідність дозволити користувачам створювати файли і папки на файловому сервері, але заборонити їм редагувати списки ACL для цих папок. Також можлива ситуація, коли користувачі, які раніше були членами деякої групи і створили ряд об’єктів, згодом були з певних міркувань видалені з цієї групи. Необхідно обмежити можливість таких користувачів змінювати параметри цих раніше створених ними об’єктів.

Також ідентифікатор «OWNER RIGHTS» дуже успішно застосовується для підвищення безпеки служб. Коли служба створює тимчасовий об’єкт під час запуску, ідентифікатором власника цього об’єкта є основною ідентифікатор безпеки (SID) процесу служби, зазвичай це «LocalSystem», «NetworkService» або «LocalService», а не ідентифікатор безпеки самої служби. Це означає, що будь-яка інша служба, запущена в тому ж контексті процесу, може змінити цей об’єкт. Така можливість вкрай небажана. Задаючи для цього об’єкта дозволу для ідентифікатора безпеки (SID) «OWNER RIGHTS» система може обмежити доступ іншим службам до цього об’єкта.

Списки ACL за замовчуванням

Списки ACL, які встановлюються за умовчанням в системі Windows XP, добре продумані, якщо не брати до уваги дрібні недоліки, такі, як дозвіл користувачам створювати файли в кореневій папці завантажувального розділу. Тим не менш, деякі постачальники OEM вважали, що вони краще знають, як забезпечити достатній рівень безпеку. Комп’ютер працює під управлінням системи Windows XP Media Center Edition. По суті, безпека файлової системи цим постачальником OEM була відключена.

В ОС Windows Vista списки ACL зазнали ряд змін. В ОС Windows XP звичним є той факт, що власником усіх файлів операційної системи є група “Адміністратори”, таким чином, у всіх членів цієї групи є повний доступ до цих файлів. В системі Windows Vista це не так.

Рахунок Trusted Installer



В ОС Windows Vista власником більшості системних файлів є ідентифікатор безпеки (SID) «TrustedInstaller», і лише у цього ідентифікатора є повний доступ до цих файлів. Цей захід є частиною комплексу заходів, прийнятих в ОС Windows Vista для забезпечення цілісності системи. Вона перешкоджає процесам, запущеним з правами адміністратора або облікового запису «Local System», автоматично змінювати ці файли. Щоб видалити системний файл, необхідно стати власником цього файлу, а потім додати запис ACE, що дозволяє видалити його. Такий підхід надає деяку ступінь захисту від процесів, запущених з правами облікового запису «LocalSystem» з системної міткою цілісності. Процеси з більш низькою цілісністю не можуть підвищити свої права для зміни власника об’єкта. Деяким службам можна встановити середній рівень цілісності, незважаючи на те, що вони запущені з правами облікового запису «Local System». Такі служби не зможуть замінити системні файли, тому в разі атаки і захоплення управління цією службою, атакуюча програма також не зможе замінити системні файли, тому шкідливим програмам (у тому числі прихованим) буде складніше встановити себе в систему. Також адміністратори більше не зможуть видалити системні файли, які вони з якихось своїх міркувань вважають непотрібними.


Записи ACE на заборону
Деяких адміністраторів шокує той факт, що тепер у файловій системі у багатьох об’єктів присутній забороняє запис ACE «для всіх». Якщо дозволити відображення прихованих файлів, можна побачити папку «Documents and Settings», але при спробі зайти в цю папку виникне помилка «Доступ заборонений». «Documents and Settings» є точкою з’єднання, а не папкою

Насправді «Documents and Settings» – зовсім не папка. Це точка з’єднання. Точки з’єднання дуже схожі з символічними посиланнями, які просто перенаправляють доступ в інше місце файлової системи. В даному випадку ця точка з’єднання вказує на папку C: Users. В ОС Windows Vista було змінено простір імен файлової системи, і дані користувачів були перенесені в папку C: Users. Елементи простору імен «C: Documents and Settings» також були перенесені. Наприклад, вміст папки «C: Documents and SettingsApplication Data» тепер розташовується в папці «C: Usersappdataroaming». Всі зміни можна легко побачити, якщо в командному рядку виконати команду «dir / s». Такі значні зміни в простір імен були внесені, щоб забезпечити більш наочне уявлення для користувачів і більш чітко відокремити документи від даних. Замість того щоб зберігати всі дані додатків всередині папки «Мої документи», розробники можуть створювати власні папки всередині папки профілю користувача, і користувач легко зможе знайти там ці папки. Дані додатків, загальні для всіх користувачів, тепер розташовуються у прихованій папці “% systemroot% ProgramData», а не в папці «Documents and SettingsAll UsersApplication Data».

Папка «C: Documents and Settings» була залишена для зворотної сумісності з додатками, в яких жорстко запрограмоване використання цього імені папки, замість рекомендованих до використання змінних середовища. Якби папки «C: Documents and Settings» не стало, робота таких додатків була б порушена. Тому ця та інші папки тепер представлені у вигляді точок з’єднання або символічних посилань. Робота додатків, в яких ці шляхи задані явно, все ж може бути порушена. Це залежить від способу доступу до даних в цих папках. Але такі додатки і так некоректно працюють на комп’ютерах з локалізованими версіями ОС Windows. В даному випадку ключовим моментом є саме помилки в додатку. Якщо після оновлення ОС Windows, наприклад, після установки пакета оновлень 2 для ОС Windows XP або оновлення системи до ОС Windows Vista, перестають працювати програми сторонніх розробників, в більшості випадків це відбувається через невірні припущень, які були зроблені розробниками цих програм, або через некоректне використання деяких можливостей системи.

При спробі відкрити файл, ввівши в рядку адреси шляху «C: Documents and SettingsМоі документифайл.txt» файл відкриється без проблем, за умови, звичайно, що він такий файл в цій папці є. Тим не менш, при спробі відкрити саму папку «C: Documents and SettingsМоі документи» виникне помилка «Доступ заборонений». Запис ACE на заборону в папці «Documents and Settings»

Погляньте на перший запис ACE в списку. Цей запис, що забороняє всім отримання переліку вмісту папки. Програми можуть отримати доступ до файлів по повному шляху, тому що встановлено дозвіл для всіх на обхід перехресної перевірки (відоме також під назвою «SeChangeNotifyPrivilege»). Спроби ж отримати список вмісту папки будуть приводити до помилки через забороняє записи ACE. Це і є причина, по якій можна побачити, що ж знаходиться усередині теки «C: Documents and Settings» або видалити цю «папку». Завдяки забороняє записів ACE користувачі не можуть видалити точку з’єднання і порушити роботу старих додатків. Також ці записи служать нагадуванням для розробників про необхідність відмови від використання старого простору імен та переходу до використання змінних середовища або строкових параметрів реєстру, щоб уберегти додатки від наслідків через внесення змін у майбутньому або через мовних відмінностей.

Ці точки з’єднання за замовчуванням є прихованими, тому більшість користувачів їх ніколи не побачить. Якщо ж все-таки користувач побачить ці точки з’єднання, він не зможе їх видалити завдяки заборонним записів ACE.
Пропуск перехресної перевірки
Користувачі можуть отримати доступ до файлів, на доступ до яких у них є права, незважаючи на те, що ці файли знаходяться в папках, доступ до яких заборонений для цих користувачів. Причина цього полягає в тому, що в системі встановлено дозвіл для всіх на пропуск перехресної перевірки. Цей дозвіл (відоме також під назвою «SeChangeNotifyPrivilege») насправді є самим основним дозволом в системі Windows. Воно призначається процесу, у якого видалені всі інші дозволи, поки цей процес спеціально не запросить прибрати і цей дозвіл. Якщо в ОС Windows Vista запустити процес за допомогою команди «runas / trustlevel: 0x10000 <», то програма, зазначена в параметрі буде запущена з обмеженим маркером безпеки. З цього маркера будуть вилучені всі дозволи, крім дозволу «SeChangeNotifyPrivilege».

Для довідки: при запуску процесу зі значенням параметра «trustlevel» 0x20000 в маркері безпеки буде присутній звичайний набір ідентифікаторів безпеки (SID), але будуть відсутні дозволи. Значення 0x40000 відповідає звичайному маркеру.
Дозволи за замовчуванням
В ОС Windows Vista дозволу за замовчуванням для файлової системи дещо відрізняються від дозволів в ОС Windows XP. Списки ACL для папок “% systemdrive%» (зазвичай значення цієї змінної відповідає завантажувальному розділу C 🙂 в ОС Windows XP або Windows Server ® 2003 виглядають так (або для ранніх версій Windows XP майже так):

D:AR
(A;OICI;FA;;;BA)
(A;OICIIO;FA;;;CO)
(A;;0x1200a9;;;WD)
(A;OICI;FA;;;SY)
(A;OICI;0x1200a9;;;BU)
(A;CI;0x100004;;;BU)
(A;CIIO;0x100002;;;BU)

Нижче наведено список ACL для тієї ж папки в ОС Windows Vista:

D:PAI
(A;;FA;;;BA)
(A;OICIIO;GA;;;BA)
(A;;FA;;;SY)
(A;OICIIO;GA;;;SY)
(A;OICI;0x1200a9;;;BU)
(A;OICIIO;SDGXGWGR;;;AU)
(A;;LC;;;AU)

Між цими двома списками є ряд відмінностей, які варто відзначити. По-перше, вбудованою групі «BA» («BUILTINАдміністратори») в списку відповідають два записи, а не одна. При цьому результуючі права, які отримує обліковий запис, в обох випадках однакові. В ОС Windows Vista один запис ACE надає повний доступ до кореневої папки і не поширюється на вкладені об’єкти, а інший запис поширюється тільки на вкладені папки і файли і надає всі вбудовані права («GA» або, інакше, «повний доступ»). Те ж саме відноситься і до записів ACE для учасника безпеки «SY» («LocalSystem»). В ОС Windows XP один запис ACE надавала повний доступ як безпосередньо до кореневої папки, так і вкладених папок і файлів. Результуючі дозволу в першому і в другому випадку збігаються. Поділ на дві записи було зроблено для спрощення управління, а також на випадок необхідності відновлення списку ACL.

Цікаве відмінність полягає у відсутності у варіанті для системи Windows Vista записи ACE для учасника безпеки «CO» («Творець-власник»). Це означає, що тепер при створенні користувачем об’єкта в кореневій папці файлової системи цього об’єкта не будуть призначатися спеціальні дозволи для його творця.

Також видно, що відсутній запис ACE для учасника безпеки «WD» («Все»). Багатьох користувачів, які цікавилися питаннями безпеки, хвилювало питання присутності цього запису ACE, незважаючи на те, що вони не завжди усвідомлювали наслідки скоєних ними дій. Співробітники корпорації Майкрософт безуспішно намагалися протягом кількох років пояснити, що учасник безпеки «Все» і вбудована група «Користувачі» функціонально ідентичні. Зрештою, вони зневірилися і просто прибрали цю запис зі списку. Завдяки наявності ідентичною записи ACE для вбудованої групи «BU» («BUILTINПользователі»), яка також успадковується вкладеними папками і файлами, в результаті видалення цього запису не викликало ніяких змін.

Крім цього, дві з записів ACE для групи «BU» були замінені на записи ACE для учасника безпеки «AU» («Минулі перевірку»). Причина для цього полягає в тому, що обліковий запис «Гість» є членом вбудованої групи «Користувачі» (завдяки членству вбудованого учасника безпеки «ІНТЕРАКТИВНІ» в групі «Користувачі»), але не є членом учасника безпеки «Минулі перевірку». Щоб у користувача «Гість» були права на читання і виконання файлів, запис ACE з номером 0x1200a9 («Читання та виконання») як і раніше призначається для групи «BU». Записи ACE, які дозволяють створювати файли і папки, відносяться тепер тільки до користувачів, які пройшли перевірку. Це поступовий перехід від системи Windows XP до Windows Vista. На відміну від ОС Windows XP, в ОС Windows Vista користувач «Гість» не може створювати файли в кореневій папці. Не слід забувати, що на практиці таке обмеження рідко потрібно. Щоб створювати файли в кореневій папці, необхідно включити обліковий запис «Гість» і отримати доступ до кореня завантажувального розділу. За замовчуванням обліковий запис «Гість» відключена.

Наостанок пропонується звернути увагу ще на дві примітні записи ACE. В ОС Windows XP є запис ACE, що успадковується вкладеними папками, що встановлює дозвіл 0x100004 для вбудованої групи «Користувачі». Цей запис дозволяє користувачам створювати вкладені папки, в них ще вкладені папки, і так далі. Також є запис ACE 0x100002 тільки для наслідування, яка поширюється на вкладені папки. Ця обліковий запис дозволяє користувачам створювати файли та вкладені папки в папках, які вони створили в кореневій папці. Іншими словами, в сукупності ці два записи ACE дозволяють користувачам, в тому числі і користувачеві «Гість», створювати файли і папки в кореневій папці.

В ОС Windows Vista в списку ACL є відповідні записи ACE: запис ACE тільки для наслідування, яка поширюються на вкладені контейнери і файли і надають права на читання («GR»), запис («GW»), виконання («GX») і на читання дескриптора безпеки («SD»), а також запис ACE, яка застосовується тільки до кореневої папки і надає дозвіл «LC». Абревіатура «LC» насправді належить до дозволами для служби Active Directory ®. У службі Active Directory цей дозвіл дозволяє користувачеві отримати список дочірніх об’єктів контейнера. Шістнадцяткове значення цього дозволу 0x4. Для папки таке значення відповідає вирішенню «FILE_ADD_SUBDIRECTORY». Цей дозвіл функціонально еквівалентно вирішенню зі значенням 0x100004, тому що в списку ACL вже є запис ACE 0x1200a9, в якому встановлений прапор 0x100000 (позначає можливість використання об’єкта для синхронізації). Іншими словами, в сумі ці дозволи мають такий же ефект, що і дозволу в ОС Windows XP – Користувачі можуть створювати вкладені папки в кореневій папці.

Можна легко помітити, що в записах ACE часто-густо присутні шістнадцяткові числа, наприклад, 0x1200a9. Насправді ці значення є бітовими масками, відповідними встановленим прапорам доступу для конкретних записів ACE. Такі програми, як «icacls», «sc» або «scedit» при виведенні записів зі списку ACL замість чисел відображають зрозумілі текстові назви для дозволів, якщо такі відповідності імен значенням дозволів існують.

Щоб визначити, що означає дозвіл LC, досить відвідати веб-сайт MSDN ®, знайти на сторінці рядок «LC», і подивитися на значення, яке відповідає цьому записі в колонці «Право доступу». Для вирішення «LC» там буде значення «ADS_RIGHT_ACTRL_DS_LIST». У файлі «Iads.h» можна знайти, що цій сходинці відповідає чисельне значення 0x4. У цьому файлі знаходяться значення для дозволів, які відносяться до служби Active Directory (містять префікс «ADS_RIGHT»). Решта дозволу і відповідні їм шістнадцяткові значення розташовані у файлі «AccCtrl.h». Дізнавшись шістнадцяткове значення, можна легко знайти відповідну маску доступу в файлах «WinNT.h» або «AccCtrl.h», щоб дізнатися, що саме позначає ця маска.

Більш детальну інформацію можна отримати з книги Джеспера Йохансона і Стіва Райлі (Steve Riley) «Захист мережі під управлінням Windows» (видавництво «Addison-Wesley», 2005 р.). У 17-му розділі цієї книги детально описується, як аналізувати строчки на мові опису дескрипторів безпеки (SDDL) і записи ACE.

Дозволи, що призначаються вкладених папок, створюваним в кореневій папці, в ОС Windows Vista визначаються виключно записом ACE (A; OICIIO; SDGXGWGR;;; AU). Це є найбільшим розходженням між записами в списку ACL кореневої папки в ОС Windows Vista і Windows XP. Замість вирішення повного доступу творцеві вкладених папок, як це було в ОС Windows XP, в Windows Vista зміна цих папок дозволяється користувачам, які пройшли перевірку.

У підсумку виходить, що в новому списку ACL у творця об’єкта більше немає яких-небудь спеціальних прав на цей об’єкт, завдяки чому ситуація з правами стає більш зрозумілою. З іншого боку, тепер у користувачів, що пройшли перевірку, є права на зміну навіть тих вкладених папок, які були створені адміністраторами. Це дуже суттєва відмінність від ОС Windows XP. В системі Windows XP члени групи «Користувачі» і користувачі, які пройшли перевірку, не мали права на доступ до об’єктів, створеним в кореневій папці адміністраторами. Незважаючи на те, що на перший погляд нові записи ACE здаються дивними і неправильними, їх кінцевий ефект практично не відрізняється від записів в системі Windows XP.

Якщо підвести підсумок, в ОС Windows Vista всі користувачі, включаючи користувача «Гість», володіють правами на читання і виконання в кореневій папці. Правами на створення нових файлів і папок володіють тільки користувачі, які пройшли перевірку. При цьому вони володіють не повними правами на створені цими користувачами папки та файли, а лише правами на зміну. Іншими словами, дозволи в ОС Windows Vista лише злегка обмежують доступ в порівнянні з системою Windows XP. Сенсу у відключенні облікового запису «Гість» більше немає.

Зміни в маркерах безпеки

Коли в ОС Windows XP вхід виконується користувачем, який є членом групи «Адміністратори», маркер безпеки цього користувача містить ідентифікатор SID групи “Адміністратори”. Такий користувач володіє всіма правами групи “Адміністратори”. В ОС Windows Vista це більше не так завдяки системі управління обліковими записами користувачів. Ідентифікатор SID групи “Адміністратори” по колишньому присутня в маркері безпеки користувача, але у цього ідентифікатора встановлений режим «тільки заборона». Система UAC до підвищення повноважень встановлює для ідентифікатора SID “Адміністратори» режим «Тільки заборона»

При здійсненні управління доступом цей ідентифікатор SID в маркері використовується тільки для відмови в доступі, іншими словами, він зіставляється тільки заборонним записів ACE. Будь-які дозволяють записи ACE для цього ідентифікатора SID ігноруються. Це означає, що користувач не є впродовж усього часу повноцінним адміністратором, навіть, незважаючи на те, що він виконав вхід в систему як адміністратор.


Рівні цілісності


Тепер в системі Windows підтримується такий параметр процесів і об’єктів, як «рівень цілісності». Рівні цілісності також подаються у вигляді записів ACE, але не на рівні користувача управління доступом (DACL). Ці записи відносяться до системного списку управління доступом (SACL) і володіють додатковими спеціальними полями. Наприклад, прапор «NW» вказує, що процес з більш низьким рівнем цілісності не може змінювати об’єкт з більш високим рівнем цілісності (дозвіл «SDDL_NO_WRITE_UP»). У статті Марка Руссиновича (Mark Russinovich) «Внутрішньо пристрій управління обліковими записами користувачів в системі Windows Vista »цього випуску журналу TechNet Magazine наводиться докладний опис роботи рівнів цілісності.


Висновок



Незважаючи на те, що таких революційних змін в управлінні доступом, які були зроблені з виходом ОС Windows 2000, в ОС Windows Vista не відбулося, в ній було зроблено багато невеликих змін. Кожне зміна в окремо здається незначним, але в сумі всі ці зміни змушують переглянути багато принципів управління системою. Також є ряд нововведень, до яких відносяться, перш за все, управління обліковими записами користувачів і посилення безпеки служб. Деякі адміністратори можуть бути дуже розчаровані першим досвідом роботи з ОС Windows Vista. Зустрічалися коментарі про те, що ОС Windows Vista є «тиранічної» і не дозволяє видаляти деякі елементи операційної системи, які з тієї чи іншої причини дратують адміністраторів. Тим не менш, є дуже вагомі причини для всіх цих змін, і якщо затратити деякий час на їхній аналіз, можна усвідомити необхідність цих змін.


Джеспер Йохансон (Jesper Johansson) – архітектор безпеки у великій компанії, що займається продажами через Інтернет. В його обов’язки входить розробка стратегії безпеки, яка охоплює великий перелік різних служб і параметрів.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*