Pozyskiwanie dzienników systemowych i komunikatów CEF do usługi Microsoft Sentinel przy użyciu agenta usługi Azure Monitor

W tym artykule opisano sposób używania dziennika systemowego za pośrednictwem protokołu AMA i common event format (CEF) za pośrednictwem łączników usługi AMA w celu szybkiego filtrowania i pozyskiwania komunikatów dziennika systemowego, w tym komunikatów w formacie Common Event Format (CEF), z maszyn z systemem Linux oraz urządzeń sieciowych i zabezpieczeń. Aby dowiedzieć się więcej na temat tych łączników danych, zobacz Syslog via AMA and Common Event Format (CEF) via AMA connectors for Microsoft Sentinel (Syslog via AMA and Common Event Format) via AMA connectors for Microsoft Sentinel (Syslog via AMA and Common Event Format( CEF) via AMA connectors for Microsoft Sentinel (Syslog via AmA connector for Microsoft Sentinel).

Wymagania wstępne

Przed rozpoczęciem musisz mieć skonfigurowane zasoby i odpowiednie uprawnienia opisane w tej sekcji.

Wymagania wstępne usługi Microsoft Sentinel

  • Musisz mieć włączone odpowiednie rozwiązanie usługi Microsoft Sentinel — Syslog i/lub Common Event Format. Aby uzyskać więcej informacji, zobacz Odnajdywanie gotowej zawartości usługi Microsoft Sentinel i zarządzanie nią.

  • Twoje konto platformy Azure musi mieć następujące role kontroli dostępu opartej na rolach (RBAC) platformy Azure:

    Rola wbudowana Scope Przyczyna
    - Współautor maszyny wirtualnej
    - Maszyna Połączenie platformy Azure
       Administracja istrator zasobów
  • Maszyny wirtualne
  • Virtual Machine Scale Sets
  • Serwery z obsługą usługi Azure Arc
  • Aby wdrożyć agenta
    Dowolna rola obejmująca akcję
    Microsoft.Resources/deployments/*
  • Subskrypcja
  • Grupa zasobów
  • Istniejąca reguła zbierania danych
  • Aby wdrożyć szablony usługi Azure Resource Manager
    Współautor monitorowania
  • Subskrypcja
  • Grupa zasobów
  • Istniejąca reguła zbierania danych
  • Aby utworzyć lub edytować reguły zbierania danych

Wymagania wstępne usługi przesyłania dalej dzienników

W przypadku zbierania komunikatów z usługi przesyłania dalej dzienników obowiązują następujące dodatkowe wymagania wstępne:

  • Aby zbierać dzienniki, musisz mieć wyznaczoną maszynę wirtualną z systemem Linux (usługę przesyłania dalej dzienników).

  • Jeśli usługa przesyłania dalej dzienników nie jest maszyną wirtualną platformy Azure, musi mieć zainstalowanego agenta usługi Azure Arc Połączenie ed Machine.

  • Maszyna wirtualna usługi przesyłania dalej dziennika systemu Linux musi mieć zainstalowany język Python 2.7 lub 3. python --version Użyj polecenia orpython3 --version, aby sprawdzić. Jeśli używasz języka Python 3, upewnij się, że jest ono ustawione jako domyślne polecenie na maszynie lub uruchom poniższe skrypty za pomocą polecenia "python3" zamiast "python".

  • Usługa przesyłania dalej dziennika musi mieć syslog-ng włączone demona lub rsyslog .

  • Aby uzyskać wymagania dotyczące miejsca dla usługi przesyłania dalej dzienników, zapoznaj się z testem porównawczym wydajności agenta usługi Azure Monitor. Możesz również przejrzeć ten wpis w blogu, który zawiera projekty skalowalnego pozyskiwania.

  • Źródła dzienników (urządzenia zabezpieczeń i urządzenia) muszą być skonfigurowane do wysyłania komunikatów dziennika do demona dziennika usługi Syslog usługi przesyłania dalej dziennika zamiast do lokalnego demona dziennika systemowego.

Unikanie duplikowania pozyskiwania danych

Użycie tej samej funkcji zarówno dla komunikatów Syslog, jak i CEF może spowodować duplikowanie pozyskiwania danych między tabelami CommonSecurityLog i Syslog.

Aby uniknąć tego scenariusza, użyj jednej z następujących metod:

  • Jeśli urządzenie źródłowe włącza konfigurację obiektu docelowego: na każdej maszynie źródłowej, która wysyła dzienniki do usługi przesyłania dalej dziennika w formacie CEF, zmodyfikuj plik konfiguracji dziennika systemowego, aby usunąć obiekty używane do wysyłania komunikatów CEF. Dzięki temu obiekty wysyłane w formacie CEF nie będą również wysyłane w dzienniku systemowym. Upewnij się, że każdy kontroler domeny skonfigurowany w następnych krokach używa odpowiedniego obiektu dla formatu CEF lub syslog odpowiednio.

    Aby zobaczyć przykład sposobu rozmieszczania kontrolera domeny w celu pozyskiwania komunikatów dziennika systemowego i cef z tego samego agenta, przejdź do obszaru Dziennik systemowy i strumienie CEF w tym samym module DCR w dalszej części tego artykułu.

  • Jeśli zmiana obiektu dla urządzenia źródłowego nie ma zastosowania: użyj transformacji czasu pozyskiwania, aby odfiltrować komunikaty CEF ze strumienia dziennika systemowego, aby uniknąć duplikowania, jak pokazano w poniższym przykładzie zapytania. Dane zostaną wysłane dwa razy z maszyny modułu zbierającego do obszaru roboczego.

    source |
    where ProcessName !contains "CEF"
    

Konfigurowanie zabezpieczeń maszyny

Pamiętaj, aby skonfigurować zabezpieczenia maszyny zgodnie z zasadami zabezpieczeń organizacji. Możesz na przykład skonfigurować sieć tak, aby dostosować je do zasad zabezpieczeń sieci firmowej i zmienić porty i protokoły w demonie, aby dopasować je do wymagań. Aby poprawić konfigurację zabezpieczeń maszyny, zabezpieczyć maszynę wirtualną na platformie Azure lub zapoznać się z tymi najlepszymi rozwiązaniami dotyczącymi zabezpieczeń sieci.

Jeśli urządzenia wysyłają dzienniki Syslog i CEF za pośrednictwem protokołu TLS (ponieważ na przykład usługa przesyłania dalej dzienników znajduje się w chmurze), należy skonfigurować demona dziennika systemowego (rsyslog lub syslog-ng) do komunikowania się w protokole TLS:

Konfigurowanie łączników danych

Wybierz odpowiednią kartę, aby wyświetlić instrukcje dotyczące dziennika systemowego lub formatu CEF.

Konfigurowanie dziennika systemowego za pośrednictwem łącznika usługi AMA

Proces instalacji dziennika systemowego za pośrednictwem łącznika usługi AMA ma dwie części:

  1. Zainstaluj agenta usługi Azure Monitor i utwórz regułę zbierania danych (DCR).

  2. Jeśli zbierasz dzienniki z innych maszyn przy użyciu usługi przesyłania dalej dzienników, uruchom skrypt "instalacja" w module przesyłania dalej dziennika, aby skonfigurować demona dziennika do nasłuchiwania komunikatów z innych maszyn i otworzyć niezbędne porty lokalne.

Instalowanie usługi AMA i tworzenie reguły zbierania danych (DCR)

Ten krok można wykonać na jeden z dwóch sposobów:

  • Wdróż i skonfiguruj dziennik syslog za pośrednictwem protokołu AMA lub Common Event Format (CEF) za pośrednictwem łącznika danych usługi AMA w portalu usługi Microsoft Sentinel. Dzięki tej konfiguracji można tworzyć, zarządzać i usuwać kontrolery domeny na obszar roboczy. Usługa AMA zostanie zainstalowana automatycznie na wybranych maszynach wirtualnych w konfiguracji łącznika.
    — LUB —
  • Wysyłanie żądań HTTP do interfejsu API pozyskiwania dzienników. Dzięki tej konfiguracji można tworzyć, zarządzać i usuwać kontrolery domeny. Ta opcja jest bardziej elastyczna niż portal. Na przykład za pomocą interfejsu API można filtrować według określonych poziomów dziennika, gdzie za pomocą interfejsu użytkownika można wybrać tylko minimalny poziom dziennika. Wadą jest ręczne zainstalowanie agenta usługi Azure Monitor w usłudze przesyłania dalej dziennika przed utworzeniem kontrolera domeny.

Wybierz odpowiednią kartę poniżej, aby wyświetlić instrukcje dla każdego ze sposobów.

Otwórz stronę łącznika i uruchom kreatora DCR

  1. Otwórz witrynę Azure Portal i przejdź do usługi Microsoft Sentinel .

  2. Wybierz pozycję Łączniki danych z menu nawigacji

  3. Wpisz Syslog w polu Wyszukaj . W wynikach wybierz dziennik syslog za pośrednictwem łącznika AMA .

  4. Wybierz pozycję Otwórz stronę łącznika w okienku szczegółów.

  5. W obszarze Konfiguracja wybierz pozycję +Utwórz regułę zbierania danych.

    Zrzut ekranu przedstawiający stronę cef za pośrednictwem łącznika usługi AMA.

  6. Na karcie Podstawowe:

    • Wpisz nazwę kontrolera domeny.
    • Wybierz subskrypcję.
    • Wybierz grupę zasobów, w której chcesz zlokalizować kontroler domeny.

    Zrzut ekranu przedstawiający szczegóły kontrolera domeny na karcie Podstawowe.

  7. Wybierz pozycję Dalej: Zasoby >.

Definiowanie zasobów (maszyn wirtualnych)

Na karcie Zasoby wybierz maszyny, na których chcesz zainstalować usługę AMA — w tym przypadku maszynę przekazującą dzienniki. (Jeśli usługa przesyłania dalej dziennika nie jest wyświetlana na liście, może nie mieć zainstalowanego agenta maszyny azure Połączenie).

  1. Użyj dostępnych filtrów lub pola wyszukiwania, aby znaleźć maszynę wirtualną usługi przesyłania dalej dziennika. Możesz rozwinąć subskrypcję na liście, aby wyświetlić jej grupy zasobów i grupę zasobów, aby wyświetlić jej maszyny wirtualne.

  2. Wybierz maszynę wirtualną usługi przesyłania dalej dziennika, na której chcesz zainstalować usługę AMA. (Pole wyboru pojawi się obok nazwy maszyny wirtualnej po umieszczeniu na niej wskaźnika myszy).

    Zrzut ekranu przedstawiający sposób wybierania zasobów podczas konfigurowania kontrolera domeny.

  3. Przejrzyj zmiany i wybierz pozycję Dalej: Zbierz >.

Wybierz obiekty i ważność i utwórz kontroler domeny

Uwaga

Użycie tej samej funkcji zarówno dla komunikatów syslog, jak i CEF może spowodować duplikowanie pozyskiwania danych. Dowiedz się, jak uniknąć duplikowania pozyskiwania danych.

  1. Na karcie Zbieranie wybierz minimalny poziom dziennika dla każdego obiektu. Po wybraniu poziomu dziennika usługa Microsoft Sentinel zbiera dzienniki dla wybranego poziomu i innych poziomów o wyższej ważności. Jeśli na przykład wybierzesz LOG_ERR, usługa Microsoft Sentinel zbiera dzienniki dla LOG_ERR, LOG_CRIT, LOG_ALERT i poziomów LOG_EMERG.

    Zrzut ekranu przedstawiający sposób wybierania poziomów dziennika podczas konfigurowania kontrolera domeny.

  2. Przejrzyj wybrane opcje i wybierz pozycję Dalej: Przejrzyj i utwórz.

  3. Na karcie Przeglądanie i tworzenie wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający sposób przeglądania konfiguracji kontrolera domeny i tworzenia go.

  • Łącznik zainstaluje agenta usługi Azure Monitor na maszynach wybranych podczas tworzenia kontrolera domeny.

  • Powiadomienia będą wyświetlane w witrynie Azure Portal po utworzeniu kontrolera domeny i zainstalowaniu agenta.

  • Wybierz pozycję Odśwież na stronie łącznika, aby wyświetlić kontroler domeny wyświetlany na liście.

Przykłady sekcji obiektów i poziomów dziennika

Przejrzyj te przykłady ustawień obiektów i poziomów dziennika. Pole name zawiera nazwę filtru.

W przypadku pozyskiwania komunikatów w formacie CEF wartość parametru "streams" powinna mieć "Microsoft-CommonSecurityLog" wartość zamiast "Microsoft-Syslog".

W tym przykładzie są zbierane zdarzenia z cronobiektów , daemon, local3local0i uucp z Warningpoziomami , Error, Critical, Alerti Emergency dziennika:

    "dataSources": {
      "syslog": [
        {
        "name": "SyslogStream0",
        "streams": [
          "Microsoft-Syslog"
        ],
        "facilityNames": [ 
          "cron",
          "daemon",
          "local0",
          "local3", 
          "uucp"
        ],
        "logLevels": [ 
          "Warning", 
          "Error", 
          "Critical", 
          "Alert", 
          "Emergency"
        ]
      }
    ]
  }
Dziennik systemowy i strumienie CEF w tym samym kontrolerze domeny

W tym przykładzie pokazano, jak można zbierać komunikaty syslog i CEF w tym samym kontrolerze domeny.

Zobacz Unikanie duplikowania pozyskiwania danych wcześniej w tym artykule, aby uzyskać więcej informacji na temat kroków, które należy wykonać podczas pozyskiwania komunikatów syslog i CEF przy użyciu jednego agenta i kontrolera domeny.

Kontroler domeny zbiera komunikaty o zdarzeniach CEF dla:

  • Obiekty authpriv i mark z poziomami dzienników Info, , ErrorCriticalAlertNoticeWarning, i Emergency
  • Obiekt daemon z poziomami rejestrowania Warning, Error, Critical, Alerti Emergency

Zbiera komunikaty o zdarzeniach dziennika systemowego dla:

  • Obiekty kern, local0, local5i news z poziomami CriticalAlert, i Emergency
  • Obiekty mail i uucp z Emergency poziomem dziennika
    "dataSources": {
      "syslog": [
        {
          "name": "CEFStream1",
          "streams": [ 
            "Microsoft-CommonSecurityLog"
          ],
          "facilityNames": [ 
            "authpriv", 
            "mark"
          ],
          "logLevels": [
            "Info",
            "Notice", 
            "Warning", 
            "Error", 
            "Critical", 
            "Alert", 
            "Emergency"
          ]
        },
        {
          "name": "CEFStream2",
          "streams": [ 
            "Microsoft-CommonSecurityLog"
          ],
          "facilityNames": [ 
            "daemon"
          ],
          "logLevels": [ 
            "Warning", 
            "Error", 
            "Critical", 
            "Alert", 
            "Emergency"
          ]
        },
        {
          "name": "SyslogStream3",
          "streams": [ 
            "Microsoft-Syslog"
          ],
          "facilityNames": [ 
            "kern",
            "local0",
            "local5", 
            "news"
          ],
          "logLevels": [ 
            "Critical", 
            "Alert", 
            "Emergency"
          ]
        },
        {
          "name": "SyslogStream4",
          "streams": [ 
            "Microsoft-Syslog"
          ],
          "facilityNames": [ 
            "mail",
            "uucp"
          ],
          "logLevels": [ 
            "Emergency"
          ]
        }
      ]
    }

Uruchamianie skryptu "instalacja"

Skrypt "instalacji" nie instaluje niczego, ale konfiguruje demona dziennika syslog prawidłowo w celu zebrania dzienników.

  1. Na stronie łącznika skopiuj wiersz polecenia wyświetlany w obszarze Uruchom następujące polecenie, aby zainstalować i zastosować moduł zbierający CEF: wybierając ikonę kopiowania obok niego.

    Zrzut ekranu przedstawiający wiersz polecenia na stronie łącznika.

    Możesz również skopiować go z tego miejsca:

    sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python Forwarder_AMA_installer.py
    
  2. Zaloguj się do maszyny usługi przesyłania dalej dzienników, na której właśnie zainstalowano usługę AMA.

  3. Wklej polecenie skopiowane w ostatnim kroku, aby uruchomić skrypt instalacji.
    Skrypt konfiguruje demona rsyslog lub syslog-ng tak, aby używał wymaganego protokołu i ponownie uruchamia demona. Skrypt otwiera port 514 w celu nasłuchiwania komunikatów przychodzących zarówno w protokołach UDP, jak i TCP. Aby zmienić to ustawienie, zapoznaj się z plikiem konfiguracji demona dziennika systemowego zgodnie z typem demona uruchomionym na maszynie:

    • Rsyslog: /etc/rsyslog.conf
    • Syslog-ng: /etc/syslog-ng/syslog-ng.conf

    Uwaga

    Aby uniknąć scenariuszy pełnego dysku, w których agent nie może działać, zalecamy ustawienie syslog-ng konfiguracji lub rsyslog nie do przechowywania niepotrzebnych dzienników. Scenariusz pełny dysk zakłóca działanie zainstalowanej usługi AMA. Przeczytaj więcej na temat protokołu RSyslog lub Syslog-ng.

Testowanie łącznika

  1. Aby sprawdzić, czy demon dziennika systemowego jest uruchomiony na porcie UDP i czy nasłuchuje ama, uruchom następujące polecenie:

    netstat -lnptv
    

    Powinien zostać wyświetlony rsyslog demon lub syslog-ng nasłuchujący na porcie 514.

  2. Aby przechwycić komunikaty wysyłane z rejestratora lub połączonego urządzenia, uruchom to polecenie w tle:

    tcpdump -i any port 514 -A -vv &
    
  3. Po zakończeniu walidacji zalecamy zatrzymanie ciągu : Wpisz, a następnie naciśnij klawisze Ctrl+C.fgtcpdump

  4. Aby wysłać komunikaty demonstracyjne, wykonaj jedną z następujących czynności:

    • Użyj narzędzia netcat. W tym przykładzie narzędzie odczytuje dane publikowane za pomocą echo polecenia z wyłączonym przełącznikiem nowego wiersza. Następnie narzędzie zapisuje dane na porcie 514 UDP na hoście lokalnym bez limitu czasu. Aby wykonać narzędzie netcat, może być konieczne zainstalowanie dodatkowego pakietu.

      echo -n "<164>CEF:0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time" | nc -u -w0 localhost 514
      
    • Użyj rejestratora. W tym przykładzie komunikat jest zapisywany w local 4 obiekcie na poziomie Warningważności do portu 514na hoście lokalnym w formacie RFC w formacie CEF. Flagi -t i --rfc3164 są używane do zachowania zgodności z oczekiwanym formatem RFC.

      logger -p local4.warn -P 514 -n 127.0.0.1 --rfc3164 -t CEF "0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time"
      
  5. Aby sprawdzić, czy łącznik jest poprawnie zainstalowany, uruchom skrypt rozwiązywania problemów za pomocą jednego z następujących poleceń:

    • W przypadku dzienników CEF uruchom polecenie:

       sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef
      
    • W przypadku dzienników urządzenia Cisco Adaptive Security Appliance (ASA) uruchom polecenie:

      sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --asa
      
    • W przypadku dzienników usługi Cisco Firepower Threat Defense (FTD) uruchom polecenie:

      sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --ftd