Aan de slag met Jupyter-notebooks en MSTICPy in Microsoft Sentinel
In dit artikel wordt beschreven hoe u de Introductiehandleiding voor Microsoft Sentinel ML Notebooks-notebooks uitvoert, waarmee basisconfiguraties worden ingesteld voor het uitvoeren van Jupyter-notebooks in Microsoft Sentinel en het uitvoeren van eenvoudige gegevensquery's.
De Introductiehandleiding voor Microsoft Sentinel ML Notebooks maakt gebruik van MSTICPy, een Python-bibliotheek van hulpprogramma's voor cyberbeveiliging die zijn gebouwd door Microsoft, die functionaliteit biedt voor het opsporen en onderzoeken van bedreigingen.
MSTICPy vermindert de hoeveelheid code die klanten nodig hebben om te schrijven voor Microsoft Sentinel en biedt:
- Mogelijkheden voor gegevensquery's, op basis van Microsoft Sentinel-tabellen, Microsoft Defender voor Eindpunt, Splunk en andere gegevensbronnen.
- Zoekacties voor bedreigingsinformatie met TI-providers, zoals VirusTotal en AlienVault OTX.
- Verrijkingsfuncties zoals geolocatie van IP-adressen, Indicator of Compromise (IoC) extractie en WhoIs-zoekacties.
- Visualisatiehulpmiddelen met behulp van gebeurtenistijdlijnen, processtructuren en geotoewijzing.
- Geavanceerde analyses, zoals de ontleding van tijdreeksen, anomaliedetectie en clustering.
In de stappen in dit artikel wordt beschreven hoe u de Introductiehandleiding voor Microsoft Sentinel ML Notebooks uitvoert in uw Azure Machine Learning-werkruimte via Microsoft Sentinel. U kunt dit artikel ook gebruiken als richtlijnen voor het uitvoeren van vergelijkbare stappen voor het uitvoeren van notebooks in andere omgevingen, waaronder lokaal.
Zie Notebooks gebruiken om onderzoek uit te voeren en Jupyter-notebooks te gebruiken voor het opsporen van beveiligingsrisico's voor meer informatie.
Verschillende Microsoft Sentinel-notebooks maken geen gebruik van MSTICPy, zoals de notebooks referentiescanner of de PowerShell- en C#-voorbeelden. Notebooks die geen MSTICpy gebruiken, hebben de MSTICPy-configuratie die in dit artikel wordt beschreven, niet nodig.
Belangrijk
Microsoft Sentinel is algemeen beschikbaar binnen het geïntegreerde beveiligingsbewerkingsplatform van Microsoft in de Microsoft Defender-portal. Voor preview is Microsoft Sentinel beschikbaar in de Defender-portal zonder Microsoft Defender XDR of een E5-licentie. Zie Microsoft Sentinel in de Microsoft Defender-portal voor meer informatie.
Vereisten
Voordat u begint, moet u ervoor zorgen dat u over de vereiste machtigingen en resources beschikt.
Als u notitieblokken in Microsoft Sentinel wilt gebruiken, moet u ervoor zorgen dat u over de vereiste machtigingen beschikt. Zie Toegang tot Microsoft Sentinel-notitieblokken beheren voor meer informatie.
Als u de stappen in dit artikel wilt uitvoeren, hebt u Python 3.6 of hoger nodig. In Azure Machine Learning kunt u een Python 3.8-kernel (aanbevolen) of een Python 3.6-kernel gebruiken.
Dit notebook maakt gebruik van de geolocatiezoekservice MaxMind GeoLite2 voor IP-adressen. Als u de MaxMind GeoLite2-service wilt gebruiken, hebt u een accountsleutel nodig. U kunt zich aanmelden voor een gratis account en sleutel op de registratiepagina van Maxmind.
Dit notebook maakt gebruik van VirusTotal (VT) als bedreigingsinformatiebron. Als u VirusTotal threat intelligence lookup wilt gebruiken, hebt u een VirusTotal-account en API-sleutel nodig.
U kunt zich aanmelden voor een gratis VT-account op de pagina Aan de slag met VirusTotal. Als u al een VirusTotal-gebruiker bent, kunt u uw bestaande sleutel gebruiken.
Waarschuwing
Als u een VT-bedrijfssleutel gebruikt, slaat u deze op in Azure Key Vault in plaats van het bestand msticpyconfig.yaml . Zie Geheimen opgeven als Key Vault-geheimen in de MSTICPY-documentatie voor meer informatie.
Als u momenteel geen Azure Key Vault wilt instellen, meldt u zich aan voor en gebruikt u een gratis account totdat u Key Vault-opslag kunt instellen.
Het notitieblok Aan de slag uitvoeren en initialiseren
In deze procedure wordt beschreven hoe u uw notebook start en MSTICpy initialiseert.
Voor Microsoft Sentinel in Azure Portal selecteert u Notebooks onder Bedreigingsbeheer.
Voor Microsoft Sentinel in de Defender-portal selecteert u Microsoft Sentinel>Threat Management>Notebooks.Selecteer op het tabblad Sjablonen een introductiehandleiding voor Microsoft Sentinel ML-notebooks.
Selecteer Maken op basis van sjabloon.
Bewerk de naam en selecteer waar nodig de Azure Machine Learning-werkruimte.
Selecteer Opslaan om deze op te slaan in uw Azure Machine Learning-werkruimte.
Selecteer Notebook starten om het notebook uit te voeren. Het notebook bevat een reeks cellen:
- Markdown-cellen bevatten tekst en afbeeldingen met instructies voor het gebruik van het notitieblok
- Codecellen bevatten uitvoerbare code waarmee de notebookfuncties worden uitgevoerd
De codecellen op volgorde lezen en uitvoeren. Het overslaan van cellen of het uitlopen van cellen kan later in het notebook fouten veroorzaken.
Voer elke cel uit door de afspeelknop links van elke cel te selecteren. Afhankelijk van de functie die wordt uitgevoerd, kan de code in de cel snel worden uitgevoerd of kan het enkele seconden duren.
Wanneer de cel wordt uitgevoerd, verandert de afspeelknop in een laadspinner en wordt onder aan de cel een status
Executing
weergegeven, samen met de verstreken tijd.Als uw notebook niet werkt zoals beschreven, start u de kernel opnieuw en voert u het notebook vanaf het begin uit. Als een cel in het notitieblok Aan de slag bijvoorbeeld langer dan een minuut duurt, start u de kernel opnieuw en voert u het notebook opnieuw uit.
Het Notebook Aan de slag bevat instructies voor het basisgebruik van Jupyter-notebooks, waaronder het opnieuw opstarten van de Jupyter-kernel.
Nadat u klaar bent met het lezen en uitvoeren van de cellen in de sectie Wat is een Jupyter Notebook , bent u klaar om de configuratietaken te starten, te beginnen bij het instellen van de sectie Notebook-omgeving .
Voer de eerste codecel uit in de sectie Notebook-omgeving instellen van uw notebook, die de volgende code bevat:
# 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 # initialize msticpy from msticpy.nbtools import nbinit nbinit.init_notebook( namespace=globals(), extra_imports=["urllib.request, urlretrieve"] ) pd.set_option("display.html.table_schema", False)
De initialisatiestatus wordt weergegeven in de uitvoer. Configuratiewaarschuwingen over ontbrekende instellingen in het
Missing msticpyconfig.yaml
bestand worden verwacht omdat u nog niets hebt geconfigureerd.
Uw configuratiebestand maken
Na de basis initialisatie kunt u uw configuratiebestand maken met basisinstellingen voor het werken met MSTICPy.
Veel Microsoft Sentinel-notebooks maken verbinding met externe services zoals VirusTotal (VT) om gegevens te verzamelen en te verrijken. Als u verbinding wilt maken met deze services, moet u configuratiegegevens instellen en opslaan, zoals verificatietokens. Als u deze gegevens in uw configuratiebestand hebt, hoeft u geen verificatietokens en werkruimtegegevens in te voeren telkens wanneer u een notebook gebruikt.
MSTICPy maakt gebruik van een msticpyconfig.yaml voor het opslaan van een breed scala aan configuratiedetails. Standaard wordt een msticpyconfig.yaml-bestand gegenereerd door de initialisatiefunctie van het notebook. Als u dit notitieblok hebt gekloond vanuit de Microsoft Sentinel-portal, wordt het configuratiebestand gevuld met werkruimtegegevens van Microsoft Sentinel. Deze gegevens worden gelezen uit een config.json-bestand dat is gemaakt in de Azure Machine Learning-werkruimte wanneer u uw notebook start. Zie de documentatie voor MSTICPy Package Configuration voor meer informatie.
In de volgende secties wordt beschreven hoe u meer configuratiedetails toevoegt aan het bestand msticpyconfig.yaml .
Als u het notitieblok Aan de slag opnieuw uitvoert en al een minimaal geconfigureerd msticpyconfig.yaml-bestand hebt, overschrijft of wijzigt de init_notebook
functie uw bestaande bestand niet.
Selecteer op elk gewenst moment het vervolgkeuzemenu -Help in het hulpprogramma MSTICPy-configuratie voor meer instructies en koppelingen naar gedetailleerde documentatie.
De EDITOR voor MSTICPy-instellingen weergeven
Voer in een codecel de volgende code uit om het
MpConfigEdit
hulpprogramma te importeren en een instellingeneditor weer te geven voor uw msticpyconfig.yaml-bestand :from msticpy.config import MpConfigEdit mpedit = MpConfigEdit( "msticpyconfig.yaml") mpedit.set_tab("AzureSentinel") display(mpedit)
Voorbeeld:
Het automatisch gemaakte msticpyconfig.yaml-bestand , dat wordt weergegeven in de instellingeneditor, bevat twee vermeldingen in de sectie Microsoft Sentinel. Deze worden beide gevuld met details van de Microsoft Sentinel-werkruimte waaruit het notebook is gekloond. De ene vermelding heeft de naam van uw werkruimte en de andere vermelding heeft de naam Standaard.
Met MSTICPy kunt u configuraties opslaan voor meerdere Microsoft Sentinel-werkruimten en schakelen tussen deze werkruimten. Met de standaardvermelding kunt u standaard verifiëren bij uw 'home'-werkruimte, zonder dat u deze expliciet een naam hoeft te geven. Als u nog een werkruimte toevoegt, kunt u een van deze werkruimten configureren als de standaardvermelding .
In de Azure Machine Learning-omgeving kan het 10-20 seconden duren voordat de instellingeneditor wordt weergegeven.
Controleer uw huidige instellingen en selecteer Instellingen opslaan.
Instellingen voor bedreigingsinformatieprovider toevoegen
In deze procedure wordt beschreven hoe u uw VirusTotal-API-sleutel opslaat in het bestand msticpyconfig.yaml . U kunt ervoor kiezen om de API-sleutel te uploaden naar Azure Key Vault, maar u moet eerst de Key Vault-instellingen configureren. Zie Key Vault-instellingen configureren voor meer informatie.
Voer de volgende stappen uit om VirusTotal-details toe te voegen in de MSTICPy-instellingeneditor.
Voer de volgende code in een codecel in en voer deze uit:
mpedit.set_tab("TI Providers") mpedit
Selecteer op het tabblad TI Providers de optie Add prov>VirusTotal>Add.
Selecteer onder Verificatiesleutel tekst naast de optie Opslag.
Plak uw API-sleutel in het veld Waarde .
Selecteer Bijwerken en selecteer Instellingen opslaan onder aan de instellingeneditor.
Zie bedreigingsinformatieproviders in de MSTICPy-documentatie en integratie van bedreigingsinformatie in Microsoft Sentinel voor meer informatie over andere ondersteunde bedreigingsinformatieproviders.
GeoIP-providerinstellingen toevoegen
In deze procedure wordt beschreven hoe u een MaxMind GeoLite2-accountsleutel opslaat in het bestand msticpyconfig.yaml , waarmee uw notebook geolocatiezoekservices voor IP-adressen kan gebruiken.
Voer de volgende stappen uit om GeoIP-providerinstellingen toe te voegen in de MSTICPy-instellingeneditor.
Voer de volgende code in een lege codecel in en voer deze uit:
mpedit.set_tab("GeoIP Providers") mpedit
Selecteer op het tabblad GeoIP-providers de optie Add prov>GeoIPLite>Add.
Voer in het veld Waarde uw MaxMind-accountsleutel in.
Werk indien nodig de standaardmap ~/.msticpy bij voor het opslaan van de gedownloade GeoIP-database.
- In Windows wordt deze map toegewezen aan % USERPROFILE%/.msticpy.
- In Linux of macOS wordt dit pad toegewezen aan de map .msticpy in uw basismap.
Zie de documentatie van MSTICPy GeoIP-providers voor meer informatie over andere ondersteunde geolocatiezoekservices.
Azure Cloud-instellingen configureren
Als uw organisatie de openbare Azure-cloud niet gebruikt, moet u dit opgeven in uw instellingen om gegevens van Microsoft Sentinel en Azure te verifiëren en te gebruiken. Zie De Azure-cloud en de standaardmethoden voor Azure-verificatie opgeven voor meer informatie.
Instellingen valideren
Selecteer Instellingen valideren in de instellingeneditor.
Waarschuwingsberichten over ontbrekende configuraties worden verwacht, maar u hebt geen instellingen voor bedreigingsinformatieprovider of GeoIP-provider.
Afhankelijk van uw omgeving moet u mogelijk ook Key Vault-instellingen configureren of de Azure-cloud opgeven.
Als u wijzigingen wilt aanbrengen vanwege de validatie, moet u deze wijzigingen aanbrengen en vervolgens Instellingen opslaan selecteren.
Wanneer u klaar bent, selecteert u de knop Sluiten om de validatie-uitvoer te verbergen.
Zie voor meer informatie: Geavanceerde configuraties voor Jupyter-notebooks en MSTICPy in Microsoft Sentinel
Opgeslagen MSTICPy-instellingen laden
In de procedure Uw configuratiebestand maken hebt u uw instellingen opgeslagen in uw lokale msticpyconfig.yaml-bestand .
MSTICPy laadt deze instellingen echter pas automatisch opnieuw totdat u de kernel opnieuw opstart of een ander notebook uitvoert. Als u wilt afdwingen dat MSTICPy opnieuw wordt geladen vanuit het nieuwe configuratiebestand, gaat u verder met de volgende codecel, met de volgende code en voert u deze uit:
import msticpy
msticpy.settings.refresh_config()
Uw notebook testen
Nu u uw omgeving hebt geïnitialiseerd en basisinstellingen voor uw werkruimte hebt geconfigureerd, gebruikt u de MSTICPy-klasse QueryProvider
om het notebook te testen. QueryProvider
voert een query uit op een gegevensbron, in dit geval uw Microsoft Sentinel-werkruimte en maakt de opgevraagde gegevens beschikbaar voor weergave en analyse in uw notitieblok.
Gebruik de volgende procedures om een exemplaar van de QueryProvider
klasse te maken, te verifiëren bij Microsoft Sentinel vanuit uw notebook en query's met verschillende parameteropties weer te geven en uit te voeren.
U kunt meerdere exemplaren QueryProvider
van laden voor gebruik met meerdere Microsoft Sentinel-werkruimten of andere gegevensproviders, zoals Microsoft Defender voor Eindpunt.
QueryProvider laden
Als u de QueryProvider
for AzureSentinel
wilt laden, gaat u naar de cel met de volgende code en voert u deze uit:
# Initialize a QueryProvider for Microsoft Sentinel
qry_prov = QueryProvider("AzureSentinel")
Als u een waarschuwing Runtime dependency of PyGObject is missing
ziet bij het laden van het Microsoft Sentinel-stuurprogramma, raadpleegt u de fout: Runtime-afhankelijkheid van PyGObject ontbreekt.
Deze waarschuwing heeft geen invloed op de functionaliteit van het notitieblok.
Verifiëren bij uw Microsoft Sentinel-werkruimte vanuit uw notitieblok
In Azure Machine Learning-notebooks wordt de verificatie standaard gebruikt met de referenties die u hebt gebruikt om te verifiëren bij de Azure Machine Learning-werkruimte.
Verifieer met beheerde identiteit door de volgende stappen uit te voeren.
Voer de volgende code uit om te verifiëren bij uw Sentinel-werkruimte.
# 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)
Controleer de uitvoer. De weergegeven uitvoer is vergelijkbaar met de volgende afbeelding.
Uw aanmeldingstoken in de cache opslaan met behulp van Azure CLI
Om te voorkomen dat u zich opnieuw moet verifiëren als u de kernel opnieuw opstart of een andere notebook uitvoert, kunt u uw aanmeldingstoken in de cache opslaan met behulp van Azure CLI.
Het Azure CLI-onderdeel in het rekenproces slaat een vernieuwingstoken op dat opnieuw kan worden gebruikt totdat er een time-out optreedt voor het token. MSTICPy gebruikt automatisch Azure CLI-referenties als deze beschikbaar zijn.
Als u wilt verifiëren met behulp van Azure CLI, voert u de volgende opdracht in een lege cel in en voert u deze uit:
!az login
U moet opnieuw verifiëren als u uw rekenproces opnieuw start of naar een ander exemplaar overschakelt. Zie de sectie Referenties in cache opslaan met Azure CLI in de gitHub-opslagplaatswiki van Microsoft Sentinel Notebooks voor meer informatie.
Het gegevensschema van de Microsoft Sentinel-werkruimte en ingebouwde MSTICPy-query's weergeven
Nadat u verbinding hebt gemaakt met een Microsoft Sentinel QueryProvider, kunt u de typen gegevens begrijpen die beschikbaar zijn voor query's door een query uit te voeren op het gegevensschema van de Microsoft Sentinel-werkruimte.
Microsoft Sentinel QueryProvider heeft een schema_tables
eigenschap, waarmee u een lijst met schematabellen en een schema
eigenschap krijgt, die ook de kolomnamen en gegevenstypen voor elke tabel bevat.
De eerste tien tabellen in het Microsoft Sentinel-schema weergeven:
Ga door naar de volgende cel, met de volgende code en voer deze uit. U kunt de lijst [:10]
met alle tabellen in uw werkruimte weglaten.
# 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
De volgende uitvoer wordt weergegeven:
Sample of first 10 tables in the schema
['AACAudit',
'AACHttpRequest',
'AADDomainServicesAccountLogon',
'AADDomainServicesAccountManagement',
'AADDomainServicesDirectoryServiceAccess',
'AADDomainServicesLogonLogoff',
'AADDomainServicesPolicyChange',
'AADDomainServicesPrivilegeUse',
'AADDomainServicesSystemSecurity',
'AADManagedIdentitySignInLogs']
MSTICPy bevat ook veel ingebouwde query's die u kunt uitvoeren. Vermeld beschikbare query's met .list_queries()
en krijg specifieke details over een query door deze aan te roepen met een vraagteken (?
) dat is opgenomen als parameter. U kunt ook de lijst met query's en de bijbehorende help bekijken in de querybrowser.
Een voorbeeld van beschikbare query's weergeven:
Ga door naar de volgende cel, met de volgende code en voer deze uit. U kunt de
[::5]
lijst met alle query's weglaten.# Get a sample of available queries print(qry_prov.list_queries()[::5]) # showing a sample - remove "[::5]" for whole list
Controleer de uitvoer.
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']
Als u hulp wilt krijgen over een query door te geven
?
als een parameter:# Get help about a query by passing "?" as a parameter qry_prov.Azure.list_all_signins_geo("?")
Controleer de uitvoer.
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, "Success", "Failed") | extend Latitude = tostring(parse_json(tostring(LocationDetails.geoCoordinates)).latitude) | extend Longitude = tostring(parse_json(tostring(LocationDetails.geoCoordinates)).longitude)
Als u zowel tabellen als query's in een schuifbare, filterbare lijst wilt weergeven, gaat u verder met de volgende cel, met de volgende code en voert u deze uit.
qry_prov.browse_queries()
Voor de geselecteerde query worden alle vereiste en optionele parameters weergegeven, samen met de volledige tekst van de query. Voorbeeld:
Hoewel u geen query's vanuit de browser kunt uitvoeren, kunt u het voorbeeld aan het einde van elke query kopiëren en plakken om ergens anders in het notebook uit te voeren.
Zie Een vooraf gedefinieerde query uitvoeren in de MSTICPy-documentatie voor meer informatie.
Query's uitvoeren met tijdparameters
Voor de meeste query's zijn tijdparameters vereist. Datum-/tijdtekenreeksen zijn vervelend om in te typen en ze op meerdere plaatsen te wijzigen, kunnen foutgevoelig zijn.
Elke queryprovider heeft standaard parameters voor begin- en eindtijd voor query's. Deze tijdparameters worden standaard gebruikt wanneer tijdparameters worden aangeroepen. U kunt het standaardtijdbereik wijzigen door het query_time
besturingselement te openen. De wijzigingen blijven van kracht totdat u ze opnieuw wijzigt.
Ga door naar de volgende cel, met de volgende code en voer deze uit:
# Open the query time control for your query provider qry_prov.query_time
Stel de
start
enend
tijden in waar nodig. Voorbeeld:
Een query uitvoeren met behulp van het ingebouwde tijdsbereik
Queryresultaten worden geretourneerd als een Pandas DataFrame, een gegevensstructuur in tabelvorm, zoals een spreadsheet of databasetabel. Gebruik pandas-functies om extra filters en analyses uit te voeren op de queryresultaten.
Voer de volgende codecel uit. Er wordt een query uitgevoerd met behulp van de standaardtijdinstellingen van de queryprovider. U kunt dit bereik wijzigen en de codecel opnieuw uitvoeren om een query uit te voeren voor het nieuwe tijdsbereik.
# The time parameters are taken from the qry_prov time settings # but you can override this by supplying explicit "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()
Controleer de uitvoer. De eerste vijf rijen met resultaten worden weergegeven. Voorbeeld:
Als er geen gegevens zijn, worden alleen de kolomkoppen weergegeven.
Een query uitvoeren met een aangepast tijdsbereik
U kunt ook een nieuw querytijdobject maken en doorgeven aan een query als parameter. Hiermee kunt u een eenmalige query uitvoeren voor een ander tijdsbereik, zonder dat dit van invloed is op de standaardinstellingen van de queryprovider.
# Create and display a QueryTime control.
time_range = nbwidgets.QueryTime()
time_range
Nadat u het gewenste tijdsbereik hebt ingesteld, kunt u het tijdsbereik doorgeven aan de queryfunctie, waarbij u de volgende code uitvoert in een afzonderlijke cel van de vorige code:
signins_df = qry_prov.Azure.list_all_signins_geo(time_range)
signins_df.head()
U kunt ook datum/tijd-waarden doorgeven als Python-datum/tijd-tekenreeksen met behulp van de start
en end
parameters:
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)
Uw query's aanpassen
U kunt de ingebouwde query's aanpassen door meer querylogica toe te voegen of volledige query's uit te voeren met behulp van de exec_query
functie.
De meeste ingebouwde query's ondersteunen bijvoorbeeld de add_query_items
parameter, die u kunt gebruiken om filters of andere bewerkingen toe te voegen aan de query's.
Voer de volgende codecel uit om een gegevensframe toe te voegen dat het aantal waarschuwingen op waarschuwingsnaam samenvat:
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" )
Geef een volledige Kusto-querytaal (KQL)-querytekenreeks door aan de queryprovider. De query wordt uitgevoerd op de verbonden werkruimte en de gegevens worden geretourneerd als een Panda DataFrame. Run:
# 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())
Zie voor meer informatie:
VirusTotal testen
Als u bedreigingsinformatie wilt gebruiken om te zien of een IP-adres wordt weergegeven in VirusTotal-gegevens, voert u de cel uit met de volgende code:
# 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")
Controleer de uitvoer. Voorbeeld:
Schuif omlaag om de volledige resultaten weer te geven.
Zie Threat Intel Lookups in MSTICPy voor meer informatie.
Ip-zoekactie voor geolocatie testen
Als u geolocatiegegevens voor een IP-adres wilt ophalen met behulp van de MaxMind-service, voert u de cel uit met de volgende code:
# 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])
Controleer de uitvoer. Voorbeeld:
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()}
De eerste keer dat u deze code uitvoert, ziet u dat het GeoLite-stuurprogramma de database downloadt.
Zie MSTICPy GeoIP-providers voor meer informatie.
Key Vault-instellingen configureren
Deze sectie is alleen relevant wanneer u geheimen opslaat in Azure Key Vault.
Wanneer u geheimen opslaat in Azure Key Vault, moet u de Key Vault eerst maken in de globale Azure KeyVault-beheerportal.
Vereiste instellingen zijn alle waarden die u ophaalt uit de kluiseigenschappen, hoewel sommige mogelijk andere namen hebben. Voorbeeld:
- VaultName wordt linksboven in het scherm Eigenschappen van Azure Key Vault weergegeven
- TenantId wordt weergegeven als map-id
- AzureRegion wordt weergegeven als Locatie
- Autoriteit is de cloud voor uw Azure-service.
Alleen VaultName-, TenantId- en Authority-waarden zijn vereist voor het ophalen van geheimen uit de kluis. De andere waarden zijn nodig als u ervoor kiest om een kluis te maken op basis van MSTICPy. Zie Geheimen opgeven als Key Vault-geheimen voor meer informatie.
De optie KeyRing gebruiken is standaard geselecteerd en hiermee kunt u Key Vault-referenties opslaan in een lokale sleutelring. Zie de KeyRing-documentatie voor meer informatie.
Let op
Gebruik de optie Sleutelring gebruiken niet als u de host Compute waarop het notebook wordt uitgevoerd niet volledig vertrouwt.
In ons geval is de berekening de Jupyter-hubserver, waarop de notebook-kernel wordt uitgevoerd, en niet noodzakelijkerwijs de computer waarop uw browser wordt uitgevoerd. Als u Azure ML gebruikt, is de rekenkracht het Azure ML Compute-exemplaar dat u hebt geselecteerd. Met sleutelhanger wordt cache op de host uitgevoerd waarop de notebook-kernel wordt uitgevoerd.
Voer de volgende stappen uit om Key Vault-instellingen toe te voegen in de MSTICPy-instellingeneditor.
Ga door naar de volgende cel, met de volgende code en voer deze uit:
mpedit.set_tab("Key Vault") mpedit
Voer de kluisgegevens voor uw Sleutelkluis in. Voorbeeld:
Selecteer Opslaan en vervolgens Instellingen opslaan.
Key Vault testen
Als u uw sleutelkluis wilt testen, controleert u of u verbinding kunt maken en uw geheimen kunt bekijken. Als u geen geheim hebt toegevoegd, ziet u geen details. Als dat nodig is, voegt u een testgeheim vanuit de Azure Key Vault-portal toe aan de kluis en controleert u of dit wordt weergegeven in Microsoft Sentinel.
Voorbeeld:
mpconfig = MpConfigFile()
mpconfig.refresh_mp_config()
mpconfig.show_kv_secrets()
Let op
Laat de uitvoer niet weergegeven in uw opgeslagen notitieblok. Als de uitvoer echte geheimen bevat, gebruikt u de uitvoeropdracht Wissen van het notitieblok voordat u het notitieblok opslaat.
Verwijder ook kopieën in de cache van het notebook. Zoek bijvoorbeeld in de .ipynb_checkpoints submap van uw notitieblokmap en verwijder eventuele kopieën van dit notitieblok. Als u het notitieblok opslaat met een uitgeschakelde uitvoer, moet de kopie van het controlepunt worden overschreven.
Nadat u Key Vault hebt geconfigureerd, kunt u de knop Uploaden naar KV in de secties Gegevensproviders en TI-providers gebruiken om de geselecteerde instelling naar de kluis te verplaatsen. MSTICPy genereert een standaardnaam voor het geheim op basis van het pad van de instelling, zoals TIProviders-VirusTotal-Args-AuthKey
.
Als de waarde is geüpload, wordt de inhoud van het veld Waarde in de instellingeneditor verwijderd en wordt de onderliggende instelling vervangen door een tijdelijke aanduidingswaarde. MSTICPy gebruikt deze waarde om aan te geven dat het sleutelkluispad automatisch moet worden gegenereerd bij het ophalen van de sleutel.
Als u de vereiste geheimen al in een sleutelkluis hebt opgeslagen, kunt u de geheime naam invoeren in het veld Waarde . Als het geheim niet is opgeslagen in uw standaardkluis (de waarden die zijn opgegeven in de sectie Key Vault ), kunt u een pad van VaultName/SecretName opgeven.
Het ophalen van instellingen uit een kluis in een andere tenant wordt momenteel niet ondersteund. Zie Geheimen opgeven als Key Vault-geheimen voor meer informatie.
De Azure-cloud- en Azure-verificatiemethoden opgeven
Als u een onafhankelijke of overheidscloud van Azure gebruikt in plaats van de openbare of globale Azure-cloud, moet u de juiste cloud selecteren in uw instellingen. Voor de meeste organisaties is de globale cloud de standaardcloud.
U kunt deze Azure-instellingen ook gebruiken om standaardvoorkeuren voor het Azure-verificatietype te definiëren.
Voer de volgende stappen uit om azure-cloud- en Azure-verificatiemethoden op te geven.
Ga door naar de volgende cel, met de volgende code en voer deze uit:
mpedit.set_tab("Azure") mpedit
Selecteer de cloud die door uw organisatie wordt gebruikt of laat de standaard geselecteerde globale optie staan.
Selecteer een of meer van de volgende methoden:
- env om uw Azure-referenties op te slaan in omgevingsvariabelen.
- msi voor het gebruik van Managed Service Identity, een identiteit die is toegewezen aan de host of virtuele machine waarop de Jupyter-hub wordt uitgevoerd. MSI wordt momenteel niet ondersteund in Azure Machine Learning Compute-exemplaren.
- cli om referenties te gebruiken vanuit een geverifieerde Azure CLI-sessie.
- interactief om de interactieve apparaatautorisatiestroom te gebruiken met behulp van een eenmalige apparaatcode.
In de meeste gevallen wordt u aangeraden meerdere methoden te selecteren, zoals cli en interactief. Azure-verificatie probeert elk van de geconfigureerde methoden in de vermelde volgorde totdat één methode slaagt.
Selecteer Opslaan en vervolgens Instellingen opslaan.
Voorbeeld:
Volgende stappen
In dit artikel worden de basisprincipes beschreven van het gebruik van MSTICPy met Jupyter-notebooks in Microsoft Sentinel. Zie Geavanceerde configuraties voor Jupyter-notebooks en MSTICPy in Microsoft Sentinel voor meer informatie.
U kunt ook andere notebooks uitproberen die zijn opgeslagen in de GitHub-opslagplaats van Microsoft Sentinel Notebooks, zoals:
- Rondleiding door de Cybersec-functies
- Voorbeelden van Machine Learning
- De Entity Explorer-reeks notebooks, waarmee gedetailleerde details over een host, account, IP-adres en andere entiteiten kunnen worden ingezoomd.
Als u het notebook gebruikt dat in dit artikel in een andere Jupyter-omgeving wordt beschreven, kunt u elke kernel gebruiken die Ondersteuning biedt voor Python 3.6 of hoger.
Als u MSTICPy-notebooks buiten Microsoft Sentinel en Azure Machine Learning (ML) wilt gebruiken, moet u ook uw Python-omgeving configureren. Installeer Python 3.6 of hoger met de Anaconda-distributie, die veel van de vereiste pakketten bevat.
Meer informatie over MSTICPy en notebooks
De volgende tabel bevat meer verwijzingen voor meer informatie over MSTICPy-, Microsoft Sentinel- en Jupyter-notebooks.
Onderwerp | Meer verwijzingen |
---|---|
MSTICPy | - CONFIGURATIE VAN MSTICPy-pakket - MSTICPy Settings Editor - Uw notebookomgeving configureren. - MPSettingsEditor-notebook. Opmerking: De Azure-Sentinel-Notebooks GitHub-opslagplaats bevat ook een sjabloon msticpyconfig.yaml-bestand met uitgecommentareerde secties, wat u kan helpen de instellingen te begrijpen. |
Microsoft Sentinel- en Jupyter-notebooks | - Uw eerste Microsoft Sentinel-notitieblok maken (blogreeks) - Jupyter Notebooks: Een inleiding - MSTICPy-documentatie - Documentatie voor Microsoft Sentinel Notebooks - Het Infosec Jupyterbook - Overzicht van Linux Host Explorer Notebook - Waarom Jupyter gebruiken voor beveiligingsonderzoeken - Beveiligingsonderzoeken met Microsoft Sentinel & Notebooks - Documentatie voor Pandas - Documentatie voor Sdk |