Dlaczego pingwiny żyją dłużej, czyli o atakach na Linuksa
Data dodania: 14.07.2009
Zagrożenia dla Linuksa
- Wirusy
Najpopularniejsze ataki na system Windows czyli wirusy i trojany, niekoniecznie muszą się sprawdzać w odniesieniu do Linuksa. Jak pokażemy w następnej części artykułu, istnieją inne, poważniejsze zagrożenia dla systemu spod znaku pingwina. Historia wirusów na ten system jest krótka, ich ilość jest mała, a skuteczność w negatywnym tego słowa znaczeniu - znikoma. Pierwszym przypadkiem wirusa na Linuksa był Bliss z 1997 roku. Jego działanie polegało na dodaniu kodu do nagłówka pliku wykonywalnego. Nie uszkadzał on jednak go tak jak większość wirusów czyni, miał natomiast na celu udowodnienie, że napisanie wirusa pod system Linux jest możliwe. Pozwalał on nawet na wyleczenie zainfekowanych przez siebie plików za pomocą parametru --bliss-uninfect-files-please.
W późniejszym okresie pojawiały się także inne wirusy, jednak przeszły one bez większego echa, a wszystko za sprawą braku odpowiednich uprawnień, dzięki czemu nie mogły one spustoszyć systemu...
Kolejnym zagrożeniem na drodze ewolucji stały się wirusy wieloplatformowe, będące jednocześnie niebezpieczeństwem dla systemów Windows i Linux. Za przykład może posłużyć BadBunny. Podszywa się on pod obrazek programu OpenOffice.org o nazwie BaduBunny.odg. Po jego uruchomieniu, w zależności od posiadanego systemu wirus atakuje inne pliki. W Linuksie stał się dodatkiem do programu xchat (klient IRC), zapisany jako badbunny.py. W ten sposób wirus mógł się dalej rozprzestrzeniać. Na zainfekowanych systemach wyświetlał on także obrazki pornograficzne. Ten i inne wirusy wieloplatformowe (Bi, Pelf, Etapux) są dowodem na to, że zagrożenie ze strony wirusów istnieje niezależnie od platformy.
- Pierwszy Linuksowy botnet
Zanim przejdziemy do bezpośredniego opisu botnetu, który składał się z maszyn będących pod kontrolą Linuksa, chcielibyśmy pokrótce wyjaśnić czym jest botnet i jaka jest idea jego tworzenia.
Botnet jest to sieć komputerów, która jest ze sobą połączona i sterowana zdalnie. Wszystko zaczyna się w momencie infekcji komputera robakiem internetowym, którego zadaniem jest rozprzestrzenianie się po sieci i zarażanie kolejnych maszyn. Te, które są już zarażone nazywane są komputerami zombie, gdyż zazwyczaj ofiara nie wie o infekcji i fakcie przyłączenia jej komputera do powiększającej się sieci. Taki botnet, składający się zazwyczaj z kilku tysięcy komputerów może atakować serwery (ataki DDoS), powodując czasowe lub całkowite wstrzymanie ich działania. Do wszystkich maszyn zostaje przekazane żądanie o wysyłanie zapytania na podany adres IP, a serwery nieprzygotowane na jednoczesne przyjęcie tak wielu pakietów staja się niedostępne. Poniższy schemat powinien to lepiej zobrazować.
Przykładowy botnet
Uważa się, że tworzenie botnetów jest domeną systemu Windows. Jest w tym trochę prawdy, bowiem większość robaków internetowych pisanych jest właśnie z myślą o tym systemie operacyjnym. Wynika to głównie z jego popularności - łatwiej jest stworzyć botnet z komputerów pracujących pod kontrolą systemu używanego przez blisko 90% użytkowników komputerów, niż z takich, których używa zaledwie 1%. Widać jednak, że nie do końca tym tokiem myślenia kierowali się twórcy pierwszego botnetu linuksowego.
Pisząc o Linuksowym botnecie mamy na myśli urządzenia, które są pod kontrolą Linuksa, a nie stricte systemach operacyjnych na komputerach pojedynczych użytkowników. Mowa bowiem o routerach i modemach. Robak internetowy o nazwie psyb0t atakował m.in. routery działające pod kontrolą systemu Linux, posiadające słabe lub domyślne hasła do panelu administracyjnego (np. login - admin, hasło - admin) lub nie posiadały takowego w ogóle. Liczbę zainfekowanych w ten sposób maszyn szacuje się na 80-100 tysięcy. Liczba z pewnością niebagatelna - z pomocą tak licznego botnetu można przeprowadzić niejeden udany atak odmowy dostępu.
Atakowane urządzenia posiadały procesory oparte na architekturze MIPS (Microprocessor without Interlocked Piped Stages). Dla procesorów tych został stworzony system Mipsel Linux, odpowiednio zmodyfikowana dystrybucja oparta na Debianie. Oczywiście nie jest to jedyna dystrybucja pracująca w takich urządzeniach. Inne to MontaVista czy OpenWRT (wersja przystosowana przez firmę Linksys). Ważny jest tutaj jednak fakt, że wszystkie infekowane systemy pochodziły z rodziny Linux. Jak wspominaliśmy wcześniej, atakowane były routery posiadające słabe zabezpieczenia. Wiele z nich dało się złamać metodą słownikową (robak posiadał bazę ponad 6 000 nazw użytkowników i 13 000 haseł). Ujawniła się tutaj pewna słabość większości tego typu urządzeń na rynku. Otóż nie posiadają one limitu nieudanych prób logowania. Dzięki temu robak mógł próbować kolejnych, nowych haseł i loginów do momentu uzyskania dostępu do urządzenia. Routery i modemy zagrożone tym atakiem były dostępne nie tylko z poziomu HTTP (czyli strony z ustawieniami modemu/routera), ale także SSH czy TELNETU.
Przykład logowania do modemu poprzez CLI (Command Line Interface):
BusyBox on localhost login: root
Password:
DSL Modem CLI
Copyright (c) 2004 Texas Instruments, Inc.
cli> shell
Starting /bin/sh
Type exit to return to the CLI
BusyBox v0.61.pre (2007.02.27-08:37+0000)
Built-in shell (ash)
Enter 'help' for a list of built-in commands.
Równie ciekawą kwestią jest dostęp osoby atakującej do zainfekowanych przez siebie maszyn. Jeżeli komputery są rozproszone po całym świecie, to nigdy nie będzie dostępna większość z nich. Na noc komputery są wyłączane, w dzień także nie każdy korzysta z Sieci. W przypadku infekcji routera, atakujący ma do nich dostęp praktycznie zawsze. Routery włączone są przeważnie 24 godziny na dobę, bez względu na to czy ktoś używa w danej chwili Internetu czy też nie.
Kiedy robak zainfekuje urządzenie w taki właśnie sposób, jest go bardzo ciężko wykryć. Jest to możliwe podczas analizy ruchu sieciowego, jednak przeciętny użytkownik nie jest w stanie samodzielnie tego dokonać. Na pocieszenie można dodać, że przy resecie urządzenia robak znika, gdyż jest on zapisany w pamięci RAM, która przy takiej czynności jest czyszczona. Oczywiście robaki nie infekują jedynie urządzeń sieciowych, jak wspomniany psyb0t. Dowodem na to są epidemie z przełomu 2002/2003 oraz 2005 roku, w których główną rolę odegrały robaki infekujące systemy desktopowe i serwerowe (Scalper, Slapper, Lupper, Mare). Wykorzystywały one głównie luki w oprogramowaniu serwerowym, np. Bind, Apache, a także błędy protokołów, takich jak OpenSSL.
Aby się tego ustrzec, należy pamiętać o stosowaniu mocnych haseł ze znakami specjalnymi, cyframi oraz literami różnej wielkości. Jeżeli jest taka możliwość, należy także dokonywać aktualizacji oprogramowania wewnętrznego (firmware) urządzeń do nowszych wersji.
- Exploity
Najbardziej realnym atakiem, który mógłby zostać przeprowadzony na system Linux, jest wykorzystanie luk w oprogramowaniu i samym systemie. Kiedy zostaje odkryta nowa dziura w aplikacji, bardzo szybko pojawia się specjalistyczny program nazywany exploitem, którego zadaniem jest wykorzystanie wspomnianej luki i przejęcie kontroli nad całym systemem (łącznie z nadaniem sobie najwyższych uprawnień). Czasami usłyszeć też możemy o tak zwanych "zero day exploit", są to exploity napisane przed wydaniem łaty na aplikację/system. Najczęściej działanie exploita prowadzi do przepełnienia bufora, czyli wysłaniu do bufora (pamięci) większej ilość informacji niż zostało w rzeczywistości przeznaczone na ten cel. Skutkiem tego, informacje znajdujące się za buforem zostają "przepełnione". Dzięki temu atakujący używając exploita może wykorzystać program do nadania takich samych uprawnień, jakie posiada program.
Linux jest współtworzony przez wielu ludzi, powstają dla niego tysiące różnych programów, a nie wszystkie są kontrolowane przez całą społeczność Open Source. Błędy programistyczne i luki w takich aplikacjach mogą zostać użyte przez osoby mające złe intencje wobec nas. Przykładem może być dziura w funkcji vmslice. Luka dotyczyła większości dystrybucji z jądrem w wersji 2.6.17 - 2.6.24.1 i pozwalała na nadanie sobie praw roota. Wprawdzie bardzo szybko pojawiła się łatka dla tego błędu, ale nigdy nie dowiemy się, ilu programistów ma świadomość błędów w kodzie i zachowuje te informacje dla siebie, tylko po to by mieć możliwość ataku na serwer.
#
Ponieważ jest to system linuksowy, można tutaj użyć komendy wget aby pobrać i skompilować pliki binarne, a następnie je wykonać. Po udanym ataku Psyb0t uniemożliwia innym osobom dostępu do panelu administracyjnego. Kolejnym krokiem jest łączenie się z IRC (Internet Relay Chat), gdzie urządzenie przyłączane jest do botnetu i oczekuje na polecenia.
Schemat włamania do systemu Linux

