Sekcje

Przejdź na skróty do treści. | Przejdź do nawigacji


Baza wiedzy Publikacje Porównanie bezpieczeństwa: Gnu/Linux vs BSD (część 3)

Porównanie bezpieczeństwa: Gnu/Linux vs BSD (część 3)

Tekst jest kontynuacją artykułu Porównanie bezpieczeństwa: GNU/Linux vs BSD.

Userland

Dokumentacja 

Ważną rzeczą, z różnych względów, jest dokumentacja. Takie zwykłe strony man są nieocenioną pomocą i jednym z najważniejszych narzędzi w rękach administratora. Dzięki odpowiednio napisanym podręcznikom systemowym jesteśmy w stanie w pełni skonfigurować i zabezpieczyć nasz system. Z pewnością można stwierdzić, że nikt nie ma lepszych stron man od systemów z rodziny BSD. Każdy z developerów jest zobligowany do udokumentowania wszelkich zmian i aktualizacji stron podręcznika. Dzięki temu wszyscy użytkownicy są w stanie na bieżąco testować nowe funkcjonalności oraz zgłaszać błędy.

Niestety społeczności Gnu/Linux nie udało się stworzyć w miarę porównywalnej alternatywy. Związane jest to z dość dużą ilością nieudokumentowanych lub słabo udokumentowanych fragmentów kodu. Co oczywiście nie wpływa dobrze na rozwój systemu jak i na jego bezpieczeństwo.

Usługi 

Podstawą działania systemu operacyjnego jest świadczenie usług różnego typu. W zależności od dystrybucji Gnu/Linux standardowo instaluje się z dość dużą ilością uprzednio skonfigurowanych usług i programów zarówno sieciowych jak i lokalnych. Daje to niewątpliwie szybszy i łatwiejszy dostęp do w pełni działającego systemu przy jak najmniejszym wkładzie pracy administratora. Wśród wszystkich usług zapewne znajdziemy bardzo istotne dla nas funkcjonalności ale również takie z których nigdy nie będziemy korzystać. Niestety są one niejednokrotnie standardowo włączone. Takie podejście nie jest rozwiązaniem optymalnym ze względów bezpieczeństwa.

Zdecydowanie inne rozwiązanie zapewniają systemy z rodziny BSD. Standardowo po instalacji otrzymujemy czysty system bez żadnych usług. Wszystko zbędne jest powyłączane. Zapewnia nam to pełną kontrolę nad tym co ma być na naszej maszynie uruchomione. Koszt takiego rozwiązania jest oczywiście ewidentny - praca administratora. Jednak przy stosunkowo niewielkim nakładzie wysiłku otrzymujemy system bezpieczny i w 100% dostosowany do naszych indywidualnych potrzeb.

Aktualizacje 

Bardzo ważną kwestią dla każdego administratora i ogólnie użytkownika systemu jest sprawa aktualizacji. Większość z nas chce być up-to-date z wszelkimi nowościami w naszych systemach. Niejednokrotnie są to poprawki, nowe funkcjonalności, zabezpieczenia. Pojawia się pytanie, jak to zrobić? Zarówno BSD jak i Gnu/Linux mają odrobinę odmienne podejście. Niejednokrotnie systemy Linux’owe zawierają zintegrowane narzędzia aktualizacyjne. Przyśpieszają one cały proces poprzez minimalizacje wkładu pracy i czasu administratora. Proces ten jest przeważnie podzielony na dwa etapy, aktualizację jądra i reszty. Etap uaktualnienia jądra wymaga ponownego uruchomienia maszyny. Etap aktualizacji reszty już niekoniecznie. W dużej ilości przypadków podczas przeprowadzania tak zautomatyzowanego procesu nie mamy dużego wpływu na cały przebieg. Niejednokrotnie okazuje się że zaktualizowane podsystemy nie sprawują się tak dobrze jak powinny. Wynika to często z braku jednolitej kontroli nad procesem tworzenia aktualizacji.

Twórcy BSD niestety bardzo rzadko dysponują jakimikolwiek zautomatyzowanymi narzędziami do aktualizacji. Jednak sam proces jest prosty i jednolity dla wszystkich systemów. Minusem jest chwilowe wyłączenie maszyny z użytku. Gdy chcemy zaktualizować nasz BSD to musimy uruchomić nasz system poprzez niezbędny proces rozruchowy w trybie instalacyjno-aktualizacyjnym. Przeważnie jest to nowe, odrobinę zmodyfikowane jądro systemu. Oraz ściągnąć z sieci odpowiednie archiwa z nowym jądrem jak i binariami. Na pozór proces wydaje się być skomplikowany i żmudny ale pozory mylą. Sama aktualizacja trwa przeważnie 5 do 10 minut i gwarantuje nam poprawne i bezpieczne działanie systemu przy niedużej stracie dostępności. Istnieje tęż możliwość ręcznego skompilowania i zainstalowania odpowiednich podsystemów. Jednak w takim przypadku za wszelkie braki w stabilności odpowiadać będzie administrator.

Bezpieczeństwo 

Pomijając fakt różnego rodzaju zabezpieczeń wbudowanych w jądro systemu co zapewnia nam bezpieczeństwo? Odpowiedź na to pytanie brzmi „szczegóły”. Takie szczegóły jak sam proces wydawania nowych wersji systemu. Podejście developerów. Sposób zarządzania projektem. Niestety w świecie Gnu/Linux w panuje ogólny chaos. Osobno rozwijane jądro i reszta systemu jest niezbyt dobrym procesem. Komunikacja pomiędzy ogromną ilością developerów jest z góry skazana na porażkę.

W takim porównaniu systemy z rodziny BSD to ostoja ładu i porządku. Ujednolicony proces rozwoju jądra i userlandu zapewnia stabilność i bezpieczeństwo. Niewielka ilość developerów zwiększa możliwości komunikacyjne. Proces wydawania nowych wersji jest ujednolicony i usystematyzowany. Nowa wersja nie powstanie dopóki wszystko nie będzie sprawne. Twórcy dużą wagę przykładają do jakości oraz czystości kodu. Standardem jest ciągły audyt kodu podnoszący jego jakość i bezpieczeństwo.

Aplikacje 

Chyba nie istnieje system operacyjny, który tuż po instalacji byłby w stanie spełnić wszelkie wymagania stawiane mu przez jego użytkowników. Dlatego niezwykle istotną sprawą jest możliwość instalacji dodatkowego oprogramowania. W bardzo łatwy i przyjemny sposób rozwiązali ten problem twórcy Gnu/Linux. Scedowali całą odpowiedzialność na developerów poszczególnych dystrybucji. W znacznej ilości przypadków udostępniono łatwy i przyjemny w użyciu interfejs instalacyjno-aktualizacyjny. Często okazuje się że tym samym narzędziem zaktualizujemy nasz system operacyjny jak i zainstalujemy nowe oprogramowanie. Oczywiście wszystko opiera się na binarnych paczkach, uprzednio przygotowanych przez twórców dystrybucji. Jeśli chcielibyśmy zainstalować coś ze źródeł to niejednokrotnie okazuje się że zostaliśmy z tym sami. Wkraczamy wtedy w szarą strefę pełną „piekła zależności”. Trudno zachować przy tym czujność i nie narazić naszego systemu na różnego typu usterki, w tym bezpieczeństwa.

Z systemami z rodziny BSD sytuacja wygląda podobnie. W bardzo łatwy i przyjemny sposób możemy zainstalować nowe aplikacje. Jednak standardowo nie dysponujemy narzędziami graficznymi. Wszystko robimy z poziomu wiersza poleceń. Jest to dość sprawne narzędzie i niepozornie łatwe w użyciu oraz przede wszystkim potężne. Poza możliwością instalacji plików binarnych mam możliwość skorzystania z dobrodziejstw ports/pkgsrc.Jest to pewnego rodzaju framework do zarządzania oprogramowaniem oraz jego własnoręcznej kompilacji. Dzięki temu nasze wysiłki zostają zminimalizowane a ścieżka do „piekła” się od nas oddala. Pomimo tych dobrodziejstw szereg ludzi pracuje nad tym aby paczki i porty były jak najświeższe i jak najbezpieczniejsze. Jeśli jakaś aplikacja zawiera w sobie lukę bezpieczeństwa to w najgorszym wypadku jesteśmy o tym informowani.

Czytaj również

--Marcin Piotr Pawłowski

 

Przydatne informacje? Polub nas na facebooku.

Nawigacja
 
Darmowy magazyn o ITsec

zine
Subskrybuj RSS:
RSS