Jupyter-notebooks gebruiken om beveiligingsrisico's op te zoeken

Notitie

Azure Sentinel heet nu Microsoft Sentinel en we zullen deze pagina's in de komende weken bijwerken. Meer informatie over recente beveiligingsverbeteringen van Microsoft.

Notitie

Zie de Microsoft Sentinel-tabellen in Cloud-functiebeschikbaarheid voor Amerikaanse overheidsklanten voor meer informatie over de beschikbaarheid van functies in clouds voor de Amerikaanse overheid.

De basis van Microsoft Sentinel is het gegevensopslag; Het combineert query's met hoge prestaties, een dynamisch schema en schaalt naar grote gegevensvolumes. De Azure Portal en alle Microsoft Sentinel-hulpprogramma's gebruiken een algemene API voor toegang tot dit gegevensopslag.

Dezelfde API is ook beschikbaar voor externe hulpprogramma's zoals Jupyter Notebooks en Python. Hoewel veel algemene taken kunnen worden uitgevoerd in de portal, breidt Jupyter het bereik uit van wat u met deze gegevens kunt doen. Het combineert volledige programmeerbaarheid met een enorme verzameling bibliotheken voor machine learning, visualisatie en gegevensanalyse. Deze kenmerken maken Van Jupyter een aantrekkelijk hulpprogramma voor beveiligingsonderzoek en opsporing.

Gebruik bijvoorbeeld notebooks voor het volgende:

  • Analyses uitvoeren die niet out-of-the-box worden geleverd in Microsoft Sentinel, zoals sommige Python-machine learning functies
  • Gegevensvisualisaties maken die niet out-of-the-box zijn opgegeven in Microsoft Sentinel, zoals aangepaste tijdlijnen en proces trees
  • Integreer gegevensbronnen buiten Microsoft Sentinel, zoals een on-premises gegevensset.

We hebben de Jupyter-ervaring geïntegreerd in de Azure Portal, waardoor u eenvoudig notebooks kunt maken en uitvoeren om uw gegevens te analyseren. De Kqlmagic-bibliotheek biedt de lijm waarmee u KQL-query's van Microsoft Sentinel kunt uitvoeren en deze rechtstreeks in een notebook kunt uitvoeren.

Verschillende notebooks, ontwikkeld door enkele beveiligingsanalisten van Microsoft, worden verpakt met Microsoft Sentinel:

  • Sommige van deze notebooks zijn gebouwd voor een specifiek scenario en kunnen als het goed is worden gebruikt.
  • Andere zijn bedoeld als voorbeelden ter illustratie van technieken en functies die u kunt kopiëren of aanpassen voor gebruik in uw eigen notebooks.

Ook andere notebooks kunnen worden geïmporteerd uit de Microsoft Sentinel-GitHub opslagplaats.

Notebook-onderdelen

Notebooks hebben twee onderdelen:

  • De browserinterface, waar u query's en code kunt invoeren en uitvoeren, en waar de resultaten van de uitvoering worden weergegeven.
  • Een kernel die verantwoordelijk is voor het parseren en uitvoeren van de code zelf.

De kernel van het Microsoft Sentinel-notebook wordt uitgevoerd op een virtuele Azure-machine (VM). Er bestaan verschillende licentieopties om krachtigere virtuele machines te gebruiken als uw notebooks complexe machine learning bevatten.

De Microsoft Sentinel-notebooks maken gebruik van veel populaire Python-bibliotheken, zoals pandas, matplotlib, bokeh en andere. Er zijn veel andere Python-pakketten waar u uit kunt kiezen, die betrekking hebben op gebieden zoals:

  • Visualisaties en afbeeldingen
  • Gegevensverwerking en -analyse
  • Statistieken en numerieke computing
  • Machine learning en deep learning

Om te voorkomen dat complexe en terugkerende code in notebookcellen moet worden getypt of gekopieerd, zijn de meeste Python-notebooks afhankelijk van bibliotheken van derden die pakketten worden genoemd. Als u een pakket in een notebook wilt gebruiken, moet u het pakket installeren en importeren. In Azure ML Compute zijn de meest voorkomende pakketten vooraf geïnstalleerd. Zorg ervoor dat u het pakket of het relevante deel van het pakket importeert, zoals een module, bestand, functie of klasse.

Microsoft Sentinel-notebooks gebruiken een Python-pakket met de naam MSTICPy.Dit is een verzameling cyberbeveiligingshulpprogramma's voor het ophalen, analyseren, verrijken en visualiseren van gegevens.

MSTICPy-hulpprogramma's zijn speciaal ontworpen om te helpen bij het maken van notebooks voor opsporing en onderzoek. We werken actief aan nieuwe functies en verbeteringen. Zie voor meer informatie:

De Microsoft Sentinel GitHub-opslagplaats is de locatie voor toekomstige Microsoft Sentinel-notebooks die zijn gebouwd door Microsoft of die zijn bijgedragen vanuit de community.

Toegang tot Microsoft Sentinel-notebooks beheren

Als u Jupyter-notebooks in Microsoft Sentinel wilt gebruiken, moet u eerst de juiste machtigingen hebben, afhankelijk van uw gebruikersrol.

Hoewel u Microsoft Sentinel-notebooks kunt uitvoeren in JupyterLab of de klassieke Jupyter-versie, worden notebooks in Microsoft Sentinel uitgevoerd op een Azure Machine Learning-platform (Azure ML). Als u notebooks wilt uitvoeren in Microsoft Sentinel, moet u de juiste toegang hebben tot zowel een Microsoft Sentinel-werkruimte als een Azure ML werkruimte.

Machtiging Beschrijving
Machtigingen voor Microsoft Sentinel Net als bij andere Microsoft Sentinel-resources is de rol Microsoft Sentinel-lezer, Microsoft Sentinel Responder of Microsoft Sentinel-inzender vereist voor toegang tot notebooks op de blade Microsoft Sentinel Notebooks.

Zie Machtigingen in Microsoft Sentinel voor meer informatie.
Azure Machine Learning machtigingen Een Azure Machine Learning-werkruimte is een Azure-resource. Net als bij andere Azure-resources wordt Azure Machine Learning nieuwe werkruimte met standaardrollen geleverd. U kunt gebruikers toevoegen aan de werkruimte en deze toewijzen aan een van deze ingebouwde rollen. Zie standaardrollen en ingebouwde Azure Azure Machine Learning rollen voor meer informatie.

Belangrijk: toegang tot rollen kan worden beperkt tot meerdere niveaus in Azure. Iemand met eigenaarstoegang tot een werkruimte heeft bijvoorbeeld mogelijk geen eigenaarstoegang tot de resourcegroep die de werkruimte bevat. Zie Hoe Azure RBACwerkt voor meer informatie.

Als u eigenaar bent van een Azure ML-werkruimte, kunt u rollen voor de werkruimte toevoegen en verwijderen en rollen toewijzen aan gebruikers. Zie voor meer informatie:
- Azure Portal
- Powershell
- Azure CLI
- REST API
- Azure Resource Manager sjablonen
- Azure Machine Learning CLI

Als de ingebouwde rollen onvoldoende zijn, kunt u ook aangepaste rollen maken. Aangepaste rollen hebben mogelijk lees-, schrijf-, verwijder- en rekenresourcemachtigingen in die werkruimte. U kunt de rol beschikbaar maken op een specifiek werkruimteniveau, een specifiek niveau van de resourcegroep of een specifiek abonnementsniveau. Zie Aangepaste rol maken voor meer informatie.

Een Azure ML maken vanuit Microsoft Sentinel

In deze procedure wordt beschreven hoe u een Azure ML maakt vanuit Microsoft Sentinel voor uw Microsoft Sentinel-notebooks.

Uw werkruimte maken:

