Интерпретация события аудита доступа к элементам почты Office 365

Важные события форензики в Office 365

Событие MailItemsAccessed является первым важным (иногда называемым событием высокой ценности) аудит-событием, введенным в рамках Microsoft 365 Advanced Audit (или аудита). Его введение было нестоль легким, ни без проблем и способствовало некоторым из проблем с аудитом почтового ящика Exchange Online, испытанных за последний год. События аудита MailItemsAccessed теперь отображаются в арендаторах, и я хотел узнать, насколько полезны эти события при расследовании скомпрометированных учетных записей.

Требуются лицензии E5

Событие MailItemsAccessed генерируется, когда лицензированные пользователи получают доступ к элементам почтового ящика Exchange Online с использованием любого протокола подключения с любого клиента, но только если у вашей учетной записи есть лицензия Office 365 E5 или дополнение Microsoft 365 E5 Compliance. В моем случае у меня есть лицензия Office 365 E5, и Расширенный аудит появляется как одно из приложений в плане (рисунок 1). После захвата события загружаются Exchange Online в журнал аудита Office 365 вместе с другими событиями аудита почтового ящика.

Image 1 Expand
Figure 1: Microsoft 365 Advanced Auditing is part of Office 365 E5 (image credit: Tony Redmond)

Два Вида Событий MailItemsAccessed

События MailItemsAccessed бывают двух типов: Sync (синхронизация) и Bind (доступ к сообщению).

События синхронизации регистрируются при синхронизации сообщений из почтового ящика в локальный кэш Outlook (OST для Windows или OLM для Mac). При синхронизации клиент загружает копии всех новых или измененных элементов из почтового ящика и отмечает любые удаления для применения их в локальной копии. Синхронизация записывает, что синхронизация произошла для папки. В обычном порядке событий ожидается видеть множество событий, регистрирующих синхронизацию для папок, таких как Входящие, Отправленные, Удаленные элементы и Календарь, а также любой другой папки, в которую перемещаются сообщения. В рамках расследования предполагается, что в случае нарушения безопасности и возможности использовать Outlook для синхронизации папки в локальный кэш, потенциально копируются все элементы в этой папке.

События привязки регистрируют доступ к отдельному сообщению. Чтобы уменьшить количество записей аудита, Exchange Online генерирует единое событие привязки, охватывающее доступ к сообщениям в течение двухминутного периода. Таким образом, событие привязки может охватывать доступ к одному сообщению или десяти.

Чтобы дать представление о объеме событий, которые пользователь может порождать, за два дня мой аккаунт сгенерировал 443 события MailItemsAccessed. Большинство событий были событиями привязки (394), и из них 312 находились во Входящих и 32 в Отправленных папках.

Интересно, для папки Outbox было зафиксировано 25 событий, это временная папка, в которой находятся элементы в ожидании обработки службой передачи Exchange. Она также используется, когда Outlook отправляет сообщение в беседу в группе Outlook, поэтому события для папки Outbox отображаются в журнальных записях.

Возможность действия распределения нагрузки

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.

Поиск событий

Теперь, когда мы знаем, какие события ожидать, как получить доступ к событиям во время расследования? Использование поиска журнала аудита в центре соблюдения требований Microsoft 365 невозможно, потому что там невозможно коррелировать события. Вместо этого нам нужно извлечь соответствующие события из журнала аудита и обработать их в виде, облегчающем дальнейший анализ.

Для этого я использую сценарий PowerShell для:

  • Используйте командлет Search-UnifiedAuditLog для поиска событий доступа к элементам почты. Поиск можно настроить для различных диапазонов дат и пользователей.
  • Обработать каждую запись, чтобы извлечь информацию из свойства AuditData в формате JSON.
  • Выполнить дополнительную обработку для упрощения информации AuditData. Например, вывести тип входа как текст (Пользователь, Делегат или Администратор), а не как числовой код.
  • При возможности выполнить трассировку сообщения для извлечения темы для сообщений (см. ниже).
  • Создать файл CSV, содержащий обработанные записи.

Сценарий преобразует журнальную запись, выглядящую примерно так:

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

В запись, выглядящую так:

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)

Обработанная и очищенная журнальная запись намного удобнее для работы.

Нет тем электронных писем

События MailItemsAccessed не содержат информации о темах сообщений. Все ссылки на сообщения в аудиторских событиях осуществляются по их уникальному идентификатору интернет-сообщения, который генерируется отправляющим почтовым сервером. Например:

[email protected]

Возможно, Microsoft не включает темы сообщений в события MailItemsAccessed, поскольку они могут раскрыть личную информацию исследователю. Это понятно, однако позицию ослабляет тот факт, что SharePoint Online радушно раскрывает заголовки документов в своих журнальных записях, а темы сообщений раскрываются исследователям в поисках содержимого Office 365.

Поскольку в аудиторских событиях содержатся только идентификаторы интернет-сообщений, исследователи сталкиваются с проблемой связи аудиторских событий с реальными сообщениями. Это важно, потому что если злоумышленник проник в почтовый ящик, необходимо понять, существует ли в сообщениях, к которым они получили доступ, какая-либо важная, конфиденциальная или чувствительная информация.

Отслеживание сообщений помогает

Самый простой способ соотнести идентификатор сообщения с сообщением – использовать трассировку сообщения. Однако интерактивная трассировка сообщений (доступная в центре соблюдения Microsoft 365) или cmdlet Get-MessageTrace поддерживают трассировку только сообщений, старше десяти дней. Поэтому, когда обрабатываются события аудита, сценарий вызывает cmdlet Get-MessageTrace только для получения тем сообщений, старше 10 дней. Запрос не выполняется для более старых сообщений, и вместо этого для темы вставляется поясняющий текст. Результат для набора сообщений, найденных в событии привязки MailItemsAccessed, выглядит примерно так. Наличие темы существенно упрощает понимание, были ли скомпрометированы важные сообщения.

(1) CH2PR00MB0763CF5D33C5C47B0E0700B6A1C30@CH2PR00MB0763.namprd00.prod.outlook.com (Re: Counting Distribution list members);
(2) [email protected] (TechSmith Influencer News – Camtasia 2020 sneak peek, help for organizations transitioning to remote work and learning, and more!);
(3) 20200407140628.27860.640645555.swift@theirishtimes.activehosted.com (Coronavirus: Ireland’s infection peak may have passed, toll could hit 400 by August, report forecasts);
(4) DM6PR00MB07650C27AC4B4FA1245BA27BC4C30@DM6PR00MB0765.namprd00.prod.outlook.com (Presentation on ‘Inclusive Meetings’ today)

Трассировка старых сообщений

Для более старых сообщений можно выполнить исторический поиск, чтобы извлечь сведения о сообщениях старше 11 и не старше 90 дней, однако это нельзя сделать интерактивно, так как этот cmdlet настраивает фоновый поиск. Exchange Online не хранит данные о трассировке сообщений дольше 90 дней, что создает проблему, если злоумышленник получает доступ к старым электронным письмам. С другой стороны, старые электронные письма могут быть не такими чувствительными, как новые сообщения.

Вы можете связать идентификаторы сообщений, найденные в аудиторских событиях, с старыми электронными письмами, но это долгий процесс, если данные не находятся в поисковом хранилище. Ручной подход заключается в использовании Outlook или OWA для проверки сообщений в почтовом ящике пользователя вокруг даты аудиторского события. Для каждого сообщения используйте дополнение для анализа заголовков сообщения, среди которых находится идентификатор интернет-сообщения (Рисунок 2).

Image 2 Expand
Figure 2: Using the Message Header Analysis add-in to check an email’s internet message identifier (image credit: Tony Redmond)

Интерпретация аудиторских событий

Мой скрипт (который вы можете скачать с GitHub) выводит результаты в список PowerShell, что позволяет легко создавать статистику, например, количество событий привязки к папке. Список также направляется в окно Out-GridView PowerShell для начального анализа (Рисунок 3) и в файл CSV для длительного использования.

Image 3 Expand

Figure 3: Browsing MailItemsAccessed audit records with Out-GridView (image credit: Tony Redmond)

Out-GridView – отличный способ получить начальное представление о том, что могло произойти, потому что вы можете быстро сортировать события по SessionId или IP-адресу клиента. Документация Microsoft объясняет, как использовать эти поля для связывания событий вместе и выявления действий, которые могли быть выполнены злоумышленником.

Полезный обзор того, что происходит в почтовом ящике

События аудита MailItemsAccessed предоставляют полезный обзор того, что происходит, когда пользователи получают доступ к элементам почтового ящика. Я хотел бы, чтобы информация, опубликованная в событиях, была более доступной и полной (тема сообщения – важный элемент данных), но то, что у нас есть сейчас, лучше, чем то, что было раньше.

Создание и хранение аудиторских событий стоит денег, особенно когда события бурно размножаются. Я понимаю, почему Microsoft считает Событие MailItemsAccessed ключевым событием, и с нетерпением жду, что они еще представят в будущем другие события, которые соответствуют критериям. Просто жаль, что эти аудиторские события являются функцией E5. Также атакуются арендаторы E3!

Source:
https://petri.com/interpreting-the-office-365-mailitemsaccessed-audit-event/