Dlaczego Linux jest bezpieczniejszy niż Windows?
Gdy planowałem swoje wpisy, nie zamierzałem pisać w ogóle o Linuksie a skupić się na innych tematach ale póki co powstają one raczej spontanicznie a może to i lepiej ;)
Ostatnio na Vortalu Dobreprogramy pojawiła się wiadomość jakoby powstał nowy złośliwy kod na komputery firmy Apple a raczej system operacyjny zainstalowany fabrycznie na tych komputerach tej samej firmy czy o głośnym porzuceniu przez Google Windowsa na rzecz Linuksa i Maka. W związku z tym w komentarzach rozpoczęła się dyskusja jakoby to Maki wcale nie były takie bezpieczne jak to się reklamuje wszem i wobec a i przez pryzmat Maków użytkownicy odnoszą się do Linuksa, jako że MacOS ma korzenie wywodzące się z Uniksa. Należy jednak pamiętać, że Linux nie jest zarówno ani MacOS ani nie jest Uniksem o czym mówi chociażby sama nazwa LINUX - Linux Is Not UniX. Systemy bazujące na jądrze Linux jedynie wzorują się na rozwiązaniach znanych z Uniksa ale nie mają ze sobą żadnego, że tak to nazwę, pokrewieństwa. Nie oznacza to jednak, że Linux jest bezpieczniejszy niż Unix, nic z tych rzeczy, jednak MacOS ma troszkę inne podejście niż reszta systemów z tej rodziny.
Wielu użytkowników a są to najczęściej użytkownicy systemu Windows powtarzają jak opętani pewne stereotypy. Co prawda powstał już pewien artykuł na ten temat na portalu, dotyczącym Linuksa ale gdy kiedyś go podałem na forum, jak toczyła się podobna dyskusja zaraz zarzucono że przecież na portalu o tematyce linuksowej inaczej pisać nie mogą no bo jak to by wyglądało, więc ja postanowiłem troszkę odświeżyć ten temat, dlatego też do tamtego nie podaję odnośnika, kto chce to znajdzie.
1. Wirusy dla Linuksa i Uniksów nie istnieją.
Są pewne osoby, które twierdzą, że wirusy dla Linuksa nie istnieją a nawet ktoś kiedyś napisał:
Wirusy dla Linuksa są jak krasnoludki, niby istnieją ale nikt ich nigdy nie widział.
Ależ owszem wirusy dla Linuksa istnieją! Jednak ich liczba jest niewielka w porównaniu z wirusami dla systemów MS Windows. Podobno jest ich około 40. znanych wirusów a dla MS Windows około kilkuset tysięcy i codziennie powstają nowe.
Najbardziej znanym wirusem, który powstał raczej w celach bardziej eksperymentalnych jest Bliss, którego kod źródłowy został opublikowany i jeśli jest dostępny w sieci można go sobie pobrać. Wirus ten ma również możliwość "leczenia" zainfekowanego systemu, czyli umożliwia naprawę systemu i plików, które zniszczył.
W przypadku systemów uniksowych wirusy pisane są najprędzej na specjalne zlecenie a nie dlatego, że ktoś ma takie widzi mi się.
2. Nie opłaca się pisać wirusów dla Linuksa, ponieważ jest zbyt mało popularny.
Pewne osoby twierdzą, że wzrost popularności sprawi, że powstanie na ten system więcej wirusów i jako przykład podają właśnie wspomniany system MacOS, z tym że zapominają, że tam panuje trochę inna polityka - system ma być prosty i wygodny w obsłudze dla każdego a wygoda często idzie w parze z obniżeniem bezpieczeństwa.
Owszem mogę się po części zgodzić z tym stwierdzeniem ale tylko po części. To że systemy linuksowe są mało popularne na komputerach domowych nie oznacza, że tak jest w ogóle, ponieważ największą popularność, nawet większą niż systemy Microsoftu, mają na serwerach, routerach czy superkomputerach, wykonujących skomplikowane obliczenia. Gdyby popularność decydowała o ilości wirusów to wydaje mi się, że cyberprzestępcy woleliby atakować raczej serwery, zawierające cenne dane niż komputer domowy państwa Kowalskich lub Nowaków tylko po to żeby ukraść im zdjęcia z wakacji. Podejrzewam, że pobranie ich z pewnego serwisu, które jest miejscem spotkań ponad 13 milionów użytkowników będzie raczej mniej czasochłonne i zaoszczędzi wysiłku :)
Oczywiście mogę zgodzić się również z tym, że wzrost popularności systemu może spowodować wzrost ilości wirusów ale nie zgodzę się ze stwierdzeniem iż spowoduje to obniżenie bezpieczeństwa samego systemu. Gdy wzrośnie liczba użytkowników przestępcom będzie po prostu łatwiej zaatakować z prostego względu - system na komputerze może być słabo o ile w ogóle będzie zabezpieczony przez samego użytkownika. Do tego dochodzi często bezmyślne instalowanie czego popadnie w systemie. Prosty przykład jak oszukano wielu użytkowników - ostatnio pojawił się na Gnome-Look.Org pewien wygaszacz ekranu, który miał być fajny a tak na prawdę był skryptem powłoki Bash ze złośliwym kodem, który użytkownik bezmyślnie zainstalował - wykorzystanie zaufania.
Podsumowując, ilość wirusów nie spowoduje obniżenia bezpieczeństwa systemów uniksowych, no chyba że sami twórcy danej dystrybucji lub systemu o to zadbają, dodając do niego kolejne "ułatwiacze", ponieważ systemy te charakteryzują się szeregiem zabezpieczeń, takich jak uprawnienia do plików, opcje montowania systemu plików, uprawnienia do korzystania z urządzeń i wiele innych. W dystrybucjach Linuksa typu Ubuntu czy OpenSUSE użytkownik automatycznie ma przyznane prawa do korzystania z urządzeń komputera, tj. jak CD‑ROM, USB itp. oraz ustawione optymalne, domyślne opcje montowania systemów plików, jednak w systemach i dystrybucjach przeznaczonych bardziej na serwer takie uprawnienia zwykłemu użytkownikowi trzeba nadać ręcznie.
W związku z tym nawet jeśli na dysk komputera zostanie pobrany wirus lub inny złośliwy kod, np. skrypt powłoki to żeby on się mógł w ogóle uruchomić czy zainstalować, musi mieć prawo do uruchomienia się, które trzeba mu nadać ręcznie! Wielu użytkowników, migrujących na Linuksa z Windows denerwuje ten fakt, dlatego powstają "ułatwiacze", które mimo wszystko chronią użytkownika przed atakiem. Oprócz nadawania uprawnień można się dodatkowo zabezpieczyć, montując partycję w trybie tylko do odczytu lub bez prawa do wykonywania plików wykonywalnych, czyli nawet jeśli wirus jakimś cudem nadałby sobie sam lub użytkownik nadałby nieświadomie prawo do wykonywania to się on ani nie uruchomi ani nie zainstaluje, ponieważ system plików na partycji nie będzie posiadał takiej możliwości - jest ona wyłączona.
Brak uprawnień do korzystania z urządzeń chroni natomiast użytkownika przed nieautoryzowanym dostępem osób trzecich, które mając fizyczny dostęp do komputera nie będą wstanie przenieść złośliwego kodu przy pomocy płyty CD lub pendrajwa lub innego nośnika.
Ponadto w Linuksie nie da się ukryć danego procesu przed użytkownikiem tak jak to ma miejsce w systemach Microsoftu, więc można zauważyć, że coś jest nie tak.
3. Zapora sieciowa (ang. firewall).
W systemach Linux i Unix zapora sieciowa jest wbudowana w jądro co oznacza, że pakiety sieciowe zanim trafią do użytkownika w warstwie aplikacji są już przefiltrowane. Ostatnio dyskutowaliśmy o tym z iacobus na forum, gdzie stwierdził, że co z tego skoro zapora jest wyłączona :) Owszem w niektórych systemach jak, np. FreeBSD zapora jest domyślnie wyłączona, jednak w przypadku Linuksa zapora cały czas filtruje ruch sieciowy, sprawdzając stan pakietów, ponadto rzadko używane porty są domyślnie zamknięte. Dobrze skonfigurowana zapora sieciowa jądra Linux czy systemów BSD/Solaris itp. jest trudna do obejścia, co nie znaczy, że się nie da :) Jednak gdy w naszym systemie pojawi się jakieś szpiegowskie świństwo to ciężko będzie takiej aplikacji obejść reguły zapory sieciowej, chociażby dlatego że nie jest na to przygotowana. Pakiety z komputera nawet nie zostaną wysłane w świat a gdy pakiety będą przychodziły nie dotrą do użytkownika - zostaną odrzucone na poziomie jądra ewentualnie przekierowane. Jednak ja nie będę rozpisywał się na temat działania zapory sieciowej w Uniksach, ponieważ do tego zadania zadeklarował się iacobus w jednym z komentarzy pod moim poprzednim wpisem.
4. Kolejna dystrybucja Linuksa... czyli jak dla jednych wada staje się zaletą.
Pomimo tego, że większość aplikacji pisana jest dla systemu GNU/Linux i jego jądra, najczęściej z dostępnym kodem źródłowym, który trzeba własnoręcznie skompilować pewne systemy korzystają lub nie z dodatkowych zabezpieczeń, dlatego różnorodność dystrybucji ich własnych rozwiązań oraz tego, że na wielu komputerach instalowane są różne dystrybucje a nie jeden identyczny system powoduje to pewne rozproszenie co można uznać za zaletę pod względem bezpieczeństwa. Ktoś kto będzie chciał zarazić każdy linuksowy system napisze raczej uniwersalny instalator dla powłoki (powłok też jest kilka, więc też nie każdy system padnie) ale gdy ktoś obierze sobie za cel Ubuntu/Debiana lub Mandrivę/OpenSUSE to ucierpią jedynie systemu korzystające z pakietów deb lub rpm a inne pozostaną "nietknięte".
Jak widać Linux posiada wiele zabezpieczeń, niektóre mogą być niewidoczne, jeśli dystrybucja jest kierowana dla użytkownika domowego, jednak wyłączone może być tylko to co stwarza najmniejsze zagrożenie ale i tak jest to robione z rozmysłem bez podlizywania się użytkownikom. Aby się przekonać o bezpieczeństwie tych systemów najlepiej zrobić to na własnej skórze albo lepiej... na komputerze :)