A Jupyter notebookok és az MSTICPy használatának első lépései a Microsoft Sentinelben

Ez a cikk bemutatja, hogyan futtatható a Microsoft Sentinel ML Notebooks első lépések útmutatója, amely alapkonfigurációkat állít be a Jupyter-jegyzetfüzetek Microsoft Sentinelben való futtatásához és egyszerű adat lekérdezések futtatásához.

A Microsoft Sentinel ML Notebooks első lépések útmutatója az MSTICPy-t, a Microsoft által létrehozott kiberbiztonsági eszközök Python-kódtárát használja, amely fenyegetéskeresési és vizsgálati funkciókat biztosít.

Az MSTICPy csökkenti az ügyfelek által a Microsoft Sentinelhez írandó kód mennyiségét, és a következő lehetőségeket nyújtja:

  • Adatbekérdezési képességek a Microsoft Sentinel-táblák, Végponthoz készült Microsoft Defender, Splunk és egyéb adatforrások alapján.
  • Fenyegetésfelderítési keresések TI-szolgáltatókkal, például VirusTotal és AlienVault OTX használatával.
  • A bővítési függvények, például az IP-címek földrajzi helyének meghatározása, az IoC-kinyerés és a WhoIs-keresések.
  • Vizualizációs eszközök esemény-ütemtervekkel, folyamatfákkal és geoleképezéssel.
  • Speciális elemzések, például idősorok felbontása, anomáliadetektálás és fürtözés.

A cikk lépései azt ismertetik, hogyan futtathatja a Microsoft Sentinel ML Notebooks-jegyzetfüzetek első lépéseit az Azure Machine Tanulás-munkaterületen a Microsoft Sentinelen keresztül. Ez a cikk útmutatásként is használható a jegyzetfüzetek más környezetekben, például helyi környezetben való futtatásához hasonló lépések végrehajtásához.

További információ: A jegyzetfüzetek használata a power-vizsgálatokhoz és a Jupyter-jegyzetfüzetek használata a biztonsági fenyegetések kereséséhez.

Számos Microsoft Sentinel-jegyzetfüzet nem használja az MSTICPy-t, például a Credential Scanner-jegyzetfüzeteket , illetve a PowerShell- és C#-példákat. Az MSTICpy-t nem használó jegyzetfüzetekhez nincs szükség a cikkben ismertetett MSTICPy-konfigurációra.

Fontos

A Microsoft Sentinel az egyesített biztonsági üzemeltetési platform nyilvános előzetes verziójának részeként érhető el a Microsoft Defender portálon. További információ: Microsoft Sentinel a Microsoft Defender portálon.

Előfeltételek

Mielőtt hozzákezdene, győződjön meg arról, hogy rendelkezik a szükséges engedélyekkel és erőforrásokkal.

  • Ha jegyzetfüzeteket szeretne használni a Microsoft Sentinelben, győződjön meg arról, hogy rendelkezik a szükséges engedélyekkel. További információ: Microsoft Sentinel-jegyzetfüzetek hozzáférésének kezelése.

  • A cikkben ismertetett lépések végrehajtásához a Python 3.6-os vagy újabb verziójára van szükség. Az Azure Machine Tanulás használhat Python 3.8-kernelt (ajánlott) vagy Python 3.6-os kernelt.

  • Ez a jegyzetfüzet a MaxMind GeoLite2 földrajzi helykeresési szolgáltatást használja AZ IP-címekhez. A MaxMind GeoLite2 szolgáltatás használatához szüksége van egy fiókkulcsra. A Maxmind regisztrációs oldalán regisztrálhat egy ingyenes fiókot és kulcsot.

  • Ez a jegyzetfüzet a VirusTotalt (VT) használja fenyegetésfelderítési forrásként. A VirusTotal fenyegetésintelligencia-keresésének használatához VirusTotal-fiókra és API-kulcsra van szükség.

    A VirusTotal első lépései oldalon regisztrálhat egy ingyenes VT-fiókra. Ha már VirusTotal-felhasználó, használhatja a meglévő kulcsot.

    Figyelmeztetés

    Ha VT vállalati kulcsot használ, az msticpyconfig.yaml fájl helyett az Azure Key Vaultban tárolja. További információ: Titkos kulcsok megadása Key Vault-titkos kulcsként az MSTICPY dokumentációjában.

    Ha jelenleg nem szeretne Azure Key Vaultot beállítani, regisztráljon és használjon ingyenes fiókot, amíg be nem állíthatja a Key Vault-tárolót.

Az első lépések útmutató jegyzetfüzetének futtatása és inicializálása

Ez az eljárás bemutatja, hogyan indíthatja el a jegyzetfüzetet, és inicializálhatja az MSTICpyt.

  1. Az Azure PortalOn a Microsoft Sentinel esetében a Fenyegetéskezelés területen válassza a Jegyzetfüzetek lehetőséget.
    Microsoft Sentinel esetén a Defender portálon válassza a Microsoft Sentinel>fenyegetéskezelési>jegyzetfüzetek lehetőséget.

  2. A Sablonok lapon válassza az Első lépések útmutató a Microsoft Sentinel ML-jegyzetfüzetekhez lehetőséget.

  3. Válassza a Létrehozás sablonból lehetőséget.

  4. Szerkessze a nevet, és szükség szerint válassza ki az Azure Machine Tanulás munkaterületet.

  5. Válassza a Mentés lehetőséget az Azure Machine Tanulás-munkaterületre való mentéshez.

  6. A jegyzetfüzet futtatásához válassza a Jegyzetfüzet indítása lehetőséget. A jegyzetfüzet cellasorozatot tartalmaz:

    • A Markdown-cellák a jegyzetfüzet használatára vonatkozó utasításokat tartalmazó szöveget és ábrákat tartalmaznak
    • A kódcellák végrehajtható kódot tartalmaznak, amely végrehajtja a jegyzetfüzetfüggvényeket
  7. A kódcellák olvasása és futtatása sorrendben. A cellák kihagyása vagy a sorrenden kívüli futtatása hibákat okozhat a jegyzetfüzet későbbi részében.

    Futtassa az egyes cellákat az egyes celláktól balra található lejátszási gombra kattintva. A végrehajtott függvénytől függően a cellában lévő kód gyorsan futhat, vagy eltarthat néhány másodpercig.

    Amikor a cella fut, a lejátszás gomb egy betöltési tárcsára változik, és a cella alján megjelenik egy állapot Executing , valamint az eltelt idő.

    Ha úgy tűnik, hogy a jegyzetfüzet nem működik a leírtak szerint, indítsa újra a kernelt, és futtassa a jegyzetfüzetet az elejétől kezdve. Ha például az Első lépések útmutató jegyzetfüzetének bármelyik celláját egy percnél tovább kell futtatni, próbálja meg újraindítani a kernelt, és újra futtatni a jegyzetfüzetet.

    Az Első lépések útmutató jegyzetfüzete útmutatást tartalmaz a Jupyter-jegyzetfüzetek alapvető használatához, beleértve a Jupyter kernel újraindítását is.

    Miután befejezte a Cellák olvasását és futtatását a What a Jupyter Notebook szakaszban, készen áll a konfigurációs feladatok elindítására a jegyzetfüzet környezetének beállítása szakasztól kezdve.

  8. Futtassa az első kódcellát a jegyzetfüzet Jegyzetfüzet környezetének beállítása szakaszában, amely a következő kódot tartalmazza:

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

    Az inicializálás állapota megjelenik a kimenetben. A fájl hiányzó beállításaira Missing msticpyconfig.yaml vonatkozó konfigurációs figyelmeztetések várhatók, mert még nem konfigurált semmit.

A konfigurációs fájl létrehozása

Az alapszintű inicializálás után készen áll a konfigurációs fájl létrehozására az MSTICPy használatához szükséges alapvető beállításokkal.

Számos Microsoft Sentinel-jegyzetfüzet csatlakozik külső szolgáltatásokhoz, például a VirusTotalhoz (VT) az adatok gyűjtéséhez és bővítéséhez. A szolgáltatásokhoz való csatlakozáshoz be kell állítania és tárolnia kell a konfiguráció részleteit, például a hitelesítési jogkivonatokat. Ha ezeket az adatokat a konfigurációs fájlban tárolja, akkor nem kell minden alkalommal begépelnie a hitelesítési jogkivonatokat és a munkaterület adatait, amikor jegyzetfüzetet használ.

