Avancerade konfigurationer för Jupyter Notebooks och MSTICPy i Microsoft Sentinel

I den här artikeln beskrivs avancerade konfigurationer för att arbeta med Jupyter Notebooks och MSTICPy i Microsoft Sentinel.

Mer information finns i Använda Jupyter Notebooks för att söka efter säkerhetshot och självstudier: Kom igång med Jupyter Notebooks och MSTICPy i Microsoft Sentinel.

Förutsättningar

Den här artikeln är en fortsättning på från Självstudie: Kom igång med Jupyter Notebooks och MSTICPy i Microsoft Sentinel. Vi rekommenderar att du utför självstudien innan du fortsätter med de avancerade procedurer som beskrivs nedan.

Ange autentiseringsparametrar för Azure- och Microsoft Sentinel-API:er

Den här proceduren beskriver hur du konfigurerar autentiseringsparametrar för Microsoft Sentinel och andra Azure API-resurser i filen msticpyconfig.yaml .

Så här lägger du till Inställningar för Azure-autentisering och Microsoft Sentinel API i redigeraren för MSTICPy-inställningar:

  1. Fortsätt till nästa cell med följande kod och kör den:

    mpedit.set_tab("Data Providers")
    mpedit
    
  2. På fliken Dataprovidrar väljer du AzureCLI>Lägg till.

  3. Välj de autentiseringsmetoder som ska användas:

    • Du kan använda en annan uppsättning metoder än Azure-standardvärden, men den här användningen är inte en typisk konfiguration.
    • Om du inte vill använda autentiseringen env (miljövariabel) lämnar du fälten clientId, tenantiId och clientSecret tomma.
    • Även om det inte rekommenderas stöder MSTICPy även användning av klientapp-ID:er och hemligheter för din autentisering. I sådana fall definierar du fälten clientId, tenantId och clientSecret direkt på fliken Dataprovidrar.
  4. Spara ändringarna genom att välja Spara fil .

Definiera automatisk inläsning av frågeprovidrar

Definiera alla frågeproviders som du vill att MSTICPy ska läsas in automatiskt när du kör nbinit.init_notebook funktionen.

När du ofta skapar nya notebook-filer kan du spara tid genom att automatiskt läsa in frågeprovidrar genom att se till att nödvändiga leverantörer läses in före andra komponenter, till exempel pivotfunktioner och notebookletar.

Så här lägger du till frågeproviders för automatisk inläsning:

  1. Fortsätt till nästa cell med följande kod och kör den:

    mpedit.set_tab("Autoload QueryProvs")
    mpedit
    
  2. På fliken Hämta frågaprov automatiskt:

    • För Microsoft Sentinel-leverantörer anger du både providernamnet och arbetsytans namn som du vill ansluta till.
    • För andra frågeproviders anger du endast providernamnet.

    Varje provider har också följande valfria värden:

    • Automatisk anslutning: Det här alternativet definieras som Sant som standard och MSTICPy försöker autentisera till providern omedelbart efter inläsningen. MSTICPy förutsätter att du har konfigurerat autentiseringsuppgifter för providern i inställningarna.

    • Alias: När MSTICPy läser in en provider tilldelar den providern till ett Python-variabelnamn. Som standard är variabelnamnet qryworkspace_name för Microsoft Sentinel-leverantörer och qryprovider_name för andra leverantörer.

      Om du till exempel läser in en frågeprovider för ContosoSOC-arbetsytan skapas den här frågeprovidern i notebook-miljön med namnet qry_ContosoSOC. Lägg till ett alias om du vill använda något kortare eller enklare att skriva och komma ihåg. Providervariabelnamnet blir qry_<alias>, där <alias> ersätts med det aliasnamn som du angav.

      Leverantörer som du läser in med den här mekanismen läggs också till i attributet MSTICPy current_providers , som till exempel används i följande kod:

      import msticpy
      msticpy.current_providers
      
  3. Spara ändringarna genom att välja Spara Inställningar.

Definiera automatiskt inlästa MSTICPy-komponenter

Den här proceduren beskriver hur du definierar andra komponenter som läses in automatiskt av MSTICPy när du kör nbinit.init_notebook funktionen.

Komponenter som stöds omfattar i följande ordning:

  1. TILookup:TI-providerbiblioteket
  2. GeoIP: GeoIP-providern som du vill använda
  3. AzureData: Modulen som du använder för att fråga efter information om Azure-resurser
  4. AzureSentinelAPI: Modulen som du använder för att köra frågor mot Microsoft Sentinel-API:et
  5. Notebooklets: Notebooklets från msticnb-paketet
  6. Pivot: Pivotfunktioner

Kommentar

Komponenterna läses in i den här ordningen eftersom pivotkomponenten behöver fråga och andra leverantörer läses in för att hitta de pivotfunktioner som den kopplar till entiteter. Mer information finns i MSTICPy-dokumentationen.

Så här definierar du automatiskt inlästa MSTICPy-komponenter:

  1. Fortsätt till nästa cell med följande kod och kör den:

    mpedit.set_tab("Autoload Components")
    mpedit
    
  2. På fliken Automatisk inläsning av komponenter definierar du eventuella parametervärden efter behov. Till exempel:

    • GeoIpLookup. Ange namnet på den GeoIP-provider som du vill använda, antingen GeoLiteLookup eller IPStack. Mer information finns i Lägg till geoIP-providerinställningar.

    • AzureData- och AzureSentinelAPI-komponenter. Definiera följande värden:

      • auth_methods: Åsidosätt standardinställningarna för AzureCLI och anslut med de valda metoderna.
      • Automatisk anslutning: Ställ in på false för att läsa in utan att ansluta.

      Mer information finns i Ange autentiseringsparametrar för Azure- och Microsoft Sentinel-API:er.

    • Notebooklets. Notebooklets-komponenten har ett enda parameterblock: AzureSentinel.

      Ange din Microsoft Sentinel-arbetsyta med hjälp av följande syntax: workspace:\<workspace name>. Arbetsytans namn måste vara en av de arbetsytor som definierats på fliken Microsoft Sentinel .

      Om du vill lägga till fler parametrar som ska skickas till notebooklets init funktionen anger du dem som nyckel:värdepar, avgränsade med nya linjer. Till exempel:

      workspace:<workspace name>
      providers=["LocalData","geolitelookup"]
      

      Mer information finns i MSTICNB-dokumentationen (MSTIC Notebooklets).

    Vissa komponenter, till exempel TILookup och Pivot, kräver inga parametrar.

  3. Spara ändringarna genom att välja Spara Inställningar.

Växla mellan Python 3.6- och 3.8-kernels

Om du växlar mellan Python 3.65- och 3.8-kernels kan det hända att MSTICPy och andra paket inte installeras som förväntat.

Detta kan inträffa när !pip install pkg kommandot installeras korrekt i den första miljön, men sedan inte installeras korrekt i den andra. Detta skapar en situation där den andra miljön inte kan importera eller använda paketet.

Vi rekommenderar att du inte använder !pip install... för att installera paket i Azure ML Notebooks. Använd i stället något av följande alternativ:

  • Använd %pip-linjemagi i en notebook-fil. Kör:

    
    %pip install --upgrade msticpy
    
  • Installera från en terminal:

    1. Öppna en terminal i Azure ML-notebook-filer och kör följande kommandon:

      conda activate azureml_py38
      pip install --upgrade msticpy
      
    2. Stäng terminalen och starta om kerneln.

Ange en miljövariabel för filen msticpyconfig.yaml

Om du kör i Azure ML och har filen msticpyconfig.yaml i roten i användarmappen hittar MSTICPy automatiskt de här inställningarna. Men om du kör notebook-filerna i en annan miljö följer du anvisningarna i det här avsnittet för att ange en miljövariabel som pekar på platsen för konfigurationsfilen.

Genom att definiera sökvägen till filen msticpyconfig.yaml i en miljövariabel kan du lagra filen på en känd plats och se till att du alltid läser in samma inställningar.

Använd flera konfigurationsfiler, med flera miljövariabler, om du vill använda olika inställningar för olika notebook-filer.

  1. Bestäm en plats för filen msticpyconfig.yaml, till exempel i ~/.msticpyconfig.yaml eller %userprofile%/msticpyconfig.yaml.

    Azure ML-användare: Om du lagrar konfigurationsfilen i azure ML-användarmappen kommer MSTICPy-funktionen init_notebook (körs i initieringscellen) automatiskt att hitta och använda filen, och du behöver inte ange en MSTICPYCONFIG-miljövariabel .

    Men om du även har hemligheter lagrade i filen rekommenderar vi att du lagrar konfigurationsfilen på den lokala beräkningsenheten. Den interna beräkningslagringen är endast tillgänglig för den person som skapade beräkningen, medan den delade lagringen är tillgänglig för alla som har åtkomst till din Azure ML-arbetsyta.

    Mer information finns i Vad är en Azure Machine Learning-beräkningsinstans?.

  2. Om det behövs kopierar du filen msticpyconfig.yaml till den valda platsen.

  3. Ange miljövariabeln MSTICPYCONFIG så att den pekar på den platsen.

Använd någon av följande procedurer för att definiera miljövariabeln MSTICPYCONFIG .

Om du till exempel vill ange miljövariabeln MSTICPYCONFIG i Windows-system:

  1. Flytta filen msticpyconfig.yaml till Beräkningsinstansen efter behov.

  2. Öppna dialogrutan Systemegenskaperfliken Avancerat.

  3. Välj Miljövariabler... för att öppna dialogrutan Miljövariabler .

  4. I området Systemvariabler väljer du Nytt... och definierar värdena enligt följande:

    • Variabelnamn: Definiera som MSTICPYCONFIG
    • Variabelvärde: Ange sökvägen till filen msticpyconfig.yaml

Kommentar

För alternativen Linux och Windows måste du starta om Jupyter-servern för att den ska kunna hämta miljövariabeln som du har definierat.

Nästa steg

Mer information finns i:

Subject Fler referenser
MSTICPy - Konfiguration av MSTICPy-paket
- MSTICPy Inställningar Editor
- Konfigurera notebook-miljön.
- MP Inställningar Editor Notebook.

Obs! GitHub-lagringsplatsen Azure-Sentinel-Notebooks innehåller också en mallfil msticpyconfig.yaml med kommenterade avsnitt, vilket kan hjälpa dig att förstå inställningarna.
Microsoft Sentinel- och Jupyter-notebook-filer - Skapa din första Microsoft Sentinel-anteckningsbok (bloggserie)
- Jupyter Notebooks: En introduktion
- MSTICPy-dokumentation
- Dokumentation om Microsoft Sentinel Notebooks
- The Infosec Jupyterbook
- Genomgång av Linux Host Explorer Notebook
- Varför använda Jupyter för säkerhetsutredningar
- Säkerhetsutredningar med Microsoft Sentinel och notebook-filer
- Dokumentation om Pandas
- Dokumentation om Bokeh