API 来自 Microsoft Exchange Online Protection 的数据端点?

API endpoint for data from Microsoft Exchange Online Protection?

我正在从事一个项目,我一直在使用 Python 调用我们组织的各种技术来获取数据,然后我将这些数据推送到 Power BI 以跟踪一段时间内的指标与 IT 安全有关。

我的老板希望看到从 Exchange Online Protection 添加的信息,例如在电子邮件中检测到的恶意软件、垃圾邮件块等,本质上是复制您在 M365 defender > 报告 > 电子邮件和协作中看到的一些电子邮件和协作报告(security.microsoft.com/emailandcollabreport).

我试过 Defender API 和 MS Graph API,通读了大量文档,但似乎找不到任何地方可以提取此信息。有没有人做过类似的事情,或者知道可以从哪里提取这些数据?

提前致谢。

您可以尝试使用 Microsoft Graph Security API,您可以使用它获取警报、信息保护和安全评分。您还可以参考 alerts section in the documentation,其中讨论了此时使用 Microsoft Graph 安全性 api.

支持的提供商列表

以防其他人遇到这个问题,这就是我最终使用的解决方案(可能是 hacky);

提取相关信息的唯一方法似乎是通过 PowerShell,您需要模块 ExchangeOnlineManagement 和 PSWSMan,因此需要安装它们。

您需要向您的 Azure 实例添加一个至少具有全局 reader 角色(或自定义角色)的应用程序,并生成自签名证书并将其上传到该应用程序。

我然后 运行 以下行作为 ps1 脚本:

Connect-ExchangeOnline -CertificateFilePath "<PATH>" -AppID "<APPID>" -Organization "<ORG>.onmicrosoft.com" -CertificatePassword (ConvertTo-SecureString -String '<PASSWORD>' -AsPlainText -Force)
$dte = (Get-Date).AddDays(-30)
Get-MailflowStatusReport -StartDate $dte -EndDate (Get-Date)
Disconnect-ExchangeOnline

我使用 python 调用 powershell 脚本,然后从输出中提取我需要的信息并将其推送到 PowerBI。

我确信有一种更安全、更有效的方法可以做到这一点,但我能够通过这种方式完成任务。