Wi-Fi - jak sprawić, by działało szybciej i pewniej
Co w domu zabija twoją sieć Wi-Fi?
Jak rozwiązać problemy z łącznością sieciową
Jak domowym sposobem wzmocnić sygnał sieci bezprzewodowej
Podstawy konfiguracji sieci bezprzewodowej

2009-07-15, 12:58
Dlaczego w dziale foto?
TrocheTechniki
Pomocna dłoń
Tutor
Recenzent
Ekspert - Windows
2009-07-15, 14:20
Poprawione. Pozdrawiamy
2009-07-15, 16:05
no to teraz dojdzie jeszcze jeden pingwin, mianowicie Chrome OS.
dave2001
Szczęśliwy debiut
2009-07-15, 17:42
Z tym os google może być jak z krową co dużo ryczy a mało mleka daje,
obiecują rewolucyjny os a będzie ... zobaczymy.
to taki paradoks troche bo im bardziej popularny będzie tym bardziej nakręci się koło niego robactwa od wirusów przez trojany, keyloggery itd
ale darmowy system do netobooka ładujący się w kilka sekund, pisze się na to od razu choćby nawet nie było na niego gier czy aplikacji do neta styknie
2009-08-02, 10:36
A czemu autor nie podał nazw tych programów antywirusowych na linux-a? Nie wie o nich?? Czy tylko słyszał, że są?? W treści artykułu jest opis exploitów na system i na aplikacje.. Czytając to można odnieść wrażenie, że jest to tak samo liczebna grupa. Moim zdaniem zbyt mało jest informacji typu: trojan-nazwa-atakuje-co, gdzie "co" określa system albo aplikację. To znacznie ułatwiłoby analizę treści pod kątem czy niebezpieczeństwa są częściej występujące dla aplikacji czy samego systemu. W przypadku aplikacji, infekcję trudno nazwać atakiem na system. Jakoś dziwnym trafem wszelkim specom od zagadnień komputerowych umyka prosty fakt, że system operacyjny z punktu widzenia softu to też aplikacja jak każda inna. Dlatego też atak na określoną aplikację, która nie jest systemem operacyjnym, wynika ze słabości jaką ma ona w sobie, a nie słabości systemu. Aplikacja zaś w momencie działania tworzy relatywny (specjalizowana nakładka) system operacyjny, który "umiera" po zdeaktywowaniu aplikacji. Innym zagadnieniem jest aspekt podatności systemów na infekcję ze względu na słabość samego administratora. Sam system w wersji dystrybucyjnej jest jak każdy inny. Gdy znajdzie się lukę, to system nie zmieniony po instalacji, jest podatny na atak. Szkoda, że autor nie wspomniał o drobnym fakcie. Jest nim odebranie praw zapisu dla root'a. Modyfikacja systemu wymaga wtedy w pierwszej kolejności przywrócenia dla wszystkich katalogów, plików nadania prawa "w"... Przy okazji, zmienność usytuowania plików kluczowych dla systemu Linux, wymusza raczej ręczną dłubaninę w każdym komputerze niż zastosowanie boot'a jak to ma miejsce w przypadku plików "shared" w systemie M$. Tam z góry wiadomo, że wszystko jest w ścieżce c:\windows.... Jako ciekawostkę można podać, że ta ścieżka jak i wszystkie kluczowe są w języku angielskim. Powód jest prosty. System tylko tak potrafi odnaleźć lokalizację...
2009-08-02, 20:08
No tak, cały tekst opiera się na tezie "błędy w jądrze i programach". Z tym samym zjawiskiem spotykamy się w systemach rodziny MS, więc artykuł, powiedziałabym - żadna rewelacja. Należy zaznaczyć, że doswiadczony admin/user, który dobrze poznał linuksa i jego możliwości (Zapewniam, że w przypadku administracji systemem są one bardziej dogłębne) jest w stanie na bieżąco kontrolować stan systemu,uruchamianie procesów i dostęp do nich. W systemach MS wszystko jest zautomatyzowane, a user ma do gadania tyle ile pozwolili mu twórcy. Natomiast kwestia wirusów, exploitów i wszelakiej maści syfu jest dla mnie śmieszna. Może istnieją, ale i tak sednem sprawy jest root.
2009-08-12, 22:48
Proponuję prosty test dla dwóch systemów: pod linux-em jako użytkownik: rm /bin -Rv pod Windows: rmdir C:\Windows Oto dlaczego Linux jest zawsze jeden krok dalej a pisanie artykulików o wirusach dla systemów Uniksowych jest bez sensu. Pozdrawiam, Admin z Gentoo na pokładzie
tuptuś
2009-11-15, 00:52
Linux ma otwarty kod źródłowy i niektórzy ludzie mogą go wykorzystać do złych celów to prawda - a o inżynierii wstecznej Wy słyszeli? ;) I nadal jesteście pewni bezpieczeństwa zamkniętego kodu? ;) Dostęp do zdekompilowanych wersji przestępcy wiedzą jak sobie zapewnić. Linux ma jeszcze jedną zaletę- użyszkodnicy są bardziej świadomi tego co robią, a jeśli nie, to osoba "stawiająca" linucha u znajomych, lepiej wie jak zadbać o bezpieczeństwo systemu. Dzięki pingwinom net w sieci domowej działa jak trzeba, chociaż każdy korzysta na maxa.
surikati
2009-11-29, 11:21
Jeden powód dlaczego Linuks jest "bezpieczniejszy" to taki, że jest trudniejszy. Nie używają go osoby które nie mają zielonego pojęcia o informatyce (może i zainstalują a po tygodniu wracają do Windowsa). Dlatego w tym systemie jest znacznie mniej ataków psychologicznych czyli wykorzystujących głupotę użytkowników. Wiele razy na przykład w opisie instalacji nielegalnego oprogramowania na torrentach pojawiają się banalne techniki na włamanie, raz spotkałem się nawet z opisem nakazującym wyłaczenie firewall'a i wyrażenie zgody na nawiązanie połączenia ze zdalnym serwerem, a mnustwo ludzi jak te barany robią co napisane bez najmniejszego zastanowienia. Na szczęscie w gronie linuksiarzy jest o wiele mniej idiotów, co czyni ten system statystycznie najbezpieczniejszym.
Zaloguj się aby komentować
Zaloguj się » Zarejestruj się »