Snort jest systemem wykrywania włamań typu open source, którego możesz używać w swoich systemach Linux. W tym poradniku omówimy podstawową konfigurację Snort IDS oraz nauczymy cię jak tworzyć reguły wykrywające różne rodzaje aktywności w systemie.
Do tego poradnika użyjemy sieci: 10.0.0.0/24. Edytuj swój plik /etc/snort/snort.conf i zastąp „any” obok $HOME_NET informacjami o sieci, jak pokazano na poniższym zrzucie ekranu:
Alternatywnie możesz również zdefiniować konkretne adresy IP do monitorowania oddzielone przecinkami, jak pokazano na poniższym zrzucie ekranu:
Teraz zacznijmy i uruchommy to polecenie w wierszu poleceń:
Where:
d= mówi snortowi, aby pokazywał dane
l= określa katalog logów
h= określa sieć do monitorowania
A= instruuje snorta, aby drukował alerty w konsoli
c= określa Snortowi plik konfiguracyjny
Uruchamia szybkie skanowanie z innego urządzenia za pomocą nmapa:
And lets see what happens in the snort console:
Snort wykrył skanowanie, teraz, również z innego urządzenia letts attack with DoS using hping3
Urządzenie wyświetlające Snort wykrywa zły ruch, jak pokazano tutaj:
Ponieważ poinstruowaliśmy Snorta, aby zapisywał logi, możemy je odczytać uruchamiając:
Wprowadzenie do reguł Snorta
Tryb NIDS firmy Snort działa w oparciu o reguły określone w pliku /etc/snort/snort.conf.
Wewnątrz pliku snort.conf możemy znaleźć skomentowane i nieskomentowane reguły, jak widać poniżej:
Ścieżka reguł zwykle jest /etc/snort/rules , tam możemy znaleźć pliki reguł:
Zobaczmy reguły przeciwko backdoorom:
Istnieje kilka reguł zapobiegających atakom typu backdoor, zaskakująca jest reguła przeciwko NetBus, koniowi trojańskiemu, który stał się popularny kilka dekad temu, spójrzmy na nią, a ja wyjaśnię jej części i jak działa:
established”; flow:from_server,established;
flowbits:isset,backdoor.netbus_2.connect; content: „BN|10 00 02 00|”; depth:6; content:”|
05 00|”; depth:2; offset:8; classtype:misc-activity; sid:115; rev:9;)
Ta reguła nakazuje snortowi ostrzeganie o połączeniach TCP na porcie 20034 transmitujących do dowolnego źródła w sieci zewnętrznej.
-> = określa kierunek ruchu, w tym przypadku z naszej chronionej sieci do zewnętrznej
msg = nakazuje alertowi dołączenie określonej wiadomości podczas wyświetlania
content = wyszukiwanie określonej zawartości w pakiecie. Może zawierać tekst, jeśli znajduje się pomiędzy ” ” lub dane binarne, jeśli pomiędzy | |
depth = intensywność analizy, w powyższej regule widzimy dwa różne parametry dla dwóch różnych treści
offset = mówi Snortowi o początkowym bajcie każdego pakietu, aby rozpocząć wyszukiwanie zawartości
classtype = mówi o rodzaju ataku, o którym Snort alarmuje
sid:115 = identyfikator reguły
Tworzenie własnej reguły
Teraz stworzymy nową regułę powiadamiającą o przychodzących połączeniach SSH. Otwórz plik /etc/snort/rules/yourrule.rules, a w środku wklej następujący tekst:
flow:stateless; flags:S+; sid:100006927; rev:1;)
Powiadamiamy Snortowi, aby alarmował o każdym połączeniu tcp z dowolnego zewnętrznego źródła na nasz port ssh (w tym przypadku port domyślny) zawierającym wiadomość tekstową „SSH INCOMING”, gdzie stateless nakazuje Snortowi ignorowanie stanu połączenia.
Teraz musimy dodać regułę, którą stworzyliśmy do naszego pliku /etc/snort/snort.conf. Otwórz plik konfiguracyjny w edytorze i wyszukaj #7, który jest sekcją z regułami. Dodaj niekomentowaną regułę jak na obrazku powyżej, dodając:
Zamiast „yourrule.rules”, ustaw nazwę swojego pliku, w moim przypadku był to test3.rules.
Jak już to zrobisz uruchom ponownie Snorta i zobacz co się stanie.
ssh do twojego urządzenia z innego urządzenia i zobacz co się stanie:
Widzisz, że wykryto przychodzące SSH.
Po tej lekcji mam nadzieję, że wiesz jak tworzyć podstawowe reguły i używać ich do wykrywania aktywności w systemie. Zobacz również tutorial Jak skonfigurować Snorta i zacząć go używać oraz ten sam tutorial dostępny w języku hiszpańskim na Linux.lat.