System na wylot bezpieczny

Dla kogo OWL

OpenWall Linux to idealna platforma dla aplikacji świadczących usługi publiczne, np. serwerów FTP, poczty, grup dyskusyjnych, DNS itd. Dystrybucja OWL ma oprogramowanie niezbędne do uruchomienia takich usług. Ze względu na to, że zostało ono wszechstronnie przetestowane pod kątem bezpieczeństwa, większość informacji o lukach go nie dotyczy. Ważniejsze jest jednak to, iż OWL jest bezpieczny pod względem architektury uprawnień. Nawet jeśli system czy aplikacja nie zostaną na czas załatane, standardowe mechanizmy systemowe prawdopodobnie i tak uniemożliwią "zdobycie" systemu. Przykładem może być to, że mimo iż w lutym br. pojawiło się kilka nowych błędów w jądrach z serii 2.4.x, użytkownicy jądra 2.4.23-ow2 z dystrybucji OpenWall Linux datowanego na 5 stycznia nie są na te błędy podatni.

Oprócz serwerów publicznych warto rozważyć możliwość użycia OWL w systemach z wieloma użytkownikami wewnątrz firmy, np. jako platformy serwera baz danych. Wysoki poziom bezpieczeństwa przełoży się na oczywiste korzyści dla firmy i administratora, który będzie mieć mniej problemów do rozwiązania. Każde dodatkowe zabezpieczenie wiąże się najczęściej z utratą pewnej funkcjonalności, dlatego - choć znaczna część zabezpieczeń jest przezroczysta dla użytkownika i aplikacji - trudno polecać ten system do użytku domowego.

OpenWall Linux będzie naprawdę bezproblemowy dopóty, dopóki będą na nim uruchamiane aplikacje wchodzące w skład dystrybucji. Instalacja aplikacji zewnętrznych wymaga pewnego doświadczenia i... czasu. Jeżeli w systemie ma działać więcej aplikacji i usług jednocześnie, być może lepiej jest posłużyć się utwardzoną i załataną wersją jednej z popularnych dystrybucji, takich jak Debian czy Red Hat. Z całą pewnością jednak OpenWall Linux jest systemem, o którym należy pamiętać, instalując kolejny serwer w firmie, jego atuty są bowiem trudne do przecenienia.

Tomasz Grabowski jest specjalistą ds. bezpieczeństwa usług sieciowych w Akademickim Centrum Komputerowym na Politechnice Szczecińskiej.

OpenWall Linux

OpenWall Linux (OWL) to dystrybucja, której twórcy stawiają sobie za cel maksymalne bezpieczeństwo już po zainstalowaniu - bez dodatkowych zabiegów "utwardzających". Trudno nazwać OWL systemem przyjaznym dla użytkownika - instalacja i późniejsze utrzymanie systemu wymagają sporego doświadczenia. Te trudy OWL wynagradza administratorowi z nawiązką, oferując mu przysłowiowy święty spokój. Kod włączany do dystrybucji OWL jest wszechstronnie sprawdzany pod względem bezpieczeństwa. Chodzi nie tylko o wykrycie błędów, ale także o architekturę bezpieczeństwa i wykorzystanie "najlepszych praktyk". Aplikacje, które przejdą wstępne sito, są dodatkowo "utwardzane" i konfigurowane tak, by po standardowej instalacji zapewniać minimum uprawnień, co jest zgodne z filozofią bezpieczeństwa sieciowego. Więcej o systemie i dostępnych dla niego aplikacjach można przeczytać na witrynie projektu: http://www.openwall.com.

Separacja przywilejów w OpenWall Linux

Niektóre programy muszą działać z przywilejami użytkownika root. Jest im to potrzebne np. do nasłuchiwania na niektórych portach lub dostępu do plików systemowych. Oczywiście, większość operacji, które takie programy wykonują, może być przeprowadzana z mniejszymi przywilejami (np. niebezpieczne zazwyczaj działania na łańcuchach znaków). Okazuje się, że w praktyce można dość skutecznie podzielić program na te wątki, które potrzebują praw administratora, oraz te, które tych praw nie potrzebują.

Na schemacie obok widać przykład separacji przywilejów w oprogramowaniu popa3d (bezpieczny serwer POP3). Program startuje z prawami root, jednak od razu jest dzielony na dwa wątki. Pierwszy wątek zaczyna nasłuchiwać na porcie 110, a następnie zostaje zamknięty w katalogu /var/empty oraz pozbywa się swoich praw administratora. W takim stanie czeka na połączenia od użytkowników. To jedyna część programu widziana z zewnątrz. Jeśli znalazłby się w niej jakikolwiek błąd pozwalający na przejęcie kontroli nad programem, to atakujący otrzymałby tylko i wyłącznie dostęp do katalogu /var/empty. Nic poza tym. W przypadku, gdy z programu korzysta prawowity użytkownik, jego login i hasło są przekazywane do drugiego wątku, który nadal działa z prawami roota. Zadaniem tego wątku jest wyłącznie weryfikacja loginu i hasła użytkownika. Jeśli krok ten zakończy się sukcesem (użytkownik podał poprawne login i hasło), program ostatecznie pozbędzie się przywilejów administratora, przyjmując jednocześnie przywileje konkretnego użytkownika, i zezwoli na dalszą komunikację z jego uprawnieniami.

Jak widać, ilość kodu, który jest wykonywany z przywilejami użytkownika root, została zdecydowanie zmniejszona, przez co prawdopodobieństwo wystąpienia błędu bezpieczeństwa jest znacznie mniejsze. Ponadto ewentualny audyt kodu staje się łatwiejszy - najbardziej zagrożone fragmenty kodu stanowią zaledwie kilka procent całości.


TOP 200