0Pricing
Cyber Security Academy · Lekcja

Pisanie reguł Sigma

Przenośna składnia reguł wykrywania

Pisanie reguł Sigma to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 2 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.

Czym jest Sigma

Sigma to uniwersalny, niezależny od dostawcy format sygnatur dla detekcji opartych na logach. Logikę detekcji zapisuje się raz w YAML, a następnie konwertuje do Splunk SPL, zapytań Elastic, Sentinel KQL i wielu innych backendów.

Sigma jest dla detekcji w logach tym, czym YARA jest dla detekcji w plikach: przenośnym wspólnym językiem. Pozwala zespołom publicznie udostępniać reguły i unikać przepisywania tej samej koncepcji dla każdego systemu SIEM.

Budowa reguły

Reguła Sigma jest dokumentem YAML zawierającym sekcje wymagane i opcjonalne. Najważniejsze z nich to title, logsource i detection.

title: Suspicious PowerShell Encoded Command
id: 7e3f3c1a-1f2b-4c3d-9a8b-1234567890ab
status: experimental
logsource:
  category: process_creation
  product: windows
detection:
  selection:
    Image|endswith: '\\powershell.exe'
    CommandLine|contains: '-enc'
  condition: selection
level: high

Blok logsource

Blok logsource informuje konwerter, do których logów odnosi się reguła. Nie wysyła on bezpośrednio zapytań do danych; podczas konwersji wybiera właściwe mapowanie pól i indeks.

Typowe klucze:

  • product — np. windows, linux, aws
  • category — np. process_creation, network_connection, file_event
  • service — np. sysmon, security, sshd

Należy wybrać najbardziej szczegółową kombinację obsługiwaną przez dane, aby pipeline poprawnie mapował pola.

Selekcje i identyfikatory wyszukiwania

W sekcji detection definiuje się co najmniej jeden nazwany identyfikator wyszukiwania (selekcję). Każdy z nich jest mapą kryteriów typu pole-wartość. Wiele pól w jednej selekcji jest łączonych operatorem logicznym AND.

W tym przypadku oba warunki muszą być prawdziwe, aby dopasować selection.

detection:
  selection:
    EventID: 4688
    NewProcessName|endswith: '\\whoami.exe'
  condition: selection

Modyfikatory pól

Modyfikatory precyzują sposób dopasowywania wartości. Dołącza się je do nazwy pola po znaku potoku.

  • contains — dopasowanie podciągu
  • startswith / endswith — dopasowanie zakotwiczone
  • all — każda wartość z listy musi być obecna
  • re — wyrażenie regularne
  • base64offset|contains — dopasowanie podciągów zakodowanych w base64

Modyfikatory można łączyć; są stosowane od lewej do prawej, w podanej kolejności.

detection:
  selection:
    CommandLine|contains|all:
      - 'Invoke-WebRequest'
      - 'DownloadString'
  condition: selection

Listy i mapy jako OR / AND

Logiką wewnątrz selekcji rządzą dwie zasady:

  • Lista wartości przypisana do jednego pola oznacza OR — dopasowanie dowolnej wartości wystarczy.
  • Mapa wielu pól oznacza AND — wszystkie pola muszą pasować.

Poniżej Image pasuje do jednego z dwóch plików binarnych, a User musi mieć wartość SYSTEM.

detection:
  selection:
    Image|endswith:
      - '\\net.exe'
      - '\\net1.exe'
    User: 'SYSTEM'
  condition: selection

Wyrażenie condition

Element condition łączy nazwane selekcje za pomocą logiki boolowskiej. To tutaj wyraża się filtry i wykluczenia.

Dostępne operatory to and, or, not, nawiasy oraz agregacje, takie jak count(). Można również użyć 1 of selection* / all of selection*, aby odwołać się do grup identyfikatorów według prefiksu.

detection:
  selection:
    EventID: 4625
  timeframe: 5m
  condition: selection | count() by SourceIp > 10

