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 lubrsyslog
.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:
- Szyfrowanie ruchu dziennika systemowego przy użyciu protokołu TLS — rsyslog
- Szyfrowanie komunikatów dziennika przy użyciu protokołu TLS — syslog-ng
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:
Zainstaluj agenta usługi Azure Monitor i utwórz regułę zbierania danych (DCR).
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
Otwórz witrynę Azure Portal i przejdź do usługi Microsoft Sentinel .
Wybierz pozycję Łączniki danych z menu nawigacji
Wpisz Syslog w polu Wyszukaj . W wynikach wybierz dziennik syslog za pośrednictwem łącznika AMA .
Wybierz pozycję Otwórz stronę łącznika w okienku szczegółów.
W obszarze Konfiguracja wybierz pozycję +Utwórz regułę zbierania danych.
Na karcie Podstawowe:
- Wpisz nazwę kontrolera domeny.
- Wybierz subskrypcję.
- Wybierz grupę zasobów, w której chcesz zlokalizować kontroler domeny.
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).
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.
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).
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.
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.
Przejrzyj wybrane opcje i wybierz pozycję Dalej: Przejrzyj i utwórz.
Na karcie Przeglądanie i tworzenie wybierz pozycję Utwórz.
Łą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 cron
obiektów , daemon
, local3
local0
i uucp
z Warning
poziomami , Error
, Critical
, Alert
i 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
imark
z poziomami dziennikówInfo
, ,Error
Critical
Alert
Notice
Warning
, iEmergency
- Obiekt
daemon
z poziomami rejestrowaniaWarning
,Error
,Critical
,Alert
iEmergency
Zbiera komunikaty o zdarzeniach dziennika systemowego dla:
- Obiekty
kern
,local0
,local5
inews
z poziomamiCritical
Alert
, iEmergency
- Obiekty
mail
iuucp
zEmergency
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.
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.
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
Zaloguj się do maszyny usługi przesyłania dalej dzienników, na której właśnie zainstalowano usługę AMA.
Wklej polecenie skopiowane w ostatnim kroku, aby uruchomić skrypt instalacji.
Skrypt konfiguruje demonarsyslog
lubsyslog-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 lubrsyslog
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.- Rsyslog:
Testowanie łącznika
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 lubsyslog-ng
nasłuchujący na porcie 514.Aby przechwycić komunikaty wysyłane z rejestratora lub połączonego urządzenia, uruchom to polecenie w tle:
tcpdump -i any port 514 -A -vv &
Po zakończeniu walidacji zalecamy zatrzymanie ciągu : Wpisz, a następnie naciśnij klawisze Ctrl+C.
fg
tcpdump
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 porcie514
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 poziomieWarning
ważności do portu514
na 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"
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