• Nie Znaleziono Wyników

Porównanie wra˙zliwo´sci ró˙znych systemów operacyjnych

4. Badania eksperymentalne

4.4. Porównanie wra˙zliwo´sci ró˙znych systemów operacyjnych

W [21] mo˙zna znale´z´c porównanie wra˙zliwo´sci na bł˛edy ró˙znych systemów operacyjnych, ale nie jest ono w pełni satysfakcjonuj ˛ace, poniewa˙z systemy operacyjne były uruchamiane na ró˙znych architekturach sprz˛etowych. W eksperymencie opisanym poni˙zej zestawiono wyniki zaburzania pami˛eci systemów działaj ˛acych pod kontrol ˛a: GNU/Linux, kFreeBSD oraz

Minix działaj ˛acych na jednej architekturze sprz˛etowej. Dzi˛eki temu zbadano, czy systemy wykorzystuj ˛ace mikroj ˛adro lub j ˛adro monolityczne (patrz 2.1.2), b ˛ad´z ró˙zne implementacje systemów operacyjnych opartych o j ˛adro monolityczne ró˙zni ˛a si˛e pod wzgl˛edem podatno´sci na bł˛edy.

Konfiguracja eksperymentu

Badaniom zostały poddane nast˛epuj ˛ace systemy operacyjne: Debian Lenny oparty o j ˛adro GNU/Linux w wersji 2.6.26, Debian Squeeze oparty o j ˛adro kFreeBSD w wersji 7.2 oraz Minix w wersji 3.2. Obraz systemu opartego o j ˛adro kFreeBSD został pobrany ze stron projektu Debian10, natomiast stworzenie obrazu systemu Minix wymagało przeprowadzenia procesu instalacji systemu w nowo utworzonej instancji emulowanego systemu komputerowego. Wybór tych systemów operacyjnych jest uzasadniony nast˛epuj ˛acymi czynnikami:

— wszystkie systemy działaj ˛a na architekturze x86,

— zestawienie systemów GNU/Linux oraz kFreeBSD pozwoli porówna´c podatno´s´c na bł˛edy ró˙znych implementacji systemów opartych o architektur˛e j ˛adra monolitycznego (patrz 2.1.2),

— wł ˛aczenie do zestawienia systemu Minix opartego o architektur˛e mikroj ˛adra pozwoli porówna´c jego podatno´s´c na bł˛edy wzgl˛edem systemów opartych o architektur˛e j ˛adra monolitycznego.

Scenariusz testu w ramach eksperymentu jest identyczny ze scenariuszem przeprowadzonym w eksperymencie opisanym w podrozdziale 4.2 z wyj ˛atkiem systemu Minix, gdzie zamiast programu wget został u˙zyty program curl o podobnym działaniu.

Było to spowodowane brakiem kompilacji programu wget dla systemu Minix. Znacz ˛acym utrudnieniem jest fakt, ˙ze system Minix jest systemem ci ˛agle rozwijanym i nie było mo˙zliwe skonfigurowanie testowanej wersji systemu tak, aby komunikaty j ˛adra systemu operacyjnego były wypisywane na konsol˛e operatora dost˛epn ˛a przez port szeregowy. Powoduje to, ˙ze niemo˙zliwe było wyznaczenie procentowego udziału bł˛edów, które zamanifestowały si˛e komunikatami j ˛adra systemu operacyjnego dla tego systemu, niemniej jednak mo˙zliwe jest zebranie informacji o rezultacie wykonywanego zadania oraz dost˛epno´sci systemu.

Konfiguracja typu bł˛edu, momentu wstrzykni˛ecia bł˛edu oraz rozmiaru pami˛eci RAM jest identyczna z eksperymentem przeprowadzonym dla ró˙znych architektur sprz˛etowych (patrz 4.3). Dzi˛eki temu wyniki dla systemu operacyjnego Debian Lenny opartego na GNU/Linux s ˛a rezultatami uzyskanymi w eksperymencie opisanym w podrozdziale 4.2. Tak jak w przypadku porównania ró˙znych architektur sprz˛etowych przeprowadzono 50 000 testów w pojedynczym eksperymencie.

10 http://people.debian.org/˜aurel32/qemu/kfreebsd-i386

kFreeBSD GNU/Linux Minix Testy % 0.00.20.40.60.8

kFreeBSD GNU/Linux Minix

Testy % 0.00.20.40.60.8

PU+PS

NU+NS

Rysunek 4.10: Warto´s´c współczynnika Fsdla ró˙znych systemów operacyjnych

Wyniki

Wyniki przedstawiaj ˛ace odsetek eksperymentów zako´nczonych zamanifestowaniem bł˛edu (współczynnik Fs) zostały zamieszczone na rysunku 4.10. Klasyfikacja wyników procentowych udziałów typu manifestacji bł˛edu według klasyfikacji opisanej w 2.5.2 jest przedstawiona na rysunku 4.11. Dost˛epno´s´c systemu dla testów, w których wynik przeprowadzenia scenariusza był nieprawidłowy zobrazowano na rysunku 4.12. Rysunek 4.13 przedstawia współczynnik manifestacji bł˛edów w pami˛eci fizycznej dla obszarów pami˛eci wielko´sci 1 MB. Natomiast tabela 4.3 zawiera rozkład najcz˛e´sciej zgłaszanych komunikatów systemu operacyjnego.

Wnioski

Wstrzykiwanie bł˛edów w oparciu o emulator systemu komputerowego pozwoliło na równie łatwe porównanie systemów operacyjnych jak w przypadku architektur komputerowych. Nie było konieczne tworzenie osobnych mechanizmów wstrzykiwania bł˛edu dla ka˙zdej platformy.

Zestawienie procentowe zamanifestowanych bł˛edów (rysunek 4.10) wyra´znie pokazuje dwie tendencje: zarówno implementacja, jak i architektura mikroj ˛adra/j ˛adra monolitycznego systemu operacyjnego maj ˛a wpływ na stopie´n wra˙zliwo´sci na wstrzykni˛ete bł˛edy. System oparty o j ˛adro kFreeBSD nie tylko cz˛e´sciej manifestował bł˛edy, ale te˙z wynik ko´ncowy rzadziej był prawidłowy (tylko 5% wyników w porównaniu z 12% dla GNU/Linux) i system w wi˛ekszej liczbie przypadków stawał si˛e niedost˛epny (rysunki 4.11, 4.12). Zdecydowanie wyró˙znia si˛e system Minix, któremu najcz˛e´sciej udało si˛e wykona´c powierzone zadanie.

kFreeBSD GNU/Linux Minix

Testy % 020406080100

PU

PS

NU

NS

kFreeBSD GNU/Linux Minix

Testy % 020406080100

Rysunek 4.11: Rozkład typów zamanifestowanych bł˛edów w systemach operacyjnych

kFreeBSD GNU/Linux Minix

Testy % 020406080100

kFreeBSD GNU/Linux Minix

Testy % 020406080100

DU

DS

NDU

NDS

Rysunek 4.12: Dost˛epno´s´c systemów operacyjnych

Testy %

4 8 12 16 20 24 28 32 36 40 44

0510

Testy %

kFreeBSD Testy %

4 8 12 16 20 24 28 32 36 40 44

0510

Testy %

GNU/Linux Testy %

4 8 12 16 20 24 28 32 36 40 44

0510

Testy %

Minix

MB

Rysunek 4.13: Współczynnik Fs / MB pami˛eci fizycznej dla ró˙znych systemów operacyjnych

Komunikat % kFreeBSD GNU/Linux

Bad page state 0,84 2,43

Bad PC value 0 7,74

Null dereference 0 16,83

Null dereference 0 0 6,87

Paging request failed 79,83 34,04

Sched while atomic 0 0,3

Double fault 4,2 1,83

EXT FS error 0 0,43

General protection 2,52 11,87

I/O error 0 0,17

Panic in interrupt 0 12,43

Panic - kill init 0 4,74

Privileged instruction 2,52 0

Segfault 0 29,35

Undefined instruction 0 7,61

Unclassified 10,08 1,39

Tabela 4.3: Komunikaty o bł˛edach zgłaszane przez systemy operacyjne

Prawdopodobnie wynika to z faktu, ˙ze system Minix jest projektowany pod k ˛atem zwi˛ekszonej odporno´sci na bł˛edy [52, 53, 54]. W´sród mechanizmów, które zwi˛ekszaj ˛a tolerancj˛e na bł˛edy jest zredukowany rozmiar kodu wykonywanego w przestrzeni j ˛adra systemu operacyjnego, a tak˙ze koncepcja reinkarnacji usług systemu operacyjnego w przypadku awarii. Koncepcja ta polega na ponownym uruchomieniu usług (np. obsługi stosu sieciowego), które uległy awarii, w sposób przezroczysty dla u˙zytkownika (maskowanie bł˛edów). Niestety sprawno´s´c tych mechanizmów nie mogła zosta´c sprawdzona w opisanym eksperymencie z uwagi na trudno´sci ze skonfigurowaniem systemu Minix tak, aby komunikaty j ˛adra systemu operacyjnego były wypisywane na konsol˛e operatora podł ˛aczon ˛a przez port szeregowy.

Analiza podatno´sci zakresów pami˛eci fizycznej (rysunek 4.13) pozwala stwierdzi´c, ˙ze ka˙zdy z systemów ma inn ˛a charakterystyk˛e podatno´sci na bł˛edy. Systemy GNU/Linux oraz kFreeBSD maj ˛a zbli˙zone charakterystyki, jednak kFreeBSD wykazuje znacznie wi˛eksz ˛a podatno´s´c w niskich adresach pami˛eci fizycznej. Natomiast w przypadku Minix nie wyst˛epuj ˛a rejony o znacznie podwy˙zszonej podatno´sci, przy czym nale˙zy podkre´sli´c, ˙ze dla tego systemu przedstawione s ˛a wył ˛acznie wyniki dotycz ˛ace testów zako´nczonych nieprawidłowym wynikiem z uwagi na trudno´sci w konfiguracji systemu Minix do wydruku komunikatów systemu komputerowego przez konsol˛e dost˛epn ˛a przez port szeregowy.

Interesuj ˛ace jest zró˙znicowanie komunikatów zgłaszanych przez GNU/Linux w porównaniu do kFreeBSD, gdzie wi˛ekszo´s´c wstrzykni˛e´c bł˛edów manifestuje si˛e jako Paging request failed.

´Swiadczy to o lepszej jako´sci oprogramowania GNU/Linux. Komunikaty te stanowi ˛a cenn ˛a wskazówk˛e przy diagnozowaniu awrii systemu i podejmowaniu procedur naprawczych.

Pomimo dobrych wyników systemu Minix warto zaznaczy´c, ˙ze system ten jest systemem eksperymentalnym. ´Swiadcz ˛a o tym problemy konfiguracyjne oraz niedost˛epno´s´c oprogramowania. GNU/Linux jest dojrzałym systemem u˙zywanym produkcyjnie i wszelkie rozwi ˛azania zwi˛ekszaj ˛ace jego niezawodno´s´c mog ˛a mie´c szerokie grono odbiorców oraz poszerzy´c zastosowania tego systemu o dziedziny wymagaj ˛ace zwi˛ekszonej niezawodno´sci.