przekład z: Scott Granneman, SecurityFocus,
http://www.theregister.co.uk/2003/10/06/linux_vs_windows_viruses/
znalezione dnia 31.01.2007; Oryginał opublikowany 06.10.2003)
Tłumaczenie : Tomasz Kaźmierczak
Od tłumacza:
Ostatnio zainteresował mnie temat wirusów na Linuksa. Kiedyś, gdy jeszcze używałem systemu Windows, wirusy były dla mnie czymś normalnym, choć nie codziennym, bo wtedy nie miałem jeszcze (na szczęście;) dostępu do Internetu. Więc nie były one powodem mojego zainteresowania systemem Linux, chociaż opinie użytkowników tego systemu, według których nie mają oni żadnych problemów z wirusami (“wirus? a co to takiego?:P”), były czynnikiem jeszcze bardziej zachęcającym mnie do rezygnacji z rozwiązań firmy z Redmond.
Od jakiegoś czasu używam już tego wspaniałego systemu, jakim jest Linux, ale pomimo tego, że ja także nie miałem do tej pory żadnych problemów z wirusami, bardzo mnie ciekawiło dlaczego tak jest. Dlaczego wirusy nie są problemem dla Linuksa? Słyszałem wiele opinii na ten temat, ale pomyślałem sobie, że poszukam jakiegoś opracowania, które będzie szczegółowo i rzetelnie wyjaśniało to zjawisko.
Najpierw postanowiłem poszukać czegoś na ten temat po angielsku (w google, wpisując ‘Linux +viruses’). Znalazłem kilka opracowań i artykułów, które z grubsza dzieliły się na dwie kategorie: w jednych twierdzono, że wirusy praktycznie nie stanowią zagrożenia dla Linuksa, ponieważ jest to system wystarczająco bezpieczny, w innych artykułach natomiast twierdzono (przede wszystkim były to opinie przedstawicieli korporacji antywirusowych), że “już niedługo” zaleje nas fala wirusów Linuksowych, bo jest to tylko kwestia powszechności systemu, a poza tym Linux nie jest w cale taki bezpieczniejszy od Windowsa.
Oprócz porażającej niezgodności tez przedstawianych w obu kategoriach artykułów (co jeszcze o niczym nie świadczy, bo ktoś, kto nie miał do czynienia z obydwoma systemami, w cale nie musi wiedzieć jakie są różnice w ich poziomie bezpieczeństwa) na pierwszy rzut oka można było zauważyć różnice w objętości, a po przeczytaniu, w zawartości merytorycznej.
Następnie postanowiłem poszukać podobnych opracowań w języku polskim (w tej samej wyszukiwarce wpisałem ‘wirusy +Linux’). Niestety, wśród tego co znalazłem były tylko artykuły zaliczające się do kategorii drugiej. Powtórzyłem więc wyszukiwanie, tym razem wpisując ‘Linux +wirusy’. Znalazłem jedno ciekawe opracowanie na temat wirusa bliss, ale nic poza tym.
Od razu przyznam się, że nie szukałem dalej niż pierwsza strona wyników wyszukiwania – nie miało to większego sensu ponieważ już na pierwszej stronie znaleźć można było artykuły poruszające temat. Gdyby moim celem było znalezienie polskojęzycznych opracowań zaliczających się do kategorii pierwszej, to może bym je znalazł. Ale moim celem było znalezienie jakichkolwiek informacji na temat wirusów w Linuksie. Osoba nie znająca tematu ani języka angielskiego zapewne zadowoliłaby się kilkoma pierwszymi opracowaniami, które by znalazła (uważając, że jeśli we wszystkich piszą to samo, to coś musi w tym być).
Ponieważ te kilka pierwszych opracowań przedstawiało jedynie jedną z panujących opinii, postanowiłem przetłumaczyć jeden ze znalezionych anglojęzycznych artykułów, zaliczających się do kategorii pierwszej.
Wirusy Linux vs. Windows
Opinia: Żeby zepsuć system Linux trzeba nad tym popracować; żeby zepsuć system Windows wystarczy popracować na nim, pisze Scott Granneman z SecurityFocus.
Wszyscy słyszeliśmy wiele razy o pojawieniu się jakiegoś nowego wirusa na Windowsa. W sumie w tym tygodniu słyszałem o czymś takim już kilka razy. Ktoś na jakiejś liście mailingowej, lub na forum dyskusyjnym, narzeka na najnowszego wirusa pocztowego albo robaka i poleca innym rozważyć system Mac OS X albo Linux jako bezpieczniejszą platformę. W odpowiedzi inna osoba, powiedzmy o imieniu “Bill”, mówi: “Jakie to niedorzeczne! Przecież jedynym powodem dla którego oprogramowanie z Microsoftu jest celem dla tylu wirusów jest to, że jest tak szeroko używane! Gdyby Linux albo Mac OS X były tak samo popularne jak Windows, byłoby na nie tyle samo wirusów!”
Oczywiście, to jest zdanie nie tylko “zwyczajnych ludzi” z list mailingowych. Ludzie biznesu wyrażają podobne poglądy … włączając w to tych, którzy pracują dla firm antywirusowych. Jack Clarke, europejski product manager w McAfee powiedział “Więc będziemy widzieć więcej linuxowych wirusów wraz z upowszechnianiem i popularyzacją tego systemu.” Pan Clarke się myli.
Pewnie, są wirusy na Linuksa. Ale porównajmy liczby. Według opracowania “Analysis of the Impact of Open Source Software” autorstwa dr Nic’a Peeling’a i dr Julian Satchell [w oryginale podany był niestety niedziałający link do tego opracowania – przyp. tłum.]:
“Jest około 60000 znanych wirusów dla Windowsa, około 40 dla Macintosha, około 5 dla komercyjnych wersji UNIX’a i może 40 dla Linuksa. Większość z wirusów na Windowsa nie jest zbyt ważnych, ale wiele setek z nich spowodowało wiele zniszczeń. Dwa lub trzy wirusy na Macintosha były na tyle rozpowszechnione, że można je uznać za ważne. Żaden z UNIX’owych ani Linuksowych wirusów się nie rozpowszechnił – większość było ograniczonych do laboratorium [w którym je testowano – przyp. tłum.].“
Jak na razie jest niewiele wirusów na Mac OS X i na Linuksa. To prawda, że te dwa systemy nie są dominujące na rynku, chociaż w niektórych gałęziach przemysłu mają pokaźną liczbę użytkowników. Ale nawet gdy Linux stanie się dominującą platformą biurkową, a Mac OS X będzie kontynuowało swój wzrost w biznesie i w domach, te systemy oparte na UNIX’ie nigdy nie doświadczą wszystkich tych problemów, które teraz widzimy w związku z wirusami pocztowymi i robakami w świecie Microsoftu. Dlaczego?
Dlaczego Linux i Mac OS X są bezpieczniejsze?
Najpierw spójrzmy na dwa czynniki, które powodują, że wirusy pocztowe i robaki się rozpowszechniają: inżynieria socjalna i kiepsko zaprojektowane oprogramowanie. Inżynieria socjalna jest sztuką przekonywania kogoś do robienia rzeczy, których robić nie powinien, albo do ujawniania czegoś co powinno pozostać tajemnicą. Autorzy wirusów używają inżynierii socjalnej do przekonywania ludzi by robili głupie rzeczy, takie jak otwieranie załączników zawierających wirusy i robaki. Kiepsko zaprojektowane oprogramowanie ułatwia inżynierię socjalną, ale może także zniweczyć wysiłek wykształconej, myślącej o bezpieczeństwie osoby lub organizacji. Razem te dwa czynniki mogą przekształcić pojedynczy przypadek wystąpienia wirusa w szeroko rozprzestrzenioną katastrofę.
Przyjrzyjmy się dokładniej inżynierii socjalnej. Pliki w Windowsie są albo wykonywalne albo nie, w zależności od rozszerzenia. Więc jeśli nazwa pliku kończy się na “.exe” lub “.scr” to może zostać uruchomiony jako program (tak, oczywiście, że jeśli zmienisz rozszerzenie pliku tekstowego z “.txt” na “.exe” to nic się nie stanie, bo taki plik nie jest wykonywalny; mówię tu o prawdziwych wykonywalnych programach). W świecie Windowsa łatwo jest uruchomić program i użytkownicy, którzy dostają maila z tematem “Sprawdź ten zwariowany wygaszacz ekranu!” i z załącznikiem, zbyt często klikają na niego bez zastanowienia, i bum! nowy robak przejął ich system.
Co gorsza, programy pocztowe Microsoftu są zdolne zarazić komputer użytkownika gdy ten robi coś tak nieszkodliwego jak czytanie maila! Nie wierzysz mi? To spójrz na Biuletyny Bezpieczeństwa Microsoftu, chociażby na te: MS99-032, MS00-043, MS01-015, MS01-020, MS02-068, lub MS03-023 [były to nieaktywne już odnośniki, więc nie było sensu zamieszczać łącz, które są dostępne na stronie źródłowej – przyp. tłum.]. Zauważ, że przynajmniej jeden z nich ma już pięć lat. Chociaż najnowsze wersje Outlooka domyślnie blokują większość wykonywalnych załączników, to wciąż istnieje możliwość obejścia tych zabezpieczeń.
Ten typ inżynierii socjalnej, tak łatwy do przeprowadzenia w Windowsie, wymaga o wiele więcej kroków i wysiłku w przypadku użytkownika Linuksa. Zamiast po prostu czytać list (… po prostu czytać list?!?), użytkownik Linuksa musiałby przeczytać list, zapisać załącznik, dać załącznikowi prawa wykonywania i w końcu samemu go uruchomić. Nawet gdy mniej doświadczeni użytkownicy zaczynają migrować na Linuksa, mogą nie rozumieć czemu akurat nie mogą po prostu uruchomić załącznika, ale nadal muszą przejść przez wszystkie wymienione kroki. Martha Stewart [jakaś bliżej mi nie znana postać ze świata anglojęzycznego, która jest tam chyba dosyć popularna – przyp. tłum.] powiedziała by, że to jest dobre. Co więcej, dzięki silnej społeczności Linuksowej nowi użytkownicy uzyskują edukację i pomoc w takich obszarach jak bezpieczeństwo związane z pocztą elektroniczną, których obecnie brakuje w świecie Windowsa, co powinno pomóc w niwelowaniu zmartwień nowych użytkowników [Linuksa].
Dalej, w wyniku silnego rozgraniczenia pomiędzy normalnymi użytkownikami a uprzywilejowanym użytkownikiem root, nasz użytkownik Linuksa musiałby działać jako root, żeby na prawdę uszkodzić system. [Jako zwyczajny użytkownik] mógłby uszkodzić swój katalog domowy, ale to wszystko. Czyli powyższe kroki stają się następującymi: przeczytaj, zapisz, stań się root’em, daj prawa wykonywania, uruchom. Im więcej kroków tym mniejsze prawdopodobieństwo, że infekcja nastąpi, i oczywiście mniejsze prawdopodobieństwo, że nastąpi katastrofalne rozprzestrzenianie się wirusa. Ponieważ użytkownicy Linuksa są uczeni od samego początku, żeby nigdy nie uruchamiać niczego z konta root’a i ponieważ Mac OS X nawet nie pozwala zwyczajnym użytkownikom używać konta root’a o ile nie uaktywni się takiej możliwości, jest oczywiste, że prawdopodobieństwo występowania wirusów pocztowych i robaków zmniejsza się na tych platformach.
Niestety, uruchamianie programów jako root (Administrator) jest powszechne w świecie Windowsa. Microsoft wciąż stosuje tak ryzykowne rozwiązanie – Windows XP, uważany za najbezpieczniejszy system biurkowy Microsoftu, automatycznie nadaje pierwszemu utworzonemu użytkownikowi prawa Administratora, dając mu tym samym uprawnienia do robienia z komputerem wszystkiego co zechce. Zrozumienie powodów takiego postępowania może być dosyć trudne. Po utracie tylu pieniędzy i produktywności przez ostatnią dekadę, wynikłych z istnienia niezliczonych wirusów i robaków roznoszonych drogą Microsoftową, można by pomyśleć, że firma zmieni swoje postępowanie w tym obszarze, ale nic z tego.
Nawet jeśli system jest skonfigurowany poprawnie, z kontem Administratora i nieuprzywilejowanego użytkownika, sytuacja nadal nie jest całkowicie zadowalająca. Pod systemem Windows programy instalowane przez nieuprzywilejowanego użytkownika nadal mogą dodawać DLL’e i inne pliki systemowe, które mogą być uruchomione na poziomie przywilejów umożliwiających uszkodzenie systemu. Co gorsza zbiory plików w systemie Windows – system operacyjny, aplikacje, dane użytkownika – nie mogą być trzymane oddzielnie. Sprawa jest skomplikowana do tego stopnia, że istnieje małe prawdopodobieństwo zmiany tego stanu rzeczy w rozsądnie bezpieczny sposób.
Ostatni powód, dla którego inżynieria socjalna jest prostsza w świecie Windowsa jest także obrazem zagrożeń jakie niesie ze sobą każda monokultura, czy to biologiczna czy technologiczna. Różnorodność genetyczna w populacji istot żywych jest pożądana, ponieważ zmniejsza prawdopodobieństwo, że choroba – jak np. wirus – wymiecie z powierzchni ziemi każde zwierze lub roślinę. W ten sam sposób różnorodność w środowisku komputerowym pomaga chronić użytkowników tych urządzeń.
Linux działa na wielu architekturach, nie tylko na Intelowskiej, poza tym jest wiele wersji Linuksa, wiele systemów pakietów i wiele powłok. Ale, co jest najbardziej oczywiste dla zwyczajnego użytkownika, programy pocztowe i książki adresowe dla Linuksa są dalekie od standaryzacji. KMail, Mozilla Mail, Evolution, pine, mutt, emacs … lista jest długa. Nie jest tak jak w świecie Windowsa, gdzie programy pocztowe Micorsort’u – Outlook i Outlook Express – dominują. W świecie Windowsa autor wirusa wie jak działa ta monokultura więc może wyznaczyć cel dla swojego wirusa będąc spokojnym, że miliony systemów jest tak samo wrażliwych. Wirus wykorzystujący specyficzną słabość w Evolution mógłby zaszkodzić niektórym ludziom, ale nie wszystkim użytkownikom Linuksa. Wzrost monokultury Microsoft’u w świecie komputerów (880 kB PDF) jest zagrożeniem dla użytkowników produktów Microsoftu, ale także dla wszystkich użytkowników, którzy cierpią przez katastrofy w tym środowisku, takie jak zmarnowane zasoby sieciowe, zagrożenia dla bezpieczeństwa narodowego, straty w produktywności.
Teraz, gdy już przyjrzeliśmy się inżynierii socjalnej, zbadajmy powody wynikające ze sposobu zaprojektowania oprogramowania, dla których Linux (i Mac OS X) są lepsze niż Windows jeśli chodzi o bezpieczeństwo pocztowe. Microsoft ciągle łączy swoje oprogramowanie, często nie z przyczyn technicznych ale w celach rozwoju marketingu lub biznesu (patrz poprzedni link). Na przykład Outlook i Outlook Express używają pełnego błędów Internet Explorera do wyświetlania poczty w formacie HTML. W wyniku tego błąd w IE dotyka też OE. Programy Linuksowe nie zachowują się w ten sposób, z dwoma wyjątkami: Mozilla Mail [obecnie raczej można mówić o Thunderbirdzie – przyp. tłum.] używa tego samego silnika Gecko co przeglądarka Mozilla [a tu o Firefoksie – przyp. tłum.], natomiast KMail opiera się na silniku KHTML używanym w przeglądarce Konqueror. Na szczęście projekty Mozilli i KDE mają świetne osiągnięcia w dziedzinie bezpieczeństwa.
Te programy pocztowe są tak zaprojektowane, żeby zachowywać się w bardziej bezpieczny sposób. Domyślnym zachowaniem programu pocztowego, którego ja używam – KMail – jest nie ładować zewnętrznych odnośników takich jak obrazki czy robaki Web-owe, oraz nie wyświetlać wiadomości w formacie HTML. Gdy wiadomość HTML pojawia się w mojej skrzynce odbiorczej, widzę tylko kod HTML, a powyżej wiadomości komunikat “To jest wiadomość HTML. Z powodów bezpieczeństwa został wyświetlony tylko kod HTML. Jeśli ufasz nadawcy tej wiadomości to możesz uaktywnić sformatowany widok HTML dla tej wiadomości klikając tutaj”. Ale nawet gdy uaktywnię HTML pewne dynamiczne elementy, które mogą być wprowadzone do wiadomości HTML’owej – jak Java, JavaScript, wtyczki i nawet odnośnik “odśwież” – nie są wyświetlane i nawet nie mogą zostać uaktywnione w KMail.
Wreszcie, jeśli w wiadomości jest załącznik, to nie jest on uruchamiany automatycznie … nigdy. Zamiast tego muszę kliknąć na niego, co powoduje wyświetlenie okna dialogowego oferującego trzy opcje: “Zapisz jako …” (domyślna), “Otwórz w …” i “Anuluj”. Jeśli przypiszę typ pliku do jakiegoś programu, na przykład PDF do przeglądarki plików PDF, to zamiast opcji “Otwórz w …” jest dostępna opcja “Otwórz”. Jeśli ją wybiorę to plik otwiera się w przeglądarce plików PDF [czyli nie wykonuje się – przyp. tłum.]. Jednakże, w każdym z przypadków, okienko dialogowe zawsze zawiera ostrzeżenie mówiące o tym, że załącznik może zagrażać bezpieczeństwu. To wszystko jest dobre, bardzo dobre.
Z tych powodów, nawet jeśli wystąpi jakiś przypadek infekcji wirusem wynikły z bardzo głupiego zachowania, jest mało prawdopodobne, że wirus rozprzestrzeni się na inne maszyny. Zupełnie odwrotnie niż w przypadku wirusa Sobig.F, który jest najszybciej rozprzestrzeniającym się wirusem w historii, wirus Linuksowy zakończyłby swój żywot szybko. Windows jest zapraszającą szalką Petriego, podczas gdy Linux jest wrogim środowiskiem dla takich brzydali.
Nieco zastrzeżeń
Istnieje jedna dystrybucja Linuksa, która ignoruje wiele lat powszechnego rozsądku, dobrego projektowania i wiedzy o bezpiecznych środowiskach pracy, faworyzując Microsoftową dezaprobatę bezpieczeństwa, za którą stoi mglisty termin “łatwość w użyciu”: Lindows [od pewnego czasu ta dystrybucja nosi nazwę Linspire – przyp. tłum.]. Domyślnie Lindows nadaje zwykłemu użytkownikowi prawa root’a [kolejny link do nieistniejącego artykułu… – przyp. tłum.] (i nawet zachęca użytkownika do tego by nie ustawiał hasła root’a podczas instalacji oznaczając to jako “opcjonalne”!). Niewiarygodnie krótkowzroczna decyzja, która w wyniku daje system oparty na Linuksie mający taki sam poziom zabezpieczeń jak system z Windows 9x.
Jeśli zajrzysz na stronę Lindowsa [Linspire], to przekonasz się, iż twierdzą tam że istnieje możliwość dodania innych, nieuprzywilejowanych użytkowników, ale nigdzie w systemie operacyjnym nie usprawiedliwiają dodawania takich użytkowników. I jeszcze twierdzą, że ich dystrybucja jest bezpieczna! Poprzez wysiłek w emulowaniu Microsoftu i czynienie rzeczy “łatwymi” upośledzili bezpieczeństwo swoich użytkowników. Czyn niewybaczalny. Nikt z ludzi zajmujących się bezpieczeństwem, ani nawet nikt z sektora IT, nie może polecić Lindowsa [Linspire] gdy takie ewidentne lekceważenie bezpieczeństwa jest normą w tym systemie operacyjnym.
W każdym razie niektóre maszyny działające na Linuksie definitywnie potrzebują oprogramowania antywirusowego. Serwery Samby [usługa współdzielenia plików i drukarek w sieciach Microsoft Windows – przyp. tłum.] albo NFS, dla przykładu, mogą przechowywać dokumenty w nieudokumentowanych [sic], podatnych na ataki formatach Microsoftowych takich jak Word czy Excel [chociażby w postaci skryptów – przyp. tłum.], które zawierają i rozpowszechniają wirusy. Linuksowe serwery pocztowe powinny mieć zainstalowane oprogramowanie antywirusowe w celu neutralizacji wirusów zanim te dostaną się do skrzynek pocztowych użytkowników Outlooka i Outlook Express.
Bezpieczeństwo, jak wiemy wszyscy, jest procesem, nie produktem. Więc gdy używasz Linuksa to nie używasz perfekcyjnie bezpiecznego systemu. Takie coś nie istnieje. Ale Linux i Mac OS X opierają się na bardziej bezpiecznych podstawach niż Microsoft Windows. Na takich, które powodują, że wirusom jest o wiele trudniej zarazić te systemy, a gdy już je zarażą, to trudniej im je uszkodzić, rozprzestrzenić się na inne maszyny i powtórzyć proces. Jeśli chodzi o wirusy pocztowe i robaki, Linux może nie być całkowicie odporny – poza tym nic nie jest odporne na ludzką łatwowierność i głupotę – ale jest dużo bardziej odporny. Żeby zepsuć system Linux trzeba nad tym popracować; żeby zepsuć system Windows wystarczy popracować na nim. Ja wiem któremu z nich zaufam. A ty?
Wprawdzie powyższy tekst ma już ponad trzy lata i, jak idzie zauważyć, niektóre informacje, które podaje, stały się już nieaktualne. Jednak nie te, które dotyczą meritum sprawy – bezpieczeństwa systemów Linux i Mac OS X. W tych obszarach sytuacja, z oczywistych względów, nie miała jak się pogorszyć. Jeśli chodzi o bezpieczeństwo w Windowsie – wszyscy wiedzą bardzo dobrze – wirusy mają się tam dobrze.
Ze swojej strony chciałbym dodać jeszcze jedno. Mianowicie głównymi zagrożeniami opisanymi w artykule były wirusy pocztowe i robaki. Ktoś może powiedzieć: “ale przecież istnieją jeszcze ‘zwyczajne’ wirusy, które rozpowszechniają się na przykład w plikach wykonywalnych ściąganych ze stron internetowych albo przy pomocy p2p”.
Jak zostało podkreślone w artykule, w przypadku Linuksa żeby wirus zadziałał należy się trochę namęczyć.. Poza tym w świecie Linuksa nie ma potrzeby ściągania programów przez p2p – 99.9% oprogramowania jest za darmo i można je ściągnąć z oficjalnych stron internetowych. Jednak i to nie jest konieczne w 95% przypadków bo każda dystrybucja dostarcza zdecydowaną większość potrzebnego oprogramowania. Co więcej te programy, które są dostarczane przez dystrybucje, są kompilowane ze źródeł a nie kopiowane z innych serwerów, jak w przypadku programów pod Windows.
Jednak jeśli ktoś nadal ma wątpliwości co do bezpieczeństwa tak ściąganych programów (lub chce po prostu dowiedzieć się o wirusach w Linuksie jeszcze więcej) to odsyłam do innego artykułu. Są tam podane przykłady prób zarażenia repozytoriów pewnych dystrybucji. Jak się okazało, te próby były nieudane z uwagi na zasady bezpieczeństwa na jakich opiera się Linux.
Mam nadzieję, że po przeczytaniu tego artykułu mniej ludzi da się zwieść słowom właścicieli i przedstawicieli korporacji antywirusowych, którzy podają fałszywe informacje na temat bezpieczeństwa systemu Linux (za co nie można w sumie ich krytykować – dbają o interes swojej firmy) nie podając przy tym żadnych konkretów.