Office 365 模块

编辑

此功能处于测试阶段,可能会发生变化。其设计和代码不如正式 GA 功能成熟,按原样提供,不提供任何保证。测试版功能不受正式 GA 功能支持 SLA 的约束。

这是一个用于通过 Office 365 API 端点之一接收的 Office 365 日志的模块。它目前支持来自 Office 365 和 Azure AD 活动日志的用户、管理员、系统和策略操作和事件,这些日志由 Office 365 管理活动 API 公开。

运行此模块需要 ingest-geoipingest-user_agent Elasticsearch 插件。

阅读 快速入门,了解如何配置和运行模块。

配置模块

编辑

您可以通过在 modules.d/o365.yml 文件中指定 变量设置 或在命令行中覆盖设置来进一步优化 o365 模块的行为。

您必须在模块中启用至少一个文件集。文件集默认情况下处于禁用状态。

变量设置

编辑

每个文件集都有单独的变量设置,用于配置模块的行为。如果您未指定变量设置,则 o365 模块将使用默认值。

对于高级用例,您还可以覆盖输入设置。请参阅 覆盖输入设置

在命令行中指定设置时,请记住在设置前加上模块名称,例如,使用 o365.audit.var.paths 而不是 audit.var.paths

audit 文件集设置

编辑

audit 文件集使用 Office 365 管理活动 API 从 Office 365 和 Azure AD 活动日志中检索审核消息。这些与“安全和合规中心”中的“审核日志搜索”下提供的日志相同。

设置
编辑

要使用此文件集,您需要 启用审核日志搜索在 Azure AD 中注册应用程序

注册此应用程序后,请记下应用程序(客户端)ID目录(租户)ID。然后在“证书和机密”部分配置身份验证。

使用客户端密钥身份验证的 o365.yml 示例配置

  audit:
    enabled: true
    var.application_id: "<My Azure AD Application ID>"
    var.tenants:
      - id: "<My Tenant ID>"
        name: "mytenant.onmicrosoft.com"
    var.client_secret: "<My client secret>"

基于证书的身份验证在监控多个租户时特别有用。示例配置

  audit:
    enabled: true
    var.application_id: "<My Azure AD Application ID>"
    var.tenants:
      - id: "<Tenant A ID>"
        name: "tenantA.onmicrosoft.com"
      - id: "<Tenant B ID>"
        name: "tenantB.onmicrosoft.com"
    var.certificate: "/path/to/certificate.pem"
    var.key: "/path/to/private_key.pem"
    var.key_passphrase: "my_passphrase" # (optional) for encrypted keys

最后,您需要在“API 权限”部分添加权限并授予其管理员同意。单击“添加权限”,然后选择“Office 365 管理 API”。所需的权限为

  • User.Read
  • ActivityFeed.Read
  • ActivityFeed.ReadDlp
  • ServiceHealth.Read
filebeat o365 azure permissions

添加所需的权限后,单击“授予管理员同意”按钮。请注意,所需的权限生效可能需要一段时间,因此,当您立即运行 Filebeat 时,可能会观察到一些权限错误。

备用端点
编辑

此模块支持内部部署的自定义端点以及备用端点(GCC 高端点、美国国防部、欧盟等)。为了将模块指向备用端点,您需要相应地调整 authentication_endpointresource 变量。例如

    var.api:
      # default is https://login.microsoftonline.com/
      authentication_endpoint: https://login.microsoftonline.us/
      # default is https://manage.office.com
      resource: https://manage.office365.us
配置选项
编辑
var.application_id
Azure 应用程序的应用程序 ID(也称为客户端 ID)。
var.tenants
一个或多个租户 ID 和名称对的列表。将 id 字段设置为租户 ID(也称为目录 ID)。将名称设置为租户的主机名,即组织的 Office 365 域名。
var.client_secret
用于对 Azure AD 应用程序进行身份验证的客户端密钥(api_key)。此选项不能与 var.certificate 选项同时指定。
var.certificate
用于客户端身份验证的证书文件路径。此选项不能与 var.client_secret 选项同时指定。
var.key
用于客户端身份验证的私钥文件路径。
var.key_passphrase
用于解密存储在配置的 var.key 文件中的加密密钥的密码短语。仅当密钥已加密时才设置此选项。
var.content_type

要订阅的内容类型列表。默认情况下,它订阅所有已知的内容类型

  • Audit.AzureActiveDirectory
  • Audit.Exchange
  • Audit.SharePoint
  • Audit.General
  • DLP.All
高级配置选项
编辑

以下配置选项仅在出现问题时才推荐使用。它们必须嵌套在一个 var.api 密钥下,如下所示

    var.api:
      authentication_endpoint: https://login.microsoftonline.com/
      resource: https://manage.office.com
      max_retention: 168h
      poll_interval: 3m
      max_requests_per_minute: 2000
      max_query_size: 24h
var.api.authentication_endpoint
用于授权 Azure 应用程序的身份验证端点。默认为 https://login.microsoftonline.com/,可以更改为访问备用端点。
var.api.resource
要从中检索信息的 API 资源。默认为 https://manage.office.com,可以更改为访问备用端点。
var.api.max_retention
要支持的最大数据保留期。默认为 168h。Filebeat 在首次运行时将为租户提取所有保留的数据。默认为 7 天,这与 Microsoft 在删除日志之前保留日志的标准期限相匹配。仅当您的租户具有更长的保留期限时才增加它。
var.api.poll_interval
在轮询 API 服务器以获取新事件之前等待的时间间隔。默认值 3m
var.api.max_requests_per_minute
每个租户每分钟执行的最大请求数。默认值为 2000,因为这是每个租户的服务器端限制。
var.api.max_query_size
API 在单个查询中允许的最大时间窗口。默认为 24h,以匹配 Microsoft 的已记录限制。

示例仪表板

编辑

此模块附带一个示例仪表板

filebeat o365 audit

字段

编辑

有关模块中每个字段的说明,请参阅 导出字段 部分。