Az MSTICPy az msticpyconfig.yaml parancsot használja a konfigurációs részletek széles körének tárolására. Alapértelmezés szerint az msticpyconfig.yaml fájlt a jegyzetfüzet inicializálási függvénye hozza létre. Ha ezt a jegyzetfüzetet a Microsoft Sentinel portálról klónozta, a konfigurációs fájl a Microsoft Sentinel-munkaterület adataival lesz feltöltve. Ezek az adatok egy config.json fájlból lesznek beolvasva, amely az Azure Machine Tanulás-munkaterületen jön létre a jegyzetfüzet indításakor. További információt az MSTICPy-csomagkonfiguráció dokumentációjában talál.

A következő szakaszok ismertetik, hogyan adhat hozzá további konfigurációs részleteket az msticpyconfig.yaml fájlhoz.

Ha ismét futtatja az Első lépések útmutató jegyzetfüzetet, és már rendelkezik minimálisan konfigurált msticpyconfig.yaml fájllal, a init_notebook függvény nem írja felül vagy módosítja a meglévő fájlt.

Bármikor válassza az MSTICPy konfigurációs eszköz -Súgó legördülő menüjét további utasításokért és a részletes dokumentációra mutató hivatkozásokért.

Az MSTICPy beállítások szerkesztőjének megjelenítése

  1. Egy kódcellában futtassa a következő kódot az MpConfigEdit eszköz importálásához és az msticpyconfig.yaml fájl beállításszerkesztőjének megjelenítéséhez:

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

    Példa:

    Képernyőkép az MSTICPy beállításszerkesztőről.

    Az automatikusan létrehozott msticpyconfig.yaml fájl, amely a beállítások szerkesztőjében látható, két bejegyzést tartalmaz a Microsoft Sentinel szakaszban. Mindkettő ki van töltve annak a Microsoft Sentinel-munkaterületnek a részleteivel, amelyről a jegyzetfüzetet klónozta. Az egyik bejegyzés a munkaterület nevét, a másik pedig az Alapértelmezett nevet adja.

    Az MSTICPy lehetővé teszi, hogy több Microsoft Sentinel-munkaterület konfigurációit tárolja, és váltson közöttük. Az Alapértelmezett bejegyzés lehetővé teszi, hogy alapértelmezés szerint hitelesítse magát az "otthoni" munkaterületen anélkül, hogy kifejezetten el kellene neveznie. Ha további munkaterületeket ad hozzá, bármelyiket konfigurálhatja alapértelmezett bejegyzésként.

    Az Azure Machine Tanulás környezetben a beállításszerkesztő megjelenése 10–20 másodpercet vehet igénybe.

  2. Ellenőrizze az aktuális beállításokat, és válassza a Mentés Gépház lehetőséget.

Fenyegetésintelligencia-szolgáltató beállításainak hozzáadása

Ez az eljárás azt ismerteti, hogyan tárolhatja a VirusTotal API-kulcsot az msticpyconfig.yaml fájlban. Dönthet úgy, hogy feltölti az API-kulcsot az Azure Key Vaultba, de először konfigurálnia kell a Key Vault beállításait. További információ: Key Vault-beállítások konfigurálása.

A VirusTotal részleteinek az MSTICPy-beállítások szerkesztőjében való hozzáadásához hajtsa végre az alábbi lépéseket.

  1. Írja be a következő kódot egy kódcellába, és futtassa a következőt:

    mpedit.set_tab("TI Providers")
    mpedit
    
  2. A TI-szolgáltatók lapon válassza az Add prov VirusTotal Add (Prov>VirusTotal>Add) lehetőséget.

  3. A Hitelesítési kulcs területen válassza a Tárolás lehetőség melletti Szöveg lehetőséget.

  4. Az Érték mezőbe illessze be az API-kulcsot.

  5. Válassza a Frissítés, majd a Beállítások szerkesztő alján található Mentés Gépház lehetőséget.

A többi támogatott fenyegetésintelligencia-szolgáltatóról további információt az MSTICPy dokumentációjában és a Microsoft Sentinel fenyegetésfelderítési integrációjában talál.

GeoIP-szolgáltató beállításainak hozzáadása

Ez az eljárás azt ismerteti, hogyan tárolhat egy MaxMind GeoLite2-fiókkulcsot az msticpyconfig.yaml fájlban, amely lehetővé teszi a jegyzetfüzet számára, hogy ip-címekhez geolokációs keresési szolgáltatásokat használjon.

