Microsoft Ortamında Zorunlu Bütünlük Kontrolü (MIC)

Microsoft ortamında yetkilendirme işlemlerinin yapıtaşlarından birisi işletim sistemi tarafından oluşturulan etiketlerdir. Bu yazıda Microsoft tarafından yetkilendirme çözümü olarak sunulan Zorunlu Bütünlük Kontrolü (Mandatory Integrity ControlMIC) incelenecektir.

Kenneth J. Biba tarafından 1977 yılında geliştirilen Biba bütünlük modeli farklı güvenlik seviyesine sahip nesnelere bütünlüğün korunmasını garanti etmek için geliştirilmiş erişim kontrol kurallarıdır. Burada nesne bütünlüğünden kastedilen yetkisiz kullanıcıların sistemde veri değişikliği yapmasının engellenmesidir. Bunun için sistemdeki nesnelere güvenlik seviyelerine sınıflandırılırlar. Sınıflandırılan bu nesnelere güvenlik seviyelerini tanımlayan etiketler (labels) eklenir ve erişilmeye çalışılan nesnelerin etiket değerlerine göre erişime izin verilir ya da reddedilir. Biba bütünlük kontrol modeli, farklı etiket değerlerine sahip bu nesnelere bütünlüğün korunabilmesi için erişimin nasıl gerçekleşmesi gerektiğini tanımlayan kuralları belirler. Örneğin, Biba kontrol modeline göre düşük güvenlik seviyesine sahip bir etiket ile çalışan bir kullanıcı, yüksek güvenlik seviyesine sahip bir etiket ile korunan bir nesne üzerinde değişiklik yapma hakkı yoktur (No write-up). Fakat bunun tersine izin verilir. Yani yüksek seviyedeki bir kullanıcı, düşük seviye bir nesne üzerinde değişiklik yapma hakkına sahiptir. Biba kontrol modeline göre aynı zamanda yüksek güvenlik seviyesine sahip bir kullanıcı, düşük seviyeli bir nesne üzerinde okuma hakkı yoktur (No Read-Down)

Windows Vista ile birlikte gerçekleştirilen Zorunlu Bütünlük Kontrolü (Mandatory Integrity Control – MIC) sistemi Biba bütünlük kontrol modelinin kısmi olarak gerçekleştirilmesidir. Burada her bir korunabilen nesneye farklı güvenlik seviyeleri tanımlanmıştır ve her nesnenin güvenlik seviyesi kendilerine atanan etiketler ile belirlenip kontrol edilir. Windows’ta genel olarak dört farklı güvenlik seviyesi Low, Medium, High ve System etiketleri ile tanımlanmıştır ve her korunabilen nesneye bu etiketler otomatik olarak iliştirilir. Etiket iliştirilmemiş bir nesnenin güvenlik etiketi Medium olarak kabul edilir. Biba kontrol modelinin kısmi olarak gerçekleştirilmesi, Windows’ta güvenlik seviyesi düşük olan bir nesne üzerinde okuma işlemine izin verilir. Biba modelinde bu erişimin de engellenmesi gerekmektedir. Windows yalnızca güvenlik seviyesi düşük bir kullanıcının yüksek seviyeli bir nesne üzerinde değişiklik yapmasını engeller (No write-up)

Korunabilen her nesneye etiket değeri atanır. Etiket değeri atanabilecek nesnelere klasörler, dosyalar, registry anahtarları, paylaşımlar, prosesler, iş parçacıkları (thread), servisler, Aktif Dizin nesneleri örnek olarak verilebilir. Her bir nesneye atanmış etiket değeri System Access Control List (SACL) içerisinde saklanır. Herhangi bir prosess çalıştırıldığında, çalıştırılan her bir prosese prosesi çalıştıran kullanıcının SAT değeri de iliştirilir. SAT içerisinde kullanıcıyı tanımlayan SID değeri, üye olduğu grupların SID değerleri, kullanıcıya ait ayrıcalıklar tanımlanmıştır. Windows Vista ve sonrasında SAT değeri içerisinde ayrıca kullanıcının MIC etiketini tanımlayan bir SID değeri de bulundurulur. Eğer standart bir kullanıcı olarak bir prosess çalıştırıyorsanız, MIC etiketiniz Medium olarak belirlenir. Eğer yönetici haklarına sahip bir kullanıcı ile bir prosess çalıştırırsanız atanacak etiket değeri High olacaktır. Internet Explorer veya kısıtlı haklarla sistemde çalışmasını istediğiniz bir programın üreteceği MIC etiketi Low olacaktır. Sistemde çalışan servisler genellikle System MIC etiket değeri ile çalışırlar.

Windows’ta herhangi bir prosess kendi MIC etiketi ile aynı seviyede ya da daha düşük seviyeli değil ise ilgili nesne üzerinde silme ve değiştirme işlemlerini gerçekleştiremez. Yani kendi MIC etiketi seviyesinden yüksek bir etiket değerine sahip bir nesne üzerinde silme ve değiştirme izni yoktur. (No write-up). Fakat MIC bu nesnelere üzerinde okuma hakkını engellemez, yani nesnenin MIC etiket değeri yüksek dahi olsa, düşük seviyeli bir proses bu nesneye erişebilir ve aynı zamanda bu nesneyi çalıştırabilir. MIC buna engel olmaz. MIC yalnızca nesnenin silinmesini ya da değiştirilmesini engeller. Aynı zamanda nesnenin okunmasının da önüne geçilmek isteniyorsa, bu NTFS izinleri ile gerçekleştirilebilir.

MIC, NTFS izinlerinden önce değerlendirilir. Mesela bir kullanıcı, bir nesne üzerinde NTFS izinleri olarak Full Control iznine sahip olsa dahi, üzerinde değişiklik yapmaya çalıştığı nesnenin MIC etiketi kullanıcıdan yüksek ise, herhangi bir değişik yapılmasına sistem izin vermeyecektir. Dolayısıyla, kullanıcının ilgili nesneyi silme yada değiştirme izni bulunmayacaktır. MIC aynı zamanda düşük seviyeli bir etiket değerine sahip bir prosesin yüksek seviyeli bir nesneyi okumasını veya çalıştırmasını engellemez. Fakat High etiketli bir prosess Low etiketli bir nesneyi çalıştırıyorsa, çalışan nesne artık High MIC etiketi ile çalışacaktır. Internet Explorer’ın sistem üzerinde değişiklik yapabileceği alanların kısıtlanması adına varsayılan olarak Low etiket değeri ile sistemde çalıştırılır.

MIC aynı zamanda düşük seviyeli bir etiket değerine sahip bir prosesin yüksek seviyeli bir nesneyi okumasını veya çalıştırmasını engellemez. Fakat High etiketli bir prosess Low etiketli bir nesneyi çalıştırıyorsa, çalışan nesne artık High MIC etiketi ile çalışacaktır.

Şekil: Zorunlu Bütünlük Kontrolü (MIC)

Şekil: Zorunlu Bütünlük Kontrolü (MIC)

 

Windows’ta çalışan proseslerin MIC etiket değerlerini görüntülenmek için, internetten indirilebilen Process Explorer yazılımı kullanılabilir. MIC etiket değeri merak edilen proses üzerinde sağa tıklayıp Properties alanı seçtikten sonra, Security sekmesindeki Flags alanında Integrity olarak gözüken satır MIC etiketini göstermektedir. Yukarıdaki şekilde bir chrome.exe uygulamasının Zorunlu Etiket (Mandatory Label – MIC) değeri olarak Güvenilmeyen Zorunlu Düzey (Low) olduğu görülmektedir.

 

Kaynak:

https://www.bilgiguvenligi.gov.tr/microsoft-sistemleri-guvenligi-dokumanlari/index.php

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.