Selecteer een van de volgende tabbladen, afhankelijk van of u een openbaar of privé-eindpunt gebruikt.

  • We raden u aan een openbaar eindpunt te gebruiken als uw Microsoft Sentinel-werkruimte er een heeft, om potentiële problemen in de netwerkcommunicatie te voorkomen.
  • Als u een Azure ML in een virtueel netwerk wilt gebruiken, gebruikt u een privé-eindpunt.
  1. Ga in Azure Portal naar Microsoft Sentinel > Threat Management Notebooks en selecteer vervolgens > Een nieuwe werkruimte AML maken.

  2. Voer de volgende gegevens in en selecteer Volgende.

    Veld Beschrijving
    Abonnement Selecteer het Azure-abonnement dat u wilt gebruiken.
    Resourcegroep Gebruik een bestaande resourcegroep in uw abonnement of voer een naam in om een nieuwe resourcegroep te maken. Een resourcegroep bevat gerelateerde resources voor een Azure-oplossing.
    Werkruimtenaam Voer een unieke naam in die uw werkruimte aanduidt. Namen moeten uniek zijn binnen de resourcegroep. Gebruik een naam die gemakkelijk te onthouden is en te onderscheiden is van door anderen gemaakte werkruimten.
    Regio Selecteer de locatie die zich het dichtst bij uw gebruikers en de gegevensresources bevindt om uw werkruimte te maken.
    Opslagaccount Een opslagaccount wordt gebruikt als het standaardgegevensopslag voor de werkruimte. U kunt een nieuwe resource Azure Storage of een bestaande resource selecteren in uw abonnement.
    KeyVault Een sleutelkluis wordt gebruikt voor het opslaan van geheimen en andere gevoelige informatie die nodig is voor de werkruimte. U kunt een nieuwe resource Azure Key Vault of een bestaande resource selecteren in uw abonnement.
    Application Insights De werkruimte gebruikt Azure-toepassing Insights voor het opslaan van bewakingsinformatie over uw geïmplementeerde modellen. U kunt een nieuwe resource Azure-toepassing Insights maken of een bestaande resource selecteren in uw abonnement.
    Containerregister Een containerregister wordt gebruikt voor het registreren van Docker-installatie images die worden gebruikt in trainings- en implementaties. Om de kosten te minimaliseren, wordt er Azure Container Registry nieuwe resource gemaakt nadat u uw eerste afbeelding hebt gemaakt. U kunt er ook voor kiezen om de resource nu te maken of een bestaande resource in uw abonnement te selecteren, of Geen selecteren als u geen containerregister wilt gebruiken.
  3. Selecteer op het tabblad Netwerken de optie Openbaar eindpunt (alle netwerken).

    Definieer relevante instellingen op de tabbladen Geavanceerd of Tags en selecteer beoordelen en maken.

  4. Controleer op het tabblad Beoordelen en maken de informatie om te controleren of deze juist is en selecteer vervolgens Maken om te beginnen met het implementeren van uw werkruimte. Bijvoorbeeld:

    Controleer en maak uw Machine Learning werkruimte vanuit Microsoft Sentinel.

    Het kan enkele minuten duren om uw werkruimte in de cloud te maken. Gedurende deze tijd wordt op de pagina Overzicht van de werkruimte de huidige implementatiestatus weergegeven en wordt bijgewerkt wanneer de implementatie is voltooid.

Nadat de implementatie is voltooid, kunt u teruggaan naar de Microsoft Sentinel Notebooks en notebooks starten vanuit uw nieuwe Azure ML werkruimte.

Als u meerdere notebooks hebt, moet u ervoor zorgen dat u een standaardwerkruimte AML gebruiken bij het starten van uw notebooks. Bijvoorbeeld:

Selecteer een standaardwerkruimte AML voor uw notebooks.

Een notebook starten in uw Azure ML-werkruimte

Nadat u een werkruimte hebt AML, start u uw notebooks vanuit Microsoft Sentinel in uw Azure ML-werkruimte.

Notitie

U kunt een notebook weergeven als een statisch document, zoals in de GitHub ingebouwde renderer voor statische notebooks. Als u echter code wilt uitvoeren in een notebook, moet u het notebook koppelen aan een back-endproces dat een Jupyter-kernel wordt genoemd. De kernel voert de code uit en bevat alle variabelen en objecten die door de code worden gemaakt. De browser is de viewer voor deze gegevens.

In Azure ML wordt de kernel uitgevoerd op een virtuele machine met de naam Azure ML Compute. De reken-instantie kan ondersteuning bieden voor het uitvoeren van veel notebooks tegelijk.

