OpenBSD - przykład bezpiecznego systemu.

WPROWADZENIE: Projekt OpenBSD opracowuje WOLNY od ograniczeń licencyjnych, patentów i opłat (udostępniany na licencji BSD), wieloplatformowy, oparty na źródłach 4.4BSD, Uniksowy system operacyjny. Wysiłki twórców skupiają się na przenośności, standaryzacji, usuwaniu błędów, proaktywnym bezpieczeństwie oraz zintegrowanej kryptografii. Dzięki zastosowaniu binarnej kompatybilności OpenBSD umożliwia uruchomienie większości programów skompilowanych dla systemów SVR4 (Solaris), FreeBSD, Linux, BSD/OS, SunOS oraz HP-UX.

Cel

OpenBSD wierzy w mocne bezpieczeństwo. Aspiruje do bycia NUMEREM JEDEN w przemyśle w dziedzinie bezpieczeństwa. Model rozwoju oparty na otwartym oprogramowaniu pozwala na bardziej bezkompromisowe podejście do zwiekszania bezpieczeństwa niż są to w stanie zrobić Sun, SGI, IBM, HP czy inni dostawcy. Ponieważ OpenBSD jest dostarczane razem z oprogramowaniem szyfrującym.

Pełna jawność

Tak jak wielu czytelników listy BUGTRAQ, członkowie Audytu wierzą w pełne ujawnianie problemów związanych z bezpieczeństwem. W kręgu systemów operacyjnych prawdopodobnie jako pierwsi ujęli tą koncepcje. Wielu dostawców, nawet darmowego oprogramowania, nadal próbuje ukrywać owe zagadnienia przed swymi użytkownikami.

Informacje związane z bezpieczeństwem bardzo szybko rozprzestrzeniają się w środowisku crackerów. Z drugiej strony, ich doświadczenie pokazuje, iż napisanie i wydanie odpowiedniej łatki zwykle zajmuje około godziny pracy - możliwa jest więc błyskawiczna naprawa. Dlatego uważają, że pełne ujawnienie pomaga ludziom, którym naprawdę zależy na bezpieczeństwie.

Audyt

W skład drużyny audytowej zwykle wchodzi od sześciu do dwunastu osob, które szukają i łatają dziury w zabezpieczeniach. Prowadzą oni audyt od lata 1996 roku. System, którego się trzymają, polega po prostu na dogłębnej analizie, plik po pliku, każdego istotnego komponentu oprogramowania. Nie tyle szukają dziur w bezpieczeństwie, co podstawowych błędów w kodowaniu. Praktycznie w każdej części systemu zostały znalezione usterki. Całkowicie nowe typy problemów zostały znalezione podczas audytu, czasami kod źródłowy poddany wcześniej audytowi wymagał powtórzenia audytu pod kątem nowych usterek. Kod często przechodzi przez wielokrotny audyt wykonywany przez wielu ludzi z róznymi umiejętnościami.

Niektórzy członkowie drużyny audytorskiej pracowali dla Secure Networks, firmy, która wypuściła pierwszy skaner bezpieczeństwa sieciowego o nazwie Ballista (Secure Networks zostala kupiona przez Network Associates, Balliste przemianowano na Cybercop Scanner). Firma ta wykonała wiele badań nad bezpieczeństwem i dlatego dobrze pasuje do OpenBSD. OpenBSD przeszło testy Ballisty śpiewająco już pierwszego dnia(tak twierdzą członkowie;)).

Kolejny aspekt audytu to aktywność, przeciwdziałanie. W większości przypadków zauważa się, że warunkiem naprawy nie jest ewentualna możliwość praktycznego wykorzystania usterki przez osoby trzecie. Podczas audytu znajduje się wiele błędów i stara się je naprawić, mimo, iż nie udowodniono praktycznego wykorzystania owego błedu. Łata się dziurę i szuka dalej. Poprawiono wiele prostych i oczywistych błędów powstałych w wyniku niedbałego kodowania i dopiero parę miesięcy później wychodziło na jaw, że owe błedy da się wykorzystać. (Albo, co jest bardziej prawdopodobne, ktoś na BUGTRAQ ogłosił, że inne systemy operacyjne są podatne na "nowo odkryty problem", i okazuje się, ze w OpenBSD naprawiono go w poprzednim wydaniu). W innych przypadkach OpenBSD ocalono przed pełnym, składającym się z wielu kroków atakiem, ponieważ naprawiono któryś z pośrednich kroków. Przykładem takiego sukcesu jest błąd w lpd ogłoszony przez Secure Networks.

Nagroda

Aktywne podejście do audytu zwróciło się z nawiązką. Stwierdzenia takie, jak "Ten problem został rozwiązany w OpenBSD około 6 miesięcy temu" są często spotykane na forach dotyczących bezpieczeństwa takich jak BUGTRAQ.

Najbardziej aktywna część audytu miała miejsce tuż przed wydaniem OpenBSD 2.0 i podczas przejścia 2.0->2.1, przez cztery ostatnie miesiące 1996 roku i pierwszej połowy 1997. Tysiące (tak, tysiące) zagadnień związanych z bezpieczeństwem zostało rozwiązanych w czasie tegorocznego okresu; błędy takie jak standardowe przepełnienie buforu, słabe implementacje protokołów, zbieranie informacji oraz różne systemy plików. Ponieważ większość napotkanych problemów z bezpieczeństwem zostało naprawionych przed wydaniem wersji 2.1, o wiele mniej błędów należalo naprawić w wersji 2.2. Nie znajduje się już tak wielu problemów, to po prostu zaleta nie wracania do poprzednich. Ostatnio błędy w bezpieczeństwie które znajduje się i naprawia bywają o wiele bardziej niewyraźne lub skomplikowane. Jednak będzie się nadal pracować z kilku powodów:

  • "Czasami znajdujemy prosty błąd ominięty wcześniej. Bywa!"
  • "Bezpieczeństwo jest jak wyścig zbrojeń: najlepsi napastnicy będą szukać bardziej skomplikowanych ataków, my też".
  • "Znajdowanie i naprawianie misternych usterek w skomplikowanym oprogramowaniu to dobra zabawa. Audyt jeszcze się nie skończył, więc jak widać nadal szukamy i naprawiamy nowe usterki".

    "Standardowo Bezpieczny"

    Aby upewnić się, że początkujący użytkownicy OpenBSD nie będą musieli nagle zostać ekspertami z bezpieczeństwa (takie podejście wydają się mieć inni dostawcy), dostarcza się system operacyjny w trybie Standardowo Bezpieczny. Wszystkie mniej ważne usługi są wyłączone. W trakcie zapoznawania się z systemem uzytkownik/administrator odkryje, że musi włączyć demony i inne części systemu. Podczas uczenia się sposobów uruchamiania nowej usługi, nowincjusz ma większe szanse nauczyć się brać od uwagę względy bezpieczeństwa.

    Stanowi to całkowity kontrast w stosunku do zwiększającej się ilości systemów wydawanych z NFS, mountd, serwerami web i innymi serwisami standardowo włączonymi, co powoduje natychmiastowe kłopoty z bezpieczeństwem dla ich użytkowników po pierwszej instalacji.

    Zwiększanie bezpieczeństwa demonów przy wykorzystaniu mechanizmu jail

    Jail polega na tym,że 'okraja' się pełny system OpenBSD do niezbędnych plików a następnie całość umieszcza się w jakimś katalogu, np. /home/jail i zamykamy w chroot, zaś wszyscy, którzy się zalogują do jaila, są przekonani, że widzą cały system, chociaż tak naprawdę widza tylko jego kawałek.

    Wywołanie systemowe jail zezwala administratorowi systemu na zablokowanie procesu i jego potomków wewnątrz zamkniętego otoczenia. Procesy ograniczone są pod względem wywierania wpływu na zewnątrz otoczenia, nawet jeżeli są to te uruchamiane z przywilejami superużytkownika. Wywołanie jail jest poniekąd rozszerzeniem, ale o wiele bardziej restrykcyjnym, wywołania systemowego Unixa chroot.

    Podsumowanie: Dlaczego OpenBSD?

    Projekt OpenBSD dostarcza nam darmowy, pracujący na wielu platformach sprzętowych, wielozadaniowy system operacyjny klasy UNIX. Wysiłki autorów tego systemu skupiają się przede wszystkim na dopracowniu bezpieczeństwa kodu źródłowego, standardów, przenośności oraz zintegrowanej kryptografii.

    OpenBSD wspiera binarnie programy pochodzące z wielu komercyjnych systemów takich jak SVR4, Solaris, FreeBSD, Linux, SunOS, HP-UX.

    Do zdalnego zarządzania systemem, OpenBSD posiada wbudowany protokół komunikacyjny OpenSSH wspierający standardy kodowania SSH1 I SSH2.

    OpenBSD jest tworzony przez programistów z całego swiata a fundusze na jego rozwój pozyskiwane są ze sprzedaży gadżetów oraz dotacji i darowizn składanych zarówno przez osoby indywidualne jak i organizacje.

    Kod źrodlowy OpenBSD oraz binaria są całkowicie darmowe. Wszystkie części systemu OpenBSD są objęte licencją BSD, która zezwala na użytkowanie systemu za darmo i wtórne rozpowszechnianie, właczając w to możliwość zmiany kodu źrodlowego do celów osobistych jak i komercyjnych. System OpenBSD nie posiada żadnych innych ograniczeń poza zasadami opisanymi w licencji BSD ( http://www.openbsd.org/policy.html).

    Twórcy OpenBSD postawili na silną ochronę systemu i wbudowaną kryptografię.

    Model tworzenia otwartego oprogramowania zastosowany w OpenBSD pozwala spojrzeć bardziej krytycznie na kwestie bezpieczeństwa niż mogą to zrobić twórcy komercyjnych systemów takich jak Sun czy IBM. Model ten pozwala na dokonywanie zmian, na które wiele firm komercyjnych by się nie zdecydowało.

    źrodło: www.openbsd.org

    Inne ciekawe strony dotyczace OpenBSD:
  • pl.wikipedia.org/wiki/OpenBSD
  • http://www.openbsd.org/faq/pf/pl/