| 
 | 
|  | 
| 
 | 
| Ten dokument jest dostępny w następujących językach: English Castellano Deutsch Francais Nederlands Russian Turkce Polish | 
| ![[Photo of the Author]](../../common/images/JoseGonzalez.jpg)  José Salvador González Rivera <jsgr(at)tec.com.mx> O Autorze: José Salvador González Rivera jest aktywnym członkiem Linux Users Group of Puebla (Meksyk). Jest zaangażowany w promowanie wolnego oprogramowania, a szczególnie Linuksa. Od niedawna posiada stopień naukowy z zakresu Systemów Komputerowych. Z autorem można się skontaktować używając adresów: jsgr(at)tec.com.mx lub jsgr(at)linuxpuebla.org. Translated to Polish by: Radosław Wesołowski <wesolek(at)box43.gnet.pl> Zawartość: 
 | 
![[debian]](../../common/images/debian.gif) 
Notka:
Wojsko, administracja, przemysł, finanse - we wszystkich tych branżach cyfrowe dane mają kluczowe znaczenie. Nowoczesne sposoby przechowywania danych przynoszą jednak nie tylko korzyści, ale również zagrożenia. Elektroniczne dane łatwiej, niż tradycyjne - dają się przechwycić lub zdalnie zniszczyć. W tym artykule przedstawię techniki, oraz narzędzia, których możemy użyć w systemie Debian GNU/Linux do wykrycia i wytropienia intruzów. Artykuł ten powstał w oparciu o rzeczywiste sytuacje i problemy, które mogą przytrafić się każdemu administratorowi.
Wybór dystrybucji Linuksa nie jest łatwy, ponieważ istnieje ich bardzo
       wiele. Jednak większość z nich   bazuje na dystrybucji RedHat na przykład:
Conectiva (Brazylia),        Hispa source (Hiszpania), Mandrake (Francja),
SuSE (Niemcy), Caldera  oraz     wiele innych  wykorzystujących pakiety RPM.
               Odmienną politykę przyjęli autorzy dystrybucji Slackware.
Starają     się   oni  być bliżsi tradycyjnemu systemowi Unix, dlatego stosują
pakiety     w formie   archiwów .tgz. Prawie wszystkie obecnie rozpowszechnione
dystrybucje     są tworzone  przez komercyjne firmy. Sprawa wygląda inaczej
z Debianem,   który  jest tworzony  przez ochotników. Ponad to zarządzanie
pakietami odbywa   się  przy pomocy narzędzia   DPKG, które może automatycznie
uaktualniać pakiety     korzystając z Internetu,   ustala także zależności
pomiędzy tymi pakietami.     Takie rozwiązanie znacznie   ułatwia pracę administratorowi
i sprawia,  że   system zawsze posiada najnowsze   (pozbawione błędów) wersje
programów.
               
Debian ma kilka szczególnych właściwości:
               
1) Nie posiada komercyjnego wsparcia, przez co nie ulega wpływom rynku.
               2) Posiada doskonały system śledzenia błędów, a problemy rozwiązywane
      są  w niecałe 48 godzin.
               3) Od początku głównym założeniem było stworzenie kompletnego,
  niezawodnego      systemu operacyjnego.
               4) Jest rozwijany przez ochotników na całym świecie.
               
               Każda nowa wersja posiada wsparcie dla nowych typów architektur
   sprzętowych.     Obecnie są to: Alpha, ARM, HP PARISC, Intel x86, Intel
 IA-64,  Motorola  680x0,   MIPS, MIPS (DEC), Power PC, IBM S/390, Sparc,
ponad to  Debiana możemy  spotkać   na Sun UltraSparcm, oraz Hitachi SuperH.
System  operacyjny Linux  wspiera  obecnie największą liczbę platform sprzętowych.
               
               Wśród istniejących pakietów przeznaczonych dla Debiana, możemy
  spotkać     różne  narzędzia, które w rzeczywistym czasie mogą wykryć próby
  włamania.    Istnieją  dwa podstawowe  typy: aplikacje monitorujące sieć
w poszukiwaniu   prób    ataku, oraz badające  szczególne zachowanie hosta.
W celu wykrycia prób skanowania portów używa się narzędzia o nazwie PortSentry.
       TripWire ma zastosowanie przy badaniu integralności systemu, natomiast
      LogSentry analizuje logi systemowe. Pierwszy i ostatni  wchodzą w skład
pakietu TriSentry tworzonego przez Psionic Technologies.  
               
PortSentry monitoruje porty naszego systemu i w razie próby połączenia z portem, który jest zdefiniowany, wykonuję określoną akcję (zwykle blokuje połączenie).
Strona domowa znajduje się pod adresem http://www.psionic.com/products/portsentry.html.
       PortSentry dostępny jest dla systemów: Solaris,BSD, AIX, SCO, Digital
   Unix,HP-UX,    oraz oczywiście  Linux.
               
               Zainstalowanie pakietu w systemie Debian GNU/Linux  sprowadza
  się   do  wydania   następującego polecenia:
               
               apt-get install portsentry
               
               Program możemy uruchomić w jednym z trybów: classic, stealth,
  advanced,      a konfiguracja zależy od wpisów w  pliku /usr/local/psionic/portsentry/portsentry.conf.
               
Opis głównych opcji można znaleźć w artykule z ES Linux Magazine, którego autorem jest José Torres Luque. Oto niektóre z nich:
TCP_PORTS, w tym miejscu definiujemy które porty mają być
       kontrolowane, czy to w  trybie classic, czy też stealth. Autor programu
       dostarcza trzy listy portów, zależne od poziomu bezpieczeństwa, który
   mamy    zamiar zastosować. Maksymalnie można zdefiniować 64 porty.  
              
             UDP_PORTS, podobnie jak wyżej, z tym, że definiujemy porty UDP.
              
              ADVANCED_PORTS_TCP, ADVANCED_PORTS_UDP, wskazuje najwyższy
numer    portu,    używany w trybie zaawansowanym. Każdy port, którego numer
jest   niższy od   zdefiniowanego będzie sprawdzany. Wyjątkiem są porty
wyłączone   z obserwacji.   Najwyższy możliwy numer portu to 65535, jednak
 w celu uniknięcia   fałszywych   alarmów zalecam zdefiniowanie liczby mniejszej
niż 1024.
                                
              ADVANCED_EXCLUDE_TCP, ADVANCED_EXCLUDE_UDP, lista portów wyłączonych
     z  monitoringu w trybie zaawansowanym. Opcja ta ma szczególnie  zastosowanie
      dla serwisów takich jak ident.      
             
              IGNORE_FILE, tutaj należy podać ścieżkę do pliku, w którym
znajdują     się   adresy IP wyłączone z monitoringu.  Najlepszym rozwiązaniem
jest  dodanie    do tego pliku adresów interfejsu lo oraz lokalnej sieci.
             
              KILL_ROUTE, opcja ta umożliwia dodanie komendy, która zablokuje
  atakującemu     dostęp do naszego hosta. Na przykład:  iptables -I INPUT
 -s $TARGET$ -j   DROP,  gdzie $TARGET$ odnosi się do adresu napastnika.
        
             
              KILL_RUN_CMD, wskazujemy komendę, która zostanie wykonana przed
  zablokowaniem     dostępu.
             
              SCAN_TRIGGER, definiuje liczbę prób, po której zostanie uaktywniony
    alarm.
             
              PORT_BANNER, wyświetla wiadomość po połączeniu się z portem
kontrolowanym       przez portsentry.     
               
            Po skonfigurowaniu należy uruchomić program wybierając jeden
