Använda Jupyter Notebooks för att leta efter säkerhetshot

Anteckning

Azure Sentinel heter nu Microsoft Sentinel och vi kommer att uppdatera dessa sidor under de kommande veckorna. Läs mer om de senaste säkerhetsförbättringarna från Microsoft.

Anteckning

Information om funktionstillgänglighet i US Government-moln finns i Microsoft Sentinel-tabeller i Cloud feature availability for US Government customers (Funktionstillgänglighet för amerikanska myndigheter).

Grunden för Microsoft Sentinel är datalagret. Den kombinerar frågor med höga prestanda, dynamiskt schema och skalar till enorma datavolymer. I Azure Portal och alla Microsoft Sentinel-verktyg används ett gemensamt API för att komma åt det här datalagret.

Samma API är också tillgängligt för externa verktyg som Jupyter Notebooks och Python. Många vanliga uppgifter kan utföras i portalen, men Jupyter utökar omfånget för vad du kan göra med dessa data. Den kombinerar fullständig programmerbarhet med en enorm samling bibliotek för maskininlärning, visualisering och dataanalys. Dessa attribut gör Jupyter till ett övertygande verktyg för säkerhetsundersökning och jakt.

Använd till exempel notebook-datorer för att:

  • Utföra analyser som inte tillhandahålls direkt i Microsoft Sentinel, till exempel vissa funktioner för Python-maskininlärning
  • Skapa datavisualiseringar som inte tillhandahålls direkt i Microsoft Sentinel, till exempel anpassade tidslinjer och processträd
  • Integrera datakällor utanför Microsoft Sentinel, till exempel en lokal datauppsättning.

Vi har integrerat Jupyter-upplevelsen i Azure Portal, vilket gör det enkelt för dig att skapa och köra notebook-datorer för att analysera dina data. Kqlmagic-biblioteket innehåller limmet som gör att du kan ta KQL-frågor från Microsoft Sentinel och köra dem direkt i en notebook-dator.

Flera notebook-datorer som utvecklats av några av Microsofts säkerhetsanalytiker är paketerade med Microsoft Sentinel:

  • Vissa av dessa notebook-datorer är byggda för ett specifikt scenario och kan användas i sin form.
  • Andra är avsedda som exempel för att illustrera tekniker och funktioner som du kan kopiera eller anpassa för användning i dina egna notebook-filer.

Andra notebook-filer kan också importeras från Microsoft Sentinel GitHub lagringsplatsen.

Notebook-komponenter

Notebook-datorer har två komponenter:

  • Det webbläsarbaserade gränssnittet, där du anger och kör frågor och kod, och där resultatet av körningen visas.
  • En kernel som ansvarar för att parsa och köra själva koden.

Microsoft Sentinel-anteckningsbokens kernel körs på en virtuell Azure-dator (VM). Det finns flera licensieringsalternativ för att använda mer kraftfulla virtuella datorer om dina notebook-datorer innehåller komplexa maskininlärningsmodeller.

Microsoft Sentinel-anteckningsböcker använder många populära Python-bibliotek som pandas, matplotlib, bokeh och andra. Det finns många andra Python-paket att välja bland, som omfattar områden som:

  • Visualiseringar och grafik
  • Databearbetning och analys
  • Statistik och numerisk databehandling
  • Maskininlärning och djupinlärning

För att undvika att behöva skriva eller klistra in komplex och repetitiv kod i notebook-celler förlitar sig de flesta Python-anteckningsböcker på bibliotek från tredje part som kallas paket. Om du vill använda ett paket i en notebook-dator måste du både installera och importera paketet. Azure ML Compute har de vanligaste paketen förinstallerade. Se till att du importerar paketet eller den relevanta delen av paketet, till exempel en modul, fil, funktion eller klass.

Microsoft Sentinel Notebooks använder ett Python-paket som heter MSTICPy, som är en samling cybersäkerhetsverktyg för datahämtning, analys, berikning och visualisering.

MSTICPy-verktyg är särskilt utformade för att hjälpa till med att skapa notebook-datorer för jakt och undersökning och vi arbetar aktivt med nya funktioner och förbättringar. Mer information finns i:

Lagringsplatsen för Microsoft Sentinel GitHub är platsen för framtida Microsoft Sentinel-anteckningsböcker som skapats av Microsoft eller bidragit från communityn.

Hantera åtkomst till Microsoft Sentinel-anteckningsböcker

Om du vill använda Jupyter Notebooks i Microsoft Sentinel måste du först ha rätt behörigheter, beroende på din användarroll.

Du kan köra Microsoft Sentinel-anteckningsböcker i JupyterLab eller klassisk Jupyter, men i Microsoft Sentinel körs notebook-datorer på en Azure Machine Learning-plattform (Azure ML). Om du vill köra notebook-datorer i Microsoft Sentinel måste du ha lämplig åtkomst till både Microsoft Sentinel-arbetsytan och en Azure ML-arbetsyta.

Behörighet Description
Microsoft Sentinel-behörigheter Precis som andra Microsoft Sentinel-resurser krävs rollen Microsoft Sentinel-läsare, Microsoft Sentinel-svarare eller Microsoft Sentinel-deltagare för att få åtkomst till notebook-datorer på bladet Microsoft Sentinel Notebooks.

Mer information finns i Behörigheter i Microsoft Sentinel.
Azure Machine Learning behörigheter En Azure Machine Learning-arbetsyta är en Azure-resurs. Precis som med andra Azure-resurser kommer Azure Machine Learning en ny arbetsyta att levereras med standardroller. Du kan lägga till användare på arbetsytan och tilldela dem till någon av dessa inbyggda roller. Mer information finns i Azure Machine Learning för standardroller och inbyggda Azure-roller.

Viktigt! Rollåtkomst kan vara begränsad till flera nivåer i Azure. Till exempel kanske någon med ägaråtkomst till en arbetsyta inte har ägaråtkomst till resursgruppen som innehåller arbetsytan. Mer information finns i Så här fungerar Azure RBAC.

Om du är ägare till en Azure ML-arbetsyta kan du lägga till och ta bort roller för arbetsytan och tilldela roller till användare. Mer information finns i:
- Azure Portal
- Powershell
- Azure CLI
- REST API
- Azure Resource Manager mallar
- Azure Machine Learning CLI

Om de inbyggda rollerna inte är tillräckliga kan du också skapa anpassade roller. Anpassade roller kan ha läs-, skriv-, borttagnings- och beräkningsresursbehörigheter på arbetsytan. Du kan göra rollen tillgänglig på en specifik arbetsytenivå, en specifik resursgruppsnivå eller en specifik prenumerationsnivå. Mer information finns i Skapa anpassad roll.

Skapa en Azure ML-arbetsyta från Microsoft Sentinel

Den här proceduren beskriver hur du skapar en Azure ML-arbetsyta från Microsoft Sentinel för dina Microsoft Sentinel-anteckningsböcker.

Så här skapar du din arbetsyta:

Välj någon av följande flikar, beroende på om du kommer att använda en offentlig eller privat slutpunkt.

  • Vi rekommenderar att du använder en offentlig slutpunkt om din Microsoft Sentinel-arbetsyta har en, för att undvika potentiella problem i nätverkskommunikationen.
  • Om du vill använda en Azure ML-arbetsyta i ett virtuellt nätverk använder du en privat slutpunkt.
  1. Gå Azure Portal Microsoft Sentinel Threat management Notebooks (Notebooks för hothantering med Microsoft Sentinel) och > > välj sedan Skapa en ny AML arbetsyta.

  2. Ange följande information och välj sedan Nästa.

    Fält Beskrivning
    Prenumeration Välj den Azure-prenumeration som du vill använda.
    Resursgrupp Använd en befintlig resursgrupp i din prenumeration eller ange ett namn för att skapa en ny resursgrupp. En resursgrupp innehåller relaterade resurser för en Azure-lösning.
    Namn på arbetsyta Ange ett unikt namn som identifierar din arbetsyta. Namnen måste vara unika i resursgruppen. Använd ett namn som är lätt att återkalla och för att skilja från arbetsytor som skapats av andra.
    Region Välj den plats som är närmast dina användare och de dataresurser som ska skapa arbetsytan.
    Lagringskonto Ett lagringskonto används som standarddatalager för arbetsytan. Du kan skapa en Azure Storage resurs eller välja en befintlig i din prenumeration.
    KeyVault Ett nyckelvalv används för att lagra hemligheter och annan känslig information som krävs av arbetsytan. Du kan skapa en Azure Key Vault resurs eller välja en befintlig i din prenumeration.
    Application Insights Arbetsytan använder Azure Application Insights för att lagra övervakningsinformation om dina distribuerade modeller. Du kan skapa en Azure Application Insights resurs eller välja en befintlig i din prenumeration.
    Containerregister Ett containerregister används för att registrera Docker-avbildningar som används i träning och distributioner. För att minimera kostnaderna skapas en Azure Container Registry resurs först när du har skapat din första avbildning. Du kan också välja att skapa resursen nu eller välja en befintlig i din prenumeration, eller välja Ingen om du inte vill använda något containerregister.
  3. På fliken Nätverk väljer du Offentlig slutpunkt (alla nätverk).

    Definiera relevanta inställningar på flikarna Avancerat eller Taggar och välj sedan Granska + skapa.

  4. På fliken Granska + skapa granskar du informationen för att kontrollera att den är korrekt och väljer sedan Skapa för att börja distribuera arbetsytan. Exempel:

    Granska + skapa din Machine Learning från Microsoft Sentinel.

    Det kan ta flera minuter att skapa din arbetsyta i molnet. Under den här tiden visar arbetsytans översiktssida den aktuella distributionsstatusen och uppdateringar när distributionen är klar.

När distributionen är klar kan du gå tillbaka till Microsoft Sentinel Notebooks och starta notebook-filar från din nya Azure ML arbetsyta.

Om du har flera notebook-filer måste du välja en standardarbetsyta AML ska använda när du startar notebook-filer. Exempel:

Välj en standardarbetsyta AML för dina notebook-datorer.

Starta en notebook-fil i Azure ML arbetsyta

När du har skapat en AML arbetsyta kan du börja starta dina notebook-ML azure-arbetsyta från Microsoft Sentinel.

Anteckning

Du kan visa en notebook-dator som ett statiskt dokument, till exempel i GitHub inbyggda statiska notebook-renderare. Men om du vill köra kod i en notebook-dator måste du koppla notebook-koden till en backend-process som kallas jupyter-kernel. Kerneln kör koden och innehåller alla variabler och objekt som koden skapar. Webbläsaren är visningsprogrammet för dessa data.

I Azure ML körs kerneln på en virtuell dator som kallas Azure ML Compute. Beräkningsinstansen har stöd för att köra många notebook-datorer samtidigt.

Så här startar du anteckningsboken från Microsoft Sentinel:

  1. Gå till Azure Portal Microsoft Sentinel Threat Management Notebooks , där du kan se > > notebook-datorer som Microsoft Sentinel tillhandahåller.

    Tips

    Längst upp på sidan Notebooks väljer du Guider & Feedback för att visa fler resurser och vägledning i ett fönster till höger.

  2. Välj en notebook-fil för att visa dess beskrivning, nödvändiga datatyper och datakällor.

    När du har hittat anteckningsboken som du vill använda väljer du Spara anteckningsbok för att klona den till din egen arbetsyta.

    Redigera namnet efter behov. Om anteckningsboken redan finns på arbetsytan kan du skriva över den befintliga notebook-datorn eller skapa en ny.

    Spara en notebook-dator för att klona den till din egen arbetsyta.

  3. När notebook-filen har sparats ändras knappen Spara anteckningsbok till Starta notebook-filen. Välj Starta anteckningsbok för att öppna den i AML arbetsyta.

    Exempel:

    Starta anteckningsboken i din AML arbetsyta.

  4. Längst upp på sidan väljer du en Beräkningsinstans som ska användas för notebook-servern.

    Om du inte har en beräkningsinstans skapar du en ny. Om beräkningsinstansen har stoppats måste du starta den. Mer information finns i Köra en notebook-dator i Azure Machine Learning studio.

    Det är bara du som kan se och använda de beräkningsinstanser som du skapar. Dina användarfiler lagras separat från den virtuella datorn och delas mellan alla beräkningsinstanser på arbetsytan.

    Tips

    Om du skapar en ny beräkningsinstans för att testa dina notebook-datorer skapar du beräkningsinstansen med Generell användning kategori.

    Kerneln visas också längst upp till höger i Azure ML-fönstret. Om den kernel du behöver inte är vald väljer du en annan version i listrutan.

  5. När notebook-servern har skapats och startats kan du börja köra notebook-cellerna. I varje cell väljer du ikonen Kör för att köra notebook-koden.

    Mer information finns i Genvägar i kommandoläge.

  6. Om notebook-datorn låser sig eller om du vill börja om kan du starta om kerneln och köra notebook-cellerna igen från början. Välj Kernel operations Restart kernel (Starta > om kernel). Exempel:

    Starta om en notebook-kernel.

    Viktigt

    När du startar om kerneln rensas alla variabler och andra tillstånd. Du måste köra om alla initierings- och autentiseringsceller efter omstart.

Köra kod i anteckningsboken

I en notebook-dator:

  • Markdown-celler har text, inklusive HTML och statiska bilder.
  • Kodceller innehåller kod. När du har valt en kodcell kör du koden i cellen genom att välja ikonen Spela upp till vänster om cellen eller genom att trycka på SKIFT+RETUR.

Viktigt

Kör alltid notebook-kodceller i följd. Att hoppa över celler kan resultera i fel.

Kör till exempel följande kodcell i anteckningsboken:

# This is your first code cell. This cell contains basic Python code.

# You can run a code cell by selecting it and then selecting
# the Play button to the left of the cell, or by pressing SHIFT+ENTER.
# Code output displays below the code.

print("Congratulations, you just ran this code cell")

y = 2 + 2

print("2 + 2 =", y)

Exempelkoden som visas ovan ger följande utdata:

Congratulations, you just ran this code cell

2 + 2 = 4

Variabler som anges i en notebook-kodcell bevaras mellan celler, så att du kan länka ihop celler. Till exempel använder följande kodcell värdet för y från föregående cell:

# Note that output from the last line of a cell is automatically
# sent to the output cell, without needing the print() function.

y + 2

Utdata ser ut så här:

6

Ladda ned alla Notebook-filer för Microsoft Sentinel

I det här avsnittet beskrivs hur du använder Git för att ladda ned alla notebook-filer som är tillgängliga i Microsoft SentinelGitHub-lagringsplatsen från en Microsoft Sentinel-notebook-fil direkt till din Azure ML-arbetsyta.

Med Microsoft Sentinel-notebook-filer lagrade i din Azure ML-arbetsyta kan du enkelt hålla dem uppdaterade.

  1. Från en Microsoft Sentinel-notebook-dator anger du följande kod i en tom cell och kör sedan cellen:

    !git clone https://github.com/Azure/Azure-Sentinel-Notebooks.git azure-sentinel-nb
    

    En kopia av GitHub-lagringsplatsens innehåll skapas i katalogen azure-Sentinel-nb i användarmappen i azure ML arbetsytan.

  2. Kopiera de notebook-filer som du vill använda från den här mappen till din arbetskatalog.

  3. Om du vill uppdatera dina notebook-datorer med de senaste ändringarna GitHub kör du:

    !cd azure-sentinel-nb && git pull
    

Felsökning

Normalt skapar eller kopplar en notebook-dator sömlöst till en kernel och du behöver inte göra några manuella ändringar. Om du får fel, eller om notebook-datorn inte verkar köras, kan du behöva kontrollera versionen och tillståndet för kerneln.

Om du får problem med dina notebook-datorer kan du Azure Machine Learning notebook-felsökning.

Tvinga cachelagring för användarkonton och autentiseringsuppgifter mellan notebook-körningar

Som standard cachelagras inte användarkonton och autentiseringsuppgifter mellan notebook-körningar, inte ens för samma session.

Så här tvingar du cachelagring under sessionens varaktighet:

  1. Autentisera med Hjälp av Azure CLI. I en tom notebook-cell anger du och kör följande kod:

    !az login
    

    Följande utdata visas:

    To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the 9-digit device code to authenticate.
    
  2. Välj och kopiera token med nio tecken från utdata och välj devicelogin URL:en för att gå till den angivna sidan.

  3. Klistra in token i dialogrutan och fortsätt med att logga in som du uppmanas att göra.

    När inloggningen är klar visas följande utdata:

    Subscription <subscription ID> 'Sample subscription' can be accessed from tenants <tenant ID>(default) and <tenant ID>. To select a specific tenant when accessing this subscription, use 'az login --tenant TENANT_ID'.
    
    

Anteckning

The following tenants don't contain accessible subscriptions. Use 'az login --allow-no-subscriptions' to have tenant level access.

<tenant ID> 'foo'
<tenant ID> 'bar'
[
{
   "cloudName": "AzureApp",
   "homeTenantId": "<tenant ID>",
   "id": "<ID>",
   "isDefault": true,
   "managedByTenants": [
   ....

Error: Runtime dependency of PyGObject is missing

If the Runtime dependency of PyGObject is missing error appears when you load a query provider, try troubleshooting using the following steps:

  1. Proceed to the cell with the following code and run it:

    qry_prov = QueryProvider("AzureSentinel")
    

    En varning som liknar följande meddelande visas som anger att Python-beroende saknas ( pygobject ):

    Runtime dependency of PyGObject is missing.
    
    Depends on your Linux distribution, you can install it by running code similar to the following:
    sudo apt install python3-gi python3-gi-cairo gir1.2-secret-1
    
    If necessary, see PyGObject's documentation: https://pygobject.readthedocs.io/en/latest/getting_started.html
    
    Traceback (most recent call last):
      File "/anaconda/envs/azureml_py36/lib/python3.6/site-packages/msal_extensions/libsecret.py", line 21, in <module>
    import gi  # https://github.com/AzureAD/microsoft-authentication-extensions-for-python/wiki/Encryption-on-Linux
    ModuleNotFoundError: No module named 'gi'
    
  2. Använd aml-compute-setup.sh-skriptet, som finns i Microsoft Sentinel Notebooks GitHub-lagringsplatsen, för att automatiskt installera i alla pygobject notebook-datorer och Anaconda-miljöer på beräkningsinstansen.

Tips

Du kan också åtgärda den här varningen genom att köra följande kod från en notebook-dator:

!conda install --yes -c conda-forge pygobject

Nästa steg

Integrera din notebook-upplevelse med stordataanalys i Azure Synapse. Mer information finns i Integrera anteckningsböcker med Azure Synapse (allmänt tillgänglig förhandsversion).

Andra notebook-filer som delas i Microsoft Sentinel GitHub-lagringsplatsen är avsedda som användbara verktyg, bilder och kodexempel som du kan använda när du utvecklar egna notebook-filer.

Vi tar gärna emot feedback, förslag, begäranden om funktioner, bidragna anteckningsböcker, buggrapporter eller förbättringar och tillägg till befintliga notebook-datorer. Gå till Lagringsplatsen för Microsoft Sentinel GitHub för att skapa ett ärende eller för att ladda upp ett bidrag.

  • Lär dig mer om hur du använder notebook-filar i hotjakt och hotundersökning genom att utforska vissa notebook-mallar, till exempel genomsökning av autentiseringsuppgifter i Azure Log Analytics och interaktiv undersökning – processaviseringar.

    Du hittar fler notebook-mallar på fliken Microsoft Sentinel > Notebooks > Templates (Mallar för notebook-datorer).

  • Hitta fler anteckningsböcker i Microsoft Sentinel GitHub lagringsplats:

    • Katalogen Sample-Notebooks innehåller exempel på notebook-filer som sparas med data som du kan använda för att visa avsedda utdata.

    • Katalogen innehåller notebook-filer som beskriver begrepp som att ställa in din standardversion av Python, skapa Microsoft Sentinel-bokmärken från HowTos en notebook-fil med mera.

Mer information finns i: