Administracja systemami komputerowymi.doc

(289 KB) Pobierz
Administracja systemami komputerowymi

 

 

 

 

Administracja systemami komputerowymi

 

Bezpieczeństwo systemów

 

 

 

 

 

 

 

 

 

 

 

 

Opracował:

Tałanda Jarosław

 

SPIS TREŚCI

 

1. Wstęp

2 Podstawowe pojęcia z zakresu ochrony danych

2.1 Atak na bezpieczeństwo danych

2.2 Usługi ochrony danych - zapewniają uzyskanie pewnych gwarancji w zakresie wiarygodności systemu komputerowego

2.3 Mechanizmy zabezpieczające

2.4 Typy możliwych ataków

3. Sposoby włamywania się do systemów

3.1.Przechwytywanie hasła

3.1.1.Przechwytywanie hasła w nieszyfrowanych protokołach

3.1.2.Przechwytywanie hasła z wykorzystaniem "koni trojańskich"

3.2.Suid, sgid

3.3.Buffer overrun

3.4 Backdoor

3.5.IP spoofing

3.6.IP source routing

3.7.Przykład włamania do systemu

4.Potencjalne "dziury" w zabezpieczeniach systemu - przykładowa lista niebezpiecznych usług.

4.1.R-commands

4.2.Sendmail

4.3 Telnet

4.4 FTP

4.4.1.Przejęcie połączenia pasywnego (PASV) na porcie serwera

4.4.2.Przejęcie połączenia na porcie klienta (PORT)

4.4.3 Kontrolowanie połączeń:

4.5.Finger

5.Stosowane zabezpieczenia

5.1.IPSEC

5.2.Firewall

5.2.1.Zakres działalności

5.2.2 Własności

5.2.3Typy firewall'i

5.2.4 Strategie konfiguracji

5.2.5.Dostępne rozwiązania firewall'i

5.2.6 Podsumowanie

5.3.Protokoły szyfrowane

5.3.1.SSH - Secure SHell (program do zdalnego logowania)

5.3.2.OpenSSH

5.3.3 SCP - Secure CoPy (program zdalnego kopiowania plików)

5.3.4.SSL - Secure Socket Layer (protokół bezpiecznej komunikacji)

5.4.Tunelowanie

5.4.1.Bezpieczeństwo

5.4.2 VPN - Virtual Private Network (wirtualna sieć prywatna)

5.4.3.Odbiór poczty

5.5 Monitorowanie (przeglądanie logów)

 

1. Wstęp.

Pojęcie bezpieczeństwa systemów komputerowych dotyczy zarówno bezpieczeństwa pojedynczego systemu jak i całej sieci, czyli ochrony informacji krążących pomiędzy węzłami sieci, oraz danych zgromadzonych w bazach dostępnych za jej pośrednictwem. Szerokie zastosowanie technik internetowych wprowadza nie znane wcześniej zagrożenia bezpieczeństwa systemów informatycznych: włamania do systemów, wirusy, spamming, blokowanie działania itd. Wzrasta więc znaczenie ochrony danych i uwierzytelniania obiektów krążących w sieci. Włamania do systemów informatycznych przynoszą znaczne straty finansowe i utratę zaufania do instytucji, której powierzono poufne informacje. Środki ochrony, zmniejszające ryzyko uzyskania dostępu do danych przez osoby nieupoważnione, można ogólnie podzielić na dwie kategorie:

·         ograniczenie dostępu do zasobów systemu zgodnie z ustaloną polityką ochrony organizacji

·         kodowanie informacji (utajnianie) za pomocą metod kryptograficznych.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Podstawowe pojęcia z zakresu ochrony danych.

 

2.1 Atak na bezpieczeństwo danych.

·         ataki aktywne, dążące do modyfikacji strumienia informacji lub tworzenia fałszywych informacji. W działaniach tych mieszczą się: podszywanie się pod osobę uprawnioną i blokowanie działania (denial of service)

·         ataki pasywne, polegające na podsłuchiwaniu i monitorowaniu przesyłanych informacji. Celem ataku pasywnego maże być dążenie do ujawnienia treści wiadomości lub uzyskanie informacji o samym ruchu informacji

 

2.2 Usługi ochrony danych - zapewniają uzyskanie pewnych gwarancji
w zakresie wiarygodności systemu komputerowego.

·         poufność - ochrona przed atakiem pasywnym

·         uwierzytelnianie - zapewnienie autentyczności informacji i osób: zagwarantowanie, że informacja pochodzi z takiego źródła, które jest przy niej wymienione lub też osoba jest tą, za którą się podaje

·         nienaruszalność - zapewnienie integralności komunikacji, tzn. tego, że informacja jest odbierana w takiej postaci, w jakiej została wysłana

·         niezaprzeczalność - niemożliwość zaprzeczenia faktowi wysłania lub odebrania informacji

·         kontrola dostępu - możliwość kontrolowania dostępu do informacji (systemów) drogą identyfikacji i uwierzytelniania

·         dyspozycyjność - ograniczenie skutków ataku w sferze dostępności informacji

 

2.3 Mechanizmy zabezpieczające.

·         szyfrowanie wiadomości

·         uwierzytelnianie informacji (podpisy cyfrowe)

·         ochrona antywirusowa

·         identyfikacja i uwierzytelniane osób uprawnionych

 

2.4 Typy możliwych ataków.

·         przerwanie (ang. interruption) - uniemożliwienie korzystania z zasobów sieci

·         modyfikacja (ang. modification) - wprowadzenie zmian przez osoby nieuprawnione

·         przychwycenie (ang. interception) - uzyskanie dostępu do zasobów przez osoby nieuprawnione

·         podrobienie (ang. fabrication) - wprowadzenie fałszywych danych do systemu komputerowego

3. Sposoby włamywania się do systemów.

 

Istnieje wiele metod pozwalających potencjalnemu "hackerowi" na włamanie się do systemu. Bazują one zwykle na błędach w oprogramowaniu systemowym, złej konfiguracji systemu, używaniu niebezpiecznych protokołów oraz bardzo często na tak zwanym czynniku ludzkim, czyli naiwności użytkowników systemu. Poniższy rozdział prezentuje przegląd najbardziej typowych metod włamywania stosowanych przez "hackerów".

 

3.1.Przechwytywanie hasła

Najprostszą metodą włamania się do systemu jest przechwycenie hasła jego użytkowników lub nawet administratora. Istnieją dwie metody przechwytywania haseł: wykorzystanie nieszyfrowanych protokołów oraz używanie tak zwanych "koni trojańskich".

 

3.1.1.Przechwytywanie hasła w nieszyfrowanych protokołach

Nawet obecnie bardzo wiele protokołów komunikacji, szczególnie starych, nie wykorzystuje żadnych technik szyfrowania danych, a mechanizm autoryzacji dostępu do zasobów systemu opiera się głównie o hasło przesyłane w sposób jawny najczęściej na samym początku połączenia. Do takich protokołów należą między innymi bardzo popularne i szeroko stosowane protokoły takie jak:

·         telnet

·         ftp

·         rsh

·         pop3 oraz imap

·         http

 

We wszystkich wymienionych protokołach klient łączy się ze zdalnego komputera
z serwerem używając do tego zwykłych socketów, a transmisja danych przebiega poprzez wiele routerów oraz segmentów sieci i ponieważ nie jest w żaden sposób szyfrowana (wyjątek stanowią odpowiednie modyfikacje tych protokołów wykorzystujące SSL - Secure Socket Layer) może zostać bardzo łatwo "podsłuchana". Wykorzystywane są w tym celu specjalne narzędzia, zwane potocznie "snifferami", które mogą zostać umieszczone bezpośrednio na routerze (routerem bywa czasem komputer, na przykład zwykły PC pracujący pod kontrolą systemu Linux, wyposażony w kilka interfejsów sieciowych), lub w segmencie sieci, przez który przechodzą pakiety interesującej włamywacza transmisji. Sniffer ma za zadanie śledzić połączenia na konkretny port serwera (np. telnet) wyłapując pakiety przeznaczone dla serwera (przykładowo w pojedynczym segmencie sieci ethernet pakiety docierają do wszystkich komputerów i dzięki odpowiedniej konfiguracji interfejsu sieciowego można odbierać pakiety o dowolnym adresie docelowym) i zapisywać te bajty z transmisji, które zawierają wpisywane przez użytkownika login oraz hasło. W przypadku protokołu telnet wystarczy zapisać kilkanaście pierwszych bajtów wysyłanych przez klienta, podczas gdy w protokole POP3 nazwa użytkownika przekazywana jest bezpośrednio po komendzie USER, a hasło po komendzie PASS. Dzięki sprytnie napisanemu snifferowi hacker może uzyskać tą metodą hasło konkretnego użytkownika. Metoda ta wymaga jednak umieszczenia sniffera (sniffer do poprawnego działania wymaga odpowiednio wysokich uprawnień) na drodze prowadzącej do serwera lub najlepiej bezpośrednio w segmencie sieci, w którym znajduje się serwer.

 

3.1.2.Przechwytywanie hasła z wykorzystaniem "koni trojańskich"

Najprostszą metodą przechwycenia czyjegoś hasła jest umieszczenie na komputerze,
z którego ta osoba się loguje do systemu programu "udającego" standardowy program logowania (np. login). Może to wyglądać w sposób następujący: Załóżmy, że podczas logowania na komputerze baranek wyświetlany jest następujący komunikat:

Welcome to BARANEK.

Please enter your login and password.

login:

 

Hacker loguje się na komputerze i pisze program, który wykonuje następujące czynności:

·         wyświetla identyczny komunikat (należy uważać przy tym na wszelkie zmiany standardowego komunikatu, które mogą ułatwić wykrycie konia trojańskiego)

·         oczekuje na wprowadzenie nazwy użytkownika oraz hasła (hasło oczywiście nie może pojawiać się na ekranie)

·         wypisuje na ekranie komunikat login incorrect aby użytkownik pomyślał, że wpisał niepoprawne hasło

·         zapisuje login oraz hasło do pliku

·         kończy działanie oraz wylogowuje użytkownika, co powoduje wyświetlenie prawdziwego już komunikatu logowania

Tego typu konie trojańskie mogą być oczywiście znacznie bardziej wyrafinowane -
w skrajnym przypadku mogą to być odpowiednio zmodyfikowane programy klientów login, telnet, ftp lub ssh.

 

3.2.Suid, sgid

Częstą metodą wykorzystywaną do włamywania się do systemów komputerowych są programy typu suid lub sgid. Są to programy, które mają ustawiony w atrybutach odpowiedni bit, dzięki czemu wykonują się na uprawnieniach swojego właściciela lub grupy. Jest to bardzo szybka i łatwa droga do uzyskania uprawnień konkretnego użytkownika lub nawet administratora. Hackerzy wykorzystują w tym celu błędy w samych programach, które z racji spełnianych funkcji muszą być typu suid, lub błędy w konfiguracji systemu (np. demona ftp, nfs...) dzięki którym możliwe staje się utworzenie pliku wykonywalnego z ustawionym bitem suid, dla którego właścicielem jest ktoś inny (np. administrator).

Aby uchronić się przed włamaniami z wykorzystaniem suid'ów należy przede wszystkim kontrolować to, które programy mają ustawiony ten bit oraz czy jest to sensowne i konieczne. Należy unikać nadawania takich uprawnień programom pochodzącym z niepewnych źródeł,
a także programom takim jak: skrypty shellowe (istnieje możliwość przerwania działania takiego skryptu i uzyskania shell'a wykonywanego na uprawnieniach administratora), skrypty cgi (możliwość ich wykonywania nawet bez posiadania konta na danym komputerze).

Dodatkowo należy zwrócić uwagę na to jakie programy lub polecenia wywoływane są przez program z ustawionym bitem suid - w szczególności czy program ten nie korzysta przy wywoływaniu poleceń ze zmiennych środowiskowych (mogą one zostać zmienione przez hackera) ani ścieżek względnych.

 

3.3.Buffer overrun

Podczas włamań do systemów bardzo często wykorzystywane są błędy w programach wykonywanych na uprawnieniach administratora polegające na braku odpowiedniej kontroli ilości danych wprowadzanych do buforów wejściowych. Przykładem może być tutaj program login, który jest odpowiedzialny za logowanie użytkowników. Celowe przepełnienie bufora wejściowego, na przykład w funkcji oczekującej na hasło użytkownika, może powodować nieprzewidziane (lub wręcz zamierzone ale zupełnie nieprawidłowe) zachowanie programu. Spowodowane jest to tym, że bufory wejściowe są najczęściej tablicami lokalnymi, które są alokowane na stosie podczas wykonywania konkretnej funkcji i ich przepełnienie powoduje nadpisanie innych zmiennych.

W typowych systemach struktura stosu podczas wywoływania funkcji jest następująca:

. . .

Bufor

inne zmienne lokalne

 

adres powrotu

 

. . .

 

Przepełnienie bufora może być wykorzystane przez hackera na kilka sposobów:

·         Program w wyniku nadpisania zmiennych lokalnych lub adresu powrotu zakończy się z błędem (segmentation fault). Jeżeli był to program taki jak np. login (dotyczy to raczej jego starszych wersji) to na dysku zostanie zapisany plik core, który może zawierać rozkodowane hasło użytkownika lub inne informacje pomocne w dalszym włamywaniu się do systemu.

·         Dzięki znajomości struktury ramki stosu w konkretnej funkcji wejściowej danego programu suid, hacker może zmodyfikować jego działanie w ten sposób, że przepełniając bufor nadpisze adres powrotu z funkcji tak, aby wskazywał na jego kod i dzięki temu uzyska możliwość wykonywania swoich poleceń na uprawnieniach administratora.

Aby ustrzec się przed tego...

Zgłoś jeśli naruszono regulamin