Bir uygulama içinde belirli eylemleri gerçekleştirmek için izinleri işleyen bir sistemi nasıl modelliyorsunuz?
Yanıtlar:
Güvenlik modelleri geniş (ve açık) bir araştırma alanıdır. Basitten seçim yapabileceğiniz çok sayıda model mevcuttur:
Lampson'ın Erişim kontrol matrisi , sistemdeki her etki alanı nesnesini ve her sorumlunun o nesne üzerinde gerçekleştirmesine izin verilen eylemleri listeler. Çok ayrıntılı ve gerçekten bu şekilde uygulanırsa, çok yoğun bellek gerektirir.
Erişim kontrol listeleri , Lampson matrisinin basitleştirilmesidir: nesneleri ve prensipleri ve izin verilen eylemleri listeleyen ve Lampson matrisindeki tüm "boş" girişleri kodlamayan seyrek matris uygulamasına benzer bir şey olduğunu düşünün. Erişim kontrol listeleri kolaylık gruplarını 'içerebilir, ve listeler (olduğu gibi, program aracılığı ile zaman zaman nesne ile veya ana aracılığıyla saklanabilir AppArmor'u veya Tomoyo veya LIDS ).
Yetenek sistemleri , nesnelere bir referans veya işaretçiye sahip olma fikrine dayanır; bir işlemin ilk yetenekler kümesine erişimi vardır ve yalnızca bunları sistemdeki diğer nesnelerden alarak daha fazla yetenek elde edebilir. Bu oldukça uzak gelebilir, ancak Unix dosya tanımlayıcılarını düşünün: bunlar belirli bir açık dosyaya taklit edilemez bir referanstır ve dosya tanımlayıcısı başka işlemlere verilebilir veya verilemez. Tanımlayıcıyı başka bir işleme verirseniz, o dosyaya erişimi olacaktır. Tüm işletim sistemleri bu fikir etrafında yazılmıştır. (En ünlüleri muhtemelen KeyKOS ve EROS'tur, ancak bunun tartışmalı bir nokta olduğuna eminim. :)
... nesnelere ve sorumlulara atanmış güvenlik etiketleri olan daha karmaşık olanlara:
Diğerlerinin yanı sıra Multics ve x86 CPU'larda uygulananlar gibi Güvenlik Halkaları ve işlemlerin halkalar arasında geçişine izin vermek için güvenlik tuzakları veya kapılar sağlar; her halkanın farklı ayrıcalıkları ve nesneleri vardır.
Denning's Lattice , müdürlerin hangi güvenlik etiketleriyle çok hiyerarşik bir şekilde etkileşime girmesine izin verilen bir modeldir.
Bell-LaPadula , Denning's Lattice'e benzer ve çok gizli verilerin sınıflandırılmamış seviyelere sızmasını önlemek için kurallar sağlar ve ortak uzantılar, askeri tarzda 'bilme ihtiyacı' desteğini daha iyi sağlamak için daha fazla bölümlendirme ve sınıflandırma sağlar.
Biba Modeli Bell-LaPadula benzer, ancak 'tersine döndü' - Çan-LaPadula gizlilik odaklanmıştır ancak bütünlüğü için hiçbir şey yapmaz ve Biba bütünlüğüne odaklanmış, ancak gizlilik hiçbir şey yapmaz. (Bell-LaPadula, birisinin Tüm Casusların Listesini okumasını engeller, ancak herhangi birinin içine herhangi bir şey yazmasına memnuniyetle izin verir. Biba mutlu bir şekilde herkesin Tüm Casuslar Listesi'ni okumasına izin verir, ancak neredeyse herkesin içine yazmasını yasaklar.)
Type Enforcement (ve onun kardeşi Domain Type Enforcement) sorumlular ve nesneler üzerinde etiketler sağlar ve izin verilen nesne-fiil-özne (sınıf) tablolarını belirtir. Bu tanıdık SELinux ve SMACK'tir.
.. ve sonra zamanın geçişini içeren bazıları var:
Çin Duvarı , belirli bir pazarda rakiplere hizmet sunan bir organizasyon içindeki çalışanları ayırmak için iş ortamlarında geliştirilmiştir: Örneğin, Johnson Exxon-Mobil hesabı üzerinde çalışmaya başladığında, BP hesabına erişimine izin verilmez. Johnson, önce BP üzerinde çalışmaya başlasaydı, Exxon-Mobil'in verilerine erişimi reddedilecekti.
LOMAC ve yüksek filigran iki dinamik yaklaşımdır: LOMAC, aşamalı olarak daha yüksek veri düzeylerine erişirken işlemlerin ayrıcalıklarını değiştirir ve daha düşük düzeylere yazmayı yasaklar (işlemler "en üst güvenlik" e doğru geçiş yapar) ve yüksek filigran üzerindeki etiketleri değiştirir. daha yüksek düzeydeki işlemlere eriştikçe veriler (veriler "üst güvenlik" e doğru taşınır).
Clark-Wilson modelleri çok açık uçludur; her durum geçişinin değişmezleri ihlal etmemesini sağlamak için değişmezler ve kurallar içerirler. (Bu, çift girişli muhasebe kadar basit veya HIPPA kadar karmaşık olabilir .) Veritabanı işlemlerini ve kısıtlamalarını düşünün.
Matt Bishop'un "Bilgisayar güvenliği: sanat ve bilim", yayınlanan modeller hakkında daha fazla derinlik istiyorsanız kesinlikle okumaya değer.
RBAC'ı tercih ederim . Bununla birlikte, ACL'ye çok benzer bulabilirsiniz , ancak anlamsal olarak farklıdırlar .
Aşağıdaki bağlantıları gözden geçirin: