Linux'ta MAC modellerinin gerçek değeri
İnternette MAC ve DAC hakkında okudum, ancak yine de, MAC + DAC + yeteneklerine kıyasla yalnızca DAC + yeteneklerini kullanırsa ne tür bir saldırıya karşı korunmanın imkansız olduğunu anlamıyorum. Bir işlem kök olarak çalışmıyorsa ve CAP_DAC_OVERRIDE, CAP_FOWNER ve diğer tehlikeli yeteneklerden yoksunsa, kullandığı kaynakların zaten atanmış sahipliğinin ve ACL'lerin üstesinden gelemez. Öte yandan, bir işlem kök olarak çalışıyorsa ve CAP_MAC_ADMIN'e sahipse, MAC tarafından zorlanan güvenlik bağlamının üzerine yazabilir.
Öyleyse, MAC modern Linux sisteminde gerçek bir avantajı olmayan "sadece ek koruma katmanı" mıdır?
Güncelleme1 Buraya belirli argümanlara "cevaplarımı" ekleyeceğim. İşlemlerin hiçbirinin kök olarak çalışmadığını ve gereksiz yeteneklere sahip olmadığını varsayıyorum (sistem başlatma işlemleri / komut dosyaları hariç).
Bir argüman : Bir web sunucusunu rastgele kabuk komutları çalıştırmaya karşı koruyabilirsiniz.
Cevap : (Kapsayıcıya alınmış web uygulamaları bir kenara bırakılırsa) sunucu UID / GID'nin erişebileceği tüm komutlar için izin verilen bir ACL ve ana bilgisayardaki diğer komutlara yasaklayıcı bir ACL eklenebilir.
Bir argüman : bir kullanıcı 0777 izinlerine sahip bir dosyaya sahip olabilir [ve esasen onu sistemdeki herkese sızdırabilir].
Yanıt : Sistem başlangıç betiği, varsayılan ACL'yi bu dosyanın oluşturulduğu dizine ayarlayabilir, böylece bu dizinde kullanıcı işlemi her ne olursa olsun her zaman bu ACL'leri devralır. Genelde 7'nin "diğerleri" bölümünde olması kötü bir fikir gibi görünür ve dosya bu tür izinleri alırsa, isteğe bağlı politika burada sistem sunumunda (dağıtım kurulumu) veya hatta sistem her başlatıldığında başlangıçta uygulanabilir.
Yanıtlar
Ayrım, dosyalar üzerindeki izinlere kimin karar vereceğidir. DAC, dosyanın sahibine dosya izinlerinin tam denetimini verir. MAC, merkezi bir kontrolü uygulamak için etiketler kullanır; bu, karar vermek için dosyanın sahibine bağlı olmayan ek bir güvenlik katmanı olduğu anlamına gelir. Örnek olarak, bir kullanıcı rwxrwxrwx (777) izinlerine sahip bir dosyaya sahip olabilir, ancak MAC rwx'ini yalnızca belirli bir güvenlik etiketleri kümesine zorlayarak DAC'yi etkin bir şekilde geçersiz kılar.
DAC, MAC'ın yapacağı tüm olası güvenlik izni durumlarını kapsamaz. ACL'ler, DAC'ye kıyasla çok esnektir.
Basitlik uğruna, DAC yalnızca rwx'i kontrol etmenize izin verir, değil mi? DAC ile çok daha açık ve sistem çağrısı düzeyinde neye izin verildiğini kontrol edebilirsiniz. Örneğin, bir kişinin bir dosyaya eklemesine izin verebilir, ancak üzerine yazmasına / silmesine izin veremezsiniz.