Kom igång med Jupyter Notebooks och MSTICPy i Microsoft Sentinel

Den här artikeln beskriver hur du kör notebook-filen Komma igång för Microsoft Sentinel ML Notebooks, som konfigurerar grundläggande konfigurationer för att köra Jupyter Notebooks i Microsoft Sentinel och köra enkla datafrågor.

I komma igång-guiden för Microsoft Sentinel ML Notebooks-notebook-filer används MSTICPy, ett Python-bibliotek med cybersäkerhetsverktyg som skapats av Microsoft, som tillhandahåller funktioner för hotjakt och undersökning.

MSTICPy minskar mängden kod som kunderna behöver skriva för Microsoft Sentinel och tillhandahåller:

  • Datafrågefunktioner mot Microsoft Sentinel-tabeller, Microsoft Defender för Endpoint, Splunk och andra datakällor.
  • Hotinformationssökningar med TI-leverantörer, till exempel VirusTotal och AlienVault OTX.
  • Berikningsfunktioner som geoplats för IP-adresser, IoC-extrahering (Indicator of Compromise) och Vem Is-sökningar.
  • Visualiseringsverktyg med hjälp av händelsetidslinje, processträd och geo-mappning.
  • Avancerade analyser, till exempel nedbrytning av tidsserier, avvikelseidentifiering och klustring.

Stegen i den här artikeln beskriver hur du kör notebook-filen Komma igång för Microsoft Sentinel ML Notebooks på din Azure Machine Learning-arbetsyta via Microsoft Sentinel. Du kan också använda den här artikeln som vägledning för att utföra liknande steg för att köra notebook-filer i andra miljöer, inklusive lokalt.

Mer information finns i Använda notebook-filer för att utföra undersökningar och använda Jupyter-anteckningsböcker för att söka efter säkerhetshot.

Flera Microsoft Sentinel-notebook-filer använder inte MSTICPy, till exempel notebook-filer för autentiseringsuppgifter eller PowerShell- och C#-exemplen. Notebook-filer som inte använder MSTICpy behöver inte den MSTICPy-konfiguration som beskrivs i den här artikeln.

Viktigt!

Microsoft Sentinel är tillgängligt som en del av den offentliga förhandsversionen av den enhetliga säkerhetsåtgärdsplattformen i Microsoft Defender-portalen. Mer information finns i Microsoft Sentinel i Microsoft Defender-portalen.

Förutsättningar

Innan du börjar kontrollerar du att du har de behörigheter och resurser som krävs.

  • Om du vill använda notebook-filer i Microsoft Sentinel kontrollerar du att du har de behörigheter som krävs. Mer information finns i Hantera åtkomst till Microsoft Sentinel-notebook-filer.

  • För att utföra stegen i den här artikeln behöver du Python 3.6 eller senare. I Azure Machine Learning kan du använda antingen en Python 3.8-kernel (rekommenderas) eller en Python 3.6-kernel.

  • Den här notebook-filen använder uppslagstjänsten MaxMind GeoLite2 för IP-adresser. Om du vill använda MaxMind GeoLite2-tjänsten behöver du en kontonyckel. Du kan registrera dig för ett kostnadsfritt konto och en nyckel på maxmind-registreringssidan.

  • Den här notebook-filen använder VirusTotal (VT) som källa för hotinformation. Om du vill använda VirusTotal hotinformationssökning behöver du ett VirusTotal-konto och en API-nyckel.

    Du kan registrera dig för ett kostnadsfritt VT-konto på sidan Komma igång med VirusTotal. Om du redan är en VirusTotal-användare kan du använda din befintliga nyckel.

    Varning

    Om du använder en VT-företagsnyckel lagrar du den i Azure Key Vault i stället för filen msticpyconfig.yaml . Mer information finns i Ange hemligheter som Key Vault-hemligheter i MSTICPY-dokumentationen.

    Om du inte vill konfigurera ett Azure Key Vault just nu registrerar du dig för och använder ett kostnadsfritt konto tills du kan konfigurera Key Vault-lagring.

Kör och initiera notebook-filen Komma igång-guiden

Den här proceduren beskriver hur du startar anteckningsboken och initierar MSTICpy.

  1. För Microsoft Sentinel i Azure-portalen går du till Hothantering och väljer Notebooks.
    För Microsoft Sentinel i Defender-portalen väljer du Microsoft Sentinel-hothanteringsanteckningsböcker>>.

  2. På fliken Mallar väljer du En komma igång-guide för Microsoft Sentinel ML Notebooks .

  3. Välj Skapa från mall.

  4. Redigera namnet och välj Azure Machine Learning-arbetsytan efter behov.

  5. Välj Spara för att spara den på din Azure Machine Learning-arbetsyta.

  6. Välj Starta anteckningsbok för att köra notebook-filen. Anteckningsboken innehåller en serie celler:

    • Markdown-celler innehåller text och grafik med instruktioner för att använda notebook-filen
    • Kodceller innehåller körbar kod som utför notebook-funktionerna
  7. Läs och kör kodcellerna i ordning. Om du hoppar över celler eller kör dem i fel ordning kan det orsaka fel senare i notebook-filen.

    Kör varje cell genom att välja uppspelningsknappen till vänster om varje cell. Beroende på vilken funktion som utförs kan koden i cellen köras snabbt eller ta några sekunder att slutföra.

    När cellen körs ändras uppspelningsknappen till en inläsningssnurrare och statusen Executing visas längst ned i cellen, tillsammans med den förflutna tiden.

    Om anteckningsboken inte verkar fungera enligt beskrivningen startar du om kerneln och kör notebook-filen från början. Om det till exempel tar längre tid än en minut att köra en cell i notebook-filen Komma igång kan du prova att starta om kerneln och köra notebook-filen igen.

    Notebook-filen Komma igång-guiden innehåller instruktioner för grundläggande användning av Jupyter-notebook-filer, inklusive omstart av Jupyter-kerneln.

    När du har läst och kört cellerna i avsnittet Vad är en Jupyter Notebook är du redo att starta konfigurationsuppgifterna med början i avsnittet Konfigurera notebook-miljön .

  8. Kör den första kodcellen i avsnittet Konfigurera notebook-miljön i anteckningsboken, som innehåller följande kod:

    # import some modules needed in this cell
    from pathlib import Path
    from IPython.display import display, HTML
    
    REQ_PYTHON_VER="3.6"
    REQ_MSTICPY_VER="1.2.3"
    
    display(HTML("Checking upgrade to latest msticpy version"))
    %pip install --upgrade --quiet msticpy[azuresentinel]>=$REQ_MSTICPY_VER
    
    # intialize msticpy
    from msticpy.nbtools import nbinit
    nbinit.init_notebook(
    namespace=globals(),
    extra_imports=["urllib.request, urlretrieve"]
    )
    pd.set_option("display.html.table_schema", False)
    

    Initieringsstatusen visas i utdata. Konfigurationsvarningar om saknade inställningar i Missing msticpyconfig.yaml filen förväntas eftersom du inte har konfigurerat något ännu.

Skapa konfigurationsfilen

Efter den grundläggande initieringen är du redo att skapa konfigurationsfilen med grundläggande inställningar för att arbeta med MSTICPy.

Många Microsoft Sentinel-notebook-filer ansluter till externa tjänster som VirusTotal (VT) för att samla in och utöka data. För att ansluta till dessa tjänster måste du ange och lagra konfigurationsinformation, till exempel autentiseringstoken. Om du har dessa data i konfigurationsfilen slipper du skriva in autentiseringstoken och arbetsyteinformation varje gång du använder en notebook-fil.

MSTICPy använder en msticpyconfig.yaml för att lagra en mängd olika konfigurationsinformation. Som standard genereras en msticpyconfig.yaml-fil av notebook-initieringsfunktionen. Om du klonade den här anteckningsboken från Microsoft Sentinel-portalen fylls konfigurationsfilen i med Microsoft Sentinel-arbetsytedata. Dessa data läss från en config.json fil som skapas på Azure Machine Learning-arbetsytan när du startar anteckningsboken. Mer information finns i dokumentationen för MSTICPy-paketkonfiguration.

I följande avsnitt beskrivs hur du lägger till mer konfigurationsinformation i filen msticpyconfig.yaml .

Om du kör notebook-filen Komma igång-guiden igen och redan har en minimalt konfigurerad msticpyconfig.yaml-fil init_notebook skriver inte funktionen över eller ändrar din befintliga fil.

När som helst väljer du den nedrullningsbara menyn -Help i konfigurationsverktyget MSTICPy för fler instruktioner och länkar till detaljerad dokumentation.

Visa redigeraren för MSTICPy-inställningar

  1. I en kodcell kör du följande kod för att importera MpConfigEdit verktyget och visa en inställningsredigerare för filen msticpyconfig.yaml :

    from msticpy.config import MpConfigEdit
    
    mpedit = MpConfigEdit( "msticpyconfig.yaml")
    mpedit.set_tab("AzureSentinel")
    display(mpedit)
    

    Till exempel:

    Skärmbild av redigeraren för MSTICPy-inställningar.

    Filen msticpyconfig.yaml som skapas automatiskt, som visas i inställningsredigeraren, innehåller två poster i avsnittet Microsoft Sentinel. Dessa fylls båda i med information om Microsoft Sentinel-arbetsytan som notebook-filen klonades från. Den ena posten har namnet på din arbetsyta och den andra heter Standard.

    MED MSTICPy kan du lagra konfigurationer för flera Microsoft Sentinel-arbetsytor och växla mellan dem. Med standardposten kan du autentisera till din "hem"-arbetsyta som standard, utan att uttryckligen behöva namnge den. Om du lägger till ytterligare arbetsytor kan du konfigurera någon av dem som standardpost .

    I Azure Machine Learning-miljön kan det ta 10–20 sekunder innan inställningsredigeraren visas.

  2. Kontrollera dina aktuella inställningar och välj Spara Inställningar.

Lägga till inställningar för hotinformationsprovider

Den här proceduren beskriver hur du lagrar din VirusTotal API-nyckel i filen msticpyconfig.yaml . Du kan välja att ladda upp API-nyckeln till Azure Key Vault, men du måste konfigurera Key Vault-inställningarna först. Mer information finns i Konfigurera Key Vault-inställningar.

Utför följande steg för att lägga till VirusTotal-information i redigeraren för MSTICPy-inställningar.

  1. Ange följande kod i en kodcell och kör:

    mpedit.set_tab("TI Providers")
    mpedit
    
  2. På fliken TI-providers väljer du Lägg till prov>VirusTotal>Lägg till.

  3. Under Autentiseringsnyckel väljer du Text bredvid alternativet Lagring .

  4. I fältet Värde klistrar du in DIN API-nyckel.

  5. Välj Uppdatera och välj sedan Spara Inställningar längst ned i inställningsredigeraren.

Mer information om andra leverantörer av hotinformation som stöds finns i Leverantörer av hotinformation i MSTICPy-dokumentationen och Integrering av hotinformation i Microsoft Sentinel.

Lägg till Inställningar för GeoIP-provider

Den här proceduren beskriver hur du lagrar en MaxMind GeoLite2-kontonyckel i filen msticpyconfig.yaml , vilket gör att notebook-filen kan använda uppslagstjänster för geoplats för IP-adresser.

Utför följande steg för att lägga till GeoIP-providerinställningar i redigeraren för MSTICPy-inställningar.

  1. Ange följande kod i en tom kodcell och kör:

    mpedit.set_tab("GeoIP Providers")
    mpedit
    
  2. På fliken GeoIP-providers väljer du Lägg till prov>GeoIPLite>Lägg till.

  3. I fältet Värde anger du din MaxMind-kontonyckel.

  4. Om det behövs uppdaterar du standardmappen ~/.msticpy för lagring av den nedladdade GeoIP-databasen.

    • I Windows mappas den här mappen till %USERPROFILE%/.msticpy.
    • I Linux eller macOS mappas den här sökvägen till mappen .msticpy i din hemmapp.

Mer information om andra stödda uppslagstjänster för geoplats finns i dokumentationen för MSTICPy GeoIP Providers.

Konfigurera Azure Cloud-inställningar

Om din organisation inte använder det offentliga Azure-molnet måste du ange detta i inställningarna för att kunna autentisera och använda data från Microsoft Sentinel och Azure. Mer information finns i Ange Azure Cloud och standardmetoder för Azure-autentisering.

Verifiera inställningar

  1. Välj Verifiera inställningar i inställningsredigeraren.

    Varningsmeddelanden om saknade konfigurationer förväntas, men du bör inte ha några för inställningar för hotinformationsprovider eller GeoIP-provider.

  2. Beroende på din miljö kan du också behöva konfigurera Key Vault-inställningar eller Ange Azure-molnet.

  3. Om du behöver göra några ändringar på grund av valideringen gör du ändringarna och väljer sedan Spara Inställningar.

  4. När du är klar väljer du knappen Stäng för att dölja valideringsutdata.

Mer information finns i: Avancerade konfigurationer för Jupyter Notebooks och MSTICPy i Microsoft Sentinel

Läsa in sparade MSTICPy-inställningar

I proceduren Skapa konfigurationsfil sparade du inställningarna i din lokala msticpyconfig.yaml-fil .

MSTICPy läser dock inte in de här inställningarna automatiskt förrän du startar om kerneln eller kör en annan notebook-fil. Om du vill tvinga MSTICPy att läsa in igen från den nya konfigurationsfilen fortsätter du till nästa kodcell med följande kod och kör den:

import msticpy
msticpy.settings.refresh_config()

Testa anteckningsboken

Nu när du har initierat din miljö och konfigurerat grundläggande inställningar för din arbetsyta använder du MSTICPy-klassen QueryProvider för att testa notebook-filen. QueryProvider frågar en datakälla, i det här fallet din Microsoft Sentinel-arbetsyta, och gör de data som efterfrågas tillgängliga för att visa och analysera i notebook-filen.

Använd följande procedurer för att skapa en instans av klassen, autentisera QueryProvider till Microsoft Sentinel från anteckningsboken och visa och köra frågor med olika parameteralternativ.

Du kan ha flera instanser av QueryProvider inlästa för användning med flera Microsoft Sentinel-arbetsytor eller andra dataleverantörer, till exempel Microsoft Defender för Endpoint.

Läs in QueryProvider

Om du vill läsa in QueryProvider för AzureSentinelfortsätter du till cellen med följande kod och kör den:

# Initialize a QueryProvider for Microsoft Sentinel
qry_prov = QueryProvider("AzureSentinel")

Om du ser en varning Runtime dependency of PyGObject is missing när du läser in Microsoft Sentinel-drivrutinen läser du Fel: Körningsberoende för PyGObject saknas. Den här varningen påverkar inte notebook-funktioner.

Autentisera till din Microsoft Sentinel-arbetsyta från notebook-filen

I Azure Machine Learning-notebook-filer använder autentiseringen som standard de autentiseringsuppgifter som du använde för att autentisera till Azure Machine Learning-arbetsytan.

Autentisera med hjälp av hanterad identitet genom att slutföra följande steg.

  1. Kör följande kod för att autentisera till din Sentinel-arbetsyta.

    # Get the default Microsoft Sentinel workspace details from msticpyconfig.yaml
    
    ws_config = WorkspaceConfig()
    
    # Connect to Microsoft Sentinel with our QueryProvider and config details
    qry_prov.connect(ws_config)
    
  2. Granska utdata. Utdata som visas liknar följande bild.

    Skärmbild som visar autentisering till Azure som slutar med ett anslutet meddelande.

Cachelagrat din inloggningstoken med Hjälp av Azure CLI

För att undvika att behöva autentisera igen om du startar om kerneln eller kör en annan notebook-fil kan du cachelagra din inloggningstoken med Hjälp av Azure CLI.

Azure CLI-komponenten på Compute-instansen cachelagrar en uppdateringstoken som den kan återanvända tills token överskrider tidsgränsen. MSTICPy använder automatiskt Azure CLI-autentiseringsuppgifter om de är tillgängliga.

Om du vill autentisera med Azure CLI anger du följande kommando i en tom cell och kör den:

!az login

Du måste autentisera igen om du startar om beräkningsinstansen eller växlar till en annan instans. Mer information finns i avsnittet Cachelagring autentiseringsuppgifter med Azure CLI i Microsoft Sentinel Notebooks GitHub-lagringsplatsens wiki.

Visa dataschemat för Microsoft Sentinel-arbetsytan och inbyggda MSTICPy-frågor

När du är ansluten till en Microsoft Sentinel QueryProvider kan du förstå vilka typer av data som är tillgängliga för frågor genom att fråga dataschemat för Microsoft Sentinel-arbetsytan.

Microsoft Sentinel QueryProvider har en schema_tables egenskap som ger dig en lista över schematabeller och en schema egenskap som även innehåller kolumnnamn och datatyper för varje tabell.

Så här visar du de första 10 tabellerna i Microsoft Sentinel-schemat:

Fortsätt till nästa cell med följande kod och kör den. Du kan utelämna [:10] att visa en lista över alla tabeller på din arbetsyta.

# Get list of tables in the Workspace with the 'schema_tables' property
qry_prov.schema_tables[:10]  # Output only a sample of tables for brevity
                             # Remove the "[:10]" to see the whole list

Följande utdata visas:

Sample of first 10 tables in the schema
    ['AACAudit',
     'AACHttpRequest',
     'AADDomainServicesAccountLogon',
     'AADDomainServicesAccountManagement',
     'AADDomainServicesDirectoryServiceAccess',
     'AADDomainServicesLogonLogoff',
     'AADDomainServicesPolicyChange',
     'AADDomainServicesPrivilegeUse',
     'AADDomainServicesSystemSecurity',
     'AADManagedIdentitySignInLogs']

MSTICPy innehåller också många inbyggda frågor som du kan köra. Lista tillgängliga frågor med .list_queries()och få specifik information om en fråga genom att anropa den med ett frågetecken (?) som ingår som en parameter. Du kan också visa listan över frågor och tillhörande hjälp i frågewebbläsaren.

Så här visar du ett exempel på tillgängliga frågor:

  1. Fortsätt till nästa cell med följande kod och kör den. Du kan utelämna [::5] för att visa alla frågor.

    # Get a sample of available queries
    print(qry_prov.list_queries()[::5])  # showing a sample - remove "[::5]" for whole list
    
  2. Granska utdata.

    Sample of queries
    =================
    ['Azure.get_vmcomputer_for_host', 'Azure.list_azure_activity_for_account', 'AzureNetwork.az_net_analytics', 'AzureNetwork.get_heartbeat_for_ip', 'AzureSentinel.get_bookmark_by_id', 'Heartbeatget_heartbeat_for_host', 'LinuxSyslog.all_syslog', 'LinuxSyslog.list_logon_failures', 'LinuxSyslog.sudo_activity', 'MultiDataSource.get_timeseries_decompose', 'Network.get_host_for_ip','Office365.list_activity_for_ip', 'SecurityAlert.list_alerts_for_ip', 'ThreatIntelligence.list_indicators_by_filepath', 'WindowsSecurity.get_parent_process', 'WindowsSecurity.list_host_events','WindowsSecurity.list_hosts_matching_commandline', 'WindowsSecurity.list_other_events']
    
  3. Så här får du hjälp om en fråga genom att skicka ? som en parameter:

    # Get help about a query by passing "?" as a parameter
    qry_prov.Azure.list_all_signins_geo("?")
    
  4. Granska utdata.

    Help for 'list_all_signins_geo' query
    =====================================
    Query:  list_all_signins_geo
    Data source:  AzureSentinel
    Gets Signin data used by morph charts
    
    Parameters
    ----------
    add_query_items: str (optional)
        Additional query clauses
    end: datetime (optional)
        Query end time
    start: datetime (optional)
        Query start time
        (default value is: -5)
    table: str (optional)
        Table name
        (default value is: SigninLogs)
    Query:
         {table} | where TimeGenerated >= datetime({start}) | where TimeGenerated <= datetime({end}) | extend Result = iif(ResultType==0, "Sucess", "Failed") | extend Latitude = tostring(parse_json(tostring(LocationDetails.geoCoordinates)).latitude) | extend Longitude = tostring(parse_json(tostring(LocationDetails.geoCoordinates)).longitude)
    
  5. Om du vill visa både tabeller och frågor i en rullningsbar, filtrerad lista fortsätter du till nästa cell med följande kod och kör den.

    qry_prov.browse_queries()
    
  6. För den valda frågan visas alla obligatoriska och valfria parametrar tillsammans med frågans fullständiga text. Till exempel:

    Skärmbild av tabeller och frågor som visas i en rullningsbar, filtrerad lista.

Du kan inte köra frågor från webbläsaren, men du kan kopiera och klistra in exemplet i slutet av varje fråga för att köra någon annanstans i notebook-filen.

Mer information finns i Köra en fördefinierad fråga i MSTICPy-dokumentationen.

Köra frågor med tidsparametrar

De flesta frågor kräver tidsparametrar. Datum-/tidssträngar är omständliga att skriva in, och det kan vara felbenäget att ändra dem på flera platser.

Varje frågeprovider har standardparametrar för start och sluttid för frågor. Dessa tidsparametrar används som standard när tidsparametrar anropas. Du kan ändra standardtidsintervallet genom att query_time öppna kontrollen. Ändringarna gäller tills du ändrar dem igen.

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

    # Open the query time control for your query provider
    qry_prov.query_time
    
  2. Ange tid start och end efter behov. Till exempel:

    Skärmbild av inställning av standardtidsparametrar för frågor.

Köra en fråga med det inbyggda tidsintervallet

Frågeresultat returneras som en Pandas DataFrame, som är en tabelldatastruktur, till exempel ett kalkylblad eller en databastabell. Använd Pandas-funktioner för att utföra extra filtrering och analys av frågeresultaten.

  1. Kör följande kodcell. Den kör en fråga med hjälp av standardtidsinställningarna för frågeprovidern. Du kan ändra det här intervallet och köra kodcellen igen för att fråga efter det nya tidsintervallet.

    # The time parameters are taken from the qry_prov time settings
    # but you can override this by supplying explict "start" and "end" datetimes
    signins_df = qry_prov.Azure.list_all_signins_geo()
    
    # display first 5 rows of any results
    # If there is no data, just the column headings display
    signins_df.head()
    
  2. Granska utdata. Den visar de första fem raderna med resultat. Till exempel:

    Skärmbild av en frågekörning med det inbyggda tidsintervallet.

    Om det inte finns några data visas bara kolumnrubrikerna.

Köra en fråga med ett anpassat tidsintervall

Du kan också skapa ett nytt frågetidsobjekt och skicka det till en fråga som en parameter. Det gör att du kan köra en engångsfråga för ett annat tidsintervall, utan att påverka standardvärdena för frågeprovidern.

# Create and display a QueryTime control.
time_range = nbwidgets.QueryTime()
time_range

När du har angett önskat tidsintervall kan du skicka tidsintervallet till frågefunktionen och köra följande kod i en separat cell från föregående kod:

signins_df = qry_prov.Azure.list_all_signins_geo(time_range)
signins_df.head()

Du kan också skicka datetime-värden som Python-datetimes eller datum-tidssträngar med hjälp av parametrarna start och end :

from datetime import datetime, timedelta
q_end = datetime.utc.now()
q_start = end – timedelta(5)
signins_df = qry_prov.Azure.list_all_signins_geo(start=q_start, end=q_end)

Anpassa dina frågor

Du kan anpassa de inbyggda frågorna genom att lägga till mer frågelogik eller köra fullständiga frågor med hjälp av exec_query funktionen.

De flesta inbyggda frågor stöder till exempel parametern add_query_items , som du kan använda för att lägga till filter eller andra åtgärder i frågorna.

  1. Kör följande kodcell för att lägga till en dataram som sammanfattar antalet aviseringar efter aviseringsnamn:

    from datetime import datetime, timedelta
    
    qry_prov.SecurityAlert.list_alerts(
       start=datetime.utcnow() - timedelta(28),
        end=datetime.utcnow(),
        add_query_items="| summarize NumAlerts=count() by AlertName"
    )
    
  2. Skicka en fullständig Kusto-frågespråk -frågesträng (KQL) till frågeprovidern. Frågan körs mot den anslutna arbetsytan och data returneras som en Panda DataFrame. Kör:

    # Define your query
    test_query = """
    OfficeActivity
    | where TimeGenerated > ago(1d)
    | take 10
    """
    
    # Pass the query to your QueryProvider
    office_events_df = qry_prov.exec_query(test_query)
    display(office_events_df.head())
    
    

Mer information finns i:

Testa VirusTotal

  1. Om du vill använda hotinformation för att se om en IP-adress visas i VirusTotal-data kör du cellen med följande kod:

    # Create your TI provider – note you can re-use the TILookup provider (‘ti’) for
    # subsequent queries - you don’t have to create it for each query
    ti = TILookup()
    
    # Look up an IP address
    ti_resp = ti.lookup_ioc("85.214.149.236")
    
    ti_df = ti.result_to_df(ti_resp)
    ti.browse_results(ti_df, severities="all")
    
  2. Granska utdata. Till exempel:

    Skärmbild av en IP-adress som visas i VirusTotal-data.

  3. Rulla ned för att visa fullständiga resultat.

Mer information finns i Hotinformationssökningar i MSTICPy.

Testa IP-sökning för geoplats

  1. Om du vill hämta geoplatsinformation för en IP-adress med hjälp av MaxMind-tjänsten kör du cellen med följande kod:

    # create an instance of the GeoLiteLookup provider – this
    # can be re-used for subsequent queries.
    geo_ip = GeoLiteLookup()
    raw_res, ip_entity = geo_ip.lookup_ip("85.214.149.236")
    display(ip_entity[0])
    
  2. Granska utdata. Till exempel:

    ipaddress
    { 'AdditionalData': {},
      'Address': '85.214.149.236',
      'Location': { 'AdditionalData': {},
                    'CountryCode': 'DE',
                    'CountryName': 'Germany',
                    'Latitude': 51.2993,
                    'Longitude': 9.491,
                    'Type': 'geolocation',
                    'edges': set()},
      'ThreatIntelligence': [],
      'Type': 'ipaddress',
      'edges': set()}
    

Första gången du kör den här koden bör du se GeoLite-drivrutinen ladda ned databasen.

Mer information finns i MSTICPy GeoIP-providers.

Konfigurera Key Vault-inställningar

Det här avsnittet är endast relevant när du lagrar hemligheter i Azure Key Vault.

När du lagrar hemligheter i Azure Key Vault måste du skapa Key Vault först i Azure Global KeyVault-hanteringsportalen.

Obligatoriska inställningar är alla värden som du får från valvegenskaperna, även om vissa kan ha olika namn. Till exempel:

  • VaultName visas längst upp till vänster på skärmen Egenskaper för Azure Key Vault
  • TenantId visas som katalog-ID
  • AzureRegion visas som Plats
  • Auktoritet är molnet för din Azure-tjänst.

Endast Värdena VaultName, TenantId och Authority krävs för att hämta hemligheter från valvet. De andra värdena behövs om du väljer att skapa ett valv från MSTICPy. Mer information finns i Ange hemligheter som Key Vault-hemligheter.

Alternativet Använd nyckelring är valt som standard och gör att du kan cachelagrade autentiseringsuppgifter för Key Vault i en lokal nyckelring. Mer information finns i KeyRing-dokumentationen.

Varning

Använd inte alternativet Använd nyckelring om du inte helt litar på den värdberäkning som notebook-filen körs på.

I vårt fall är beräkningen Jupyter Hub-servern, där notebook-kerneln körs, och inte nödvändigtvis datorn som webbläsaren körs på. Om du använder Azure ML blir beräkningen den Azure ML Compute-instans som du har valt. Keyring gör sin cachelagring på värden där notebook-kerneln körs.

Utför följande steg för att lägga till Key Vault-inställningar 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("Key Vault")
    mpedit
    
  2. Ange valvinformationen för ditt Key Vault. Till exempel:

    Skärmbild av avsnittet Konfiguration av Key Vault

  3. Välj Spara och sedan Spara Inställningar.

Testa Key Vault

Om du vill testa ditt nyckelvalv kontrollerar du om du kan ansluta och visa dina hemligheter. Om du inte har lagt till någon hemlighet ser du ingen information. Om du behöver lägger du till en testhemlighet från Azure Key Vault-portalen i valvet och kontrollerar att den visas i Microsoft Sentinel.

Till exempel:

mpconfig = MpConfigFile()
mpconfig.refresh_mp_config()
mpconfig.show_kv_secrets()

Varning

Lämna inte utdata som visas i den sparade notebook-filen. Om det finns verkliga hemligheter i utdata använder du notebook-filens Clear-utdatakommando innan du sparar notebook-filen.

Ta också bort cachelagrade kopior av notebook-filen. Titta till exempel i den .ipynb_checkpoints undermappen i anteckningsbokskatalogen och ta bort eventuella kopior av den här notebook-filen. Om du sparar anteckningsboken med rensade utdata bör du skriva över kontrollpunktskopian.

När du har konfigurerat Key Vault kan du använda knappen Ladda upp till KV i avsnitten Dataprovidrar och TI-leverantörer för att flytta den valda inställningen till valvet. MSTICPy genererar ett standardnamn för hemligheten baserat på sökvägen till inställningen, till exempel TIProviders-VirusTotal-Args-AuthKey.

Om värdet har laddats upp tas innehållet i fältet Värde i inställningsredigeraren bort och den underliggande inställningen ersätts med ett platshållarvärde. MSTICPy använder det här värdet för att ange att den automatiskt ska generera Key Vault-sökvägen när du försöker hämta nyckeln.

Om du redan har de nödvändiga hemligheterna lagrade i ett Nyckelvalv kan du ange det hemliga namnet i fältet Värde . Om hemligheten inte lagras i ditt standardvalv (de värden som anges i avsnittet Key Vault ) kan du ange en sökväg till VaultName/SecretName.

För närvarande stöds inte hämtning av inställningar från ett valv i en annan klientorganisation. Mer information finns i Ange hemligheter som Key Vault-hemligheter.

Ange autentiseringsmetoderna för Azure-molnet och Azure

Om du använder ett nationellt Eller myndighetsbaserat Azure-moln i stället för det offentliga eller globala Azure-molnet måste du välja rätt moln i inställningarna. För de flesta organisationer är det globala molnet standard.

Du kan också använda dessa Azure-inställningar för att definiera standardinställningar för Azure-autentiseringstypen.

Utför följande steg för att ange Azure-moln- och Azure-autentiseringsmetoder.

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

    mpedit.set_tab("Azure")
    mpedit
    
  2. Välj det moln som används av din organisation eller lämna standardalternativet globalt.

  3. Välj en eller flera av följande metoder:

    • env för att lagra dina Azure-autentiseringsuppgifter i miljövariabler.
    • msi för att använda hanterad tjänstidentitet, vilket är en identitet som tilldelats till värden eller den virtuella datorn där Jupyter-hubben körs. MSI stöds för närvarande inte i Azure Machine Learning Compute-instanser.
    • cli för att använda autentiseringsuppgifter från en autentiserad Azure CLI-session.
    • interaktiv för att använda det interaktiva enhetsauktoriseringsflödet med hjälp av en engångsenhetskod.

    I de flesta fall rekommenderar vi att du väljer flera metoder, till exempel både cli och interactive. Azure-autentisering försöker var och en av de konfigurerade metoderna i den ordning som anges tills en lyckas.

  4. Välj Spara och sedan Spara Inställningar.

    Till exempel:

    Skärmbild av inställningar som definierats för Azure Government-molnet.

Nästa steg

I den här artikeln beskrivs grunderna i att använda MSTICPy med Jupyter Notebooks i Microsoft Sentinel. Mer information finns i Avancerade konfigurationer för Jupyter Notebooks och MSTICPy i Microsoft Sentinel.

Du kan också prova andra notebook-filer som lagras på GitHub-lagringsplatsen för Microsoft Sentinel Notebooks, till exempel:

Om du använder anteckningsboken som beskrivs i den här artikeln i en annan Jupyter-miljö kan du använda valfri kernel som stöder Python 3.6 eller senare.

Om du vill använda MSTICPy-notebook-filer utanför Microsoft Sentinel och Azure Machine Learning (ML) måste du också konfigurera Python-miljön. Installera Python 3.6 eller senare med Anaconda-distributionen, som innehåller många av de nödvändiga paketen.

Mer läsning på MSTICPy och notebook-filer

I följande tabell visas fler referenser för att lära dig mer om MSTICPy, Microsoft Sentinel och Jupyter Notebooks.

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

Azure-Sentinel-Notebooks Obs! GitHub-lagringsplatsen 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