发生于今年7月的Capital One数据泄露事件是有史以来金融服务公司遭受的最大的数据泄露事件之一,其规模与2017年的Equifax的数据泄露相当。2015年的AWS云计算大会上Capital One的CIO曾宣布将 AWS 作为其技术战略的核心部分。泄露事件的发生有多方因素,在一定程度上缺乏对AWS Shared Responsibility Model 的理解便是其中一条。没有人可以合理地质疑AWS对其IaaS安全性的承诺,这一点可以通过其向客户提供的各种服务(如IAM ,CloudTrail, WAF等)来证明。
著名的信息分析调研机构Gartner在近期更新的《Is the Cloud Secure?》一文中表明 “Through 2025, 99% of cloud security failures will be the customer’s fault.”。伴随着公有云市场大爆发,各类产品迅速普及的今天,公有云使用者所面临的安全挑战日益严重。对于选择AWS构建其应用的客户来说,使用AWS CloudTrail即可完成对AWS账户的监管、合规性检查、操作审核及风险审核。
审计日志用于记录 什么人在何时做了什么事情,CloudTrail Log Event Reference在此方面做了很好的诠释。默认情况下AWS 账户启用CloudTrail功能,通常我们需要启用多区域日志记录并将捕获的日志数据传送至S3,针对S3服务及Lambda服务的调用我们还需要启用高级特性,这样做使得组织可以更全面的跟踪更改、审核合规性。此处,我们使用AWS官方提供的教程创建合适的Trail即可。
在将源日志数据文件同步至S3后,我们可以采用多种方式对日志进行分析,如AWS官方为提供的Amazon Athena 以及 Amazon CloudWatch Logs,本文中我们使用ELK Stack对数据进行汇总、分析及可视化展示。
数据的采集、存储:
1:Logstash S3 Input Plugin 将数据由S3导出,
需要注意的是通常发送至S3的日志文件有5~10分钟的延迟,单个数据文件是一个json数组包含一条或多条Event日志。如果我们在捕获日志的阶段开启了针对S3以及Lamdba服务的调用,日志文件将会比较大。
建议在创建Trail的时候将不同类型的管理事件发送至不同的S3 Bucket,这样采集数据时可以有针对性的进行采集。
2:在ES中为CloudTrail日志创建合适的索引模板
此处需要根据 CloudTrail Log Event Reference 定义索引的Mappings,由于日志文件中requestParameters、resources、responseElements等字段在不同的事件类型时记录的日志结构不一致,建议将上述字段的dynamic 属性 配置为false (mappings顶层的dynamic属性也需要修改,防止索引自动更新),并将type属性定义为object以防止批量写入时由于索引结构不一致造成数据丢失。或根据需要拆分索引,以达到精确匹配。
参考:
如采用第一种方式,某些字段将不能作为关键字进行搜索。
在Kibana Dev Tools中使用以下命令进行创建:
(欲获得该命令,请点击此处进行咨询)
3:Logstash Split Filter Plugin 对数据进行拆分
由1中可知源日志文件是一个包含一条或多条事件日志的Json 数组,需要使用split插件将源数据拆分为多条单个事件,以发送至下游入库。
4:Logstash Elasticsearch Output Plugin 对拆分后的数据导入ES
将3中拆分后的事件写入ES,写入时使用template_name指明2中配置的模板名。
特别注意:需要指明 document_id ,以防止Logstash 重复写入数据,建议使用每条日志中的 eventID作为document_id。
参考:
Logstash配置文件:
(欲获得该命令,请点击此处进行咨询)
数据的分析、可视化:
使用Kibana对ES索引中的数据进行搜索、查看,并利用图表、表格等数据进行多元化的分析和呈现,例如:
AWS Portal登录情况:
管理员行为分析:
正在使用的AWS服务:
创建DashBoard 对相关内容进行展示,Demo中提取了如下内容:
1:Login Over Time – 用户登录情况
2:Service In Use – 主要使用的AWS服务
3:Top 10 Admin Event – TOP10管理事件(由于未区分索引,使用KQL对敏感操作进了过滤,排除了只读事件)
4:Admin Events List – 管理事件详情
5:Admin User Behavior – 用户行为分析
6:Error Log – API调用的错误日志(授权失败,开机失败等)
写在后面:
云中的安全管理一直都非常具有挑战性,只有持续的安全审计和监控,才是对抗安全风险的根本手段。CloudTrail能够有效的监视基于AWS的IT环境的访问和使用,这些事件数据中包含许多有价值的信息,使用ELK Stack能够有效的挖掘其中的内容,使我们更清晰的了解AWS环境。