Esaminare le attività tramite l'API

Nota

  • Sono stati rinominati Microsoft Cloud App Security. Viene ora chiamato Microsoft Defender for Cloud Apps. Nelle prossime settimane verranno aggiornate le schermate e le istruzioni qui e nelle pagine correlate. Per altre informazioni sulla modifica, vedere questo annuncio. Per altre informazioni sulla ridenominazione recente dei servizi di sicurezza Microsoft, vedere il blog di Microsoft Ignite Security.

  • Microsoft Defender for Cloud Apps fa ora parte di Microsoft 365 Defender. Il portale di Microsoft 365 Defender consente agli amministratori della sicurezza di eseguire le attività di sicurezza in un'unica posizione. In questo modo si semplificano i flussi di lavoro e si aggiungeranno le funzionalità degli altri servizi Microsoft 365 Defender. Microsoft 365 Defender sarà la sede principale per il monitoraggio e la gestione della sicurezza tra identità, dati, dispositivi, app e infrastruttura Microsoft. Per altre informazioni su queste modifiche, vedere Microsoft Defender for Cloud Apps in Microsoft 365 Defender.

È possibile usare le API Attività per analizzare le attività eseguite dagli utenti nelle app cloud connesse.

La modalità API delle attività è ottimizzata per l'analisi e il recupero di grandi quantità di dati (oltre 5.000 attività). L'analisi API esegue ripetutamente una query sui dati dell'attività fino a quando non vengono analizzati tutti i risultati.

Nota

Per grandi quantità di attività e distribuzioni su larga scala, è consigliabile usare l'agente SIEM per l'analisi delle attività.

Per usare lo script di analisi delle attività

  1. Eseguire la query sui dati.
  2. Se sono presenti più record di quelli che potrebbero essere elencati in un'unica analisi, si otterrà un comando restituito con nextQueryFilters che è necessario eseguire. Questo comando verrà visualizzato ogni volta che si esegue l'analisi fino a quando la query non ha restituito tutti i risultati.

Parametri del corpo della richiesta

  • "filters": Filtrare gli oggetti con tutti i filtri di ricerca per la richiesta, vedere Filtri attività per altre informazioni. Per evitare la limitazione delle richieste, assicurarsi di includere una limitazione per la query, ad esempio eseguire una query sulle attività dell'ultimo giorno o filtrare per una determinata app.
  • "isScan": Boolean. Abilita la modalità di analisi.
  • "sortDirection": direzione di ordinamento. I valori possibili sono asc e desc.
  • "sortField": campi usati per ordinare le attività. I valori possibili sono:
    • date - Data in cui si è verificata l'attività (impostazione predefinita).
    • created - Timestamp al salvataggio dell'attività.
  • "limit": Integer. In modalità di analisi, tra 500 e 5000 (il valore predefinito è 500). Controlla il numero di iterazioni usate per l'analisi di tutti i dati.

Parametri di risposta

  • "data": i dati restituiti. Conterrà fino al numero "limite" di record ogni iterazione. Se sono presenti più record da estrarre (hasNext=true), gli ultimi record verranno eliminati per assicurarsi che tutti i dati vengano elencati una sola volta.
  • "hasNext": Boolean. Indica se è necessaria un'altra iterazione sui dati.
  • "nextQueryFilters": se è necessaria un'altra iterazione, contiene la query JSON consecutiva da eseguire. Usare questo parametro come parametro "filters" nella richiesta successiva. Si noti che se il parametro "hasNext" è impostato su False, questo parametro non sarà presente perché è stato eseguito l'iterazione su tutti i dati.

L'esempio python seguente ottiene tutte le attività dell'ultimo giorno da Exchange Online.

import requests
import json
ACTIVITIES_URL = 'https://<your_tenant>.<tenant_region>.portal.cloudappsecurity.com/api/v1/activities/'

your_token = '<your_token>'
headers = {
'Authorization': 'Token {}'.format(your_token),
}

filters = {
  # optionally, edit to match your filters
  'date': {'gte_ndays': 1},
  'service': {'eq': [20893]}
}
request_data = {
  'filters': filters,
  'isScan': True
}

records = []
has_next = True
while has_next:
    content = json.loads(requests.post(ACTIVITIES_URL, json=request_data, headers=headers).content)
    response_data = content.get('data', [])
    records += response_data
    print('Got {} more records'.format(len(response_data)))
    has_next = content.get('hasNext', False)
    request_data['filters'] = content.get('nextQueryFilters')

print('Got {} records in total'.format(len(records)))

Passaggi successivi

Se si verificano problemi, sono disponibili assistenza e supporto. Per ottenere assistenza o supporto per il problema del prodotto, aprire un ticket di supporto.