最近几年,勒索病毒成为许多企业安全管理者谈之色变的话题。从早期的 WannaCry,到最新的 GlobeImposter,各种勒索病毒以及其变种对企业的数据完整性保护提出了极大的挑战,其中针对制造业、政府、医疗等行业的攻击尤其猖獗。为了有针对性的保护我们的数据,我们先来看一下勒索病毒攻击的典型过程。
勒索病毒典型过程解析
勒索病毒顾名思义它是病毒(或恶意软件)的一种。和其他病毒类型一样,它往往是先由内部网络中的一台主机感染,然后由这台感染的主机扩散到整个企业的内部网络其他主机上。最常见的攻击第一台主机的方式是通过钓鱼邮件或者密码暴力破解,一旦成功,攻击者会尝试利用系统或软件漏洞通过内部网络进行快速病毒复制和扩散。一个新的趋势是攻击者会优先搜寻并加密您内网中的备份文件(.bak),包括各种文件服务器上或者备份系统中的备份数据,从而使您无法恢复数据。
AWS 云上安全视角
AWS 云上安全采用云采用框架(Cloud Adoption Framework),将安全控制措施分为:
指导性控制机制
旨在围绕运营环境构建管理、风险和合规模型。
预防性控制机制
旨在保护您的工作负载并减少威胁和漏洞。
检测性控制机制
可以让您在 AWS 中部署的项目的运行情况变得可见、透明。
响应性控制机制
旨在纠正可能偏离安全基线的行为。
AWS 云上勒索病毒防护之指导性控制机制
1. 构建企业安全管理体系
同在数据中心一样,首先您需要在企业内部制定一套安全管理制度,定期开展员工信息安全意识培训,特别是针对钓鱼邮件、违规网站文件下载、外部存储设备的使用等方面。可以定期进行钓鱼邮件的内部测试,了解内部员工的安全意识水平,常用的工具包括 Kali Linux 集成的 Swaks,以及 Phishing Frenzy,PhishSim 等。
2. 制定 AWS 云上最小安全基线,规范系统安全配置
针对勒索病毒的感染和扩散的特点,制定 AWS 云上安全最小基线,规范云管理员的日常运维配置。
AWS 云上勒索病毒防护之预防性控制机制
病毒的防护重在预防,勒索病毒也如此。AWS 上许多原生的服务以及安全合作伙伴的解决方案帮助客户更好的预防勒索病毒。
补丁管理
勒索病毒往往利用操作系统的安全漏洞,在内部网络中快速扩散。因此,预防勒索病毒大面积爆发最有效的方法就是及时安装系统补丁。AWS Systems Manager 可以帮助您在大量 Amazon EC2 或本地实例中自动选择并部署操作系统和软件补丁。下面为大家演示如何利用 AWS Systems Manager 进行补丁的统一管理。初始配置 Systems Manager 请参见:https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html。
创建补丁基线
在 AWS Systems Manager – Patch Manager 中,选择 Create patch baseline
输入基线名称、操作系统类型、设置补丁审批规则等参数后,提交创建。
设置实例的 patch group
在 AWS Systems Manager – Managed Instances 中,选择您需要安装补丁的实例,在 View details – Tags 中设置标签 Patch Group。
添加 patch group 到补丁基线 patch baseline 中
回到 Patch Manager,选中刚才创建的补丁基线,选择 Actions – Modify patch groups。
将刚才设置的 patch group 的值加到 baseline 中。
创建 Maintenance Window
在 AWS Systems Manager – Maintenance Window 中,创建一个新的维护窗口。
设置 Schedule 各项参数,并创建维护窗口。
选中创建的维护窗口, 选择 Actions – Register targets,注册您需要打补丁的实例。
选中创建的维护窗口, 选择 Actions – Register Run command task。设置 Command document 为 AWS-RunPatchBaseline,设置 Priority,选中之前设置的 target group id,关联 role 权限,设置 rate control 等参数。具体各参数设置参见:https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-patch-mw-console.html。
实例远程管理
TCP 22 和 TCP 3389 是管理员们最常用的远程管理端口。勒索病毒攻击者往往会使用这些端口进行密码暴力破解,从而拿到主机的用户权限,并植入勒索病毒。这种方式也同样适用于内网中。您可以选择 AWS 合作伙伴中的商业化堡垒机来避免实例直接向陌生地址暴露上述端口,您也可以选择 AWS Systems Manager- Session Manager 来实现主机的远程管理。
在 AWS Systems Manager- Session Manager 中,点击 Start Session,选择需要管理的主机,Start Session 进入主机命令行界面进行日常操作。
AWS 云上勒索病毒防护之检测性控制机制
安全合规检查
在指导性控制机制中,我们定义了 AWS 云上最小安全基线,我们应该如何来检测并确保安全基线的落实呢?AWS Config rules 为我们提供了强大的自动化合规工具,我们可以通过这个服务,将我们原来指导性的控制机制通过 Compliance as Code 的方式,变成自动化的检测性控制机制。之前我们提到过,勒索病毒的一种攻击途径就是通过远程管理端口使用暴力破解的方式,进入到我们内部网络中,针对这个风险,应该在安全基线中要求“实例禁止使用 Public IP”。下面我们通过这个 User Case 为大家展示如何通过 AWS Config rules 来持续监控这项安全基线要求。
在 AWS 托管规则中,我们没有找到对应的规则,因此需要创建自定义的 Config 规则。这里推荐使用 Github 上开源的开发套件 aws-config-rdk 来部署。RDK 环境准备,参见:https://github.com/awslabs/aws-config-rdk。
编写 python 脚本
您可以自己编写 Lambda 脚本,或者使用 github 上开源的已有 Config rules 脚本。这里我们直接将别人写好的脚本 copy 到 rdk 目录下。脚本地址:https://github.com/awslabs/aws-config-rules/tree/master/python/EC2_INSTANCE_NO_PUBLIC_IP。
设置 AWS Profile
在您的 CLI 中设置 AWS Profile,具体可参见 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html。
部署 Config rules
在 RDK 目录下输入 rdk –profile=china deploy EC2_INSTANCE_NO_PUBLIC_IP 进行部署。
验证
在 Lambda 函数中,可以看到使用 RDK 自动创建的 Lambda 函数。
在 AWS Config 规则中,可以看到 RDK 部署的 Config 规则。
点击规则名称,我们可以查看到不合规的具体资源情况。
构建安全日志 SIEM 系统
除了安全合规检查以外,您还选择购买 AWS 合作伙伴的安全日志 SIEM 类产品,帮助集中管理和展示当前安全态势。通过对类似防病毒软件产品日志、系统安全日志等的分析,及时发现潜在的勒索病毒,并在其扩散前进行响应。对于使用 AWS Global 的用户,您也可以使用 AWS Security Hub 帮助您对当前的安全态势进行集中监控。
AWS 云上勒索病毒防护之响应性控制机制
一旦被勒索软件感染,最有效的解决手段是从备份中恢复数据。因此,那些存在主机上的备份文件成为了勒索病毒最主要的攻击目标,如何有效保护备份文件给用户带来了新的挑战。AWS 采用快照的方式对块存储进行备份,这些备份被存储在 S3 对象存储上,能够帮助您解决备份的安全性问题。与此同时,AWS 也推出了 AWS Backup 服务,能够帮助您集中的管理备份策略。目前支持的服务有 Amazon EFS, EBS, Storage Gateway, DynamoDB 以及 RDS。
我们以 EBS 的备份和恢复为例:
创建 Backup Vault
Backup Vault 用于集中管理您的备份。在 AWS Console 中选择 AWS Backup – Backup vaults – Create Backup vault
输入 Backup vault 名称,选择用于加密 Vault 中备份的 KMS master key (目前仅支持对 Amazon EFS 的 backup 加密),输入标签;
创建备份计划
在 AWS Console 中选择 AWS Backup – Backup plans – Create Backup plan,创建一个新的 Backup plan 以及 Backup rule,关联到之前创建的 Backup Vault。具体参数配置参见:https://docs.aws.amazon.com/aws-backup/latest/devguide/creating-a-backup-plan.html;
选择 Assign resources 并关联需要备份的资源。
备份恢复
在 AWS Console 中选择 AWS Backup – Protected resources 中,选中您需要恢复的 AWS Resource ID;
选中需要恢复的备份,并点击 Restore,确认参数后,选择 Restore backup;
等待片刻后,备份恢复成功。
最后也是最重要的
尽可能的使用 AWS 云原生的托管服务,例如 RDS、DynamoDB 等。因为 AWS 采用责任分担模型来明确用户和 AWS 之间的安全责任,当您选择使用这些服务时,您将不再需要将精力放在如何给操作系统安装补丁,如何保护操作系统的密钥,是否有防病毒措施等安全问题上,这些工作将由 AWS 为你负责,您可以更放心的在 AWS 上存放您的数据,免受勒索软件的困扰。
相关文章:
作者介绍:
陈晓东
亚马逊 AWS 专业服务团队云安全咨询顾问。负责企业级客户的云安全咨询、安全架构设计和技术实施。在信息安全领域拥有多年架构设计、运维、咨询和团队管理经验,对公有云安全、容器安全、DevSecOps 等有深入的研究和热情。
本文转载自 AWS 技术博客。
原文链接:
https://amazonaws-china.com/cn/blogs/china/build-cloud-protection-system-protect-your-data-easily/
评论