Zaawansowane konfiguracje notesów Jupyter i biblioteki MSTICPy w usłudze Microsoft Sentinel
W tym artykule opisano zaawansowane konfiguracje pracy z notesami Jupyter i biblioteką MSTICPy w usłudze Microsoft Sentinel.
Aby uzyskać więcej informacji, zobacz Używanie notesów Jupyter do polowania na zagrożenia bezpieczeństwa i Samouczek: wprowadzenie do notesów Jupyter i biblioteki MSTICPy w usłudze Microsoft Sentinel.
Wymagania wstępne
Ten artykuł jest kontynuacją samouczka : wprowadzenie do notesów Jupyter i biblioteki MSTICPy w usłudze Microsoft Sentinel. Zalecamy wykonanie samouczka przed kontynuowaniem pracy z zaawansowanymi procedurami opisanymi poniżej.
Określanie parametrów uwierzytelniania dla interfejsów API platformy Azure i usługi Microsoft Sentinel
W tej procedurze opisano sposób konfigurowania parametrów uwierzytelniania dla usługi Microsoft Sentinel i innych zasobów interfejsu API platformy Azure w pliku msticpyconfig.yaml .
Aby dodać uwierzytelnianie platformy Azure i ustawienia interfejsu API usługi Microsoft Sentinel w edytorze ustawień MSTICPy:
Przejdź do następnej komórki z następującym kodem i uruchom go:
mpedit.set_tab("Data Providers") mpedit
Na karcie Dostawca danych s wybierz pozycję AzureCLI>Dodaj.
Wybierz metody uwierzytelniania do użycia:
- Chociaż można użyć innego zestawu metod z domyślnych ustawień platformy Azure, to użycie nie jest typową konfiguracją.
- Jeśli nie chcesz używać uwierzytelniania env (zmiennej środowiskowej), pozostaw puste pola clientId, tenantiId i clientSecret .
- Chociaż nie jest to zalecane, narzędzie MSTICPy obsługuje również używanie identyfikatorów aplikacji klienckich i wpisów tajnych na potrzeby uwierzytelniania. W takich przypadkach zdefiniuj pola clientId, tenantId i clientSecret bezpośrednio na karcie Dostawca danych s.
Wybierz pozycję Zapisz plik , aby zapisać zmiany.
Definiowanie dostawców zapytań podczas automatycznego ładowania
Zdefiniuj wszystkich dostawców zapytań, które mają być ładowane automatycznie po uruchomieniu funkcji przez bibliotekę nbinit.init_notebook
MSTICPy.
Podczas częstego tworzenia nowych notesów dostawcy zapytań mogą zaoszczędzić czas, upewniając się, że wymagane dostawcy są ładowani przed innymi składnikami, takimi jak funkcje przestawne i noteslety.
Aby dodać dostawców zapytań do automatycznego ładowania:
Przejdź do następnej komórki z następującym kodem i uruchom go:
mpedit.set_tab("Autoload QueryProvs") mpedit
Na karcie Autoładowanie zapytaniaProv :
- W przypadku dostawców usługi Microsoft Sentinel określ zarówno nazwę dostawcy, jak i nazwę obszaru roboczego, z którym chcesz nawiązać połączenie.
- W przypadku innych dostawców zapytań określ tylko nazwę dostawcy.
Każdy dostawca ma również następujące wartości opcjonalne:
Automatyczne łączenie: ta opcja jest domyślnie zdefiniowana jako Prawda , a oprogramowanie MSTICPy próbuje uwierzytelnić się u dostawcy natychmiast po załadowaniu. Rozwiązanie MSTICPy zakłada, że skonfigurowano poświadczenia dla dostawcy w ustawieniach.
Alias: gdy dostawca MSTICPy ładuje dostawcę, przypisuje dostawcę do nazwy zmiennej języka Python. Domyślnie nazwa zmiennej jest qryworkspace_name dla dostawców usługi Microsoft Sentinel i qryprovider_name dla innych dostawców.
Jeśli na przykład załadujesz dostawcę zapytań dla obszaru roboczego ContosoSOC , ten dostawca zapytań zostanie utworzony w środowisku notesu o nazwie
qry_ContosoSOC
. Dodaj alias, jeśli chcesz użyć czegoś krótszego lub łatwiejszego do wpisania i zapamiętania. Nazwa zmiennej dostawcy toqry_<alias>
, gdzie<alias>
jest zastępowana przez podaną nazwę aliasu.Dostawcy ładowani przez ten mechanizm są również dodawani do atrybutu MSTICPy
current_providers
, który jest używany, na przykład w następującym kodzie:import msticpy msticpy.current_providers
Wybierz pozycję Zapisz ustawienia , aby zapisać zmiany.
Definiowanie automatycznie załadowanych składników MSTICPy
W tej procedurze opisano sposób definiowania innych składników, które są automatycznie ładowane przez bibliotekę MSTICPy podczas uruchamiania nbinit.init_notebook
funkcji.
Obsługiwane składniki obejmują następujące elementy:
- TILookup: biblioteka dostawcy TI
- GeoIP: dostawca GeoIP, którego chcesz użyć
- AzureData: moduł używany do wykonywania zapytań dotyczących szczegółowych informacji o zasobach platformy Azure
- AzureSentinelAPI: moduł używany do wykonywania zapytań względem interfejsu API usługi Microsoft Sentinel
- Noteslety: Noteslety z pakietu msticnb
- Przestawne: funkcje przestawne
Uwaga
Składniki są ładowane w tej kolejności, ponieważ składnik przestawny wymaga kwerendy i innych dostawców załadowanych w celu znalezienia funkcji przestawnych, które dołącza do jednostek. Aby uzyskać więcej informacji, zobacz dokumentację MSTICPy.
Aby zdefiniować automatycznie załadowane składniki MSTICPy:
Przejdź do następnej komórki z następującym kodem i uruchom go:
mpedit.set_tab("Autoload Components") mpedit
Na karcie Składniki automatycznego ładowania zdefiniuj wszystkie wartości parametrów zgodnie z potrzebami. Na przykład:
GeoIpLookup. Wprowadź nazwę dostawcy GeoIP, którego chcesz użyć— GeoLiteLookup lub IPStack. Aby uzyskać więcej informacji, zobacz Dodawanie ustawień dostawcy GeoIP.
Składniki AzureData i AzureSentinelAPI. Zdefiniuj następujące wartości:
- auth_methods: zastąpi ustawienia domyślne dla usługi AzureCLI i połącz się przy użyciu wybranych metod.
- Automatyczne nawiązywanie połączenia: ustaw wartość false na ładowanie bez nawiązywania połączenia.
Aby uzyskać więcej informacji, zobacz Określanie parametrów uwierzytelniania dla interfejsów API platformy Azure i usługi Microsoft Sentinel.
Noteslety. Składnik Notebooklets ma jeden blok parametrów : AzureSentinel.
Określ obszar roboczy usługi Microsoft Sentinel przy użyciu następującej składni:
workspace:\<workspace name>
. Nazwa obszaru roboczego musi być jednym z obszarów roboczych zdefiniowanych na karcie Microsoft Sentinel .Jeśli chcesz dodać więcej parametrów do wysłania
notebooklets init
do funkcji, określ je jako pary key:value rozdzielone nowymi liniami. Na przykład:workspace:<workspace name> providers=["LocalData","geolitelookup"]
Aby uzyskać więcej informacji, zobacz dokumentację MSTICNB (MSTIC Notebooklets).
Niektóre składniki, takie jak TILookup i Pivot, nie wymagają żadnych parametrów.
Wybierz pozycję Zapisz ustawienia , aby zapisać zmiany.
Przełączanie między jądrami języka Python w wersji 3.6 i 3.8
Jeśli przełączasz się między jądrami języka Python 3.65 i 3.8, może się okazać, że oprogramowanie MSTICPy i inne pakiety nie są zainstalowane zgodnie z oczekiwaniami.
Może się tak zdarzyć, gdy !pip install pkg
polecenie zostanie poprawnie zainstalowane w pierwszym środowisku, ale nie zostanie poprawnie zainstalowane w drugim. Spowoduje to utworzenie sytuacji, w której drugie środowisko nie może zaimportować ani użyć pakietu.
Zalecamy, aby nie instalować !pip install...
pakietów w notesach usługi Azure ML. Zamiast tego użyj jednej z następujących opcji:
Użyj magii wiersza %w notesie. Uruchom:
%pip install --upgrade msticpy
Zainstaluj z poziomu terminalu:
Otwórz terminal w notesach usługi Azure ML i uruchom następujące polecenia:
conda activate azureml_py38 pip install --upgrade msticpy
Zamknij terminal i uruchom ponownie jądro.
Ustawianie zmiennej środowiskowej dla pliku msticpyconfig.yaml
Jeśli korzystasz z usługi Azure ML i masz plik msticpyconfig.yaml w folderze głównym folderu użytkownika, biblioteka MSTICPy automatycznie znajdzie te ustawienia. Jeśli jednak uruchamiasz notesy w innym środowisku, postępuj zgodnie z instrukcjami w tej sekcji, aby ustawić zmienną środowiskową wskazującą lokalizację pliku konfiguracji.
Definiowanie ścieżki do pliku msticpyconfig.yaml w zmiennej środowiskowej umożliwia przechowywanie pliku w znanej lokalizacji i upewnienie się, że zawsze są ładowane te same ustawienia.
Użyj wielu plików konfiguracji z wieloma zmiennymi środowiskowymi, jeśli chcesz użyć różnych ustawień dla różnych notesów.
Wybierz lokalizację pliku msticpyconfig.yaml, na przykład w pliku ~/.msticpyconfig.yaml lub %userprofile%/msticpyconfig.yaml.
Użytkownicy usługi Azure ML: jeśli zapiszesz plik konfiguracji w folderze użytkownika usługi Azure ML, funkcja MSTICPy
init_notebook
(uruchomiona w komórce inicjowania) automatycznie znajdzie plik i użyje go, a nie musisz ustawiać zmiennej środowiskowej MSTICPYCONFIG .Jeśli jednak masz również wpisy tajne przechowywane w pliku, zalecamy zapisanie pliku konfiguracji na dysku lokalnym obliczeniowym. Magazyn wewnętrzny zasobów obliczeniowych jest dostępny tylko dla osoby, która utworzyła zasoby obliczeniowe, natomiast udostępniony magazyn jest dostępny dla każdej osoby z dostępem do obszaru roboczego usługi Azure ML.
Aby uzyskać więcej informacji, zobacz Co to jest wystąpienie obliczeniowe usługi Azure Machine Learning?.
W razie potrzeby skopiuj plik msticpyconfig.yaml do wybranej lokalizacji.
Ustaw zmienną środowiskową MSTICPYCONFIG , aby wskazywała lokalizację.
Użyj jednej z poniższych procedur, aby zdefiniować zmienną środowiskową MSTICPYCONFIG .
Aby na przykład ustawić zmienną środowiskową MSTICPYCONFIG w systemach Windows:
Przenieś plik msticpyconfig.yaml do wystąpienia obliczeniowego zgodnie z potrzebami.
Otwórz okno dialogowe Właściwości systemu na karcie Zaawansowane.
Wybierz pozycję Zmienne środowiskowe... , aby otworzyć okno dialogowe Zmienne środowiskowe.
W obszarze Zmienne systemowe wybierz pozycję Nowy..., a następnie zdefiniuj wartości w następujący sposób:
- Nazwa zmiennej: Zdefiniuj jako
MSTICPYCONFIG
- Wartość zmiennej: wprowadź ścieżkę do pliku msticpyconfig.yaml
- Nazwa zmiennej: Zdefiniuj jako
Uwaga
W przypadku opcji systemu Linux i Windows należy ponownie uruchomić serwer Jupyter, aby pobrać zdefiniowaną zmienną środowiskową.
Następne kroki
Aby uzyskać więcej informacji, zobacz:
Temat | Więcej odwołań |
---|---|
MSTICPy | - Konfiguracja pakietu MSTICPy - Edytor ustawień MSTICPy - Konfigurowanie środowiska notesu. - Notes MPSettingsEditor. Uwaga: repozytorium GitHub azure-Sentinel-Notebooks zawiera również plik msticpyconfig.yaml szablonu z sekcjami z komentarzami, co może ułatwić zrozumienie ustawień. |
Notesy Microsoft Sentinel i Jupyter | - Tworzenie pierwszego notesu usługi Microsoft Sentinel (seria blogów) - Notesy Jupyter: wprowadzenie - Dokumentacja biblioteki MSTICPy - Dokumentacja notesów usługi Microsoft Sentinel - Podręcznik Jupyterbook programu Infosec - Przewodnik po notesie Eksploratora hostów systemu Linux - Dlaczego warto używać programu Jupyter do badania zabezpieczeń - Badania zabezpieczeń za pomocą usługi Microsoft Sentinel i notesów - Dokumentacja biblioteki Pandas - Dokumentacja bokeh |