如何使用调度程序从 AWS Security Hub 中提取数据?

How to pull data from AWS Security Hub using Scheduler?

如何使用调度程序自动从 AWS 安全中心提取数据? 我是 AWS 的新手,正在做一些我在下面发现的分析:

  1. Security Hub 数据采用 Json 格式,我们没有导出到 csv/excel 的选项?
  2. 所有安全中心 findings/insights 都自动发送到 eventbridge?是真的吗?如果是,我在哪里可以在 eventbridge 中检查相同内容?

是否有任何其他选项可以每 12 小时自动从安全中心提取数据。我想从安全中心获取数据并将其传递给 ETL 流程,以便对此数据应用一些逻辑?

Eventbridge 是唯一且最好的方法吗?

开启:

  1. 它基于 JSON 但它是自己的格式,名为 AWS Security Finding Format (ASFF)
  2. 这是真的(对于 SecurityHub 支持并能够看到的所有资源)。需要注意的是Each Security Hub Findings - Imported event contains a single finding。 为了查看这些事件,您需要为每种类型的事件创建 EventBridge 规则 based on the format

完成设置后,the event could trigger an automatic action喜欢:

  • 调用 AWS Lambda 函数
  • 调用 Amazon EC2 运行 命令
  • 将事件中继到 Amazon Kinesis Data Streams
  • 激活 AWS Step Functions 状态机
  • 通知 Amazon SNS 主题或 Amazon SQS 队列
  • 将发现结果发送到第三方票务、聊天、SIEM 或事件响应和管理工具。

总的来说,Eve​​ntBridge 是前进的方向,但与其使用基于计划的方法,不如求助于基于事件的方法。 为了拦截所有发现,而不是仅由特定的规则触发规则,您需要调整过滤器并实质上为 SecurityHub 创建一个包罗万象的规则,然后触发您的 ETL 作业。

编辑(按照评论中的要求):

规则中的过滤器如下所示:

{
  "source": [
    "aws.securityhub"
  ]
}

关于 ETL,这实际上取决于您的用例,让 Kinesis Data Firehose 将其转储到 S3,然后按照您的建议自行使用 Athena 就可以了。另一种常见的方法是将数据发送到 ElasticSearch(或现在的 OpenSearch)。 这个blog post描述了两者,你可以根据自己的需要进行调整。

编辑 2:

根据评论部分的讨论,如果您真的想使用基于 cron 的方法,则需要根据您的首选语言使用 SDK,并围绕 GetFindings API 创建一些内容,以轮询来自 SecurityHub 的数据。 您可以use this function in Python,以从SecurityHub提取数据到Azure Sentinel为例