Model polityki ścisłej uczciwości Biby

Ścisła polityka Biba dotycząca modelu uczciwości, zwykle zwany modelem Biby, jest matematycznym podwójnym modelem Bell-LaPadula. Rozważ kwestię wiarygodności. Gdy wysoce wiarygodny proces odczytuje dane z niezaufanego pliku i działa na podstawie tych danych, proces ten nie jest już godny zaufania – jaak to się mówi, „śmieci, wyrzucanie śmieci”. Ale jeśli proces odczytuje dane bardziej godne zaufania niż proces, wiarygodność tego procesu nie ulega zmianie. W gruncie rzeczy wiarygodność wyniku jest tak samo wiarygodna, jak najmniej wiarygodny proces i dane. Zdefiniuj zestaw klas integralności w taki sam sposób, w jaki zdefiniowaliśmy przedziały bezpieczeństwa dla modelu Bell-LaPadula i pozwól, aby i-level (s) był przedziałem integralności s. Następnie powyższy tekst mówi, że „odczytuje” (wiarygodny proces odczytu danych niewiarygodnych) powinien zostać zablokowany, ponieważ zmniejsza wiarygodność procesu. Ale „czyta” jest dozwolone, ponieważ nie wpływa to na wiarygodność procesu. Jest to dokładnie przeciwieństwo prostej właściwości bezpieczeństwa. Definicja. Prosta właściwość integralności mówi, że podmiot s może odczytać obiekt o jeśli i tylko wtedy, gdy i-level (o) dom i-level (s). Ta definicja oddaje pojęcie zezwalania na „odczyt” i niedozwolone „odczytuje”. Podobnie, jeśli wiarygodny proces zapisuje dane w niewiarygodnym pliku, wiarygodność pliku może (lub nie) wzrosnąć. Ale jeśli niewiarygodny proces zapisuje dane w wiarygodnym pliku, spada wiarygodność tego pliku. s „zapisywać” powinno być dozwolone i „zapisywać” zabronione. Definicja. Właściwość ity -integrity mówi, że podmiot s może pisać do obiektu o, jeśli tylko i-level (s) dom i-level (o). Ta właściwość blokuje próby „zapisu”, pozwalając jednocześnie na „zapisywanie”. Trzecia właściwość dotyczy wykonywania podprocesów. Załóżmy, że data procesu chce wykonać czas polecenia jako podproces. Jeśli przedział wiarygodności daty dominuje nad przedziałem czasu, to każda data informacji przechodzi do czasu jest przekazywana do mniej wiarygodnego procesu, a zatem jest dozwolona w ramach właściwości integralności ity. Ale jeśli przedział integralności czasu dominuje nad przedziałem daty, wówczas naruszana jest własność ∗. Stąd:

Definicja. Właściwość integralności wykonania mówi, że podmiot s może wykonać temat s ′ wtedy i tylko wtedy, gdy i-level (s ′) dom i-level (s).

Biorąc pod uwagę te trzy właściwości, można pokazać:

Twierdzenie. Jeśli informacje mogą zostać przeniesione z obiektu o1 do obiektu, a następnie przez prostą właściwość integralności, właściwość ity-integrity i właściwość integralności wykonania, i-level (o1) dom i-level (on). Innymi słowy, jeśli przestrzegane są wszystkie zasady modelu Biba, integralność informacji nie może zostać uszkodzona, ponieważ informacje nigdy nie mogą płynąć z obiektu mniej wiarygodnego do obiektu bardziej wiarygodnego.

Model ten sugeruje metodę analizy programów w celu zapobiegania naruszeniom bezpieczeństwa. Po uruchomieniu program odczytuje dane z różnych źródeł: samego siebie, systemu, sieci i użytkownika. Niektóre z tych źródeł są godne zaufania, takie jak sam proces i system. Użytkownik i sieć są pod kontrolą zwykłych użytkowników (lub użytkownicy zdalni) i dlatego są mniej godni zaufania. Zastosuj więc model Biba z dwoma przedziałami integralności, (UNTAINTED, Ø) (oznacza to, że zestaw kategorii w przedziale jest pusty) i (TAINTED, Ø), gdzie (UNTAINTED, Ø) dom (TAINTED, Ø). Dla wygody notacji będziemy pisać (UNTAINTED, Ø) jako UNTAINTED i (TAINTED, Ø) jako TAINTED; i dom jako ≥. W ten sposób UNTAINTED ≥ TAINTED. Technika działa zarówno w analizie statycznej, jak i dynamicznej, ale zazwyczaj jest używana do analizy dynamicznej. W tym trybie wszystkie stałe są przypisane etykiecie integralności UNTAINTED. Zmienne są przypisywane etykietom na podstawie przepływów danych w programie. Na przykład w przypisaniu etykieta integralności przypisywanej zmiennej jest ustawiana na etykiecie integralności przypisanego do niej wyrażenia. Gdy zmienne NIEZNANE i TAINTED są mieszane w wyrażeniu, etykieta integralności wyrażenia jest TAINTED. Jeśli zmiennej przypisano wartość z niezaufanego źródła, etykieta integralności zmiennej jest ustawiona na TAINTED. Gdy dane są używane jako (na przykład) parametry wywołań systemowych lub funkcji bibliotecznych, system sprawdza, czy etykieta integralności zmiennej dominuje nad etykietą parametru. Jeśli tak się nie stanie, program podejmuje pewne działania, takie jak przerwanie lub rejestrowanie ostrzeżenia lub rzucenie wyjątku. Ta akcja albo zapobiega exploitowi, albo ostrzega administratora ataku. Załóżmy na przykład, że programista chce zapobiec atakowi formatowania łańcucha. Jest to atak wykorzystujący lukę w funkcji drukowania C printf. Pierwszym argumentem printf jest ciąg formatujący, a zawartość tego ciągu określa, ile innych argumentów printf oczekuje. Poprzez manipulowanie zawartością ciągu formatującego osoba atakująca może nadpisać wartości zmiennych i uszkodzić stos, powodując nieprawidłowe działanie programu – zazwyczaj na korzyść atakującego. Kluczowym krokiem ataku jest wprowadzenie nieoczekiwanej wartości dla ciągu formatu. Oto fragment kodu z wadą:

if (fgets (buf, sizeof (buf), stdin)! = NULL) printf (buf);

Odczytuje linię znaków z wejścia do tablicy buf i natychmiast drukuje zawartość tablicy. Jeśli dane wejściowe to „xyzzy% n”, wówczas jakiś element stosu zostanie nadpisany wartością 5.24. Dlatego pierwszy parametr printf musi zawsze mieć klasę integralności UNTAINTED. W ramach tej techniki analizy, gdy fgets funkcji wejściowej jest wykonywany, zmiennej buf zostanie przypisana etykieta integralności TAINTED, ponieważ dane wejściowe (które są niezaufane) są w niej przechowywane. Następnie przy wywołaniu printf klasa integralności buf jest porównywana z klasą wymaganą dla pierwszego parametru printf. Ten pierwszy jest UCZCIWY; ten ostatni jest NIEDOSTĘPNY. Wymagamy jednak, aby klasa integralności zmiennej (TAINTED) dominowała w parametrze (UNTAINTED), a tutaj TAINTED ≤ UNTAINTED. Stąd analiza znalazła niedozwolony przepływ i działa odpowiednio.

MODELE KLASYCZNE

Trzy modele odegrały ważną rolę w rozwoju bezpieczeństwa komputerowego. Model Bell-LaPadula, jeden z najwcześniejszych formalnych modeli bezpieczeństwa komputerowego, wpłynął na rozwój wielu technologii bezpieczeństwa komputerowego i nadal jest szeroko stosowany. Biba, jego analog do integralności, odgrywa teraz ważną rolę w analizie programu. Model Clarka-Wilsona opisuje wiele praktyk handlowych w celu zachowania integralności danych. Analizujemy każdy z tych modeli w tej sekcji.

Model Bell-LaPadula.

Model Bell-LaPadula21 jest formalizacją słynnego rządowego systemu klasyfikacji wykorzystującego poziomy UNCLASSIFIED, CONFIDENTIAL, SECRET i TOP SECRET. Zaczynamy od wykorzystania tych czterech poziomów, aby wyjaśnić idee leżące u podstaw modelu, a następnie zwiększyć te poziomy, aby przedstawić pełny model. Ponieważ model obejmuje wiele poziomów, jest to przykład wielopoziomowego modelu bezpieczeństwa. Czteropoziomowa wersja modelu zakłada, że ​​poziomy są uporządkowane od najniższego do najwyższego jako UNCLASSIFIED, CONFIDENTIAL, SECRET i TOP SECRET. Obiekty są przypisane poziomy w oparciu o ich wrażliwość. Obiekt na wyższym poziomie jest bardziej czuły niż obiekt na niższym poziomie. Przedmioty są przypisywane poziomy w oparciu o obiekty, do których mają dostęp. Temat zostaje wyczyszczony do poziomu, a ten poziom nazywa się poświadczeniem bezpieczeństwa podmiotu. Obiekt jest klasyfikowany na poziomie, a poziom ten nazywany jest klasyfikacją bezpieczeństwa obiektu. Celem systemu klasyfikacji jest zapobieganie wyciekowi informacji lub spływaniu w dół (np. Podmiot w POUFNYM nie powinien mieć możliwości odczytu informacji sklasyfikowanych w TOP SECRET). Dla wygody piszemy poziom (-y) dla poświadczenia bezpieczeństwa podmiotu i klasyfikacji bezpieczeństwa obiektu (o) foran. Nazwa klasyfikacji nazywa się etykietą. Więc obiekt sklasyfikowany w TOP SECRET ma etykietę TOP SECRET. Załóżmy, że Tom jest wyczyszczony na poziomie SECRET. Trzy dokumenty, zwane papierami, artykułami i książkami, są klasyfikowane odpowiednio jako POUFNE, TAJNE i ŚCIŚLE TAJNE. Ponieważ odprawa Toma jest niższa niż klasyfikacja książki, nie może czytać książki. Ponieważ jego zezwolenie jest równe lub większe od klasyfikacji artykułu i papieru, może je przeczytać. Definicja. Prosta właściwość bezpieczeństwa mówi, że podmiot s może odczytać obiekt o jeśli i tylko wtedy, gdy poziom (o) ≤ poziom (y). Jest to czasami nazywane regułą braku odczytu i jest obowiązkową kontrolą dostępu. Jest to jednak niewystarczające, aby zapobiec przepływowi informacji w dół. Załóżmy, że Donna jest wyczyszczona na poziomie POUFNE. Dzięki prostej własności bezpieczeństwa nie może czytać artykułu, ponieważ poziom (artykuł) = SECRET> POUFNE = poziom (Donna). Ale Tom może przeczytać informacje w artykule i napisać je na papierze. A Donna może przeczytaj Papier. W ten sposób informacja SECRET wyciekła do tematu z POUFNYM zezwoleniem. Aby temu zapobiec, należy uniemożliwić Tomowi pisanie na papierze: Definicja. Właściwość that mówi, że podmiot s może napisać obiekt o, jeśli i tylko wtedy, gdy poziom (poziomy) ≤ poziom (o).

Jest to czasami nazywane regułą bez zapisu, a także obowiązkową kontrolą dostępu. Jest również znany jako właściwość gwiazdy i właściwość ograniczenia. Zgodnie z tą regułą, jako poziom (Tom) = SECRET> poziom (Papier), Tom nie może pisać na papierze. To rozwiązuje problem. Wreszcie, model Bell-LaPadula umożliwia właścicielom obiektów korzystanie z uznaniowej kontroli dostępu: Definicja. Dyskrecjonalna właściwość bezpieczeństwa mówi, że podmiot s może odczytać obiekt o tylko wtedy, gdy wpis macierzy kontroli dostępu dla s i o zawiera prawo do odczytu. W celu ustalenia, czy Tom może czytać papier, system sprawdza prostą właściwość zabezpieczeń i uznaniowy problem bezpieczeństwa. Jako że oba dotyczą Tom i Paper, Tom może czytać Paper. Podobnie system sprawdza właściwość ∗, aby określić, czy Tom może pisać na papierze. Ponieważ właściwość ∗ nie obowiązuje dla Tom i Paper, Tom nie może pisać na papierze. Należy zauważyć, że uznaniowa właściwość bezpieczeństwa nie musi być sprawdzana, ponieważ odpowiednia obowiązkowa właściwość kontroli dostępu (właściwość ∗) odmawia dostępu. Twierdzenie o podstawowym bezpieczeństwie stwierdza, że ​​jeśli system zaczyna się w bezpiecznym stanie i każda operacja jest zgodna z trzema właściwościami, to system pozostaje bezpieczny: Podstawowe twierdzenie bezpieczeństwa. Niech system secure ma bezpieczny stan początkowy 𝜎0. Ponadto niech każde polecenie w tym systemie będzie zgodne z prostą właściwością bezpieczeństwa, właściwością ∗ i uznaniową własnością bezpieczeństwa. Wtedy każdy stan 𝜎i, i ≥ 0, jest również bezpieczny. Możemy uogólnić to na dowolną liczbę poziomów. Niech L0,…, Ln będzie zbiorem poziomów bezpieczeństwa uporządkowanych liniowo (tj. L0 <… <Ln). Obowiązują proste właściwości zabezpieczeń, właściwość ∗ i uznaniowa własność bezpieczeństwa, podobnie jak podstawowe twierdzenie bezpieczeństwa. Dzięki temu możemy mieć o wiele więcej niż cztery opisane poziomy. Załóżmy teraz, że Erin pracuje dla Departamentu Europejskiego agencji rządowej, a Don pracuje dla Departamentu Azji dla tej samej agencji. Erin i Don są oczyszczeni na SECRET. Ale niektóre informacje, które Erin zobaczy, to informacje, których Don nie musi znać i odwrotnie. Wprowadzenie dodatkowych poziomów bezpieczeństwa nie pomoże tutaj, ponieważ wtedy Don mógłby odczytać wszystkie dokumenty, które Erin mogła, lub odwrotnie. Potrzebujemy alternatywnego mechanizmu. Alternatywny mechanizm to rozszerzenie idei „poziomu bezpieczeństwa”. Definiujemy kategoria jako rodzaj informacji. Komora bezpieczeństwa to para (poziom, zestaw kategorii) i odgrywa rolę, którą wcześniej spełniał poziom bezpieczeństwa. Załóżmy na przykład, że kategorią dla Departamentu Europejskiego jest EUR, a kategorią dla Departamentu Azji jest AZJA. Erin zostanie rozliczony w przedziale (SECRET, {EUR}), a Don w przedziale (SECRET, {ASIA}). Dokumenty mają również przedziały bezpieczeństwa. Dokument EurDoc może być sklasyfikowany jako (POUFNY, {EUR}), a papier AsiaDoc może być (TAJNE, {ASIA}). Dokument EurAsiaDoc zawiera informacje zarówno na temat Europy, jak i Azji, a więc znajduje się w przedziale (SECRET, {EUR, ASIA}). Tak jak poprzednio, piszemy poziom (Erin) = (SECRET, {EUR}), poziom (EurDoc) = (POUFNE, {EUR}) i poziom (EurAsiaDoc) = (SECRET, {EUR, ASIA}). Następnie musimy zdefiniować analog jako „większy niż”. Jak wspomniano wcześniej, przedziały bezpieczeństwa nie są już uporządkowane liniowo, ponieważ nie można porównywać każdej pary przedziałów. Na przykład przedział Don nie jest „większy” niż Erin, a Erin nie jest „większy” niż Don. Ale klasyfikacja EurAsiaDoc jest wyraźnie „większa” niż u Dona i Erin. Porównujemy przedziały za pomocą relacji dom, ponieważ „dominuje”. Definicja. Niech L i L ′ będą poziomami bezpieczeństwa i niech C i C ′ będą zestawami kategorii. Następnie (L, C) dom (L ′, C ′) wtedy i tylko wtedy, gdy L ′ = L i C ′ ⊆ C Relacja dom odgrywa rolę, jaką „większe lub równe” odegrało dla poziomów bezpieczeństwa. Kontynuując nasz przykład, poziom (Erin) = (SECRET, {EUR}), dom (POUFNE, {EUR}) = poziom (EurDoc) i poziom (EurAsiaDoc) = (SECRET, {EUR, ASIA}) dom (SECRET, {EUR}) = poziom (Erin). Przeformułowaliśmy teraz prostą właściwość bezpieczeństwa i właściwość ∗ w zakresie dom: Definicja. Prosta właściwość bezpieczeństwa mówi, że podmiot może odczytać obiekt o jeśli i tylko jeśli poziom (-y) dom poziom (o). Definicja. Właściwość that mówi, że podmiot s może  pisać do obiektu o, jeśli tylko poziom (o) dom poziom (y). W naszym przykładzie załóżmy, że dowolna kontrola dostępu jest ustawiona tak, aby każdy podmiot mógł uzyskać dostęp do wszystkich typów. W takim przypadku, jako poziom (Erin) dom poziom (EurDoc), Erin może odczytać EurDoc (przez prostą właściwość bezpieczeństwa), ale nie pisać EurDoc (przez właściwość ∗). I odwrotnie, jako poziom (EurAsiaDoc) domena (Erin), Erin nie może czytać EurAsiaDoc (przez prostą właściwość bezpieczeństwa), ale może pisać do EurAsiaDoc (przez właściwość ∗). Logiczne pytanie brzmi, jak określić najwyższy przedział bezpieczeństwa, który mogą czytać zarówno Erin, jak i Don, i najniższy, który mogą pisać. Aby to zrobić, musimy przejrzeć niektóre właściwości dom. Najpierw zwróć uwagę na poziom (poziomy) domeny; to znaczy dom jest zwrotny. Relacja jest także antysymetryczna, ponieważ jeśli poziom (y) dom poziom (o) i poziom (o) dom (y) poziom są prawdziwe, to poziom (y) = poziom (o). Jest przechodni, ponieważ jeśli poziom (s1) dom poziom (o) i poziom (o) dom poziom (s2), to poziom (s1) dom poziom (s2). Definiujemy również największe dolne ograniczenie (glb) dwóch przedziałów jako:

