Group Policy Tattooing ve GPO Rollback Davranışları

Group Policy Kaldırıldığında Ayarlar Geri Döner mi?

Active Directory ortamlarında Group Policy ile yapılan bir konfigürasyonun daha sonra GPO’dan kaldırılması veya GPO’nun ilgili OU’dan unlink edilmesi durumunda, yapılan ayarın eski haline dönüp dönmeyeceği önemli bir konudur.

Her Group Policy ayarı aynı şekilde davranmaz.

Bazı policy ayarları GPO artık uygulanmadığında policy enforcement kapsamından çıkar ve eski/default davranışa döner. Bazı ayarlar ise işletim sisteminin gerçek konfigürasyonunu değiştirir ve GPO kaldırıldıktan sonra da sistem üzerinde kalır.

Bu davranışa Group Policy Tattooing denilmektedir.

Bu nedenle özellikle security hardening çalışmalarında yalnızca policy’nin nasıl uygulanacağı değil, gerektiğinde nasıl geri alınacağı da önceden planlanmalıdır.


Group Policy Ayarlarını Dört Gruba Ayırabiliriz

Group Policy ayarlarının kaldırılma davranışını aşağıdaki dört ana grupta değerlendirebiliriz.

TipAçıklama
Policy ManagedPolicy uygulanmadığında enforcement ortadan kalkar
TattooingPolicy kaldırılır fakat yaptığı değişiklik sistemde kalır
Rollback ManagedGroup Policy önceki state bilgisini kullanarak geri dönüş yapabilir
Conditional CleanupGeri dönüş özel bir seçenek ile sağlanır

Buradaki önemli nokta şudur:

GPO’nun kaldırılması ile GPO’nun oluşturduğu sistem değişikliğinin kaldırılması aynı şey değildir.


1. Administrative Templates – ADMX Policies

Administrative Templates altında bulunan ayarların büyük bölümü registry-based policy olarak uygulanmaktadır.

Örneğin:

Computer Configuration

Policies

Administrative Templates

veya:

User Configuration

Policies

Administrative Templates

Policy Enabled veya Disabled olduğunda ADMX içerisinde tanımlanan registry value uygulanır.

Örneğin:

HKLM\Software\Policies\Microsoft\…

veya:

HKCU\Software\Policies\Microsoft\…

gibi policy alanları kullanılabilir.

Policy artık GPO tarafından tanımlanmıyorsa Group Policy bu ayarı enforcement altında tutmaz.

Ancak burada önemli bir ayrım bulunmaktadır.

Not Configured her zaman Registry Value’yu silmek anlamına gelmez

Bir Administrative Template policy’sini:

Enabled

durumundan:

Not Configured

durumuna almak:

Bu GPO artık bu policy setting’i tanımlamıyor.

anlamına gelir.

Bu işlem her policy için registry üzerinde bulunan değerin fiziksel olarak silineceği anlamına gelmez.

Gerçek davranış ADMX içerisinde tanımlanan:

enabledValue

disabledValue

delete

valueName

gibi policy semantics’e bağlıdır.

Bu nedenle özellikle Custom ADMX dosyalarında policy kaldırılmadan önce registry davranışı kontrol edilmelidir.


2. Group Policy Preferences Registry – Tattooing

Group Policy Preferences ile registry üzerinde yapılan değişiklikler klasik Group Policy tattooing örneklerinden biridir.

Örneğin:

Computer Configuration

Preferences

Windows Settings

Registry

üzerinden aşağıdaki değer oluşturulsun:

HKLM\Software\VOLSYS

EnableFeature = 1

Policy uygulandığında registry değeri oluşturulur.

Daha sonra GPO:

Unlink

edilirse veya Registry Preference item silinirse:

EnableFeature = 1

registry üzerinde kalır.

Yani:

GPP Registry

↓

Registry Value oluşturulur

↓

GPO kaldırılır

↓

Registry Value KALIR

Bu bir tattooing davranışıdır.


3. Remove This Item When It Is No Longer Applied

Group Policy Preferences içerisinde bu davranışı değiştirmek mümkündür.

Preference Item:

Properties

Common

altında:

Remove this item when it is no longer applied

seçeneği bulunmaktadır.

Bu seçenek kullanılırsa:

GPO uygulanır

↓

Preference Item oluşturulur

↓

Computer/User policy scope dışına çıkar

↓

Preference Item kaldırılır

Group Policy Preferences bunun için local history bilgisi tutar.

Computer tarafında:

C:\ProgramData\Microsoft\Group Policy\History

User tarafında:

C:\Users\<User>\AppData\Local\Microsoft\Group Policy\History

kullanılmaktadır.

Önemli

Bu seçenek policy deployment yapılmadan önce düşünülmelidir.

GPO uzun süre uygulandıktan ve tattoo oluşturduktan sonra policy’yi silip yeni bir cleanup davranışı oluşturmak, geçmişte bırakılmış bütün ayarların otomatik olarak temizleneceği anlamına gelmez.


4. GPP Registry İçin Rollback Yaparken Dikkat

Registry değişikliklerinde önemli bir diğer konu:

Value = 0

ile:

Value mevcut değil

aynı şey değildir.

Örneğin bir uygulama aşağıdaki mantığı kullanabilir:

Registry Value Yok      = Product Default

Registry Value = 0      = Explicit Disabled

Registry Value = 1      = Explicit Enabled

Dolayısıyla aşağıdaki işlem her zaman doğru rollback değildir:

Policy:

EnableFeature = 1

Rollback:

EnableFeature = 0

Eğer policy uygulanmadan önce ilgili registry value mevcut değilse doğru rollback:

Delete Value

olabilir.

Bu nedenle rollback işleminde yalnızca ters değeri yazmak yerine policy öncesindeki state’in ne olduğu bilinmelidir.


5. Group Policy Preferences Diğer Ayarlar

Group Policy Preferences sadece Registry için kullanılmaz.

Örneğin:

Drive Maps

Files

Folders

Shortcuts

Scheduled Tasks

Services

Local Users and Groups

Printers

Environment Variables

INI Files

Network Shares

gibi birçok farklı configuration item bulunmaktadır.

Bu Preference item’larının yaptığı değişiklikler policy ortadan kalktığında varsayılan olarak geri alınmaz.

Örneğin GPP ile Scheduled Task oluşturulmuşsa:

GPO kaldırıldı

diye Scheduled Task otomatik olarak kaybolmak zorunda değildir.

Aynı durum:

Local Group Membership

Registry

File

Folder

Shortcut

Environment Variable

gibi Preference item’ları için de geçerlidir.

Cleanup isteniyorsa:

Remove this item when it is no longer applied

veya uygun bir:

Delete

işlemi tasarlanmalıdır.


6. Security Settings – Farklı Bir Mekanizma Kullanır

Security Settings, Administrative Templates veya Group Policy Preferences ile aynı şekilde çalışmaz.

Security Settings:

Computer Configuration

Policies

Windows Settings

Security Settings

altında bulunmaktadır.

Windows Security Configuration Engine security policy bilgilerini:

secedit.sdb

içerisinde tutmaktadır.

Bu database aynı zamanda bazı security settings için önceki configuration bilgilerinin tutulmasına ve rollback işlemine yardımcı olur.

Security setting artık uygulanmadığında iki farklı durum oluşabilir.

Previous Value mevcutsa

Policy Value

↓

Policy kaldırılır

↓

Previous Security Value

geri uygulanabilir.

Previous Value mevcut değilse

Mevcut configuration sistem üzerinde kalabilir.

Bu nedenle Security Settings kategorisini basit şekilde:

Tattoo yapar

veya:

Her zaman eski haline döner

şeklinde sınıflandırmak doğru değildir.


7. Restricted Groups

Restricted Groups:

Computer Configuration

Policies

Windows Settings

 Security Settings

Restricted Groups

altında bulunmaktadır.

Örneğin:

BUILTIN\Administrators

grubu için:

Administrator

DOMAIN\Domain Admins

DOMAIN\Server Admins

tanımlandığını düşünelim.

Restricted Groups içerisinde Members of this group kullanıldığında tanımlanan membership authoritative olarak uygulanır.

Listede bulunmayan üyeler çıkarılabilir, eksik üyeler eklenebilir.

Örneğin başlangıçta:

Administrators

Administrator

DOMAIN\Domain Admins

DOMAIN\Helpdesk

User01

bulunuyorsa ve Restricted Groups:

Administrator

DOMAIN\Domain Admins

DOMAIN\ServerAdmins

şeklinde tanımlanmışsa resultant membership:

Administrator

DOMAIN\Domain Admins

DOMAIN\ServerAdmins

haline gelebilir.

Restricted Groups, Security Settings altyapısını kullandığı için security configuration rollback davranışına tabidir.

Bu nedenle:

Restricted Groups kaldırılır

→ Son membership kesin olarak kalır

şeklinde genel bir kural doğru değildir.

Aynı şekilde:

Restricted Groups kaldırılır

→ Eski üyelik kesin olarak döner

şeklinde de değerlendirilmemelidir.

Security Configuration Engine içerisinde previous state bulunuyorsa önceki configuration geri uygulanabilir.

Bu nedenle özellikle Administrators, Remote Desktop Users veya diğer kritik local group membership değişikliklerinde deployment öncesi mevcut üyeliğin export edilmesi önerilir.

Örneğin:

Get-LocalGroupMember -Group Administrators

veya:

net localgroup administrators

ile mevcut state kayıt altına alınabilir.


8. GPP Local Users and Groups ile Restricted Groups Aynı Değildir

Bu iki teknoloji sıkça karıştırılmaktadır.

Restricted Groups

Policies

Windows Settings

Security Settings

Restricted Groups

Security Configuration Engine tarafından uygulanır.

Local Users and Groups Preference

Preferences

Control Panel Settings

Local Users and Groups

Group Policy Preferences tarafından uygulanır.

GPP Local Users and Groups ile yapılan membership değişiklikleri:

GPO kaldırıldığında

varsayılan olarak geri alınmaz.

Yani iki yapı aynı local group üzerinde değişiklik yapabilmesine rağmen lifecycle davranışları aynı değildir.


9. User Rights Assignment

User Rights Assignment:

Security Settings

Local Policies

User Rights Assignment

altında bulunmaktadır.

Örneğin:

Log on as a service

Log on locally

Deny log on locally

Access this computer from the network

Debug programs

Back up files and directories

gibi haklar burada yönetilir.

Security Configuration Engine tarafından uygulandığı için previous security state mevcutsa policy kaldırıldığında rollback yapılabilir.

Previous state yoksa mevcut değer sistem üzerinde kalabilir.

Dolayısıyla User Rights Assignment için:

Kesin Tattoo

veya:

Kesin Rollback

şeklinde tek bir sınıflandırma kullanılmamalıdır.


10. Security Options

Security Options da aynı security configuration modelini kullanmaktadır.

Örneğin:

Security Settings

Local Policies

Security Options

altındaki ayarlar:

Network Security

Interactive Logon

Microsoft Network Client

Microsoft Network Server

Accounts

Devices

Domain Member

gibi birçok Windows security setting içerir.

Security Configuration Engine tarafından yönetildiğinden previous state bilgisi mevcutsa rollback yapılabilir.


11. File System Security – Tattooing

Security Settings altında bulunan File System policy’si farklı davranır.

Örneğin:

Security Settings

File System

üzerinden:

C:\Application

klasörüne aşağıdaki ACL uygulanmış olsun:

Administrators     Full Control

SYSTEM             Full Control

Users             Read

ServiceAccount     Modify

Daha sonra GPO kaldırılırsa:

ACL eski haline otomatik olarak dönmez.

Policy ile uygulanan security descriptor sistem üzerinde kalır.

Yeni bir ACL uygulanana kadar mevcut ACL devam eder.

Bu nedenle:

File System Security

tattooing yapan policy kategorisidir.

Rollback için eski ACL’nin bilinmesi gerekir.

Örneğin deployment öncesinde:

icacls C:\Application /save ACL-Backup.txt /t

kullanılabilir.

Rollback sırasında:

icacls C:\ /restore ACL-Backup.txt

gibi yöntemler değerlendirilebilir.


12. Registry Security – Tattooing

Aşağıdaki policy:

Security Settings

Registry

GPP Registry ile aynı şey değildir.

Burada registry value değil:

Registry ACL

Security Descriptor

Permissions

yönetilmektedir.

Örneğin:

HKLM\Software\Application

üzerine yeni ACL uygulanırsa GPO kaldırıldığında ACL otomatik olarak eski haline dönmez.

Yeni bir security descriptor uygulanana kadar mevcut ACL devam eder.

Dolayısıyla:

Security Settings > Registry

bir tattooing örneğidir.


13. Sertifika Dağıtımı – Public Key Policies

Group Policy üzerinden certificate dağıtımı:

Computer Configuration

Policies

Windows Settings

Security Settings

Public Key Policies

altından yapılabilir.

Örneğin:

Trusted Root Certification Authorities

Intermediate Certification Authorities

Trusted Publishers

Untrusted Certificates

Enterprise Trust

store’larına certificate dağıtılabilir.

GPO tarafından dağıtılan certificate Group Policy managed certificate store içerisinde tutulmaktadır.

Certificate ilgili GPO’dan kaldırıldığında ve başka bir kaynak tarafından dağıtılmıyorsa Group Policy refresh sonrasında certificate’ın GPO-managed presence’ı ortadan kalkar.

Bu nedenle GPO üzerinden doğrudan dağıtılan certificate:

Policy Managed

bir yapılandırmadır.

Ancak aynı certificate:

Başka bir GPO

Manual Import

Enterprise Certificate Store

MDM

Başka bir management platformu

tarafından da dağıtılıyorsa certificate store içerisinde görünmeye devam edebilir.


14. Certificate Autoenrollment

Certificate Autoenrollment ile certificate deployment aynı şey değildir.

Autoenrollment policy:

Certificate Services Client – Auto-Enrollment

üzerinden kullanıcı veya bilgisayarın CA’dan certificate almasını sağlar.

Akış:

GPO

↓

Autoenrollment

↓

Certificate Request

↓

Certification Authority

↓

Certificate Issued

↓

Local Personal Store

Policy daha sonra kaldırılırsa:

Autoenrollment policy kalkar

ancak:

Daha önce issue edilmiş certificate Personal Store’da kalır.

Yani burada policy kaldırılır fakat policy’nin oluşturduğu certificate lifecycle object otomatik olarak ortadan kalkmaz.


15. Windows Defender Firewall with Advanced Security

Firewall GPO:

Computer Configuration

Policies

Windows Settings

Security Settings

Windows Defender Firewall with Advanced Security

altında yönetilmektedir.

GPO ile oluşturulan firewall rule, Group Policy policy store’un parçasıdır.

GPO artık uygulanmadığında o GPO’ya ait firewall rule resultant policy’den çıkar.

Local firewall rule’ları ise ayrı configuration olarak devam edebilir.

Dolayısıyla:

GPO Firewall Rule

tattooing yapan bir configuration değildir.


16. Software Installation

Group Policy Software Installation için davranış policy option’a bağlıdır.

Örneğin MSI package:

Computer Configuration

Policies

Software Settings

Software Installation

üzerinden dağıtılmış olsun.

Default durumda application yüklendikten sonra GPO scope dışına çıksa bile application sistem üzerinde kalabilir.

Ancak package properties içerisinde:

Uninstall this application when it falls out of the scope of management

seçeneği aktifse computer veya user policy kapsamından çıktığında application uninstall edilir.

Dolayısıyla:

Software Installation

Conditional Cleanup kategorisindedir.


17. Folder Redirection

Folder Redirection için removal davranışı policy içerisinde tanımlanabilir.

Örneğin:

Documents

Desktop

Pictures

başka bir network path’e yönlendirilmiş olabilir.

Policy kaldırıldığında iki farklı davranış seçilebilir:

Leave the folder in the new location

veya:

Redirect the folder back to the local userprofile location

Dolayısıyla Folder Redirection:

Conditional Rollback

kategorisindedir.


18. Startup / Shutdown / Logon / Logoff Scripts

Group Policy script assignment kaldırıldığında script artık çalışmaz.

Ancak script’in sistem üzerinde yaptığı değişiklikler geri alınmaz.

Örneğin script:

Set-ItemProperty

New-LocalUser

New-Item

Set-Service

New-ScheduledTask

gibi işlemler yaptıysa GPO kaldırıldığında:

Script assignment kaldırılır

fakat:

Script’in yaptığı değişiklikler kalır.

Bu nedenle script tabanlı deployment’larda ayrıca rollback script hazırlanması gerekir.


19. BitLocker Policy

BitLocker policy kaldırıldığında BitLocker configuration enforcement ortadan kalkabilir.

Ancak:

Encrypted Volume

otomatik olarak decrypt edilmez.

Örneğin:

Policy

Require BitLocker

kaldırılırsa:

Disk şifreli kalır.

Bu, policy ile policy’nin yarattığı sonucun farklı lifecycle’a sahip olmasına iyi bir örnektir.


20. Windows LAPS

Windows LAPS policy kaldırıldığında password management policy enforcement ortadan kalkar.

Ancak daha önce oluşturulmuş ve uygulanmış local Administrator password:

Policy kaldırıldı

diye eski parolaya dönmez.

Son uygulanmış password geçerliliğini korur.

Bu da:

Policy gider

State kalır

davranışının başka bir örneğidir.


21. Custom ADMX Dosyaları

Custom ADMX dosyalarında özellikle dikkatli olunmalıdır.

Bir vendor ADMX dosyası aşağıdaki registry path’e yazabilir:

HKLM\Software\Vendor\Product

Policy’nin:

Enabled

Disabled

Not Configured

durumlarının registry üzerinde ne yaptığı tamamen ADMX içerisindeki tanıma bağlıdır.

Bu nedenle custom ADMX için:

Administrative Template olduğu için kesin geri alınır

şeklinde bir kabul yapılmamalıdır.

ADMX içerisindeki:

key=

valueName=

enabledValue

disabledValue

delete

tanımları kontrol edilmelidir.


Genel Group Policy Rollback Tablosu

Group Policy TürüGPO Kaldırıldığında Davranış
Administrative TemplatesPolicy enforcement kalkar; registry cleanup ADMX tanımına bağlıdır
GPP RegistryDeğer kalır
GPP Registry + Remove When No Longer AppliedItem kaldırılır
GPP Files / Folders / Tasks / ServicesCleanup option yoksa değişiklik kalır
GPP Local Users and GroupsMembership değişikliği kalır
Restricted GroupsSecurity Configuration rollback mekanizmasına tabidir
User Rights AssignmentPrevious security state mevcutsa rollback yapılabilir
Security OptionsPrevious security state mevcutsa rollback yapılabilir
File System ACLACL kalır
Registry ACLACL kalır
GPO Trusted Root CertificateGPO-managed certificate kaldırılır
Autoenrollment CertificateAlınmış certificate kalır
Windows Firewall GPO RuleResultant policy’den kalkar
Software InstallationUninstall option’a bağlıdır
Folder RedirectionRemoval option’a bağlıdır
Startup / Logon ScriptScript durur, yaptığı değişiklikler kalır
BitLockerPolicy kalkar, encrypted volume şifreli kalır
Windows LAPSPolicy kalkar, son password state kalır
Custom ADMXADMX registry semantics kontrol edilmelidir
File System SecurityTattooing
Registry SecurityTattooing

Group Policy Deployment Öncesi Rollback Planı

Özellikle security hardening GPO’larında deployment öncesinde rollback planı hazırlanmalıdır.

Örneğin aşağıdaki konfigürasyonlar değiştirilmeden önce mevcut değerler kaydedilebilir:

Registry

Local Group Membership

User Rights Assignment

Service Configuration

File ACL

Registry ACL

Firewall Rules

Certificate Store

Audit Policy

Registry backup:

reg export HKLM\Software\VOLSYS C:\Backup\VOLSYS.reg

Local Administrator membership:

Get-LocalGroupMember Administrators

User Rights:

secedit /export /cfg C:\Backup\SecurityPolicy.inf

File ACL:

icacls C:\Application /save C:\Backup\Application-ACL.txt /t

Certificate kontrolü:

Get-ChildItem Cert:\LocalMachine\Root

Firewall policy:

Get-NetFirewallRule

Audit policy:

auditpol /get /category:*


Sonuç

Group Policy ortamlarında:

GPO kaldırıldı

ifadesi:

Sistem otomatik olarak eski haline döndü

anlamına gelmez.

Doğru yaklaşım policy’nin hangi teknoloji tarafından uygulandığını belirlemektir.

Özet olarak:

Administrative Template

→ Policy semantics kontrol edilmeli

Security Settings

→ Security Configuration Engine / rollback state kontrol edilmeli

Group Policy Preferences

→ Tattooing varsayılan davranıştır

File / Registry ACL

→ Kalıcıdır

Certificate GPO Deployment

→ Policy-managed

Certificate Autoenrollment

→ Certificate kalır

Firewall GPO

→ Resultant policy’den kalkar

Scripts

→ Script kalkar, side-effect kalır

Özellikle kurumsal Active Directory ortamlarında GPO deployment dokümanının yanında rollback dokümanı da bulunmalıdır.

Bir security hardening policy’si uygulanmadan önce şu dört sorunun cevabı bilinmelidir:

1. Policy hangi Client-Side Extension tarafından uygulanıyor?

2. Ayar policy-managed mi yoksa gerçek sistem state’ini mi değiştiriyor?

3. Policy kaldırıldığında mevcut configuration otomatik olarak geri alınıyor mu?

4. Rollback için Delete, Disabled, previous value veya ayrı bir cleanup GPO gerekiyor mu?

Bu yaklaşım özellikle geniş kapsamlı Active Directory Security Hardening, NTLM/RC4 kapatma, LDAP security, SMB hardening, local administrator management ve PKI/certificate deployment projelerinde geri dönüş sırasında oluşabilecek operasyonel riskleri önemli ölçüde azaltacaktır.