[安全] Continuous Compliance 持续合规解决方案
方案介绍
该解决方案是依赖于开源软件并结合 AWS 其他安全服务,提供一种开箱即用并且满足常用的 18 种行业安全合规的框架的,并且能够周期性的自动检测AWS 相关资源的解决方案。解决方案会扫描您的AWS账户以检查潜在漏洞,过度宽松的身份和访问管理(IAM)权限以及违反最佳实践的行为。并发送非合规的详细告警信息到 Security Hub, 用于帮到用户及时的识别和发现AWS 风险设置,以确保您拥有一个安全的环境并采取适当的保护措施。
为什么采用该解决方案
用户角度
对于许多机构来说,合规性负担正在增加,但是IT机构用于合规性的预算却未能跟上增长的步伐。被迫以更少的资源完成更多的工作,越来越多的安全负责人认识到自动化是必然趋势,以便从业务应用角度清楚地了解合规性和风险状况。
人们经常使用运行手册和清单来进行手工安全项检查,但这样一条条手工的执行,可能导致延误和不准确的结果。 而采用自动化治理提供了。而如果采用安全和合规性自动化的解决方案,则可以快速,进行大规模应用程序部署的权威性检查。同时也增加了组织的安全性,减低安全风险和可进行大规模自动化合规,以确保组织保持合规性。
AWS BD 及 SA 角度
另外在BD和 SA 日常同用户沟通的过程中,用户会经常提问关于安全方面的问题?例如,如何确保在 AWS 上部署的资源是安全的,符合安全的最佳实践或者是合规框架? 对于此类问题的回答,作为 SA 通常会从如下三个方面进行回答。
- 参考云安全共担模型, AWS 负责云本身的安全。而用户需要负责云中所部署资源的安全性。
- 对于用户资源安全,可以参考AWS Well Architect 安全相关方面的内容。参考链接:https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html?secd_intro1
- 可以借助于 AWS提供的安全工具针对现有系统进行检测。例如可以使用 AWS config 来进行合规。截止到2021 年 3 月国内区域,AWS config 共有 119 个托管的规则。同时这个规则都非中文显示。
- 如果想使用 Security Hub 帮用户进行合规检查,截止到2021 年 3 月仅提供 3 种合规框架。其他的类似于 HIPAA, GDPR,CIS Level 1, CIS Level2 都没有提供。
- AWS Foundational Security Best Practices V1.0.0
- CIS AWS Foundations Benchmark V1.2.0
- PCI DSS V3.2.1
另外一个原因是同用户沟通完合规后,通常用户会提及到用户组织所处的行业的安全合规框架。例如保险行业的 HIPAA 方案,支付行业的 PCI-DSS 合规标准。或者是通用的 GDPR 合规场景。用户会提及到是否有开箱即用的工具或者方案可以选择。或者是说能否可以接下来进行 PoC 测试。如果碰到如上的使用场景,那么这个方案就可以帮你。
该解决方案同 AWS config 有什么区别?
AWS Config 是一项托管服务,借助 Config您可以盘点AWS 资源、查看配置更改以及 AWS 资源之间的关系并深入探究详细的资源配置历史记录。使用 Config,还能通过自定义规则来定义所需的资源配置、内部最佳实践和指南,并依据这些规则评估您记录的配置。 AWS Config的主要应用功能:
- 评估您 AWS 资源配置是否具备所需设置。
- 获得与您的 AWS 账户关联的受支持资源的当前配置快照。
- 检索您的账户中的一个或多个资源配置。
- 检索一个或多个资源的历史配置。
- 在资源被创建、修改或删除时接收通知。
- 查看不同资源之间的关系。例如,您可能想要找到使用特定安全组的所有资源。
区别:
- 首先本解决方案是开源软件。所有的检查规则使用 Shell 脚本开发。可以自行的进行修改。而 Config 自带的规则无法进行定制化改造。同时 Config的自定义规则是用 Lambda 的方式开发,相比Shell 脚本的开发方式稍难。
- 自带 19 种安全合规框架,其中 180 种检查规则,可以灵活的进行扩充。
使用场景
- SecurityHub的界面是面向安全运维的具有技术背景的用户,呈现的细节太偏向技术。建议开发一个Dashboad, 是从法律法规的角度进行呈现。
- 合规条目通技术点的联系,是否可以通过同用户做workshop 来实现定制化?这样用户也感觉是根据其自身的需求来进行定义的。
- 等保2.0合规项梳理及实现。
- 建议比对国家新发布的个人信息法及GDPR的对比并同team进行分享。
- 自动驾驶中的OTA升级需要确保数据一致性,如果通过合规的方式确保OTA升级。
业务需求
- 持续监控与定期评估控制环境的变化与即时合规性,是实现安全合规的基本前提。
- 虽然 AWS 已经提供相关的安全合规服务可以协助用户进行安全合规的检查,例如 AWS config 服务。但是有些规则是预先定义好的,无法在此基础上进行修改或者扩展。
- 企业可以根据安全的最佳实践或组织定义的安全运维规章制度进行,但这种方法需要用户手工开发并部署。
- 组织不仅需要考虑IT 系统的安全,同时也需要遵从所在行业安全合规框架。希望AWS 能提供开箱即用的相关行业合规框架检查项,帮助其快速上线并进行自动持续合规检查,及时发现潜在风险点。
技术需求
- 系统应该周期性的自动运行,而不需要人工的启动和干预。
- 为了更加安全,相关的合规检查项必须是开源,不能是黑盒规则。
- 合规检查项规则必须是可配置,可扩展。
- 使用无服务器架构,针对现有资源进行完合规检查后,从节省费用的角度应该释放相关资源。
- 发现不符合合规的资源,应该 及时告警并发送详细信息到 Security Hub。
- 提示相关信息应该使用中文。
- 方案可以在国内及海外部署。
架构设计
概述
实现安全性与合规性的第一步,从用于控制围栏的基准结构开始。如果缺乏对于责任分担模型的清晰了解,可能导致控制机制缺失或者未使用必要的安全功能。而对责任分担模型及共享控制的确切理解与严格遵循,则有助于在基础设施层与客户层中全面推行安全与合规最佳实践,并针对相互独立的特定场景或视角做出对应调整。
- 云安全——AWS负责保护AWS云体系中所运行之全部服务的基础设施。
- 云负载安全——作为AWS用户,您的责任范围由您选择使用的AWS云服务决定。在云服务保护层面,您所选的服务决定了您需要承担的安全职责范围之内的配置工作这一部分的工作量。包括管理您需要使用的数据(包括加密选项)、对资产进行分类,而后使用IAM工具为其分配适当的操作权限。
- 安全框架的可扩展性 — 任何安全合规的规则都不能是黑盒规则,建议使用透明的白盒规则。只有使用开源的解决方案才能确保系统更加安全,也更便于组织内外部的合规审计。同时每个组织对于合规的检查都需要根据自身的实际情况进行动态的扩充和测试。这就要求设计解决方案时,需要考虑安全规则的动态的扩充。
假设与约束
- 假设用户已经开始使用AWS 资源。
- 假设用户需要在全新的 VPC中部署。
- 假设用户已经对于基本的安全合规框架有所了解。
- 假设用户对于每一个检查项需要提供中英文双语。
架构图
架构决策
决策 1: 为什么使用 ECR,ECS, DynamoDB 等服务,而不是直接在 EC2 或者本地资源使用 AK/SK进行检查?
- 第一点,从费用的角度来看,使用EC2 会增加费用。
- 第二点,从安全的角度来看,使用AK/SK会增加密钥泄露的风险。 所以还是不会使用EC2来运行。
所创建资源
- 1 个 ECR Image
- 用于存储相关代码。
- 需要提前使用 Docker build 并 push 到 ECR 中。
- 1个VPC
- 1个 IGW
- 2个 Public Subnet
- 2个 Private Subnet
- 2个 NAT Gateway (占用2 个 EIP)
- 1 个 Security Group
- 1 个 ECS Cluster
- 2 个合规框架 HIPAA 及 GDPR 。
- 动态的添加其他合规框架 CIS-Level1, CIS-Level2 等。
- 每个 ECS task 任务都运行在 Private Subnet 中,不需要暴露在公有子网中。
- 1 个 DyanamoDB table
- 该 DynamoDB 表用于存储 Prowler 合规发现(为了便于中国的最终用户使用,已经把所有的检测结果提供汉化)。
- 1 个 S3 存储桶
- 用于存取合规扫描的结果。
- 提供 CSV 和 JSON 两种格式。
- 1 个 Lambda 函数
- 用于把 合规发现到 问题发送并存储到 Security Hub。
系统运行逻辑
- 使用 CloudFormation 自动部署解决方案,会在系统内创建 Cloudwatch 周期性触发器。 缺省情况下该触发器每天运行一次。
- 为了安全隔离,本解决方案会创建独立的 VPC。
- CloudWatch 触发任务时会启动 ECS中的 Task,该 Task 会根据 Task definition 中的定义从 ECR 中拉取 Prowler 的 Docker image 进行部署运行。
- ECS Task Role 具有拉取 ECR Image,写入DynamoDB表,S3 bucket 写相关权限。
- 首先 ECS task 会运行在本解决方案所创建的私有子网中。由于需要到 ECR 中拉取镜像,所以需要使用 NAT Gateway。
- ECS task 首先根据选择的合规框架所定义的合规检查项,扫描本区域中的所有资源。
- 当执行完该框架的所有检查项后,代码会把相关记录进行信息丰富和汉化后写入 DynamoDB 表中。
- 当记录插入到 DynamoDB 表后,会借助 DynamoDB stream 触发 Lamba 函数。
- Lambda 函数会根据 AWS Security Finding 数据格式 -ASFF(https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html)进行数据发送。
- 最终合规结果会在Security Hub 显示并且存在在 S3 存储桶,便于归档和后期进一步分析。
该解决方案所使用的 IAM Policy
ViewOnlyAccess
用例:该用户可以在所有服务中查看AWS资源列表和基本元数据。用户不能读取超出配额的资源内容或元数据,也不能列出资源的信息。 策略描述:该策略允许对大多数AWS服务的资源进行List*、description* 、Get*、View*和Lookup*访问。要查看该策略为每个服务包括哪些操作,请参见ViewOnlyAccess Permissions
SecurityAudit
用例:该用户监视帐户是否符合安全要求。该用户可以访问日志和事件,以调查潜在的安全漏洞或潜在的恶意活动。 策略说明:该策略授予查看许多AWS服务配置数据和查看其日志的权限。要查看该策略为每个服务包括哪些操作,请参见SecurityAudit Permissions。
这两个 Policy 已经在 Cloudformation 的模板中定义。
方案优点
该解决方案通过保持“持续合规”状态来减少合规性和审核准备负担。即达到满足所有合规性要求的状态,然后连续保持该状态。如果没有满足,则及时提示用户。
- 19 种开箱即用的安全合规框架。
- 合规检查项完全开源,所有的检查项基于 Shell 脚本开发,便于扩展。
- 安全合规框架的动态扩展性。
- 合规检查结果符合AWS Security Finding 格式 (ASFF),便于第三方系统集成。
- 面向 Serverless 架构,使用 Fargate 及 Lambda,无需 EC2 实例。
- 所有检查结果中英文显示,方便国内用户部署。
- 同时支持 AWS China 及 Global 区域。
安全合规覆盖
截止到 2021/01年,本解决方案共支持 150项以上的安全最佳实践合规检查。可以根据如下的列表进行动态的选择。
- Identity and Access Management [group1]
- Logging [group2]
- Monitoring [group3]
- Networking [group4]
- CIS Level 1 [cislevel1]
- CIS Level 2 [cislevel2]
- Extrassee Extras section[extras]
- Forensics related group of checks [forensics-ready]
- GDPR [gdpr]
- HIPAA [hipaa]
- Trust Boundaries [trustboundaries]
- Secrets
- PCI-DSS
- ISO-27001
- Internet exposed resources
- EKS-CIS
- FFIEC
- SOC2
- ENS (Esquema Nacional de Seguridad of Spain)
系统组件
Security Hub 介绍
AWS Security Hub 可让您全面查看 AWS 账户中的高优先级安全警报与合规性状态。您可以任意使用一系列强大的安全工具,从防火墙和端点保护到漏洞和合规性扫描程序。但是,这通常会让您的团队在这些工具之间来回切换,每天处理数百甚至数千个安全警报。借助 Security Hub,您现在可以设置单个位置,对来自多个 AWS 服务(如 Amazon GuardDuty、Amazon Inspector 和 Amazon Macie),以及来自 AWS 合作伙伴解决方案的安全警报或检测结果进行聚合、组织和设置优先级。您的检测结果可在具有可操作图形和表格的集成控制面板上进行直观汇总。您还可以使用自动合规性检查(基于您的组织遵守的 AWS 最佳实践和行业标准),持续监控您的环境。只须在管理控制台中单击几次,就可启动 AWS Security Hub,一旦启用,Security Hub 将开始对检测结果进行聚合与设置优先级。
Security Hub 优势
聚合检测结果可节省时间
对于来自 AWS 服务和 AWS 合作伙伴工具的跨账户安全检测结果,AWS Security Hub 减少了收集并确定其优先级的工作量。该服务使用标准检测结果格式摄取数据,从而避免了耗时的数据转换工作。然后,它将提供者的检测结果相关联,以确定最重要检测结果的优先级。
使用自动检查提升合规性
根据行业标准和最佳实践(例如互联网安全中心 (CIS) AWS Foundations Benchmark),您可以使用 Security Hub 运行自动化、持续的账户级配置与合规性检查。这些检查提供合规性分数,并确定需要注意的特定账户和资源。
快速对检测结果采取行动
集成的控制面板将所有账户的安全检测结果汇总起来,向您显示当前的安全性与合规性状态。现在,您可以轻松发现趋势,识别潜在问题,并采取必要的后续步骤。例如,使用与 Amazon CloudWatch Events 的集成,您可以将检测结果发送到开单、聊天、电子邮件或自动修复系统。
Prowler 介绍
Prowler 软件是什么?
Prowler是由Toni de la Fuente开发的开源Amazon Web Services(AWS)“安全最佳实践评估,审计,强化和取证准备工具”。 其可根据AWS Center for Internet Security基准以及GDPR和HIPAA检查评估您的基础架构。您可以检查整个基础架构,也可以指定要查看的AWS配置文件或区域。Prowler可以同时运行多个评估,并以CSV、JSON和HTML等标准格式生成报告。它还与AWS Security Hub集成。
Prowler 架构
prowler From: https://github.com/toniblyx/prowler
为什么要使用Prowler?
因为 Prowler 的规则是基于 Shell 语言开发,具有开源并且易于修改。
Prowler 可以同 AWS 哪些服务做集成?
大量工具可以帮助您了解AWS账户的安全性和合规性,但这些工具通常会以不同格式生成自己的发现结果集。Security Hub将发现结果标准化。所以需要将 Prowler 发现结果使用 ASFF 数据格式发送到 Security Hub。借助Security Hub,可以使用标准的发现格式提取从集成提供商(第三方服务和AWS服务)生成的发现,从而无需安全团队转换数据。
附录:合规到技术的映射
- Physical and environment Security
- Data Center Security
- Infrastructure Security
- Equipment disposal
- Supply chain security
- Compliance
- Configuration and change control management
- Policy enforcement
- Audit assurance and compliance audit
- Access control
- User Identity management
- Access controls
- Network Security
- Operational security
- Data and resource segregation
- Audit and Trace
- Data Security
- Information lifecycle management
- Data sanitisation
- Encryption and key management
- Business continuity availability and resiliency
- Incident and Risk management
- Risk assessment
- Intrusion detection
- Treat and vulnerability management