Začínáme s poznámkovými bloky Jupyter a MSTICPy v Microsoft Sentinelu

Tento článek popisuje, jak spustit příručku Začínáme pro poznámkové bloky ML služby Microsoft Sentinel, která nastaví základní konfigurace pro spouštění poznámkových bloků Jupyter v Microsoft Sentinelu a spouštění jednoduchých datových dotazů.

Příručka Začínáme pro poznámkové bloky ML služby Microsoft Sentinel používá knihovnu MSTICPy, což je knihovna nástrojů kyberbezpečnosti vytvořená Microsoftem, která poskytuje funkce proaktivního vyhledávání a vyšetřování hrozeb.

MSTICPy snižuje množství kódu, který zákazníci potřebují psát pro Microsoft Sentinel, a poskytuje:

  • Možnosti dotazů na data pro tabulky Microsoft Sentinelu, Microsoft Defender for Endpoint, Splunk a další zdroje dat.
  • Vyhledávání analýzy hrozeb u poskytovatelů TI, jako jsou VirusTotal a AlienVault OTX.
  • Funkce rozšiřování, jako je geografická poloha IP adres, extrakce ohrožení zabezpečení (IoC) a vyhledávání Kdo I
  • Nástroje pro vizualizaci využívající časové osy událostí, stromy procesů a geografické mapování
  • Pokročilé analýzy, jako je rozklad časových řad, detekce anomálií a clustering.

Kroky v tomto článku popisují, jak spustit příručku Začínáme pro poznámkové bloky ML služby Microsoft Sentinel ve vašem pracovním prostoru Azure Machine Učení přes Microsoft Sentinel. Tento článek můžete použít také jako doprovodné materiály k provádění podobných kroků pro spouštění poznámkových bloků v jiných prostředích, včetně místního prostředí.

Další informace najdete v tématu Použití poznámkových bloků k vyšetřování apoužití poznámkových bloků Jupyter k vyhledávání bezpečnostních hrozeb.

Několik poznámkových bloků Microsoft Sentinelu nepoužívá MSTICPy, například poznámkové bloky skeneru přihlašovacích údajů nebo příklady PowerShellu a C#. Poznámkové bloky, které nepoužívají MSTICpy, nepotřebují konfiguraci MSTICPy popsanou v tomto článku.

Důležité

Microsoft Sentinel je k dispozici jako součást veřejné verze Preview pro jednotnou platformu operací zabezpečení na portálu Microsoft Defender. Další informace najdete v tématu Microsoft Sentinel na portálu Microsoft Defender.

Požadavky

Než začnete, ujistěte se, že máte požadovaná oprávnění a prostředky.

  • Pokud chcete používat poznámkové bloky v Microsoft Sentinelu, ujistěte se, že máte požadovaná oprávnění. Další informace najdete v tématu Správa přístupu k poznámkovému bloku Microsoft Sentinelu.

  • K provedení kroků v tomto článku potřebujete Python 3.6 nebo novější. Ve službě Azure Machine Učení můžete použít buď jádro Pythonu 3.8 (doporučeno), nebo jádro Pythonu 3.6.

  • Tento poznámkový blok používá vyhledávací službu geolokace MaxMind GeoLite2 pro IP adresy. Pokud chcete použít službu MaxMind GeoLite2, potřebujete klíč účtu. Na registrační stránce Maxmind si můžete zaregistrovat bezplatný účet a klíč.

  • Tento poznámkový blok používá VirusTotal (VT) jako zdroj analýzy hrozeb. Pokud chcete použít vyhledávání analýzy hrozeb VirusTotal, potřebujete účet VirusTotal a klíč rozhraní API.

    Na úvodní stránce VirusTotal si můžete zaregistrovat bezplatný účet VT. Pokud už jste uživatel VirusTotal, můžete použít svůj stávající klíč.

    Upozorňující

    Pokud používáte podnikový klíč VT, uložte ho ve službě Azure Key Vault místo souboru msticpyconfig.yaml . Další informace naleznete v tématu Určení tajných kódů jako tajných kódů služby Key Vault v dokumentaci MSTICPY.

    Pokud teď nechcete nastavit službu Azure Key Vault, zaregistrujte si bezplatný účet a použijte ho, dokud nebudete moct nastavit úložiště služby Key Vault.

Spuštění a inicializace poznámkového bloku Příručky Začínáme

Tento postup popisuje, jak spustit poznámkový blok a inicializovat MSTICpy.

  1. Pro Microsoft Sentinel na webu Azure Portal v části Správa hrozeb vyberte Poznámkové bloky.
    Pro Microsoft Sentinel na portálu Defender vyberte poznámkové bloky pro správu>hrozeb Microsoft Sentinelu>.

  2. Na kartě Šablony vyberte Příručku Začínáme pro poznámkové bloky ML služby Microsoft Sentinel .

  3. Vyberte Vytvořit ze šablony.

  4. Podle potřeby upravte název a vyberte pracovní prostor Azure Machine Učení.

  5. Výběrem možnosti Uložit ho uložte do pracovního prostoru Azure Machine Učení.

  6. Výběrem možnosti Spustit poznámkový blok spusťte poznámkový blok. Poznámkový blok obsahuje řadu buněk:

    • Buňky Markdownu obsahují text a grafiku s pokyny pro použití poznámkového bloku.
    • Buňky kódu obsahují spustitelný kód, který provádí funkce poznámkového bloku.
  7. Čtení a spouštění buněk kódu v pořadí Přeskočení buněk nebo jejich nedostatek v pořadí může později v poznámkovém bloku způsobit chyby.

    Spusťte každou buňku tak, že vyberete tlačítko přehrát vlevo od každé buňky. V závislosti na prováděné funkci může kód v buňce běžet rychle nebo dokončení může trvat několik sekund.

    Když je buňka spuštěná, tlačítko přehrát se změní na číselník načítání a stav Executing se zobrazí v dolní části buňky spolu s uplynulým časem.

    Pokud váš poznámkový blok zdánlivě nefunguje, jak je popsáno, restartujte jádro a spusťte poznámkový blok od začátku. Pokud například spuštění jakékoli buňky v poznámkovém bloku Příručky Začínáme trvá déle než minutu, zkuste restartovat jádro a znovu spustit poznámkový blok.

    Poznámkový blok Příručka Začínáme obsahuje pokyny pro základní použití poznámkových bloků Jupyter, včetně restartování jádra Jupyter.

    Po dokončení čtení a spuštění buněk v oddílu Co je poznámkový blok Jupyter jste připraveni zahájit úlohy konfigurace, a to od části Nastavení prostředí poznámkového bloku.

  8. Spusťte první buňku kódu v části Nastavení prostředí poznámkového bloku poznámkového bloku, která obsahuje následující kód:

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

    Ve výstupu se zobrazí stav inicializace. Očekává se upozornění konfigurace týkající se chybějících nastavení v Missing msticpyconfig.yaml souboru, protože jste ještě nic nenakonfigurovali.

Vytvoření konfiguračního souboru

Po základní inicializaci jste připraveni vytvořit konfigurační soubor se základními nastaveními pro práci s MSTICPy.

Řada poznámkových bloků Microsoft Sentinelu se připojuje k externím službám, jako je VirusTotal (VT), aby bylo možno shromažďovat a rozšiřovat data. Pokud se chcete připojit k těmto službám, musíte nastavit a uložit podrobnosti konfigurace, jako jsou ověřovací tokeny. Díky těmto datům v konfiguračním souboru nemusíte při každém použití poznámkového bloku zadávat ověřovací tokeny a podrobnosti pracovního prostoru.

MSTICPy používá msticpyconfig.yaml k ukládání široké škály podrobností konfigurace. Ve výchozím nastavení je soubor msticpyconfig.yaml generován funkcí inicializace poznámkového bloku. Pokud jste tento poznámkový blok naklonovali z portálu Microsoft Sentinel, naplní se konfigurační soubor daty pracovního prostoru Služby Microsoft Sentinel. Tato data se čtou ze souboru config.json vytvořeného v pracovním prostoru Azure Machine Učení při spuštění poznámkového bloku. Další informace najdete v dokumentaci ke konfiguraci balíčku MSTICPy.

Následující části popisují, jak do souboru msticpyconfig.yaml přidat další podrobnosti o konfiguraci.

Pokud poznámkový blok Příručka Začínáme spustíte znovu a už máte minimálně nakonfigurovaný soubor msticpyconfig.yaml, init_notebook funkce nepřepíše ani neupraví váš existující soubor.

V libovolném okamžiku vyberte rozevírací nabídku -Help v nástroji pro konfiguraci MSTICPy, kde najdete další pokyny a odkazy na podrobnou dokumentaci.

Zobrazení editoru nastavení MSTICPy

  1. V buňce kódu spusťte následující kód, který nástroj naimportuje MpConfigEdit a zobrazí editor nastavení pro váš soubor msticpyconfig.yaml :

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

    Příklad:

    Snímek obrazovky editoru nastavení MSTICPy

    Automaticky vytvořený soubor msticpyconfig.yaml zobrazený v editoru nastavení obsahuje dvě položky v části Microsoft Sentinel. Obě tyto hodnoty jsou naplněné podrobnostmi o pracovním prostoru Microsoft Sentinelu, ze kterého byl poznámkový blok naklonován. Jedna položka má název vašeho pracovního prostoru a druhá má název Default.

    MSTICPy umožňuje ukládat konfigurace pro více pracovních prostorů Microsoft Sentinelu a přepínat mezi nimi. Výchozí položka umožňuje ve výchozím nastavení ověřit pracovní prostor "domů", aniž byste ji museli explicitně pojmenovat. Pokud přidáte další pracovní prostory, můžete některou z nich nakonfigurovat tak, aby byla výchozí položkou.

    V prostředí Azure Machine Učení může zobrazení editoru nastavení trvat 10 až 20 sekund.

  2. Ověřte aktuální nastavení a vyberte Uložit Nastavení.

Přidání nastavení zprostředkovatele analýzy hrozeb

Tento postup popisuje, jak uložit klíč rozhraní VirusTotal API do souboru msticpyconfig.yaml. Můžete se rozhodnout nahrát klíč rozhraní API do služby Azure Key Vault, ale musíte nejprve nakonfigurovat nastavení služby Key Vault. Další informace najdete v tématu Konfigurace nastavení služby Key Vault.

Chcete-li přidat podrobnosti VirusTotal v editoru nastavení MSTICPy, proveďte následující kroky.

  1. Do buňky kódu zadejte následující kód a spusťte:

    mpedit.set_tab("TI Providers")
    mpedit
    
  2. Na kartě Ti Providers (Poskytovatelé TI) vyberte Add prov>VirusTotal Add (Přidat virusTotal).>

  3. V části Ověřovací klíč vyberte Text vedle možnosti Úložiště .

  4. Do pole Hodnota vložte klíč rozhraní API.

  5. Vyberte Aktualizovat a potom v dolní části editoru nastavení vyberte Uložit Nastavení.

Další informace o dalších podporovaných poskytovatelích analýzy hrozeb najdete v dokumentaci msTICPy a integraci analýzy hrozeb v Microsoft Sentinelu.

Přidání nastavení zprostředkovatele GeoIP

Tento postup popisuje, jak uložit klíč účtu MaxMind GeoLite2 do souboru msticpyconfig.yaml , který umožňuje vašemu poznámkovému bloku používat vyhledávací služby geografické polohy pro IP adresy.

Pokud chcete přidat nastavení zprostředkovatele GeoIP v editoru nastavení MSTICPy, proveďte následující kroky.

  1. Do prázdné buňky kódu zadejte následující kód a spusťte:

    mpedit.set_tab("GeoIP Providers")
    mpedit
    
  2. Na kartě Zprostředkovatelé geoIP vyberte Přidat prov>GeoIPLite>Přidat.

  3. Do pole Hodnota zadejte klíč účtu MaxMind.

  4. V případě potřeby aktualizujte výchozí složku ~/.msticpy pro uložení stažené databáze GeoIP.

    • Ve Windows se tato složka mapuje na %USERPROFILE%/.msticpy.
    • V Linuxu nebo macOS je tato cesta namapovaná na složku .msticpy ve vaší domovské složce.

Další informace o dalších podporovaných vyhledávacích službách geografické polohy najdete v dokumentaci k poskytovatelům geoIP MSTICPy.

Konfigurace nastavení cloudu Azure

Pokud vaše organizace nepoužívá veřejný cloud Azure, musíte ho zadat ve svém nastavení, abyste mohli úspěšně ověřovat a používat data z Microsoft Sentinelu a Azure. Další informace najdete v tématu Určení cloudových a výchozích metod ověřování Azure.

Ověření nastavení

  1. V editoru nastavení vyberte Ověřit nastavení .

    Očekává se upozornění na chybějící konfigurace, ale neměli byste mít žádné informace o poskytovateli analýzy hrozeb ani nastavení zprostředkovatele GeoIP.

  2. V závislosti na vašem prostředí možná budete muset také nakonfigurovat nastavení služby Key Vault nebo zadat cloud Azure.

  3. Pokud potřebujete provést nějaké změny z důvodu ověření, proveďte tyto změny a pak vyberte Uložit Nastavení.

  4. Až budete hotovi, vyberte tlačítko Zavřít a skryjte výstup ověření.

Další informace najdete v tématu: Pokročilé konfigurace pro poznámkové bloky Jupyter a MSTICPy v Microsoft Sentinelu

Načtení uložených nastavení MSTICPy

V postupu Vytvoření konfiguračního souboru jste uložili nastavení do místního souboru msticpyconfig.yaml .

MsTICPy ale tato nastavení automaticky nenačte, dokud nerestartujete jádro nebo nespustíte jiný poznámkový blok. Pokud chcete vynutit opětovné načtení msTICPy z nového konfiguračního souboru, přejděte k další buňce kódu s následujícím kódem a spusťte ho:

import msticpy
msticpy.settings.refresh_config()

Otestování poznámkového bloku

Teď, když jste inicializovali prostředí a nakonfigurovali základní nastavení pracovního prostoru, otestujte poznámkový blok pomocí třídy MSTICPy QueryProvider . QueryProvider dotazuje zdroj dat, v tomto případě pracovní prostor Microsoft Sentinelu a zpřístupní dotazovaná data k zobrazení a analýze v poznámkovém bloku.

Pomocí následujících postupů vytvořte instanci QueryProvider třídy, ověřte se v Microsoft Sentinelu z poznámkového bloku a zobrazte a spusťte dotazy s různými různými možnostmi parametrů.

Můžete mít několik instancí načtených QueryProvider pro použití s několika pracovními prostory Microsoft Sentinelu nebo jinými poskytovateli dat, jako je Microsoft Defender for Endpoint.

Načtení zprostředkovatele dotazů

Pokud chcete načíst QueryProvider for AzureSentinel, přejděte do buňky s následujícím kódem a spusťte ho:

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

Pokud se při načítání ovladače Microsoft Sentinelu zobrazí upozornění Runtime dependency of PyGObject is missing , podívejte se na chybu: Chybí závislost modulu runtime objektu PyGObject. Toto upozornění nemá vliv na funkčnost poznámkového bloku.

Ověření v pracovním prostoru Microsoft Sentinel z poznámkového bloku

Ve službě Azure Machine Učení poznámkových blocích se ve výchozím nastavení ověřování používá přihlašovací údaje, které jste použili k ověření v pracovním prostoru Azure Machine Učení.

K ověření použijte spravovanou identitu provedením následujících kroků.

  1. Spuštěním následujícího kódu ověřte pracovní prostor služby Sentinel.

    # 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. Zkontrolujte výstup. Zobrazený výstup je podobný následujícímu obrázku.

    Snímek obrazovky znázorňující ověřování v Azure, které končí připojenou zprávou

