Wspomaganie bezpieczeństwa
systemu za pomocą
AUDIT



  1. Wstęp
  2. Pliki rejestrowe w różnych systemach
    • Solaris
    • HP-UX 9.0
    • Irix 5.2
    • SunOS 4.1.3
    • OSF/1 2.0 firmy DEC
    • BSD/OS 1.1
  3. Systemowy rejestrator wydarzeń.
  4. Zdalne rejestrowanie wydarzeń
  5. Narzędzia służące do zabezpieczeń
  6. Jeszcze coś o Solaris



  1. Wstęp
  2. Audit (rewizja) polega na prowadzeniu zapisów w dzienniku. Jest to bardzo przydatny administratorowi system rejestrowania czynności wykonywanych przez komputer. Pomaga administratorom relacjonować historie wielu różnych zdarzeń jak również prób uzyskania dostępu do zasobów serwera. Dzięki temu w przypadku włamania się intruza do systemu audit może pomóc w określeniu co się stało, czasami pozwala również określić tożsamość osoby włamującej się do systemu.
    Dziennik ochrony jest formą testowania i odtwarzania akcji wykonywanych przez użytkowników systemu. Proces ten jest niezbędny aby określić skuteczność istniejącej ochrony, obserwować niewłaściwe korzystanie z systemu przez użytkowników, sprawdzać odporność systemu, w przypadku włamania uzyskać dowody obciążające sprawcę oraz wykrywanie anomalii i intruzów w systemie. Efektywne robienie zapisów wymaga zapisu poprawnych informacji i ich okresowego przeglądania.


  3. Pliki rejestrowe w różnych systemach
    • Solaris
      Solaris cechuje się najbardziej zdezorganizowanym z możliwych do wyobrażenia sposobów rozmieszczania plików rejestrowych. Istnieje co prawda katalog nazwany /var/log więc nie powinno być tak trudno, ale wystarczy popatrzeć na niektóre miejsca umieszczenia plików rejestrowych:
      /var/log/*
      /var/cron/log
      /var/lp/logs/*
      /var/saf/_log
      /var/saf/zsmon/log
      /var/adm/{messages,aculog,sulog,vold,log,wtmp}
      /var/adm/log/asppp.log
      Ostatni z wymienionych plików to rejestr protokołu ppp do połączeń przez modem. Solaris 2.4 jest rozprowadzany z włączonym rejestrowaniem informacji w tym pliku, nawet jeśli w systemie nie jest używany protokół ppp lub nawet jeśli w systemie nie jest używany protokół ppp lub nawet nie zainstalowano oprogramowania do obsługi ppp. Plik ten rośnie wypełniany informacjami o braku możliwości połączenia.
    • HP-UX 9.0
      Pliki rejestrowane znajdują się w katalogu /usr/adm. Plik nettl.LOG00 zawiera statystykę wykorzystania sieci, katalog diag - wiele binarnych plików rejestrowych. Nie należy ich dotykać.
    • Irix
      Większość plików rejestrowanych znajduje się w /usr/adm/ w wersji systemu IRIX 4.0 lub w /var/adm/ w wersji Irix 5.2. Rejesrty systemu drukowania ATT znajdują się w katalogu /usr/spool/lp .
    • SunOS 4.1.3
      Większość plików rejestrowanych znajduje się w /usr/adm/. Umieszczono tam również pliki z danymi dotyczącymi rozliczeń - w podkatalogu accct . Istnieje również katalog /var/log ale zawiera tylko dwa pliki authlog i syslog .
    • OSF/1 2.0 firmy DEC
      Większość plików rejestrowanych znajduje się w katalogu /usr/adm/ i jego podkatalogach. OSF/1 firmy DEC zapisuje komunikaty błędów jądra w pliku binarnym, które można przekształcać w tekst programem uerf. Domyślnym plikiem w którym komunikaty te są zapisywane, jest /var/adm/binary.errlog, ale można to zmienić edytując plik konfiguracyjny .etc.binlog.conf.
      Plik sialog jest częścią opracowanego przez DEC systemu bezpieczeństwa, w którym są rejestrowane wszystkie wykonania poleceń ważnych z punktu widzenia bezpieczeństwa, takich jak su, passwd czy login. Katalog smlogs zawiera pliki z komunikatami zapisanymi w czasie ostatniej instalacji systemu operacyjnego. W konfiguracji ,,fabrycznej'' zakłada się, że dane generowane przez syslog są zapisywane w plikach: /var/adm/syslog.dated/date/facility.log.
    • BSD/OS 1.1
      Wszystkie pliki rejestrowane znajdują się w katalogu /var/log. Dane związane z rozliczeniami znajdują się w plikach katalogu /var/account.


  4. Systemowy rejestrator wydarzeń
  5. Program syslog, napisny przez Erica Allmana z Berkeley to bardzo ogólny system rejestrujący, wykorzystywany przez wielu dystrybutorów systemu UNIX do zarządzania informacjami przez jądro i oprogramowanie systemowe.
    Program syslog spełnia dwie ważne funkcje: zwalnia programistów z dokonywania zapisów oraz pozwala administratorom na zachowanie kontroli nad rejestracją tych komunikatów. System syslog składa się z trzech części:

    • syslogd i /etc/syslog.conf - demon odpowiedzialny za rejestrownie i jego plik konfiguracyjny;
    • openlog, syslog, closelog - procedury biblioteczne umożliwiające programistom przesyłanie danych do demona syslogd;
    • logger - polecenie dostępne z poziomu użytkownika, udostępniające wejścia do rejestrów.
    Demon syslogd startuje w momencie inicjowania systemu i potem działa nieprzerwanie. Pośród wielu usług demona można wyróżnić takie jak kern (obsługa komunikatów od jądra), user (procesy użytkowników), mail (system pocztowy) czy daemon (demony systemowe w szczególności syslogd).
    Demon syslogd sam z siebie może tworzyć komunikaty - znaczniki czasu, które mogą być użyte do rejestrowania daty i godziny w regularnych odstępach czasu. Dzięki nim można precyzyjnie ustalić, że awaria nastąpiła pomiędzy 3:00 a 3:20 a nie w ,,nocy''. Może to byc niedocenioną pomocą przyrozwiązaniu problemów pojawiających się w równych odstępach czasu.
    Aby ułatwić przeglądanie plików rejestrujących i wyłapywać interesujące informacje, zostały one podzielone na poziomy istotności komunikatów:

    Nr Poziom Przybliżone znaczenie
    0 emergsytuacja bez wyjścia
    1 alertsytuacja wymagająca pilnej interwencji
    2 critwarunki krytyczne
    3 errinne błędne warunki
    4 warningkomunikaty ostrzeżeń
    5 noticezwyczajne zdarzenia, które mogą wymogać zdarzenia
    6 infokomunikaty informacyjne
    7 debugdo testowania

    Systematyczne przeglądanie plików z rejestrowanymi komunikatami jest bardzo dobrym nawykiem. Szybko można się nauczyć, które komunikaty świadczą o normalnej pracy systemu, więc przy pewnym doświdczeniu natychmiast rozpoznaje się zaburzenia tej normalności.


  6. Zdalne rejestrowanie wydarzeń
  7. System syslog pozwala, aby informacje pochodzące zarówno od procesów jądra, jak i użytkowników, były rejestrowane w pliku oraz przesyłane do wybranych użytkowników albo innych komputerów w sieci. Warto rozważyć przygotowanie jednego bezpiecznego węzła pracującego jako centralna maszyna rejestrująca, która drukuje informacje o naruszeniu bezpieczeństwa (usługa auth) na drukarce. Uniemożliwia to włamywaczom zatarcie przez zmodyfikowanie albo usunięcie plików z rejestrami.


  8. Narzędzia służące do zabezpieczeń
  9. Niektóre czynności zapobiegające zagnieżdżaniu się intruzów mogą być zautomatyzowane przy użyciu nieodpłatnie dostępnych narzędzi. Poniżej są omówione trzy z nich. Pojawiające się nowe narzędzia są zwykle umieszczane w archiwum CERT związanym z bezpieczeństwem na serwerze cert.org (w katalogu /pub/tools) i ogłaszane na liście dyskusyjnej cert-tools-list.

    COPS: monitorowanie bezpieczeństwa systemu

    COPS (ang. Computer Oracle and Password System) jest zbiorem programów monitorujących różne obszary zabezpieczeń systemu UNIX. Programy COPS ostrzegają o potencjalnych problemach, używając poczty elektronicznej, nie próbując ich likwidować. Lista minitorowanych elementów zawiera:
    • prawa dostępu i tryby plików, katalogów i plików specjalnych;
    • zawartość plików /etc/passwd i /etc/group;
    • zawartość plików startowych i tablic programu cron;
    • zapisywalność katalogów domowych użytkowników.
    Po zainstalowaniu systemu COPS, otrzymuje się co noc raport podobny do następującego:
      ATTENTION:
      Security Report for Sun Nov 14 20:24:00 MST 1993
      from host raja.xor.com
     
      Warning! Root does not own the following file(s): /etc
      Warning! "." (or current directory) is in root's patch!
      Warning! /var/spool/mail is _World_ writeable!
      Warning! User randy's home directory /home staff/randy is mode 0777!
      Warning! Password file, line 8, no password:
      runmailq::33:10:,,,:/home/staff/runmailq:/bin/csh
      Warning! Password file, line 2964, no password:
      wp::31777:11:/white Pages/CCSO,,,:/home/staff/wp:/bin/csh
      Warning! /usr/bin/uudecode creates setuid files!
      Warning! Password Problem: Guessed: beth shell: /bin/csh
      
    COPS oferuje wiele innych możliwości, włącznie z systemem ekspertowym Kuang, który próbuje wyczuć sposoby, jakimi zwykli użytkownicy mogliby spróbować uzyskać prawa użytkownika root.

    tcpd: ochrona usług internetowych

    Pakiet tcpd, często znany jako ,,TCP wrapper'', umożliwia rejestrowanie połączeń z usługami TCP, takimi jak telnet, rlogin i finger. Dodatkowo umożliwia ograniczenie systemów mających prawo do korzystania z tych usług. Obie te możliwości mogą być bardzo pożyteczne przy tropieniu lub podglądaniu nieproszonych gości.
    Program tcp jest łatwy do zainstalowania i nie wymaga modyfikacji istniejących programów sieciowych. Wystarczy zmodyfikować plik etc/inetd.conf, aby zamiast właściewego programu wywoływany był tcpd, który wykona niezbędne czynności rejestracyjne i testy zabezpieczeń zanim uruchomi odpowiedniego demona. Jeżeli na przykład oryginalny plik /etc/inet.conf zaiwrał wiersz:
     telnet stream tcp nowait root /etc/in.telnetd in.telnetd
    to można go zmienić na:
     telnet stream tcp nowait root /usr/etc/tcpd in.telnet.d
    Wynikowy plik z raportami (skonfigurowany w /etc/syslog.conf) może wyglądać tak:

    Nov 12 08:52:43 chimchim in.telnetd[25880]: connect from rintintin.Colorado.EDU
    Nov 12 19:32:13 chimchim in.telnetd[15520]: connect from catbelly.com
    Nov 12 14:27:38 chimchim in.telnetd[25880]: connect from atdx.xor.com
    Nov 13 07:09:16 chimchim in.telnetd[2362]: connect from zodiac.mimuw.edu.pl

    tripwire: monitorowanie zmian w plikach systemowych

    Program tripewire służy do monitorowanie praw dostępu i sum kontrolnych ważnych plików systemowych, można więc z łatwością wykryć pliki, które zostały podmienione, uszkodzone albo zmodyfikowane. Program tripewire ułatwia np. stierdzenie, że włamywacz podmienił naszą kopię programu /bin/login na swoją wersję, która rejestruje hasła wszystkich użytkowników w ukrytym pliku. Podobnie jak COPS, tripewire powinien być skonfigurowany tak, aby wysyłał nam conocny raport. Typowy raport programu tripewire wygląda następująco:
      ### Phase 1: Reading configuration file
      ### Phase 2: Generating file list
      ### Phase 3: Creating file information
      ### Phase 4: Searching for incosistencies
      ###
      ### Total files scanned:	2988
      ###	Files added:		1
      ###	Files deleted:		0
      ###	Files changed:		2432
      ###
      ### After applying rules:
      ###	Changes discarded:	2430
      ###	Changes remaining:	1
      ###
      changed:   -rwxr-xr-x  root	16368  Oct 11 13:51:17 1990   /usr/etc/reboot
      ###
      ### Phase 5: Generating expect/observed pairs
      ###
      ### Attr	Observed (is)	 Expected (should be)
      ### ========	==============	 =====================
      /usr/etc/rebot
    		st_ctime:	Nov 25 11:15 1993	Aug	4	21:12  1991 
    W tym przykładzie tripewire informuje, że czas modyfikacji i-węzła pliku /usr/etc/reboot jest inny niż poprzedniego dnia. Może to być sygnał, że podstępny haker podmienił wersję programu /usr/etc/reboot na wersję zaiwerającą niespodziankę czekającą przy kolejnym uruchomieniu programu reboot. Porównanie sumy kontronej programu z wersją z taśmy dystrybutywnej może potwierdzić albo odrzucić podejrzenia, że jest to ślad hakera. Ponieważ niektórzy włamywacze są na tyle sprytni, że potrafią odtworzyć sumę kontrolną zmodyfikowanego pliku, to tripwire używa dwóch różnych metod sprawdzenia sumy kontrolnej.


  10. Solaris na dokładkę
  11. System Solaris zawiera dwa rodzaje zapisów systemowych: System unix'a (Unix System Logs) oraz C2 auditing. W pierwszym rodzaju zapisów przechowywane są informacje o logowaniu użytkowników, wykorzystywanych zasobach, limitach użytkowników i nie tylko. Wiele urządzeń używa zapisów systemowych do ostrzegania administratora systemu o ważnych zdarzeniach. Programy takie jak np. skrypty shela mogą również pisać informacje do dzienników systemowych, aby informować o przypadku wystąpienia specyficznej systuacji. System C2 zwany również kontrolowanym dostępem do danych (Controlled Access Protection) może dostarczać więcej szczegółów dotyczących pracy systemu. W 1980 roku dział zajmujący się ochroną danych zaprojektował system zapisu C2 tak, aby zapisy odbywały się na różnych poziomach ochrony komputera. Zarys wymagań jakie powinien spełniać taki system spisany został w Orange Book lub też Trusted Computer Systems Evaluation Criteria (TC-SEC). Poziomy bezpieczeństwa są oznaczane od litery D (najsłabszy) do oznaczenia A1 (najwyższy poziom ochrony). System C2 może zapisywać informacje pochodzące od użytkowników, pewnych zdarzeń lub klas. W rezultacie C2 umożliwia zapis w dzienniku o dowolnym zdarzeniu, które administrator uzna jako istotne. Solaris C2 zawiera prosty i funkcjonalny tryb ochrony, umożliwiający zapisy systemowe na wyznaczonych poziomach. W nieprzyjemnym przypadku kraksy, dzienniki systemowe są w stanie dostarczyć administratorowi systemu szczegółów, które pomogą wyśledzić przyczynę problemu.