概述
当我们在 Amazon S3 中存储大量内容时,识别和分类其中潜在敏感数据可能会有点像在一个非常大的干草堆中找绣花针针,整个的过程是非常低效。那么能否有一种工具可以在数据加入到 S3 后就自动的识别敏感信息并自动进行分类?
同时在我们日常的工作中,访问数据的时间间隔及物理位置相对的固定。如果发生异常的事件,例如原来某个用户一天访问一到两个文件,但如果突然在某天访问超过一百个文件,能否由系统发出告警事件提醒相关人员进行相关检查,确保安全?
本文从如下几部分介绍 Amazon Macie 服务及主要功能,同时还列出常见使用场景,以及如何配置的简要步骤。希望能给大家带来帮助。
什么是 Macie
Amazon Macie 是一种支持人工智能技术的安全服务,可以帮助您通过自动发现、分类和保护存储在 AWS 中的敏感数据来防止数据丢失。Amazon Macie 使用机器学习来识别敏感数据 (例如,个人身份信息 [PII] 或知识产权),分配业务价值,提供此数据的存储位置信息及其在组织中的使用方式信息。
Amazon Macie 可持续监控数据访问活动异常,并在检测到未经授权的访问或意外数据泄漏风险时发出警报。
为什么要使用 Macie
对现存的海量文件进行自动的分类并且根据不同的分类制定不同的监控策略,一旦发生异常的访问需要得到及时的告警,是每个组织面临的挑战。
Amazon Macie 提供了简单高效并且安全的方案,Macie 通过使用机器学习来了解存储的内容和用户行为,同时提供可视化界面,展示安全分类,从而使客户能够专注于保护敏感信息,而不是浪费时间手工的处理。
Amazon Macie 内置检测个人身份信息(PII)或敏感个人信息(SP)的常见敏感信息的引擎,可以自动识别出 S3 存储文件是否包含例如个人身份信息(PII)或其他公司财报等敏感信息,在没有 Macie 之前,这样的工作都需要手工的处理或者使用第三方平台。而现在可使用 Macie 很容易解决上述问题。
Amazon Macie 持续监控数据和账户凭证 。 在发现可疑行为或对实体或第三方应用程序进行未经授权的数据访问时撤销访问或触发密码重置策略,来防范安全威胁。当 Amazon Macie 发出警报时,您可以使用预先在 Amazon CloudWatch 设置的规则发送告警,以便迅速采取行动,保护数据。
Macie 主要功能
Amazon Macie 首先功能分为两部分,一方面是使用自然语言处理(NLP)来理解数据,Macie 可以自动对您的 S3 桶中的数据进行分类。另外一个是使用机器学习理解用户访问数据的行为,同时利用动态分析数据访问模式的预测分析算法,并使用日常访问的用户行为数据不断的训练并优化模型。
Macie 主要功能
自动化处理数据:分析,分类和自动处理数据,从现有的数据和访问日志分析出有规律的历史模式,用户认证数据,用户位置信息及时间信息。
数据安全和监控: 主动监控 日志数据,检测到的异常情况,转发告警信息到 CloudWatch 事件或和 Lambda 以进行后续处理,例如自动修复安全漏洞或者发送邮件通知。
主动预防的数据的丢失,提供即时保护,无需手动干预。
可视化分析:提供存储数据的可视化详细信息。
数据研究与报告:允许用户管理配置报告。
Macie 如何运作
在数据分类过程中,Amazon Macie 识别 S3 存储桶中的对象,并将对象内容流式传输到内存中进行分析。
当需要对复杂文件格式进行更深入的分析时,Amazon Macie 将下载对象的完整副本,并在短时间内保存,直到完成对象的全面分析。Amazon Macie 对数据分类的文件内容分析完毕后,它将立即删除存储内容,仅保留未来分析所需的元数据。
Amazon Macie 持续监控分析当前的用户行为习惯并以基础形成基线,例如敏感数据在哪个 IP 地址以及何时以什么样的频率被进行访问。随后 Macie 持续监控 CloudTrail 日志并训练机器学习所使用的模型,,一旦发现可疑的访问活动,Macie 可以及时发出告警。
示意图如下:
信息分类
Amazon Macie 已经定义好信息分类标准:
配置合规性 – 与合规性内容策略,配置设置,数据日志记录以及补丁级别相关。
数据合规性 – 与合规性或安全控制内容的发现相关,例如存在个人身份信息或访问密钥。
文件托管 – 与恶意软件,不安全的软件或攻击者的命令和控制基础架构相关的托管主机或存储服务。
服务中断 – 可能导致无法访问资源的配置更改。
恶意软件或活动- 潜在的恶意软件或活动。
可疑访问 – 从风险异常的 IP 地址,用户或系统访问您的资源 。
身份枚举 – 一系列 API 调用或访问,枚举系统的访问级别,可能指示攻击的早期阶段或受到破坏的凭据。
特权升级 – 成功或不成功的尝试,以获得对通常受应用程序或用户保护的资源的高级访问,或尝试长时间访问系统或网络。
匿名访问 – 尝试从 IP 地址,用户或服务访问资源,以隐藏用户的真实身份。 例如包括使用代理服务器,虚拟专用网络和其他匿名服务,如 Tor。
开放许可 – 识别受潜在过度允许访问控制机制保护的敏感资源。
位置异常 – 访问尝试敏感数据的异常和危险的位置。
信息丢失 – 敏感数据的异常和冒险访问。
凭证丢失 – 可能损害您的凭据。
告警严重级别
Macie 内置了 5 种告警信息级别
严重(Critical) – 该级别可能导致信息机密性,完整性和可用性受到损害的安全问题。建议将此安全问题视为紧急情况,并实施立即的补救或加固措施。
高 –该级别可能导致信息机密性,完整性和可用性受到损害的安全问题。建议将此安全问题视为紧急情况,并实施立即的补救或加固措施。
中等(Medium) – 该级别可能导致信息机密性,完整性和可用性受到中等性损害。建议在下次更新服务期间修复此问题。
低(Low) -该级别可能导致信息机密性,完整性和可用性受到低等性损害。建议您将此问题作为未来服务更新的一部分。
信息(Informational) – 该级别警告只描述基础架构的特定安全配置详细信息。根据相关业务和组织目标,可以简单地记录这些信息或使用它来提高系统和资源的安全性。
注:严重(Critical) 和高(High)之间的主要区别:
产生严重(Critical)警报的事件可能导致大量资源或系统受到损害。
产生高(High)警报的事件可能导致一个或多个资源或系统受到损害。
开始使用 Macie
需要配置的 IAM 角色
创建身份访问管理(IAM)角色,为 Macie 提供对您的 AWS 帐户的访问权限。这些角色只需要创建一次,以便在所有地区使用。
我们以 Oregon 区域作为例子 ,可以通过启动下面列出的 URL 中找到的 AWS CloudFormation 堆栈模板来创建这些角色和所需的策略。
配置 Cloud Trail 服务
首先需要建立相应 IAM Role, 确保 Amazon Macie 能够访问 S3 及 CloudTrail,另外是要启动 CloudTrail 服务以对相关的 AWS API 操作进行分析。
开始使用 Macie 服务
添加需要管理的 S3 存储桶
需要在 Macie 中添加需要访问 S3 存储桶并对其中的文件进行统计分类。
步骤如下:
文件分类
在 Macie 中添加需要分析的 S3 存储桶后,Macie 会自动开始分析其中的文件,稍等一段时间后,进入 Macie 的 Dashboard 页面。
在 Dashboard 中共提供 10 种视图,为了演示本文章仅仅展示其中的两个。
S3 文件分类统计结果
S3 文件分类统计详细结果
用户行为分析
根据 CloudTrail 的日志,Macie 自动分析所有 IAM user 的相关操作。根据 Macie 预先定义的规则,把 IAM 用户分为如下四类:
白金:这类 IAM 用户或角色曾有管理员或 root 用户的高风险 API 调用的历史,例如创建用户,授权安全组入口或更新策略。 应对这类帐户进行重点监控。
黄金:这类 IAM 用户或角色曾有创建与基础设施相关的 API 调用的历史,这些 API 调用标志其具有高级权限,例如创建实例或拥有向 Amazon S3 写入数据的权限。 这些帐户应密切监控。
白银:这类 IAM 用户或角色曾大量中等风险的 API 调用的历史,例如 Describe 和 List 操作或对 Amazon S3 的只读访问请求。
青铜:这些 IAM 用户或角色通常在 AWS 环境中执行较少量的 Describe 和 List API 调用。
Macie 使用如下的界面展示用户行为分析。
告警管理
Macie 内置了 40 种告警规则,我们可以根据实际情况选择启用或者禁用该规则。
下面我们选择级别为 严重(Critical) 的告警规则进行分析。
从上图可知该告警的规则是 “如果 IAM Policy 设置 S3 存储桶可以被任何人可读,那么触发告警”, 告警样例如下:
添加自定义告警
Macie 不仅仅支持内置的告警规则设置,同时也支持自定义规则的定义。
场景:
根据 Macie 定义的规则,如果文档中包含 “merger, acquisition, divestiture, reorganization, consolidation, demerger, restructuring, rebranding, takeover, subsidiary” 关键字,那么该文档会被分类为 “Corporate Growth Keywords”的类别。
现在假设用户往 S3 上传了具有上述关键字文档,可能存在信息泄漏的风险,需要发送告警严重级别为 “Medium”的告警。
下面演示如何添加自定义告警
Alert Title: Test Customer Alert
Description: Test Customer Alert
Category: 选择 Information Loss
Query: themes:” Corporate Growth Keywords ”
Index: 选择 S3 objects
Min number of matches:1
Severity:Medium
Whitelisted Users: 不选
注:在 Alert 中定义最关键的部分是 Query, Macie 会把 Query 中的内容使用 JavaCC 转换成 Lucene Query。有关查询语法的更多信息,请参阅 Apache Lucene – Query Parser Syntax
如下是常见搜索的示例:
搜索任何不是源自 Amazon IP 地址的控制台登录:
eventNameIsp.compound:/ConsoleLogin:~(Amazon.*)/
公共 S3 存储中的 PII(Personally Identifiable Information)
filesystem_metadata.bucket:”my-public-bucket” AND (pii_impact:”moderate” OR pii_impact:”high”)
同 AWS 其他服务集成
Amazon Macie 可以同其他 AWS 服务集成。如下示例如何使用 CloudWatch 和 SNS 集成。具体演示如下:
更改 S3 元数据(Metadata)的保存周期
缺省条件下,Macie 保存 S3 元数据的周期是一个月,但可以系统支持该周期最长为 12 个月。更改步骤如下:
进入 Macie Console
点击 Integrations -> Choose retention duration for S3 metadata –> Select a range
总结
Macie 使用机器学习算法自然语言处理 S3 中存储的数据,并且使用上下文信息对信息进行分类,并给数据分配相应的业务价值标签。自动发现分类和保护存储在 AWS 中的敏感数据,同时持续检查 S3 桶中 PUT 请求的 CloudTrail 事件,并几乎实时自动对新对象进行分类。同时监控 CloudTrail 的 API 日志,识别出日常的用户行为模式,一旦 Macie 发现异常的行为,可以及时的发出告警。
通过 Macie,可以方便的实现数据安全自动化,及数据可视化和数据丢失防护。
作者介绍
刘春华,AWS 解决方案架构师,AWS 的云计算方案架构的咨询和设计,同时致力于 AWS 云服务在国内和全球的应用和推广,在大规模并发应用架构、无服务器架构,人工智能与安全等方面有丰富的实践经验。 曾任 IBM 云架构师,对企业应用迁移到云及应用系统改造有深入的研究。
本文转载自 AWS 技术博客。
原文链接:
评论