Uw notebook starten vanuit Microsoft Sentinel:

  1. Ga vanuit Azure Portal naar Microsoft Sentinel > Threat Management > Notebooks, waar u notebooks kunt zien die Microsoft Sentinel biedt.

    Tip

    Selecteer boven aan de pagina Notebooks de optie Handleidingen & Feedback om meer resources en richtlijnen weer te geven in een deelvenster aan de rechterkant.

  2. Selecteer een notebook om de beschrijving, vereiste gegevenstypen en gegevensbronnen weer te geven.

    Wanneer u het notebook hebt gevonden dat u wilt gebruiken, selecteert u Notebook opslaan om het te klonen in uw eigen werkruimte.

    Bewerk de naam naar behoefte. Als het notebook al in uw werkruimte bestaat, kunt u het bestaande notebook overschrijven of een nieuw notebook maken.

    Sla een notebook op om het te klonen naar uw eigen werkruimte.

  3. Nadat het notebook is opgeslagen, verandert de knop Notebook opslaan in Notebook starten. Selecteer Notebook starten om het te openen in AML werkruimte.

    Bijvoorbeeld:

    Start uw notebook in uw AML werkruimte.

  4. Selecteer boven aan de pagina een rekenin exemplaar dat u wilt gebruiken voor uw notebookserver.

    Als u geen reken-exemplaar hebt, maakt u een nieuwe. Als uw reken-exemplaar is gestopt, moet u deze starten. Zie Een notebook uitvoeren in de Azure Machine Learning studio voor meer informatie.

    Alleen u kunt de reken-exemplaren die u maakt zien en gebruiken. Uw gebruikersbestanden worden afzonderlijk van de VM opgeslagen en gedeeld tussen alle reken-exemplaren in de werkruimte.

    Tip

    Als u een nieuw reken-exemplaar maakt om uw notebooks te testen, maakt u uw reken-exemplaar met de Algemeen categorie.

    De kernel wordt ook rechtsboven in het venster van uw Azure ML weergegeven. Als de kernel die u nodig hebt niet is geselecteerd, selecteert u een andere versie in de vervolgkeuzelijst.

  5. Zodra de notebookserver is gemaakt en gestart, kunt u beginnen met het uitvoeren van uw notebookcellen. Selecteer in elke cel het pictogram Uitvoeren om uw notebookcode uit te voeren.

    Zie snelkoppelingen in de opdrachtmodus voor meer informatie.

  6. Als uw notebook vastgelopen is of als u opnieuw wilt beginnen, kunt u de kernel opnieuw opstarten en de notebookcellen opnieuw uitvoeren vanaf het begin. Selecteer Kernelbewerkingen > Kernel opnieuw opstarten kernel. Bijvoorbeeld:

    Start een notebookkernel opnieuw op.

    Belangrijk

    Als u de kernel opnieuw opstart, worden alle variabelen en andere status gewist. U moet alle initialisatie- en verificatiecellen opnieuw starten na het opnieuw opstarten.

Code uitvoeren in uw notebook

In een notebook:

  • Markdown-cellen bevatten tekst, inclusief HTML en statische afbeeldingen.
  • Codecellen bevatten code. Nadat u een codecel hebt geselecteerd, voert u de code in de cel uit door het pictogram Afspelen links van de cel te selecteren of door op Shift+ENTER te drukken.

Belangrijk

Voer notebookcodecellen altijd opeenvolgend uit. Het overslaan van cellen kan leiden tot fouten.

Voer bijvoorbeeld de volgende codecel uit in uw notebook:

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

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

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

y = 2 + 2

print("2 + 2 =", y)

De bovenstaande voorbeeldcode produceert deze uitvoer:

Congratulations, you just ran this code cell

2 + 2 = 4

Variabelen die zijn ingesteld in een notebookcodecel blijven bestaan tussen cellen, zodat u cellen aan elkaar kunt ketenen. De volgende codecel gebruikt bijvoorbeeld de waarde van y uit de vorige cel:

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

y + 2

Dit is de uitvoer:

6

Alle Microsoft Sentinel-notebooks downloaden

In deze sectie wordt beschreven hoe u Git gebruikt om alle notebooks te downloaden die beschikbaar zijn in de Microsoft Sentinel GitHub-opslagplaats,vanuit een Microsoft Sentinel-notebook, rechtstreeks naar uw Azure ML-werkruimte.

Door Microsoft Sentinel-notebooks op te slaan in uw Azure ML werkruimte kunt u ze eenvoudig bijgewerkt houden.

  1. Voer vanuit een Microsoft Sentinel-notebook de volgende code in een lege cel in en voer de cel uit:

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

    Er wordt een kopie GitHub de inhoud van de opslagplaats gemaakt in de map azure-Sentinel-nb in uw gebruikersmap in uw Azure ML-werkruimte.

  2. Kopieer de notebooks die u wilt van deze map naar uw werkmap.

  3. Als u uw notebooks wilt bijwerken met recente wijzigingen GitHub, voer dan het volgende uit:

    !cd azure-sentinel-nb && git pull
    

Problemen oplossen

Normaal gesproken maakt of koppelt een notebook naadloos aan een kernel en hoeft u geen handmatige wijzigingen aan te brengen. Als er fouten optreden of als het notebook niet lijkt te worden uitgevoerd, moet u mogelijk de versie en status van de kernel controleren.

Als u problemen met uw notebooks hebt, bekijkt u de Azure Machine Learning notebook troubleshooting (Problemen oplossen met notebooks).

Geforceer caching voor gebruikersaccounts en referenties tussen notebook-runs

Standaard worden gebruikersaccounts en referenties niet in de cache opgeslagen tussen notebook-runs, zelfs niet voor dezelfde sessie.

Om caching af te dwingen voor de duur van uw sessie:

  1. Verifiëren met behulp van Azure CLI. Voer in een lege notebookcel de volgende code in en voer deze uit:

    !az login
    

    De volgende uitvoer wordt weergegeven:

    To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the 9-digit device code to authenticate.
    
  2. Selecteer en kopieer het token van negen tekens uit de uitvoer en selecteer de devicelogin URL om naar de aangegeven pagina te gaan.

  3. Plak het token in het dialoogvenster en ga door met aanmelden wanneer u hier om wordt gevraagd.

    Wanneer het aanmelden is voltooid, ziet u de volgende uitvoer:

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

Notitie

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

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

Error: Runtime dependency of PyGObject is missing

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

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

    qry_prov = QueryProvider("AzureSentinel")
    

    Er wordt een waarschuwing weergegeven die vergelijkbaar is met het volgende bericht, waarin een ontbrekende Python-afhankelijkheid () wordt pygobject aangegeven:

    Runtime dependency of PyGObject is missing.
    
    Depends on your Linux distribution, you can install it by running code similar to the following:
    sudo apt install python3-gi python3-gi-cairo gir1.2-secret-1
    
    If necessary, see PyGObject's documentation: https://pygobject.readthedocs.io/en/latest/getting_started.html
    
    Traceback (most recent call last):
      File "/anaconda/envs/azureml_py36/lib/python3.6/site-packages/msal_extensions/libsecret.py", line 21, in <module>
    import gi  # https://github.com/AzureAD/microsoft-authentication-extensions-for-python/wiki/Encryption-on-Linux
    ModuleNotFoundError: No module named 'gi'
    
  2. Gebruik het aml-compute-setup.sh-script, dat zich in de GitHub-opslagplaats microsoft Sentinel Notebooks bevindt, om de automatisch te installeren in alle notebooks en Anaconda-omgevingen op het pygobject reken-exemplaar.

Tip

U kunt deze waarschuwing ook oplossen door de volgende code uit te voeren vanuit een notebook:

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

Volgende stappen

Integreer uw notebookervaring met big data analyses in Azure Synapse. Zie Notebooks integreren met Azure Synapse (openbare preview) voor meer informatie.

Andere notebooks die worden gedeeld in de Microsoft Sentinel GitHub-opslagplaats zijn bedoeld als nuttige hulpprogramma's, illustraties en codevoorbeelden die u kunt gebruiken bij het ontwikkelen van uw eigen notebooks.

We zijn blij met feedback, suggesties, aanvragen voor functies, bijgedragen notebooks, foutrapporten of verbeteringen en toevoegingen aan bestaande notebooks. Ga naar de Microsoft Sentinel GitHub opslagplaats om een probleem te maken of een fork te maken en een bijdrage te uploaden.

  • Meer informatie over het gebruik van notebooks voor opsporing en onderzoek van bedreigingen kunt u vinden in een aantal notebooksjablonen, zoals Referentiescan in Azure Log Analytics en Begeleid onderzoek - Proceswaarschuwingen.

    Meer notebooksjablonen vindt u op het tabblad Microsoft Sentinel > Notebooks > Templates.

  • Meer notebooks vindt u in de Opslagplaats GitHub Microsoft Sentinel:

    • De Sample-Notebooks map bevat voorbeeldnote notebooks die worden opgeslagen met gegevens die u kunt gebruiken om de beoogde uitvoer weer te geven.

    • De map bevat notebooks waarin concepten worden beschreven, zoals het instellen van uw standaardversie van Python, het maken van HowTos Microsoft Sentinel-bladwijzers vanuit een notebook en meer.

Zie voor meer informatie: