Eventi fondamentali di forense di Office 365
L’evento MailItemsAccessed è il primo evento fondamentale (a volte chiamato evento di alto valore) introdotto come parte dell’Audit Avanzato di Microsoft 365. La sua introduzione non è stata né semplice né semplicistica e ha contribuito a alcuni dei problemi legati all’audit delle cassette postali di Exchange Online riscontrati nell’ultimo anno. Gli eventi di audit di MailItemsAccessed sono ora visibili nei tenant, e volevo capire quanto fossero utili questi eventi nell’investigazione di account compromessi.
Licenze E5 Necessarie
L’evento MailItemsAccessed viene generato quando gli utenti con licenza accedono agli elementi nelle cassette postali di Exchange Online utilizzando qualsiasi protocollo di connettività da qualsiasi client, ma solo se il tuo account ha un’aggiunta di conformità E5 di Office 365 o Microsoft 365 E5. Nel mio caso, ho una licenza Office 365 E5, e l’Audit Avanzato compare come una delle app nel piano (Figura 1). Dopo la cattura, gli eventi vengono caricati da Exchange Online nel registro di audit di Office 365 insieme ad altri eventi di audit delle cassette postali.

Due Tipi di Evento MailItemsAccessed
Gli eventi MailItemsAccessed si presentano in due tipi: Sync (sincronizzazione) e Bind (accesso a un messaggio).
Gli eventi di sincronizzazione vengono catturati quando un client desktop di Outlook sincronizza i messaggi dalla casella di posta alla sua cache locale (l’OST per Windows o l’OLM per Mac). Durante la sincronizzazione, il client scarica copie di tutti gli elementi nuovi o modificati dalla casella di posta e annota eventuali eliminazioni da applicare alla propria copia locale. L’evento di sincronizzazione registra che la sincronizzazione è avvenuta per una cartella. Nel normale corso degli eventi, ci si aspetta di vedere molti eventi che registrano la sincronizzazione per cartelle come Posta in arrivo, Elementi inviati, Elementi eliminati e il Calendario, oltre a qualsiasi altra cartella dove i messaggi vengono spostati. In termini di indagine, si presume che se si verifica una violazione e qualcuno può utilizzare Outlook per sincronizzare una cartella in una cache locale, potenzialmente tutti gli elementi in quella cartella vengono copiati.
Gli eventi di associazione registrano l’accesso a un singolo messaggio. Per ridurre il numero di registrazioni di audit, Exchange Online genera un singolo evento di associazione che copre l’accesso ai messaggi entro un periodo di due minuti. Quindi, un evento di associazione potrebbe coprire l’accesso a un singolo messaggio o dieci messaggi.
Per avere un’idea del volume degli eventi che un utente potrebbe generare, nel corso di due giorni il mio account ha generato 443 eventi MailItemsAccessed. La maggior parte erano eventi Bind (394), e di questi 312 erano nella Posta in arrivo e 32 negli Elementi inviati.
Interessantemente, sono stati catturati 25 eventi per la cartella Posta in uscita, che è una cartella transitoria in cui gli elementi esistono in attesa di essere elaborati dal servizio di trasporto di Exchange. Viene anche utilizzata quando Outlook posta in una conversazione in un gruppo di Outlook, ecco perché gli eventi per la cartella Posta in uscita sono apparsi nei registri di audit.
Il Potenziale per il Throttling
I don’t use email as heavily as I once did when I was a corporate VP, so expect heavier volumes for other mailboxes. The transfer of some communications to Teams has also reduced email volume in some tenants. However, I do use multiple clients (OWA, Outlook, and Outlook mobile), all of which are usually signed in and active, which increases the number of Bind events. In the case of very active mailboxes, if more than a thousand events are generated for a mailbox in less than 24 hours, Exchange Online stops generating MailItemsAccessed events for that mailbox for 24 hours. Microsoft says that less than 1% of Exchange Online mailboxes are throttled.
Ricerca degli eventi
Ora che sappiamo quali eventi aspettarci, come possiamo accedere agli eventi durante un’indagine? Utilizzare la ricerca nel registro di audit nel centro conformità di Microsoft 365 non è fattibile perché è impossibile correlare gli eventi lì. Invece, dobbiamo estrarre gli eventi rilevanti dal registro di audit e elaborarli in una forma che faciliti ulteriori analisi.
Per fare questo, utilizzo uno script PowerShell per:
- Utilizzare il cmdlet Search-UnifiedAuditLog per trovare gli eventi MailItemsAccessed. La ricerca può essere personalizzata per diversi intervalli di date e utenti.
- Elaborare ciascun record per estrarre informazioni dalla proprietà AuditData formattata in JSON.
- Eseguire ulteriori elaborazioni per rendere più chiare le informazioni di AuditData. Ad esempio, scrivere il tipo di accesso come testo (Utente, Delegato o Amministratore) anziché un codice numerico.
- Se possibile, effettuare una traccia dei messaggi per recuperare l’oggetto dei messaggi (vedi sotto).
- Generare un file CSV contenente i record elaborati.
Lo script trasforma un record di audit che appare così:
RunspaceId : bb26bb84-41fe-4d3f-85dd-e800a4352e3d RecordType : ExchangeItemAggregated CreationDate : 7 Apr 2020 23:47:30 UserIds : [email protected] Operations : MailItemsAccessed AuditData : {"CreationTime":"2020-04-07T23:47:30","Id":"f5493f9a-57ce-4859-94bd-fd2ad38d5680","Operation": "MailItemsAccessed","OrganizationId":"b662313f-14fc-43a2-9a7a-d2e27f4f3478","RecordType":50,"ResultStatus":"Succeeded","UserKey":"1003BFFD805C87B0","UserType":0,"Version":1,"Workload":"Exchange","UserId":"[email protected]","ClientIPAddress":"2001:bb6:5f4f:f058:4163:e14a:1332:27c7","ClientInfoString":"Client=OutlookService;Outlook-iOS\/2.0;","ExternalAccess ":false,"InternalLogonType":0,"LogonType":0,"LogonUserSid":"S-1-5-21-458367025-2064581115-2950179075-392557","MailboxGuid":"0370f354-2752-4437-878d-cf0e5310a8d4","MailboxOwnerSid":"S-1-5-21-458367025-2064581115-2950179075-392557", "MailboxOwnerUPN":"[email protected]","OperationProperties":[{"Name":"MailAccessType","Value":"Bind"},{"Name":"IsThrottled","Value":"False"}],"OrganizationName":"office365itpros.onmicrosoft.com","OriginatingServer":"DB7PR04MB4346 (15.20.2878.014)\u000d\u000a","SessionId":"1f99e672-8141-4a22-9aa0-96357297e843","Folders":[{"FolderItems":[{"InternetMessageId":"<71ceaeec-6dc3-4452-839f-6db34dd95f95@DB5EUR01BG102.eop-EUR01.prod.protection.outlook.com>"}], "Id":"LgAAAAB+7ILpFNx8TrktaK8VYWerAQBe9CuwLc2fTK7W46L1SAp9AAAA2lHHAAAB","Path":"\\Inbox"}],"OperationCount":1} ResultIndex : 1 ResultCount : 443 Identity : f5493f9a-57ce-4859-94bd-fd2ad38d5680 IsValid : True ObjectState : Unchanged
In un elemento che appare così:
TimeStamp : 7 Apr 2020 23:47 Mailbox : [email protected] User : [email protected] LogonType : User FolderId : LgAAAAB+7ILpFNx8TrktaK8VYWerAQBe9CuwLc2fTK7W46L1SAp9AAAA2lHHAAAB Folder : Inbox Access : Bind Operation : MailAccessType Throttled : False ClientIP : 2001:bb6:5f4f:f058:4163:e14a:1332:27c7 ClientInfo : Client=OutlookService;Outlook-iOS/2.0; SessionId : 1f99e672-8141-4a22-9aa0-96357297e843 Messages : (1) 71ceaeec-6dc3-4452-839f-6db34dd95f95@DB5EUR01BG102.eop-EUR01.prod.protection.outlook.com (Spam Notification: 3 New Messages)
Il record di audit analizzato e pulito è molto più facile da gestire.
Nessun oggetto della Email
Gli eventi MailItemsAccessed non forniscono informazioni sui titoli dei messaggi. Tutti i riferimenti ai messaggi negli eventi di audit sono identificati dal loro identificatore di messaggio Internet, un valore univoco generato dal server di invio dei messaggi. Ad esempio:
Microsoft potrebbe non includere i titoli dei messaggi negli eventi MailItemsAccessed perché potrebbero rivelare informazioni personali a un investigatore. Questo è comprensibile, ma la posizione è indebolita dal fatto che SharePoint Online è abbastanza disposto a rivelare i titoli dei documenti nei suoi registri di audit e i titoli dei messaggi sono rivelati agli investigatori nelle ricerche dei contenuti di Office 365.
Dato che gli eventi di audit contengono solo identificatori di messaggio Internet, gli investigatori si trovano di fronte al problema di come collegare gli eventi di audit ai messaggi reali. Questo è importante perché se un aggressore ha penetrato in una casella di posta, è necessario capire se ci sono informazioni importanti, confidenziali o sensibili nei messaggi a cui hanno avuto accesso.
Il tracciamento dei messaggi aiuta
Il modo più semplice per abbinare un identificatore di messaggio a un messaggio è utilizzare un tracciato di messaggi. Tuttavia, il tracciato di messaggi interattivo (disponibile nel centro conformità di Microsoft 365) o il cmdlet Get-MessageTrace supporta solo il tracciamento di messaggi di meno di dieci giorni. Per questo motivo, quando elabora eventi di audit, lo script chiama solo il cmdlet Get-MessageTrace per recuperare gli oggetti dei messaggi di meno di 10 giorni. La chiamata non viene effettuata per messaggi più datati e viene inserito del testo esplicativo per il soggetto. L’output per un insieme di messaggi trovati in un evento Bind di MailItemsAccessed appare in questo modo. La presenza del soggetto rende molto più facile capire se eventuali messaggi importanti sono stati compromessi.
(1) CH2PR00MB0763CF5D33C5C47B0E0700B6A1C30@CH2PR00MB0763.namprd00.prod.outlook.com (Re: Conteggio membri della lista di distribuzione);
(2) [email protected] (TechSmith Influencer News – Anteprima di Camtasia 2020, aiuto per le organizzazioni che passano al lavoro e all’apprendimento remoto e altro ancora!);
(3) 20200407140628.27860.640645555.swift@theirishtimes.activehosted.com (Coronavirus: Il picco dell’infezione in Irlanda potrebbe essere passato, il bilancio potrebbe raggiungere i 400 ad agosto, previsione del rapporto);
(4) DM6PR00MB07650C27AC4B4FA1245BA27BC4C30@DM6PR00MB0765.namprd00.prod.outlook.com (Presentazione su ‘Riunioni Inclusive’ oggi)
Tracciare Messaggi Più Vecchi
Per i messaggi più vecchi, è possibile eseguire una ricerca storica per recuperare i dettagli dei messaggi tra 11 e 90 giorni fa, ma non è possibile farlo in modo interattivo poiché il cmdlet imposta una ricerca in background. Exchange Online non conserva i dati della ricerca dei messaggi per più di 90 giorni, il che crea un problema se un attaccante accede a email più datate. D’altro canto, le email più vecchie potrebbero non essere altrettanto sensibili quanto i messaggi più recenti.
È possibile collegare gli identificatori dei messaggi trovati negli eventi di audit alle email vecchie, ma è un lavoro noioso se i dati non sono in un repository ricercabile. L’approccio manuale consiste nell’utilizzare Outlook o OWA per esaminare i messaggi nella casella di posta dell’utente intorno alla data dell’evento di audit. Per ciascun messaggio, utilizzare l’add-in di Analisi Intestazioni Messaggio per visualizzare le intestazioni del messaggio, tra le quali è presente l’identificatore del messaggio Internet (Figura 2).