Ha GeoIP-szolgáltatói beállításokat szeretne hozzáadni az MSTICPy-beállítások szerkesztőjében, hajtsa végre az alábbi lépéseket.

  1. Írja be a következő kódot egy üres kódcellába, és futtassa a következőt:

    mpedit.set_tab("GeoIP Providers")
    mpedit
    
  2. A GeoIP-szolgáltatók lapon válassza az Add prov GeoIPLite Add (Prov>GeoIPLite>Hozzáadása) lehetőséget.

  3. Az Érték mezőben adja meg a MaxMind fiókkulcsot.

  4. Szükség esetén frissítse az alapértelmezett ~/.msticpy mappát a letöltött GeoIP-adatbázis tárolásához.

    • Windows rendszeren ez a mappa a következőre van leképezve: %U Standard kiadás RPROFILE%/.msticpy.
    • Linux vagy macOS rendszeren ez az elérési út a kezdőmappában lévő .msticpy mappára van leképezve.

Az egyéb támogatott földrajzi helykeresési szolgáltatásokkal kapcsolatos további információkért tekintse meg az MSTICPy GeoIP-szolgáltatók dokumentációját.

Az Azure Cloud beállításainak konfigurálása

Ha szervezete nem használja az Azure nyilvános felhőt, ezt meg kell adnia a beállításokban a Microsoft Sentinel és az Azure adatainak sikeres hitelesítéséhez és használatához. További információ: Az Azure Cloud és az alapértelmezett Azure-hitelesítési módszerek megadása.

Beállítások érvényesítése

  1. Válassza a Beállítások ellenőrzése lehetőséget a beállításszerkesztőben.

    A hiányzó konfigurációkra vonatkozó figyelmeztető üzenetek várhatók, de a fenyegetésfelderítési szolgáltató vagy a GeoIP-szolgáltató beállításai nem használhatók.

  2. A környezettől függően előfordulhat, hogy a Key Vault beállításait vagy az Azure-felhőt is konfigurálnia kell.

  3. Ha az ellenőrzés miatt módosításokat kell végeznie, végezze el ezeket a módosításokat, majd válassza a Mentés Gépház lehetőséget.

  4. Ha elkészült, a Bezárás gombra kattintva elrejtheti az érvényesítési kimenetet.

További információ: Speciális konfigurációk Jupyter notebookokhoz és MSTICPy-hoz a Microsoft Sentinelben

Mentett MSTICPy-beállítások betöltése

A konfigurációs fájl létrehozása eljárásban a beállításokat a helyi msticpyconfig.yaml fájlba mentette.

Az MSTICPy azonban nem tölti be automatikusan ezeket a beállításokat, amíg újra nem indítja a kernelt, vagy nem futtat egy másik jegyzetfüzetet. Ha az MSTICPy-t az új konfigurációs fájlból való újratöltésre szeretné kényszeríteni, lépjen a következő kódcellába a következő kóddal, és futtassa azt:

import msticpy
msticpy.settings.refresh_config()

A jegyzetfüzet tesztelése

Most, hogy inicializálta a környezetet, és konfigurálta a munkaterület alapvető beállításait, az MSTICPy QueryProvider osztály használatával tesztelje a jegyzetfüzetet. QueryProvider lekérdez egy adatforrást, ebben az esetben a Microsoft Sentinel-munkaterületet, és elérhetővé teszi a lekérdezett adatokat a jegyzetfüzetben való megtekintéshez és elemzéshez.

Az alábbi eljárásokkal létrehozhatja az osztály egy példányát, hitelesítheti magát a QueryProvider Microsoft Sentinelben a jegyzetfüzetből, és különböző paraméterekkel rendelkező lekérdezéseket tekinthet meg és futtathat.

Több Microsoft Sentinel-munkaterülethez vagy más adatszolgáltatóhoz, például Végponthoz készült Microsoft Defender is betölthet több példánytQueryProvider.

A QueryProvider betöltése

A következő kóddal töltse be a QueryProviderAzureSentinelkövetkező kódot a cellába, és futtassa:

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

Ha a Microsoft Sentinel-illesztőprogram betöltésekor figyelmeztetés Runtime dependency of PyGObject is missing jelenik meg, tekintse meg a PyGObject futtatókörnyezeti függőségének hiányát. Ez a figyelmeztetés nem befolyásolja a jegyzetfüzet működését.

Hitelesítés a Microsoft Sentinel-munkaterületen a jegyzetfüzetből

