SID Nedir?
SID - Security Identifiers (Güvenlik Tanımlayıcıları)
Windows sistemlerde, bir güvenlik sorumlusu veya güvenlik grubunu benzersiz şekilde tanımlamak için bir güvenlik tanımlayıcısı (SID) kullanılır. Güvenlik sorumluları, bir kullanıcı hesabı, bir bilgisayar hesabı veya bir kullanıcının bilgisayar hesabının güvenlik bağlamında çalışan bir işlem gibi işletim sistemi tarafından doğrulanabilen herhangi bir varlığı temsil edebilir.
Hesabın güvenlik bağlamında çalışan her hesap, grup veya işlem, Windows Domain denetleyicisi gibi bir yetkili tarafından verilen benzersiz bir SID'ye sahiptir. Bir güvenlik veritabanında saklanır. Sistem, hesap veya grup oluşturulduğu sırada belirli bir hesabı veya grubu tanımlayan SID'yi oluşturur. Bir SID, bir kullanıcı veya grup için benzersiz bir tanımlayıcı olarak kullanıldığında, başka bir kullanıcıyı veya grubu tanımlamak için bir daha asla kullanılamaz.
Bir kullanıcı her oturum açtığında, sistem o kullanıcı için bir erişim belirteci oluşturur. Erişim belirteci, kullanıcının SID'sini, kullanıcı haklarını ve kullanıcının ait olduğu herhangi bir grup için SID'leri içerir. Bu belirteç, kullanıcının o bilgisayarda gerçekleştirdiği eylemler için güvenlik bağlamı sağlar.
Belirli kullanıcılara ve gruplara atanan benzersiz şekilde oluşturulmuş, domaine özgü SID'lere ek olarak, genel grupları ve genel kullanıcıları tanımlayan iyi bilinen SID'ler vardır. Örneğin, Public ve Global SID'leri, tüm kullanıcıları içeren bir grubu tanımlar. İyi bilinen SID'lerin tüm işletim sistemlerinde sabit kalan değerleri vardır.
SID'ler, Windows güvenlik modelinin temel yapı taşlarıdır. Windows Server işletim sistemlerinin güvenlik altyapısındaki yetkilendirme ve erişim kontrol teknolojilerinin belirli bileşenleri ile çalışırlar. Bu, ağ kaynaklarına erişimi korumaya yardımcı olur ve daha güvenli bir bilgi işlem ortamı sağlar.
Security Identifiers Nasıl Çalışır?
Kullanıcılar hesap adını kullanarak hesaplara atıfta bulunur, ancak işletim sistemi dahili olarak, güvenlik tanımlayıcılarını (SID'leri) kullanarak hesabın güvenlik bağlamında çalışan hesaplara ve işlemlere atıfta bulunur. Domain hesapları için, bir güvenlik sorumlusunun SID'si, Domain’in SID'sini hesap için bir göreli tanımlayıcı (RID) ile birleştirerek oluşturulur. SID'ler kapsamları içinde benzersizdir (domain veya local) ve asla yeniden kullanılmazlar.
İşletim sistemi, hesap veya grup oluşturulduğu sırada belirli bir hesabı veya grubu tanımlayan bir SID oluşturur. Yerel bir hesabın veya grubun SID'si bilgisayardaki Yerel Güvenlik Yetkilisi (LSA) tarafından oluşturulur ve diğer hesap bilgileriyle birlikte kayıt defterinin güvenli bir alanında depolanır. Bir domain hesabı veya grubu için SID, domain güvenlik yetkilisi tarafından oluşturulur ve Active Directory Domain Hizmetlerinde Kullanıcı veya Grup nesnesinin bir özniteliği olarak depolanır.
Her yerel hesap ve grup için SID, oluşturulduğu bilgisayar için benzersizdir. Bilgisayardaki hiçbir hesap veya grup aynı SID'yi paylaşmaz. Aynı şekilde, her domain hesabı ve grubu için, SID bir kuruluş içinde benzersizdir. Bu, bir domain’de oluşturulan bir hesabın veya grubun SID'sinin, kuruluştaki başka herhangi bir domain’de oluşturulan bir hesap veya grup için SID ile hiçbir zaman eşleşmeyeceği anlamına gelir.
SID'ler her zaman benzersiz kalır. Güvenlik yetkilileri asla aynı SID'yi iki kez vermez ve silinen hesaplar için SID'leri asla yeniden kullanmazlar. Örneğin, bir Windows domain’de kullanıcı hesabına sahip bir kullanıcı işinden ayrılırsa, yönetici, hesabı tanımlayan SID dahil olmak üzere Active Directory hesabını siler. Daha sonra aynı şirkette farklı bir işe dönerse, bir yönetici yeni bir hesap oluşturur ve Windows Server işletim sistemi yeni bir SID oluşturur. Yeni SID eskisiyle eşleşmiyor; bu nedenle, kullanıcının eski hesabından hiçbir erişimi yeni hesaba aktarılmaz. İki hesabı, tamamen farklı iki güvenlik yöneticisi temsil ediyor.
Security Identifiers Mimarisi
Security Identifiers (Güvenlik tanımlayıcıları), değişken sayıda değer içeren ikili formatta bir veri yapısıdır. Yapıdaki ilk değerler SID yapısı hakkında bilgi içerir. Kalan değerler bir hiyerarşi içinde düzenlenir (bir telefon numarasına benzer) ve SID veren yetkiliyi (örneğin, "NT Authority"), SID veren domaini ve belirli bir güvenlik sorumlusu veya grubunu tanımlar. Aşağıdaki görüntü bir SID'nin yapısını göstermektedir.
KAVRAM
|
AÇIKLAMA |
Revision |
Belirli bir SID'de kullanılan SID yapısının sürümünü gösterir.
|
Identifier Authority |
Belirli bir güvenlik sorumlusu türü için SID'ler verebilen en yüksek yetki düzeyini tanımlar. Örneğin, Everyone grubu için SID'deki tanımlayıcı otorite değeri 1'dir. Belirli bir Windows Server hesabı veya grubu için SID'deki tanımlayıcı yetki değeri 5'tir (NT Authority).
|
SubAuthorities |
Bir veya daha fazla alt yetki değerinden oluşan bir dizi içinde yer alan bir SID'deki en önemli bilgileri tutar. Serideki son değere kadar olan ancak dahil olmayan tüm değerler, bir kuruluştaki bir alanı toplu olarak tanımlar. Serinin bu kısmına alan tanımlayıcısı denir. Dizideki göreceli tanımlayıcı (RID) olarak adlandırılan son değer, bir domain’e göre belirli bir hesabı veya grubu tanımlar.
|
· Bir SID'nin bileşenleri, standart gösterimi kullanarak ikili veri tipinden dize biçimine dönüştürüldüğünde görselleştirmek için daha kolaydır:
· Bu gösterimde, bir SID'nin bileşenleri aşağıdaki tabloda gösterildiği gibi temsil edilir.
KAVRAM |
AÇIKLAMA |
S |
Dizenin bir SID olduğunu gösterir. |
R |
Revizyon seviyesini gösterir. |
X |
Tanımlayıcı otorite değerini gösterir. |
Y |
Bir dizi alt yetki değerini temsil eder; burada n, değerlerin sayısıdır. |
· Örneğin, Administrators grubunun SID'si, standartlaştırılmış SID gösteriminde aşağıdaki dize olarak temsil edilir:
· SID'nin dört bileşeni vardır:
1- Bir revisyon seviyesi (1)
2- Bir Identifier Authority (Tanımlayıcı Yetkili) değeri (5, NT Authority)
3- Bir Domain Identifier (Domain Tanımlayıcısı) ( 32, Builtin [Domain] )
4- Bir Relative Identifier (Göreli Tanımlayıcı) (544, Administrators)
· Yerleşik hesaplar ve gruplar için SID'ler her zaman aynı domain tanımlayıcı değerine sahiptir: “32”. Bu değer , Windows Server işletim sisteminin bir sürümünü çalıştıran her bilgisayarda bulunan Builtin domain’i tanımlar . Bir bilgisayarın yerleşik hesaplarını ve gruplarını başka bir bilgisayarın yerleşik hesaplarından ve gruplarından ayırt etmek hiçbir zaman gerekli olan bir şey değildir, çünkü bunlar kapsam olarak yereldir. Tek bir bilgisayar için yereldirler.
· Yerleşik hesapların ve grupların Builtin domain’i kapsamında birbirinden ayırt edilmesi gerekir. Bu nedenle, her hesap ve grup için SID'nin benzersiz bir göreli tanımlayıcısı vardır. 544'ün göreli tanımlayıcı değeri, yerleşik Administrators grubuna özgüdür. Yerleşik domain’deki başka hiçbir hesap veya grubun son değeri 544 olan bir SID'si yoktur.
Başka bir örnekte, Domain Admins için SID'yi düşünün. Bir kuruluştaki her Domain’in bir Domain Admins grubu vardır ve her grubun SID'si farklıdır. Aşağıdaki örnek, Contoso, Ltd. domain’deki (Contoso\Domain Admins) Domain Admins grubunun SID'sini temsil eder:
Contoso\Domain Admins için SID:
1- Bir revizyon seviyesi (1)
2- Bir Identifier Authority (Tanımlayıcı Yetkili) - (5, NT Authority)
3- Bir Domain Identifier (Domain Tanımlayıcısı) - (21-1004336348-1177238915-682003330, Contoso)
4- Bir Relative Identifier (Göreli Tanımlayıcı) - (512, Domain Admins)
Bir Windows sistemde bulunan kullanıcıların SID’lerini listeleme işlemi aşağıdaki gibi yapılabilir;
Access Tokens (Erişim Belirteçleri)
Access Tokens, bir kullanıcı hesabıyla ilişkili kimlik ve kullanıcı haklarıyla ilgili bilgileri içeren korumalı bir nesnedir.
Bir kullanıcı etkileşimli olarak oturum açtığında veya Windows çalıştıran bir bilgisayara ağ bağlantısı kurmaya çalıştığında, oturum açma işlemi kullanıcının kimlik bilgilerini doğrular. Kimlik doğrulama başarılı olursa, işlem kullanıcı için bir SID ve kullanıcının güvenlik grupları için bir SID listesi döndürür. Bilgisayardaki Yerel Güvenlik Yetkilisi (LSA) bu bilgileri bir Access Token oluşturmak için kullanır. Bu, oturum açma işlemi tarafından döndürülen SID'leri ve LSA tarafından kullanıcıya ve kullanıcının güvenlik gruplarına atanan kullanıcı haklarının bir listesini içerir.
LSA, Access Token oluşturduktan sonra, kullanıcı adına yürütülen her thread ve process’e Access Token’ın bir kopyası eklenir. Bir thread veya process, güvenliği sağlanabilir bir nesneyle etkileşime girdiğinde veya kullanıcı hakları gerektiren bir sistem görevi gerçekleştirmeye çalıştığında, işletim sistemi, yetki düzeyini belirlemek için thread ile ilişkili Access Token’ı kontrol eder.
KAYNAKLAR:
Yorumlar
Yorum Gönder