Mity na temat złośliwego oprogramowania w systemach Unix / Linux

142

Czy możliwe jest zainfekowanie mojego Linux-a złośliwym oprogramowaniem?

Nie słyszałem o tym, żeby zdarzyło się to komuś, kogo znam, i słyszałem kilka razy, że nie jest to możliwe. Czy to prawda?

Jeśli tak, o co chodzi z oprogramowaniem antywirusowym (zabezpieczającym) dla systemu Linux?

Stefan
źródło
1
Sprawdź tę odpowiedź quora : goo.gl/UVCsgz . Obejmuje ona główne powody, dla których Linux / Unix różni się od Windows pod względem szans na przypadkowe zainfekowanie złośliwym oprogramowaniem.
arielf
2
Kolejny artykuł, który uznałem za pouczający, choć nie tak dobry jak ten, do którego linkował @arielf: linuxmafia.com/~rick/faq/#virus
Wildcard

Odpowiedzi:

135

Po pierwsze, z pewnością możliwe jest posiadanie wirusów w systemach operacyjnych Unix i systemach uniksopodobnych, takich jak Linux. Twórca terminu wirus komputerowy , Fred Cohen, przeprowadził swoje pierwsze eksperymenty pod 4.3BSD. Istnieje dokument instruktażowy dotyczący pisania wirusów Linux , choć wygląda na to, że nie miał aktualizacji od 2003 roku.

Po drugie, kod źródłowy wirusów komputerowych sh-script pływa w sieci od ponad 20 lat. Zobacz artykuł Toma Duffa z 1988 roku i artykuł Douga McIllroya z 1988 roku . Ostatnio na konferencję opracowano niezależnego od platformy wirusa LaTeX . Działa w systemach Windows i Linux oraz * BSD. Oczywiście jego efekty są gorsze w systemie Windows ...

Po trzecie, pojawiła się garść prawdziwych wirusów komputerowych na żywo (przynajmniej) dla Linuksa, chociaż nie jest jasne, czy więcej niż 2 lub 3 z nich (RST.a i RST.b) kiedykolwiek znaleziono „na wolności”.

Tak więc prawdziwe pytanie nie brzmi: Czy wirusy komputerowe z Linuksem / Unixem / BSD mogą zarażać? ale raczej, biorąc pod uwagę, jak duża jest populacja komputerów stacjonarnych i serwerów w Linuksie, dlaczego ta populacja nie ma tak niesamowitej plagi wirusów, którą przyciąga Windows?

Podejrzewam, że przyczyna ta ma coś wspólnego z łagodną ochroną zapewnianą przez tradycyjnych użytkowników / grup / innych uniksowych zabezpieczeń Unixa oraz ze złamaną bazą oprogramowania obsługiwaną przez Linuksa. Mam na myśli, że na moim serwerze nadal działa Slackware 12.1, ale z niestandardowo skompilowanym jądrem i wieloma ponownie skompilowanymi pakietami. Na moim pulpicie działa Arch, który jest wersją ciągłą. Mimo że oba działają w systemie „Linux”, nie mają ze sobą wiele wspólnego.

Stan wirusów w systemie Linux może faktycznie być normalną równowagą. Sytuacja w systemie Windows może być „królem smoków”, naprawdę niezwykła sytuacja. API Windows jest szalenie barokowy, Win32, NT-natywne API, magiczne nazwy urządzeń, takie jak LPT, CON, AUXktóre mogą pracować z dowolnego katalogu, listy ACL, że nikt nie rozumie, tradycji jednego użytkownika, ba, pojedynczy użytkownik root, maszyny, znakowanie plików wykonywalny przy użyciu części nazwy pliku ( .exe), wszystko to prawdopodobnie przyczynia się do stanu złośliwego oprogramowania w systemie Windows.

