Google Workspace的自动化审计日志取证分析 | ALFA

作者:Sec-Labs | 发布时间:

项目介绍

ALFA代表Google Workspace的自动化审计日志取证分析。您可以使用此工具获取所有Google Workspace审计日志,并使用统计数据和MITRE ATT&CK Cloud Framework对审计日志进行自动取证分析。

项目地址

https://github.com/invictus-ir/ALFA

ALFA项目简介

ALFA(Automated Audit Log Forensic Analysis for Google Workspace)是一个用于自动化审计日志取证分析的工具,主要针对Google Workspace。

相关技术点

  • Google Workspace审计日志
  • MITRE ATT&CK Cloud Framework
  • Python编程语言
  • Linux操作系统

项目用途

ALFA主要用于自动化分析Google Workspace的审计日志,以便识别可疑活动和攻击路径。它具有以下三个主要功能:

  1. ALFA获取:获取所有用户的所有日志类型并将它们保存到数据文件夹的子目录中,每个日志类型生成一个JSON文件。
  2. ALFA分析:通过对事件进行分类和评分,自动分析所有审计日志数据,以识别可疑活动和攻击路径,并生成潜在攻击链以供进一步分析。
  3. ALFA加载:从本地存储中加载数据进行分析。

该工具可以帮助网络安全专家更快地分析Google Workspace的审计日志,从而更好地保护组织的安全。

ALFA

Google Workspace自动审核日志取证分析

版权所有 (c) 2022 Invictus 响应事件
作者 Greg Charitonos & BertJanCyber

开始之前

关于支持的操作系统说明,ALFA在几个Linux发行版(Debian和Ubuntu)上进行了测试。 在Windows/macOS上使用可能有效,也可能无效,根据我们的经验,效果参差不齐,因此请自行决定是否使用。

安装

  1. 下载这个项目
  2. 在终端中导航到文件夹并运行pip install -e .pip3 install -e .

使用ALFA

注意:有关检索credentials.json,请参阅CREDENTIALS.md

设置

  1. 初始化ALFA的第一步是运行alfa init projectname来创建一个新目录以存储配置和数据。例如alfa init project_x
  2. 现在生成了一个名为“project_x”的新项目。在该文件夹中将您的credentials.json复制到config/文件夹中。 (请参阅CREDENTIALS.md)以获取说明。
  3. 复制credentials.json文件后,您就可以使用ALFA了。

ALFA有3个选项,如下所述:

1. ALFA获取

获取所有Google Workspace审核日志

  1. 在“project_x”内(或在之前选择的任何名称中)运行alfa acquire
  2. ALFA现在将获取所有用户的所有日志类型并将它们保存到“data”文件夹的子文件夹中,每个日志类型将生成一个.json文件。
  3. 要查看其他选项,请键入alfa acquire -h

使用ALFA进行高级获取

您可以进行各种过滤以限制您获取的数据,以下是一些示例:

  • 仅获取'admin'日志类型alfa acquire --logtype=admin
  • 将输出保存到特定文件夹alfa acquire -d /tmp/project_secret
  • 仅获取特定用户的日志alfa acquire --user=insert_username
  • 获取在定义的时间段内的日志alfa acquire --start-time=2022-07-10T10:00:00Z --end-time=2022-07-11T14:26:01Z时间格式为(RFC3339)

现在您知道如何获取数据,可以进行一些花哨的操作,以释放ALFA的力量。

2. ALFA分析

分析功能会自动分析给定Google Workspace的所有审核日志数据,以识别可疑活动。

工作原理

  1. 分类 每个单独事件都根据alfa/config/event_to_mitre.yml中制作的映射进行分类。如果一个事件匹配该列表,则将其映射到MITRE ATT&CK Cloud Framework (https://attack.mitre.org/matrices/enterprise/cloud/)的一种技术中。

  2. 打分 接下来,ALFA将按时间顺序分析所有映射事件,以尝试识别kill链或逻辑攻击路径。 例如,映射到持久性阶段的事件后跟映射到凭据访问阶段的事件将导致更高的分数。

  3. 结果 最终,ALFA将向分析人员提供识别出的“子链”列表,可以进一步分析。

如何使用ALFA分析?

  1. 首先运行alfa analyze,它会自动识别(如果没有找到则不会)。它还将使您进入一个shell,您可以在其中执行后续活动。
  2. 要获取有关给定子链的更多信息,只需运行A.subchains(),它将以以下格式(第一个事件的编号,链中最后一个事件的编号,killchain_score)显示链。其中得分1表示已识别到完美的链,得分越接近0,链越弱。
  3. 为了访问导致此链的可疑事件,请使用A.aoi(export='activities.json')将所有已识别的子链导出到文件中,然后您可以将其用于进一步分析。

3. ALFA加载

从本地存储加载数据

从本地存储

使用A = Alfa.load([logname])从本地存储加载并分析日志。使用A = Alfa.load('all')加载所有日志。默认情况下,Alfa 过滤了良性活动。要加载所有活动和事件,请使用Alfa.load([logname], filter=False)。## 修改

添加新的事件映射

直接编辑 config/event_to_mitre.yml 文件是可行的,但不建议。该文件的布局不直观。相反,考虑对 utils/mappings.yml 进行修正。然后通过运行 utils/event_mitre_remap.py 来重新填充 config/event_to_mitre.yml。

修改 Kill Chain 探索方法

Kill Chain 探索函数使用了硬编码常量。这些常量可以在 config/config.yml 中找到。建议取证分析师审查这些值,并根据需要进行修改。这些常量既负责 Kill Chain 统计(kcs),也负责 Kill Chain 探索(子链)。

常见问题解答

想了解 ALFA 使用的统计数据和算法更多信息,我们在此处撰写了一篇博客文章(插入链接)。

已知错误

ValueError: 缺少 config/credentials.json 文件。
您必须在“config”子目录下的项目文件夹中添加一个 credentials.json 文件。请参阅“CREDENTIALS.md”文件中的说明。

OSError: [Errno 98] 地址已在使用中。 这意味着端口 8089 已经被另一个应用程序使用了。如果您在该端口上运行了一个 Web 服务器,并且 Splunk 默认使用端口 8089,则可能会发生这种情况。解决方法是(暂时)停止该端口的使用,因为它需要用于身份验证流程,该端口必须可用。

ValueError: 授权用户信息不符合预期格式,缺少字段 refresh_token。 有时需要更新授权信息,最简单的方法是从 project_name/config 文件夹中删除“token.json”。然后重新运行命令。如果仍然出现问题,则删除 token.json 和 credentials.json,并按照“CREDENTIALS.MD”中的说明重新注册 OAuth 应用程序。

ALFA代表Google Workspace的自动化审计日志取证分析。您可以使用此工具获取所有Google Workspace审计日志,并使用统计数据和MITRE ATT&CK Cloud Framework对审计日志进行自动取证分析。

标签:工具分享, 日志分析