Porównanie bezpieczeństwa: Gnu/Linux vs BSD (część 2)
Tekst jest kontynuacją artykułu Porównanie bezpieczeństwa: GNU/Linux vs BSD.
Kernel
Konfiguracja
Każdy z systemów z rodziny BSD ma swoje własne
podejście do jądra. W przeciwieństwie do Linux’a,
który to jest zarządzany przez dużą grupę
ludzi powiązanych z jeszcze większą ilością
różnych dystrybucji. Podstawową różnicą pomiędzy nimi jest sposób konfiguracji jądra. Taki
proces jest dość uciążliwy jeśli przyjdzie
nam go przeprowadzić pod Linuksem. Natomiast jest czystą
przyjemnością na wszystkich systemach z rodziny BSD. Co
zapewne jest oczywiste, aby skonfigurować i skompilować
jądro Linuksa musimy wydać komendę ‘make
menuconfig’ w odpowiednim katalogu. Po krótkiej
chwili, a dokładniej procesie budowania menu, czyli
zautomatyzowanym przeczytaniu setek różnych Makefile’ów
rozsianych po wielu różnych katalogach, otrzymamy
rozbudowane menu. Wspomniane już, gotowe menu dysponuje
setkami, jak nie tysiącami, przeróżnych opcji,
sterowników oraz ustawień. W takim gąszczu
informacji trudno się połapać a tym bardziej wyłowić
wszystkie, niezbędne nam szczegóły potrzebne do
skonfigurowania i zabezpieczenia naszego systemu.
Miłą odmianę wprowadzają systemy BSD. Cała zabawa zaczyna się i kończy podczas edycji tylko jednego pliku konfiguracyjnego. W tym Makefile’u znajdują się wszystkie potrzebne nam ustawienia, opcje i sterowniki. Jeśli czegoś tam nie ma, to znaczy że nie powinno tego tam być. Wszystko jest doskonale udokumentowane i opisane. Sam plik jest tworzony w taki sposób aby był w łatwy sposób zinterpretowany przez człowieka (czyt. administratora/developera).
Systemy plików
Niewątpliwie Linux obsługuje największą ilość różnorakich systemów plików. Między innymi ext2, ext3, ext4, FAT, HFS, JJFS, JFS, UDF, XFS, ReiserFS, Reiser4, Tux3. Zapewne większość z nich jest bardzo dobrze przetestowana. Jednak warto zauważyć że przy tak dużej ilości systemów plików bardzo trudnym staje się dokładne przetestowanie nowej wersji jądra wraz ze wszystkimi możliwymi systemami plików. Co niekiedy zmniejsza stabilność naszej maszyny.
Z kolei systemy BSD nie obsługują tak imponującej ilości systemów plików. Są w stanie wykorzystać między innymi UFS, FAT, ext2 oraz ZFS. Dzięki małej różnorodności każdy aspekt poszczególnego systemu plików jest zbadany i należycie przetestowany co minimalizuje straty danych.
Firewall
Ważnym zabezpieczeniem systemu operacyjnego jest firewall. Dlatego też standardem stało się dołączanie zapory ogniowej do systemu. Linux standardowo dystrybuowany jest z netfilter/iptables, który zapewnia pełną dowolność w zarządzaniu naszymi portami i pakietami sieciowymi.
Natomiast systemy z rodziny BSD wykorzystują inne filtry pakietów. Są nimi PF lub IPFW w zależności od upodobań developerów. Istotną przewagę nad szeroko wykorzystywanym netfilter’em filtry BSD mają w prostocie konfiguracji. Bardzo dużą uwagę poświęcili developerzy kwestiom tworzenia reguł. Zapewniło to znaczącą poprawę czytelności wszystkich plików konfiguracyjnych, oczywiście są one human-readable. Filtry BSD w żadnej mierze nie ustępują wydajnością ani funkcjonalnością netfilter’owi, niejednokrotnie go przewyższając.
Exploity
Zarówno Linux jak i BSD wykorzystują różne technologie w celu mitygowania ataków typu Exploit. Głównym zabezpieczeniem Linux’a jest stanie z technologi PaX oraz Exec Shield. Niestety, nie zawsze są one standardowo włączone.
BSD z kolei wykorzystują między innymi W^X, PaX, GCC-SSP. Wykorzystanie poszczególnych technologii ściśle zależy od konkretnego systemu. Na szczęście wszystkie zabezpieczenia są w większości standardowo włączane. Zwalnia nas to z konieczności konfiguracji i rekompilacji jądra oraz poszczególnych podsystemów.
Zabezpieczenia
Każdy system z rodziny BSD implementuje swoje własne zabezpieczenia. W większości wykorzystywane są jail, chroot, POSIX ACL, TrustedBSD MAC, kauth, securelevels oraz Xen. Jak to zwykle bywa z BSD większość jest standardowo włączona oraz dostępna bez jakichkolwiek modyfikacji systemu.
Natomiast Linux wykorzystuje zarówno POSIX ACL jak i chroot ale również Xen, KVM, LSM, POSIX Capabilities. Niestety nie wszystkie zabezpieczenia są standardowo dostępne w każdej dystrybucji. Tym bardziej, nawet jeśli jakieś zabezpieczenie jest dostępne to nie oznacza że jest ono włączone.
Czytaj również
- Porównanie bezpieczeństwa: Gnu/Linux vs BSD (część 1)
- Porównanie bezpieczeństwa: Gnu/Linux vs BSD (część 3)
--Marcin Piotr Pawłowski