Odfiltrowywanie szumu

Aby pomijać znaną prawidłową aktywność, należy zdefiniować osobny identyfikator i odjąć go w warunku za pomocą not. Dzięki temu logika złośliwej aktywności pozostaje czytelna, a wykluczenia są jawne.

W tym przypadku reguła uruchamia się, gdy rundll32 tworzy połączenie sieciowe, z wyjątkiem znanego prawidłowego procesu aktualizacji.

detection:
  selection:
    Image|endswith: '\\rundll32.exe'
  filter_legit:
    ParentImage|endswith: '\\MicrosoftEdgeUpdate.exe'
  condition: selection and not filter_legit

Metadane do triage

Oprócz logiki dobre reguły zawierają metadane, które pomagają osobom reagującym na incydenty szybko działać i ułatwiają inżynierom utrzymanie pokrycia.

  • level — informacyjny, niski, średni, wysoki, krytyczny
  • tags — techniki ATT&CK, np. attack.t1059.001
  • falsepositives — znane nieszkodliwe wyzwalacze
  • references — raporty dotyczące zagrożeń lub dokumentacja
  • author i date

Te pola wymagają kilku minut pracy, a podczas incydentu oszczędzają wiele godzin.

Reguły korelacji

Reguły dotyczące pojedynczych zdarzeń nie potrafią wyrażać ataków wieloetapowych. Reguły korelacji Sigma łączą wiele reguł bazowych w czasie, aby wykrywać sekwencje i wzorce.

Obsługiwane typy obejmują event_count (N dopasowań w oknie), value_count (różne wartości, np. wielu użytkowników z nieudanymi próbami logowania) oraz temporal (najpierw reguła A, potem reguła B). Pozwala to wykryć na przykład udane logowanie tuż po serii nieudanych prób.

name: bruteforce_then_success
correlation:
  type: temporal
  rules: [failed_logins, successful_login]
  group-by: [SourceIp, TargetUser]
  timespan: 10m

Konwersja do backendu

Za pomocą sigma-cli można konwertować regułę do docelowego języka zapytań. Pipeline przetwarzania mapuje nazwy pól Sigma na rzeczywisty schemat danych.

Wynikiem jest gotowe do wdrożenia zapytanie, które można wkleić lub wysłać za pomocą API.

sigma convert -t splunk -p sysmon \
  -f default rule.yml

# Example output (Splunk SPL):
# Image="*\\powershell.exe" CommandLine="*-enc*"

Szybki test

Sprawdź swoją znajomość logiki detekcji Sigma.

Podsumowanie

Potrafi już Pan/Pani tworzyć przenośne reguły Sigma:

  • logsource wybiera logi i mapowania pól, które mają zastosowanie
  • Selekcje to nazwane kryteria pole-wartość (pola = AND, listy wartości = OR)
  • Modyfikatory, takie jak contains, endswith, all i re, doprecyzowują dopasowanie
  • condition łączy selekcje za pomocą and/or/not, filtrów i agregacji
  • Osobne identyfikatory filter odejmują znany prawidłowy szum
  • Metadane (level, tags, falsepositives) przyspieszają triage
  • sigma convert kompiluje regułę do backendu systemu SIEM

Następnie powiąże Pan/Pani te reguły z technikami przeciwnika za pomocą MITRE ATT&CK.

Często zadawane pytania

Czy lekcja „Pisanie reguł Sigma” jest bezpłatna?

Tak — pełny tekst „Pisanie reguł Sigma” 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 „Pisanie reguł Sigma”?

Przenośna składnia reguł wykrywania Ć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 2 z 4.

Ile czasu zajmuje lekcja „Pisanie reguł Sigma”?

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. Zasady Detection-as-Code
  2. Pisanie reguł Sigma
  3. Mapowanie na MITRE ATT&CK
  4. Testowanie i dostrajanie mechanizmów wykrywania
← Powrót do Cyber Security Academy