Bruce Ediger
źródło
35
Jednym z problemów, które omijałeś, które warto rozważyć, jest to, że Windows ABI pozostaje stabilny od lat. (A raczej MS zadało sobie wiele trudu, aby obsługiwać wszystkie różne ABI, które wydali w sposób transparentny. Na przykład WoW64.) Oznacza to, że plik wykonywalny działający w systemie Windows 3.1 może dobrze działać w systemie Windows 7. To sprawia, że monokultura w monokulturze: twórcy szkodliwego oprogramowania nie muszą odbudowywać swoich programów dla każdej wersji systemu Windows, jak to często robią w przypadku systemu Linux.
Warren Young,
50
Myślę, że innym powodem niskiego poziomu wirusów w systemach Unix / Linux i Mac jest obecność globalnych systemów zarządzania pakietami, z domyślnie skonfigurowanymi zaufanymi repozytoriami. Podczas gdy w systemie Windows przejdź do trybu online, aby pobrać oprogramowanie od bezpośrednich złowrogich dostawców, których znaleźli podczas googlowania, na unix / linux / mac używasz oprogramowania wewnętrznego do przeglądania repozytorium, w którym nowe wpisy są sprawdzane i usuwane, jeśli zostaną zauważone problemy.
haylem,
33
Ponadto, ponieważ Windows jest krajem zastrzeżonym (chociaż dzieje się to na innych platformach, patrzę na ciebie Mac OS), ludzie zwykle szukają złamanego oprogramowania dla tej platformy znacznie bardziej niż dla innych. A przejście do ciemnych zaułków online nie różni się niczym od pójścia do ciemnych zaułków w prawdziwym życiu: oczekuj kłopotów. Jak możesz zaufać dealerom narkotyków, którzy dostarczą to, co reklamują? I w niezmodyfikowanej formie? Jak więc możesz zaufać dystrybutorom oprogramowania z krakowaniem, aby zapewnić to, co reklamują? A bez modyfikowania oprogramowania?
haylem,
5
Również dane są oddzielone od kodu i plików konfiguracyjnych (var & home; bin & usr; itp.). Zajrzyj do Windows - Program Files - pliki binarne, pliki konfiguracyjne, dane (MS SQL). Możesz montować katalogi bez exec dla danych. Aplikacje nie wykonują wszystkich plików, które są do nich pobierane (edytory tekstu klientów poczty). Otwórz kod do recenzji. Szybka naprawa problemów (sprawdź czas odpowiedzi dla chłopców RedHat i Debiana po znalezieniu zagrożenia w jądrze). Kiedy znaleziono problem - Distro wypycha jakąś aktualizację (na przykład nie zdawałem sobie sprawy - KDE szuka na przykład flagi + x na skrótach pulpitu, aby je uruchomić, której funkcji w pewnym momencie brakowało)
jet
1
Powyższy komentarz Haylema jest słuszny, interesujące byłoby sprawdzenie, czy to „zmienia grę” w celu zmniejszenia „bardzo bezpiecznego” obrazu komputerów Mac OSX, teraz kilka lat później ... Niemal codziennie widzę złe warunki na OSX , ponieważ użytkownicy pobrali i zainstalowali pęknięte oprogramowanie (przeciętna osoba nawet nie stroni od uruchomienia pliku „file.sh”, który otwiera się w terminalu i wpisania hasła administratora!)
forgotstackxpassword
49

Pomaga zapobiegać rozprzestrzenianiu się wirusów w systemie Windows


Pamiętaj, że Linux jest używany na wiele sposobów, takich jak serwery plików i poczty e-mail.

Pliki na tych serwerach (pliki MS Office, wiadomości programu Outlook, programy EXE) mogą być przechowywane z infekcją.

Mimo że nie powinny one wpływać na same serwery, można skonfigurować serwer tak, aby sprawdzał każdy plik w tym momencie, który jest przechowywany, aby upewnić się, że jest czysty i zapobiec rozprzestrzenianiu się w przyszłości, gdy zostaną przeniesione z powrotem na komputer z systemem Windows.

Sam go zainstalowałem, gdy znajomy prosi mnie o sprawdzenie, dlaczego jego komputer z systemem Windows nie działa, lub gdy podłączam pendrive do komputera z systemem Windows.

lamcro
źródło
39
+1 prawdziwym powodem istnienia oprogramowania AV na Linuksie, jest nie tyle skanowanie w poszukiwaniu problemów, które mogłyby wpłynąć na system, ale w przypadku problemów, które mogłyby wpłynąć na inne systemy (takie jak Windows).
ksenoterrakid
1
To powinna być zaakceptowana odpowiedź. Reszta mojego domu korzysta z systemu Windows. Uważam, że bezpieczniej jest podłączyć zagraniczne dyski flash do pulpitu Linuksa, przeskanować je, a następnie zadeklarować, że można je bezpiecznie podłączyć do innych komputerów w domu.
Johan
To naprawdę fajny punkt widzenia; wiele osób korzysta z takiego linuxa (usb), ale prawdopodobnie nigdy tak naprawdę nie zdawało sobie sprawy, że może istnieć również skanowanie aplikacji pod kątem wirusów Windows w systemie Linux.
forgotstackxpassword
1
Częściowo rzadko uruchamiam ponownie komputer z systemem Windows z napędu USB Linux, aby móc uruchamiać skanowanie AV.
Jesse Chisholm
23

Wirusy dla systemu Linux są w zasadzie możliwe i były takie, jednak na wolności nie ma rozpowszechnionych wirusów dla systemu Linux. Baza użytkowników Linuksa jest dość mała i pod Linuksem znacznie trudniej jest wirusowi wyrządzić wiele szkód, ponieważ model użytkownika jest dość restrykcyjny w przeciwieństwie do np. Windows XP. Dlatego autorzy wirusów zwykle atakują system Windows.

Istnieje oprogramowanie antywirusowe dla systemu Linux, np. McAfee, ale żaden znany mi użytkownik systemu Linux nie korzysta z takiego oprogramowania. Zdecydowanie ważniejsze jest instalowanie wyłącznie oprogramowania z wiarygodnych źródeł i ciągłe aktualizowanie systemu przez instalowanie aktualizacji zabezpieczeń.

fschmitt
źródło
3
Chciałbym tylko dodać, że nawet jeśli uda ci się zdobyć wirusa (w moim 10-letnim Linuksie nigdy go nie widziałem), najgorszym scenariuszem jest narażenie folderu użytkownika.
Patkos Csaba
37
Nie, najgorszym scenariuszem jest całkowity kompromis systemu. Ludzie jądra właśnie zamknęli ogromną dziurę w jądrze około sześć tygodni temu, co pozwoliłoby dowolnemu programowi GUI na zwiększenie uprawnień do poziomu root. Zrób trochę Google'a, a znajdziesz inne przeszłe dziury tego rodzaju. To prawda, że ​​Linux ma lepsze zabezpieczenia na wiele sposobów w porównaniu z Windows, ale jak każda inna baza kodu milionów linii kodu, możesz być pewien, że są inne dziury w nim czekające na znalezienie. Ja również zalecałbym raczej łatanie systemów niż antywirusów, ale trzymaj głowę z dala od piasku.
Warren Young,
6
Muszę się różnić z powodu „baza użytkowników jest dość mała”. Pierwszym naprawdę szeroko rozpowszechnionym wirusem komputerowym był „Brain” w 1988 roku. Z pewnością Linux w 2010 roku ma więcej użytkowników komputerów stacjonarnych niż MS-DOS w 1988 roku. Dlaczego Linux nie ma więcej wirusów, w rzeczywistości dlaczego nie ma szeroko rozpowszechniony wirus „mózgu”?
Bruce Ediger,
7
Komputery PC osiągnęły wyraźną dominację na platformie około 1988 roku. Najwyższy gwóźdź zostaje wbity, tak jak dziś.
Warren Young,
6
echox jest poprawny. Oprogramowanie AV dla systemu Linux, tak naprawdę nie ma chronić samego systemu Linux. służy do skanowania plików obsługiwanych przez system Linux. Dlatego większość z tych plików AV patrzy tylko na pliki, które mają przeskanować, zamiast na pliki, do których uzyskano dostęp lub zmiany w systemie.
ksenoterrakid
21

Historycznie rzecz biorąc, pierwszy robak internetowy, Morris Worm , rozprzestrzeniał się poprzez luki w narzędziach uniksowych. Wcześniej wyprzedza Linuksa, ale pokazuje, że możliwe jest zainfekowanie systemów opartych na Uniksie.

KeithB
źródło
2
Jednak robak Morris nie był wirusem. Wirus musi dołączyć się do innego oprogramowania, podczas gdy oprogramowanie napisane przez Roberta Morrisa było w tym sensie niezależne. Był samoreplikujący się, ale także samowystarczalny, a zatem robakiem, a nie wirusem.
CVn
@ Czy zatem złośliwe oprogramowanie MichaelKjörling?
Braiam
6

Moim zdaniem, oprócz tych wymienionych w innych odpowiedziach, istnieje jeszcze jeden powód, że platforma Linux nie ma dużo wirusów. Kod źródłowy prawie wszystkich komponentów Linuksa jest dostępny bezpłatnie.

Powiedzmy, że zespół 5 członków opracowuje aplikację. Na liście znajdują się testerzy i kilka innych, a co najwyżej 10 osób zna kod. Spośród tych dziesięciu są szanse, że niektóre nie będą miały wystarczającej szczegółowej wiedzy o kodzie. Stąd liczba osób, które znają kod wystarczająco dobrze, aby wskazywać błędy, dziury w zabezpieczeniach są bardzo mniejsze.

Teraz, jeśli ten kod zostanie udostępniony jako darmowy / open source, para oczu, które go sprawdzą, gwałtownie wzrośnie. Stąd też rośnie prawdopodobieństwo znalezienia dziur bezpieczeństwa.

Ci nowi współautorzy wnoszą ze sobą swoje doświadczenia i często świeże oczy są w stanie zauważyć luki, które pierwotnie programiści ignorowali / przyjmowali za coś oczywistego / pominiętego.

Im bardziej popularna jest aplikacja, tym więcej ma współtwórców. Myślę, że ta swoboda / otwartość przyczynia się do zmniejszenia liczby luk w zabezpieczeniach platformy Linux.

Andrew-Dufresne
źródło
5
Naprawdę nie lubię tego mówić, ale natura otwartego lub zamkniętego źródła może wpływać tylko na szybkość osiągania określonego stanu błędu. Zobacz: „Milk or Wine” Andy'ego Ozmenta ( andyozment.com/papers/… ) oraz Ross Anderson's „Open and Closed Systems are Equivalent” ( cl.cam.ac.uk/~rja14/Papers/toulousebook.pdf )
Bruce Ediger
Dzięki Bruce za udostępnienie linków. Na pewno przejdzie przez nie.
Andrew-Dufresne,
3
Który użytkownik systemu Linux sprawdza cały kod źródłowy przed wydaniem sudo make install?
Calmarius
5

Są już dobre odpowiedzi, ale nadal chciałbym coś wnieść.

Uwzględniając proste praktyki bezpieczeństwa, które są lepsze niż Windows nawet po tak długim czasie, i wszystkie te wirusy, uważam również, że problemy są w dużej mierze społeczne.

Uważam, że głównym czynnikiem jest różnorodność dystrybucji. Zwiększa to nakład pracy związany z upewnieniem się, że wirus ma to, czego potrzebuje do rozprzestrzeniania się. W połączeniu z demografią użytkowników Linuksa, którzy nie są tak skłonni (imho) do kliknięcia podejrzanego e-maila lub ogólnie narażają się na ryzyko, oznacza to, że sukces wirusa jest dalej hamowany.

Ludzie są również prawdopodobnie bardziej zmotywowani do atakowania okien.

barrymac
źródło
4

Chociaż tak, istnieje kilka wirusów dla Linuksa, nie musisz się o nich zbytnio przejmować. Są na tyle rzadkie, że prawdopodobnie całkowicie za tobą tęsknią.

Jednak możesz i powinieneś się martwić o robaki . Programy te, w przeciwieństwie do wirusów, które zwykle infekują użytkownika, rozprzestrzeniają się same między serwerami, wykorzystując luki w usługach i platformach. Robaki szukają większej liczby serwerów w celu zainfekowania, instalują się na wrażliwych komputerach i często modyfikują ich zachowanie - np. W celu dostarczania wirusów do klientów Windows.

SF.
źródło
3

Prosta odpowiedź jest taka, że ​​żaden system operacyjny nie jest w 100% bezpieczny, chyba że podczas odczytywania się z nośnika tylko do odczytu jest w 100% bezpieczny.

Jednak w systemie Windows jest więcej wektorów do infekcji, te wektory są łatwiej dostępne i po zainfekowaniu mogą wyrządzić znacznie więcej szkody. Można to łatwo zobaczyć, czytając „RootKit Arsenal” lub inne książki.

Liczba exploitów na dowolnej maszynie jest z grubsza proporcjonalna do (średniego zysku za zrootowanie jednej maszyny) * liczby maszyn / (koszt stworzenia rootującego szkodliwego oprogramowania).

Ponieważ liczba exploitów jest proporcjonalna do liczby komputerów, sensowne jest, że ilość złośliwego oprogramowania w systemie Windows jest większa.

Ale głupio jest przyjmować jedyny powód. W systemie Windows jest więcej wirusów, ponieważ działa na nim więcej komputerów. Zauważ, że w Linuksie zarażenie złośliwym oprogramowaniem jest znacznie mniej kosztowne niż w Windows, ponieważ szkody są bardziej ograniczone. I odwrotnie, kwota uzyskana przez jedno rootowanie jest mniejsza). Zauważ też, że koszt rootowania jest wyższy z powodów, o których wspomniałem w pierwszym akapicie.

Pamiętaj, że jest to prawda na teraz. W tym momencie linux jest lepiej zaprojektowanym systemem niż Windows. Istnieją jednak siły mówiące, że potrzebujemy szybszego rozwoju przyjaznych dla użytkownika funkcji. Może to prowadzić do ułatwienia istnienia błędów i tworzenia wirusów. Już teraz uważam, że Ubuntu jest prawie tak samo wadliwy jak Windows.

HandyGandy
źródło
Nośnik startowy tylko do odczytu zmniejsza tylko powierzchnię ataku, nie zapobiega złośliwemu oprogramowaniu.
symcbean
Odp: Windows has more ... computers running it. Cóż, więcej komputerów użytkowników końcowych go uruchamia. Wydaje mi się, że jest więcej serwerów bezgłowych z pewnym smakiem * Nix (wariant Unix, wariant Linux) niż Windows. Początki, w których DOS i Windows nie miały żadnych zabezpieczeń, były dużym czynnikiem w atakowaniu tej platformy.
Jesse Chisholm
1

Inne odpowiedzi dostarczyły dobrych historycznych odniesień do wirusów w systemach Unix i Linux. Bardziej współczesne przykłady obejmują kampanie złośliwego oprogramowania „Windigo” i „Mayhem” . Zainfekowały one wiele tysięcy systemów. Doniesiono, że Mayhem wykorzystuje lukę Shellshock do rozprzestrzeniania się.

Jeśli chodzi o oprogramowanie wykrywające złośliwe oprogramowanie dla systemu Linux, masz zarówno alternatywy open source, jak i komercyjne. Moim stronniczym zdaniem najskuteczniejszym jest Second Look . Korzysta z kryminalistyki pamięci i weryfikacji integralności w celu wykrycia szkodliwego oprogramowania dla systemu Linux. Jestem programistą Second Look.

Andrew Tappert
źródło