z  trzech    trybów  jako parametr. Dla protokołu TCP są to : -tcp (podstawowy
 tryb),   -stcp(tryb  stealth), -atcp (zaawansowany tryb), natomiast dla
protokołu   UDP odpowiednio:  -udp, -sudp, -audp.     
TripWire pozwala na sprawdzanie integralności systemu. Strona domowa projektu
  znajduję się pod adresem http://www.tripwire.org
      . Narzędzie to jest dostępne za darmo dla Linuksa, jak również w wersji
    komercyjnej  dla systemów operacyjnych takich jak: Windows NT, Solaris,
  AIX  i HP-UX.
            
            Instalacja narzędzia w Debianie sprowadza się do wydania następującego
     polecenia:
            
            apt-get install tripwire 
            
Do przechowywania informacji potrzebne sa dwa klucze: "site key", uzywany
      do szyfrowania plików konfiguracyjnych, oraz "local key", uzywany do
 szyfrowania     informacji mówiącej o statusie monitorowanych plików. 
            
            Konfiguracji dokonuje się w pliku /etc/tripwire/twpol.txt, po
skonfigurowaniu      należy ten plik "załadować":
            
            twadmin -m P /etc/tripwire/twpo.txt
            
Aby stworzyć nową bazę danych zawierającą obecny status plików należy
wydać polecenie: 
            
            tripwire -m i 2
            
            Żeby dokonać sprawdzenia integralności systemu plików należy
wpisać    polecenie:
            
            tripwire -m c
            
Plik konfiguracyjny moze byc usuniety. Zapobiegnie to poznaniu konfiguracji
      przez wlamywacza.
            
            rm /etc/tripwire/twcfg.txt /etc/tripwire/twpol.txt
            
Aby go ponownie stworzyć wydaj polecenie:
            
twadmin -m p > /etc/tripwire/twpol1.txt twadmin -m f > /etc/tripwire/twcfg.txt
LogCheck jest częścią LogSentry i pozwala na analizowanie logów w bardzo
      skuteczny sposób. Tworzy raporty, w których uwzględnia błędy wymagające
    przeczytania,  ponad to umożliwia logowanie zdarzeń przy użyciu jednego
  z  czterech poziomów:  ignore (zignoruj), unusual activity (działanie nadzwyczajne),
    violation of  security (naruszenie bezpieczeństwa), attack (atak).
            
Więcej informacji o LogCheck można znaleźć na stronie http://www.psionic.com/products/logsentry.html.
      Dostępne są wersje dla systemów: Solaris, BSD, HP-UX, Linux.
            
            Instalacja pakietu:
            
            apt-get install logcheck
            
            Spowoduje to zainstalowanie programu logtail w katalogu /usr/local/bin,
     który trzyma listę logów już przeanalizowanych. Ponad to zastaną zainstalowane
      następujące pliki:
Logcheck.sh,
           Skrypt zawierający podstawową konfigurację.
             
           Logcheck.hacking,
           Przechowuje zasady definiujące poziom aktywności. 
            
           Logcheck.ignore,
           Ignorowane wyrażenia.
             
           Logcheck.violations,
           Wyrażenia które zostaną uznane jako naruszenie bezpieczeństwa.
            
           Logcheck.violations.ignore, 
          Te wyrażenia mają zostać zignorowane.      
Program logcheck można uruchamiać przy pomocy crona na przykład co godzinę:
     0 * * * */bin/sh /usr/local/etc/logcheck.sh 
          
Snort jest narzędziem do wykrywania prób ataków poprzez siec. Strona domowa
     dostępna jest pod adresem  http://www.snort.org.
Program możemy zainstalować na następujących systemach: BSD, Solaris,
 AIX, Irix, Windows, MacOS X i oczywiście Linux.
          
          Instalacja Snorta w Debianie jest standardowa i wymaga wydania
polecenia:
          
          apt-get install snort
          
Snort pracuje w trzech różnych trybach: jako sniffer, logger pakietów,
     oraz jako detektor intruzów. 
          
Może być uruchomiony z następującymi parametrami:
-l katalog 
         wskazuje katalog, w którym przechowywane są pliki z logami.
         
          -h IP 
         definiuje adres IP sieci, którą chcemy kontrolować.  
         
         -b
         przechwytuje każdy pakiet jako dane binarne (w formacie tcpdumpa).
         
        -r 
         plik przetwarza plik binarny.
       
Działając jako sniffer program czyta każdy pakiet przechodzący przez sieć
   i wyświetla go na konsoli, podczas gdy działając jako logger pakietów
zapisuje    je do pliku.
      
      Snort -v
      
      Pokazuje adresy IP oraz nagłówki
      
      Snort -dv
      
      Pokazuje krążące dane
      
      Snort -dev
      
      Bardziej szczegółowy sposób
       
W tym trybie snort informuje nas o skanowaniu portów, atakach typu DoS (Deny of Service), exploitach itd, w zależności od zasad zdefiniowanych w pliku /usr/local/share/snort. Plik z definicjami może być pobrany ze strony, a serwer może go odświeżać co godzinę.
Konfiguracja jest bardzo prosta i polega na zmianie wpisów dotyczących naszej sieci, oraz katalogów, w pliku snort.conf. Zmień tylko IP :
var HOME_NET IP
a następnie uruchom program:
snort -c snort.conf
Dzienniki zdarzeń  przechowywane są w pliku /var/log/snort, korzystając
   z tego pliku możemy poznać adresy IP napastników. Oczywiście jest to tylko
   krótki opis możliwości snorta i zalecana jest dalsza analiza tematu. Według
   większości organizacji, magazynów, oraz grup zajmujących się bezpieczeństwem
   snort jest najlepszym narzędziem typu "Intrusion Detection System" zarówno
   dla Unixa, jak i Windowsa. Ze strony niektórych firm takich jak Silicon
 Defense,  lub  Source Fire można uzyskać komercyjne wsparcie, pojawiają
się  nawet graficzne  interfejsy, które pozwalają na bardziej atrakcyjną
formę  prezentacji wyników.
      
      Czasami występują sytuacje nadzwyczajne, kiedy pojawiają się problemy
 jak  dotąd nie brane pod uwagę. Wymagają one natychmiastowego rozwiązania.
 
      
      Najczęściej ich przyczyną są ataki crackerów, którzy chcą ukraść lub
zmienić   dane znajdujące się w naszym systemie, wykorzystać nasz serwer do
ataku na  inne maszyny, lub po prostu zainstalować snieffera lub rootkita
w celu zdobycia  większych uprawnień
      
Sniffer jest narzędziem, które ustawia nasz interfejs sieciowy w tryb promiscuous i służy do podsłuchiwania całego ruchu w sieci. Program ifconfig dostarcza wyczerpujących informacji na temat interfejsu sieciowego. Przykład:
eth0       Link encap:Ethernet  HWaddr 00:50:BF:1C:41:59
                           inet addr:10.45.202.145  Bcast:255.255.255.255
Mask:255.255.128.0
                           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                           RX packets:7180 errors:0 dropped:0 overruns:0
frame:0
                           TX packets:4774 errors:0 dropped:0 overruns:0
carrier:0
                           collisions:0 txqueuelen:100
                           RX bytes:8122437 (7.7 MiB)  TX bytes:294607 (287.7
  KiB)
                           Interrupt:10 Base address:0xc000
                
Jednak, gdy plik ifconfig zostanie zamieniony, badź też, jezeli sniffer jest uruchomiony na innej maszynie, naleźy sprawdziź połaczenia zewnętrzne, albo spróbować znaleźc logi sniffera.
Aby sprawdzić, czy interfejsy znajdujące się wewnątrz naszej sieci są
w trybie promiscuous można użyć narzędzia o nazwie neped, które zostało stworzone
   przez Hiszpańską grupę hakerów. Nie jest ono częścią Debiana, ale może
