Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przechwytywanie pakietów jest kluczowym składnikiem do implementowania systemów wykrywania włamań sieci (IDS) i przeprowadzania monitorowania zabezpieczeń sieci. Kilka narzędzi typu open source IDS przetwarza przechwytywanie pakietów i wyszukuje podpisy możliwych włamań sieciowych i złośliwych działań. Korzystając z przechwytywania pakietów zapewnianych przez usługę Azure Network Watcher, możesz analizować sieć pod kątem szkodliwych włamań lub luk w zabezpieczeniach.
Jednym z takich narzędzi typu open source jest Suricata, aparat IDS, który używa zestawów reguł do monitorowania ruchu sieciowego i wyzwala alerty za każdym razem, gdy wystąpią podejrzane zdarzenia. Suricata oferuje wielowątkowy aparat do przeprowadzania analizy ruchu sieciowego ze zwiększoną szybkością i wydajnością. Aby uzyskać więcej informacji na temat suricata i jego możliwości, przejdź do witryny internetowej Suricata.
Scenariusz
W tym artykule wyjaśniono, jak skonfigurować środowisko do wykrywania nieautoryzowanego dostępu do sieci przy użyciu usługi Network Watcher, Suricata i elastycznego stosu.
Usługa Network Watcher zapewnia przechwytywanie pakietów na potrzeby wykrywania nieautoryzowanego dostępu do sieci. Suricata przetwarza pakiety przechwytywane i wyzwala alerty na podstawie pakietów pasujących do zestawu reguł zagrożeń. Suricata przechowuje te alerty w pliku dziennika na komputerze lokalnym.
Za pomocą elastycznego stosu można indeksować dzienniki generowane przez usługę Suricata, a następnie użyć ich do utworzenia pulpitu nawigacyjnego Kibana. Pulpit nawigacyjny zawiera wizualną reprezentację dzienników i sposób szybkiego uzyskiwania szczegółowych informacji na temat potencjalnych luk w zabezpieczeniach sieci.
Możesz skonfigurować oba narzędzia typu open source na maszynie wirtualnej Azure, dzięki czemu będziesz mógł przeprowadzać tę analizę w ramach własnego środowiska sieciowego Azure.
Instalowanie narzędzia Suricata
W terminalu wiersza polecenia maszyny wirtualnej uruchom następujące polecenia:
sudo add-apt-repository ppa:oisf/suricata-stable sudo apt-get update sudo apt-get install suricata
Aby zweryfikować instalację, uruchom polecenie
suricata -h
, aby wyświetlić pełną listę poleceń.
Inne metody instalacji można znaleźć w przewodniku Szybki start dotyczącym instalacji Suricata.
Pobierz zestaw reguł pojawiających się zagrożeń
Na tym etapie nie masz żadnych reguł do uruchomienia Suricata. Możesz utworzyć własne reguły, jeśli chcesz wykryć określone zagrożenia w sieci. Możesz również użyć opracowanych zestawów reguł od różnych dostawców, takich jak nowe zagrożenia lub reguły Talos z programu Snort. W tym artykule użyjesz bezpłatnego zestawu reguł Pojawiających się zagrożeń.
Pobierz zestaw reguł i skopiuj go do katalogu:
wget https://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
tar zxf emerging.rules.tar.gz
sudo cp -r rules /etc/suricata/
Przetwarzaj przechwyty pakietów przy użyciu Suricata
Aby przetworzyć pakiety przy użyciu narzędzia Suricata, wykonaj to polecenie:
sudo suricata -c /etc/suricata/suricata.yaml -r <location_of_pcapfile>
Aby sprawdzić wynikowe alerty, przeczytaj plik fast.log.
tail -f /var/log/suricata/fast.log
Konfigurowanie elastycznego stosu
Dzienniki, które tworzy Suricata, zawierają cenne informacje o tym, co dzieje się w sieci, ale te pliki dziennika nie są najłatwiejsze do odczytania i zrozumienia. Łącząc Suricata z platformą Elastic Stack, możesz utworzyć pulpit nawigacyjny Kibana, aby wyszukiwać, tworzyć wykresy, analizować oraz uzyskiwać wnioski z dzienników.
Instalowanie programu Elasticsearch
Usługa Elastic Stack w wersji 5.0 lub nowszej wymaga środowiska Java 8. Uruchom polecenie
java -version
, aby sprawdzić wersję. Jeśli nie masz zainstalowanego języka Java, zapoznaj się z dokumentacją dotyczącą zestawów Java Development Kit obsługiwanych przez platformę Azure.Pobierz prawidłowy pakiet binarny dla systemu:
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.0.deb sudo dpkg -i elasticsearch-5.2.0.deb sudo /etc/init.d/elasticsearch start
Inne metody instalacji można znaleźć na stronie internetowej Elastic na potrzeby instalowania programu Elasticsearch.
Sprawdź, czy program Elasticsearch jest uruchomiony przy użyciu tego polecenia:
curl http://127.0.0.1:9200
Powinna zostać wyświetlona odpowiedź podobna do tego przykładu:
{ "name" : "Angela Del Toro", "cluster_name" : "elasticsearch", "version" : { "number" : "5.2.0", "build_hash" : "8ff36d139e16f8720f2947ef62c8167a888992fe", "build_timestamp" : "2016-01-27T13:32:39Z", "build_snapshot" : false, "lucene_version" : "6.1.0" }, "tagline" : "You Know, for Search" }
Aby uzyskać więcej instrukcji dotyczących instalowania programu Elasticsearch, zobacz stronę internetową Elastic dotyczącą instalacji.
Instalowanie usługi Logstash
Zainstaluj usługę Logstash, uruchamiając następujące polecenia:
curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-5.2.0.deb sudo dpkg -i logstash-5.2.0.deb
Skonfiguruj usługę Logstash do odczytu z danych wyjściowych pliku eve.json . Utwórz plik logstash.conf przy użyciu tego polecenia:
sudo touch /etc/logstash/conf.d/logstash.conf
Dodaj następującą zawartość do pliku. Upewnij się, że ścieżka do pliku eve.json jest poprawna.
input { file { path => ["/var/log/suricata/eve.json"] codec => "json" type => "SuricataIDPS" } } filter { if [type] == "SuricataIDPS" { date { match => [ "timestamp", "ISO8601" ] } ruby { code => " if event.get('[event_type]') == 'fileinfo' event.set('[fileinfo][type]', event.get('[fileinfo][magic]').to_s.split(',')[0]) end " } ruby{ code => " if event.get('[event_type]') == 'alert' sp = event.get('[alert][signature]').to_s.split(' group ') if (sp.length == 2) and /\A\d+\z/.match(sp[1]) event.set('[alert][signature]', sp[0]) end end " } } if [src_ip] { geoip { source => "src_ip" target => "geoip" #database => "/opt/logstash/vendor/geoip/GeoLiteCity.dat" add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ] add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ] } mutate { convert => [ "[geoip][coordinates]", "float" ] } if ![geoip.ip] { if [dest_ip] { geoip { source => "dest_ip" target => "geoip" #database => "/opt/logstash/vendor/geoip/GeoLiteCity.dat" add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ] add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ] } mutate { convert => [ "[geoip][coordinates]", "float" ] } } } } } output { elasticsearch { hosts => "localhost" } }
Nadaj poprawne uprawnienia do pliku eve.json , aby usługa Logstash mogła pozyskać plik:
sudo chmod 775 /var/log/suricata/eve.json
Uruchom usługę Logstash, uruchamiając następujące polecenie:
sudo /etc/init.d/logstash start
Aby uzyskać więcej instrukcji dotyczących instalowania Logstash, zapoznaj się z oficjalną dokumentacją Elastic.
Instalowanie narzędzia Kibana
Uruchom następujące polecenia, aby zainstalować oprogramowanie Kibana:
curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-5.2.0-linux-x86_64.tar.gz tar xzvf kibana-5.2.0-linux-x86_64.tar.gz
Uruchom program Kibana przy użyciu następujących poleceń:
cd kibana-5.2.0-linux-x86_64/ ./bin/kibana
Wyświetl interfejs internetowy Kibana, przechodząc do strony
http://localhost:5601
.W tym scenariuszu wzorzec indeksu używany dla dzienników Suricata to
logstash-*
.Jeśli chcesz zdalnie wyświetlić pulpit nawigacyjny Kibana, utwórz regułę sieciowej grupy zabezpieczeń dla ruchu przychodzącego, która umożliwia dostęp do portu 5601.
Tworzenie pulpitu nawigacyjnego Kibana
Ten artykuł zawiera przykładowy pulpit nawigacyjny umożliwiający wyświetlanie trendów i szczegółów w alertach. Aby go użyć:
Pobierz plik pulpitu nawigacyjnego, plik wizualizacji i plik zapisanego wyszukiwania.
Na karcie Zarządzanie narzędzia Kibana przejdź do pozycji Zapisane obiekty i zaimportuj wszystkie trzy pliki. Następnie na karcie Pulpit nawigacyjny możesz otworzyć i załadować przykładowy pulpit nawigacyjny.
Możesz również utworzyć własne wizualizacje i pulpity nawigacyjne dostosowane do metryk, które cię interesują. Przeczytaj więcej na temat tworzenia wizualizacji Kibana z oficjalnej dokumentacji Kibany.
Wizualizowanie dzienników alertów usługi IDS
Przykładowy pulpit nawigacyjny zawiera kilka wizualizacji dzienników alertów Suricata:
Alert według geoIP: mapa przedstawiająca dystrybucję alertów według ich kraju/regionu pochodzenia na podstawie lokalizacji geograficznej (określonej przez adres IP).
10 najważniejszych alertów: podsumowanie 10 najczęściej wyzwalanych alertów i ich opisów. Wybranie pojedynczego alertu filtruje pulpit nawigacyjny według informacji dotyczących tego konkretnego alertu.
Liczba alertów: łączna liczba alertów wyzwalanych przez zestaw reguł.
20 najlepszych ScrIP — alerty, 20 najlepszych DestIP — alerty, 20 najlepszych SrcPort — alerty, 20 najlepszych DestPort — alerty: Wykresy kołowe pokazujące źródła i miejsca docelowe dla 20 najlepszych adresów IP i portów, na których zostały wyzwolone alerty. Możesz filtrować określone adresy IP lub porty, aby zobaczyć, ile i jakiego rodzaju alerty są wyzwalane.
Podsumowanie alertów: tabela zawierająca podsumowanie szczegółowych informacji o każdym alercie. Możesz dostosować tę tabelę, aby wyświetlić inne interesujące parametry dla każdego alertu.
Aby uzyskać więcej informacji na temat tworzenia niestandardowych wizualizacji i pulpitów nawigacyjnych, zobacz oficjalną dokumentację Kibany.
Podsumowanie
Łącząc przechwytywanie pakietów z usługi Network Watcher i narzędzi typu open source IDS, takich jak Suricata, można przeprowadzić wykrywanie włamań sieci dla szerokiego zakresu zagrożeń.
Pulpity nawigacyjne ułatwiają szybkie wykrywanie trendów i anomalii w sieci. Możesz również użyć pulpitów nawigacyjnych, aby zbadać dane w celu odnalezienia głównych przyczyn alertów, takich jak złośliwi agenci użytkowników lub porty podatne na zagrożenia. Dzięki tym wyodrębnionym danym możesz podejmować świadome decyzje dotyczące wykonywania następujących czynności:
- Reagowanie i ochrona sieci przed szkodliwymi próbami włamania.
- Utwórz reguły, aby zapobiec przyszłym włamaniom do sieci.
Następny krok
Dowiedz się, jak wyzwalać przechwytywanie pakietów na podstawie alertów: