Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00063 006326 19007559 na godz. na dobę w sumie
Bezpieczeństwo systemów informatycznych. Zasady i praktyka. Wydanie IV. Tom 1 - książka
Bezpieczeństwo systemów informatycznych. Zasady i praktyka. Wydanie IV. Tom 1 - książka
Autor: , Liczba stron: 632
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-4299-6 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> hacking >> bezpieczeństwo systemów
Porównaj ceny (książka, ebook (-35%), audiobook).

Zapewnienie bezpieczeństwa systemu informatycznego jest dziś nie lada wyzwaniem. Między administratorami a napastnikami trwa ciągły wyścig zbrojeń. Agresorzy dysponują bardzo różnymi narzędziami i często postępują w sposób nieprzewidywalny. W efekcie każde zabezpieczenie usługi czy zasobu, mimo że początkowo wydaje się doskonałe, prędzej czy później okazuje się podatne na ataki. Jedyną rzeczą, jaką może zrobić administrator bezpieczeństwa systemu, jest ciągłe utrzymywanie stanu gotowości, a także odpowiednio wczesne wykrywanie prób ataku i sukcesywne ich neutralizowanie. Poza tym powinien cały czas się uczyć i aktualizować swoją wiedzę.

Ta książka to kolejne, zaktualizowane i uzupełnione wydanie znakomitego podręcznika przeznaczonego dla projektantów systemów i administratorów bezpieczeństwa. Poruszono w niej zagadnienia określania zagrożeń systemów komputerowych i sieci, oceny względnego ryzyka tych zagrożeń i opracowywania efektywnych kosztowo i przyjaznych dla użytkownika środków zaradczych. Wyjaśniono także najważniejsze zasady utrzymywania bezpieczeństwa systemu i wskazano, dlaczego ich przestrzeganie ma kluczowe znaczenie. Zaprezentowano również metody projektowe pozwalające na zaspokojenie wymagań bezpieczeństwa komputerowego, szeroko omówiono ważniejsze standardy w tej dziedzinie, a poszczególne kwestie zilustrowano za pomocą praktycznych przykładów.

Najciekawsze zagadnienia:

Cyberobrona: bądź czujny i przygotuj się!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: Computer Security: Principles and Practice (4th Edition) Tłumaczenie: Zdzisław Płoski, Radosław Meryk (słowniczek) ISBN: 978-83-283-4299-6 Authorized translation from the English language edition, entitled: COMPUTER SECURITY: PRINCIPLES AND PRACTICE, Fourth Edition; ISBN 0134794109; by William Stallings, and by Lawrie Brown, published by Pearson Education, Inc. Copyright © 2018, 2015, 2012, 2008 by Pearson Education, Inc. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, incłuding photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. Polish language edition published by HELION S.A. Copyright © 2019. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Helion SA ul. Kościuszki 1c, 44-100 Gliwice tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/bsiz41 Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność SPIS TREŚCI Przedmowa ................................................................................................................................. 9 Notacja ......................................................................................................................................21 O autorach ................................................................................................................................23 Rozdział 1. Przegląd ................................................................................................. 25 Koncepcje bezpieczeństwa komputerowego ......................................................26 Zagrożenia, ataki i aktywa .....................................................................................35 Funkcjonalne wymagania bezpieczeństwa .........................................................42 Podstawowe zasady projektowania bezpieczeństwa .........................................44 Powierzchnie ataków i drzewa ataków ................................................................49 Strategia bezpieczeństwa komputerowego .........................................................53 Standardy ................................................................................................................56 Podstawowe pojęcia, pytania sprawdzające i zadania .......................................57 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.8. CZĘŚĆ I TECHNIKI I ZASADY BEZPIECZEŃSTWA KOMPUTEROWEGO Rozdział 2. Narzędzia kryptograficzne .................................................................... 61 Osiąganie poufności za pomocą szyfrowania symetrycznego .........................62 Uwierzytelnianie komunikatów i funkcje haszowania ........................................69 Szyfrowanie z kluczem publicznym ....................................................................79 Podpisy cyfrowe i zarządzanie kluczami ............................................................85 Liczby losowe i pseudolosowe ..............................................................................90 Zastosowanie praktyczne: szyfrowanie przechowywanych danych ................93 Podstawowe pojęcia, pytania sprawdzające i zadania .......................................95 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8. Rozdział 3. Uwierzytelnianie użytkownika ........................................................... 101 Zasady cyfrowego uwierzytelniania użytkownika ...........................................103 Uwierzytelnianie oparte na hasłach ...................................................................109 Uwierzytelnianie oparte na żetonach ................................................................124 Uwierzytelnianie biometryczne .........................................................................129 Zdalne uwierzytelnianie użytkownika ..............................................................135 Zagadnienia bezpieczeństwa uwierzytelniania użytkownika .........................140 Zastosowanie praktyczne: tęczówkowy system biometryczny ......................142 Przykład konkretny: problemy bezpieczeństwa w systemach bankomatowych ............................................................................144 Podstawowe pojęcia, pytania sprawdzające i zadania .....................................147 3.9. 5 Poleć książkęKup książkę 6 SPIS TREŚCI Rozdział 4. Kontrolowanie dostępu ....................................................................... 151 Zasady kontrolowania dostępu ..........................................................................154 Podmioty, obiekty i prawa dostępu ...................................................................156 Uznaniowe kontrolowanie dostępu ...................................................................158 Przykład: kontrolowanie dostępu w uniksowym systemie plików ...............165 Kontrolowanie dostępu według ról ...................................................................169 Kontrolowanie dostępu według atrybutów ......................................................176 Tożsamość, poświadczenia i zarządzanie dostępem .......................................183 Ramy zaufania ......................................................................................................187 Przykład konkretny: kontrolowanie ról w systemie bankowym ...................192 Podstawowe pojęcia, pytania sprawdzające i zadania .....................................195 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8. 4.9. 4.10. Rozdział 5. Bezpieczeństwo baz i centrów danych ................................................ 201 Zapotrzebowanie na bezpieczeństwo baz danych ...........................................202 Systemy zarządzania bazami danych .................................................................204 Relacyjne bazy danych .........................................................................................206 Ataki wstrzykiwania w sql ...................................................................................210 Kontrolowanie dostępu do bazy danych ..........................................................217 Wnioskowanie ......................................................................................................223 Szyfrowanie baz danych ......................................................................................226 Bezpieczeństwo centrum danych .......................................................................231 Podstawowe pojęcia, pytania sprawdzające i zadania .....................................237 5.1. 5.2. 5.3. 5.4. 5.5. 5.6. 5.7. 5.8. 5.9. Rozdział 6. Malware — szkodliwe oprogramowanie ............................................ 243 Rodzaje szkodliwego oprogramowania ............................................................245 Zaawansowane trwałe zagrożenie ......................................................................249 Rozsiewanie — zainfekowana treść — wirusy .................................................250 Rozsiewanie — wykorzystanie wrażliwych punktów — robaki ....................257 Rozsiewanie — socjotechnika — spam pocztowy, konie trojańskie .............269 Ładunek — psucie systemu ................................................................................272 Ładunek — agent ataku — zombie, boty ..........................................................275 Ładunek — kradzież informacji — keylogery, phishing, spyware ................277 Ładunek — działania ukradkowe — boczne drzwi, rootkity .........................280 Przeciwdziałania ...................................................................................................285 Podstawowe pojęcia, pytania sprawdzające i zadania .....................................293 6.1. 6.2. 6.3. 6.4. 6.5. 6.6. 6.7. 6.8. 6.9. 6.10. 6.11. Rozdział 7. Ataki polegające na odmowie świadczenia usług ............................... 297 Odmowa usług jako rodzaj ataku ......................................................................298 Ataki zatapiające ..................................................................................................307 Rozproszone ataki blokowania usług ................................................................310 Ataki na przepływność oparte na aplikacjach ..................................................312 7.1. 7.2. 7.3. 7.4. Poleć książkęKup książkę SPIS TREŚCI 7 7.5. 7.6. 7.7. 7.8. Ataki odbijające i ataki ze wzmocnieniem .......................................................315 Obrona przed odmową świadczenia usług .......................................................321 Reagowanie na atak typu odmowa świadczenia usług ......................................325 Podstawowe pojęcia, pytania sprawdzające i zadania .....................................327 Rozdział 8. Wykrywanie włamań ........................................................................... 331 Intruzi ....................................................................................................................332 Wykrywanie włamań ...........................................................................................336 Podejścia analityczne ...........................................................................................341 Wykrywanie włamań oparte na hoście .............................................................344 Wykrywanie włamań oparte na sieci .................................................................351 Rozproszone lub hybrydowe wykrywanie włamań .........................................358 Format wymiany wykrywania włamań .............................................................361 Miodownice (honeypoty) ...................................................................................364 Przykład systemu: snort ......................................................................................367 Podstawowe pojęcia, pytania sprawdzające i zadania ....................................371 8.1. 8.2. 8.3. 8.4. 8.5. 8.6. 8.7. 8.8. 8.9. 8.10. Rozdział 9. Zapory sieciowe i systemy zapobiegania włamaniom ........................ 377 Zapotrzebowanie na zapory sieciowe ................................................................378 Charakterystyka zapór sieciowych i polityka dostępu ........................................379 Rodzaje zapór sieciowych ...................................................................................381 Posadowienie zapór sieciowych .........................................................................389 Umiejscowienie i konfiguracja zapór sieciowych ............................................392 Systemy zapobiegania włamaniom ....................................................................398 Przykład: ujednolicone środki opanowywania zagrożeń ...............................404 Podstawowe pojęcia, pytania sprawdzające i zadania .....................................409 9.1. 9.2. 9.3. 9.4. 9.5. 9.6. 9.7. 9.8. CZĘŚĆ II BEZPIECZEŃSTWO OPROGRAMOWANIA I SYSTEMÓW Rozdział 10. Przepełnienie bufora ........................................................................... 415 Przepełnienia stosu ..............................................................................................417 Obrona przed przepełnieniami bufora .............................................................442 Inne formy ataków przepełniających ................................................................450 Podstawowe pojęcia, pytania sprawdzające i zadania .....................................457 10.1. 10.2. 10.3. 10.4. Rozdział 11. Bezpieczeństwo oprogramowania ...................................................... 461 11.1. Zagadnienia bezpieczeństwa oprogramowania ...............................................463 11.2. Obsługa wejścia programu .................................................................................468 11.3. Pisanie bezpiecznego kodu .................................................................................482 11.4. Współpraca z systemem operacyjnym i innymi programami .......................488 Obsługa wyjścia programu .................................................................................504 11.5. 11.6. Podstawowe pojęcia, pytania sprawdzające i zadania .....................................507 Poleć książkęKup książkę 8 SPIS TREŚCI Rozdział 12. Bezpieczeństwo systemów operacyjnych ............................................ 511 12.1. Wprowadzenie do bezpieczeństwa systemów operacyjnych .........................514 Planowanie bezpieczeństwa systemu operacyjnego ........................................514 12.2. 12.3. Hartowanie systemów operacyjnych .................................................................515 Bezpieczeństwo aplikacji .....................................................................................521 12.4. Dbałość o bezpieczeństwo ..................................................................................522 12.5. Bezpieczeństwo w systemach Linux i UNIX ....................................................524 12.6. 12.7. Bezpieczeństwo w systemie Windows ..............................................................529 Bezpieczeństwo wirtualizacji ..............................................................................532 12.8. 12.9. Podstawowe pojęcia, pytania sprawdzające i zadania .....................................542 Rozdział 13. Bezpieczeństwo chmur i internetu rzeczy .......................................... 545 Obliczenia w chmurze .........................................................................................546 Koncepcje bezpieczeństwa chmury ...................................................................556 Podejścia do bezpieczeństwa chmury ...............................................................561 Internet rzeczy (ir) ...............................................................................................570 Bezpieczeństwo internetu rzeczy .......................................................................576 Podstawowe pojęcia i pytania sprawdzające ....................................................587 13.1. 13.2. 13.3. 13.4. 13.5. 13.6. Spis treści tomu 2. .................................................................................................... 589 Słowniczek ............................................................................................................... 595 Akronimy .................................................................................................................. 605 Literatura .................................................................................................................. 607 Skorowidz .................................................................................................................. 621 Poleć książkęKup książkę ROZDZIAŁ KONTROLOWANIE DOSTĘPU 4.1. Zasady kontrolowania dostępu Kontekst kontrolowania dostępu Zasady kontrolowania dostępu 4.2. Podmioty, obiekty i prawa dostępu 4.3. Uznaniowe kontrolowanie dostępu Model kontrolowania dostępu Domeny ochrony 4.4. Przykład: kontrolowanie dostępu w uniksowym systemie plików Tradycyjne kontrolowanie dostępu do plików w UNIX-ie Lista kontroli dostępu w UNIX-ie 4.5. Kontrolowanie dostępu według ról Modele wzorcowe RBAC 4.6. Kontrolowanie dostępu według atrybutów Atrybuty Architektura logiczna ABAC Polityka ABAC 4.7. Tożsamość, poświadczenia i zarządzanie dostępem Zarządzanie tożsamością Zarządzanie poświadczeniami Zarządzanie dostępem Federacja tożsamości 4.8. Ramy zaufania Tradycyjne podejście do wymiany tożsamości Rama zaufania otwartej tożsamości 4.9. Przykład konkretny: kontrolowanie ról w systemie bankowym 4.10. Podstawowe pojęcia, pytania sprawdzające i zadania 151 Poleć książkęKup książkę 152 ROZDZIAŁ 4. KONTROLOWANIE DOSTĘPU W TYM ROZDZIALE POZNASZ I ZROZUMIESZ:  miejsce kontrolowania dostępu w szerszym kontekście uwierzytelniania, upoważniania i doglądania;  trzy główne rodzaje polityki kontrolowania dostępu;  różnice między podmiotami, obiektami i prawami dostępu;  model kontrolowania dostępu do plików w systemie UNIX;  podstawowe koncepcje kontrolowania dostępu według ról;  podsumowanie modelu RBAC;  podstawowe zasady kontrolowania dostępu opartego na atrybutach;  model tożsamości, poświadczeń i zarządzania dostępem;  pojęcie federacji tożsamości i jego związek z ramą zaufania. Zrozumienie zakresu pojęcia kontrolowania dostępu ułatwiają dwie definicje. 1. NISTIR 7298 (Glossary of Key Information Security Terms, z ang. „Słownik podsta- wowych terminów z zakresu bezpieczeństwa informacji”) z maja 2013 roku definiuje kontrolowanie dostępu jako proces spełniania lub odmowy spełnienia określonych żądań: (1) uzyskania i użytkowania informacji i usług przetwarzania związanych z infor- macjami oraz (2) dostępu do określonych urządzeń (rozwiązań) fizycznych. 2. RFC 4949 (Internet Security Glossary) definiuje kontrolowanie dostępu jako postępowa- nie regulujące użycie zasobów systemu zgodnie z zasadami bezpieczeństwa, dozwolone tylko upoważnionym jednostkom (użytkownikom, programom, procesom lub innym systemom) stosownie do przyjętych zasad. Kontrolowanie dostępu możemy uważać za centralny element bezpieczeństwa kompu- terowego. Podstawowym celem bezpieczeństwa komputerowego jest zapobieganie uzy- skiwaniu przez nielegalnych użytkowników dostępu do zasobów, zapobieganie dostępowi do zasobów przez legalnych użytkowników w sposób nieupoważniony i umożliwianie legalnym użytkownikom dostępu do zasobów zgodnie z ich uprawnieniami. Tabela 4.1, zaczerpnięta z dokumentu NIST SP 800-171 (Protecting Controlled Unclassified Informa- tion in Nonfederal Information Systems and Organizations) z sierpnia 2016 roku, zawiera pożyteczną listę wymagań bezpieczeństwa dotyczących usług kontrolowania dostępu. Rozpoczniemy ten rozdział od przeglądu kilku ważnych pojęć. Potem przyjrzymy się trzem powszechnie stosowanym technikom implementowania zasad kontrolowania dostępu. Następnie poszerzymy nasz ogląd o ogólne zarządzanie kontrolowaniem dostępu z użyciem oznak tożsamości, poświadczeń i atrybutów. Na koniec wprowadzimy pojęcie ramy zaufania. Poleć książkęKup książkę 4.1. ZASADY KONTROLOWANIA DOSTĘPU 153 Tabela 4.1. Wymagania bezpieczeństwa dotyczące kontrolowania dostępu (SP 800-171) Podstawowe wymagania bezpieczeństwa 1. Ograniczaj dostęp do systemu informacyjnego do upoważnionych użytkowników, procesów działających w imieniu upoważnionych użytkowników lub urządzeń (w tym innych systemów informacyjnych) 2. W systemie informacyjnym ograniczaj dostęp do rodzajów transakcji i funkcji, które wolno wykonywać upoważnionym użytkownikom Pochodne wymagania bezpieczeństwa 3. Kontroluj przepływ CUI zgodnie z przyjętymi upoważnieniami 4. Oddzielaj obowiązki poszczególnych osób, aby zmniejszyć ryzyko nieukartowanych wrogich działań 5. Stosuj zasadę najmniejszych przywilejów, odnoszoną w szczególności do określonych funkcji i uprzywilejowanych kont 6. Używaj nieuprzywilejowanych kont lub ról w dostępie do funkcji nieodnoszących się do bezpieczeństwa 7. Nie dopuszczaj do wykonywania przez nieuprzywilejowanych użytkowników uprzywilejowanych funkcji i doglądaj wykonywania takich funkcji 8. Ograniczaj nieudane próby logowania (rozpoczęcia sesji w systemie) 9. Zadbaj o zgodność adnotacji dotyczących prywatności i bezpieczeństwa ze stosowalnymi regułami CUI 10. Stosuj blokowanie sesji z ukrywaniem wyświetlanych wzorców w celu zapobiegania dostępowi i oglądania danych po upływie okresu bezczynności 11. Kończ (automatycznie) sesję użytkownika po wystąpieniu określonego warunku 12. Monitoruj i kontroluj sesje zdalnego dostępu 13. Korzystaj z mechanizmów kryptograficznych do ochrony poufności sesji zdalnego dostępu 14. Prowadź zdalny dostęp przez odpowiednio przygotowane punkty kontrolowania dostępu 15. Upoważniaj zdalne wykonywanie uprzywilejowanych poleceń i zdalny dostęp do informacji wymagających bezpieczeństwa 16. Dopilnuj upoważnienia dostępu bezprzewodowego przed zezwoleniem na takie połączenia 17. Chroń dostęp bezprzewodowy za pomocą uwierzytelniania i szyfrowania 18. Kontroluj połączenia urządzeń mobilnych 19. Szyfruj CUI w urządzeniach mobilnych 20. Weryfikuj i kontroluj lub ograniczaj połączenia i korzystanie z zewnętrznych systemów informacyjnych 21. Ograniczaj użycie w zewnętrznych systemach informacyjnych przenośnych urządzeń pamięciowych należących do danej organizacji (firmy) 22. Kontroluj CUI wysyłane pocztą lub przetwarzane w dostępnych publicznie systemach informacyjnych CUI (ang. controlled unclassified information) = kontrolowana informacja nieklasyfikowana Źródło: na podstawie raportu NIST SP 800-172 Protecting Controlled Unclassified Information in Nonfederal Information Systems and Organizations z grudnia 2016. National Institute of Standards and Technology (NIST), United States Department of Commerce. Poleć książkęKup książkę 154 ROZDZIAŁ 4. KONTROLOWANIE DOSTĘPU 4.1. ZASADY KONTROLOWANIA DOSTĘPU W szerokim rozumieniu całość bezpieczeństwa komputerowego skupia się na kontro- lowaniu dostępu. I rzeczywiście, dokument RFC 4949 definiuje bezpieczeństwo kom- puterowe następująco: środki realizacji i gwarantowania usług zabezpieczeń w systemie komputerowym ze szczególnym uwzględnieniem tych zapewniających usługi kontrolowa- nia dostępu. Ten rozdział jest poświęcony węższej, bardziej specyficznej koncepcji kontro- lowania dostępu — kontrolowaniu dostępu realizującego zasady bezpieczeństwa definiu- jące, kto lub co (np. proces) może mieć dostęp do określonego zasobu systemowego oraz dozwolony rodzaj dostępu w każdym takim przypadku. Kontekst kontrolowania dostępu Na rysunku 4.1 pokazano kontrolowanie dostępu w poszerzonym kontekście. Oprócz kontrolowania dostępu ten kontekst obejmuje następujące jednostki i funkcje:  Uwierzytelnianie (ang. authentication). Weryfikowanie, że poświadczenia użytkownika lub innej jednostki systemowej są ważne.  Upoważnianie (ang. authorization). Udzielanie jednostce systemu prawa lub pozwo- lenia na dostęp do zasobu systemowego. Ta funkcja określa, kto jest zaufany w okre- ślonym celu.  Audyt (wgląd, ang. audit). Niezależny przegląd i badanie zapisów i aktywności sys- temu w celu sprawdzenia adekwatności kontroli systemowej, przestrzegania zgod- ności z przyjętymi zasadami i procedurami operacyjnymi oraz wykrywania naruszeń bezpieczeństwa, jak również zalecanie wszelkich zmian w kontroli, polityce i proce- durach, których konieczność wprowadzenia zostanie wykazana. Mechanizm kontrolowania dostępu pośredniczy między użytkownikiem (lub proce- sem działającym na zlecenie użytkownika) a zasobami systemowymi, takimi jak aplikacje, systemy operacyjne, zapory sieciowe, routery, pliki i bazy danych. System musi najpierw uwierzytelnić użytkownika ubiegającego się o dostęp. Funkcja uwierzytelnienia zazwyczaj ustala, czy użytkownikowi wolno w ogóle mieć prawo wstępu do systemu. W następnej kolejności funkcja kontroli dostępu określa, czy danemu użytkownikowi przysługuje zama- wiany rodzaj dostępu. Administrator bezpieczeństwa utrzymuje bazę danych z upoważ- nieniami określającymi, jaki rodzaj dostępu i do których zasobów jest dozwolony danemu użytkownikowi. Funkcja kontroli dostępu sprawdza tę bazę danych, aby rozstrzygnąć, czy udzielić dostępu. Funkcja doglądania (audytu) nadzoruje i utrzymuje rekord odnoto- wujący dostępy użytkownika do zasobów systemowych. W prostym modelu przedstawionym na rysunku 4.1 funkcja kontrolowania dostępu jest ukazana w postaci pojedynczego modułu logicznego. W praktyce w realizacji funkcji kontrolowania dostępu może brać udział wiele współpracujących ze sobą komponentów. Wszystkie systemy operacyjne mają co najmniej elementarną, a w wielu przypadkach Poleć książkęKup książkę 4.1. ZASADY KONTROLOWANIA DOSTĘPU 155 Rysunek 4.1. Związek między kontrolowaniem dostępu i innymi funkcjami bezpieczeństwa. Źródło: na podstawie [SAND94] całkiem odporną składową kontrolowania dostępu. Dodatkowe pakiety bezpieczeństwa mogą uzupełniać rdzenne możliwości kontrolowania dostępu systemu operacyjnego. Poszczególne aplikacje lub narzędzia, takie jak system zarządzania bazą danych, również zawierają funkcje kontrolowania dostępu. Urządzenia zewnętrzne w rodzaju zapór siecio- wych także mogą świadczyć usługi kontrolowania dostępu. Zasady kontrolowania dostępu Polityka kontrolowania dostępu, którą może ucieleśniać baza danych upoważnień, określa dozwolone rodzaje dostępu, warunki jego występowania oraz uprawnione podmioty. Zasady kontrolowania dostępu dzielą się ogólnie na następujące kategorie:  Uznaniowe kontrolowanie dostępu (ang. discretionary access control — DAC). Kon- trolowanie dostępu na podstawie tożsamości ubiegającej się osoby (podmiotu) oraz reguł dostępu (upoważnień) określających, co jej wolno (lub czego nie wolno) robić. Poleć książkęKup książkę 156 ROZDZIAŁ 4. KONTROLOWANIE DOSTĘPU Politykę tę nazywa się uznaniową, ponieważ jednostka może mieć takie prawa dostępu, które umożliwią jej udzielenie dostępu do pewnego zasobu innej jednostce wedle własnej woli.  Obligatoryjne kontrolowanie dostępu (ang. mandatory access control — MAC). Kontrolowanie dostępu oparte na porównywaniu etykiet bezpieczeństwa (wskazują- cych stopień wrażliwości lub krytycznego znaczenia zasobów systemu) z certyfikatem bezpieczeństwa (pokazującym, które jednostki systemu kwalifikują się do dostępu do pewnych zasobów). Tę politykę zwie się obligatoryjną (obowiązkową), gdyż jed- nostka posiadająca pozwolenie na dostęp do zasobu nie może ot tak, wedle swojego uznania, udostępnić go innej jednostce.  Kontrolowanie dostępu według ról (ang. role-based access control — RBAC). Kon- trolowanie dostępu oparte na rolach odgrywanych przez użytkowników w systemie i regułach określających, jakie dostępy są dozwolone użytkownikom występującym w danych rolach.  Kontrolowanie dostępu według atrybutów (ang. attribute-based access control — ABAC). Kontrolowanie dostępu oparte na atrybutach użytkownika, zasobach do udo- stępnienia i bieżących warunkach środowiskowych. DAC jest tradycyjną metodą urzeczywistniania kontroli dostępu. Opisano ją w pod- rozdziałach 4.3 i 4.4. MAC jest koncepcją, która wyewoluowała z wymagań dotyczących bezpieczeństwa informacji wojskowej i najlepiej wpisuje się w kontekst systemów zaufanych, którymi zajmiemy się w rozdziale 27. Zarówno RBAC, jak i ABAC zyskują wciąż na popularności; są one omówione, odpowiednio, w podrozdziałach 4.5 i 4.6. Te cztery rodzaje polityki nie wykluczają się nawzajem. Mechanizm kontrolowania dostępu może wykorzystywać dwie lub nawet trzy spośród nich, aby obejmować różne klasy zasobów systemu. 4.2. PODMIOTY, OBIEKTY I PRAWA DOSTĘPU Podstawowymi elementami kontrolowania dostępu są podmiot, obiekt i prawo dostępu. Podmiot (ang. subject) jest jednostką zdolną do dostępu do obiektów. Na ogół poję- cie podmiotu zrównuje się z procesem1. Dowolny użytkownik lub aplikacja uzyskuje w rzeczywistości dostęp do obiektu za pomocą procesu reprezentującego użytkownika lub aplikację. Proces przejmuje atrybuty użytkownika, takie jak prawa dostępu. Podmiot zazwyczaj jest obciążany odpowiedzialnością za podejmowane działania i w ramach doglądania może być zapisywany ślad związków podmiotu z działaniami istotnymi dla bezpieczeństwa wykonywanymi przez podmiot na obiekcie. tection domain) — przyp. tłum. 1 Inni autorzy podmiot (w opisywanym tu znaczeniu) nazywają też domeną ochrony (ang. pro- Poleć książkęKup książkę 4.2. PODMIOTY, OBIEKTY I PRAWA DOSTĘPU 157 Podstawowe systemy kontrolowania dostępu zwykle definiują trzy klasy podmiotów z różnymi prawami dostępu w każdej klasie:  Właściciel (ang. owner). Może to być twórca zasobu, na przykład pliku. W przypadku zasobów systemowych prawa własności mogą należeć do administratora systemu. Jeśli chodzi o zasoby dotyczące projektów, ich własność może być przypisana admi- nistratorowi lub kierownikowi projektu.  Grupa (ang. group). Oprócz przywilejów przypisanych właścicielowi nazwanej grupie użytkowników mogą również być przyznane prawa dostępu, tak że przynależność do grupy będzie wystarczała do korzystania z tych praw. W większości schematów użytkownik może należeć do wielu grup.  Świat (ang. world). Najmniejsze przywileje są udzielane użytkownikom, którzy mogą mieć dostęp do systemu, lecz nie są zaliczeni do kategorii właścicieli lub grupy w związku z danym zasobem. Obiekt (ang. object) jest zasobem, do którego dostęp podlega kontroli. Przykładami są rekordy, bloki, strony, segmenty, pliki, fragmenty plików, katalogi, drzewa katalogów, skrzynki pocztowe, komunikaty i programy. Niektóre systemy kontrolowania dostępu obejmują również bity, bajty, słowa, procesory, porty komunikacyjne, zegary i węzły sieci. Liczba i typy obiektów chronionych przez system kontrolowania dostępu zależą od środowiska, w którym dokonuje się kontrolowania dostępu, oraz od pożądanych kom- promisów między bezpieczeństwem, jego złożonością i związanymi z tym uciążliwościami przetwarzania a wygodą użytkowania. Prawo dostępu (ang. access right) opisuje, w jaki sposób podmiot może sięgać po obiekt. Do praw dostępu należą:  Czytanie (ang. read). Użytkownik może oglądać informacje zgromadzone w zasobie systemu (np. w pliku, wybranych rekordach pliku, wybranych polach w rekordzie lub w pewnych ich kombinacjach). Dostęp do czytania obejmuje zdolność do kopiowa- nia lub drukowania.  Pisanie (ang. write). Użytkownik może dodawać, modyfikować lub usuwać dane w zasobie systemu (np. w pliku, rekordach, programach). Dostęp do pisania obejmuje dostęp do czytania.  Wykonywanie (ang. execute). Użytkownik może wykonywać określone programy.  Usuwanie (ang. delete). Użytkownik może usuwać pewne zasoby systemu, na przy- kład pliki lub rekordy.  Tworzenie (ang. create). Użytkownik może tworzyć nowe pliki, rekordy lub pola.  Wyszukiwanie (ang. search). Użytkownik może wyprowadzać wykaz plików z katalo- gu lub w inny sposób przeszukiwać katalog. Poleć książkęKup książkę 158 ROZDZIAŁ 4. KONTROLOWANIE DOSTĘPU 4.3. UZNANIOWE KONTROLOWANIE DOSTĘPU Jak powiedziano poprzednio, schemat uznaniowego kontrolowania dostępu polega na tym, że jakaś jednostka z własnej woli może udzielić praw dostępu pozwalających innej jednostce sięgać po pewien zasób. Ogólne podejście do DAC2 stosowane przez system operacyjny lub system zarządzania bazą danych zasadza się na macierzy dostępów (ang. access matrix). Pomysł macierzy dostępów został sformułowany przez Lampsona [LAMP69, LAMP71], a później uściślony przez Grahama i Denninga [GRAH72, DENN71] oraz Harrisona i in. [HARR76]. Jeden z wymiarów macierzy tworzą zidentyfikowane podmioty, które mogą preten- dować do dostępu do danych. Lista ta będzie na ogół zawierać poszczególnych użytkowni- ków lub grupy użytkowników, choć oprócz użytkowników lub zamiast nich kontrolo- waniem dostępu mogą być również objęte terminale, wyposażenie sieciowe, komputery w sieci lub aplikacje. W drugim wymiarze mieszczą się obiekty, do których może nastę- pować dostęp. Na największym poziomie szczegółowości obiektami mogą być indywi- dualne pola danych. Jednostki wykazujące większe zgrupowanie, jak rekordy, pliki lub nawet cała baza danych, też mogą być obiektami tej macierzy. Każdy wpis w macierzy zawiera prawa dostępu danego podmiotu do danego obiektu. Rysunek 4.2a, oparty na rysunku z [SAND94], ukazuje prosty przykład macierzy dostępów. Mamy tu użytkownika A posiadającego pliki 1 i 3 oraz prawa ich czytania i zapisywania. Użytkownik B ma prawo czytania pliku 1 itd. W praktyce macierz dostępów jest rzadka i jest implementowana przez zdekompo- nowanie jej na dwa sposoby. Macierz może być zdekomponowana według kolumn, w rezultacie czego otrzymujemy listy kontroli dostępu (ang. access control lists — ACLs), widoczne na rysunku 4.2b. Dla każdego obiektu lista kontroli dostępu wymienia użyt- kowników i przysługujące im prawa. Lista kontroli dostępu może zawierać wpis domyślny, czyli publiczny. Umożliwia to użytkownikom, którym jawnie nie przyznano określonych praw, posiadanie domyślnego zbioru praw. W domyślnym zbiorze praw należy zawsze przestrzegać reguły najmniejszych przywilejów lub udzielać dostęp tylko do czytania — zależnie od tego, która z tych dwu opcji jest osiągalna. Elementy listy mogą zawierać poszczególnych użytkowników lub grupy użytkowników. Jeśli jest potrzebne określenie, które podmioty mają prawa dostępu — i jakie — do konkretnego zasobu, listy ACL są wygodne, ponieważ każda lista ACL zawiera informacje dotyczące danego zasobu. Jednak ta struktura danych nie jest wygodna w wypadku ustalenia praw dostępu przysługujących konkretnemu użytkownikowi. Podział według wierszy daje bilety uprawnień (mandaty uprawnień, ang. capability tickets), pokazane na rysunku 4.2c. Bilet uprawnień określa upoważnienia użytkownika do wykonywania operacji na obiektach. Każdy użytkownik ma pewną liczbę biletów i może być upoważniony do wypożyczania lub przekazywania ich innym. Ponieważ bilety mogą 2 Ang. discretionary access control, czyli właśnie uznaniowe kontrolowanie dostępu — przyp. tłum. Poleć książkęKup książkę 4.3. UZNANIOWE KONTROLOWANIE DOSTĘPU 159 Rysunek 4.2. Przykłady struktur kontrolowania dostępu być rozsiane w systemie, stanowią większy problem bezpieczeństwa niż listy kontroli dostępu. Należy chronić i zapewnić (co zwykle należy do obowiązków systemu opera- cyjnego) nienaruszalność biletu. W szczególności bilety muszą być nie do podrobienia. Jednym ze sposobów, aby to osiągnąć, jest przechowywanie przez system wszystkich biletów w imieniu użytkowników. Te bilety powinny być przechowywane w rejonie pamięci niedostępnym dla użytkowników. Inna możliwość polega na dołączeniu niefał- szowalnego żetonu do uprawnień zapisanych w bilecie. Może nim być wielkie losowe Poleć książkęKup książkę 160 ROZDZIAŁ 4. KONTROLOWANIE DOSTĘPU hasło lub kryptograficzny kod uwierzytelniający komunikatu. Ta wartość jest weryfiko- wana według odpowiedniego zasobu przy każdym żądaniu dostępu. Taka postać biletu uprawnień nadaje się do użytku w środowisku rozproszonym, gdy nie można zagwa- rantować bezpieczeństwa jego zawartości. Wygodne i niewygodne cechy biletów uprawnień mają się odwrotnie do cech list ACL. Łatwo jest ustalić zbiór praw dostępu przysługujących użytkownikowi, lecz znacznie trudniej jest ustalić listę użytkowników mających określone prawa dostępu do określo- nego zasobu. [SAND94] proponuje strukturę danych, która nie jest rzadka jak macierz dostępów, lecz jest wygodniejsza zarówno od list ACL, jak i od list uprawnień (tabela 4.2). Tabela upoważnień (ang. authorization table) zawiera po jednym wierszu na jedno prawo dostępu jednego podmiotu do jednego zasobu. Sortowanie lub sięganie do tabeli według pod- miotów jest równoważne liście uprawnień. Sortowanie lub dostęp do tabeli według obiektów jest równoważne ACL. W relacyjnej bazie danych można łatwo zrealizować tabelę upoważ- nień tego typu. Tabela 4.2. Tabela upoważnień do plików z rysunku 4.2 Podmiot A A A A A A B B B B B B C C C C C C Tryb dostępu Własny Czytanie Pisanie Własny Czytanie Pisanie Czytanie Własny Czytanie Pisanie Pisanie Czytanie Czytanie Pisanie Czytanie Własny Czytanie Pisanie Obiekt Plik 1 Plik 1 Plik 1 Plik 3 Plik 3 Plik 3 Plik 1 Plik 2 Plik 2 Plik 2 Plik 3 Plik 4 Plik 1 Plik 1 Plik 2 Plik 4 Plik 4 Plik 4 Poleć książkęKup książkę 4.3. UZNANIOWE KONTROLOWANIE DOSTĘPU 161 Model kontrolowania dostępu W tym punkcie wprowadzamy ogólny model polityki DAC, opracowany przez Lampsona, Grahama i Denninga [LAMP71, GRAH72, DENN71]. Model ten zakłada istnienie zbioru podmiotów, zbioru obiektów i zbioru reguł rządzących dostępem podmiotów do obiektów. Zdefiniujmy stan ochrony systemu jako zbiór informacji w danej chwili określających prawa dostępu każdego podmiotu do każdego obiektu. Możemy wyróżnić trzy wyma- gania: reprezentowanie stanu ochrony, wymuszanie praw dostępu i zezwalanie pod- miotom na zmienianie stanu ochrony w pewien sposób. Model uwzględnia wszystkie trzy wymagania, dając ogólny opis logiczny systemu DAC. W celu reprezentowania stanu ochrony rozszerzamy przestrzeń obiektów w macierzy dostępów o następujące elementy:  Procesy. Prawa dostępu obejmują zdolność usuwania procesu, jego wstrzymywania (blokowania) i budzenia.  Urządzenia. Prawa dostępu obejmują zdolność czytania lub zapisywania urządze- nia, kontrolowanie jego działania (np. wyszukiwania na dysku) oraz blokowania lub odblokowywania urządzenia w związku z jego użyciem.  Komórki lub obszary pamięci. Prawa dostępu obejmują zdolność czytania lub zapi- sywania pewnych chronionych komórek lub regionów pamięci, do których dostęp jest domyślnie zabroniony.  Podmioty. Prawa dostępu dotyczące podmiotu odnoszą się do możliwości udzielania lub odbierania praw dostępu danego podmiotu innym obiektom (podmiotom), co wyjaśniono dalej. Na rysunku 4.3 przedstawiono przykład. Każdy wpis A [S, X] macierzy dostępów A zawiera napisy, zwane atrybutami dostępu, które określają prawa dostępu podmiotu S do obiektu X. Na rysunku 4.3 podmiot S1 może na przykład czytać plik F1, ponieważ w pozycji A [S1, X1] widnieje atrybut czytaj. Z logicznego lub funkcjonalnego punktu widzenia z każdym typem obiektu jest skoja- rzony osobny moduł kontrolowania dostępu (zob. rysunek 4.4). Moduł taki ocenia zamó- wiony przez podmiot dostęp do obiektu, sprawdzając, czy dane prawo dostępu istnieje. Próba dostępu powoduje wykonanie następujących kroków: 1. Podmiot S0 wydaje żądanie typu α pod adresem obiektu X. 2. Żądanie to powoduje wygenerowanie przez system (system operacyjny lub jakiś moduł interfejsu kontroli dostępu) komunikatu postaci (S0, α, X) dla kontrolera X. 3. Kontroler zagląda do macierzy A, żeby sprawdzić, czy α występuje w A [S0, X]. Jeżeli tak, dostęp zostaje udzielony, w przeciwnym razie następuje odmowa dostępu i naruszenie ochrony. Owo naruszenie powinno spowodować ostrzeżenie i odpowiednie działanie. Poleć książkęKup książkę 162 ROZDZIAŁ 4. KONTROLOWANIE DOSTĘPU Rysunek 4.3. Poszerzona macierz kontroli dostępu Rysunek 4.4. Organizacja funkcji kontroli dostępu Poleć książkęKup książkę 4.3. UZNANIOWE KONTROLOWANIE DOSTĘPU 163 Na rysunku 4.4 zasugerowano, że każdy dostęp podmiotu do obiektu jest negocjowany z kontrolerem tego obiektu, a decyzja kontrolera opiera się na aktualnej zawartości macierzy dostępów. Ponadto niektóre podmioty są uprawnione do wykonywania określonych zmian w macierzy dostępów. Żądanie modyfikacji macierzy dostępów jest traktowane jako dostęp do tej macierzy, a poszczególne jej wpisy są traktowane jak obiekty. Dostępy tego rodzaju są negocjowane z kontrolerem macierzy dostępów, który sprawuje nadzór nad jej uak- tualnieniami. Model zawiera również zbiór reguł rządzących modyfikowaniem macierzy dostępów, co pokazano w tabeli 4.3. Na tę okoliczność wprowadzamy prawa dostępu właściciel i kontrola oraz pojęcie znacznika kopiowania, wyjaśnione w następnych akapitach. Tabela 4.3. Polecenia systemu kontrolowania dostępu udziel S prawa do X zapamiętaj w A [S, X] Polecenie (wydawane przez S0) Upoważnienie „α*” w A [S0, X] przekaż S prawa do X    *     *        usuń α z S, X w  czytaj S, X utwórz obiekt X „właściciel” w A [S0, X] „kontrola” w A [S0, S] lub „właściciel” w A [S0, X] „kontrola” w A [S0, S] lub „właściciel” w A [S0, X] Nic Reguła R1 R2 R3 R4 R5 R6 R7 R8 zapamiętaj w A [S, X] Operacja *        *        usuń α z A [S, X] kopiuj A [S, X] do w dodaj kolumnę obiektu X do A; zapamiętaj prawo „właściciel” w A [S0, X] usuń kolumnę X z A dodaj wiersz S do A; wykonaj utwórz obiekt S; zapamiętaj prawo „kontrola” w A [S, S] usuń wiersz S z A; wykonaj usuń obiekt S zlikwiduj obiekt X utwórz podmiot S „właściciel” w A [S0, X] Nic zlikwiduj podmiot S „właściciel” w A [S0, S] Pierwsze trzy reguły dotyczą przekazywania, udzielania i usuwania praw dostępu. Przypuśćmy, że w A [S0, X] istnieje wpis α*. Oznacza to, że S0 ma prawo dostępu α do obiektu X i — z uwagi na obecność znacznika kopiowania — może przekazać to prawo wraz ze znacznikiem kopiowania, lub bez niego, innemu podmiotowi. Zdolność tę wyraża reguła R1. Podmiot mógłby przekazać prawo dostępu bez znacznika kopiowania na wypadek, gdyby zachodziła obawa, że nowy podmiot może złośliwie przekazać dane prawo innemu podmiotowi, który nie powinien go posiadać. Na przykład S1 może umieścić prawo czytanie lub czytanie* w dowolnej pozycji kolumny F1 macierzy. Reguła R2 głosi, że jeśli S0 jest mianowany właścicielem obiektu X, to S0 może udzielić prawa dostępu do tego obiektu dowolnemu innemu podmiotowi. Reguła R2 głosi, że S0 może dodać Poleć książkęKup książkę 164 ROZDZIAŁ 4. KONTROLOWANIE DOSTĘPU dowolne prawo dostępu do A [S, X] dowolnemu S, jeśli S0 ma dostęp właściciela do X. Reguła R3 pozwala podmiotowi S0 usunąć dowolne prawo dostępu z dowolnej pozycji macierzy w wierszu, w którym S0 kontroluje dany podmiot, i z dowolnej pozycji macierzy w kolumnie, w której S0 jest właścicielem obiektu. Reguła R4 pozwala podmiotowi czy- tać tę część macierzy, której jest właścicielem lub nad którą sprawuje kontrolę. Pozostałe reguły w tabeli 4.3 rządzą tworzeniem i usuwaniem podmiotów i obiektów. Reguła R5 głosi, że dowolny podmiot może utworzyć nowy obiekt, stając się jego wła- ścicielem, a potem może udzielać do niego dostępu oraz go cofać. Na mocy reguły R6 właściciel obiektu może zlikwidować obiekt, co spowoduje usunięcie odpowiedniej kolumny macierzy dostępów. Reguła R7 umożliwia dowolnemu podmiotowi utworzenie nowego podmiotu; twórca staje się właścicielem nowego podmiotu, a nowy podmiot ma kontrolę dostępu do samego siebie. Reguła R8 pozwala właścicielowi podmiotu na usunięcie z macierzy dostępów wiersza i kolumny (jeśli istnieją kolumny podmiotu) wskazanych przez ten podmiot. Zbiór reguł w tabeli 4.3 jest przykładem reguł, które można zdefiniować w systemie kontrolowania dostępu. Poniżej podano przykłady dodatkowych lub alternatywnych reguł, które można by dołączyć. Można zdefiniować prawo przeniesienia (ang. transfer-only), które powodowałoby przekazanie prawa docelowemu podmiotowi z jednoczesnym ode- braniem go podmiotowi przekazującemu. Liczbę właścicieli obiektu lub podmiotu można ograniczyć do jednego przez niedopuszczenie, aby znacznik kopiowania towarzyszył prawu właściciela. Zdolności podmiotu do tworzenia innego podmiotu i posiadania prawa właściciel do tego podmiotu można użyć do zdefiniowania hierarchii podmiotów. Na przykład na rysunku 4.3 S1 jest właścicielem S2 i S3, więc S2 i S3 podlegają S1. Na mocy reguł z tabeli 15.1 S1 może przyznawać i cofać podmiotowi S2 prawa dostępu, które sam już posiada. Podmiot może więc utworzyć inny podmiot z podzbiorem własnych praw dostępu. Może to być użyteczne, gdy na przykład podmiot wywołuje aplikację, której nie w pełni ufa, i nie chce, aby ta aplikacja mogła przekazać prawa dostępu innym podmiotom. Domeny ochrony Omówiony przez nas model macierzy kontroli dostępów kojarzy jak na razie zbiór zdolności z użytkownikiem. Ogólniejszym i bardziej elastycznym podejściem zaproponowanym w [LAMP71] jest skojarzenie zdolności z domenami ochrony. Domena ochrony (ang. protection domain) jest zbiorem obiektów wraz z przysługującymi do nich prawami dostępu. W kategoriach macierzy dostępów domenę ochrony definiuje wiersz macierzy. Do tej pory zrównywaliśmy każdy wiersz z konkretnym użytkownikiem. Wobec tego w tak ogra- niczonym modelu każdy użytkownik ma domenę ochrony, a wszystkie utworzone przez niego procesy mają prawa dostępu zdefiniowane przez tę samą domenę ochrony. Ogólniejsze pojmowanie domeny ochrony daje więcej elastyczności. Na przykład użyt- kownik może tworzyć procesy z podzbiorem swoich praw dostępu zdefiniowanym jako nowa domena ochrony. Ogranicza to zdolności procesu. Taki schemat można by zasto- Poleć książkęKup książkę 4.4. PRZYKŁAD: KONTROLOWANIE DOSTĘPU W UNIKSOWYM SYSTEMIE PLIKÓW 165 sować w procesie serwera do tworzenia procesów dla różnych klas użytkowników. Użyt- kownik mógłby również zdefiniować domenę ochrony w odniesieniu do programu, do którego nie ma pełnego zaufania, więc jego dostępy zostałyby ograniczone do bezpiecz- nego podzbioru praw dostępu użytkownika. Związek między procesem a domeną może być statyczny lub dynamiczny. Na przykład proces może wykonywać ciąg procedur i wymagać w każdej procedurze różnych praw dostępu, takich jak czytanie lub zapisywanie pliku. Ogólnie biorąc, chcielibyśmy mini- malizować prawa dostępu posiadane przez dowolnego użytkownika lub proces w danym czasie. Zastosowanie domen ochrony stanowi prosty środek spełnienia tego postulatu. Jedna z form domeny ochrony wiąże się z dokonywanym w wielu systemach opera- cyjnych, na przykład w systemie UNIX, rozróżnianiem między użytkownikiem a jądrem. Program użytkownika pracuje w trybie użytkownika (ang. user mode), w którym pewne obszary pamięci są chronione przed wykorzystaniem przez użytkownika, a pewne instruk- cje nie mogą być wykonane. Gdy proces użytkownika wywołuje procedurę systemową, jest ona wykonywana w trybie systemu, lub — jak to się zwykło nazywać — w trybie jądra (ang. kernel mode), w którym instrukcje uprzywilejowane mogą być wykonywane, a dostęp do chronionych obszarów pamięci jest dozwolony. 4.4. PRZYKŁAD: KONTROLOWANIE DOSTĘPU W UNIKSOWYM SYSTEMIE PLIKÓW Nasze omówienie kontrolowania dostępu do plików w systemie UNIX rozpoczniemy od wprowadzenia kilku podstawowych pojęć związanych z uniksowymi plikami i katalogami. Wszystkie typy plików w UNIX-ie są administrowane przez system operacyjny za pomocą i-węzłów. I-węzeł (węzeł indeksowy, ang. inode)3 jest strukturą sterowania zawie- rającą kluczowe informacje potrzebne systemowi operacyjnemu w związku z danym plikiem. Z jednym i-węzłem można związać kilka nazw plików, lecz aktywny i-węzeł jest skojarzony tylko z jednym plikiem i każdy plik jest kontrolowany z użyciem tylko jednego i-węzła. W i-węźle są przechowywane atrybuty pliku oraz związane z nim prawa dostępu i inne informacje sterujące. Na dysku znajduje się tablica i-węzłów (lub lista i-węzłów), która zawiera i-węzły wszystkich plików w systemie plików. Gdy plik jest otwierany, jego i-węzeł jest sprowadzany do pamięci głównej i zapamiętywany w tablicy i-węzłów rezy- dującej w pamięci. Katalogi tworzą strukturę hierarchicznego drzewa4. Każdy katalog (ang. directory) może zawierać pliki i (lub) inne katalogi. Katalog zawarty w innym katalogu nazywa się podkatalogiem (ang. subdirectory). Katalog jest po prostu plikiem, który zawiera wykaz nazw plików oraz wskaźniki do skojarzonych z nimi i-węzłów. Zatem z każdym katalo- giem jest skojarzony jego własny i-węzeł. 3 Wyraz pisany też z łącznikiem: i-node; inna nazwa polska: węzeł indeksujący — przyp. tłum. 4 W oryginale: hierarchical tree — przyp. tłum. Poleć książkęKup książkę 166 ROZDZIAŁ 4. KONTROLOWANIE DOSTĘPU Tradycyjne kontrolowanie dostępu do plików w UNIX-ie Większość systemów UNIX zależy od schematu kontrolowania dostępu wprowadzonego we wczesnych wersjach UNIX-a lub przynajmniej się na nim opiera. Każdy użytkownik UNIX-a ma przypisany jednoznaczny numer identyfikacyjny użytkownika (ID użyt- kownika). Użytkownik jest również członkiem podstawowej grupy i być może kilku innych grup, z których każda ma ID grupy. Tworzony plik staje się własnością konkretnego użytkownika i zostaje oznaczony jego identyfikatorem. Należy on także do specyficznej grupy, która początkowo jest podstawową grupą jego twórcy lub grupą katalogu jego przodka, jeśli ten katalog ma ustawione pozwolenie SetGID. Z każdym plikiem jest skoja- rzony zbiór 12 bitów ochrony. ID użytkownika, ID grupy oraz bity ochrony są częścią i-węzła pliku. Dziewięć bitów ochrony określa prawa czytania, pisania i wykonywania przysługujące właścicielowi pliku, innym członkom grupy, do której ten plik należy, i wszystkim pozo- stałym użytkownikom. Tworzy to hierarchię złożoną z właściciela, grupy i wszystkich innych, w ramach której są używane najbardziej niezbędne zbiory praw. Na rysunku 4.5a pokazano przykład, w którym właściciel pliku ma dostęp do czytania i pisania. Wszyscy inni członkowie grupy mającej do czynienia z danym plikiem mają dostęp do czytania go, a użytkownicy spoza tej grupy nie mają do niego żadnych praw. W odniesieniu do katalogu bity czytania i pisania udzielają prawa do wyprowadzania jego zawartości („listowania”) i do tworzenia, przemianowywania albo usuwania plików w danym katalogu5. Bit wyko- nywania udziela prawa do schodzenia w głąb katalogu lub wyszukiwania nazwy pliku. Pozostałe trzy bity określają specjalne, dodatkowe zachowanie w odniesieniu do plików lub katalogów. Dwa z nich są pozwoleniami „ustawienia ID użytkownika” (ang. „set user ID” — SetUID) oraz „ustawienia ID grupy” (ang. „set group ID” — SetGID). Jeśli bity te są ustawione w odniesieniu do pliku wykonywalnego, to system operacyjny działa następująco. Gdy użytkownik (mający przywilej wykonywania tego pliku) wykonuje plik, system czasowo przydziela mu, prócz jego własnych, prawa przysługujące ID użytkownika będącego twórcą pliku lub — odpowiednio — grupy pliku. Są one znane jako „efektywny ID użytkownika” i „efektywny ID grupy” i są stosowane w uzupełnieniu „rzeczywistego ID użytkownika” i „rzeczywistego ID grupy” użytkownika wykonującego program pod- czas podejmowania decyzji dotyczącej kontroli praw dostępu do tego programu. Ta zmiana obowiązuje tylko przez czas działania programu. Właściwość ta umożliwia tworzenie i wykorzystywanie programów uprzywilejowanych, które mogą używać plików normal- nie niedostępnych dla innych użytkowników, i pozwala użytkownikom na dostęp do pewnych plików w kontrolowany sposób. Alternatywnie, w przypadku zastosowania do katalogu, pozwolenie SetGID wskazuje, że nowo utworzone pliki będą dziedziczyły grupę tego katalogu. Pozwolenie SetUID jest ignorowane. 5 Zauważmy, że pozwolenia odnoszące się do katalogu różnią się od odnoszących się do dowol- nego pliku lub zawartego w nim katalogu. Fakt, że użytkownik ma prawo do pisania w katalogu, nie daje mu prawa do zapisywania pliku odnotowanego w tym katalogu. Tym drugim rządzą pozwolenia dotyczące konkretnego pliku. Użytkownik mógłby jednak mieć prawo przemianowywania pliku. Poleć książkęKup książkę 4.4. PRZYKŁAD: KONTROLOWANIE DOSTĘPU W UNIKSOWYM SYSTEMIE PLIKÓW 167 Rysunek 4.5. Kontrolowanie dostępu do pliku w UNIX-ie Ostatnim bitem pozwoleń jest „bit przylepności” (ang. „sticky” bit). Ustawiony dla pliku pierwotnie wskazywał, że system powinien zachować treść pliku w pamięci po jego wyko- naniu. Tego już się nie używa. Jednak zastosowany do katalogu określa, że tylko właściciel każdego pliku w danym katalogu może ten plik przemianować, przemieścić lub usunąć. Jest to przydatne do administrowania plikami we wspólnych katalogach tymczasowych. Jeden szczególny identyfikator użytkownika oznacza superużytkownika (ang. super- user). Superużytkownik jest wolny od zwykłych ograniczeń kontroli dostępu do plików i ma dostęp ogólnosystemowy. Dowolny program będący własnością „superużytkownika” i mający ustawiony jego SetUID potencjalnie daje nieograniczony dostęp do systemu każdemu wykonującemu go użytkownikowi. Dlatego do pisania takich programów należy się odnosić z wielką ostrożnością. Ten schemat dostępu jest odpowiedni, gdy wymagania dostępu do plików pokrywają się z użytkownikami i niewielką liczbą grup użytkowników. Załóżmy na przykład, że użyt- kownik chce dać dostęp do czytania pliku X użytkownikom A i B oraz dostęp do czytania Poleć książkęKup książkę 168 ROZDZIAŁ 4. KONTROLOWANIE DOSTĘPU pliku Y użytkownikom B i C. Potrzebowalibyśmy co najmniej dwu grup użytkowni- ków, a użytkownik B musiałby należeć do obu grup, aby mieć dostęp do obu plików. Gdyby jednak istniała duża liczba różnych zgrupowań użytkowników potrzebujących wyboru praw dostępu do różnych plików, wówczas, aby temu sprostać, należałoby utworzyć bardzo dużo grup. Szybko staje się to nieporęczne i trudne w obsłudze — nawet gdyby w ogóle było możliwe6. Jednym ze sposobów pokonania tego problemu jest użycie list kontroli dostępu, występujących w większości współczesnych systemów uniksowych. Ostatnie, co należałoby odnotować, to implementowanie przez tradycyjny schemat kontrolowania dostępu do plików w UNIX-ie prostej struktury domen ochrony. Domena jest skojarzona z użytkownikiem, a przełączanie domen odpowiada czasowej zmianie identyfikatora użytkownika. Listy kontroli dostępu w UNIX-ie Wiele współczesnych systemów UNIX i systemów operacyjnych opartych na UNIX-ie, w tym systemy takie jak FreeBSD, OpenBSD, Linux i Solaris, realizuje listy kontroli dostępu (ang. access control lists — ACLs). W tym punkcie opisujemy podejście zasto- sowane w systemie FreeBSD, lecz inne implementacje mają zasadniczo te same własności i interfejs. Własność tę określa się jako rozszerzoną listę kontroli dostępu, natomiast trady- cyjne podejście uniksowe nosi miano minimalnej listy kontroli dostępu. FreeBSD umożliwia administratorowi przypisanie do pliku listy identyfikatorów użyt- kowników i grup UNIX-a za pomocą polecenia setfacl. Z plikiem można skojarzyć dowolną liczbę użytkowników i grup, wszyscy oni mają po trzy bity ochrony (czytanie, pisanie, wykonywanie), co stanowi elastyczny mechanizm przypisywania praw dostępu. Plik nie musi mieć listy ACL, może być chroniony wyłącznie przez konwencjonalny unik- sowy mechanizm dostępu do plików. Pliki FreeBSD zawierają dodatkowy bit ochrony, który wskazuje, czy plik ma rozszerzoną listę ACL. FreeBSD i większość implementacji UNIX-a, w których występują rozszerzone listy ACL, stosują następującą strategię (zob. np. rysunek 4.5b): 1. Wpisy klasy Właściciel i klasy Inny w 9-bitowym polu pozwoleń mają to samo zna- czenie, jakie mają w przypadku minimalnej listy ACL. 2. Wpis klasy Grupa określa pozwolenia grupy właścicielskiej w odniesieniu do danego pliku. Te pozwolenia reprezentują maksimum praw, które można nadać nazwanym użytkownikom lub nazwanym grupom innym niż użytkownik-właściciel. W tej ostat- niej roli wpis klasy Grupa działa jak maska. 3. Z plikiem można skojarzyć dodatkowych nazwanych użytkowników i nazwane grupy — każdego i każdą z 3-bitowym polem pozwoleń. Pozwolenia wymienione dla nazwa- 6 Większość systemów uniksowych wprowadza limit maksymalnej liczby grup, do których może należeć użytkownik, a także ograniczenie ogólnej liczby grup dopuszczalnych w systemie. Poleć książkęKup książkę 4.5. KONTROLOWANIE DOSTĘPU WEDŁUG RÓL 169 nych użytkowników i nazwanych grup są porównywane z polem maski. Dowolne prawo dotyczące nazwanego użytkownika lub nazwanej grupy, które nie występuje w polu maski, jest zakazane. Gdy proces żąda dostępu do obiektu systemu plików, są wykonywane dwa kroki. W pierwszym wybiera się wpis listy ACL, który najlepiej pasuje do żądającego procesu. Wpisy ACL są przeglądane w następującym porządku: właściciel, nazwani użytkownicy, (właścicielskie lub nazwane) grupy i inni. Tylko jeden wpis określa dostęp. W drugim kroku sprawdza się, czy dopasowany wpis zawiera wystarczające pozwolenia. Proces może należeć do więcej niż jednej grupy, więc może być więcej niż jeden pasujący wpis grupy. Jeśli któryś z tych pasujących wpisów grup zawiera żądane pozwolenia, wybiera się właśnie ten (wynik jest ten sam, niezależnie od tego, który wpis zostanie wybrany). Jeśli żaden z dopasowanych wpisów nie zawiera żądanych pozwoleń, nastąpi odmowa dostępu, niezależnie od tego, który wpis został wybrany. 4.5. KONTROLOWANIE DOSTĘPU WEDŁUG RÓL Tradycyjne systemy DAC definiują prawa dostępu poszczególnych użytkowników i grup użytkowników. Natomiast RBAC opiera się na rolach, które użytkownicy przyjmują w systemie, a nie na tożsamości użytkownika. Modele RBAC definiują zazwyczaj rolę jako stanowisko pracy w jakimś przedsiębiorstwie (instytucji). Systemy RBAC przypisują prawa dostępu do ról zamiast do poszczególnych użytkowników. W rezultacie użyt- kownicy są przypisywani do różnych ról statycznie albo dynamicznie, stosownie do ich obowiązków. RBAC cieszy się obecnie szerokimi zastosowaniami handlowymi i pozostaje obsza- rem aktywnych badań. National Institute of Standards and Technology (NIST)7 wydał we wrześniu 2009 roku standard FIPS PUB 140-3 zatytułowany Security Requirements for Cryptographic Modules (z ang. „Wymagania bezpieczeństwa dotyczące modułów kryptograficznych”), w którym wymaga się zaplecza kontrolowania dostępu i admini- strowania na zasadzie ról. Zależność między użytkownikami i rolami jest typu wielu na wiele, podobnie jak zależ- ność między rolami i zasobami, czyli obiektami systemu (zob. rysunek 4.6). Zbiór zmian użytkowników — w niektórych środowiskach częstych — i przypisanie użytkownika do jednej lub większej liczby ról mogą również być dynamiczne. Zbiór ról systemowych w większości środowisk jest jednak raczej statyczny, ich dodawanie lub usuwanie jest tylko okazjonalne. Każda rola ma określone prawa dostępu do jednego lub większej liczby zasobów. Zbiór zasobów i specyficznych praw dostępu związanych z konkretną rolą również będzie się zmieniał niezbyt często. 7 Krajowy Instytut Standardów i Technologii amerykańskiego Ministerstwa Handlu — przyp. tłum. Poleć książkęKup książkę 170 ROZDZIAŁ 4. KONTROLOWANIE DOSTĘPU Rysunek 4.6. Użytkownicy, role i zasoby Do prostego przedstawienia podstawowych elementów systemu RBAC możemy użyć macierzy kontroli dostępów, jak pokazano na rysunku 4.7. Górna macierz wiąże poszcze- gólnych użytkowników z rolami. Zwykle użytkowników jest znacznie więcej niż ról. Każdy wpis macierzy jest albo pusty, albo zaznaczony — w drugim przypadku znamio- nuje to przypisanie użytkownika do roli. Zauważmy, że jeden użytkownik może być przypisany do wielu ról (więcej niż jedno zaznaczenie w wierszu) i wielu użytkownikom może być przypisana jedna rola (więcej niż jedno zaznaczenie w kolumnie). Dolna macierz ma tę samą strukturę co macierz DAC — z rolami w funkcji podmiotów. Zwykle jest mało ról i wiele obiektów, czyli zasobów. W pozycjach tej macierzy występują konkretne prawa dostępu przypisane rolom. Zauważmy, że rolę można traktować jak obiekt, co umożliwia definiowanie hierarchii ról. Poleć książkęKup książkę 4.5. KONTROLOWANIE DOSTĘPU WEDŁUG RÓL 171 Rysunek 4.7. Reprezentacja RBAC (kontroli dostępu według ról) za pomocą macierzy kontroli dostępów RBAC nadaje się do efektywnej implementacji zasady najmniejszych przywilejów, omó- wionej w rozdziale 1. Każda rola powinna skupiać minimalny zbiór praw dostępu wymaga- nych w danej roli. Użytkownikowi przypisanemu do roli wolno wykonywać tylko to, co jest w związku z nią wymagane. Wielu użytkowników przypisanych do tej samej roli rozporządza tym samym, minimalnym zbiorem praw dostępu. Poleć książkęKup książkę 172 ROZDZIAŁ 4. KONTROLOWANIE DOSTĘPU Modele wzorcowe RBAC Do ogólnej metody RBAC można dołączyć rozmaite funkcje i usługi. Aby wyjaśnić różne aspekty RBAC, warto zdefiniować zbiór abstrakcyjnych modeli funkcjonalności RBAC. [SAND96] określa rodzinę modeli wzorcowych, które posłużyły jako baza do dalszych prac standaryzacyjnych. Rodzina ta składa się z czterech powiązanych ze sobą modeli, jak to uwidoczniono na rysunku 4.8a i w tabeli 4.4. RBAC0 zawiera minimum funkcji systemu RBAC. RBAC1 zawiera funkcje RBAC0, a ponadto hierarchie ról, co umożliwia dziedziczenie przez jedną rolę pozwoleń przysługujących innej roli. RBAC2 zawiera RBAC0 i dodaje ograniczenia sposobów, za pomocą których komponenty systemu RBAC mogą być konfigurowane. Funkcjonalność RBAC3 obejmuje funkcje RBAC0, RBAC1 i RBAC2. Rysunek 4.8. Rodzina modeli kontrolowania dostępu według ról (RBAC). RBAC0 stanowi minimalne wymagania dla systemu RBAC. RBAC1 dodaje hierarchie ról. RBAC2 dodaje ograniczenia. RBAC3 zawiera RBAC1 i RBAC2 Poleć książkęKup książkę 4.5. KONTROLOWANIE DOSTĘPU WEDŁUG RÓL 173 Tabela 4.4. Zakres modeli RBAC Modele RBAC0 RBAC1 RBAC2 RBAC3 Hierarchie Nie Tak Nie Tak Ograniczenia Nie Nie Tak Tak MODEL PODSTAWOWY — RBAC0 Rysunek 4.8b, bez hierarchii ról i ograniczeń, zawiera cztery typy jednostek w systemie RBAC0:  Użytkownik. Osoba mająca dostęp do danego systemu komputerowego. Każda osoba ma przydzielony ID użytkownika.  Rola. Nazwane stanowisko pracy w ramach organizacji (instytucji lub przedsiębior- stwa8) mającej pod swoją opieką dany system komputerowy. Na ogół z każdą rolą jest skojarzony opis zakresu wynikających z niej uprawnień i odpowiedzialności, doty- czący każdego użytkownika wcielającego się w tę rolę.  Pozwolenie (ang. permission). Zgoda na określony tryb dostępu do jednego lub większej liczby obiektów. Równoważnymi terminami są: prawo dostępu, przywilej i upoważnienie.  Sesja. Odwzorowanie między użytkownikiem i uaktywnionym
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Bezpieczeństwo systemów informatycznych. Zasady i praktyka. Wydanie IV. Tom 1
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: