• Nie Znaleziono Wyników

Ochrona integralności plików w przestrzeni użytkownika

Rozdział 3. Systemy ochrony integralności plików

3.1. Ochrona integralności plików w przestrzeni użytkownika

Systemy ochrony integralności plików mogą być zwykłą aplikacją uruchamianą jak każdy inny program komputerowy. Administrator systemu operacyjnego może uruchomić taki program ręcznie, lecz najczęściej programy kontroli uruchamiane są okresowo za pomocą odpowiednich programów systemowych, takich jak Cron w systemie Linux, czy Harmonogram Zadań w systemie Windows. Ręczne uruchamianie programu ochrony przez administratora systemu może zostać wykonane, jeśli z innych źródeł uzyska on informację o podejrzeniu włamania do zarządzanego systemu.

Przed rozpoczęciem korzystania z programu ochrony integralności plików koniecznie jest wybranie i zdefiniowanie grupy chronionych plików. Z uwagi na bardzo dużą liczbę plików, jakie może zawierać system operacyjny, nie jest możliwe monitorowanie zmian w nich wszystkich. Na podstawie zdefiniowanej listy plików program ochrony, wykorzystując funkcje kryptograficzne, generuje wzorcowe skróty i umieszcza je w bazie danych. W programach ochrony tego typu niezwykle istotnym zagadnieniem jest zapewnianie bezpieczeństwa samej bazy danych. Nie jest to zagadnienie trywialne, gdyż baza danych jest często przechowywana jako zwykły plik. Jeśli intruz będzie w stanie dokonać modyfikacji wzorców w bazie danych cały system ochrony integralności plików nie będzie godny zaufania i będzie nieskuteczny. Sytuacja taka może wręcz osłabić bezpieczeństwo systemu, gdyż administrator byłby przez taki system ochrony informowany, że nie doszło do żadnego ataku, gdy tymczasem mogłoby to nie być prawdą. Najczęściej stosowanym zabiegiem zapewniającymi bezpieczeństwo bazy danych jest zabezpieczanie kryptograficzne jej pliku za pomocą podpisu cyfrowego. Jednak w ten sposób blokowana jest jedynie możliwość niezauważonej podmiany lub modyfikacji pliku bazy danych. Zabezpieczenie podpisem cyfrowym nie chroni natomiast przed usunięciem pliku bazy danych z wzorcowymi skrótami.

Po dokonaniu wstępnej konfiguracji programu ochrony, dalsze jego działanie polega na okresowym sprawdzaniu integralności poprzez każdorazowe obliczenie skrótów kryptograficznych na podstawie aktualnej zawartości chronionych plików i porównaniu ich ze wzorcami zapisanymi w bazie danych. Jeżeli uzyskany skrót pliku jest różny od wzorca wszczynana jest procedura alarmowa. Na rysunku 3.1 został przedstawiony schemat działania programów ochrony integralności systemu plików działających w przestrzeni użytkownika [27].

3.1. Ochrona integralności plików w przestrzeni użytkownika

Rysunek 3.1. Schemat działania programów ochrony integralności systemu plików

Należy zauważyć, że program działający w przestrzeni użytkownika sprawdza jedynie, czy chroniony plik został zmodyfikowany w przedziale czasu pomiędzy kolejnymi uruchomieniami programu. Niestety, w okresie pomiędzy kolejnymi kontrolami możliwa jest zarówno zmiana zawartości pliku chronionego, jak również uruchomienie zmienionego pliku przez autoryzowanego użytkownika systemu. W związku z tym, w rzeczywistości programy działające w przestrzeni użytkownika nie chronią systemu przed zmianami, a jedynie pozwalają na wykrycie, czy pliki chronione zostały zmodyfikowane przez intruza. Jeżeli system ochrony zasygnalizuje naruszenie integralności plików konieczne staje się przywrócenie poprawnej zawartości plików. W tym celu należy dokonać aktualizacji w systemie operacyjnym polegających na przywróceniu oryginalnej zawartości zmienionych plików z kopii zapasowych, a następnie ponownie uruchomić system operacyjny. Dzięki temu, że system ochrony integralności dostarcza informacji o tym, które pliki zostały zmienione, możliwe jest przywrócenie tylko ich zawartości, a nie całego systemu operacyjnego. Jest to znaczna zaleta zastosowania programów tego typu, gdyż czas potrzebny na ponowne uruchomienie systemu operacyjnego zostaje zasadniczo zmniejszony.

Programy działające w przestrzeni użytkownika są stosunkowo proste do zaprojektowania i zaimplementowania. Zasada, że programy tego typu nie monitorują systemów plików w sposób ciągły, a jedynie uruchamiane są okresowo ma pewne praktyczne uzasadnienie. Sam proces sprawdzania jest czasochłonny i mocno zwiększa wykorzystanie zasobów systemowych. Dlatego też proces ten nie może być uruchamiany zbyt często. Do wad programów działających w przestrzeni użytkownika należy również fakt, że pliki wchodzące w skład programu zapisane są w systemie jako zwykła aplikacja. W związku z tym istnieje stosunkowo prosta możliwość wyłączania lub wykasowania takiego systemu ochrony. Z tego względu zwiększenie bezpieczeństwa systemów operacyjnych dzięki wykorzystaniu systemów ochrony integralności systemów plików działających w przestrzeni użytkownika jest stosunkowo małe.

Pomimo pewnych wad opracowano wiele programów ochrony integralności działających w przestrzeni użytkownika. Pierwszym, używanym na szerszą skalę, był program o nazwie Tripwire. Program ten powstał w 1992 roku na amerykańskim Uniwersytecie Purdue.

Program Tripwire jest pierwowzorem wszystkich innych programów tego typu.

3.1. Ochrona integralności plików w przestrzeni użytkownika

Program Tripwire pozwala administratorowi systemu na monitorowanie zmian w systemie plików takich jak dodawanie, usuwanie i modyfikacja chronionych plików. Pozwala nie tylko na monitorowanie zmian w samych plikach, ale również, co jest istotne, w ich atrybutach, takich jak liczba dowiązań, czy prawa dostępu [66]. Zwłaszcza możliwość monitorowania zmian praw dostępu w grupie chronionych plików jest bardzo cenną funkcjonalnością z punktu widzenia bezpieczeństwa.

Do swojego działania program Tripwire wykorzystuje dwa pliki, z których jeden zawiera ustawienia konfiguracyjne, a drugi jest bazą danych z informacjami o chronionych plikach. W pliku konfiguracyjnym znajduje się lista katalogów i plików, które zostały przez administratora wybrane do monitorowania. Dodatkowo każdy zapis dotyczący konkretnego pliku zawiera maskę, która określa, jakie atrybuty pliku mogą zostać zmienione bez rozpoczynania procedury alarmowej. W ten sposób administrator może na przykład umożliwić zmianę praw dostępu do pliku. Baza danych programu Tripwire jest tworzona na podstawie pliku konfiguracyjnego. Dla każdego monitorowanego pliku zapisywane są w bazie danych szczegółowe informacje o nim, takie jak jego atrybuty i kryptograficzny wzorzec [67].

Podczas sprawdzania integralności monitorowanych plików program Tripwire, na podstawie danych zapisanych w pliku konfiguracyjnym, generuje zbiór skrótów zgodny z aktualną zawartością chronionych plików. Następnie dane te są porównywane z bazą wzorców, jaką stworzono w chwili instalacji systemu. Wynikiem takiego działania jest lista plików, które zostały dodane, usunięte lub zmienione od ostatniej kontroli integralności. Następnie dla danych zapisanych na liście sprawdzana jest maska z pliku konfiguracyjnego w celu określenia, czy i jaka procedura alarmowa ma zostać uruchomiona. Domyślnie generowany jest raport informujący administratora o stanie integralności systemu plików.

Pierwotnie program Tripwire był udostępniany publicznie i nieodpłatnie. W późniejszym okresie autorzy stworzyli wersję komercyjną. W 2001 roku program ten w wersji uproszczonej został udostępniony na zasadach Open Source. Jednak w związku z tym, że pełna wersja programu nie jest dostępna publicznie, powstało wiele projektów Open Source, w ramach których zostały stworzone programy mające podobną funkcjonalność co program Tripwire. Do najciekawszych z nich należy zaliczyć programy AIDE, Veracity, czy integrit [94]. Wymienione programy mają podobną funkcjonalność i niewiele różnią się między sobą z punktu widzenia swojego działania. Różnią się natomiast szczegółami implementacyjnymi, zwłaszcza szybkością działania czy możliwością instalacji na różnych systemach operacyjnych. Należy jednak podkreślić, iż ogólna zasada działania wszystkich programów ochrony integralności systemów plików działających w przestrzeni użytkownika jest podobna i oparta o mechanizmy zastosowane w programie Tripwire.

Pewną odmianą programów ochrony integralności plików działających w przestrzeni użytkownika są aplikacje uruchamiane na zdalnych komputerach (ang. non-resident checkers). Program taki jest uruchamiany na serwerze i kontroluje integralność plików przechowywanych na wielu komputerach podłączonych do sieci lokalnej. Sprawdzanie integralności plików możliwe jest dzięki zastosowaniu protokołów zdalnego dostępu do plików, takich jak NFS, CIFS, SSH, itp. Uruchamianie programów ochrony integralności na serwerze jest korzystne, gdyż pozwala na sprawdzanie integralności plików na dowolnej liczbie komputerów, a zarazem ułatwia ochronę bazy danych ze wzorcami plików.

Dedykowane serwery zapewniające bezpieczeństwo systemów plików są na ogół wyposażone

3.1. Ochrona integralności plików w przestrzeni użytkownika

w dodatkowe, rozszerzone mechanizmy bezpieczeństwa, które mają chronić przede wszystkim bazę danych wzorców. Najpopularniejsze programy tego typu to Radmind, Osiris oraz SAMHAIN [20, 24].

Systemy ochrony integralności systemów plików działające w przestrzeni użytkownika tylko częściowo zapewniają ochronę systemu operacyjnego. Pomimo małej skuteczności wynikającej z okresowego uruchamiania procedur sprawdzania plików programy tego typu są stosunkowo popularne. Natomiast największą wadą tych systemów jest fakt, że są to zwykłe programy komputerowe, zapisane w plikach, których lokalizacja jest jawna, a pliki mogą zostać zmodyfikowane lub usunięte w wyniku zaawansowanych działań intruza.