Interpretazione degli Eventi di Audit
Il mio script (che puoi scaricare da GitHub) restituisce i risultati in una lista di PowerShell, il che facilita la generazione di statistiche come il numero di eventi di bind per cartella. La lista viene inoltre inviata alla finestra Out-GridView di PowerShell per un’analisi iniziale (Figura 3) e a un file CSV per una considerazione nel lungo termine.
Out-GridView è un ottimo modo per ottenere un primo modo di affrontare ciò che potrebbe essere successo poiché è possibile ordinare rapidamente gli eventi per SessionId o Indirizzo IP client. La documentazione di Microsoft spiega come utilizzare questi campi per collegare gli eventi insieme per evidenziare azioni che potrebbero essere state eseguite da un attaccante.
Informazioni utili su ciò che avviene in una casella di posta
Gli eventi di audit di MailItemsAccessed forniscono un’utile panoramica su ciò che accade quando gli utenti accedono agli elementi della casella di posta. Mi piacerebbe che le informazioni pubblicate negli eventi fossero più accessibili e complete (l’oggetto del messaggio è un dato importante), ma quello che abbiamo ora è meglio di quanto avevamo prima.
Generare e memorizzare eventi di audit costa denaro, specialmente quando gli eventi sono prolifici. Capisco perché Microsoft considera MailItemsAccessed come un evento cruciale e non vedo l’ora di vedere quali altri eventi corrispondenti ai criteri forniranno in futuro. È solo un peccato che questi eventi di audit siano una caratteristica E5. Anche i tenant E3 vengono attaccati!
Source:
https://petri.com/interpreting-the-office-365-mailitemsaccessed-audit-event/