być   pobrane z : ftp://apostols.org/AposTools/snapshots/neped/neped.c
      Notka: serwer nie działa od kilku tygodni.
      
      Oto wyniki działania programu:
      
neped eth0
                ----------------------------------------------------------
                 > My HW Addr: 00:80:F6:C2:0E:2A
                 > My IP Addr: 192.168.0.1
                 > My NETMASK: 255.255.255.0
                 > My BROADCAST: 192.168.1.255
                ----------------------------------------------------------
                   Scanning ....
                *  Host 192.168.0.2, 00:C2:0F:64:08:FF **** Promiscuous mode
  detected     !!!
                   End.
                
Kiedy wysyłamy pakiet z adresu 191.168.0.1 na adres 192.168.0.2 musimy
   znać adres MAC karty sieciowej. Adres taki uzyskujemy wysyłając pakiet
z  zapytaniem o adres MAC komputera o danym adresie IP na adres broadcast
naszej  sieci. Wszystkie maszyny odczytają zapytanie, lecz tylko właściwa
maszyna  na nie odpowie.
      
      W naszym przypadku neped sprawdził wszystkie adresy IP. Jednak, aby
wykryć   sniffera nie używa on adresu broadcast, lecz innego specjalnie spreparowanego.
   Tylko komputery, których interfejsy są w trybie promiscuous odczytają
pakiet    i odpowiedzą na niego. 
      
      Znalazłem ten program w Internecie, a dokładnie w artykule na temat
wykrywania   podsłuchu. Przytoczony był tam podobny przykład. Jeżeli znasz
adres URL tego  artykułu wyślij mi emalia, ponieważ moja kopia gdzieś się
zapodziała :-).
      
Rootkity pozwalają na zdobycie przez zwykłego użytkownika dodatkowych
uprawnień. W skrócie, zamieniają one nasze pliki binarne na inne by później
uzyskać dostęp do systemu. Dlatego należy sprawdzać, czy posiadamy tylko
oryginalne wersje. Do tego celu służy narzędzie o nazwie, chkrootkit, które
można zainstalować    wydając polecenie:
      
      apt-get install chkrootkit
      
      Strona domowa znajduje się pod adresem www.chkrootkit.org, natomiast w wyniku
   użycia programu zostają sprawdzone następujące pliki:
 aliens, asp, bindshell, lkm, rexedcs, sniffer, wted, z2,
       amd, basename, biff, chfn, chsh, cron, date, du, dirname, echo, egrep,
    env,   find, fingerd, gpm, grep, hdparm, su, ifconfig, inetd, inetdconf,
   identd,   killall, ldsopreload, login, ls, lsof, mail, mingetty, netstat,
   named, passwd,  pidof, pop2, pop3, ps, pstree, rpcinfo, rlogind, rshd,
slogin,   sendmail,  sshd, syslogd, tar, tcpd, top, telnetd, timed, traceroute,
w,  write 
               
     Aby użyć programu wystarczy wydać polecenie:
        
    chkrootkit.
       
    Sprawdzi ono pliki pod kątem znanych rootkitów i snifferów. Są jeszcze
 inne  narzędzia do sprawdzania wymiany  dzienników (chkwtmp and chklastlog).
 Z kolei ifpromisc powie czy nasz interfejs jest w trybie promiscuous. 
               
     
Zanim zaczniesz korzystać z oprogramowania - zapoznaj się z podręcznikami
  systemowym. Poniżej przedstawiłem kilka odnośników, z których sam korzystałem.
  jeżeli znasz inne lub masz jakieś sugestie napisz do mnie list.
    
| 
 | 
| Strona prowadzona przez redakcję LinuxFocus © José Salvador González Rivera, FDL LinuxFocus.org | tłumaczenie: 
 | 
2002-12-22, generated by lfparser version 2.33