Een query op gegevens uitvoeren met behulp van Kusto Query Language

Voltooid

U kunt de Kusto-querytaal (KQL) in Microsoft Sentinel gebruiken om verzamelde gegevens te zoeken en te filteren.

Kusto-querytaal

KQL biedt u de mogelijkheid om interactieve analyses te maken, op te slaan en uit te voeren op verzamelde gegevens. Microsoft Sentinel gebruikt KQL om de belangrijke gegevens te visualiseren en te analyseren. U kunt KQL gebruiken om complexe analytische query's te maken met bijvoorbeeld de volgende operators:

  • Berekende kolommen
  • Functies samenvoegen
  • Groeperen op verzamelde gegevens

Eenvoudige query's schrijven en uitvoeren

Een query is een alleen-lezenaanvraag waardoor gegevens worden verwerkt en de resultaten van deze verwerking worden geretourneerd zonder de gegevens of metagegevens aan te passen. Net zoals bij SQL query's gebruiken KQL-query's schema-entiteiten die in een bepaalde hiërarchie zijn georganiseerd, zoals databases, tabellen en kolommen. Een schema is een verzameling tabellen die onder logische categorieën zijn gegroepeerd. De query's bestaan uit reeksen queryinstructies die worden gescheiden door een puntkomma (;).

Wanneer u een query opbouwt, begint u met ofwel een tabelnaam of een zoekopdracht. Met de volgende query worden bijvoorbeeld alle records uit de Event tabel opgehaald:

Event

U kunt het sluisteken (|) gebruiken om opdrachten te scheiden. De uitvoer van de eerste opdracht wordt de invoer van de volgende opdracht. Aan één query kunt u een willekeurig aantal opdrachten toevoegen. Met de volgende query worden de records uit de Event tabel opgehaald en vervolgens gezocht naar de term error in een eigenschap:

Event

| search error

U kunt de query opbouwen met tabellaire en scalaire operators die door KQL in meerdere tabellaire expressie-instructies worden gecombineerd. Deze combinaties produceren de resultaten van de query.

source1 | operator1 | operator2

In het volgende voorbeeld is AzureActivityde bron . De eerste operator is where, waarmee records worden gefilterd op basis van de logische expressie. De tweede operator is opnieuw where:

AzureActivity

| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'

In Log Analytics worden query's standaard beperkt tot een tijdsbereik van de afgelopen 24 uur. Als u een ander tijdsbereik wilt instellen, kunt u een expliciet TimeGenerated filter toevoegen aan de query of het Time range besturingselement gebruiken. Met de volgende query worden bijvoorbeeld gegevens van het afgelopen uur geretourneerd:


AzureActivity

| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'
| where TimeGenerated > ago (1h)

U kunt uw query's combineren met enkele van de meestgebruikte operators:

  • count. Hiermee wordt het aantal rijen in de tabel geretourneerd.
  • take. Hiermee wordt maximaal het aantal opgegeven rijen van gegevens geretourneerd.
  • project. Hiermee wordt een subset van kolommen geselecteerd.
  • sort. Hiermee worden de rijen van de invoertabel op volgorde van een of meer kolommen gesorteerd.
  • top. Hiermee worden de eerste N records geretourneerd, gesorteerd op de opgegeven kolommen.
  • extend. Hiermee worden afgeleide kolommen berekend.
  • summarize. Hiermee worden groepen rijen verzameld.
  • render. Hiermee worden resultaten als een grafische uitvoer weergegeven.

Als u de records uit twee bronnen (tabellen) wilt combineren, kunt u de join operator gebruiken. De union operator combineert twee of meer tabellen in één tabel.

Voor meer informatie raadpleegt u de zelfstudie van Microsoft over logboekanalyse, waarin functies van Log Analytics worden gebruikt voor het opbouwen en uitvoeren van een query, in plaats van dat u met de query zelf aan de slag gaat.

U kunt ook de zelfstudie over Azure Data Explorer gebruiken voor meer informatie over KQL.

Notitie

Microsoft Sentinel Log Analytics biedt geen ondersteuning voor alle KQL-syntaxis die wordt gebruikt in Azure Data Explorer.

Microsoft Sentinel-opslagplaats op GitHub

U kunt ook de Microsoft Sentinel-opslagplaats op GitHub gebruiken om te zoeken naar gespecialiseerde query's en werkmappen om uw omgeving te beveiligen en bedreigingen op te sporen. In de volgende query uit de GitHub-opslagplaats van Microsoft Sentinel wordt bijvoorbeeld verdachte overdracht van machtigingen voor gebruikersaccounts weergegeven.

let timeframe = 7d;
AzureActivity
| where TimeGenerated >= ago(timeframe)
| where OperationName == "Create role assignment"
| where ActivityStatus == "Succeeded"
| project Caller, CallerIpAddress
| evaluate basket()
| extend AccountCustomEntity = Caller, IPCustomEntity = CallerIpAddress

De query analyseert het IP-adres waarvandaan de beheerder andere gebruikers toegang tot Azure-resources verleent. Als een bewerking niet afkomstig is van een geldig IP-adres, signaleert de query verdachte activiteit, die u verder kunt onderzoeken.

Als u een aantal voorbeelden wilt proberen, kunt u de demonstratieomgeving in Azure Portal gebruiken.