Az Azure Machine Tanulás-jegyzetfüzetekben a hitelesítés alapértelmezés szerint az Azure Machine Tanulás-munkaterületen való hitelesítéshez használt hitelesítő adatok használatával történik.

Hitelesítés felügyelt identitással az alábbi lépések végrehajtásával.

  1. Futtassa a következő kódot a Sentinel-munkaterületen való hitelesítéshez.

    # 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. Tekintse át a kimenetet. A megjelenített kimenet hasonló az alábbi képhez.

    A csatlakoztatott üzenettel végződő Azure-hitelesítést bemutató képernyőkép.

A bejelentkezési jogkivonat gyorsítótárazása az Azure CLI használatával

Annak érdekében, hogy ne kelljen újra hitelesítenie magát, ha újraindítja a kernelt, vagy másik jegyzetfüzetet futtat, gyorsítótárazhatja a bejelentkezési jogkivonatot az Azure CLI használatával.

A Compute-példány Azure CLI-összetevője gyorsítótárazza a frissítési jogkivonatot, amelyet újra felhasználhat, amíg a jogkivonat túllépi az időkorlátot. Az MSTICPy automatikusan Azure CLI-hitelesítő adatokat használ, ha elérhetők.

Az Azure CLI használatával történő hitelesítéshez írja be a következő parancsot egy üres cellába, és futtassa azt:

!az login

Újra kell hitelesítenie magát, ha újraindítja a számítási példányt, vagy másik példányra vált. További információ: Hitelesítő adatok gyorsítótárazása az Azure CLI-vel szakasz a Microsoft Sentinel Notebooks GitHub-adattár wikijében.

A Microsoft Sentinel-munkaterület adatséma és a beépített MSTICPy-lekérdezések megtekintése

Miután csatlakozott egy Microsoft Sentinel QueryProviderhez, a Microsoft Sentinel-munkaterület adatséma lekérdezésével megismerheti a lekérdezéshez elérhető adattípusokat.

A Microsoft Sentinel QueryProvider tulajdonsága schema_tables tartalmazza a sématáblák listáját, valamint egy schema tulajdonságot, amely az egyes táblák oszlopnevét és adattípusait is tartalmazza.

Az első 10 tábla megtekintése a Microsoft Sentinel sémában:

Lépjen a következő cellára a következő kóddal, és futtassa azt. Kihagyhatja a [:10] munkaterület összes táblájának felsorolását.

# 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

Az alábbi kimenet jelenik meg:

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

Az MSTICPy számos, futtatható beépített lekérdezést is tartalmaz. Listázhatja az elérhető lekérdezéseket a .list_queries()paraméterként megadott kérdőjel (?) meghívásával, és konkrét részleteket kaphat a lekérdezésről. Másik lehetőségként megtekintheti a lekérdezések listáját és a kapcsolódó súgót a lekérdezésböngészőben.

Az elérhető lekérdezések mintájának megtekintése:

  1. Lépjen a következő cellára a következő kóddal, és futtassa azt. Kihagyhatja az [::5] összes lekérdezés felsorolását.

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

    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. Segítség kérése egy lekérdezéshez paraméterként való ? átadással:

    # Get help about a query by passing "?" as a parameter
    qry_prov.Azure.list_all_signins_geo("?")
    
  4. Tekintse át a kimenetet.

    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. Ha a táblákat és a lekérdezéseket is görgethető, szűrhető listában szeretné megtekinteni, lépjen a következő cellára a következő kóddal, és futtassa azt.

    qry_prov.browse_queries()
    
  6. A kiválasztott lekérdezés esetében az összes szükséges és választható paraméter megjelenik a lekérdezés teljes szövegével együtt. Példa:

    Képernyőkép a görgethető, szűrhető listában megjelenített táblákról és lekérdezésekről.

Bár nem futtathat lekérdezéseket a böngészőből, másolhatja és beillesztheti a példát az egyes lekérdezések végére, hogy máshol fusson a jegyzetfüzetben.

További információ: Előre definiált lekérdezés futtatása az MSTICPy dokumentációjában.

Lekérdezések futtatása időparaméterekkel

A legtöbb lekérdezéshez időparaméterek szükségesek. A dátum/idő sztringek beírása fárasztó, és a több helyen történő módosításuk hibalehetőséget jelenthet.

