Cyber Security Academy · Lekcja

Skalowanie i automatyzacja skanowania

Uruchamianie YARA w całym środowisku

Lekcja 4 z 413 kroki

Skalowanie i automatyzacja skanowania to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cyber Security Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.

Od jednego hosta do całego środowiska

Reguła, która działa na laptopie, musi również niezawodnie działać na tysiącach punktów końcowych, w przepływach pocztowych i w źródłach próbek, bez poważnego pogorszenia wydajności. Skalowanie YARA to problem inżynieryjny obejmujący dystrybucję, wydajność i informację zwrotną.

Ta lekcja obejmuje dostrajanie wydajności, zarządzanie regułami, zautomatyzowane potoki oraz obsługę YARA jako stale działającego mechanizmu wykrywania, a nie jednorazowego narzędzia.

Podstawy wydajności

YARA buduje atom (krótki podciąg bajtów) dla każdego ciągu i najpierw wyszukuje atomy, a dopiero potem ocenia pełne warunki dla kandydatów. Reguły, które nie pozwalają silnikowi wykorzystać dobrych atomów, działają wolno.

  • Ciągi krótsze niż około 4 bajty dają słabe atomy i są skanowane powoli
  • Niezakotwiczone wyrażenia regex i nadmiar symboli wieloznacznych są kosztowne
  • Zakotwiczenie za pomocą przesunięć i filesize wcześnie ogranicza zakres pracy

Przed wdrożeniem na dużą skalę należy profilować wolne reguły i przepisać te, które powodują problemy.

# Report per-rule scan timing to find slow rules
yara --print-stats -r rules.yar /samples/
yara -a 10 -r rules.yar /samples/   # warn on rules slower than 10s

Unikanie powolnych wzorców

Typowe problemy z wydajnością i sposoby ich rozwiązania:

  • Zastępuj krótkie lub złożone wyłącznie z symboli wieloznacznych ciągi dłuższymi i charakterystycznymi
  • Poprzedzaj kosztowne reguły tanim warunkiem wstępnym (bajty magiczne, rozmiar pliku)
  • Preferuj stałe bajty zamiast wyrażeń regex i silnie zakotwiczaj wyrażenia regex
  • Używaj reguł global, aby całkowicie pomijać nieistotne typy plików

Pojedyncza źle zaprojektowana reguła może zdominować całkowity czas skanowania w całym środowisku, dlatego wydajność należy traktować jako kryterium przeglądu.

global rule OnlyPE { condition: uint16(0) == 0x5A4D }

Kompilowanie reguł

Analizowanie tekstu reguł podczas każdego skanowania powoduje niepotrzebne straty czasu. Należy raz skompilować reguły do binarnego bloku danych i ładować go wszędzie.

Skompilowane reguły szybko się ładują i gwarantują, że każdy punkt końcowy uruchamia dokładnie tę samą, zweryfikowaną logikę. Po każdej zmianie reguł należy ponownie je skompilować w ramach potoku i rozdystrybuować skompilowany artefakt.

yarac -r detections/ ruleset.yarac   # compile
yara -C ruleset.yarac /target/        # scan with compiled rules

Zarządzanie regułami na dużą skalę

Reguły YARA należy traktować jak kod, podobnie jak reguły Sigma. Należy przechowywać je w systemie kontroli wersji oraz poddawać przeglądom, testom i kontroli CI.

  • Jedna reguła na plik, z organizacją według rodziny lub źródła
  • CI sprawdza składnię, wydajność i testuje reguły na korpusach
  • Lintery, takie jak yaraLint, wykrywają typowe błędy
  • Należy nadawać regułom tagi i przestrzenie nazw, aby uniknąć kolizji nazw między źródłami

Zapobiega to chaosowi powodowanemu przez tysiące niezarządzanych, sprzecznych lub zduplikowanych reguł.

Skanowanie punktów końcowych za pomocą EDR

Większość przedsiębiorstw uruchamia YARA za pośrednictwem swojego EDR, który może wdrażać zestawy reguł na agentach oraz skanować dysk i pamięć na żądanie lub według harmonogramu. Eliminuje to konieczność wdrażania samodzielnego YARA na każdym hoście.

Jeśli EDR nie obsługuje YARA, platformy agentowe i narzędzia orkiestracji mogą rozprowadzać skompilowany zestaw reguł i centralnie zbierać wyniki. W obu przypadkach skanowanie jest centralnie kontrolowane, a nie wykonywane ręcznie na każdym hoście.

Skanowanie pamięci na dużą skalę

Ponieważ spakowane malware ujawnia się dopiero w pamięci, należy planować skanowanie pamięci w całej flocie, a nie ograniczać się do skanowania dysków. Agenty EDR mogą okresowo skanować pamięć procesów lub robić to w reakcji na podejrzane zdarzenie.

Skanowanie pamięci jest bardziej obciążające niż skanowanie dysków, dlatego należy wyważyć częstotliwość i zakres: na hostach o wysokiej wartości — skanowanie ciągłe, a w pozostałych miejscach — skanowanie wyzwalane zdarzeniami, aby kontrolować wpływ na wydajność.

Integracja z potokami

Należy zautomatyzować działanie YARA w punktach, w których pliki trafiają do środowiska:

  • Bramy pocztowe i internetowe skanują załączniki i pobierane pliki w trybie inline
  • Sandboxy (CAPE, Cuckoo) uruchamiają YARA na artefaktach utworzonych i rozpakowanych podczas analizy
  • Potoki pozyskiwania plików skanują przesyłane pliki przed zapisaniem
  • CI dla repozytoriów malware automatycznie klasyfikuje nowe próbki

Każde dopasowanie trafia do SIEM/SOAR w celu korelacji i podjęcia działań.

# Example: scan every new file dropped into an intake bucket
yara -C ruleset.yarac "$NEW_FILE" && route_to_soar "$NEW_FILE"

Retrohunting i pętle wywiadu

Należy skalować działania zarówno na zewnątrz, jak i do wewnątrz. Warto przesyłać reguły o wysokiej wartości na platformy threat intelligence, aby wykonywać retrohunting na historycznych próbkach i ujawniać powiązane warianty oraz historię kampanii.

Wnioski należy włączać z powrotem do zestawu reguł: nowe warianty znalezione podczas retrohuntingu zwiększają precyzję reguły, która następnie wykrywa kolejną falę. Ta zamknięta pętla zmienia YARA w żywy, stale doskonalony mechanizm wykrywania.

Obsługa dopasowań i reagowanie

Skanowanie, którego wynikiem jest tylko wpis w dzienniku, to zmarnowany wysiłek. Należy połączyć dopasowania z procesem reagowania.

  • Generować ustrukturyzowane dane wyjściowe (nazwę reguły, plik, host, hashe) i przesyłać je do SIEM
  • Uruchamiać playbooki SOAR: odizolować hosta, zebrać próbkę i wzbogacić ją o informacje wywiadowcze
  • Automatycznie poddawać kwarantannie tylko w przypadku reguł o wysokiej pewności, które zostały dokładnie przetestowane
  • Przekazywać dopasowania o niższej pewności analitykom do wstępnej analizy

Pewność reakcji należy powiązać z dojrzałością reguły, podobnie jak w przypadku dyscypliny najpierw alert, potem blokowanie, stosowanej przy regułach IPS.

yara -C ruleset.yarac --print-meta "$F" \
  | jq -R . | send_to_siem

Pomiar i utrzymanie

Zestawem reguł należy zarządzać jak programem, wykorzystując następujące metryki:

  • Współczynnik trafień i odsetek fałszywie pozytywnych wyników dla każdej reguły
  • Przypisany do reguły koszt skanowania we flocie
  • Pokrycie według rodziny malware i techniki ATT&CK

Należy wycofywać nieaktualne reguły, poprawiać te generujące zbyt dużo wyników i regularnie ponownie testować je na dobrym oprogramowaniu. Reguły tracą skuteczność wraz z ewolucją oprogramowania i malware, dlatego ich utrzymanie jest procesem ciągłym, a nie opcjonalnym.

Szybki test

Zastosuj ocenę zasadności skalowania do wdrożenia.

Podsumowanie

Obsługa YARA na dużą skalę:

  • Należy rozumieć działanie atomów; unikać krótkich ciągów, samych symboli wieloznacznych i niezakotwiczonych wyrażeń regularnych
  • Zakotwiczać reguły za pomocą offsetów i rozmiaru pliku oraz uzależniać ich działanie od globalnych warunków wstępnych
  • Kompilować reguły (yarac) i dystrybuować binarny blok danych
  • Zarządzać regułami jak kodem: stosować kontrolę wersji, CI, lintowanie i przestrzenie nazw
  • Skanować punkty końcowe za pomocą EDR; planować skanowanie pamięci, a nie tylko dysków
  • Integrować YARA z bramami, sandboxami i potokami pozyskiwania; przesyłać wyniki do SIEM/SOAR
  • Wykorzystywać retrohunting i włączać jego wyniki z powrotem do reguł
  • Mierzyć współczynnik trafień, odsetek fałszywie pozytywnych wyników i koszt skanowania; stale utrzymywać reguły

Ukończono kurs YARA do wykrywania malware.

Bezpłatny start

Ucz się Cyber Security Academy dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
76
Lekcje
303

Często zadawane pytania

Czy lekcja „Skalowanie i automatyzacja skanowania” jest bezpłatna?

Tak — pełny tekst „Skalowanie i automatyzacja skanowania” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cyber Security Academy, przejdź na CoddyKit PRO. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Skalowanie i automatyzacja skanowania”?

Uruchamianie YARA w całym środowisku Ćwiczysz Cyber Security Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cyber Security Academy?

Nie wymagamy żadnego doświadczenia. Cyber Security Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Skalowanie i automatyzacja skanowania”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cyber Security Academy?

Tak. Każda lekcja Cyber Security Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Do czego służy YARA
  2. Składnia reguł YARA
  3. Wyszukiwanie zagrożeń za pomocą ciągów znaków i zapisu szesnastkowego
  4. Skalowanie i automatyzacja skanowania
← Powrót do Cyber Security Academy