14 czerwca 2010

Obsługa incydentów bezpieczeństwa w systemach Windows oraz Linux

W ostatnim czasie od jednego z czytelników otrzymałem prośbę o następującej treści:
Witam, jacyś niedobrzy ludzie wykradli hasło jednego z administratorów mojego serwera, zalogowali się na jego konto a potem na roota. Czy może Pan pomóc mi i powiedzieć co teraz z tym fantem zrobić?
Spróbujmy wspólnie utworzyć listę czynności, które w pierwszej kolejności warto wykonać, jeśli podejrzewamy fakt wystąpienia tego typu incydentu.

Przede wszystkim należy sobie uzmysłowić, że jeśli bierzemy pod uwagę wystąpienie na drogę prawną, to w żadnym razie nie możemy dopuścić do naruszenia stanu oryginalnych nośników. Jeśli tylko dojdzie do jakiejkolwiek ingerencji w zawartość dysków, sąd może zakwestionować wiarygodność naszych dowodów.

Jeśli jednak sami chcemy przeprowadzić własne dochodzenia i określić skutki ewentualnego włamania, warto zwrócić uwagę przede wszystkim na kilka kwestii. Podstawowych informacji dostarczą nam oczywiście logi systemowe (dobrym pomysłem będzie zabezpieczenie logów w jakiejś innej lokacji) oraz zapis zdarzeń zarejestrowany przez urządzenia takie jak firewalle, systemy IDS/IPS, itp.

Cennych informacji może nam dostarczyć również analiza ustawień sieciowych, konfiguracji DNS, nawiązanych sesji, uruchomionych usług oraz otwartych portów. Wszelkie nietypowe ustawienia lub usługi powinny nas zaniepokoić, gdyż mogą świadczyć o obecności pozostawionych przez włamywaczy tylnych furtkach, za pomocą których będą w stanie ponownie uzyskać dostęp do naszego systemu.

Koniecznie musimy również przeanalizować wszystkie konta użytkowników, zwracając w szczególności uwagę na konta wcześniej nieistniejące lub też nieaktywne. Naszą uwagę powinny również zwrócić nietypowe programy, szczególnie skonfigurowane do okresowego uruchamiania się. Wreszcie dobrym pomysłem będzie sprawdzenie integralności plików systemowych oraz rzucenie okiem na wszystkie zmodyfikowane w ostatnim czasie pliki. Większość obecnie spotykanych systemów operacyjnych jest wyposażona w tego typu możliwości.

Jeśli podejrzewamy, że atak jest w trakcie lub też intruz nadal uzyskuje dostęp do systemu, dobrym pomysłem będzie po prostu odłączenie takiej maszyny od sieci. Nie należy jednak wyłączać stacji roboczej lub serwera, gdyż w najlepszym razie zatrzemy część interesujących informacji.

Poniżej znajduje się kilka wskazówek, pozwalających na praktyczne wykonanie większości powyższych czynności w systemach z rodziny Windows oraz Linux.

Polecenia oraz czynności przydatne w systemach Windows
  • eventvwr (podgląd zdarzeń, analiza systemowych logów)
  • ipconfig /all, arp –a, netstat –nr (konfiguracja sieci i połączeń sieciowych)
  • netstat –nao, netstat -vb, net session, net use (szczegóły nt. połączeń sieciowych)
  • lusrmgr, net users, net localgroup administrators, net group administrators (szczegóły nt. użytkowników i grup)
  • schtasks (zaplanowane zadania)
  • msconfig (programy uruchamiające się w trakcie startu systemu)
  • taskmgr, wmic process list full (lista procesów)
  • net start, tasklist /svc (lista usług)
  • ipconfig /all, more %SystemRoot%\System32\Drivers\etc\hosts, ipconfig /displaydns (ustawienia DNS oraz zawartość pliku hosts)
  • sigverif (weryfikacja integralności plików systemowych)
  • dir /a/o-d/p %SystemRoot%\System32 (lista ostatnio modyfikowanych plików)
Polecenia oraz czynności przydatne w systemach Unix/Linux
  • /var/log/, /var/adm/, /var/spool/ (sprawdzenie zawartości logów, lokacje zmienna w zależności od dystrybucji)
  • wtmp, who, last, lastlog (ostatnie interesujące zdarzenia dotyczące działalności użytkowników)
  • arp –an, route print (konfiguracja sieci)
  • netstat –nap, lsof –i (konfiguracja połączeń sieciowych)
  • more /etc/passwd (lista użytkowników)
  • more /etc/crontab, ls /etc/cron.*, ls /var/at/jobs (zaplanowane zadania)
  • more /etc/resolv.conf, more /etc/hosts (ustawienia DNS oraz zawartość pliku hosts)
  • rpm -Va (weryfikacja integralności poszczególnych pakietów)
  • chkconfig --list (usługi uruchamiające się w trakcie startu systemu)
  • ps aux (lista procesów)
  • ls –lat /, find / -mtime -2d –ls (lista ostatnio modyfikowanych plików)
Oczywiście w przypadku różnych wersji oraz dystrybucji, wykonanie powyższych czynności może wymagać zastosowania nieco lub zupełnie innych poleceń. Wszelkie zebrane dowody działalności intruza należy odpowiednio udokumentować. Wreszcie, po dokładnym zbadaniu incydentu oraz jego skutków, pozostaje nam przywrócenie systemu do jego stanu sprzed włamania (być może wymagana będzie reinstalacja lub też skorzystanie z kopii zapasowej) oraz załatanie wszelkich znanych luk, które mogą spowodować ponowne włamanie.

Zachęcam wszystkich do dodawania w komentarzach własnych pomysłów na przydatne w trakcie tego typu analizy czynności, polecenia, czy też nawet całe narzędzia. Postaram się rozbudowywać powyższy wpis o Wasze najbardziej interesujące wskazówki, które mogą się przydać nam wszystkim!