Детальные логи Office 365 Outlook, извлечённые программой Magic-Unicorn-Tool: злоумышленник ищет счёт на оплату (payment invoice). Первая буква поискового запроса введена в 10:42:44.548, последняя в 10:43:07.214. Информация об активности хранится в логах шесть месяцев
Долгое время ходили слухи, что в Office 365 есть встроенный секретный инструмент для записи активности пользователей. В июне 2018 года эти слухи подтвердились в полной мере. Всё началось с видеоролика, опубликованного Anonymous, а потом уже специалисты CrowdSrtike выложили подробный отчёт.
Microsoft внедрила в почтовый клиент Activities API не для каких-то злонамеренных целей, а для задач цифровой криминалистики, то есть расследования инцидентов со взломом корпоративной почты и другими утечками данных. Для этого ведётся подробнейший лог активности за шесть месяцев даже если пользователь отключил журналирование.
Эпидемия взломов почтовых аккаунтов
Взлом корпоративных почтовых аккаунтов по всему миру приобрёл настолько массовый характер, что некоторые специалисты называют это эпидемией. Злоумышленники получают доступ к электронным таблицам с номерами социального страхования, подробной информации о финансовых накладных и торговым секретам. Они ищут сведения о банковских переводах и воруют деньги, пользуясь отсутствием цифровой подписи на документах. Различные виды мошенничества через компрометацию бизнес-почты описаны в брошюре CrowdStrike.
Например, в начале июня ФБР провело международную операцию и задержало 74 человека в нескольких странах, которые занимались этим бизнесом.
Когда факт взлома становится известен, важно понять: к каким данным получил доступ взломщик, что он видел и какую информацию скопировал. Произошла ли утечка конфиденциальных данных? Расследование инцидентов затрудняется тем, что журналирование в Office 365 выключено по умолчанию. В отсутствие каких-либо реальных сведений компания по закону вынуждена публично объявлять об утечке данных со всеми вытекающими последствиями — репутационными издержками, штрафами и т. д.
Но сейчас стало известно, что в Office 365 существуют Activities API с подробным журналированием, и многих таких скандалов можно было избежать, если бы компании знали об этом API. Возможно, доступ к этим секретным логам получали лишь некие привилегированные клиенты. Есть информация, что некоторые компании, которые специализируются на цифровой криминалистике, знали о секретном инструменте аудита Office 365 в прошлом году, а то и раньше. Кто-то считал их заявления маркетинговой бравадой, но это оказалось правдой. Удивительно, но Activities API существуют, и Microsoft действительно скрывала наличие такого важного и полезного инструмента, названного в профессиональных кругах «Волшебным Единорогом» (Magic Unicorn), отсюда и название программы для самостоятельного разбора логов, которая упомянута ниже.
Злоумышленник просматривает сообщения, содержащие счёт на оплату и форму W-9. Детальные логи извлечены программой Magic-Unicorn-Tool
Расследование CrowdStrike
Компания CrowdStrike подробно описала, как работает журналирование Office 365 у всех пользователей по умолчанию. Функция состоит из веб API, получающего информацию об активности Office 365 Outlook через Exchange Web Services (EWS). Доступ к API открыт для любого, кто знает конечную точку и специфический HTTP-заголовок.
Недокументированные Activities API являются подмножеством всех трёх версий Outlook REST API (1.0, 2.0 и бета). Как и с остальными подмножествами, вызов к API должен быть аутентифицирован по OAuth 2.0 или по базовой аутентификации.
Конечная точка следующая:
https://outlook.office.com/api/v2.0/{user_context}/Activities
Все запросы отправляются как пакеты HTTP GET, которые должны обязательно включать следующий HTTP-заголовок:
Prefer: exchange.behavior="ActivityAccess"
Запросы без этого заголовка вернут HTTP 400 Bad Request
.
Обязателен также заголовок Authorization
:
Authorization: Bearer <access token>
Запросы без этого заголовка вернут ответ HTTP 403 Unauthorized
.
Для целей тестирования токен доступа OAuth 2.0 можно сгенерировать в песочнице Oauth. Он действует 60 минут.
Простейший вызов к API — запрос десяти последних своих активностей.
GET https://outlook.office.com/api/v2.0/me/Activities
Пример ответа от API в формате JSON показывает стандартные свойства активностей:
{
"value": [
{
"Id":"WOGVSAiPKrfJ4apAPcBksT2en7whzDz4NIbUs3==",
"ActivityCreationTime":"2010-04-01T12:34:56.789Z",
"ActivityIdType":"ReadingPaneDisplayStart",
"AppIdType":"Outlook",
"ClientVersion":"15.00.0000.000",
"ClientSessionId":"679126f3-02de-3513-e336-0eac1294b120",
"ActivityItemId":"NjKG5m6OmaCjGKq6WlbjIzvp94czUDg30qGopD==",
"TimeStamp":"2010-04-01T12:34:56.789Z",
"TenantId":"679126f3-02de-3513-e336-0eac1294b120",
}
]
}
Через API можно запрашивать активности не только для себя, но и для других пользователей, если получено разрешение через Shared Mailbox или Application Permission:
GET https://outlook.office.com/api/v2.0/Users('victim@contoso.com')/Activities
Activities API поддерживают несколько параметров запроса:
$orderby
: сортировка результатов по заданному выражению$filter
: фильтрация результатов по дате и/или типу активности$select
: выбор возвращаемых свойств$top
: максимальное количество возвращаемых активностей$skip
: количество пропускаемых активностей в результатах
На данный момент CrowdStrike идентифицировала 30 видов активностей, но в реальности их может быть и больше. Вот самые полезные:
Delete
: удаление письмаForward
: перенаправление письмаLinkClicked
: нажатие на ссылку в письмеMarkAsRead
: сообщение помечено как прочтённоеMarkAsUnread
: сообщение помечено как непрочтённоеMessageDelivered
: письмо доставлено в почтовый ящикMessageSent
: письмо отправлено из почтового ящикаMove
: письмо перенесеноOpenedAnAttachment
: открыто приложениеReadingPaneDisplayEnd
: отмена выделения для письма в панели просмотраReadingPaneDisplayStart
: выбор выделения для письма в панели просмотраReply
: ответ на письмоSearchResult
: генерация результатов поискаServerLogon
: событие авторизации
Есть и другие интересные типы активностей, полезные при расследовании инцидентов: SenderSmtpAddress
, Recipients
, Subject
, SentTime
, InternetMessageId
, ClientIP
, UserAgent
и др.
Специалисты CrowdStrike опубликовали модуль Python, который извлекает информацию по Office 365 Outlook Activities API и записывает полученные данные в файл CSV.
Программа Magic-Unicorn-Tool
Программа Magic-Unicorn-Tool парсит логи Activities API, добытые вышеупомянутым питоновским модулем. В данный момент она способна разбирать и отображать следующую информацию:
- Поисковые запросы в почтовом ящике, время просмотра сообщений и/или авторизованных сессий.
- События авторизации (Logon и ServerLogon), дата, время, IP-адрес и тип браузера.
- Вся почтовая активность по доставленным и помеченным как прочтённые письмам.
- События поиска, записанные с ID сессии со ссылкой на последнее событие авторизации.
- Чтение панели.
- Просмотр аттачментов.
Вход в аккаунт с разных IP-адресов
Magic-Unicorn-Tool распространяется без подписи кода, но с открытыми исходниками.
Внедрение инструментов вроде Activities API без ведома пользователей поднимает ряд практических и этических вопросов для всей индустрии цифровой криминалистики. По умолчанию журналирование отключено на аккаунтах Office 365. Оно не входит в стандартные планы ProPlus и E1. За аудит аккаунтов компании вынуждены платить дополнительные деньги, а из-за отсутствия логов (как они думали) многие компании понесли убытки. В то же время степень детализации логов Activities API намного превышает детализацию документированных способов журналирования, таких как Unified Audit Log.
Специалисты по цифровой криминалистике из компании LMG Security призывают принять стандарты по журналированию активности и возложить его как обязательную нагрузку на облачных провайдеров, как сейчас обязательной нагрузкой является система пожарной сигнализации в дата-центрах.
Принятие стандартов требуется для того, чтобы провайдеры не только вели логи, но и предоставляли их в стандартном виде для клиентов и аудиторских компаний, а не держали в секрете для избранных клиентов, как часть более дорогого тарифного плана или как отдельную платную услугу.
АКЦИЯ GMO GlobalSign Russia для подписчиков Habr
Дополнительную информацию вы можете получить, связавшись с менеджером GlobalSign по телефону: +7 (499) 678 2210, или заполните форму на сайте, указав промо-код CS002HBFR.
Автор: GlobalSign_admin