写点什么

如何使用 Amazon Macie 创建自定义提醒

  • 2019-10-17
  • 本文字数:4499 字

    阅读完需:约 15 分钟

如何使用 Amazon Macie 创建自定义提醒

Amazon Macie 是一项安全服务,可以让您轻松发现、分类和保护 Amazon S3 中的敏感数据。Macie 会收集 AWS CloudTrail 事件和 Amazon S3 中的元数据,例如权限和内容分类。在这篇文章中,我将向您展示如何使用 Amazon Macie 来为这些数据集创建自定义提醒,以通知您感兴趣的事件和对象。也会介绍可以在 Macie 中找到的不同数据类型,并讨论如何识别与设定和安全用例相关的字段。您将从本文学到一种适用于您自己场景的调查和自定义提醒的方法。


注意⚠️:如果您之前没有使用过 Amazon Macie , 可以通过该链接介绍的操作步骤来作为起点。

了解 Macie 中的数据类型

Macie 能发现三种数据源:分别为 CloudTrail 事件,S3 Bucket(S3 存储桶)元数据和 S3 Object(S3 存储对象)元数据。每个数据源都单独存储在自己的索引中。因此,在编写查询时,在不同的查询中保留来自不同数据源的字段就显得非常重要。


在每个数据源中,有两种类型的字段:Extracted(提取的字段)和 Generated(生成的字段)。Extracted(提取的字段)的字段直接来自于与该数据源关联的、预先存在的 AWS 字段。 例如,CloudTrail 数据源中的提取字段直接来自于 CloudTrail 日志中记录的事件,这些事件对应于 IAM 用户,角色或 AWS 服务所执行的操作。您可以参阅CloudTrail 日志文件示例来获得更多详细的信息。


Generated(生成的字段)由 Macie 创建。这些字段为创建更强大的查询提供了额外的安全值和上下文。例如,通过从 CloudTrail 事件中获取 IP 地址并将其与 global service provider list(全球服务提供商列表)进行匹配来填充 ISP (互联网服务提供商)字段,就可以搜索出关联 ISP(互联网服务提供商)的 API 调用。


下面的链接会描述三个数据源中的每个字段的更多细节。我将使用它们来发现哪些字段适合调查特定的安全用例。


选择一个安全用例来自定义提醒

出于本文的目的,我将聚焦于一个特定的安全用例来作为演示。对于您要调查的任何特定安全用例,发现由 Macie 收集的相关数据字段并将其转换为自定义提醒的过程,都是相同的。基于此,我将寻找存储在 S3 中的敏感或关键数据的这一主题进行探索,因为它影响许多 AWS 客户。


在开始设计提醒时,第一步要考虑的是与主题相关的所有资源,属性,操作和身份。在这个案例,我将寻找存储在 S3 中的敏感或关键数据,因此以下是一些可能有用的数据字段:



    我将使用上述列表来指导我在 Macie 参考文档中搜索相关字段。首先,我将深入研究 CloudTrail 数据。

    探索 CloudTrail 数据

    使用 CloudTrail 数据源是了解 AWS 环境中正在发生什么活动的最佳方法,因为它包含您的 AWS API 调用以及 API 调用者的身份信息。如果您不熟悉 CloudTrail,请访问 AWS CloudTrail 文档以获取更多信息。


    我有一个关键的 S3 存储桶,我希望在我的企业环境中,当任何外部网络尝试对该 S3 存储桶进行写入时,我都会收到通知。在这种情况下,通常由我自己组织的身份识别系统通过联合身份验证的方式来控制对存储桶的写入操作。这意味着我想编写一个查询,搜索出没有通过联合身份验证访问方式的针对 S3 存储桶对象的写入尝试。如果您不熟悉联合身份验证是什么,那没关系,您仍然可以继续学习。如果您对联合访问感兴趣,请参阅IAM身份提供商和联合文档


    我首先浏览 “Macie CloudTrail Reference documentation(Macie CloudTrail参考文档)”中标题为“ CloudTrail Data Fields Extracted by Macie. ” 的部分。我发现 objectsWritten.key 的描述满足我要调查 S3 资源上的操作的需求。


    接下来,我将从 CloudTrail 的事件中的 userIdentity 对象中提取的 CloudTrail 字段名称。 userIdentity.type 字段看起来符合需求,但我不确定该字段可以接受的值。通过使用“CloudTrail userIdentity Element documentation (CloudTrailuserIdentity 元素文档)”作为参考,我查找 type(类型)字段并查看 FederatedUser 是否列为其中的一个值。


    匹配!我现在已经拥有编写第一个自定义查询所需的所有信息。我将搜索所有“user sessions(用户会话)”(对应于Macie用户的 5 分钟 CloudTrail 事件聚合)中既尝试写入我的 S3 存储桶又使用的不是 FederatedUseruserIdentity 类型进行的任何 API 调用。注意我正在搜索的是事件组而不是单个事件,因为我们正在查找与特定 API 调用相关的事件,而不是所有 API 调用相关的所有事件。为了匹配不等于 FederatedUser 的值,我使用正则表达式并将 FederatedUser 放在括号内,并在开头添加波浪号(〜)。以下是构造出的搜索查询语句


    objectsWritten.key:/arn:aws:s3:::my_sensitive_bucket.*/ AND userIdentityType.key:/(~FederatedUser)/


    现在,是时候在 Macie 的 Research 页面上测试此查询语句并将其转换为一个自定义提醒了。

    新建自定义提醒

    创建自定义提醒的第一步是从“Research”页面运行查询语句。 这样做的好处是可以验证结果是否符合我的预期,并了解警报发生的频率。 一旦我对查询结果感到满意,只需点击几下即可设置自定义提醒。


    1.在 Macie 左侧的导航面板中,选择“Research


    2.从下拉菜单中的选项中选择与查询匹配的数据源。在这个案例中,我选择 “CloudTrail Data



    3.复制我们的上面章节中构造的查询语句到查询框中后,敲打“Enter”键


    objectsWritten.key:/arn:aws:s3:::my_sensitive_bucket.*/ AND userIdentityType.key:/(~FederatedUser)/


    4.此时,可以验证结果是否符合我的预期,并对查询进行任何必要的修改。 要学习“Research”页面如何帮助验证和修改查询功能的更多信息,请参阅“ Using the Macie Research Tab ”。


    5.一旦我对结果满意,可以点击 “ Save query as alert “ 图标,将该查询语句保存为一个提醒。



    6.现在,我填写该页面的剩余字段:包括 Alert title Description Min number of matches , 以及 Severity 。 有关这些字段的详细信息,请参阅“Macie Adding New Custom Basic Alerts. ”



    7.在 “Whitelisted users ” 字段,我可以添加我希望从提醒中排除的从 Research 页面的查询结果中出现的任何用户。 有关此功能的更多细节,请参阅Whitelisting Users or Buckets for Basic Alerts


    8.最后,点击“SAVE”按钮。


    我现在已经成功自定义了一个具有基本功能的提醒,每次当除 FederatedUser 之外的 userIdentityType 的 API 调用写入我的存储桶时,都会提醒我。现在,我将使用 S3 对象和 S3 存储桶数据源来查找更多有用的字段。

    使用 S3 对象数据源

    S3 对象数据源包含从 S3 API 元数据中提取的字段,以及由 Macie 填充的与内容分类相关的字段。为了扩展我对 S3 中存储的敏感或关键数据的搜索和提醒,我将查看 S3 Object Data Reference documentation 文档来查找候选字段。


    我看到 S3 服务器端加密设置元数据可能很有用,因为我知道某个存储桶中的所有对象都应该使用 AES256 进行加密,因此我希望当一个对象上传时没有匹配到这个属性时,便通知我。


    为了创建查询,我将 server_encryption 字段和 bucket 字段组合在一起,以匹配指定存储桶中的所有 S3 对象。请注意正则表达式中的“ /.* ” 和 ” .*/ “。这允许我匹配所有包含有 my_sensitive_project 字符的存储桶。


    filesystem_metadata.bucket:/.my_sensitive_project./ AND NOT filesystem_metadata.server_encryption:”AES256”


    接下来,我有另一个不同名字的存储桶(my_logs_bucket),我知道该存储桶中的对象不应该包含任何个人身份信息( PII )。个人身份信息通常包括姓名,电子邮件地址和信用卡号等信息。有关 PII 的完整列表,请参阅“ Classifying Data with Amazon Macie. ”获知。我想设置一个提醒,每当有包含任何类型的 PII 的对象被添加到该存储桶时便通知我。由于这是由 Macie 提供的数据字段,因此我查看 Generated Fields 标题下的 pii_impact 字段。我的查询语句将搜索任何不等于 none 的值。


    filesystem_metadata.bucket:”my_logs_bucket” AND NOT pii_impact:”none”

    使用 S3 存储桶数据源

    S3 存储桶数据源包含从 S3 存储桶 API 中提取的信息,以及 Macie 通过处理存储桶元数据和访问控制列表(ACL)生成的字段。按照与上面提及的相同的方法,我通过S3 Bucket Data Reference documentation来查找可帮助我创建有用提醒的字段。


    这里有很多可用的字段,具体依赖于我对我的存储桶事先知道多少信息以及我将要安全防护的哪一种类型的安全向量。为了缩小搜索范围,我决定添加一些防止意外或未经授权的数据销毁的保护措施。


    在 S3 Versioning 段落中,我看到 Multi-Factor Authentication Delete 设置是一个可用的字段。由于我将此存储桶锁定为仅允许 MFA 执行删除操作,因此我可以创建一个提醒,以便每次当禁用 MFA 删除操作时通知我。


    bucket:”my_critical_bucket” AND versioning.MFADelete:”disabled”


    潜在数据销毁的另一种方式是通过设置存储桶生命周期的到期设置,该设置会在存储桶生命周期到期后自动删除数据。我想知道当有人将该设置更改为较低的数值时,及时提醒我,以便我可以进行修改,防止丢失任何最新数据。


    bucket:”my_critical_bucket” AND lifecycle_configuration.Rules.Expiration.Days:<3


    现在我已经收集了另一组潜在的提醒查询,我可以通过我用于 CloudTrail 数据的相同步骤将它们转换为自定义提醒。保存后,只要找到匹配项,我就会开始在 Macie 控制台中收到通知。我可以通过从 Macie 导航窗格中选择“ Alerts ”来查看我收到的提醒。


    现在我已经整理好了另一组提醒查询语句,我可以通过上述“自定义提醒”段类似的步骤,在“ Research ”页面中选择“ S3 bucket properties ” 并将它们转换为一个自定义提醒。当保存后,只要找到匹配项,我就会在 Macie 控制台中收到提醒。我可以通过从 Macie 左侧的导航栏中选择“ Alerts ”来查看收到的提醒。

    总结

    我在本文刚开始的部分描述了 Macie 中可用的各种数据类型和数据源。 接着通过使用一个特定的安全用例来演示如何从文档中寻找相应字段后,逐步完成了创建查询并将其转换为自定义提醒的过程。 我的目标是向您展示如何根据您的特定环境来构建提醒,并解决您自己的个性化需求。另外您所有自定的提醒都可以通过 Macie 左侧导航栏的”Settings”,然后点击” Basic alerts”图标来查看和修改。如果您有任何问题,或者您想请求一个新的字段和数据源,可以来 Macie论坛发帖讨论或联系 AWS Support


    Source ariticle: https://aws.amazon.com/blogs/security/how-to-create-custom-alerts-with-amazon-macie/


    !



    作者介绍:


    于波


    AWS安全工程师,致力于 AWS 云服务在网络安全相关领域的推广和研究。在传统网络架构安全方面有丰富的实践经验,对于机器学习框架在网络安全领域的应用等有浓厚的兴趣和热情。
    复制代码


    原文链接:


    https://amazonaws-china.com/cn/blogs/china/如何使用-amazon-macie-创建自定义提醒/


    2019-10-17 08:001121
    用户头像

    发布了 1852 篇内容, 共 119.7 次阅读, 收获喜欢 78 次。

    关注

    评论

    发布
    暂无评论
    发现更多内容

    专有云运维如何更快、更准、更稳?丨智能运维

    百度大脑

    人工智能

    重磅功能!Apache APISIX 拥抱 WASM 生态

    API7.ai 技术团队

    开源 云原生 Wasm Apache APISIX

    一个cpp协程库的前世今生(十七)带时限的锁

    SkyFire

    c++ cocpp

    龙蜥利器:系统运维工具 SysAK的云上应用性能诊断 | 龙蜥技术

    OpenAnolis小助手

    开源 运维

    组件发布效率提升15倍是怎么做到的——基于 Gradle 调度机制深度研究与优化

    字节跳动终端技术

    字节跳动 Gradle Andriod

    用 SwiftUI 实现一个开源的 App Store

    37手游iOS技术运营团队

    swift appstore SwiftUI App榜单 App免费榜

    不是私密链接,如何继续前往?

    BUG侦探

    https HSTS 劫持

    VuePress 博客优化之开启 HTTPS

    冴羽

    Vue 前端 博客 vuepress 博客搭建

    酒店资产管理系统解决方案

    低代码小观

    CRM 企业管理系统 CRM系统 企业管理工具 企业管理软件

    实时音视频入门学习:开源工程WebRTC的技术原理和使用浅析

    JackJiang

    音视频 WebRTC IM 即时通讯IM

    JuiceFS 即将发布 1.0 并调整开源许可

    Juicedata

    开源 文件系统 云存储

    百度智能云以“3D+AI”技术,助力“三亿人上冰雪”

    百度开发者中心

    人工智能

    关于A股投资--《香帅中国财富报告》摘录(3/100)

    hackstoic

    投资

    Go语言gorm框架MySQL实践

    FunTester

    Go MySQL gorm FunTester

    微软Office新增实用功能允许用户在不同设备上轻松送同步字体

    淋雨

    元宇宙时代:银行如何探索数字化转型

    CECBC

    重庆华美:用宜搭实现全流程管理上云,节约超百万研发成本

    一只大光圈

    前端 阿里 低代码 数字化转型 钉钉宜搭

    一周信创舆情观察(1.4~1.9)

    统小信uos

    「干货分享」如何做好应急响应工作?常见应急响应流程

    H

    网络安全 应急响应

    金融云原生漫谈(五)|如何打造更适合云原生的数据存储方案?

    York

    云原生 数据存储

    LabVIEW实现PCB电路板坐标定位(实战篇—2)

    不脱发的程序猿

    机器视觉 图像处理 LabVIEW PCB电路板坐标定位

    2022中国低代码十大发展趋势,市场规模预计达42.6亿

    J2PaaS低代码平台

    低代码 低代码开发 J2PaaS

    ORTC与SIP融合通信服务架构

    安第斯智能云

    音视频 RTC 流媒体

    网络安全——内网渗透完整流程

    网络安全学海

    黑客 网络安全 信息安全 渗透测试 安全漏洞

    Flink 在字节跳动数据流的实践

    字节跳动数据平台

    大数据 flink 字节跳动 埋点 数据流

    Tengine + BabaSSL ,让国密更易用!

    SOFAStack

    密码学 tengine 国密 BABASSL

    不优雅的 React Hooks

    CRMEB

    虎年前迎来脑科学新锐:脑虎科技的创生故事

    脑极体

    到底什么是云?其实云计算从业者也不懂!

    Geek_f56666

    云计算

    金融小程序风险如何控制,WeTest小程序质量专项方案一步到位

    WeTest

    2022 起始篇

    万万

    如何使用 Amazon Macie 创建自定义提醒_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章