Перестали застосовуватися деякі групові політики (GPO) на клієнтських машинах. Помилка доступу до групових політикам (GPO) Inaccessible. Оновлення безпеки групових політик з MS16-072.
Після установки системи Windows 7 Professional (х64) на одну з призначених для користувача машин, з'явилися проблеми із застосуванням групових політик, на даній машині. У ролі домен контролера виступає Windows Server 2008 R2, помилок в його роботі не спостерігається, та й всі інші користувачі мережі, не відчувають подібних труднощів із застосуванням групових політик.
При тестуванні результатів застосування групових політик на проблемній машині, видно що частина групових політик застосовується, а частина немає. Групові політики які не застосовуються позначені як Inaccessible (Недоступні).
В ході пошуку причини по якій, групові політики були недоступними, з'ясувалося що проблема не в користувача (тому що якщо користувач авторизувався на іншій машині, то все призначені йому групові політики успішно застосовувалися), не в домен контролері (тому що ніяких помилок в його роботі не було виявлено), а проблема саме в самій системі користувальницької машині.
Групові політики які не застосовувалися на проблемній машині і мали статус Inaccessible (Недоступні), мають права доступу тільки з певних груп.
А групові політики які успішно були застосовані на проблемній машині, мали права доступу для всіх користувачів пройшли перевірку.
Як з'ясувалося в результаті, коренем усіх цих бід, стало випущене в рамках бюлетеня MS16-072 від 14 червня 2016 року, оновлення безпеки для групових політик, KB для різних ОС: KB3159398 , KB3163017 , KB3163018 , KB3163016 . Це оновлення покликане закрити уразливості в безпеці застосування групових політик.
Оновлення для системи безпеки з бюлетеня MS16-072, усуває вразливість в Microsoft Windows, за допомогою якої зловмисник може здійснити атаку Man in the Middle (MiTM) з метою підміни трафіку, що проходить між контролером домену і цільової машиною. Метою такої атаки може бути отримання прав локального адміністратора, на цільовій машині.
Таким чином якщо видалити з групової політики, права доступу для групи Автентифіковані (Authenticated Users), то на машині з встановленим оновленням з бюлетеня MS16-072, ми заблокуємо доступ до групової політики.
Вирішити дану проблему можна декількома способами:
- На машині, видалити встановлене оновлення з бюлетеня MS16-072.
- Для всіх групових політик, у яких використовується фільтрація безпеки по призначених для користувача групах, делегувати групу Комп'ютери домену (Domain Computers) з правами Read.
Видаляти встановлені оновлення на клієнтських машинах, не доцільно. Тому дієвим рішенням даної проблеми, є метод додавання в групові політики з фільтрацією безпеки по призначених для користувача групах, групу Комп'ютери домену (Domain Computers) з правами читання. Таким чином, у комп'ютерів домену з'явиться право на читання цієї політики.
Подивитися в яких групових політиках відсутня група доступу Автентифіковані (Authenticated Users), можна за допомогою команди в Powershell:
Get-GPO -All | ForEach-Object {if (-Not (Get-GPPermissions -Guid $ _. Id -TargetType Group -TargetName 'Authenticated Users')) {$ _. DisplayName}}
Щоб автоматично додати в усі групові політики групу доступу Комп'ютери домену (Domain Computers) з правами на читання, можна виконавши скрипт в PowerShell:
# Імпортуємо модуль групової політики Import-Module -Name GroupPolicy # $ ErrorActionPreference = "SilentlyContinue" # Отримуємо дані за всіма наявними груповим політикам $ GPOList = Get-GPO -All # Циклом проходимся по кожною групою політиці ($ GPO in $ GPOList) {# якщо в груповій політиці відсутня група доступу Authenticated Users if (-Not (Get-GPPermissions -Guid $ GPO.Id -TargetType Group -TargetName 'Authenticated Users')) {# Додаємо в групу доступу, групу Domain Computers, з правами на читання Get -GPO -All | Set-GPPermissions -TargetType Group -TargetName 'Domain Computers' -PermissionLevel GpoRead}} За замовчуванням в PowerShell включена максимальна політика безпеки, яка дозволяє виконувати команди PowerShell в командному рядку, але не дозволяє в тій же командному рядку виконати скрипт з командами PowerShell. Дозволити виконання скриптів в Powershell:
powershell -Command Set-ExecutionPolicy RemoteSigned