Monitoring Serwerów - Forum o monitoringu infrastruktury IT
Splunk - wykrywanie włamiań
#1
Pewnie większość z Was zna to z autopsji:
Wczesny ranek, oczka się zamykają, kawa nie smakuje a my siadamy do komputera i mozolnie przeglądamy logi w poszukiwaniu prób włamań, upadłych usług (deamonów) i tym podobnych.
W zależności od systemu wygląda to mniej więcej tak:
Code:
less /var/log/messages |grep invalid

lub
Code:
cat /var/log/messages |grep “authentication failed”

Wszystko zależy w jakim formacie nasza usługa zapisuje logi.
Po przejrzeniu n-tego z kolei serwera kiełkuje w nas myśl – „Ale byłoby fajnie gdyby wszystkie logi spływały do jednego miejsca i można byłoby wtedy szukać guza lub problemu globalnie dla całej podległej nam sieci”.
Myśl sama w sobie raczej mało odkrywcza, bo idea centralnego serwera logów powstała dość dawno, ale dopiero stosunkowo niedawno pojawiło się narzędzie naprawdę godne uwagi – splunk.
Program ten przechowuje i indeksuje dane w czasie rzeczywistym w centralnym punkcie i chroni je za pomocą kontroli dostępu opartej na uprawnieniach użytkowników. Umożliwia on wyszukiwanie, monitorowanie, raportowanie i analizę danych bieżących (w czasie rzeczywistym) oraz danych historycznych. Dzięki tym funkcjom możesz teraz szybko wizualizować i udostępniać swoje dane, niezależnie od tego, jak bardzo są nieuporządkowane, obszerne lub zróżnicowane. 
Narzędzie to ma wiele przydatnych funkcji pozwalających analizować spływające do serwera dane. Wydaje mi się, że w większych przedsiębiorstwa splunk jest niezbędny do kontroli stanu maszyn i ludzi. 
Po zalogowaniu się aplikacja wita nas przyjemnym dla oka designem. Po przejściu do zakładki „Search” możemy paść oczy takim oto widokiem:
[Image: splunk42.png]
Hmm, trochę dużo tych logów jak widać na screenie ponad 69 550. Raczej to nam nie pomoże w codziennym monitoringu. Ale od czego jest pole wyszukiwania? Zabawę czas zacząć: 
W naszym scenariuszu interesują nas logi z nieudanego logowania się przez ssh, a więc wpisujemy:
Code:
Fail

Naciskamy i co widzimy? Raczej niewiele, a już na pewno nie to o co nam chodziło. Sęk w tym, że Splunk filtruje po słowie fail, ale już słowa failed nie uwzględni. Za to nie musimy przejmować się wielkością liter, gdyż tą po prostu ignoruje.
Po tej wskazówce ochoczo dodajemy gwiazdkę, czyli wygląda to teraz tak:
Code:
Fail*

Już jest nieźle, Splunk zwrócił mi już „tylko” 19938 logów. Warto byłoby zawęzić ten wynik. Ponieważ interesuje nas ssh dodajmy tę wartość do pola wyszukiwania:
Code:
fail* process=ssh*

Po określeniu czasu ( w tym przypadku 60 minut) ukazał mi się taki oto wynik:
[Image: splunk51.png]
Przyznacie, że jest już nieźle, choć fakt, że w ciągu ostatniej godziny jakiś domorosły „hakier” próbował się włamać do systemu jest raczej mało optymistyczny. Ponieważ w moich logach pokazały się również nieudane próby zapytań DNS postarałem się o ich eliminację.
Code:
fail* process=ssh* AND NOT DNS

Wynik: 29 matching events. Wszystkie z jednego IP.
Odkryliśmy szkodnika na zdrowej tkance przedsiębiorstwa. Jeżeli zajrzymy do logów później trzeba będzie od nowa budować zapytanie. A może nie trzeba?
O tym w następnym wpisie…
Reply


Forum Jump:

User Panel Messages