Udostępnij za pośrednictwem


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:

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

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

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

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

    mpedit.set_tab("Autoload QueryProvs")
    mpedit
    
  2. 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 to qry_<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
      
  3. 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:

  1. TILookup: biblioteka dostawcy TI
  2. GeoIP: dostawca GeoIP, którego chcesz użyć
  3. AzureData: moduł używany do wykonywania zapytań dotyczących szczegółowych informacji o zasobach platformy Azure
  4. AzureSentinelAPI: moduł używany do wykonywania zapytań względem interfejsu API usługi Microsoft Sentinel
  5. Noteslety: Noteslety z pakietu msticnb
  6. 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:

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

    mpedit.set_tab("Autoload Components")
    mpedit
    
  2. 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.

  3. 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:

    1. Otwórz terminal w notesach usługi Azure ML 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 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.

  1. 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?.

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

  3. 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:

  1. Przenieś plik msticpyconfig.yaml do wystąpienia obliczeniowego zgodnie z potrzebami.

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