Porównujemy przedziały za pomocą relacji dom, ponieważ „dominuje”. Definicja. Niech L i L ′ będą poziomami bezpieczeństwa i niech C i C ′ będą zestawami kategorii. Następnie (L, C) dom (L ′, C ′) wtedy i tylko wtedy, gdy L ′ = L i C ′ ⊆ C Relacja dom odgrywa rolę, jaką „większe lub równe” odegrało dla poziomów bezpieczeństwa. Kontynuując nasz przykład, poziom (Erin) = (SECRET, {EUR}), dom (POUFNE, {EUR}) = poziom (EurDoc) i poziom (EurAsiaDoc) = (SECRET, {EUR, ASIA}) dom (SECRET, {EUR}) = poziom (Erin). Przeformułowaliśmy teraz prostą właściwość bezpieczeństwa i właściwość ∗ w zakresie dom: Definicja. Prosta właściwość bezpieczeństwa mówi, że podmiot może odczytać obiekt o jeśli i tylko jeśli poziom (-y) dom poziom (o). Definicja. Właściwość that mówi, że podmiot s może  pisać do obiektu o, jeśli tylko poziom (o) dom poziom (y). W naszym przykładzie załóżmy, że dowolna kontrola dostępu jest ustawiona tak, aby każdy podmiot mógł uzyskać dostęp do wszystkich typów. W takim przypadku, jako poziom (Erin) dom poziom (EurDoc), Erin może odczytać EurDoc (przez prostą właściwość bezpieczeństwa), ale nie pisać EurDoc (przez właściwość ∗). I odwrotnie, jako poziom (EurAsiaDoc) domena (Erin), Erin nie może czytać EurAsiaDoc (przez prostą właściwość bezpieczeństwa), ale może pisać do EurAsiaDoc (przez właściwość ∗). Logiczne pytanie brzmi, jak określić najwyższy przedział bezpieczeństwa, który mogą czytać zarówno Erin, jak i Don, i najniższy, który mogą pisać. Aby to zrobić, musimy przejrzeć niektóre właściwości dom. Najpierw zwróć uwagę na poziom (poziomy) domeny; to znaczy dom jest zwrotny. Relacja jest także antysymetryczna, ponieważ jeśli poziom (y) dom poziom (o) i poziom (o) dom (y) poziom są prawdziwe, to poziom (y) = poziom (o). Jest przechodni, ponieważ jeśli poziom (s1) dom poziom (o) i poziom (o) dom poziom (s2), to poziom (s1) dom poziom (s2). Definiujemy również największe dolne ograniczenie (glb) dwóch przedziałów jako:

Definicja. Niech A = (L, C) i B = (L ′, C ′). Następnie glb (A, B) = (min (L, L ′), C ∩ C ′). To odpowiada na pytanie o najwyższy przedział bezpieczeństwa, w którym dwa podmioty s i s mogą czytać obiekt. Jest to glb (poziom (y), poziom (s)). Na przykład Don i Erin mogą czytać obiekty w:

glb (poziom (Don), poziom (Erin)) = (SECRET, χ;). Ma to sens, ponieważ Don nie może odczytać obiektu w żadnym przedziale oprócz tych z zestawem kategorii {ASIA} lub pustym zestawem, a Erin może tylko czytać obiekty w komora z zestawem kategorii {EUR} lub pustym zestawem. Oba są na poziomie TAJNE, więc przedział musi być również na poziomie TAJNE. Analogicznie możemy zdefiniować najmniejszą górną granicę (lub) dwóch przedziałów: Definicja. Niech A = (L, C) i B = (L ′, C ′). Następnie lub (A, B) = (max (L, L ′), C ∪ C ′). Możemy teraz określić najniższy przedział bezpieczeństwa, w którym mogą pisać dwie osoby. To jest lub (poziom (y), poziom (s ′)). Na przykład Don i Erin mogą pisać do obiektów w:

glb ((poziom (Don), poziom (Erin)) = (SECRET, {EUR, ASIA}).

Ma to sens, ponieważ Don nie może pisać do obiektu w żadnym przedziale z wyjątkiem tych z ASIA w zestawie kategorii, a Erin może pisać tylko do obiektów w przedziale, w którym znajduje się zestaw kategorii. Najmniejszym zestawem kategorii spełniającym oba te wymagania jest {EUR, ASIA}. Oba są na poziomie TAJNE, więc przedział musi być również na poziomie TAJNE. Pięć właściwości dom (refleksyjne, antysymetryczne, przechodnie, istnienie najmniejszej górnej granicy dla każdej pary elementów i istnienie największej dolnej granicy dla każdej pary elementów) oznacza, że ​​przedziały bezpieczeństwa tworzą strukturę matematyczną zwaną kratą. Ma to użyteczne właściwości teoretyczne i jest na tyle ważne, że modele wykazujące ten typ struktury nazywane są modelami kratowymi. Gdy model jest zaimplementowany w systemie, programiści często wprowadzają pewne modyfikacje. Zdecydowanie najczęstszym jest ograniczenie pisania do bieżącej komory lub do ograniczonego zestawu przedziałów. Zapobiega to zmianie informacji poufnych przez osoby, które nie mogą go odczytać. Strukturę modelu można również wykorzystać do implementacji zabezpieczeń przed złośliwymi programami, które zmieniają pliki, takie jak pliki binarne systemu. Aby temu zapobiec, umieść binaria systemu w przedziale zdominowanym przez przedziały przypisane do użytkowników. Dzięki prostej właściwości zabezpieczeń użytkownicy mogą odczytywać pliki binarne systemu, ale według właściwości ∗ użytkownicy nie mogą ich zapisywać. W związku z tym, jeśli wirus komputerowy infekuje programy lub dokumenty użytkownika, 22 może rozprzestrzeniać się w przedziale użytkownika, ale nie w systemie plików binarnych. Model Bell-LaPadula jest podstawą kilku innych modeli. Badamy jeden z jego wariantów, który modeluje integralność, a nie poufność.

MODELE I KONTROLE

Modele bezpieczeństwa komputerowego koncentrują się na kontroli: kto ma dostęp do plików i zasobów oraz jakie rodzaje dostępu są dozwolone. Kolejne charakterystyki tych elementów sterujących organizują je dzięki elastyczności użycia i rolom podmiotów kontrolujących dostęp. Są one niezbędne do zrozumienia, jak działają bardziej zaawansowane modele.

Obowiązkowe i uznaniowe modele kontroli dostępu.

Metody kontroli dostępu są oparte na regułach; to znaczy użytkownicy nie mają nad nimi kontroli. Tylko system lub specjalny użytkownik dzwonił (na przykład) oficer bezpieczeństwa systemu (SSO) może je zmienić. W ten sposób działa rządowy system klasyfikacji. Ktoś bez zezwolenia nie może czytać TOP SECRET materiału, nawet jeśli osoba, która ma dokument, chce na to zezwolić. Zasada ta jest nazywana obowiązkową, ponieważ musi być przestrzegana bez wyjątku. Przykładami innych obowiązkowych zasad są ogólnie prawa, których należy przestrzegać zgodnie z zapisami, a nie można zwolnić innej z odpowiedzialności za złamanie prawa; lub mechanizm kontroli dostępu oparty na pierścieniu Multics, w którym dostęp do segmentu danych poniżej dolnej granicy przedziału dostępu segmentu jest zabroniony niezależnie od uprawnień dostępu. Ten typ kontroli dostępu jest nazywany obowiązkową kontrolą dostępu, lub MAC. Reguły te opierają decyzję o dostępie na atrybutach podmiotu i obiektu (i ewentualnie innych informacji). Inne metody kontroli dostępu pozwalają właścicielowi jednostki kontrolować dostęp. Na przykład osoba, która prowadzi dziennik, decyduje, kto może go przeczytać. Nie musi nikomu tego pokazywać, a jeśli przyjaciel poprosi o jej przeczytanie, może odmówić. Tutaj właściciel umożliwia dostęp do dziennika według własnego uznania. Ten rodzaj kontroli nazywa się uznaniowy. Uznaniowe kontrola dostępu, czyli DAC, jest najpowszechniejszym rodzajem mechanizmu kontroli dostępu na komputerach. Kontrole mogą być (i często są) łączone. Gdy obowiązkowe i uznaniowe kontrole są łączone w celu egzekwowania jednolitej polityki kontroli dostępu, najpierw stosuje się obowiązkowe kontrole. Jeśli odmawiają dostępu, system odmawia dostępu, a kontrole dyskrecjonalne nigdy nie muszą być wywoływane. Jeśli obowiązkowe przepisy zezwalają na dostęp, konsultowane są kontrole uznaniowe. Jeśli oba zezwalają na dostęp, dostęp jest przyznawany.

Model kontroli dostępu kontrolowany przez inicjatora i DRM

Inne rodzaje kontroli dostępu zawierają elementy obowiązkowej i uznaniowej kontroli dostępu. Kontrola dostępu kontrolowana przez inicjatora, 16 lub ORCON, 17 mechanizmów pozwala inicjatorowi określić, kto może uzyskać dostęp do zasobu lub danych. Rozważ dużą rządową agencję badawczą, która opracowuje badanie przewidywanej sprzedaży hoe-handle na następny rok. Rynek uchwytów motyki jest bardzo niestabilny i jeśli wyniki badania wyciekną przedwcześnie, niektórzy sprzedawcy uzyskają ogromną przewagę rynkową. Ale badanie musi zostać rozesłane do agencji regulacyjnych, aby mogły przygotować odpowiednie przepisy, które będą obowiązywać po opublikowaniu badania. Tak więc agencja badawcza musi zachować kontrolę nad badaniem, nawet gdy krąży między innymi grupy. Dokładniej, kontrola dostępu kontrolowana przez twórcę spełnia dwa warunki. Załóżmy, że obiekt o jest oznaczony jako ORCON dla organizacji X. X postanawia zwolnić o podmiotom działającym w imieniu innej organizacji Y. Następnie

1. Podmioty, którym udostępniono kopie o, nie mogą zwolnić o podmiotom działającym w imieniu innych organizacji bez zgody X; i

2. Wszelkie kopie o muszą zawierać te ograniczenia.

Rozważ kontrolę, która implementuje te wymagania. Teoretycznie obowiązkowa kontrola dostępu mogłaby rozwiązać ten problem. W praktyce wymagane reguły muszą przewidywać wszystkie organizacje, którym dane będą udostępniane. Wymóg ten, w połączeniu z koniecznością posiadania oddzielnej reguły dla każdego możliwego zestawu obiektów i organizacji, które mają mieć dostęp do obiektu, czyni obowiązkową kontrolę dostępu, która spełnia wymagania nie do zrealizowania. Ale jeśli kontrola miała charakter uznaniowy, każdy podmiot, który otrzymał kopię badania, mógłby udzielić dostępu do swojej kopii bez zgody autora; więc kontrola dostępu kontrolowana przez twórcę nie jest ani uznaniowa, ani obowiązkowa. Jednak połączenie uznaniowych i obowiązkowych kontroli dostępu może wdrożyć tę kontrolę. Obowiązkowe mechanizmy kontroli dostępu zabraniają właścicielowi zmiany uprawnień dostępu do obiektu o i wymagają, aby każda kopia tego obiektu miała takie same uprawnienia kontroli dostępu, jak w przypadku o. Uznaniowa kontrola dostępu mówi, że twórca może zmienić uprawnienia kontroli dostępu do dowolnej kopii o. Jako przykład wykorzystania tego modelu w bardziej popularnym kontekście, firmy fonograficzne chcą kontrolować wykorzystanie swojej muzyki. Pojęciowo chcą zachować kontrolę nad muzyką po jej sprzedaży, aby uniemożliwić właścicielom rozpowszechnianie nieautoryzowanych kopii wśród znajomych. Tutaj twórcą jest wytwórnia płytowa, a chronionym zasobem jest muzyka. W praktyce kontrole dostępu kontrolowane przez twórców są trudne do wdrożenia technologicznego. Problem polega na tym, że mechanizmy kontroli dostępu zazwyczaj kontrolują dostęp do jednostek, takich jak pliki, urządzenia i inne obiekty. Jednak kontrola dostępu kontrolowana przez twórcę wymaga, aby kontrola dostępu była stosowana do informacji zawartych w byty – znacznie trudniejszy problem, dla którego nie ma jeszcze ogólnie akceptowanego mechanizmu.

Oparte na rolach modele kontroli dostępu i grupy

W prawdziwym życiu funkcja pracy często dyktuje uprawnienia dostępu. Księgowy biura ma bezpłatny dostęp do rachunków bankowych firmy, podczas gdy sprzedawcy nie. Jeśli Anne jest zatrudniona jako sprzedawca, nie może uzyskać dostępu do funduszy firmy. Jeśli później zostanie księgową, może uzyskać dostęp do tych funduszy. Dostęp jest więc uwarunkowany nie tożsamością osoby, ale rolą, jaką odgrywa osoba. Ten przykład ilustruje kontrolę dostępu opartą na rolach (RBAC) .18 Przypisuje zestaw ról, zwane autoryzowanymi rolami podmiotu, dla każdego podmiotu. W każdej chwili s mogą przyjąć co najwyżej jedną rolę, zwaną aktywną rolą s. Następnie aksjomat. Reguła autoryzacji ról mówi, że aktywna rola s musi znajdować się w zestawie autoryzowanych ról s. Ten aksjomat ogranicza się do przyjmowania ról, które może on przyjąć. Bez tego s mógłby przyjąć dowolną rolę, a więc robić wszystko. Rozszerzając ten pomysł, pozwólmy, aby predykat canexec (s, c) był prawdziwy, gdy podmiot s może wykonać polecenie c. Aksjomat. Reguła przypisywania ról mówi, że jeśli canexec (s, c) jest prawdziwe dla dowolnych s i dowolnych c, to s musi mieć aktywną rolę. Mówi to po prostu, że aby wykonać polecenie c, s musi mieć aktywną rolę. Bez takiej roli nie może wykonywać żadnych poleceń. Chcemy również ograniczyć polecenia, które można wykonać; robi to następny aksjomat.

Aksjomat. Reguła autoryzacji transakcji mówi, że jeśli canexec (s, c) jest prawdą, to tylko podmioty o tej samej roli co aktywna rola s mogą również wykonywać transakcja. Oznacza to, że każda rola ma zestaw poleceń, które może wykonać, a jeśli c nie znajduje się w zestawie poleceń, które może wykonywać aktywna rola s, to s nie może jej wykonać. Jako przykład mocy tego modelu, rozważ dwa typowe problemy: powstrzymywanie ról i podziału obowiązków. Ograniczenie ról oznacza, że ​​podwładny u ogranicza się do wykonywania ograniczonego zestawu poleceń, które może również wykonywać przełożony; przełożony może również wykonywać inne polecenia. Przydziel rolę a przełożonemu i roli b podwładnemu; ponieważ wszystko, co może zrobić podmiot z aktywną rolą b, podmiot z aktywną rolą może to zrobić, mówimy, że rola zawiera rolę b. Następnie możemy powiedzieć, że jeśli a jest autoryzowaną rolą s, a a zawiera b, to b jest również autoryzowaną rolą s. Biorąc to dalej, jeśli podmiot jest upoważniony do przyjęcia roli, która zawiera inne (podrzędne) role, może również przyjąć dowolną z podrzędnych ról. Oddzielenie obowiązku jest wymogiem, aby wiele podmiotów musiało połączyć wysiłki w celu wykonania zadania. Na przykład firma może wymagać od dwóch funkcjonariuszy podpisania czeku za ponad 50 000 USD. Pomysł polega na tym, że jedna osoba może naruszyć bezpieczeństwo, ale dwie osoby rzadziej łączą siły, aby złamać zabezpieczenia. Jednym ze sposobów radzenia sobie z rozdzieleniem obowiązków jest wymaganie, aby dwie różne role wypełniły zadanie i aby role wzajemnie się wykluczały. Dokładniej, niech r będzie rolą, a meauth (r), wzajemnie wyłączny zestaw autoryzacji r, to zestaw ról, których podmiot z uprawnioną rolą r nigdy nie może założyć. Następnie rozdzielenie obowiązków to:

Aksjomat. Zasada rozdzielenia obowiązków mówi, że jeśli rola a znajduje się w zbiorze meauth (b), to żaden podmiot, dla którego a jest uprawnioną rolą, może mieć b jako inną uprawnioną rolę. Ta reguła jest stosowana do zadania, które wymaga ukończenia dwóch różnych osób. Zadanie jest podzielone na kroki, które mają wykonać dwie osoby. Każdej osobie przypisano oddzielną rolę, a każda rola należy do wzajemnie wykluczającego się zestawu autoryzacji drugiej. Zapobiega to wykonaniu zadania przez którąkolwiek osobę; muszą współpracować, każdy w swojej roli, aby go ukończyć. Role są podobne do grup, ale cele grup i ról są różne. Członkostwo w grupie jest definiowane przez zasadniczo arbitralne reguły, ustalane przez menedżerów systemu. Członkostwo w roli jest zdefiniowane przez funkcję zadania i jest powiązane z określonym zestawem poleceń, które są niezbędne do wykonania tej funkcji zadania. Zatem rola jest rodzajem grupy, ale grupa jest szersza niż rola i nie musi być związana z żadnym konkretnym zestawem

Podsumowanie

Cztery rodzaje kontroli dostępu omówione w tej sekcji mają różne cele. Obowiązkowe, uznaniowe i kontrolowane przez twórcę mechanizmy kontroli dostępu są skoncentrowane na danych, określając dostęp na podstawie charakteru lub atrybutów danych. Kontrola dostępu w rolkach koncentruje się na potrzebach podmiotu. Różnica jest fundamentalna. Zasada najmniejszego przywileju20 mówi, że badani nie powinni mieć więcej przywilejów niż jest to konieczne do wykonywania ich zadań. Kontrola dostępu oparta na rolach, jeśli jest poprawnie zaimplementowana, robi to poprzez ograniczenie zestawu poleceń, które może wykonać podmiot. Pozostałe trzy elementy sterujące robią to, ustawiając atrybuty danych, aby kontrolować dostęp do danych, a nie ograniczając polecenia. Obowiązkowe kontrole dostępu mają atrybuty ustawione przez oficera bezpieczeństwa systemu lub inny zaufany proces; uznaniowa kontrola dostępu przez właściciela obiektu; oraz kontrole dostępu kontrolowane przez twórcę, przez twórcę lub twórcę danych. Jak wspomniano, mechanizmy te można łączyć, aby sterowanie było łatwiejsze i bardziej precyzyjne w zastosowaniu. Omawiamy teraz kilka modeli, które to robią.

Harrison, Ruzzo i Ullman oraz inne wyniki.

Pytanie o to jak sprawdzić, czy systemy są bezpieczne, ma kluczowe znaczenie dla zrozumienia bezpieczeństwa komputera. Zdefiniuj bezpieczne w najprostszy możliwy sposób: System jest bezpieczny w odniesieniu do ogólnego prawa r, jeśli to prawo nie może być dodane do jednostki w macierzy kontroli dostępu, chyba że kwadrat już go zawiera. Innymi słowy, system jest bezpieczny w odniesieniu do r, jeśli r nie może przeciec do nowego wpisu w macierzy kontroli dostępu. Pytanie staje się wtedy:

Pytanie bezpieczeństwa. Czy istnieje algorytm określający, czy dany system ze stanem początkowym secure jest bezpieczny w odniesieniu do danego prawa?

W ogólnym przypadku:

Twierdzenie . Pytanie bezpieczeństwa jest nierozstrzygalne. Dowodem jest ograniczenie problemu zatrzymania do pytania dotyczącego bezpieczeństwa. Oznacza to, że jeśli kwestia bezpieczeństwa byłaby rozstrzygalna, problem z zatrzymaniem byłby taki. Jednak nierozwiązywalność problemu zatrzymania jest dobrze znana, więc problem bezpieczeństwa musi również wystąpić być nierozstrzygalnym. Wyniki te oznaczają, że nie można opracować ogólnego algorytmu do określania, czy systemy są bezpieczne. Można to jednak zrobić w ograniczonych przypadkach i modele, które podążają za przykładami takich przypadków. Cechy, które muszą spełniać klasy systemów, aby pytanie bezpieczeństwa było rozstrzygalne, nie są jeszcze w pełni znane, ale dla określonych klas systemów można zadać pytanie dotyczące bezpieczeństwa. Na przykład:

Twierdzenie. Istnieje algorytm, który określi, czy systemy monoperacyjne są bezpieczne w odniesieniu do ogólnego prawa r.

Ale te klasy są wrażliwe na dozwolone polecenia:

Twierdzenie. Pytanie bezpieczeństwa dla systemów monotonicznych jest nierozstrzygalne.

Ograniczenie zestawu poleceń do poleceń dwuwarstwowych nie pomaga:

Twierdzenie. Pytanie bezpieczeństwa dla dwuwarstwowych systemów monotonicznych jest nierozstrzygalne. Ale ograniczając je do operacji monokondycyjnych:

Twierdzenie. Istnieje algorytm, który określi, czy monotoniczne systemy monokonserwacyjne są bezpieczne w odniesieniu do ogólnego prawa r. W rzeczywistości dodanie operacji usunięcia pierwotnego nie wpływa na ten wynik (chociaż dowód jest inny): Twierdzenie. Istnieje algorytm, który określi, czy systemy monotoniczne, które nie używają pierwotnych operacji niszczenia, są bezpieczne względem ogólnego prawa r.

Model kontroli dostępu wpisany

Wariant modelu macierzy kontroli dostępu dodaje typ do jednostek. Typowany model macierzy kontroli dostępu, nazywany TAM, wiąże typ z każdą jednostką i odpowiednio modyfikuje reguły manipulacji macierzą.Pojęcie to pozwala grupować jednostki w subtelniejsze kategorie niż tylko przedmiot i przedmiot i umożliwia nieco inną analizę niż sugeruje wynik HRU. W TAM zestaw reguł jest acykliczny, jeśli ani jednostka E, ani żaden z jej potomków nie mogą utworzyć nowej jednostki o tym samym typie co E. Biorąc pod uwagę tę definicję: Twierdzenie. Istnieje algorytm, który określi, czy acykliczne, monotoniczne modele macierzy typowanej są bezpieczne w odniesieniu do ogólnego prawa r. System acykliczny i monotoniczny jest więc wystarczający do rozstrzygnięcia kwestii bezpieczeństwa. Ale nadal nie wiemy dokładnie, jakie właściwości są konieczne, aby rozstrzygnąć kwestię bezpieczeństwa. Zwracamy się teraz do modeli, które mają bezpośrednie zastosowanie do systemów i środowisk i koncentrują się na bardziej złożonych definicjach „bezpiecznego” i mechanizmów potrzebnych do ich osiągnięcia.

MODELE I BEZPIECZEŃSTWO

Niektóre terminy powtarzają się w naszej dyskusji na temat modeli.

  • Podmiot jest aktywną jednostką, taką jak proces lub użytkownik.
  • Obiekt jest bierną jednostką, taką jak plik.
  • Prawo opisuje, co podmiot może zrobić z obiektem; na przykład prawo do odczytu zezwala podmiotowi na odczytanie pliku. ? Stan ochrony systemu odnosi się po prostu do praw wszystkich podmiotów w systemie .

Dokładne znaczenie każdego prawa różni się w zależności od systemu. Na przykład w systemach Linux, jeśli proces ma uprawnienia do zapisu pliku, proces ten może zmienić zawartość pliku. Ale jeśli proces ma prawo zapisu do katalogu, ten proces może tworzyć, usuwać lub zmieniać nazwy plików w tym katalogu. Podobnie, posiadanie praw do odczytu w procesie może oznaczać, że posiadacz może uczestniczyć jako odbiorca komunikatów komunikacji międzyprocesowej pochodzących z tego procesu. Chodzi o to, że znaczenie praw zależy od interpretacji danego systemu. Przypisanie znaczenia prawom użytym w modelu matematycznym nazywa się tworzeniem modelu. Pierwszy model, który zbadamy, stanowi podstawę wielu prac nad podstawową trudnością analizy systemów w celu ustalenia, czy są one bezpieczne.

Model macierzy kontroli dostępu. Model macierzy kontroli dostępu jest prawdopodobnie najprostszym modelem bezpieczeństwa komputera. Składa się z macierzy, której wiersze odpowiadają tematom, a kolumny odpowiadają jednostkom (podmiotom i przedmiotom). Każdy wpis w macierzy zawiera zestaw praw, które podmiot (wiersz) ma nad jednostką (kolumną). Na przykład macierz kontroli dostępu w

pokazuje system z dwoma procesami i dwoma plikami. Pierwszy proces ma własne prawa do siebie; prawa do odczytu w drugim procesie; odczytywać i wykonywać prawa do pierwszego pliku; oraz odczytywać, zapisywać i posiadać prawa do drugiego pliku. Drugi proces może pisać do pierwszego procesu; jest właścicielem; może czytać, pisać, wykonywać i posiadać pierwszy plik; i może odczytać drugi plik. Macierz kontroli dostępu rejestruje stan ochrony systemu. Ale systemy ewoluują; ich stan ochrony nie pozostaje stały. Zatem zawartość macierzy kontroli dostępu musi się zmienić, aby odzwierciedlić tę ewolucję. Prawdopodobnie najprostszym zbiorem reguł zmiany macierzy kontroli dostępu są te prymitywne operacje:

  • Utwórz temat s tworzy nowy wiersz i kolumnę, obie oznaczone s
  • Utwórz obiekt o tworzy nową kolumnę oznaczoną o
  • Wpisz r w A [s, o] dodaje prawy r do wpisu w wierszu s i kolumnie o; Odpowiada to nadaniu podmiotowi prawa do podmiotu o
  • Usuń r z A [s, o] usuwa prawe r z pozycji w wierszu s i kolumnie o; Odpowiada to usunięciu prawa podmiotu nad podmiotem o
  • Zniszcz przedmioty s usuwa wiersz i kolumnę oznaczone s
  • Zniszcz obiekt o usuwa kolumnę oznaczoną o Operacje te można łączyć w polecenia. Kolejne polecenie tworzy plik f i daje procesowi p odczytanie i własne prawa do tego pliku:

command createread(p, f)

create object f

enter read into A[p, f]

enter own into A[p, f]

end.

Polecenie amono-operacyjne składa się z pojedynczej operacji podstawowej. Na przykład polecenie

command grantwrite(p, f)

enter write into A[p, f]

end.

który daje prawo do zapisu p na f, jest mono-operacyjny. Polecenia mogą zawierać warunki. Na przykład następne polecenie daje podmiotowi p uprawnienia do wykonywania pliku f, jeśli p ma prawa do odczytu nad f:

command grantexec(p, f)

if read in A[p, f] then

enter execute into A[p, f]

end.

Jeśli p nie ma praw do odczytu na f, gdy to polecenie jest wykonywane, nic nie robi. To polecenie ma jeden warunek, a więc jest nazywane monokondycyjnym. Komendy dwuwarstwowe łączą dwa warunki:

command copyread(p, q, f)

if read in A[p, f] and own in A[p, f] then

enter read into A[q, f]

end.

To polecenie daje podmiotowi q prawa do odczytu obiektu f, jeśli podmiot p jest właścicielem f i ma prawa do odczytu na f. Polecenia mogą mieć warunki tylko na początku, a jeśli warunek jest fałszywy, polecenie kończy się. Polecenia mogą zawierać inne polecenia, a także operacje pierwotne. Jeśli wszystkie polecenia w systemie są monoperacyjne, mówi się, że system jest monooperacyjny; jeśli wszystkie polecenia są monoconditional lub biconditional, to system mówi się, że jest monoconditional lub biconditional, odpowiednio. Wreszcie, jeśli system nie ma poleceń, które używają usuwania lub niszczenia pierwotnych ozperacji, system jest uważany za monotoniczny. Macierz kontroli dostępu stanowi teoretyczną podstawę dla dwóch szeroko stosowanych mechanizmów bezpieczeństwa: list kontroli dostępu i list możliwości. W dziedzinie modelowania zapewnia narzędzie do analizy trudności w określeniu, jak bezpieczny jest system.

Matematyczne modele bezpieczeństwa komputera

DLACZEGO MODELE SĄ WAŻNE.

Kiedy prowadzisz nowy samochód, szukasz określonych przedmiotów, które pomogą Ci sterować samochodem: pedału gazu, hamulca, zmiany biegów i kierownicy. Istnieją one we wszystkich samochodach i pełnią funkcję przyspieszania samochodu, zwalniania go i obracania w lewo iw prawo. Tworzy to model samochodu. Przy prawidłowym funkcjonowaniu tych przedmiotów możesz stworzyć przekonujący argument, że model prawidłowo opisuje, co musi posiadać samochód, aby móc się odpowiednio poruszać i sterować. Model bezpieczeństwa komputerowego służy temu samemu celowi. Przedstawia ogólny opis systemu komputerowego (lub kolekcji systemów). Model zawiera definicję „ochrony” (np. „Zachować poufność” lub „zapobiegać nieupoważnionej zmianie”) oraz warunki, w których zapewniona jest ochrona. W przypadku modeli matematycznych można wykazać, że warunki zapewniają określoną ochronę. Zapewnia to wysoki stopień pewności, że dane i programy są chronione, przy założeniu, że model jest wdrożony prawidłowo. Ten ostatni punkt jest krytyczny. Aby powrócić do naszej analogii do samochodu, zwróć uwagę na frazę „przy prawidłowym działaniu tych elementów”. Oznacza to również, że przeciętny kierowca musi być w stanie pracować prawidłowo. W większości, jeśli nie we wszystkich samochodach, model jest realizowany w oczywisty sposób: pedał przyspieszenia znajduje się po prawej stronie pedału hamulca i przyspiesza samochód; pedał hamulca zwalnia; a przekręcenie kierownicy przesuwa samochód w lewo lub w prawo, w zależności od kierunku, w którym obraca się koło. Przeciętny kierowca jest zaznajomiony z tą implementacją i może z niej korzystać poprawnie. Tak więc model i realizacja razem pokazują, że ten konkretny samochód może być napędzany. Załóżmy teraz, że elementy są implementowane inaczej. Wszystkie przedmioty są, ale kierownica jest zablokowana, więc nie można jej obrócić. Mimo że samochód ma wszystkie części, których wymaga model, nie działają one tak, jak wymaga tego model. Implementacja jest niepoprawna, a argument, który zapewnia model, nie ma zastosowania do tego samochodu, ponieważ model przyjmuje założenia – takie jak obracanie kierownicy – które są nieprawidłowe dla tego samochodu. Czytelnik powinien pamiętać o założeniach, które tworzą modele. Kiedy stosuje się te modele do istniejących systemów lub wykorzystuje je do projektowania nowych systemów, należy upewnić się, że założenia są spełnione, aby uzyskać pewność, że model zapewnia. Ta część przedstawia kilka modeli matematycznych, z których każdy służy innemu celowi. Możemy podzielić te modele na kilka typów. Pierwszy zestaw modeli służy do określenia, w jakich warunkach można udowodnić, że typy systemów są bezpieczne. Model macierzy kontroli dostępu przedstawia ogólny opis systemu komputerowego, z którego korzysta ten typ modelu, i da pewne wyniki na temat rozstrzygalności bezpieczeństwa ogólnie i dla poszczególnych klas systemów. Drugi typ modelu opisuje, w jaki sposób system komputerowy stosuje elementy sterujące. Obowiązkowy model kontroli dostępu i uznaniowy model kontroli dostępu stanowią podstawę dla następujących modeli. Model kontroli dostępu kontrolowany przez twórcę łączy kontrolę danych z twórcą, a nie właścicielem, i ma oczywiste zastosowania w systemach zarządzania prawami cyfrowymi. Model kontroli dostępu oparty na rolach wykorzystuje funkcję zadania, a nie tożsamość, w celu zapewnienia kontroli, a zatem może realizować zasadę najmniejszych przywilejów skuteczniej niż wiele modeli. Kolejne kilka modeli opisuje poufność i integralność. Model Bell-LaPadula opisuje klasę systemów zaprojektowanych w celu ochrony poufności i był jednym z najwcześniejszych i najbardziej wpływowych modeli bezpieczeństwa komputerowego. Ścisła polityka integralności modelu Biba jest ściśle związana z modelem Bell-LaPadula i jest obecnie szeroko stosowana; jest on stosowany do programów, aby określić, kiedy można zaufać ich wynikom. Model Clarka-Wilsona jest również modelem integralności, ale różni się zasadniczo od modelu Biby, ponieważ model Clarka-Wilsona opisuje integralność pod względem procesów i zarządzania procesami, a nie pod względem atrybutów danych. Czwarty typ modelu to model hybrydowy. Model ściany chińskiej analizuje konflikty interesów i stanowi interesującą mieszankę wymagań dotyczących poufności i integralności. Ten typ modelu powstaje, gdy wiele rzeczywistych problemów jest abstrakcyjnych w matematycznych reprezentacjach, na przykład podczas analizy zabezpieczeń wymaganych dla dokumentacji medycznej i dla procesu rejestrowania nieruchomości.

JAK KORZYSTAĆ Z WSPÓLNEGO JĘZYKA

Ważne są dwie rzeczy, które należy podkreślić, używając wspólnego języka dla informacji o incydencie bezpieczeństwa komputera. Po pierwsze, wspólny język to naprawdę zestaw terminów wysokiego poziomu. W związku z tym nie rozwiąże wszystkich sporów dotyczących wszystkiego, co jest dyskutowane na temat bezpieczeństwa komputerowego. Na przykład wspólny język obejmuje „autonomicznego agenta” jako termin (kategorię narzędzia). Autonomiczni agenci obejmują wirusy komputerowe, robaki i tym podobne, niezależnie od tego, jak te konkretne terminy mogą być zdefiniowane. Innymi słowy, wspólny język nie próbuje rozstrzygać sporów na temat tego, co powinno lub nie powinno być uważane za wirusa komputerowego, ale raczej zajmuje się wyższym poziomem abstrakcji („autonomiczny agent”), gdzie, jak można mieć nadzieję, może być więcej zgody i standaryzacja. Innymi słowy, uczestnicy warsztatów Common Language Project przewidywali, że osoby i organizacje będą nadal używać własnych warunków, które mogą być bardziej szczegółowe zarówno pod względem znaczenia, jak i zastosowania. Wspólny język został zaprojektowany, aby umożliwić sklasyfikowanie tych terminów niższego poziomu w ramach wspólnej struktury językowej. Drugą kwestią, na którą należy zwrócić uwagę, jest to, że wspólny język, nawet jeśli przedstawia taksonomię, nie klasyfikuje incydentu (ani pojedynczych ataków) jako jednej rzeczy. Klasyfikowanie ataków lub incydentów związanych z bezpieczeństwem komputera jest trudne, ponieważ ataki i incydenty to seria kroków, które musi podjąć atakujący. Innymi słowy, ataki i incydenty to nie tylko jedna rzecz, ale szereg rzeczy. Dlatego mówię, że wspólny język stanowi taksonomię dla informacji o incydencie bezpieczeństwa komputera. Przykład problemu można znaleźć w popularnych i prostych taksonomiach często używanych do próby klasyfikacji incydentów. Pojawiają się jako lista pojedynczych, zdefiniowanych terminów. Następujące terminy z Icove, Seger i VonStorch stanowią przykład :

Ukryte kanały Zanieczyszczenie danych Degradacja usług

Denial of service Dumpster diving Podsłuch na emanacjach

Nadmiar uprawnień Nękanie Podszywanie się pod adresy IP

Logiczne bomby Masquerading Password sniffing

Przejęcie kontroli nad sesją Salami

Piractwo komputerowe Ataki czasowe Analiza ruchu

Drzwi pułapkowe Konie trojańskie Tunelowanie

Nieautoryzowane kopiowanie danych Wirusy i robaki Podsłuch

Listy terminów nie są zadowalającymi taksonomiami do klasyfikacji rzeczywistych ataków lub incydentów. Nie mają większości z sześciu cech zadowalającej taksonomii. Po pierwsze, terminy nie wykluczają się wzajemnie. Na przykład terminy „wirus” i „bomba logiczna” znajdują się zazwyczaj na tych listach, ale wirus może zawierać bombę logiczną, więc kategorie się pokrywają. Faktyczni napastnicy zazwyczaj używają wielu metod, więc ich ataki musiałyby zostać zaklasyfikowane do wielu kategorii. To sprawia, że ​​klasyfikacja jest niejednoznaczna i trudna do powtórzenia. Bardziej fundamentalnym problemem jest to, że przy założeniu, że można by opracować wyczerpującą i wzajemnie wykluczającą się listę, taksonomia byłaby niewystarczająco długa i trudna do zastosowania. Nie wskazywałby także na związek między różnymi typami ataków. Wreszcie żadna z tych list nie została powszechnie zaakceptowana, po części dlatego, że trudno jest uzgodnić definicję terminów. W rzeczywistości wiele różnych definicji terminów jest powszechnie używanych. Podstawowe problemy związane z tymi listami (i ich odmianami) polegają na tym, że większość incydentów wiąże się z wieloma atakami, a ataki wymagają wielu kroków. W rezultacie informacje o typowym incydencie muszą być klasyfikowane w wielu kategoriach. Na przykład jednym z ataków w incydencie może być zalew hosta, który powoduje odmowę usługi. Ale ten sam incydent może wiązać się z wykorzystaniem luki w zabezpieczeniach komputera hosta, który był specyficznym źródłem powodzi. Czy należy to uznać za powódź? Jako kompromis roota? Jako atak typu „odmowa usługi”? W rzeczywistości incydent należy sklasyfikować we wszystkich tych kategoriach. Innymi słowy, ten incydent ma wiele klasyfikacji. Podsumowując, opracowując wspólny język, stwierdziliśmy, że w odniesieniu do ataków i incydentów możemy naprawdę tylko (1) przedstawić wspólny zestaw terminów wysokiego poziomu, które są powszechnie używane i mają wspólne definicje i ( 2) przedstawić strukturę logiczną terminom, które można wykorzystać do klasyfikacji informacji o incydencie lub ataku w odniesieniu do określonych kategorii. Niektóre przykłady mogą to wyjaśnić. Jak wspomniano wcześniej, większość informacji o faktycznych atakach i incydentach ma formę zapisów tekstowych. W typowym rejestrze incydentów w CERT / CC można odnotować trzy obserwacje:

1. Znaleźliśmy rootkita na hoście xxx.xxx.

2. Wysłano e-mail na konto xxx@xxx.xxx, które spowodowało awarię serwera pocztowego.

3. Prześledziliśmy atak z powrotem na nastolatka w mieście Xyz, który powiedział, że nie próbuje wyrządzić żadnych szkód, tylko stara się sprawdzić, czy może się włamać.

W przypadku obserwacji 1 sklasyfikowalibyśmy rootkita w kategorii „zestaw narzędzi” w kategorii „Narzędzie”, a nazwę hosta w kategorii „komputer” w sekcji „Cel”. W przypadku obserwacji 2 „powódź e-mailowa” jest konkretną instancją w „powodzi” kategorię w kategorii „Akcja”, a także w kategorii „odmowa usługi” w sekcji „Nieautoryzowany wynik”. co do celu obserwacji 2: czy jest to konto czy komputer? Ze względów praktycznych obserwacje zostałyby sklasyfikowane jako oba, ponieważ informacje są dostępne w obu przypadkach. Dla obserwacji 3 można wywnioskować, że jest to „haker” poszukujący „wyzwania, statusu lub emocji”. Co zapewnia ten taksonomiczny proces, który ma wartość praktyczną? Po pierwsze, taksonomia pomaga nam przekazywać innym to, co znaleźliśmy. Kiedy mówimy, że rootkit jest rodzajem zestawu narzędzi, to nasz wspólny zestaw terminów („wspólny język”) zapewnia nam ogólne zrozumienie tego, co mamy na myśli. Kiedy mówi się, że 22 procent incydentów zgłoszonych do CERT / CC w latach 1988–1995 obejmowało różne problemy z hasłami (poprawna statystyka35), taksonomia okazała się przydatna w przekazywaniu cennych informacji. Zastosowanie taksonomii jest w rzeczywistości czteroetapowym procesem, który można wykorzystać do określenia największych problemów bezpieczeństwa. W szczególności proces ma na celu:

1. Spójrz na fragmentaryczne informacje w raportach incydentów.

2. Klasyfikuj te obserwacje.

3. Wykonaj badania statystyczne tych danych.

4. Skorzystaj z tych informacji, aby określić najlepszy kurs (y) działania.

Z czasem ten sam proces może zostać użyty do określenia efektów tych działań. Dwa kolejne punkty są ważne, aby podkreślić tę taksonomię. Po pierwsze, atak jest procesem, który z wystarczającą ilością informacji jest zawsze klasyfikowany w wielu kategoriach. Na przykład: w kategorii „Narzędzie”, w kategorii „Podatność”, w kategorii „Działanie”, w kategorii „Cel” oraz w kategorii „Nieautoryzowany wynik”. Po drugie, incydent może obejmować wiele, może tysiące ataków. W związku z tym informacje zebrane w incydencie teoretycznie mogłyby zostać prawidłowo zaklasyfikowane do wszystkich kategorii taksonomii. Zgodnie z tymi wytycznymi wspólny język incydentów związanych z bezpieczeństwem komputerów okazał się użytecznym i coraz bardziej akceptowanym narzędziem do gromadzenia, wymiany i porównywania informacji o bezpieczeństwie komputera. Sama taksonomia okazała się prosta i prosta w użyciu.

DODATKOWE WARUNKI INFORMACJI O INCYDENTACH

Taksonomia ostatniej sekcji przedstawiała wszystkie terminy wspólnego języka bezpieczeństwa komputerowego, które opisują, jak atakujący osiągają cele podczas incydentu. Jednak, aby w pełni opisać zdarzenie, wymagane są inne, bardziej ogólne warunki.

Sukces i porażka.

Informacje o sukcesie lub porażce można zapisać na kilku poziomach ogólnej taksonomii. W najszerszym sensie ogólny sukces lub porażka wskazuje, czy jeden lub więcej napastników osiągnęło jeden lub więcej celów. Węższym celem byłoby określenie sukcesu lub niepowodzenia pojedynczego ataku poprzez ocenę, czy atak prowadzi do nieautoryzowanego wyniku. Informacje o sukcesie lub porażce mogą jednak nie być znane. Na przykład próba zalogowania się do konta root lub superużytkownika w systemie może zostać zakwalifikowana jako niepowodzenie lub jako nieznane.

Nazwa witryny i witryna.

„Witryna” jest popularnym terminem używanym do identyfikowania organizacji internetowych oraz fizycznych lokalizacji. „Witryna” to także poziom organizacyjny administratora strony lub innego organu odpowiedzialnego za komputery i sieci w tej lokalizacji. Termin „nazwa witryny” odnosi się do części w pełni kwalifikowanej nazwy domeny w internetowym systemie nazw domen (DNS). W przypadku witryn w Stanach Zjednoczonych nazwy witryn zazwyczaj znajdują się na drugim poziomie drzewa DNS. Przykładami mogą być cmu.edu lub widgets.com. W innych krajach nazwa witryny to trzeci lub niższy poziom drzewa DNS, taki jak widgets.co.uk. Niektóre nazwy witryn występują nawet dalej w dół drzewa DNS. Na przykład szkoła w Kolorado może mieć nazwę strony myschool.k12.co.us. Oto definicje witryny i nazwy witryny.

Witryna – poziom organizacyjny odpowiedzialny za zdarzenia związane z bezpieczeństwem; poziom organizacyjny administratora strony lub innego organu odpowiedzialnego za komputery i sieci w tym miejscu. Nazwa witryny – część w pełni kwalifikowanej nazwy domeny, która odpowiada witrynie. Niektóre organizacje, takie jak większe uniwersytety i firmy, są wystarczająco duże, aby fizycznie podzielić się na więcej niż jedną lokalizację, z oddzielną administracją. Ta separacja nie może być łatwo ustalona. Dlatego często te różne miejsca muszą być traktowane jako jedna strona.

Inne warunki dotyczące incydentów.

Kilka dodatkowych warunków jest niezbędnych do pełnego opisania rzeczywistych incydentów internetowych. Pierwszy z tych terminów dotyczy dat.

Data zgłoszenia – pierwsza data zgłoszenia zdarzenia zespołowi reagowania lub innej agencji lub osobom zbierającym dane.

Data rozpoczęcia – data pierwszego znanego zdarzenia incydentu.

Data końcowa – data ostatniej znanej aktywności incydentu.

Kilka terminów dotyczy zaangażowanych stron.

Liczba witryn – ogólna liczba witryn, o których wiadomo, że zgłosiły lub w inny sposób brały udział w incydencie.

Witryny raportujące – nazwy witryn, o których wiadomo, że zgłosiły incydent.

Inne witryny – nazwy witryn, o których wiadomo, że brały udział w incydencie, ale które nie zgłosiły incydentu.

W przypadku większości zespołów reagowania na incydenty rzeczywiste nazwy witryn są uważane za informacje poufne. W naszych badaniach, w celu ochrony tożsamości witryn związanych z incydentem, dezynfekujemy informacje o witrynie, kodując nazwy witryn przed ich publicznym udostępnieniem. Przykładem może być zastąpienie nazwy witryny, takiej jak fikcyjne widgets.com, numerami i nazwą domeny wyższego poziomu, taką jak 123.com. Zespoły reagowania często wykorzystują numery incydentów do śledzenia zdarzeń i identyfikacji informacji o zdarzeniach.

Numer incydentu – numer referencyjny używany do śledzenia zdarzenia lub identyfikacji informacji o incydencie.

Ostatnim terminem, który uznaliśmy za przydatny, jest działanie korygujące, które wskazuje działania podjęte w następstwie incydentu. Działania te mogą obejmować zmianę haseł, przeładowanie plików systemów, rozmowę z intruzami, a nawet postępowanie karne. Informacje na temat działań naprawczych podjętych w trakcie lub po incydencie są trudne do uzyskania dla zespołów reagowania na incydenty, ponieważ zaangażowanie zespołu reagowania jest zazwyczaj ograniczone do wczesnych etapów incydentu. Zapisy CERT / CC wskazują, że różnorodność działań naprawczych jest rozległa, a taksonomia działań naprawczych może być pożądanym przyszłym rozszerzeniem wspólnego języka. Działanie korygujące – działanie podjęte podczas lub po incydencie, aby zapobiec dalszym atakom, naprawić obrażenia lub ukarać przestępców.

Atakujący i ich cele.

 Ludzie atakują komputery. Robią to za pomocą różnych metod i różnych celów. To, co odróżnia kategorie atakujących, to połączenie tego, kim są i jakie są ich cele (co chcą osiągnąć).

Atakujący – osoba, która próbuje jednego lub więcej ataków w celu osiągnięcia celu.

Cel – cel lub cel końcowy zdarzenia

W oparciu o ich cele podzieliliśmy atakujących na kilka kategorii:

Hakerzy – atakujący, którzy atakują komputery w poszukiwaniu wyzwań, statusu lub emocji związanych z uzyskaniem dostępu. (Uwaga: zdecydowaliśmy się użyć terminu „haker”, ponieważ jest on powszechny i ​​szeroko rozumiany. Zdajemy sobie sprawę, że bardziej pozytywne skojarzenie tego terminu było po raz kolejny szeroko akceptowane).

Szpiedzy – atakujący, którzy atakują komputery w celu wykorzystania informacji do celów politycznych.

Terroryści – napastnicy, którzy atakują komputery, aby wywołać strach, dla korzyści politycznych.

Korporacyjni najeźdźcy – pracownicy (atakujący), którzy atakują komputery konkurencji w celu uzyskania korzyści finansowych.

Zawodowi przestępcy – napastnicy atakujący komputery w celu uzyskania osobistych korzyści finansowych.

Wandale – atakujący, którzy atakują komputery, aby spowodować obrażenia.

Voyeurs – atakujący, którzy atakują komputery z powodu dreszczyku wrażliwych informacji.

Te siedem kategorii napastników i ich cztery kategorie celów, jak pokazano w blokach po lewej i prawej stronie

są fundamentalne dla różnicy między incydentami a atakami. Różnicę tę podsumowano w wyrażeniu „atakujący wykorzystują ataki do osiągnięcia celów”

Podatność

Aby osiągnąć pożądany rezultat, osoba atakująca musi skorzystać z luki w zabezpieczeniach komputera lub sieci.

Wrażliwość – słabość systemu umożliwiającego nieautoryzowane działanie.

Luka w oprogramowaniu to błąd, który pojawia się na różnych etapach rozwoju lub użytkowania. Ta definicja może być użyta do podania trzech kategorii luk:

Luka w zabezpieczeniach projektowych – luka nieodłącznie związana z projektem lub specyfikacją sprzętu lub oprogramowania, dzięki której nawet perfekcyjna implementacja spowoduje lukę.

Luka w implementacji – luka wynikająca z błędu w oprogramowaniu lub implementacji sprzętowej zadowalającego projektu. Luka w konfiguracji – luka wynikająca z błędu w konfiguracjia systemu, np. posiadanie kont systemowych z domyślnymi hasłami, uprawnienie do zapisu na świecie dla nowych plików lub posiadanie włączone wrażliwe usługi.

Wynik nieautoryzowany.

Logicznym końcem udanego ataku jest nieautoryzowany wynik. W tym momencie osoba atakująca wykorzystała narzędzie do wykorzystania luki w celu spowodowania zdarzenia.

Nieautoryzowany wynik – nieautoryzowane konsekwencje zdarzenia. Jeśli się powiedzie, atak spowoduje jedno z następujących:

Zwiększony dostęp – nieautoryzowane zwiększenie domeny dostępu do komputera lub sieci.

Ujawnianie informacji – rozpowszechnianie informacji każdemu, kto nie jest upoważniony do dostępu do tych informacji.

Uszkodzenie informacji – nieautoryzowana zmiana danych na komputerze lub w sieci.

Odmowa usługi – celowa degradacja lub blokowanie zasobów komputera lub sieci.

Kradzież zasobów – nieautoryzowane wykorzystanie zasobów komputera lub sieci.

Pełna taksonomia informacji o zdarzeniach. Często ataki na komputery w sieci występują w charakterystycznej grupie, którą klasyfikowalibyśmy jako część jednego zdarzenia. To, co czyni te ataki grupą wyróżniającą, jest kombinacją trzech czynników, z których każdy może mieć jedynie częściową informację.

1. Może być jeden atakujący lub może być kilku napastników, którzy są w jakiś sposób spokrewnieni.

2. Atakujący może użyć podobnych ataków lub może starać się osiągnąć wyraźny lub podobny cel.

3. Witryny zaangażowane w ataki i czas ataków mogą być takie same lub mogą być powiązane.

Oto definicja incydentu: Incydent – grupa ataków, które można odróżnić od innych ataków z powodu odrębności atakujących, ataków, celów, witryn i czasu. Trzy części incydentu są przedstawione w uproszczonej formie

, który pokazuje, że atakujący lub grupa atakujących osiąga cele poprzez wykonywanie ataków. Incydent może obejmować jeden pojedynczy atak lub wiele ataków, co ilustruje pętla powrotna na rysunku.

przedstawia pełną taksonomię informacji o zdarzeniach.   Pokazuje związek zdarzeń do ataków i ataków na incydenty i sugeruje, że uniemożliwienie atakującym osiągnięcia celów można osiągnąć poprzez zapewnienie, że atakujący nie może wykonać żadnych pełnych połączeń przez siedem przedstawionych kroków. Na przykład mogą zostać przeprowadzone dochodzenia w sprawie podejrzanych o ataki terrorystyczne, systemy można okresowo przeszukiwać pod kątem narzędzi atakujących, można naprawić luki w systemie, wzmocnić kontrolę dostępu, aby uniemożliwić atakującemu dostęp do konta docelowego, pliki mogą być szyfrowane tak, jak nie prowadzić do ujawnienia, a można zainicjować publiczny program edukacyjny, aby uniemożliwić terrorystom osiągnięcie celu politycznego