w poprzednim poście mówiłem o tym, jak możesz używać STIX, Taxii i Cyboxu do udostępniania informacji o zagrożeniach.
jeden z kluczowych elementów dobrego wykorzystania informacji o zagrożeniu cybernetycznym wymaga, aby informacje te były użyteczne lub co najmniej użyteczne. Udostępniane informacje muszą być dokładne, kompletne i odpowiednie dla Twojego środowiska.
CybOX zapewnia wspólną strukturę do reprezentowania cyberbezpieczeństwa w obszarach operacyjnych i między nimi. CybOX może zawierać skróty, ciągi znaków lub klucze rejestru. Informacje dostarczane za pośrednictwem systemu mogą być wykorzystane do sprawdzenia obecności złośliwego oprogramowania w Twoim środowisku. YARA jest jedną z alternatyw dla cyboxu, ale obie nie wykluczają się wzajemnie.
Co to jest YARA?
YARA to narzędzie zaprojektowane, aby pomóc badaczom złośliwego oprogramowania zidentyfikować i sklasyfikować próbki złośliwego oprogramowania. Dla badaczy bezpieczeństwa (i wszystkich innych) został on nazwany pasującym do wzorców szwajcarskim nożem wojskowym. Jest wieloplatformowy i może być używany zarówno z interfejsu wiersza poleceń, jak i za pomocą własnych skryptów Pythona.
narzędzie umożliwia wykrywanie złośliwego oprogramowania na podstawie podpisów, co jest podobne do rozwiązań antywirusowych.
Jak Z Niego Korzystać?
aby użyć tej metody, potrzebujesz reguły i pliku, który chcesz sprawdzić. Na przykład, aby uruchomić go z wiersza poleceń, użyjesz:
to wyświetli się, jeśli dana reguła pasuje do podanego pliku. Jeśli nie widzisz wyjścia i nie użyłeś opcji negate, oznacza to, że żadna reguła nie pasuje.
możesz go uruchomić z kilkoma przełącznikami konfiguracyjnymi; są to dwa najważniejsze :
- -n: wypisuje tylko niespełnione reguły (negacja).
- – R: rekurencyjnie przeszukiwać katalogi.
reguły
reguła jest zbiorem łańcuchów i jakąś formą logiki, zapisaną w wyrażeniach logicznych.
istnieje wsparcie dla trzech różnych typów ciągów:
- ciągi szesnastkowe, które są przydatne do definiowania surowych bajtów;
- ciągi tekstowe;
- wyrażenia regularne.
warunki są wyrażeniami logicznymi, które rozpoznasz ze zwykłych języków programowania. Mogą pracować na dowolnym z podanych łańcuchów znaków, ale także na specjalnych wbudowanych zmiennych, takich jak rozmiar pliku, lub na zewnętrznych zmiennych, które definiujesz poza regułą. Istnieje również wsparcie dla korzystania z modułów, takich jak kukułka, aby rozszerzyć funkcje, które można wykorzystać w Warunkach.
najbardziej skorzystasz z Yary, jeśli dostarczysz jej dobry zestaw reguł. Możesz napisać własne zasady lub uzyskać je od innego dostawcy.
napisz własne zasady
pisanie własnych zasad nie jest takie trudne, jeśli weźmiesz pod uwagę te wytyczne:
- kryteria, których używasz do dopasowania, muszą być niezbędną częścią zachowania złośliwego oprogramowania.
- kryteria powinny być wystarczające do odróżnienia testowanej rodziny złośliwego oprogramowania od innych rodzin złośliwego oprogramowania.
- kryteria muszą być czymś, co jest wspólne dla różnych próbek.
po przeanalizowaniu złośliwego oprogramowania i wyodrębnieniu z niego użytecznych, rozpoznawalnych danych, możesz przekształcić informacje w ciągi YARA i połączyć je z jakąś formą logiki.
Pobierz reguły ze źródeł zewnętrznych
ponieważ YARA używa podpisów podobnych do rozwiązań antywirusowych, sensowne byłoby ponowne użycie tych podpisów jako bazy danych reguł. Z wykorzystaniem skryptu clamav_to_yara.py, możesz przekonwertować bazę sygnatur ClamAV na własny zestaw reguł.
kolejnym źródłem reguł jest repozytorium Github. Jest to zbiór reguł na licencji GNU-GPLv2 utrzymywany przez grupę badaczy bezpieczeństwa IT. Reguły są przechowywane w różnych kategoriach-reguły mające na celu wykrywanie technik anty-debug i anty-wizualizacji, złośliwych dokumentów, pakujących itp. – i często aktualizowane. Możesz je uzyskać, klonując repozytorium Github.
niektóre platformy udostępniania informacji o zagrożeniach, takie jak MISP i ThreatConnect, również obsługują YARA. Pozwala to na tworzenie reguł w oparciu o własne zebrane informacje o zagrożeniach.
Automatyczne generowanie reguł
korzystając z generatora reguł z piaskownicy Joe, możesz tworzyć podpisy dla systemu Windows na podstawie statycznych i dynamicznych danych zachowania. Pamiętaj, że obowiązują te same zasady, co w przypadku korzystania z bezpłatnych piaskownic do analizy złośliwego oprogramowania online. Przesyłasz pliki do zewnętrznej usługi w chmurze, co nie powinno odbywać się z poufnymi plikami lub danymi zawierającymi jakiekolwiek poświadczenia użytkownika.
dodatkowe przypadki użycia
wspomniałem wcześniej, że możesz przekonwertować bazę danych ClamAV na użyteczny zestaw reguł. I odwrotnie. Załóżmy, że masz zestaw szczegółowych zasad. Możesz skonfigurować ClamAV, aby rozszerzyć swój zestaw funkcji o dostarczone reguły i obsługę YARA. Pozwala to na dopasowanie reguł dotyczących skompresowanych lub spakowanych plików. Prywatne API VirusTotal posiada również funkcję, za pomocą której można wprowadzić własne reguły i uruchomić je po przesłaniu pasującej próbki.
Ochrona oparta na podpisach nie wystarczy
tylko poleganie na ochronie opartej na podpisach nie jest już wystarczająco dobre. Napastnicy opracowali środki zaradcze, które mogą wykorzystać do obejścia tej metody. Korzystając z różnych usług kryptograficznych, pakujących i polimorfizmu, mogą łatwo generować złośliwe oprogramowanie, które jest na tyle różne, że nie pasuje już do istniejących podpisów. Następnie potrzeba trochę czasu, zanim nowy smak zostanie odebrany i udostępniony.
te wady nie sprawiają, że wykrywanie oparte na podpisach jest przestarzałe. Społeczność ds. bezpieczeństwa jest silna w dzieleniu się nowymi wskaźnikami zagrożeń, więc tego typu narzędzia nadal będą ważnym atutem twojego arsenału.
wniosek
chociaż wykrywanie oparte na podpisach za pomocą YARA ma swoje granice, jest to łatwy w użyciu i dość prosty sposób wykrywania złośliwego oprogramowania w Twoim środowisku. Nie byłoby rozsądnie polegać na nim jako jedynym środku ochrony przed zagrożeniami, ale biorąc pod uwagę proste użycie, pominięcie tego narzędzia nie byłoby dobrym pomysłem.