analiza i ocena jakości współczesnych systemów operacyjnych
DESCRIPTION
Moja praca inżynierska - prezentacjaTRANSCRIPT
POLITECHNIKA LUBELSKA
Wydział Elektrotechniki i InformatykiKierunek Informatyka
Lublin, 2010
Dyplomant : Daniel Cisek
Promotor :prof. dr hab. inż. Włodzimierz Garbarczuk
System operacyjny jako interfejs pomiędzy maszyną a człowiekiem
W celu uruchamiania i kontroli zadań użytkownika system operacyjny zajmuje się:
• planowaniem oraz przydziałem czasu procesora poszczególnym zadaniom,
• kontrolą i przydziałem pamięci operacyjnej dla uruchomionych zadań,
• dostarcza mechanizmy do synchronizacji zadań i komunikacji pomiędzy zadaniami,
• obsługuje sprzęt oraz zapewnienia równolegle wykonywanym zadaniom jednolity, wolny od interferencji dostęp do sprzętu.
System operacyjny (ang. skrót OS Operating System) – oprogramowanie zarządzające sprzętem komputerowym, tworzące środowisko do uruchamiania i kontroli zadań użytkownika.
Cel i zakres mojej pracy
Zakres pracy :
Najpopularniejsze współczesne systemy operacyjne stosowane w komputerach osobistych. Skupienie się na obecnie używanych systemach Microsoft Windows, najpopularniejszych dystrybucjach opartych na jądrze Linuksa, a także na systemie Mac OS X - przeznaczonego dla komputerów Macintosh firmy Apple.
Rys. Statystyki pokazujące korzystanie z najbardziej popularnych systemów operacyjnych w listopadzie 2009 roku. Informacje pochodzą z ciągów identyfikacyjnych przeglądarek internetowych.
Celem pracy jest krytyczna analiza i ocena realizacji technologii bezpieczeństwa we współczesnych systemach operacyjnych komputerów osobistych.
Zdecydowałem się podjąć ten temat pracy, czyli analiza i ocena jakości współczesnych systemów operacyjnych, ponieważ związane jest to z moimi zainteresowaniami różnymi systemami operacyjnymi. Poznawaniem innych alternatywnych systemów operacyjnych w stosunku do najpopularniejszych systemów z rodziny Windows firmy Microsoft.
Porównanie jakości różnych systemów operacyjnych jest częstym tematem w dyskusjach pomiędzy ich użytkownikami. Dodatkowo problematyka objęta tematem pracy i bezpieczeństwa są zagadnieniami zawsze aktualnymi i ma znaczenie dla każdego użytkownika komputera.
Cel pracy
Analiza realizacji technologii bezpieczeństwa w systemach operacyjnych
Bezpieczeństwo systemów operacyjnych od dawna jest priorytetem ze względu na szczególnie wrażliwe dane znajdujące się na komputerach, zarówno o charakterze komercyjnym, wojskowym i prywatnym.
Przełamanie istniejących w systemie operacyjnym mechanizmów zabezpieczeń prowadzi do możliwości uzyskania kluczowych informacji, najczęściej przechowywanych i przetwarzanych przez różnorodne aplikacje i użytkowników. Dlatego tak ważne i nieodzowne jest zapewnienie przez system operacyjny najwyższego poziomu bezpieczeństwa.
Bezpieczeństwo było od wielu lat tą cechą systemów Windows, która powodowała pojawienie się ożywionych debat. Po części z uwagi na rozpowszechnienie systemów Windows. Istnieje około 2 000 000 razy więcej szkodliwego oprogramowania niż dla innych systemów, takich jak GNU/Linux, Unix, Mac OS X, czy FreeBSD. Głównym celem ataków był i nadal jest Windows. Powodem okazuje się duża popularność systemu operacyjnego Microsoftu, dzięki której stworzone złośliwe oprogramowanie przez zdolnego hakera może zainfekować znaczną liczbę podłączonych do Internetu komputerów. Z kolei groźne oprogramowanie dla Linuksa i Mac OS X jest znikoma ilość. Błędem byłoby jednak wyciąganie z tego pochopnych wniosków dotyczących bezpieczeństwa użytkowników innych systemów niż najpopularniejsza obecnie „rodzina“ systemów Windows firmy Microsoft.
Ocena jakości systemów operacyjnych
Standardy i normy
Standaryzacja bezpieczeństwa systemów informatycznych wynika z rozwoju, popularności i znaczenia tych systemów. Wymogi dotyczące bezpieczeństwa stanowią obecnie podstawowy cel projektantów i producentów. Możliwość oceny bezpieczeństwa systemów informatycznych i teleinformatycznych według ustalonych standardów ułatwia życie producentom i użytkownikom. Rosnące zagrożenia i wymagania dotyczące bezpieczeństwa powoduje coraz większy stopień skomplikowania standardów oceny bezpieczeństwa.
Jak standaryzować bezpieczeństwo – różne problemy • Metody pomiaru poziomu bezpieczeństwa, jak wyrażać ten poziom, jak porównywać
bezpieczeństwo dwóch produktów• Możliwe zagrożenia i naruszenia bezpieczeństwa – część z nich nie jest jeszcze znana,
ale system ma być przed nimi zabezpieczony• Ujednolicenie nomenklatury i pojęć związanych z bezpieczeństwem
Można wyróżnić dwa rodzaje standardów z zakresu bezpieczeństwa teleinformatycznego
Standardy, na podstawie których można przeprowadzać certyfikacje systemów i
produktów teleinformatycznych
Cechą charakterystyczną tych standardów jest podawanie miar w postaci: – klas – w TCSEC – poziomów E0–E6 – w ITSEC– poziomów uzasadnionego zaufania EAL – w Common Criteria
Standardy stanowiące tzw. best practices, np. BS 7799, PN–I–13335–1, traktujące o tym jak powinno budować się „bezpieczne” systemy teleinformatyczne.
Najważniejsze międzynarodowe normy i standardy w zakresie oceny bezpieczeństwa teleinformatycznego
• Trusted Computer System Evaluation Criteria (TCSEC – tzw. Orange Book)
• Information Technology Security Evaluation Criteria (ITSEC)
• Evaluation Criteria for Information Technology Security – norma ISO/IEC 15408 (Common Criteria)
• Control Objectives for Information and Related Technology (COBIT) – standard ISACA (Information Systems Audit and Control Association)
• Standard brytyjski BS 7799
Evaluation Criteria for Information Technology Security – norma ISO/IEC 15408 (Common Criteria)
Common Criteria to uznany na świecie zestaw norm bezpieczeństwa, dostarczający jasnej i wiarygodnej oceny możliwości produktów IT w kwestii bezpieczeństwa. Certyfikat Common Criteria - Evaluation Assurance Levels (EAL) od 1999 roku został przyjęty jako międzynarodowa norma ISO15408 (EAL v.2).
Common Criteria udostępnia procedury pozwalające na zdefiniowanie zagrożeń oraz zabezpieczeń, które na te zagrożenia odpowiadają, a następnie przeprowadzenie formalnej weryfikacji ich faktycznego działania w produkcie.
Posiadanie cerfyfikatu CC nie gwarantuje, że produkt jest bezpieczny pod każdym względem - zapewnia jedynie o działaniu wszystkich zadeklarowanych przez producenta zabezpieczeń. Sam certyfikat niewiele, więc mówi bez profilu ochrony opisującego zastosowane zabezpieczenia.
Wynikiem procesu certyfikacji jest tak zwany "profil ochrony" (PP - protection profile), który definiuje zabezpieczenia stosowane przez produkt oraz certyfikat, potwierdzający ich faktyczną skuteczność.
Poziomy bezpieczeństwa
• Proces certyfikacji może być prowadzony według różnych poziomów szczegółowości i weryfikacji formalnej. Standard CC definiuje 7 poziomów bezpieczeństwa EAL (ang. Evaluation Assurance Level) od EAL1 (najsłabszy, tylko testy funkcjonalne) do EAL7 (najbezpieczniejszy, formalna weryfikacja projektu oraz testy).
Na niższych poziomach EAL ocena polega głównie na analizie dokumentacji, a nie technicznych aspektów produktu.
• Poszczególne poziomy mają przypisane odpowiednie wartości wymogów bezpieczeństwa odzwierciedlające szczegółowe warunki, które muszą być spełnione na danym poziomie EAL.
Wymogi bezpieczeństwa
W Common Criteria zdefiniowano 8 klas wymogów bezpieczeństwa:
• zarządzanie konfiguracją (configuration management)
• Dokumentacja (guidance documents)
• ocena podatności (vulnerability assessment)
• dostarczenie i użytkowanie (delivery and operation)
• zarządzanie cyklem życia (life cycle support)
• zapewnienie bezpieczeństwa (life cycle support)
• rozwój (development)
• testy (tests)
Przykłady poziomu EAL dla różnych systemów operacyjnych
• Microsoft Windows 2003 i Microsoft Windows XP ocena: EAL4+ ALC_FLR.3• Windows Vista Enterprise, Windows Server 2008 Standard Edition ocena: EAL4+
ALC_FLR.3• Red Hat Enterprise Linux Version 5.1 ocena: EAL4+ ALC_FLR.3• SUSE Linux Enterprise Server 10 SP1 ocena: EAL4+ ALC_FLR.3• Hewlett-Packard HP-UX 11i ocena: EAL4+• Solaris 10 Release 11/06 ocena: EAL4+ ALC_FLR.3
Rys. Systemy operacyjne plasują się na różnych poziomach klas bezpieczeństwa (według różnych standardów).
Podsumowanie i wnioski
• Nie da się zbudowac w stu procentach bezpiecznego systemu operacyjnego.
Dzieje się tak nie tylko ze względu na ryzyko wystąpienia prozaicznych usterek i błędów, ale także na trudność określenia i sformalizowania często sprzecznych oczekiwań projektanta oprogramowania, programisty, posiadacza przetwarzanych danych, czy w końcu użytkownika końcowego.
Nie jest możliwe napisanie kodu, który nie będzie posiadał jakiegokolwiek zagrożenia. To że w jakimś systemie nie znaleziono żadnego błędu krytycznego, nie oznacza że go nie odnajdzie się w przyszłości.
• Dlatego należy korzystać z dodatkowych rozwiązań ochrony sprzętowej i programowej, na przykład skanerów antywirusowych i narzędzi blokujących złośliwe oprogramowanie, co pozwoli nam skuteczniej chronić system.
• Zapewnianie bezpieczeństwa sprowadza się najczęściej do całościowego zarządzania ryzykiem : określane są potencjalne zagrożenia, szacowane prawdopodobieństwo ich wystąpienia, oceniany potencjał strat – a następnie podejmowane są kroki zapobiegawcze w zakresie, który jest racjonalny z uwagi na możliwości techniczne i względy ekonomiczne.
• Najważniejszym elementem każdego łańcucha bezpieczeństwa jest człowiek. Nawet posiadanie wiedzy o zagrożeniu nie chroni ostatecznie przed popełnianiem błędów. Twórcy złośliwego oprogramowania zdając sobie sprawę ze słabości ogniwa jakim jest człowiek wykorzystując socjotechnike. Za pomocą prostych wybiegów skłaniają właściciela systemu, aby sam go zainfekował. Poziom zabezpieczeń jest przede wszystkim uzależniony od tego, jak system został skonfigurowany, jakie środki ochrony zostały w nim zastosowane, i jak dobrze dba o niego administrator. Na to z kolei wpływ ma jego wiedza i doświadczenie.
• Na szczęście istnieją metody, by wymocnic bezpieczenstwo systemow. Budowanie ich w sposób, który ogranicza ewentualne problemy wynikające z naruszenia zabezpieczeń lub niepożądanej aktywności uprawnionego użytkownika.
Możliwie jest skuteczne zapobieganie powstawaniu usterek w oprogramowaniu i systemie zabezpieczen. Chociaż wyeliminowanie błędów zabezpieczeń w skomplikowanych systemach operacyjnych jest w praktyce niemożliwe (lub przynajmniej nieekonomiczne), zaproponowano szereg metod, które pozwalają na zredukowanie ryzyka pomyłek przy tworzeniu oprogramowania. Opracowano metody oceny bezpieczeństwa i kontrolowania zagrożeń.