Minden lekérdezésszolgáltató alapértelmezett kezdési és befejezési időparaméterekkel rendelkezik a lekérdezésekhez. Ezek az időparaméterek alapértelmezés szerint az időparaméterek meghívásakor használatosak. Az alapértelmezett időtartományt a vezérlő megnyitásával módosíthatja query_time . A módosítások mindaddig érvényben maradnak, amíg újra nem módosítja őket.

  1. Lépjen a következő cellára a következő kóddal, és futtassa azt:

    # Open the query time control for your query provider
    qry_prov.query_time
    
  2. Állítsa be a start szükséges időpontokat és end időpontokat. Példa:

    Képernyőkép a lekérdezések alapértelmezett időparamétereinek beállításáról.

Lekérdezés futtatása a beépített időtartomány használatával

A lekérdezési eredmények Pandas DataFrame-ként jelennek meg, amely táblázatos adatszerkezet, például táblázat vagy adatbázistábla. A pandas függvényekkel további szűrést és elemzést végezhet a lekérdezési eredményeken.

  1. Futtassa a következő kódcellát. Lekérdezést futtat a lekérdezésszolgáltató alapértelmezett időbeállításai alapján. Módosíthatja ezt a tartományt, és újra futtathatja a kódcellát az új időtartomány lekérdezéséhez.

    # 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. Tekintse át a kimenetet. Megjeleníti az első öt találatsort. Példa:

    A lekérdezések beépített időtartományral való futtatásának képernyőképe.

    Ha nincsenek adatok, csak az oszlopfejlécek jelennek meg.

Lekérdezés futtatása egyéni időtartomány használatával

Létrehozhat egy új lekérdezési időobjektumot is, és paraméterként továbbíthatja azt egy lekérdezésnek. Ez lehetővé teszi, hogy egy másik időtartományhoz tartozó egyszeri lekérdezést futtasson anélkül, hogy befolyásolná a lekérdezésszolgáltató alapértelmezéseit.

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

A kívánt időtartomány beállítása után átadhatja az időtartományt a lekérdezési függvénynek, és a következő kódot futtathatja az előző kódtól eltérő cellában:

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

A dátum/idő értékeket Python-dátum/ dátum-idő sztringként is átadhatja a paraméterek és end a start paraméterek használatával:

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)

A lekérdezések testreszabása

A beépített lekérdezések testreszabásához további lekérdezési logikát adhat hozzá, vagy teljes lekérdezéseket futtathat a exec_query függvény használatával.

A legtöbb beépített lekérdezés például támogatja a add_query_items paramétert, amellyel szűrőket vagy más műveleteket fűzhet a lekérdezésekhez.

  1. Futtassa a következő kódcellát egy olyan adatkeret hozzáadásához, amely a riasztások számát riasztásnév alapján összegzi:

    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. Adjon át egy teljes Kusto lekérdezésnyelv (KQL) lekérdezési sztringet a lekérdezésszolgáltatónak. A lekérdezés a csatlakoztatott munkaterületen fut, és az adatok panda DataFrame-ként térnek vissza. Futtatás:

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

További információkért lásd:

VirusTotal tesztelése

  1. Ha fenyegetésfelderítést szeretne használni annak megtekintéséhez, hogy megjelenik-e IP-cím a VirusTotal-adatokban, futtassa a cellát a következő kóddal:

    # 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. Tekintse át a kimenetet. Példa:

    Képernyőkép a VirusTotal-adatokban megjelenő IP-címről.

  3. Görgessen le a teljes eredmények megtekintéséhez.

További információ: Threat Intel Lookups in MSTICPy.

Földrajzi helymeghatározási IP-keresés tesztelése

  1. Ha egy IP-cím földrajzi helyadatait szeretné lekérni a MaxMind szolgáltatással, futtassa a cellát a következő kóddal:

    # 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. Tekintse át a kimenetet. Példa:

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

A kód első futtatásakor látnia kell, hogy a GeoLite-illesztő letölti az adatbázist.

További információ: MSTICPy GeoIP-szolgáltatók.

A Key Vault beállításainak konfigurálása

Ez a szakasz csak akkor releváns, ha titkos kulcsokat tárol az Azure Key Vaultban.

Amikor titkos kulcsokat tárol az Azure Key Vaultban, először létre kell hoznia a Key Vaultot az Azure globális KeyVault felügyeleti portálján.

