Zaawansowana konfiguracja notatników Jupyter i biblioteki MSTICPy w Microsoft Sentinel

Ten artykuł opisuje, jak skonfigurować parametry uwierzytelniania dla API Azure i Microsoft Sentinel, zdefiniować dostawców zapytań automatycznego ładowania i komponentów MSTICPy, zarządzać wersjami jądra Python oraz ustawiać zmienne środowiskowe dla pliku konfiguracyjnego msticpyconfig.yaml podczas pracy z notatnikami Jupyter i MSTICPy w Microsoft Sentinel.

Aby uzyskać więcej informacji, zobacz Używanie notesów Jupyter do wyszukiwania zagrożeń bezpieczeństwa i Rozpoczynanie pracy z notesami Jupyter i programem MSTICPy w Microsoft Sentinel.

Wymagania wstępne

Ten artykuł obejmuje zaawansowane zadania konfiguracyjne MSTICPy, w tym ustawianie parametrów uwierzytelniania, definiowanie dostawców i komponentów automatycznego ładowania, przełączanie jąder Python oraz konfigurację zmiennych środowiskowych dla pliku msticpyconfig.yaml. Zanim zaczniesz, wykonaj kroki w Rozpocznij z notebookami Jupyter oraz MSTICPy w Microsoft Sentinel.

Określanie parametrów uwierzytelniania dla interfejsów API Azure i Microsoft Sentinel

Konfiguruj parametry uwierzytelniania dla Microsoft Sentinel i innych zasobów API Azure w pliku msticpyconfig.yaml, stosując następujące kroki.

Aby dodać ustawienia uwierzytelniania Azure i interfejsu API Microsoft Sentinel w edytorze ustawień MSTICPy:

  1. Przejdź do następnej komórki z następującym kodem i uruchom ją:

    mpedit.set_tab("Data Providers")
    mpedit
    
  2. Na karcie Dostawcy danych wybierz pozycję AzureCLI>Dodaj.

  3. Wybierz metody uwierzytelniania do użycia:

    • Chociaż można użyć innego zestawu metod niż domyślne, to użycie nie jest typową konfiguracją. Aby uzyskać więcej informacji, zobacz notes Przewodnik wprowadzający do notesów ML usługi Azure Sentinel.
    • Jeśli nie chcesz używać uwierzytelniania zmiennej środowiskowej (env), pozostaw puste pola clientId, tenantId i clientSecret .
    • Chociaż nie jest to zalecane, program 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 Dostawcy danych .
  4. Wybierz pozycję Zapisz plik, aby zapisać zmiany.

Definiuj dostawców zapytań z automatycznym wczytywaniem

Możesz skonfigurować MSTICPy tak, aby automatycznie ładował konkretnych dostawców zapytań podczas uruchamiania nbinit.init_notebook funkcji.

Gdy często tworzysz nowe notesniki, automatycznie ładowani dostawcy zapytań mogą zaoszczędzić Ci czas, zapewniając, że wymagani dostawcy zostaną załadowani przed innymi składnikami, takimi jak funkcje pivot i notebooklety.

Aby dodać dostawców zapytań do automatycznego ładowania:

  1. Przejdź do następnej komórki z następującym kodem i uruchom ją:

    mpedit.set_tab("Autoload QueryProvs")
    mpedit
    
  2. Na karcie Autoload QueryProv :

    • W przypadku dostawców 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 program MSTICPy próbuje uwierzytelnić się u dostawcy natychmiast po załadowaniu. Program MSTICPy zakłada skonfigurowanie poświadczeń dla dostawcy w ustawieniach.

    • Alias: Gdy program MSTICPy ładuje dostawcę, przypisuje dostawcę do nazwy zmiennej języka Python. Domyślnie nazwa zmiennej jest qryworkspace_name dla dostawców 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 notesnika pod nazwą qry_ContosoSOC. Dodaj alias, jeśli chcesz użyć czegoś krótszego lub łatwiejszego do wpisania i zapamiętania. Nazwa zmiennej dostawcy to qry_<alias>, gdzie <alias> jest zastępowana przez podaną nazwę aliasu.

      Dostawcy zał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
      
  3. Wybierz pozycję Zapisz ustawienia , aby zapisać zmiany.

Zdefiniuj automatycznie załadowane komponenty MSTICPy

Możesz zdefiniować dodatkowe komponenty, które MSTICPy automatycznie ładują podczas uruchamiania nbinit.init_notebook funkcji.

Obsługiwane składniki obejmują następujące elementy:

  1. TILookup: Biblioteka dostawcy TI, której chcesz użyć
  2. Geoip: Dostawca geoIP, którego chcesz użyć
  3. AzureData: Moduł używany do wykonywania zapytań o szczegóły dotyczące zasobów Azure
  4. AzureSentinelAPI: Moduł używany do wykonywania zapytań względem interfejsu API Microsoft Sentinel
  5. Notebooklets: Notebooklets z pakietu msticnb
  6. Przestawianie: Funkcje przestawiania

Komponenty ładują się w kolejności podanej, ponieważ komponent Pivot wymaga zapytania i innych dostawców, aby znaleźć funkcje pivota, które przypisuje do entycji. Aby uzyskać więcej informacji, zobacz dokumentację programu MSTICPy. Aby uzyskać więcej informacji, zobacz notes Przewodnik wprowadzający do notesów ML usługi Azure Sentinel.

Aby zdefiniować automatycznie ładowane składniki MSTICPy:

  1. Przejdź do następnej komórki z następującym kodem i uruchom ją:

    mpedit.set_tab("Autoload Components")
    mpedit
    
  2. Na karcie Komponenty automatycznie ładowane zdefiniuj odpowiednie wartości parametrów w razie potrzeby. Przykład:

    • GeoIpLookup. Wprowadź nazwę dostawcy geoIP, którego chcesz użyć, GeoLiteLookup lub IPStack.

    • Składniki AzureData i AzureSentinelAPI. Zdefiniuj następujące wartości:

      • auth_methods: Zastąp domyślne ustawienia AzureCLI i połącz się za pomocą wybranych metod.
      • Automatyczne łączenie: Ustaw wartość false, aby załadować bez nawiązywania połączenia.

      Aby uzyskać więcej informacji, zobacz Określanie parametrów uwierzytelniania dla interfejsów API Azure i Microsoft Sentinel.

    • Notatniki. Składnik Notebooklets ma pojedynczy blok parametrów: AzureSentinel.

      Określ obszar roboczy 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 do notebooklets init funkcji, określ je jako pary klucz:wartość, oddzielone nowymi wierszami. 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.

  3. Wybierz pozycję Zapisz ustawienia , aby zapisać zmiany.

Przełączanie między jądrami języka Python 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 program MSTICPy i inne pakiety nie zostaną zainstalowane zgodnie z oczekiwaniami.

Ten problem z instalacją może pojawić się, gdy polecenie poprawnie się zainstaluje !pip install pkg w pierwszym środowisku, a potem nie zainstaluje poprawnie w drugim. Nieudana instalacja w drugim środowisku oznacza, że środowisko nie może zaimportować ani użyć pakietu.

Zalecamy, aby nie używać !pip install... do instalowania pakietów w notesnikach usługi Azure Machine Learning. Zamiast tego użyj jednej z następujących opcji:

  • Użyj magii wiersza %pip w notesie. Uruchom:

    
    %pip install --upgrade msticpy
    
  • Instalowanie z terminalu:

    1. Otwórz terminal w notatnikach usługi Azure Machine Learning i uruchom następujące polecenia:

      conda activate azureml_py38
      pip install --upgrade msticpy
      
    2. Zamknij terminal i uruchom ponownie jądro.

Ustawianie zmiennej środowiskowej dla pliku msticpyconfig.yaml

Jeśli korzystasz z usługi Azure Machine Learning i masz plik msticpyconfig.yaml w katalogu głównym folderu użytkownika, program MSTICPy automatycznie znajdzie te ustawienia. Jeśli jednak uruchamiasz notatniki w innym środowisku, ustaw zmienną środowiskową wskazującą lokalizację pliku konfiguracyjnego, wykonując następujące kroki.

Zdefiniowanie ś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 korzystać z różnych ustawień dla różnych notatników.

  1. Zdecyduj o lokalizacji pliku msticpyconfig.yaml , na przykład w pliku ~/.msticpyconfig.yaml lub %userprofile%/msticpyconfig.yaml.

    Użytkownicy usługi Azure Machine Learning: jeśli przechowujesz plik konfiguracji w folderze użytkownika usługi Azure Machine Learning, funkcja MSTICPy init_notebook (uruchamiana w komórce inicjalizacyjnej) automatycznie znajduje i używa tego pliku, a Ty nie musisz ustawiać zmiennej środowiskowej MSTICPYCONFIG.

    Jeśli jednak w pliku są również przechowywane wpisy tajne, zalecamy przechowywanie pliku konfiguracji na lokalnym dysku obliczeniowym. Magazyn wewnętrzny obliczeniowy jest dostępny tylko dla osoby, która utworzyła zasoby obliczeniowe, natomiast magazyn udostępniony jest dostępny dla wszystkich osób mających dostęp do obszaru roboczego usługi Azure Machine Learning.

    Aby uzyskać więcej informacji, zobacz Co to jest wystąpienie obliczeniowe usługi Azure Machine Learning?.

  2. W razie potrzeby skopiuj plik msticpyconfig.yaml do wybranej lokalizacji.

  3. Ustaw zmienną środowiskową MSTICPYCONFIG , aby wskazywała tę lokalizację.

Wybierz jedną z poniższych zakładek, aby zdefiniować zmienną środowiskową MSTICPYCONFIG na Windows, Linux lub Azure Machine Learning.

Aby na przykład ustawić zmienną środowiskową MSTICPYCONFIG w systemach Windows:

  1. Przenieś plik msticpyconfig.yaml na wystąpienie obliczeniowe w razie potrzeby.

  2. Otwórz okno dialogowe Właściwości systemu na karcie Zaawansowane .

  3. Wybierz pozycję Zmienne środowiskowe... aby otworzyć okno dialogowe Zmienne środowiskowe .

  4. 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

Uwaga

W opcjach Linux i Windows musisz zrestartować serwer Jupyter, aby serwer przejął zdefiniowaną przez Ciebie zmienną środowiskową.

Następne kroki

Więcej informacji można znaleźć w następujących artykułach:

Temat Więcej odnośników
MSTICPy - Konfiguracja pakietu MSTICPy
- Edytor ustawień MSTICPy
- Konfigurowanie środowiska notatnika.
- Notatnik MPSettingsEditor.

Uwaga: repozytorium GitHub Azure-Sentinel-Notebooks zawiera również plik msticpyconfig.yaml szablonu z sekcjami z komentarzami, co może pomóc w zrozumieniu ustawień.
Microsoft Sentinel i notatniki Jupyter - Utwórz swój pierwszy notes Microsoft Sentinel (seria wpisów na blogu)
- Notesy Jupyter: wprowadzenie
- Dokumentacja programu MSTICPy
- dokumentacja Notesników Microsoft Sentinel
- Podręcznik Jupyterbook programu Infosec
- Przewodnik po notesie Eksplorator hostów systemu Linux
- Dlaczego warto używać programu Jupyter do badania zabezpieczeń
- Dochodzenia w sprawach bezpieczeństwa przy użyciu Microsoft Sentinel i notesów
- Dokumentacja biblioteki Pandas
- Dokumentacja Bokeh