Wyślij zapytanie Dołącz do Sii

Podstawą automatyzacji zadań jest wybranie języka programowania, który będzie nam pomagać zrealizować cel. Ja zdecydowałem się na Pythona, dlatego że jest on dostępny zarówno na system operacyjny Windows jak i na Linux. Wykorzystuje się go jako podstawowy język w aplikacjach SOAR (Security Orchestration, Automation and Response). Ponadto, jest wysokopoziomowy, a przy użyciu dostępnych bibliotek ma nieograniczone możliwości.

Pierwsze kroki z automatyzacją zadań

Doświadczenie z automatyzacją zadań rozpocząłem od nauki podstaw programowania tego języka oraz wyznaczenia sobie celu. W moim przypadku było nim sprawdzenie wielu IOC (Indicator of Compromise) URL na stronie VirusTotal.com. Na VT można znaleźć bardzo dobrze przygotowaną dokumentację do API (Application Programming Interface) pomagającą przy utworzeniu połączenia, autentykacji oraz wysyłaniu i odbieraniu żądań. Niekiedy również – jak w tym przypadku – niemal całkowite rozwiązanie podane jest w dokumentacji:

Wystarczy jedynie wyszukać potrzebną akcję, zmienić język z domyślnego Shell na Python oraz wypełnić pola – jak w przykładzie URL oraz x-apikey. Dokumentacja wspiera nas również m.in. poprzez wskazanie wymaganych bibliotek i informując, jak je zainstalować w naszym środowisku.  

Do realizacji mojego celu wystarczyło skopiować kod programu i delikatnie go zmodyfikować, by móc przeskanować 100 URL na raz, eliminując element ręcznego klikania przez WebGui albo zmieniania parametru URL w kodzie programu.

Na szczęście miałem do dyspozycji plik z IOC, więc wystarczyło go zaimportować do programu i w pętli wykonywać połączenia do serwisu, a wyniki zapisywać do osobnego pliku. Odpowiedź z serwera, zawiera bardzo dużo informacji, jednak dla mnie najważniejsze były adresy URL, liczba pozytywnych wyników oraz suma wszystkich skanów.

Dla przykładu kod programu w Python:

fragment kodu

Jak widać na przykładzie, prosta modyfikacja kodu pozwoliła zaoszczędzić parę godzin sprawdzania 100 adresów URL w serwisie. Wiele obecnie wiodących serwisów posiada interface API w celu automatyzacji lub bez graficznego połączenia się z nim i uzyskania takich samych danych lub nawet ich większej ilości.

Wykorzystanie Splunk SOAR

Podobne rozwiązanie tematu oraz szersze wykorzystanie automatyzacji zadań daje np. Splunk SOAR (dawniej Phantom). Jest to bardzo dobre narzędzie z rodziny Splunk, które idealnie współpracuje z Splunk Enterprise Security i generowanymi tam notable evantami (incydentami o bardzo wysokiej ważności).

Wszystkie ograniczenia Splunk ES da się rozwiązać przy pomocy Splunk SOAR i jego Playbooków oraz wynikających z nich automatyzacji. A to, czego nie da się wykonać za pomocą dostępnych akcji z aplikacji, możemy dowolnie zaprogramować przy użyciu języka Python w istniejących blokach (co nie jest zalecane w dedykowanych w tym celu Custom Functions).

W dobrze skonfigurowanym środowisku Splunk SOAR z odpowiednimi aplikacjami oraz Playbookami można np.:

  • weryfikować zaraportowane maile jako Phishing,
  • wyciągać automatycznie wszystkie dostępne IOC – te widoczne jak i ukryte w kodzie e-maila oraz załącznikach,
  • weryfikować ważność użytkownika, który zaraportował e-mail,
  • automatycznie rozwijać short URL oraz wyciągać domeny i IP z domen i URL,
  • sprawdzać, czy dany adres e-mail, temat lub treść nie znajduję na White liście,
  • sprawdzać reputację pozyskanych IOC w różnych zewnętrznych lub wewnętrznych serwisach,
  • wysyłać e-maile automatycznie do Sandboxa,
  • przesyłać e-maile do AI,
  • weryfikować automatycznie parametry z Header takie jak: dmarc, dkim, spf,
  • sprawdzać w lokalnej lub zewnętrznej bazie danych, czy dany sender nie jest na Black liście,
  • sprawdzać w poprzednio zaraportowanych e-mailach podobieństwa i zamykać automatycznie w przypadku znalezienia podobnego,
  • blokować URL sendera, czyścić skrzynki z zaraportowanego e-maila u innych użytkowników,
  • wiele innych akcji, które analityk musi wykonać ręcznie w różnych serwisach, a mogło by to zostać wykonane automatycznie przy użyciu aplikacji używających API w celu realizacji zadań.

Przykładowe użycie Splunk SOAR

W przykładzie ze skanowaniem 100 adresów URL opisanym na początku artykułu można również posłużyć się Splunk SOAR.

Najlepiej w tym celu stworzyć nowego Playbooka. Wystarczy wówczas dodać blok z aplikacją Virustotal, w której wybieramy akcję url reputation, a w polu url wybieramy artifact.requestUrl. Następnie zapisujemy Playbooka z dowolną nazwą, wybieramy, aby działał na wszystkich label.

Kolejno przechodzimy np. do source -> events i tworzymy nowy container, do którego w zakładce Files wrzucamy plik IOC.txt. Uruchamiamy przycisk action i tam wybieramy akcję extract ioc z aplikacji Parser. W ten sposób zostaną wyciągnięte wszystkie adresy URL z pliku IOC.txt. Podajemy vaultId wcześniej zapisanego pliku i uruchamiamy akcję. Utworzy to 100 artefaktów, które posłużą nam do wcześniej utworzonego Playbooka.

Następnie uruchamiamy nasz Playbook, a on wygeneruje serię zapytań do VirusTotal i dzięki temu w prosty sposób otrzymamy informację o reputacji każdego adresu URL z pliku. Wynik z działania aplikacji znajdziemy w zakładce Widgets na dole strony.

Jak można zauważyć, automatyzacja zadań z udziałem Splunk SOAR nie wymaga znajomości programowania, a jedynie bazuje na prostych umiejętnościach w posługiwaniu się tą aplikacją. Jednak nie każdego wynik tej operacji może satysfakcjonować.

Kolejnym krokiem powinno być dostosowanie wyników do potrzeb, czyli np. wpisanie najważniejszych informacji bezpośrednio do artifactu. W tym celu należy użyć bloku Custom function i w nim, wykorzystując polecenia update_artifact, zaktualizować artefakt o wynik positives i total dla każdego z artefaktów. Dodatkowo, można też zmienić serverity z domyślnego medium na low lub high w zależności od liczby znalezionych positives przez VirusTotal. Dzięki temu uzyskamy przejrzysty wgląd w artefakty zawierające URL z wynikami, które nas interesują. Uzyskane dane możemy też wyeksportować do pliku w formacie JSON i wykorzystać je w innych systemach.

Podany Playbook jest jedynie przykładem wykorzystującym aplikację VirusTotal, jednak nic nie stoi nam na przeszkodzie, by w prosty sposób dodać do niego dodatkowe serwisy sprawdzające reputację oraz logikę, która ujednolica wyniki i podaje prosty scoring dla analityka.

Podsumowanie

W analizie incydentów Cyberbezpieczeństwa na tę chwilę jest coraz mniej miejsca na manualną analizę. Dzięki wykorzystaniu automatyzacji w jak największej liczbie miejsc, możemy pozwolić sobie na uzyskanie większej ilości znormalizowanych wyników z wielu różnych źródeł. Pozwala nam to na przesunięcie dostępnych zasobów ludzkich do bardziej wymagających incydentów bezpieczeństwa oraz na dodatkowe treningi wiedzy dla analityków.

***

Jeśli interesuje Cię obszar Cyberbezpieczeństwa, polecamy również inne artykuły naszych ekspertów.

5/5 ( głosy: 2)
Ocena:
5/5 ( głosy: 2)
Autor
Avatar
Marek Zontek

Ma 15-letnie doświadczenie w szeroko rozumianym IT, w tym 5-letnie doświadczenie w Cyberbezpieczeństwie. Certyfikowany Splunk SOAR inżynier. Na co dzień zajmuje się administracją Splunk SOAR, Splunk ES oraz tworzeniem automatyzacji zadań. Jego hobby to wspinaczka ściankowa oraz składanie modeli.

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Może Cię również zainteresować

Pokaż więcej artykułów

Bądź na bieżąco

Zasubskrybuj naszego bloga i otrzymuj informacje o najnowszych wpisach.

Otrzymaj ofertę

Jeśli chcesz dowiedzieć się więcej na temat oferty Sii, skontaktuj się z nami.

Wyślij zapytanie Wyślij zapytanie

Natalia Competency Center Director

Get an offer

Dołącz do Sii

Znajdź idealną pracę – zapoznaj się z naszą ofertą rekrutacyjną i aplikuj.

Aplikuj Aplikuj

Paweł Process Owner

Join Sii

ZATWIERDŹ

This content is available only in one language version.
You will be redirected to home page.

Are you sure you want to leave this page?