Ukládání přihlašovacího tokenu do mezipaměti pomocí Azure CLI

Pokud se chcete vyhnout opětovnému ověření, pokud restartujete jádro nebo spustíte jiné poznámkové bloky, můžete přihlašovací token uložit do mezipaměti pomocí Azure CLI.

Komponenta Azure CLI ve výpočetní instanci ukládá do mezipaměti obnovovací token , který může opakovaně používat, dokud nevyjde časový limit tokenu. MSTICPy automaticky používá přihlašovací údaje Azure CLI, pokud jsou k dispozici.

Pokud se chcete ověřit pomocí Azure CLI, zadejte do prázdné buňky následující příkaz a spusťte ho:

!az login

Pokud restartujete výpočetní instanci nebo přepnete na jinou instanci, musíte se znovu ověřit. Další informace najdete v tématu Ukládání do mezipaměti přihlašovací údaje pomocí Azure CLI v wikiwebu úložiště Microsoft Sentinel Notebooks na GitHubu.

Zobrazení schématu dat pracovního prostoru Služby Microsoft Sentinel a předdefinovaných dotazů MSTICPy

Po připojení k Microsoft Sentinel QueryProvideru můžete porozumět typům dat dostupných k dotazování dotazováním schématu dat pracovního prostoru Microsoft Sentinelu.

Microsoft Sentinel QueryProvider má schema_tables vlastnost, která poskytuje seznam tabulek schématu a schema vlastnost, která obsahuje také názvy sloupců a datové typy pro každou tabulku.

Zobrazení prvních 10 tabulek ve schématu Microsoft Sentinelu:

Přejděte k další buňce s následujícím kódem a spusťte ji. Můžete vynechat [:10] seznam všech tabulek v pracovním prostoru.

# 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

Objeví se následující výstup:

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

MSTICPy obsahuje také řadu předdefinovaných dotazů, které můžete spustit. Uveďte dostupné dotazy a .list_queries()získejte konkrétní podrobnosti o dotazu tím, že ho zavoláte pomocí otazníku (?) zahrnutého jako parametr. Případně můžete zobrazit seznam dotazů a související nápovědu v prohlížeči dotazů.

Zobrazení ukázky dostupných dotazů:

  1. Přejděte k další buňce s následujícím kódem a spusťte ji. Pokud chcete vypsat všechny dotazy, můžete ho [::5] vynechat.

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

    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. Získání nápovědy k dotazu předáním ? parametru:

    # Get help about a query by passing "?" as a parameter
    qry_prov.Azure.list_all_signins_geo("?")
    
  4. Zkontrolujte výstup.

    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. Pokud chcete zobrazit tabulky i dotazy v posuvném, filtrovatelném seznamu, přejděte k další buňce s následujícím kódem a spusťte ho.

    qry_prov.browse_queries()
    
  6. U vybraného dotazu se zobrazí všechny požadované a volitelné parametry společně s úplným textem dotazu. Příklad:

    Snímek obrazovky s tabulkami a dotazy zobrazenými v seznamu s možností posouvání a filtrováním

I když nemůžete spouštět dotazy z prohlížeče, můžete zkopírovat a vložit příklad na konec každého dotazu a spustit ho jinde v poznámkovém bloku.

Další informace naleznete v tématu Spuštění předem definovaného dotazu v dokumentaci MSTICPy.

Spouštění dotazů s časovými parametry

Většina dotazů vyžaduje časové parametry. Řetězce data a času jsou zdlouhavé při zadávání a jejich úpravy na více místech mohou být náchylné k chybám.

Každý poskytovatel dotazů má výchozí parametry počátečního a koncového času pro dotazy. Tyto časové parametry se ve výchozím nastavení používají při každém zavolání časových parametrů. Výchozí časový rozsah můžete změnit otevřením query_time ovládacího prvku. Změny zůstanou platné, dokud je znovu nezměníte.

  1. Přejděte k další buňce s následujícím kódem a spusťte ji:

    # Open the query time control for your query provider
    qry_prov.query_time
    
  2. Nastavte časy start a end časy podle potřeby. Příklad:

    Snímek obrazovky s nastavením výchozích časových parametrů pro dotazy

Spuštění dotazu pomocí integrovaného časového rozsahu

Výsledky dotazu se vrátí jako datový rámec Pandas, což je tabulková datová struktura, jako je tabulka nebo tabulka databáze. Funkce pandas slouží k dalšímu filtrování a analýze výsledků dotazu.

  1. Spusťte následující buňku kódu. Spustí dotaz pomocí výchozího nastavení času zprostředkovatele dotazu. Tuto oblast můžete změnit a znovu spustit buňku kódu, aby se dotazovala na nový časový rozsah.

    # 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. Zkontrolujte výstup. Zobrazí prvních pět řádků výsledků. Příklad:

    Snímek obrazovky se spuštěním dotazu s integrovaným časovým rozsahem

    Pokud nejsou k dispozici žádná data, zobrazí se jenom záhlaví sloupců.

Spuštění dotazu pomocí vlastního časového rozsahu

Můžete také vytvořit nový objekt času dotazu a předat ho dotazu jako parametr. To vám umožní spustit jednorázový dotaz pro jiný časový rozsah, aniž by to mělo vliv na výchozí hodnoty zprostředkovatele dotazů.

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

Po nastavení požadovaného časového rozsahu můžete do funkce dotazu předat časový rozsah spuštěním následujícího kódu v samostatné buňce od předchozího kódu:

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

Hodnoty datetime můžete předávat také jako hodnoty datetime v Pythonu nebo řetězce data a end času pomocí parametrůstart:

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)

Přizpůsobení dotazů

Předdefinované dotazy můžete přizpůsobit přidáním další logiky dotazů nebo spuštěním úplných dotazů pomocí exec_query funkce.

Například většina předdefinovaných dotazů podporuje add_query_items parametr, který můžete použít k připojení filtrů nebo jiných operací k dotazům.

  1. Spuštěním následující buňky kódu přidejte datový rámec, který shrnuje počet výstrah podle názvu výstrahy:

    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. Zprostředkovateli dotazu předejte úplný řetězec dotazu dotazovací jazyk Kusto (KQL). Dotaz se spustí v připojeném pracovním prostoru a data se vrátí jako datový rámec panda. Run (Spuštění):

    # 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())
    
    

Další informace naleznete v tématu:

Test VirusTotal

  1. Pokud chcete pomocí analýzy hrozeb zjistit, jestli se v datech VirusTotal zobrazuje IP adresa, spusťte buňku s následujícím kódem:

    # 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. Zkontrolujte výstup. Příklad:

    Snímek obrazovky s IP adresou, která se zobrazuje v datech VirusTotal

  3. Posuňte se dolů a zobrazte úplné výsledky.

Další informace naleznete v tématu Threat Intel Lookups v MSTICPy.

Test vyhledávání IP geografické polohy

  1. Pokud chcete získat podrobnosti o geografické poloze PRO IP adresu pomocí služby MaxMind, spusťte buňku s následujícím kódem:

    # 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. Zkontrolujte výstup. Příklad:

    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()}
    

Při prvním spuštění tohoto kódu by se měl zobrazit ovladač GeoLite, který stahuje jeho databázi.

Další informace naleznete v tématu MSTICPy GeoIP Providers.

Konfigurace nastavení služby Key Vault

Tato část je relevantní jenom při ukládání tajných kódů ve službě Azure Key Vault.

Při ukládání tajných kódů ve službě Azure Key Vault je potřeba nejprve vytvořit službu Key Vault na globálním portálu pro správu služby KeyVault v Azure.

Požadovaná nastavení jsou všechny hodnoty, které získáte z vlastností trezoru, i když některé můžou mít jiné názvy. Příklad:

  • Název trezoru se zobrazuje v levém horním rohu obrazovky Vlastností služby Azure Key Vault.
  • ID tenanta se zobrazuje jako ID adresáře.
  • Oblast Azure se zobrazuje jako umístění.
  • Autorita je cloud pro vaši službu Azure.

K načtení tajných kódů z trezoru se vyžadují pouze hodnoty VaultName, TenantId a Authority . Další hodnoty jsou potřeba, pokud se rozhodnete vytvořit trezor z MSTICPy. Další informace najdete v tématu Určení tajných kódů jako tajných kódů služby Key Vault.

Ve výchozím nastavení je vybraná možnost Použít službu KeyRing a umožňuje ukládat přihlašovací údaje služby Key Vault do mezipaměti v místní službě KeyRing. Další informace najdete v dokumentaci ke službě KeyRing.

Upozornění

Nepoužívejte možnost Použít KeyRing , pokud plně nedůvěřujete výpočetním prostředkům hostitele, na kterém je poznámkový blok spuštěný.

V našem případě je výpočetním serverem centra Jupyter, na kterém běží jádro poznámkového bloku, a ne nutně počítač, na kterém běží váš prohlížeč. Pokud používáte Azure ML, výpočetním prostředím bude výpočetní instance Azure ML, kterou jste vybrali. Keyring provádí ukládání do mezipaměti na hostiteli, na kterém je spuštěné jádro poznámkového bloku.

Pokud chcete přidat nastavení služby Key Vault v editoru nastavení MSTICPy, proveďte následující kroky.

  1. Přejděte k další buňce s následujícím kódem a spusťte ji:

    mpedit.set_tab("Key Vault")
    mpedit
    
  2. Zadejte podrobnosti trezoru pro službu Key Vault. Příklad:

    Snímek obrazovky s částí Nastavení služby Key Vault

  3. Vyberte Uložit a potom uložit Nastavení.

Testování služby Key Vault

Pokud chcete trezor klíčů otestovat, zkontrolujte, jestli se můžete připojit a zobrazit tajné kódy. Pokud jste nepřidali tajný kód, neuvidíte žádné podrobnosti. Pokud potřebujete, přidejte do trezoru testovací tajný klíč z portálu služby Azure Key Vault a zkontrolujte, jestli se zobrazuje v Microsoft Sentinelu.

Příklad:

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

Upozornění

Nechejte výstup zobrazený v uloženém poznámkovém bloku. Pokud výstup obsahuje skutečné tajné kódy, před uložením poznámkového bloku použijte příkaz Vymazat výstup poznámkového bloku.

Odstraňte také kopie poznámkového bloku uložené v mezipaměti. Podívejte se například do .ipynb_checkpoints podsložky adresáře poznámkového bloku a odstraňte všechny nalezené kopie tohoto poznámkového bloku. Uložení poznámkového bloku s vymazáním výstupu by mělo přepsat kopii kontrolního bodu.

Po nakonfigurování služby Key Vault můžete pomocí tlačítka Nahrát do KV v oddílech Zprostředkovatel dat a poskytovatelů TI přesunout vybrané nastavení do trezoru. MSTICPy vygeneruje výchozí název tajného kódu na základě cesty nastavení, například TIProviders-VirusTotal-Args-AuthKey.

Pokud se hodnota úspěšně nahraje, obsah pole Hodnota v editoru nastavení se odstraní a podkladové nastavení se nahradí zástupným symbolem. MSTICPy používá tuto hodnotu k označení, že by při pokusu o načtení klíče měla automaticky vygenerovat cestu ke službě Key Vault.

Pokud už máte požadované tajné kódy uložené ve službě Key Vault, můžete do pole Hodnota zadat název tajného kódu. Pokud tajný klíč není uložený ve výchozím trezoru (hodnoty zadané v části Key Vault ), můžete zadat cestu vaultName/SecretName.

Načtení nastavení z trezoru v jiném tenantovi se v současné době nepodporuje. Další informace najdete v tématu Určení tajných kódů jako tajných kódů služby Key Vault.

Určení metod ověřování Azure v cloudu a Azure

Pokud používáte suverénní cloud Azure nebo cloud Azure pro státní správu, nikoli veřejný nebo globální cloud Azure, musíte ve svém nastavení vybrat příslušný cloud. Pro většinu organizací je globální cloud výchozím nastavením.

Tato nastavení Azure můžete také použít k definování výchozích předvoleb pro typ ověřování Azure.

Pokud chcete zadat cloudové metody Azure a metody ověřování Azure, proveďte následující kroky.

  1. Přejděte k další buňce s následujícím kódem a spusťte ji:

    mpedit.set_tab("Azure")
    mpedit
    
  2. Vyberte cloud používaný vaší organizací nebo ponechte výchozí vybranou globální možnost.

  3. Vyberte jednu nebo více z následujících metod:

    • Env k uložení přihlašovacích údajů Azure do proměnných prostředí.
    • Msi pro použití identity spravované služby, což je identita přiřazená k hostiteli nebo virtuálnímu počítači, na kterém je spuštěné centrum Jupyter. MSI se v současné době nepodporuje v instancích Azure Machine Učení Compute.
    • cli pro použití přihlašovacích údajů z ověřené relace Azure CLI.
    • interaktivní pro použití toku autorizace interaktivních zařízení pomocí jednorázového kódu zařízení.

    Ve většině případů doporučujeme vybrat více metod, jako je rozhraní příkazového řádku i interaktivní. Ověřování Azure zkouší všechny nakonfigurované metody v uvedeném pořadí, dokud nebude úspěšné.

  4. Vyberte Uložit a potom uložit Nastavení.

    Příklad:

    Snímek obrazovky s nastavením definovaným pro cloud Azure Government

Další kroky

Tento článek popisuje základy používání MSTICPy s poznámkovými bloky Jupyter v Microsoft Sentinelu. Další informace najdete v tématu Pokročilé konfigurace pro poznámkové bloky Jupyter a MSTICPy v Microsoft Sentinelu.

Můžete si také vyzkoušet další poznámkové bloky uložené v úložišti Microsoft Sentinel Notebooks na GitHubu, například:

Pokud používáte poznámkový blok popsaný v tomto článku v jiném prostředí Jupyter, můžete použít jakékoli jádro, které podporuje Python 3.6 nebo novější.

Pokud chcete používat poznámkové bloky MSTICPy mimo Microsoft Sentinel a Azure Machine Učení (ML), musíte také nakonfigurovat prostředí Pythonu. Nainstalujte Python 3.6 nebo novější s distribucí Anaconda, která obsahuje mnoho požadovaných balíčků.

Další informace o MSTICPy a poznámkových blocích

Následující tabulka obsahuje další odkazy na informace o MSTICPy, Microsoft Sentinelu a poznámkových blocích Jupyter.

Předmět Další odkazy
MSTICPy - Konfigurace balíčku MSTICPy
- Editor Nastavení MSTICPy
- Konfigurace prostředí poznámkového bloku
- Poznámkový blok MP Nastavení Editor

Poznámka: Úložiště Azure-Sentinel-Notebooks GitHub obsahuje také soubor msticpyconfig.yaml se zakomentovanými oddíly, které vám můžou pomoct pochopit nastavení.
Poznámkové bloky Microsoft Sentinel a Jupyter - Vytvoření prvního poznámkového bloku Microsoft Sentinelu (řada blogů)
- Poznámkové bloky Jupyter: Úvod
- Dokumentace k MSTICPy
- Dokumentace ke službě Microsoft Sentinel Notebooks
- The Infosec Jupyterbook
- Názorný postup poznámkového bloku Průzkumníka hostitelů s Linuxem
- Proč používat Jupyter pro vyšetřování zabezpečení
- Vyšetřování zabezpečení s využitím Microsoft Sentinelu a poznámkových bloků
- Dokumentace k knihovně Pandas
- Dokumentace k bokeh