Kullanıcılar, gruplar ve UAC
- Windows, hesap ve grupları SID denen kimliklerle tanır. Bu derste SID'leri okursun. UAC'nin yönetici hesabıyla açılan bir oturumda yetki kullanımını nasıl sınırladığını görürsün.
- Yerleşik grupları ve RID'leri okur, UAC'nin bir güvenlik sınırı değil kolaylık katmanı olduğunu ve neden atlatılabildiğini görürsün.
- Yönetici hesabını ayırma, LAPS ve Credential Guard gibi savunmaları da tanırsın.
Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +50 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.
Önceki derste izinlerin kimliklere bağlı olduğunu gördün: Muhasebe-Grubu, Everyone, Administrators. Şimdi bu kimliklerin arkasına bakıyoruz.
Windows bir kullanıcıyı ya da grubu adıyla değil, kalıcı bir numarayla tanır. Bu numaraya SID denir ve bir hesap silinip aynı adla yeniden açılsa bile asla geri gelmez. Bu derste SID'leri okumayı, yerleşik grupları ve RID'leri tanımayı, sonra da yönetici oturumunu bile kısıtlayan UAC mekanizmasını öğreneceksin. Günlüklerde ad yerine numara gördüğünde kimi gördüğünü bileceksin ve bir hesabın gerçekte neye yetkisi olduğunu birkaç komutla çıkaracaksın.
SID: kalıcı kimlik numarası
Windows her makinede yerel bir kullanıcı ve grup veritabanı tutar; adı SAM'dir (Security Account Manager). Bir hesap açıldığında yerel güvenlik yetkilisi (LSA) ona bir SID (Security Identifier) atar. Bu numara benzersizdir ve bir daha asla başka bir hesaba verilmez; hesabın adını değiştirsen de SID aynı kalır.
İki ayrı makinedeki aynı isimli hesap da farklı SID taşır, çünkü her birini kendi makinesi üretir. Alan (domain) hesaplarında ise SID'i etki alanı denetleyicisi üretir ve RID master denen bir rol numaraları çakışmadan dağıtır. Oturum açtığında sistem senin SID'ini ve üye olduğun grupların SID'lerini bir erişim jetonuna (access token) koyar; sonraki her erişim kararını bu jetondaki SID'lerle verir.
SID'in biçimi sabittir ve standart gösterimde S-1-5-21-... gibi okunur. Baştaki S bunun bir SID olduğunu, 1 sürümü, sonraki sayı yetkiyi (5, NT Authority) gösterir. Ardından makineye ya da etki alanına özgü bir tanımlayıcı gelir, en sonda da hesabın sıra numarası olan RID durur.
Yeni açılan hesapların RID'leri 1000'den başlar. Bazı SID'ler ise her Windows kurulumunda birebir aynıdır; bunlara well-known SID denir. S-1-1-0 herkesi kapsayan Everyone grubunu, S-1-5-18 işletim sisteminin kendi hesabı Local System'i, S-1-5-11 Authenticated Users'ı, S-1-5-32-544 ise yerleşik Administrators grubunu gösterir.
Bir günlükte ad yerine bu numaralardan birini görürsen, ilk işin SID'i tanıyıp hangi kimliğe ait olduğunu çözmektir. Numaralar sabit olduğu için bu bilgi dilden ve sürümden bağımsızdır; bir kez öğrenince her Windows'ta işine yarar.
C:\> whoami /user USER INFORMATION ---------------- User Name SID ==================== ============================================= altaykargo\muhasebe1 S-1-5-21-3623811015-3361044348-30300820-1013
Bu SID'i parça parça çöz. S bunun bir SID olduğunu, 1 sürümü söyler. 5, numarayı NT Authority'nin verdiğini gösterir.
21 ile başlayıp 30300820'ye kadar süren bölüm, altaykargo etki alanının tanımlayıcısıdır. Aynı etki alanındaki her hesap bu bölümü paylaşır. En sondaki 1013 ise muhasebe1'in RID'idir ve hesabı ötekilerden ayırır.
Yerleşik grupların SID'inde bu uzun tanımlayıcıyı görmezsin. S-1-5-32-544'teki 32, her makinede bulunan Builtin alanını gösterir; bu yüzden o numara her kurulumda aynıdır. Bir günlükte -500 ile biten bir SID görürsen, bunun yerleşik Administrator hesabı olduğunu da bilirsin.
Etkinlik 1 / 6
Bir olay kaydında S-1-5-32-544 numarasını görüyorsun. Bu numara hangi gruba işaret eder?
UAC: yönetici oturumunu bile kısıtlamak
Yönetici (Administrators) grubundaki bir hesapla oturum açtığında bile sistem sana doğrudan tam yetki vermez. UAC (User Account Control) devreye girer. Oturum açarken sana iki jeton bağlanır: sıradan işler için hakları budanmış filtrelenmiş jeton ve yalnız onay verdiğinde açılan tam yetkili jeton. Bu ayrıma bölünmüş jeton (split token) denir.
Masaüstünü ve bütün uygulamalarını filtrelenmiş jetonla çalıştırırsın; explorer.exe bu jetonu taşır ve başlattığın her program onu devralır. Yükseltme gereken bir iş çıktığında Windows bir onay ister. Windows ayrıca jetonlara bütünlük düzeyi (integrity level) atar: sıradan uygulamalar orta, yükseltilmiş olanlar yüksek düzeyde çalışır ve düşük düzeyli bir süreç yüksek düzeyliye müdahale edemez.
İstem biçimi hesabına göre değişir. Administrators üyesi yalnız onay (consent) ekranı görür: Evet ya da Hayır. Standart kullanıcı ise bir yönetici hesabının parolasını girmesi gereken kimlik bilgisi (credential) ekranıyla karşılaşır, çünkü yükseltecek ikinci bir jetonu yoktur. Bu istem, taklit edilmesini zorlaştırmak için güvenli masaüstünde (secure desktop) gösterilir; ekran kararır ve yalnız Windows süreçleri oraya çizebilir.
UAC'nin denetim panelinde dört bildirim düzeyi vardır; varsayılan düzey, yalnız uygulamalar değişiklik yapmaya çalıştığında bildirir. En alttaki düzey hiç istem göstermez ve yöneticiyi sormadan yükseltir; bu düzey önerilmez. Varsayılan ilke, Microsoft'a ait olmayan bir program yükselmek istediğinde güvenli masaüstünde onay sormaktır.
Etkinlik 2 / 6
Doğru mu, yanlış mı?
Administrators grubundaki bir hesap, yükseltme gerektiren bir işlemde UAC onay ekranıyla karşılaşır.
Her kuralın bir istisnası var. Yerleşik Administrator hesabı, yani RID'i 500 olan hesap, varsayılan ayarlarla bölünmüş jeton kullanmaz. Yönetici Onay Modu bu hesap için kapalı gelir, bu yüzden onay ekranı hiç çıkmaz ve hesap tam yetkiyle çalışır. Bu durum hesabı pratik ama tehlikeli yapar; ele geçtiğinde saldırganın önüne hiçbir engel çıkmaz.
Kurumlar bu yüzden yerleşik Administrator'ı çoğu zaman devre dışı bırakır ve adlandırılmış yönetici hesapları kullanır. Adlandırılmış bir hesapta günlükteki her işlemin sahibi bellidir. UAC'nin bir makinede nasıl ayarlandığını görmek için ilgili kayıt değerlerini okursun.
PS C:\> Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System | >> Format-List EnableLUA, ConsentPromptBehaviorAdmin, PromptOnSecureDesktop, FilterAdministratorToken EnableLUA : 1 ConsentPromptBehaviorAdmin : 5 PromptOnSecureDesktop : 1 FilterAdministratorToken : 0
Değerleri tek tek oku. EnableLUA 1, Yönetici Onay Modu'nun açık olduğunu söyler; 0 olursa UAC ilkelerinin tamamı devreden çıkar ve Windows Güvenlik bir uyarı gösterir. ConsentPromptBehaviorAdmin 5 varsayılan davranıştır: Microsoft'a ait olmayan bir program yükselmek isterse güvenli masaüstünde onay sorulur.
PromptOnSecureDesktop 1, istemin kararan güvenli masaüstünde çıktığını gösterir. FilterAdministratorToken 0 ise yerleşik Administrator hesabının jetonunun bölünmediği anlamına gelir. Denetimde bu dört değer UAC'nin ne kadar sıkı olduğunu bir bakışta anlatır.
ConsentPromptBehaviorAdmin 0 görürsen yöneticiler hiç sorulmadan yükseliyor demektir. Bu değerleri bir saldırganın da değiştirmek isteyeceğini unutma; beklenmedik bir değişiklik tek başına incelenir.
Etkinlik 3 / 6
Bir makinede yerleşik Administrator hesabı (RID 500) varsayılan ayarlarla oturum açıyor. UAC bu hesapta nasıl davranır?
Oturumun kimliğini sorgulamak
Bir hesabın ne olduğunu ve neye yetkisi olduğunu birkaç komutla çıkarırsın. whoami /user oturumun SID'ini verir. whoami /groups üye olduğun her grubu ve her birinin SID'ini listeler; Administrators satırının orada olup olmaması hesabın yönetici olup olmadığını söyler.
Yerel hesapları ve grup üyeliklerini yönetmek için PowerShell'in yerel hesap komutları işini görür: Get-LocalUser makinedeki yerel kullanıcıları, Get-LocalGroupMember Administrators yerel yönetici grubunun üyelerini döndürür. Bu sonuçlar nesne olduğu için süzmesi kolaydır. Bir denetimde ilk sorulardan biri şudur: bu makinede yerel Administrators grubuna kimler eklenmiş ve bunların hepsi orada olmalı mı?
PS C:\> Get-LocalGroupMember Administrators ObjectClass Name PrincipalSource ----------- ---- --------------- User ALTAYKARGO\yonetici ActiveDirectory User MUH-PC07\destek2 Local Group ALTAYKARGO\Domain Admins ActiveDirectory
Bu çıktıyı satır satır yorumla. İlk satır bir alan hesabıdır: yonetici, BT ekibinin beklenen yöneticisidir.
İkinci satırdaki destek2 ise makineye ait yerel bir hesaptır; onun yerel Administrators grubunda ne işi var? PrincipalSource sütunu bu ayrımı açıkça yazar.
Üçüncü satır bir alan grubudur; Domain Admins makine etki alanına katıldığında yerel yönetici grubuna kendiliğinden eklenir, bu olağandır. Beklenmedik olan, tek bir makineye elle eklenmiş yerel bir hesaptır. Get-LocalUser ise hesapların kendisini listeler ve her birinin etkin olup olmadığını gösterir; devre dışı bırakılmış bir Administrator hesabının sessizce yeniden etkinleştirilmesi, tek başına incelenmesi gereken bir değişikliktir.
Etkinlik 4 / 6
Oturumunun hangi gruplara üye olduğunu komut satırından öğren.
Well-known SID'ler, LOLBin ve atlatma
Well-known SID'leri ezberlemek denetimi hızlandırır, çünkü günlükler ad yerine sık sık numara basar. En çok karşına çıkanlar: S-1-1-0 Everyone, S-1-5-18 Local System, S-1-5-32-544 Administrators, S-1-5-32-545 Users.
Şimdi işin can alıcı kısmı: UAC bir güvenlik sınırı değil, bir kolaylık katmanıdır. Bu ayrım önemli. Bir saldırgan makinede kod çalıştırma hakkı bulduysa, Windows'un kendiliğinden yükselen bazı yerleşik programlarını kötüye kullanarak onay ekranını hiç göstermeden yetki yükseltebilir.
Sistemde zaten kurulu olup bu amaçla kötüye kullanılan programlara LOLBin (living off the land binary) denir. Saldırgan ayrı bir araç indirmez, eldekini kullanır. MITRE ATT&CK bu UAC atlatma tekniğini T1548.002 olarak izler.
Savunan taraf bunu birkaç yönden karşılar. UAC düzeyini en sıkıya, yani her yükseltmeyi bildiren düzeye alırsan atlatmaların bir kısmı kapanır. eventvwr.exe ya da fodhelper.exe gibi kendiliğinden yükselen programların beklenmedik bir alt süreç açtığı ya da UAC ile ilgili kayıt anahtarlarının değiştiği anları izlersin.
En etkili önlem ise basittir: standart kullanıcılara günlük işlerinde yerel Administrators üyeliği verme. Yükseltilecek bir jeton yoksa, atlatılacak bir yükseltme de yoktur. Bu yüzden yetki atlatma, çoğu zaman bir yetki tasarımı sorunudur, yalnız bir yama sorunu değildir.
Etkinlik 5 / 6
Well-known SID'i karşılığıyla eşleştir.
Hesapları ayırmak ve ölçekte sorgu
İyi bir düzen yönetici işini günlük işten ayırır. E-posta okuyup web gezdiğin hesapla sunucu yöneten hesap aynı olmamalı; böylece gündelik hesabın ele geçse bile saldırgan doğrudan yönetici hakkı almaz. Yerel yönetici parolalarının her makinede aynı olması da klasik bir yanlıştır, çünkü bir makineden çıkan parola hepsini açar.
Windows LAPS her cihaza benzersiz bir yerel yönetici parolası üretir, düzenli döndürür ve güvenli biçimde dizine yedekler; bu özellik 11 Nisan 2023 güncellemesinden sonra Windows'a yerleşik gelir. Credential Guard ise NTLM özetlerini ve Kerberos biletlerini sanallaştırmayla yalıtır, böylece yönetici haklı zararlı yazılım bile bu sırları bellekten çekemez.
Bu savunmalar bir arada çalışır. Credential Guard, Windows 11 22H2 ve Windows Server 2025'ten başlayarak varsayılan olarak açık gelir. Koşul, makinenin etki alanına katılı olması, donanım şartlarını karşılaması ve Enterprise ya da Education lisansı taşımasıdır; etki alanı denetleyicileri bunun dışında kalır. Yani kurumdaki yeni istemcilerde çoğu zaman zaten devrededir.
LAPS parolayı benzersiz kılar, Credential Guard onu bellekte korur, hesap ayrımı ise bir hesabın ele geçmesini ötekine sıçramaktan alıkoyar. Hiçbiri tek başına yetmez; katman katman dizildiklerinde bir saldırganın yanal hareketini adım adım zorlaştırırlar. Savunmayı tek bir ayara değil, bu katmanların toplamına yaslarsın.
Bütün bu bilgiyi tek makinede değil, bütün filoda düşünmen gerekir. Bir sonraki derste bu sorguları PowerShell ile ölçeğe taşırsın: aynı whoami ya da Get-LocalGroupMember sorgusunu yüzlerce makineye tek komutla yayar, sonucu süzüp yalnız beklenmedik yerel yöneticileri listelersin. Elle yapılan bir iş otomatikleşince saatler yerine dakikalar sürer ve zamanla bir temel çizer; bugün listede beliren yabancı bir hesap, geçen haftaki listede olmadığı için hemen göze çarpar.
Etkinlik 6 / 6
Bir SOC analisti yüz makinedeki yerel Administrators üyeliğini tek seferde toplamak istiyor. Hangi yaklaşım bu işe en uygundur?
Derinleş:Administrator protection: UAC'nin halefi
Windows 11, UAC'nin yerini almaya aday yeni bir model getiriyor: Administrator protection. Klasik modelde yönetici, oturum boyunca cebinde duran tam yetkili bir jeton taşır. Yeni modelde kullanıcı sürekli yetkisiz durumda kalır; yükseltme gerektiğinde Windows kimliği Windows Hello ile doğrular, gizli ve profili ayrılmış bir sistem hesabından anlık (just-in-time) bir yönetici jetonu üretir, iş bitince jetonu yok eder. Böylece kalıcı bir yönetici jetonu ortalıkta durmaz ve kendiliğinden yükselme olmaz; bu da zararlı yazılımın sessizce yönetici olma zincirini kırar.
Özellik KB5120998 ile (Ağustos 2026) kullanılabilir, varsayılan olarak kapalıdır ve kurumsal ortamda ilke ile açılır. Onaylanan ve reddedilen yükseltmeler, Microsoft-Windows-LUA sağlayıcısında 15031 ve 15032 numaralı ETW olayları olarak yazılır; bunları görmek için bir izleme oturumu açarsın.
Derinleş:SID yeniden kullanılmaz ve SIDHistory
SID'in asla yeniden kullanılmaması bazen sorun yaratır. Bir çalışan ayrıldığında hesabı ve SID'i silinir; geri dönüp yeni bir hesap aldığında yepyeni bir SID üretilir ve eski izinlerinin hiçbiri taşınmaz. Çalışanlar etki alanları arasında taşınırken bu sorunu çözmek için SIDHistory alanı vardır: hesabın eski SID'leri burada tutulur ve erişim denetiminde yenisi gibi sayılır. Pratik ama riskli bir alandır.
Bir saldırgan SIDHistory'ye ayrıcalıklı bir grubun SID'ini sokabilirse, görünürde sıradan bir hesapla gizlice yönetici yetkisi taşır. Bu yüzden SIDHistory ekleme olayı (4765) yüksek önemli sayılır ve beklenmedik bir ekleme tek başına araştırılır. Aynı mantık izin denetiminde de karşına çıkar: bir hesabın erişimini anlamak için yalnız adına değil, jetonundaki bütün SID'lere bakman gerekir.
Okumayı istediğin sırayla sürdürebilirsin. Ders, bütün etkinlikleri cevapladığında tamamlanır.