A kötelező beállítások a Tároló tulajdonságaiból kapott összes érték, bár egyes nevek eltérőek lehetnek. Példa:

  • A VaultName az Azure Key Vault tulajdonságai képernyő bal felső részén jelenik meg
  • A TenantId könyvtárazonosítóként jelenik meg
  • Az AzureRegion helyként jelenik meg
  • A Szolgáltató az Azure-szolgáltatás felhője.

Csak a VaultName, a TenantId és a Authority értékek szükségesek a titkos kulcsok tárolóból való lekéréséhez. A többi értékre akkor van szükség, ha az MSTICPy-ból hoz létre tárolót. További információ: Titkos kulcsok megadása Key Vault-titkos kulcsként.

A KeyRing használata beállítás alapértelmezés szerint be van jelölve, és lehetővé teszi a Key Vault hitelesítő adatainak gyorsítótárazást egy helyi KeyRingben. További információt a KeyRing dokumentációjában talál.

Figyelemfelhívás

Ne használja a KeyRing használata lehetőséget, ha nem bízik meg teljes mértékben abban a gazdagépben, amelyen a jegyzetfüzet fut.

Esetünkben a számítás a Jupyter hub kiszolgálója, ahol a notebook kernel fut, és nem feltétlenül az a gép, amelyen a böngésző fut. Ha Azure ML-t használ, a számítás a kiválasztott Azure ML Compute-példány lesz. A Keyring gyorsítótárazást végez azon a gazdagépen, amelyen a jegyzetfüzet kernele fut.

A Key Vault beállításainak az MSTICPy-beállítások szerkesztőjében való hozzáadásához hajtsa végre az alábbi lépéseket.

  1. Lépjen a következő cellára a következő kóddal, és futtassa azt:

    mpedit.set_tab("Key Vault")
    mpedit
    
  2. Adja meg a Key Vault tárolójának adatait. Példa:

    Képernyőkép a Key Vault beállítási szakaszáról

  3. Válassza a Mentés, majd a Mentés Gépház lehetőséget.

Key Vault tesztelése

A kulcstartó teszteléséhez ellenőrizze, hogy tud-e csatlakozni és megtekinteni a titkos kulcsokat. Ha nem adott hozzá titkos kulcsot, nem látja a részleteket. Ha szükséges, adjon hozzá egy teszttitkot az Azure Key Vault portálról a tárolóhoz, és ellenőrizze, hogy az megjelenik-e a Microsoft Sentinelben.

Példa:

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

Figyelemfelhívás

Ne hagyja meg a mentett jegyzetfüzetben megjelenített kimenetet. Ha a kimenetben valódi titkos kódok találhatók, a jegyzetfüzet mentése előtt használja a jegyzetfüzet Kimeneti törlése parancsát.

Emellett törölje a jegyzetfüzet gyorsítótárazott másolatait is. Keresse meg például a jegyzetfüzet könyvtárának .ipynb_checkpoints almappáját, és törölje a talált jegyzetfüzet másolatát. Ha a jegyzetfüzetet törölt kimenettel menti, felülírja az ellenőrzőpont másolatát.

Miután konfigurálta a Key Vaultot, az Adatszolgáltatók és a TI-szolgáltatók szakaszban található Feltöltés a KV-ba gombbal áthelyezheti a kiválasztott beállítást a tárolóba. Az MSTICPy létrehoz egy alapértelmezett nevet a titkos kódhoz a beállítás elérési útja alapján, például TIProviders-VirusTotal-Args-AuthKey.

Ha az érték feltöltése sikeresen megtörtént, a rendszer törli a beállításszerkesztő Érték mezőjének tartalmát, és az alapul szolgáló beállítást helyőrző értékre cseréli. Az MSTICPy ezzel az értékkel jelzi, hogy a kulcs lekérésekor automatikusan létre kell hoznia a Key Vault elérési útját.

Ha már rendelkezik a kulcstartóban tárolt titkos kulcsokkal, az Érték mezőbe beírhatja a titkos kulcs nevét. Ha a titkos kulcs nem az alapértelmezett tárolóban van tárolva (a Key Vault szakaszban megadott értékek), megadhatja a VaultName/SecretName elérési útját.

A beállítások lekérése egy másik bérlő tárolójából jelenleg nem támogatott. További információ: Titkos kulcsok megadása Key Vault-titkos kulcsként.

Az Azure-felhő és az Azure hitelesítési módszereinek megadása

Ha a nyilvános vagy globális Azure-felhő helyett szuverén vagy kormányzati Azure-felhőt használ, a beállítások között ki kell választania a megfelelő felhőt. A legtöbb szervezet esetében a globális felhő az alapértelmezett.

Ezeket az Azure-beállításokat is használhatja az Azure-hitelesítési típus alapértelmezett beállításainak meghatározásához.

Az Azure-felhő és az Azure hitelesítési módszereinek megadásához hajtsa végre az alábbi lépéseket.

  1. Lépjen a következő cellára a következő kóddal, és futtassa azt:

    mpedit.set_tab("Azure")
    mpedit
    
  2. Válassza ki a szervezet által használt felhőt, vagy hagyja meg az alapértelmezett globális beállítást.

  3. Válasszon egy vagy több módszert a következő módszerek közül:

    • az Azure-beli hitelesítő adatok környezeti változókban való tárolására.
    • msi a Felügyeltszolgáltatás-identitás használatára, amely egy olyan identitás, amely ahhoz a gazdagéphez vagy virtuális géphez van hozzárendelve, amelyen a Jupyter Hub fut. Az MSI jelenleg nem támogatott az Azure Machine Tanulás Compute-példányokban.
    • parancssori felület , hogy hitelesítő adatokat használjon egy hitelesített Azure CLI-munkamenetből.
    • interaktív az interaktív eszközengedélyezési folyamat egyszeri eszközkóddal való használatához.

    A legtöbb esetben azt javasoljuk, hogy több metódust válasszon, például a parancssori felületet és az interaktívat is. Az Azure-hitelesítés a felsorolt sorrendben próbálja meg az összes konfigurált metódust, amíg az egyik sikeres nem lesz.

  4. Válassza a Mentés, majd a Mentés Gépház lehetőséget.

    Példa:

    Képernyőkép az Azure Government-felhőhöz definiált beállításokról.

Következő lépések

Ez a cikk az MSTICPy jupyter notebookokkal való használatának alapjait ismertette a Microsoft Sentinelben. További információ: Speciális konfigurációk Jupyter-notebookokhoz és MSTICPy-hoz a Microsoft Sentinelben.

A Microsoft Sentinel Notebooks GitHub-adattárban tárolt egyéb jegyzetfüzeteket is kipróbálhatja, például:

Ha a cikkben ismertetett jegyzetfüzetet egy másik Jupyter-környezetben használja, bármely olyan kernelt használhat, amely támogatja a Python 3.6-os vagy újabb verzióját.

Ha a Microsoft Sentinelen és az Azure Machine Tanulás (ML) kívül szeretne MSTICPy-jegyzetfüzeteket használni, konfigurálnia kell a Python-környezetet is. Telepítse a Python 3.6-os vagy újabb verzióját az Anaconda-disztribúcióval, amely számos szükséges csomagot tartalmaz.

További információ az MSTICPy-ról és a jegyzetfüzetekről

Az alábbi táblázat további hivatkozásokat tartalmaz az MSTICPy, a Microsoft Sentinel és a Jupyter notebookok megismeréséhez.

Tárgy További hivatkozások
MSTICPy - MSTICPy-csomagkonfiguráció
- MSTICPy Gépház Szerkesztő
- A jegyzetfüzet-környezet konfigurálása.
- MP Gépház Editor-jegyzetfüzet.

Megjegyzés: A Azure-Sentinel-Notebooks GitHub-adattár egy msticpyconfig.yaml sablonfájlt is tartalmaz megjegyzésekkel ellátott szakaszokkal, amelyek segíthetnek a beállítások megértésében.
Microsoft Sentinel és Jupyter notebookok - Az első Microsoft Sentinel-jegyzetfüzet létrehozása (blogsorozat)
- Jupyter Notebooks: Bevezetés
- AZ MSTICPy dokumentációja
- A Microsoft Sentinel Notebooks dokumentációja
- Az Infosec Jupyterbook
- A Linux gazdagépkezelő jegyzetfüzetének bemutatója
- Miért érdemes a Jupytert biztonsági vizsgálatokhoz használni?
- Biztonsági vizsgálatok a Microsoft Sentinel és jegyzetfüzetek használatával
- A Pandas dokumentációja
- A Bokeh dokumentációja