显而易见却被忽视:利用Office 365 Activities API实现...
更新:虽然本文最初讨论了Office 365活动API,但自2018年6月6日起,该功能已被微软禁用。然而,在Office 365中仍然存在其他数据源,可以帮助调查商业电子邮件泄露(BEC)事件。以下内容将探讨如何利用这些数据源进行威胁检测和响应。
简介
通过分析Office 365 API返回的数据,可以深入了解威胁行为者的技术、战术和程序(TTP)。这些信息对于检测和响应BEC攻击至关重要。
如何访问API
在Outlook REST API中,有一个未公开的API子集,称为Activities API。此API子集适用于Outlook REST API的所有版本(v1.0、v2.0和beta),本文重点介绍v2.0版本的实现。
身份验证方式
调用Activities API需要进行身份验证,可选择以下两种方式:
- OAuth 2.0:支持所有版本的Outlook REST API。
- 基本身份验证:支持v1.0版本,但从2018年11月1日起不再受支持。
以下是API端点示例:
-
使用OAuth 2.0:
https://outlook.office.com/api/v2.0/{user_context}/Activities -
使用基本身份验证:
https://outlook.office365.com/api/v1.0/{user_context}/Activities
请求头要求
所有对Activities API的请求都必须包含以下HTTP头:
- Authorization:用于提供有效的访问凭据。
Authorization: Bearer
- Accept:建议设置为
application/json,以确保返回JSON格式数据。
限制说明
Activities API的全局限制:每个目标用户、每个应用程序在10分钟内最多可发出10,000次请求。超过此限制的请求将返回“HTTP 429 Too Many Requests”响应。
检索活动数据
基本调用
最简单的API调用无需任何参数,默认返回当前用户最近10个邮箱活动:
GET https://outlook.office.com/api/v2.0/me/Activities
使用curl命令示例(OAuth 2.0):
curl -H "Authorization: Bearer "
-H "Accept: application/json"
https://outlook.office.com/api/v2.0/me/Activities
检索其他用户的活动
要检索其他用户的邮箱活动,可通过以下两种方式获取权限:
-
共享邮箱方法:
- 配置应用程序以请求“Mail.Read.Shared”权限。
- 为调用用户分配目标邮箱的“FullAccess”权限。
-
应用程序权限方法:
- 配置应用程序以请求“Mail.Read”应用程序权限。
- 需要租户管理员的授权同意。
请求参数
Activities API支持多种请求参数,用于过滤和排序返回结果:
-
$orderby:指定排序规则。例如,按时间戳升序排序:GET https://outlook.office.com/api/v2.0/Users('victim@contoso.com')/Activities?$orderby=TimeStamp asc -
$filter:过滤结果。例如,查询2018年1月的活动:GET https://outlook.office.com/api/v2.0/Users('victim@contoso.com')/Activities?$filter=(TimeStamp ge 2018-01-01T00:00:00Z and TimeStamp le 2018-01-31T23:59:59Z) -
$select:指定返回的属性子集。例如,仅返回时间戳和活动类型:GET https://outlook.office.com/api/v2.0/Users('victim@contoso.com')/Activities?$select=TimeStamp,ActivityIdType -
$top:设置返回活动的数量,范围为1到1000。
活动类型及其分析
Activities API支持多种活动类型,以下是一些常见且有用的类型:
- MessageDelivered:邮件送达活动,包含发件人、收件人、主题等关键信息。
- ReadingPaneDisplayStart:邮件在阅读窗格中被选中。
- SearchResult:邮箱中执行的搜索查询。
- ServerLogon:邮箱登录事件,记录源IP地址、用户名、结果等信息。
自定义属性
每种活动类型可能包含独特的自定义属性。例如:
- ServerLogon活动中的
ClientIP属性记录了登录的源IP地址。 - MessageDelivered活动中的
AttachmentDetail属性列出了邮件附件的类型。
发现攻击者活动的技巧
以下是一些识别攻击者活动的有效方法:
-
IP地理位置分析:
- 检查登录活动的源IP地址是否与邮箱所有者的地理位置一致。
- 利用IP地理定位工具快速识别异常登录。
-
搜索查询分析:
- 分析
SearchResult活动中涉及的搜索词,例如“电汇”、“发票”等。
- 分析
-
异常客户端类型:
- 识别不常见的应用程序类型(如IMAP4或Web客户端)是否执行了可疑活动。
-
DKIM/DMARC/SPF验证失败:
- 检查邮件标题中的验证结果,识别可能的伪造邮件。
-
恶意附件类型:
- 扫描
MessageDelivered活动中的附件类型,查找与恶意软件相关的文件(如EXE、PDF)。
- 扫描
结论
尽管Office 365 Activities API已被禁用,但其提供的功能为邮箱日志记录和事件响应带来了巨大价值。通过分析API返回的数据,组织可以更好地应对BEC攻击、追踪威胁行为者,并提升整体安全态势。
在实际操作中,结合地理位置分析、搜索查询分析和异常活动检测等技术,可以有效发现并阻止攻击者活动。对于复杂的安全事件,建议进行全面的威胁狩猎和妥协评估,以确保环境的安全性。
原文链接: https://www.crowdstrike.com/en-us/blog/hiding-in-plain-sight-using-the-office-365-activities-api-to-investigate-business-email-compromises/
最新文章
- 构建更智能的搜索:面向开发者的Anthropic AI API – Just Think AI
- 基于N-API和node-addon-api的Node.js异步C++扩展
- 理解每种API类型的基本指南
- REST API 安全最佳实践
- 银行卡OCR识别API在Java、Python、PHP中的使用教程
- 使用WEB3钱包API实现智能合约交互的完整教程
- 如何获取心知天气 API Key 密钥(分步指南)
- REST APIs与微服务:关键差异
- Sabre API 集成:领先的 GDS 实践经验
- 函数调用与工具使用入门 – Apideck
- 什么是API测试?其优势、类型及最佳实践
- API 安全策略和基础指南