Ochrona sieci, bezpieczeństwo systemów komputerowych - securitymag.pl
March 30, 2012, 12:50 pm

Przyszłość bezpiecznego Linuksa

1 Star2 Stars3 Stars4 Stars5 Stars (Brak ocen)
Loading ... Loading ...

Powszechnie pojawia się opinia, iż bezpieczeństwo Linuksa wynika z jego małej popularności. Łączy się z tym przekonanie, iż wzrost jego popularności sprowadzi go do poziomu innych systemów. Zobaczmy więc jak sytuacja ma się teraz i jak może wyglądać, gdy Linux zyska na popularności.

Author: Sylwester Zdanowski

Source: Hakin9 06/2010 hakin9.org

Na początek, jakie znaczenie ma bezpieczeństwo. Znakomity cytat Howarda Schmidta przytacza Dan Raywood w Security focus should be on vulnerabilties rather than on patching, SC Magazine 2009-03-03. Cała idea bezpieczeństwa w informatyce uległa dramatycznej zmianie przez ostatnie pięć lat. Kiedyś chodziło o technologię, teraz chodzi o informacje. Informacje są złotem, srebrem i diamentami współczesnego świata, a Ty musisz je mieć natychmiast. Spójrzmy co mówią specjaliści dziedziny bezpieczeństwa, będący sceptykami linuksowych zabezpieczeń. Simson Garfinkel w The Coming Linux Plague, SecurityFocus 2000-03-15; zaprezentował nam ciekawy artykuł odnośnie przyszłości. Autor twierdzi, iż wirus mógłby rozprzestrzeniać się jako łata jądra lub przez modyfikację popularnych programów jak ls czy emacs. Autor daje również szansę atakom na słabości usług, które oferują systemy. Na wszystkie te nieszczęścia jest tylko jedna obrona, niskie zainteresowanie systemem. Kolejnym czarnowidzem był Scot Grennman Linux vs. Windows Viruses, SecurityFocus 2003-10-02; zaprezentował perspektywę Linuksa sprowadzonego do poziomu sera szwajcarskiego. W artykule znajdziemy cytat menadżera McAffe Jacka Clarcka Prawdopodobnie łatwiej jest napisać wirusa dla Linuksa przez dostępność do otwartego kodu. Będziemy więc widzieć więcej wirusów wraz z upowszechnieniem się tego systemu. Jeszcze ciekawsze są słowa, które wypowiada Raimond Genes – Jest to stabilny system, ale nie jest bezpieczny – mowa o Linuksie. Mamy rok 2010 i całość powyższych opinii możemy włożyć na jedną półkę z paniką wywołaną świńską grypą. Zupełnie inny rodzaj wirusa, ale w obu przypadkach firmy zarabiające na panice postarały się o jej wywołanie.

Co nas chroni

Wiemy już jaki Linux jest dziurawy, słaby i zawodny pod względem bezpieczeństwa. Zobaczmy dlaczego jest dość popularnym wyborem dla serwerów i dlaczego pisząc ten artykuł nie muszę walczyć z kolejną plagą wirusów. Zaczynamy od instalacji systemu. W najprostszym wariancie instalujemy wszystko na jednej partycji. Pod koniec procesu, instalator zmusza nas do wymyślenia nazwy zwykłego użytkownika i hasła. Wymuszenie hasła przy instalacji nie jest zasadą przestrzeganą przez wszystkie dystrybucje. Już w tym momencie mamy jedno zabezpieczenie i jeden słaby punkt. Utworzenie zwykłego użytkownika z ograniczonymi uprawnieniami ogranicza również możliwość działania procesów. Program chcący usunąć pliki innych użytkowników, czy samego systemu musi najpierw uzyskać uprawnienia dostępu. Oczywiście możliwe jest wykonanie przez użytkownika programu z uprawnieniami roota. Jednak root nie mogąc uruchomić środowiska graficznego, nie może stanowić narzędzia podstawowego. Uruchomienie programu z maksymalnymi uprawnieniami wymaga tym samym dodatkowych czynności, co daje nadzieję na zadziałanie funkcji myślowych użytkownika. No dobrze, użytkownik uruchomił niesforny program ze swoimi uprawnieniami. Co się stanie z systemem? Z systemem nie stanie się absolutnie nic. Ograniczone uprawnienia użytkownika pozwolą na zniszczenie jedynie jego własnych plików. Wszystko wygląda pięknie, chociaż wspomniałem już o słabości. Jeżeli cały system znajduje się na jednej partycji bez dodatkowych ograniczeń zasobów, użytkownik może zapełnić cały dysk twardy. Do zabezpieczenia się przed taką sytuacją wystarczy w czasie instalacji utworzyć osobną partycję dla katalogu domowego. Jeżeli robaczek zużywa wszystkie zasoby pamięci RAM czy mocy obliczeniowych, może to dopiero zrobić po uruchomieniu, co wymaga zalogowania użytkownika. Przeszliśmy przez instalację widząc zagrożenia. Co dalej prócz podziału dysku i uprawnień dostępu? Na pierwszej linii stoją programy wykorzystujące łącze internetowe, przeglądarka, klient poczty oraz wszelakie drogi dostępu do zasobów systemu, takich jak samba. Do przeprowadzenia ataku konieczna jest znajomość słabości, którą można wykorzystać. W systemie Linux sytuację komplikuje różnorodność oprogramowania. Nasz rozrabiaka może trafić na Evolution, SeaMonkey czy Kmail. Aby zachować skuteczność, wirus musi zidentyfikować program i wykorzystać znaną lukę. Ponadto programy te nie pozwalają, aby cokolwiek stało się bez wiedzy użytkownika. Znany i popularny komercyjny klient poczty wymaga dodatkowej konfiguracji w celu zwiększenia bezpieczeństwa. Tymczasem wymienione wcześniej programy nie wymagają dodatkowych czynności. Posiadają one dodatkowe możliwości, związane raczej z zachowaniem poufności wysyłanych wiadomości, niż bezpieczeństwem klienta poczty. Powyższa różnica każe postawić pytanie, gdzie podziała się czarna magia potrzebna do wykorzystywania Linuksa. Okazuje się, iż jest ona niezbędna do zabezpieczania innych systemów. W każdym programie zdarzają się luki, wówczas żadna konfiguracja nie pomoże. Tutaj ratuje nas cecha charakterystyczna Linuksa. Z racji na rozdział pomiędzy rozwojem programów niezależnych od dystrybucji i samych dystrybucji, błędy są poprawiane na wielu szczeblach. Jeżeli oryginalny program zawiera lukę, jest ona często poprawiana przez twórców dystrybucji. Programy komercyjne przechodzą przez cykl produkcyjny, który powinien wyeliminować luki bezpieczeństwa. Poziom skuteczności tej procedury jest powszechnie znany. Czas udostępniania aktualizacji jest również dłuższy w przypadku produktów komercyjnych. Skoro jesteśmy przy szybkości poprawiania luk w programach, co z możliwością ich wprowadzania do otwartego kodu. W zeszłym roku pojawiła się informacja o wygaszaczu ekranu, który bynajmniej nie był tym, czego spodziewał się użytkownik. Wygaszacz ten został szybko przeanalizowany dla ustalenia jego rzeczywistych działań. Przede wszystkim mógł on służyć do wykonania ataku DoS przeciwko innej maszynie. Usunięcie skutków instalacji wygaszacza wymagało wpisania kilku poleceń odwracających zmiany. Wszelakie niepożądane działania pakietów w analogiczny sposób są szybko wychwytywane dzięki dostępności kodu. Uniknąć zetknięcia z takimi pakietami można przez ograniczenie się do wykorzystania jedynie źródeł będących pod kontrolą twórców dystrybucji. Mechanizm udostępniania i instalacji oprogramowania utrudnia możliwość wykonania jakichkolwiek niepożądanych zmian. W ostatecznym rozrachunku, wystarczy, aby zwykły użytkownik nie obniżał bezpieczeństwa jakie daje system Linux. Dla systemów desktop niepotrzebna jest instalacja i konfiguracja dodatkowych zabezpieczeń.

Serwer

W przypadku serwerów wymienione wcześniej zagrożenia tracą znaczenie. Poczta odczytywana jest na komputerach klienckich. Administratorzy dobrze wiedzą z jakich źródeł i co instalują. Problemem są inne zagrożenia. Przede wszystkim konieczna jest ochrona świadczonych usług jak poczta czy serwer Apache. Naturalnym celem ataku są luki w usługach i słabe hasła. W przypadku haseł jako zabezpieczenie wystarczy nam wymuszenie długości podawanych haseł. Każda usługa udostępniona na serwerze stanowi jednak potencjalne niebezpieczeństwo. Poprawki pojawiają się w niedługim czasie po wykryciu luki. Pozostawia to jednak wystarczające okno czasowe pomiędzy odkryciem problemu, a jego załataniem przez administratorów. Sytuację ratują liczne rozwiązania pozwalające zabezpieczyć system wieloma warstwami, jak cebule. Na początek chronimy połączenie z sieciami i użytkownikami, znajdującymi się poza siecią lokalną. Dzięki VPN i SSH można tworzyć bezpieczne połączenia na odległość. Dalej, nasz serwer chronimy ścianą ogniową. Dalsze zabezpieczenia nie są widoczne z zewnątrz. Przede wszystkim ograniczenie uprawnień usług. Często omawianym zabezpieczeniem jest więzienie dla oferowanych usług. Działający w takowym wiezieniu Apache, w przypadku ataku, nie da możliwości wyrządzenia większych szkód. Atakowanie usług niezbyt doświadczonego użytkownika można utrudnić przez zmianę informacji jakie usługi podają o sobie. Dzięki temu napastnik nie będzie pewien z czym ma do czynienia. Skoro jednak dopuszczamy możliwość skutecznego wykorzystania luki w usłudze, musimy o tym wiedzieć. Wykrywaniu zdarzeń służą programy IDS (ang. Intrusion Detect System). Do dyspozycji mamy narzędzia AIDE (ang. Adwenced Intrusion Detection Enviroment) czy Tripwier. AIDE na licencji GPL tworzy bazę danych na podstawie pliku konfiguracyjnego. Uruchomienie programu powoduje porównanie istniejących plików z bazą danych. Raportowane są wszystkie zmiany nieprzewidziane w konfiguracji programu. W podobny sposób można wykorzystać Tripwire, przy czym jest on podzielony na wersję o kodzie otwartym, dla serwerów i dla korporacji. Spójrzmy jeszcze na pewien scenariusz. Włamywacz wykorzystuje lukę serwera samby, ma uprawnienia użytkownika samba i bardzo chce podmienić kilka plików konfiguracyjnych tej usługi. Mógłby uzyskać dostęp do pożądanych przez siebie informacji. Jeżeli użyliśmy wcześniej flagi immutable na plik smb.conf i smbpasswd, nasz napastnik nie zdziała absolutnie niczego. Przynajmniej do czasu uzyskania uprawnień roota. Flaga immutable uniemożliwia zmianę pliku, ustawić i zlikwidować ją może tylko root. W oczywisty sposób jej użycie może komplikować proces aktualizowania konfiguracji. Jak długo jednak napastnik nie ma dostępu do konta roota, plik jest bezpieczny. W nieco innym scenariuszu możliwe byłoby zainstalowanie rootkita, którego można wykryć zarówno przez IDS, jak i programy typu Rootkit Hunter. Prócz zagrożeń, które można zaliczyć do technicznych, mamy jeszcze socjotechniki. Szczególnie administratorzy w dużych przedsiębiorstwach muszą się zatroszczyć o ujawnianie jak najmniejszej ilości informacji o pracy całego systemu. Poczynając od mówienia wszystkim Hej, szukamy do pracy fachowców od ścian ogniowych. Mamy z tym kłopot , kończąc na informacjach jakie można wyszukać przez wyszukiwarki czy samego tracerout.

Rysunek 1. Poziom działania LMS

Rysunek 1. Poziom działania LMS

Przyszłe zagrożenia

Na samym początku przytoczyłem niezbyt trafione przewidywania odnośnie plagi wirusów. Próby przewidywania sytuacji po upowszechnieniu się systemu Linux w dużej mierze zależą od źródła finansowania autora i jego ideologii. Zobaczmy jednak co nie tylko może, ale prawdopodobnie będzie się działo po upowszechnieniu Linuksa. Przede wszystkim, skąd biorą się obecne zagrożenia w postaci wirusów, koni trojańskich itd. Jakie cele mają te programy, komu one służą? Te pytania pozwolą przenieść obecny problem na grunt powszechności Linuksa. Do dalszych rozważań weźmy trzy cele ataków. Po pierwsze niszczenie – wirus uruchomiony na komputerze prowadzi do unieruchomienia systemu operacyjnego. Wszystkie zasoby obliczeniowe, jak i pojemność pamięci zostają zużyte. Co gorsza próby usunięcia wirusa nie przynoszą skutków. Pozostaje jedynie wgranie systemu i ustalenie jakie pliki są zarażone, aby uniknąć powtórki. Po drugie tworzenie zombie – z komputerem zasadniczo nie dzieje się nic niezwykłego. Możliwa jest praca, nieco wzrosło użycie zasobów. Jednak co jakiś czas sieć odmawia posłuszeństwa. Drobny program wysyła wielkie ilości danych na nieznany adres IP. Setki takich komputerów w sieci powodują załamanie serwera. Po trzecie szpiegowanie – praca z komputerem nie jest utrudniona. Program po cichu loguje działalność użytkownika z hasłami włącznie. Konkurencja wie wszystko o działalności firmy. Aby zobaczyć powszechność tych zagrożeń w popularnych systemach komercyjnych wystarczy zajrzeć na dowolne popularne forum internetowe poświęcone tematyce. Na wielu z nich zwykli użytkownicy szukają pomocy krok po kroku jak poradzić sobie z robaczkami. Dla systemu Linux mieliśmy już przykład wygaszacza ekranu wchodzącego do drugiej grupy celów ataku. Istnieją również wirusy jak Linuks/Rst-B, wykryty w 2002 r. Należy uważać, gdyż wirus ten ma kilka minimalnie różniących się nazw, zależnie od firmy zajmującej się oprogramowaniem antywirusowym. Przy niewielkiej popularności systemu można go było uniknąć poprzez ostrożność. Upowszechnienie systemu jest równoznaczne z jego wykorzystaniem przez osoby, których pojęcie rozsądku nie dotyczy. Wielu użytkowników po prostu chce mieć tapety, wygaszacze, gry itp. nie patrząc na to skąd są one pobierane. Powszechne staną się konkretne przeglądarki internetowe wykorzystywane w Linuksie. Być może będzie to Epiphany czy Iceweasel. Ataki zostaną skierowane przeciwko ich słabościom. Pojawią się dodatki podobne do dostępnych dla SeaMonkey czy Firefoxa. Okienka proszące o zgodę na instalację dodatku na najróżniejszych stronach, czasem będą miały szczęście trafić na kogoś, kto się zgodzi. Od tego momentu przeglądarka zaczyna pracę dla napastnika. Oprogramowanie do przeglądania poczty również nie będzie bezpieczne. Podobnie jak do tej pory inne rozwiązania były atakowane, tak wszyscy będą polować na słabości Evolution. Dla powszechnie używanego systemu popularne staną się udogodnienia i skrypty. Załącznik pobrany z poczty od znajomego zawierające grę ze skryptem, który przeprowadzi instalację. Udogodnienie sprawi, iż wystarczy ściągnąć plik i nacisnąć dwa razy na plik skryptu. Tak samo jak obecnie na każdy katalog, przecież po co męczyć się z linią poleceń. Otrzymujemy grę, a wraz z nią prezent rozsyła się do wszystkich w książce adresowej i zaczyna logowanie naszych działań. Innym razem taki sam prezent pozbawia konto wszystkich plików. W końcu ktoś znajdzie lukę, dzięki której bombowe prezenty będą wstanie unieruchomić cały system. Na pewnym etapie problemem staną się ułatwienia w obsłudze systemu dla zwykłych użytkowników oraz socjotechniki. Obecnie na problemy te cierpi najpopularniejszy system operacyjny.

Serwer

Upowszechnienie systemu Linux będzie miało znacznie mniejsze znaczenie dla serwerów. Administratorzy obecnie muszą się liczyć z atakami obliczonymi na uzyskanie informacji lub spowodowanie odmowy dostępu. Po upowszechnieniu systemu w dalszym ciągu będą instalować minimum niezbędnego oprogramowania z zaufanych źródeł. Z pewnością pojawi się większa ilość narzędzi dla script-kidis, które zwiększą nieco ilość logowanych informacji. Jednak realne zagrożenie dla serwerów nie będzie znacząco wyższe. Patrząc na wcześniejsze przewidywania, sytuacja komputerów klienckich będzie niemal identyczna z obecną. Dla uczciwości warto uwzględnić zwiększenie udziału systemu Linux jako rozwiązania dla serwerów. Tutaj również trafią się administratorzy, którzy będą uczyli się w bolesny sposób.

Przyszłe rozwiązania

Wiemy już czego się spodziewać przy wykorzystaniu mechanizmów, obecnie zapewniających bezpieczeństwo. Pytanie brzmi, co można z tym zrobić. Żartobliwie można powiedzieć, iż wystarczy unikać upowszechnienia Linuksa. W rzeczywistości obecnie istnieje wiele rozwiązań, które nie zawsze wykorzystywane są nawet na serwerach. Wirus z załącznika poczty, kiedy zostanie uruchomiony, bez problemu może narozrabiać na koncie nierozważnego użytkownika. Wówczas kasujemy konto ze wszystkimi plikami i tworzymy nowe. Jednak wystarczy zainstalować wcześniej program antywirusowy, jak Clam AntiVirus. W najgorszym wypadku system i kopie zapasowe przetrwają. W najlepszym, wirus zostanie wychwycony zanim narobi jakichkolwiek szkód. Pójdźmy dalej, antywirus nam nie wystarcza, potrzebujemy narzędzia większego kalibru. W sukurs przychodzi GRSecurity. Narzędzie to obecnie można zainstalować jako łatę jądra. Dla zwykłego użytkownika w przyszłości rozwiązanie to będzie musiało zostać uproszczone. Po nauczeniu naszego strażnika co jest normalne w naszym systemie, nie dopuści on do wykonania żadnej nieprzewidzianej czynności. Również proces nauki, o ile obecnie dość prosty w obsłudze, będzie wymagał dostosowania. Posiadając GRSecurity ograniczamy możliwość wykonania ataków dowolnego typu. Wirus nie będzie mógł od tak zarażać plików, ataki przepełnienia bufora również znajdą się pod kontrolą. Istnieje oczywiście SELinux, rozwiązanie najlepiej implementowane w dystrybucjach RedHat i Fedora. W innych dystrybucjach jego obsługa będzie wymagała uproszczeń. Jednak nawet wówczas w zestawieniu z GRSecurity jest to rozwiązanie częściowe. Ponadto w opinii twórcy GRSecurity wykorzystywany przez SELinux LSM stanowi niebezpieczeństwo dla bezpieczeństwa. Z założenia jest to interfejs wykorzystywany do kontroli pracy systemu. Jeżeli w systemie zostanie zainstalowany program, korzystający z LMS, przejmie kontrolę nad systemem. Tymczasem GRSecurity instalowany jako łata nie daje możliwości przejęcia kontroli przez inny program. Można również wprowadzić rozwiązania zintegrowane. Obecnie GRSecurity i SELinux w swojej funkcjonalności pokrywają się na poziomie uprawnień użytkowników. Prócz antywirusa Clamav istnieją programy jak Rootkit Hunter. Pod kontem przeciętnego użytkownika komputera wszystkie te narzędzia wymagają integracji, prostej instalacji, bez potrzeby ręcznej konfiguracji, która tylko pogorszyłaby ich działanie. Integracja narzędzi i uniwersalizacja domyślnej konfiguracji musi jednak doprowadzić całość do utraty optymalnej pracy. Uzyskanie optymalnie pracującego środowiska wymaga jego dostosowania. Tymczasem będziemy mieli do czynienia z konfiguracją działającą u każdego, ale u nikogo w sposób zadowalający.

Ochrona przed użytkownikiem

W naszym obrazie przyszłości mamy już zintegrowane narzędzia chroniące przed atakiem z zewnątrz. Dla zachowania bezpieczeństwa systemu w powszechnym użyciu, konieczne stanie się projektowanie mechanizmów ochrony przed błędami użytkowników. Mechanizmy tego rodzaju należą do najtrudniejszych w projektowaniu i implementacji. Koniecznością będzie jasne informowanie użytkownika w formie graficznej o wszystkich niepokojących zdarzeniach. Wszelakie dotychczasowe mechanizmy logowania należy w takiej sytuacji uznać za nieefektywne. Kolejnym problemem w dużej mierze związanym z polityką producentów, są sterowniki sprzętu. Wszelakie instalacje muszą być wykonywane w sposób który nie będzie mógł zaszkodzić systemowi. Idąc dalej również wszystkie opcje kontroli zachowania systemu muszą zostać przeniesione do środowiska graficznego. Ostatnim elementem zabezpieczenia przed użytkownikiem powinien być prosty i skuteczny mechanizm przywracania systemu. Bez powyższych rozwiązań zaprojektowanych z myślą o użytkowniku, który będzie wolał przejść przez niekończące się drzewo ikon i list opcji. Bez wykonania interfejsu w sposób, który użytkowników konsoli przyprawi o ból głowy, największym niebezpieczeństwem dla systemu będzie sam użytkownik.

Przyszłość serwer

Co jednak z przyszłością bezpieczeństwa serwerów. Jest to bardziej kwestia naturalnej ewolucji zabezpieczeń niż wzrost popularności systemu. Stopniowo coraz więcej serwerów będzie pracowała z wykorzystaniem SELinux czy GRSecurity. W tym przypadku integracja narzędzi w proste pakiety traci znaczenie. Upowszechni się również stosowanie bardziej podstawowych rozwiązań, jak więzienia usług czy portknocking. Oczywiście istnieją bardziej finezyjne rozwiązania, pozwalające na zmylenie napastnika jak honey pot. Drugim zagadnieniem jest chronienie klientów przez serwery. W tej chwili niezależnie od wykorzystywanych systemów, Clamav pozwala na skanowanie poczty na serwerze. Rzadko spotykanym rozwiązaniem jest monitorowanie komputerów w sieci za pomocą NAGIOSa. Narzędzie to może monitorować również system Windows. Jego upowszechnienie pozwoli na szybkie alarmowanie administratorów sieci o niepokojącym zachowaniu pojedynczych komputerów pod ich nadzorem.

Podsumowanie

Wielu przepowiadało już upadek Linuksa pod kontem bezpieczeństwa, cóż wielu również prorokowało koniec świata. Obecnie dla zwykłego użytkownika systemu wystarczy nie dotykanie domyślnych mechanizmów chroniących środowisko. W przyszłości, w przypadku jego upowszechnienia z pewnością konieczne będzie wykorzystanie dodatkowych narzędzi. Są one jednak już gotowe i będą stanowiły jedynie wsparcie dla najważniejszego fundamentu, jakim są uprawnienia chroniące system przed nierozwagą jednego użytkownika. Zabezpieczenia w ich przypadku są wynikiem wyścigu szczurów pomiędzy krakerami a administratorami. Celowo piszę o krakerach nie hakerach zgodnie z definicją anonimowego autora książki Internet Agresja i Ochrona. Największym problemem będzie sprostanie ludzkiej skłonności do działania, zamiast myślenia. Zachowanie równowagi między zmuszeniem użytkownika do myślenia, a pytaniem o każdy krok. Z pewnością tak jak do tej pory wszystkie dystrybucje Linuksa poprawiały bezpieczeństwo i funkcjonalność, tak i ten problem powszechnego użytkownika zostanie rozwiązany na drodze ewolucji.
_______________
Sylwester Zdanowski
Autor książki: Debian Linux. System operacyjny dla każdego. Pierwsze starcie. Programista freelancer, obecnie poszukuje osób chętnych do współpracy nad nowym projektem na licencji GNU. Informace w dziale PHP pcpomoc.infolan.net. Kontakt z autorem: sylwesterzdanowski@o2.pl

Komentarze zablokowane.

EN
PL
FR
DE


Software Press Sp. z o.o. Sp. Komandytowa 02-682 Warszawa, ul. Bokserska 1, NIP 9512279582, REGON 141804060, KRS: 0000327578