Jak zamodelowałbyś system, który obsługuje uprawnienia do wykonywania określonych działań w aplikacji?
źródło
Jak zamodelowałbyś system, który obsługuje uprawnienia do wykonywania określonych działań w aplikacji?
Modele bezpieczeństwa to duży (i otwarty) obszar badań. Do wyboru jest ogromna liczba modeli, od prostych:
Macierz kontroli dostępu firmy Lampson wymienia każdy obiekt domeny i każdą jednostkę główną w systemie wraz z działaniami, które jednostka główna może wykonać na tym obiekcie. Jest bardzo rozwlekły i jeśli faktycznie jest zaimplementowany w ten sposób, bardzo intensywnie wykorzystuje pamięć.
Listy kontroli dostępu są uproszczeniem macierzy Lampsona: należy przyjąć, że jest to coś podobnego do implementacji macierzy rzadkiej, która wymienia obiekty i podmioty oraz dozwolone akcje, i nie koduje wszystkich „zerowych” wpisów z macierzy Lampsona. Listy kontroli dostępu mogą obejmować „grupy” jako wygody i wykazy mogą być przechowywane przez obiekt lub poprzez główny (czasami za pośrednictwem programu, podobnie jak w AppArmor lub Tomoyo lub LIDS ).
Systemy zdolności opierają się na idei posiadania odniesienia lub wskaźnika do obiektów; proces ma dostęp do początkowego zestawu możliwości i może uzyskać więcej możliwości tylko poprzez otrzymanie ich od innych obiektów w systemie. Brzmi to dość daleko, ale pomyśl o deskryptorach plików w Uniksie: są one niemożliwym do podrobienia odniesieniem do konkretnego otwartego pliku, a deskryptor pliku może być przekazany innym procesom lub nie. Jeśli przekażesz deskryptor innemu procesowi, będzie on miał dostęp do tego pliku. Wokół tego pomysłu napisano całe systemy operacyjne. (Najbardziej znane to prawdopodobnie KeyKOS i EROS, ale jestem pewien, że jest to kwestia dyskusyjna. :)
... do bardziej złożonych, które mają etykiety bezpieczeństwa przypisane do obiektów i zleceniodawców:
Pierścienie zabezpieczające , takie jak zaimplementowane między innymi w procesorach Multics i x86, i zapewniają pułapki bezpieczeństwa lub bramki umożliwiające procesom przejście między pierścieniami; każdy pierścień ma inny zestaw przywilejów i obiektów.
Denning's Lattice to model, w którym zleceniodawcy mogą wchodzić w interakcje z określonymi etykietami bezpieczeństwa w bardzo hierarchiczny sposób.
Bell-LaPadula jest podobna do Denning's Lattice i zapewnia reguły zapobiegające wyciekaniu ściśle tajnych danych na niesklasyfikowane poziomy, a wspólne rozszerzenia zapewniają dalszą podział na segmenty i kategoryzację, aby lepiej zapewnić wsparcie w stylu wojskowym „trzeba wiedzieć”.
Biba model jest podobny do dzwonu LaPadula, ale „na głowie” - Bell-LaPadula koncentruje się na tajemnicy, ale nic nie robi dla integralności i Biba skupia się na uczciwości, ale nie robi nic dla zachowania poufności. (Bell-LaPadula uniemożliwia komuś przeczytanie Listy wszystkich szpiegów, ale z radością pozwoliłby każdemu coś w niej napisać. Biba z radością pozwoliłby każdemu przeczytać Listę wszystkich szpiegów, ale prawie wszystkim zabroniłby do niej pisać).
Egzekwowanie typu (i jego odpowiednik, wymuszanie typu domeny) zapewnia etykiety na podmiotach głównych i obiektach oraz określa dozwolone tabele obiekt-czasownik-podmiot (klasa). To jest znany SELinux i SMACK.
.. a są też takie, które uwzględniają upływ czasu:
Chiński Mur powstał w środowisku biznesowym, aby oddzielić pracowników w organizacji, która świadczy usługi konkurentom na danym rynku: np. Po rozpoczęciu pracy z kontem Exxon-Mobil Johnson nie ma dostępu do konta BP. Gdyby Johnson zaczął pracować nad BP, odmówiono by mu dostępu do danych Exxon-Mobil.
LOMAC i high-watermark to dwa dynamiczne podejścia: LOMAC modyfikuje uprawnienia procesów w miarę uzyskiwania dostępu do coraz wyższych poziomów danych i zabrania pisania na niższych poziomach (procesy migrują w kierunku „najwyższego poziomu bezpieczeństwa”), a znak wodny o wysokim poziomie wodnym modyfikuje etykiety na dane, ponieważ procesy wyższego poziomu mają do nich dostęp (migracja danych w kierunku „najwyższego poziomu bezpieczeństwa”).
Modele Clarka-Wilsona są bardzo otwarte; zawierają niezmienniki i reguły zapewniające, że każda zmiana stanu nie narusza niezmienników. (Może to być tak proste, jak księgowanie podwójnego zapisu lub tak złożone, jak HIPPA ). Pomyśl o transakcjach i ograniczeniach bazy danych.
Warto przeczytać książkę Matta Bishopa „Bezpieczeństwo komputerowe: sztuka i nauka”, jeśli chcesz uzyskać więcej informacji na temat opublikowanych modeli.
Wolę RBAC . Chociaż można go znaleźć bardzo podobnie do ACL , ale różnią się semantycznie .
źródło
Przejdź przez następujące linki:
źródło