Yetki grafiği okumak: Üyelik, nesne kontrolü, oturum ve yönetim ilişkileri.
Yetki grafiği bir saldırı sonucu değil, principal'lar ile denetlenebilir ilişkiler arasındaki hipotez haritasıdır. Üyelik, object-control ACE, oturum ve yönetim ilişkisi aynı ok türü değildir: her biri farklı veri tazeliği, farklı yetki kapsamı ve farklı runtime kapı gerektirir.
1. Core Mechanism / Temel mekanizma
Bu ders graph'taki bir kenarı, dayandığı directory veya runtime kanıtına geri bağlar. Bir yol ancak her kenarın subject'i, hedefi, kapsamı ve aradaki runtime koşulları doğrulanınca uygulanabilirlik adayı olur; nihai resource authorization ayrıca değerlendirilir.
Arabirimler ve belirtimler
- membership edge: principal'ın güvenlik grubu üyeliği veya nested group yolu.
- object-control edge: belirli object/property/control-access right için DACL ACE'i.
- session edge: bir principal'ın yönetilebilir hedefte gözlemlenmiş, zaman sınırlı oturumu.
- management edge: hedefte bir yönetim işlemi yapabilmek için gereken ayrı authorization boundary.
- AccessCheck: token'daki SID'ler, istenen erişim ve object DACL'i birlikte değerlendirilir.
- edge freshness: directory snapshot, oturum telemetrisi ve ACL'in aynı zamandaki gerçeği temsil etmeyebilir.
Okunacak şey düğüm değil, ilişki sözleşmesidir
Grafikteki User-A -> Group-B oku, User-A'nın Group-B üyesi olabileceğini; Group-B -> Object-C oku ise bir ACE'in Group-B'ye belirli bir hak verebildiğini anlatır. Bu iki oku tek bir 'admin' etiketiyle birleştirmek, hangi değişikliğin yolu kapatacağını gizler.
Bir object-control edge için ACE'in trustee'si, access mask'i, varsa object type GUID'i, inherited olup olmadığı ve hedef object okunmalıdır. 'Write Property' ile 'Generic All' aynı etkiyi vaat etmez; property-specific bir ACE yalnız ilgili attribute'a uygulanır.
Grafik yolu çalışma zamanı kanıtı değildir
Bir yolun çizilebilmesi, her geçişin aynı anda kullanılabildiğini kanıtlamaz. Token group membership değişmiş olabilir, ACE deny veya daha dar bir object type ile sınırlı olabilir; ağ, servis kabulü ya da resource ACL ayrıca engelleyebilir.
Oturum kenarı özellikle farklıdır: directory'de kalıcı bir yetki değil, gözlem zamanı ve toplama kapsamına bağlı bir olgudur. Eski bir session kaydı bugün de oturum olduğu anlamına gelmez.
Durum ve veri akışı
- Her edge'i membership, object-control, session veya management olarak sınıflandır.
- Edge'in dayandığı object, trustee, right ve gözlem zamanını kaydet.
- Bir sonraki edge için token, ACL ve runtime önkoşullarını ayrı doğrula.
- Resource üzerinde gerçek authorization sonucunu grafikten bağımsız kanıtla.
2. Exploitation / İstismar
Broken trust assumption
Saldırgan, graph'ta görünen ilişkilerden en az birinin kontrolünü elde etmiş veya yanlış yorumlanan bir edge'i kullanmaya çalışmaktadır; bu ders gerçek ortamda işlem adımı vermez.
Technical prerequisites
- Yolun her object-control edge'i doğru trustee ve gerekli access mask ile gerçekten uygulanabilirdir.
- Yolun runtime kısmı günceldir; hedef erişilebilir ve sonraki authorization boundary'leri ayrıca geçilebilir.
Exploitation mechanism / İstismar mekanizması
Graph, saldırgana hangi kontrol düzlemlerinin birleşebileceğini gösterir. Ancak geniş bir yol, en zayıf kenarı kadar gerçektir: stale session, kaldırılmış grup üyeliği veya property-specific ACE'in yanlış geniş yorumlanması yolu geçersiz kılar.
En kısa yol, en güçlü kanıt değildir
Bir araç iki düğüm arasında kısa yol gösterebilir; bu önceliklendirme için yararlıdır ama exploit kanıtı değildir. Kenarları kaynak artifact'e indirgemeden yolun etki alanını 'domain compromise' diye etiketlemek yanlış düzeltmeye yol açar.
Özellikle owner, WRITE_DAC ve doğrudan yazma hakları farklı mekanizmalardır. Değerlendirme, aradaki izin değişikliği adımını görünür tutmalıdır.
3. Defense & Detection / Savunma ve tespit
Telemetry scope
- Yüksek etkili her graph edge için object DN, trustee SID, ACE türü, mask ve object type bilgisini sakla.
- Membership kaynağını, nested group çözümünü ve snapshot zamanını ayır.
- Session edge'lerine gözlem kaynağı, collector kapsamı ve son görülme zamanını ekle.
- Yolu kapatacak en dar yetki değişikliğini ve beklenen iş etkisini ayrı kaydet.
Events and relevant fields
- Event 4662 uygun SACL ile denetlenen directory object operation'ını kaydedebilir. ObjectType erişilen nesnenin sınıfını belirtir; operation sırasında kullanılan property veya property-set GUID'leri Properties alanında yer alır. Olay tek başına graph path'inin tamamını veya resource access success sonucunu kanıtlamaz.
- Oturum telemetrisi görünürlük kapsamına bağlıdır; yokluğu oturumun hiç oluşmadığı sonucu değildir.
Graph bulgusunu denetlenebilir hale getir
Bir edge raporunda yalnız kaynak ve hedef adı değil, onu üreten artifact de bulunmalıdır. Bu örnekte ACE, belirli member property GUID'ine Write Property verir; parser ACE'i okur ama AccessCheck veya group değişikliği yapmaz.
Bu kayıt, düzeltme sonrası aynı edge'in yeniden ölçülmesini mümkün kılar. Düzeltmenin endpoint erişimini bozup bozmadığı ise ayrı change validation işidir.
Detection logic · XPath
*[System[(EventID=4662)]]Query assumptions
- Bu XPath örneği ilgili kanaldaki 4662 event'lerini seçer; member attribute GUID'ine göre filtreleme yapmaz.
- Property-specific incelemede ObjectType nesne sınıfını, Properties ise operation'la ilişkili class/property-set GUID'lerini taşır. Member attribute GUID'i Properties alanında aranmalı ve AccessMask, Subject, ObjectName ile birlikte yorumlanmalıdır.
- 4662 üretimi ilgili directory object üzerindeki uygun SACL'e ve başarı/başarısızlık audit ayarına bağlıdır; sorgu canlı dataset'te çalıştırılmadı.
False positives
- Meşru grup yönetimi aynı object type ile olay üretebilir.
- Event, bir path'in tamamının çalıştığını veya sonraki resource authorization sonucunu göstermez.
Hardening
- Privileged group membership ve hassas object ACE'lerini ayrı owner ve change-control ile yönet.
- Property-specific delegation'ı Generic All veya geniş Write Property ile değiştirme.
- Graph raporuna stale-data ve runtime verification alanlarını zorunlu ekle.
Örnekler üzerinde oku / Read the examples
ÖRNEĞİ BİRLİKTE OKUYALIM
EĞİTİM İÇİN HAZIRLANDIHangi kayıt erişim, hangisi audit veya integrity kuralı?
Group membership edge · property-specific SDDL
OA · Write PropertyNesneye özgü izin kaydı. Maske trustee’ye yönelik allow/deny kaydının kapsamıdır. İstek, token, sıra ve nesne türü incelenmeden effective access sonucu çıkarılmaz.
Built-in AdministratorsBu bölüm security descriptor’ın bir parçasıdır. Owner, primary group, DACL ve SACL farklı bilgi taşır.
Built-in AdministratorsBu bölüm security descriptor’ın bir parçasıdır. Owner, primary group, DACL ve SACL farklı bilgi taşır.
(OA;;WP;bf9679c0-0de6-11d0-a285-00aa003049e2;;S-1-5-21-1987654321-1234567890-2468013579-4101)Bu bölüm security descriptor’ın bir parçasıdır. Owner, primary group, DACL ve SACL farklı bilgi taşır.
Bir kuralı okumak ile “bu kişi kesin erişebilir” demek farklıdır. Erişim isteği, token, ACE sırası ve nesne türüyle birlikte değerlendirme gerekir.
Bu görünüm SDDL’deki kuralları açıklar; Windows’un erişim kararını çalıştırmaz. SACL audit ve mandatory label kurallarını taşır; izin veren DACL’in yerine geçmez.
Bu örneğin kapsamı
Sentetik grup object DACL kesiti. OA ACE'i belirli member attribute GUID'ine WP verir; gerçek directory'den alınmadı ve parser tam AccessCheck hesaplamaz.
Ham kaydı aç · SDDL
O:BAG:BAD:(OA;;WP;bf9679c0-0de6-11d0-a285-00aa003049e2;;S-1-5-21-1987654321-1234567890-2468013579-4101)İki yanlış kanı / Two reality checks
- Sanılan: Grafikte bir yol görünüyorsa her edge uygulanabilir ve sonuç garantidir.
- Gerçekte: Her edge'in right kapsamı, token/ACL değerlendirmesi, tazeliği ve runtime kapıları ayrı doğrulanır; resource authorization bağımsız son karardır.
- Sanılan: Bir ACE'teki Write Property her attribute üzerinde tam kontrol demektir.
- Gerçekte: Object-specific ACE, object type GUID'i ile daraltılabilir; örnekteki hak yalnız member attribute edge'inin dayanağıdır.
SIRA SENDE
Bu hikâyeyi sen çöz.
Bilgiyi hatırlamaktan bir adım ileri: koşulu değiştir, kanıtı oku, kararın nedenini anlat.
1 / 3 · SONUCU TAHMİN ET
FS01 üzerindeki session gözlemi dün alınmış. Bu ok bugün için ne söyler?
Bir ipucu
Oturumun gözlem zamanı ile directory üyeliğini ayır.
Cevabın gerekçesini oku
Dünkü gözlemi gösterir; bugünkü session ayrıca doğrulanmalıdır.
Doğru. Session edge zaman ve toplama kapsamına bağlıdır.
2 / 3 · KANITI OKU
Bu öğretim tablosunda hangi bilgi hakkın dar kapsamını gösterir?
- Edge type
- object-control
- Right
- Write Property
- Attribute scope
- member
- Resource READ result
- not observed
Bir ipucu
Write Property’nin hangi attribute’a uygulandığını ara.
Cevabın gerekçesini oku
member attribute kapsamı
Evet. Property-specific hak, tüm object üzerinde Generic All değildir.
3 / 3 · KENDİN ANLAT
Bu graph neden Tunahan’ın FS01 raporunu açtığını tek başına göstermez?
Bir ipucu
İlişki, runtime ve son resource kararını bağla.
Cevabın gerekçesini oku
Graph belirli ilişkileri gösterir; onların tazeliği ve token/ACL koşulları ayrıca doğrulanır. FS01’deki READ sonucu bunların ardından bağımsız kanıt ister.
- Edge türünü ve dar right kapsamını ayırdım.
- Güncel context ve FS01 READ sonucunun ayrı kanıt istediğini söyledim.
Açıklaman otomatik puanlanmaz. Kontrol noktalarını kendi cevabınla karşılaştır.
Bu pratikler öğrenme amaçlıdır; sertifika sınavının puanını etkilemez.
Kaynaklar / Sources
- Microsoft · How DACLs control access to an object
AccessCheck requested access, token SID and DACL evaluation. - Microsoft · Member attribute
member attribute schema identity and group membership role. - Microsoft · [MS-ADA2]: Attribute member
The member attribute identifies group members and its schemaIdGuid is bf9679c0-0de6-11d0-a285-00aa003049e2. - Microsoft · 4662(S, F): An operation was performed on an object
Appropriate SACL/audit settings govern event generation; ObjectType identifies the accessed object's class, Properties carries class/property-set GUIDs associated with the operation, and AccessMask/Subject provide operation context. - Microsoft · Consuming Events (Windows Event Log)
Windows Event Log XPath supports event selectors such as *[System/Level=1] and compound predicates; selectors must select event nodes. The sample query selects EventID 4662, with property-GUID inspection left to follow-up parsing.