亚马逊AWS官方博客
从永恒之蓝开始,安全防范没有结束
信息安全现状
时钟进入到2017年,物联网安全,DDoS攻击和勒索软件被越来越多的国内外信息安全预测机构列为年度最大信息安全威胁。上周爆发的勒索软件WannaCry (又称作永恒之蓝)已席卷全球99个国家,让各类技术宅男们和信息安全的童鞋们又错过了一个美好的周末。尽管目前该病毒已被安全人员找到了阻止其传播的方法,但是类似的安全事件依然给我们敲响了云端安全运维的警钟。
WannaCry事件回顾,5月12日晚, WannaCry 蠕虫病毒在全球大肆爆发。据外媒报道,攻击在99个国家实施了超过75000次攻击。该攻击利用漏洞MS17-010中的某些版本的SMB服务器协议进行传播,利用Windows 445 端口的安全漏洞潜入电脑并对多种文件类型加密并使用户无法打开,攻击者称需支付比特币解锁,补丁程序已于2017年3月14日发布,但未打补丁的用户有可能遭受此次攻击。通过这个事件我们发现只要是购买正版操作系统并及时更新补丁的用户,都不会受到影响。永久解决办法有2个,1.开启windows的自动更新功能,将最新补丁打上; 2.对于部分比较老的windows系统可以手动下载更新包并安装。
这样的安全事件不是第一次也不会是最后一次,要确保我们的信息安全,需要做的事情有太多,比如完善的信息安全应对机制,一系列自动化运维工具或服务,坚决的执行能力以及定期的审核机制。如果你恰好开始关心信息安全,而我们又专业,不妨看看AWS是如何看待信息安全的。
AWS信息安全理念
数据属于谁?
虽然是一个老生常谈的问题,但确实一个非常重要的问题,而且答案永远只有一个,数据属于客户。当你上云之后,如何确保你的数据真的属于你是很多客户评估是否上云时最纠结的问题!在AWS,你可以非常清晰的从上图中看到这个界限。所有操作系统以上(包括操作系统本身)的内容都是客户自己自主可控,AWS没有任何权限访问,同时如果你使用的是AWS提供的Windows或者Linux镜像,该镜像 的补丁机制是全球一致管理的,我们会从各个合作厂商那得到补丁,并第一时间更新到镜像里。如果是开篇提到的流氓攻击,在AWS上的客户可以不需要担心了,因为该补丁在镜像中自动更新了。
如何确保我在云上是安全的?
如何数据安全可能是一个说上三天三夜都没法说完的话题,今天我们从AWS信息安全最佳实践出发,给大家从几个层面来分析信息安全的层级,并重点介绍如何帮助客户在理解理念之后的安全落地问题。首先我们可以看到在云上我们需要这么几个维度的安全,底层基础架构的安全,网络的安全,权限及审计的安全,服务本身的安全,事先预防等等。总之,信息安全从来都不是靠说的,而是靠做的,所以接下来我们给大家做一些简单示范,让你在使用AWS时更加得心应手。
底层基础架构的安全
熟悉AWS的同学可能知道,AWS底层的虚拟化平台使用的是Xen,套用一句官话,不管我们的工程师是多么的小心,我们依然需要时刻告知我们的客户对于AWS服务底层安全的疑虑,所以大家可以在以下链接找到关于Xen的信息安全公告,同时大家也可以从AWS信息安全白皮书中看到AWS如何对于底层基础架构的安全设计,限于篇幅的原因本文不作展开。
Xen Security Advisiories
https://thinkwithwp.com/cn/security/security-bulletins/
AWS Security Best Practices
https://d0.awsstatic.com/whitepapers/aws-security-whitepaper.pdf
网络安全
- 上云的安全
当你的数据需要上云时,你有三种非常安全的方式来传输您的数据,通过TLS加密的HTTPS协议将数据直接通过互联网传输到S3, 建立专用VPN进行数据传输以及通过专线将AWS与您的数据中心打通,并将AWS纳入您现有的全球专线网络中,让你全球任何一个办公室或者数据中心都通过内网的方式随时的安全访问云端的数据或者系统,如同您多了一个拥有无限扩展能力的远端数据中心。
- 云上的安全
当您的数据或者系统已经部署在AWS上时,你可以通过上图的简单示意图来对您的系统进行网络隔离及控制。比如,你可以按照不同的应用划分不同的VPC,不同的VPC之间网络隔离,同时在同一个VPC内设置不同安全级别网络区域,如公有访问区,DMZ区,私有网络区。利用VPC内的免费防火墙工具安全组,网络ACL来对云端的机器及网段进行精细化控制。如图上的例子,你可以通过图形界面在安全组上关闭该机器137,139,445 端口就能轻松的规避本文开篇提到的流氓攻击。如果您确实需要开启这些端口,也可以在安全组内指定对具体的源IP开放端口,或者将这些机器放置在私有网段,当这些私有网段的机器需要访问互联网的某些站点进行补丁升级等操作时,通过NAT的方式允许VPC的出向流量。
如果您还需要对VPC内不同私有网段的机器访问进行更精细化控制,还可以通过另外一个免费的防火墙网络ACL来实现。
当您的网络与AWS云端VPC通过VPN或者专线联通时,你还可以通过路由表来控制您哪些数据中心的网段可以访问云端的哪些网段。
权限及审计安全
当你的业务上云后,你可能面临不同人员需要管理你云端资源,这些人可能包括,您公司的开发人员,运维人员,财务部,人事部以及您外部形形色色的服务供应商或者运维外包供应商,如何给予这些人员适当权限去访问他们需要访问的AWS资源以及事后审核这些人员的访问情况,是很多企业客户迫切需要解决问题。
AWS IAM不但可以轻松解决上述所有访问权限问题,还可以帮您打通绝大部分企业遇到的SSO问题,让你数据中心的AD或者第三方机构与AWS建立授权机制,当您的用户在本地AD通过验证后,直接访问AWS上的数据,无需重复创建用户。同时可以给所有IAM用户开启复杂密码功能,并强制用户每隔一段时间修改密码。
内审或者外审通常是一个企业每年必做的事情,在AWS只需开启CloudTrail服务就可以自动记录所有AWS资源的使用情况,下图是一个CloudTrail的简单示例,我们可以看到什么时间哪个用户对什么资源做了什么事情。
同时还可以进一步查看某个事件的详细信息,便于审核,如下图所示:
服务本身的安全机制
由于AWS服务众多,限于篇幅的原因,本文重点讲解AWS虚拟机(EC2)的安全,如您对其他服务也很感兴趣,欢迎阅读AWS安全白皮书。
AWS Security Best Practices
https://d0.awsstatic.com/whitepapers/aws-security-whitepaper.pdf
Amazon EC2多层安全模型
Amazon EC2多层安全模型包含底层物理服务器的操作系统,虚拟操作系统或者客户操作系统,防火墙和签名的API调用。目标是防止EC2内的数据被未授权的系统或者用户访问,在不牺牲客户配置灵活性的时,尽最大限度保证EC2本身的安全。
Amazon EC2当前利用了一个AWS高度定制化的Xen hpervisor,底层托管主机操作系统执行Ring0(最高权限),客户操作系统执行Ring1,应用执行Ring3(最低权限)在虚拟化层面来隔离客户和hypervisor。
当多台EC2运行在同一台底层物理服务器时,他们被Xen hypervisor隔离,如上图所示,在hypervisor层中有防火墙,且该防火墙位于底层物理网卡和客户EC2虚拟网卡之间。所有流量都需要通过该层,所以任意一个EC2实例无法访问其他EC2实例,底层的内存(RAM)也是使用类似机制实现隔离。
底层硬件的操作系统都必须通过MFA的方式进行访问,且这个系统通过AWS
特殊设计,构建及配置,确保其安全,所有访问都会自动记录且被审计。
客户操作系统完全有客户控制,客户拥有完整的根或者管理员权限,AWS没有任何权限可以访问。
重要数据经常备份,重要数据经常备份,重要数据经常备份,重要的事情说三遍。 在AWS你可以将常用对象数据存放在EBS或者S3,对于存放在EBS的数据每天EBS快照,确保任何重要数据都有一份最近的拷贝。对于S3上的对象数据,通过S3 桶策略进行精细控制,同时开始S3的版本控制功能防止误删或脏数据。
事先预防
如何做好事先预防工作呢?比如某用户处于某种原因开启了一些高端口或者公司命令禁止的网络端口,IT部门如何迅速发现并纠正呢?AWS Config服务可以帮到你。Config可为您提供 AWS 资源的详细库存及其当前配置,并会持续记录对这些资源配置所做的更改(例如,安全组的出/入规则、适用于 VPC 的网络 ACL 规则和 Amazon EC2 实例上标签的值)。
您可以通过创建 AWS Config 规则进行评估,规则规定了您理想的配置设置。AWS Config 能够提供可自定义的预定义规则 (称作托管规则),以帮助您开始进行评估。您还可以创建自己的自定义规则。在 AWS Config 持续跟踪您的资源中出现的配置更改时,它会检查这些更改是否违反了规则中的任何条件。如果某个资源违反了规则,那么 AWS Config 会将该资源和规则标记为不合规。例如,当创建 EC2 卷时,AWS Config 可以按照需要卷加密的规则来评估该卷。如果卷没有加密,AWS Config 会将卷和规则标记为不合规。AWS Config 还可以在您的所有资源中检查有无账户范围内的要求。例如,AWS Config 可以检查账户中 EC2 卷的数量是否在所需总数以内,或者账户是否使用 AWS CloudTrail 进行登录。
如何进行远程系统管理
Amazon EC2 系统管理器是一系列可帮助您自动执行管理任务的功能,例如收集系统清单、应用操作系统补丁、自动创建 Amazon 系统映像 (AMI) 以及大规模配置操作系统和应用程序。您可以使用 Systems Manager 以远程方式安全地管理托管实例的配置。托管实例是您混合环境中已经针对 Systems Manager 配置的任意 Amazon EC2 实例或本地计算机。系统管理器所提供的功能和共享组件无需额外费用。您仅需为实际使用的 Amazon EC2 资源付费。
系统管理器支持对下列操作系统进行管理:
Windows操作系统 | Windows Server 2003 至 Windows Server 2016,包括 R2 版本 |
Linux操作系统 | 64 位和 32 位系统 Amazon Linux 2014.09、2014.03 或更高版本 Ubuntu Server 16.0.4 LTS、14.04 LTS 或 12.04 LTS Red Hat Enterprise Linux (RHEL) 6.5 或更高版本 CentOS 6.3 或更高版本 仅 64 位系统 Amazon Linux 2015.09、2015.03 或更高版本 Red Hat Enterprise Linux (RHEL) 7.x 或更高版本 CentOS 7.1 或更高版本 |
如果大家感兴趣,可以参考下面链接进行具体的配置安装。
http://docs.amazonaws.cn/systems-manager/latest/userguide/what-is-systems-manager.html
接下来介绍使用系统管理器来进行补丁安装。由于北京区的系统管理器暂无补丁管理组件,我们使用Run Command组件来进行补丁安装。您可以使用系统管理器的Run Command以远程方式安全地管理托管实例的配置。托管实例是您混合环境中已经针对系统管理器配置的任意 Amazon EC2 实例或本地计算机。利用 Run Command,您可以自动完成常用管理任务以及大规模执行临时配置更改。
管理员使用 Run Command 可以在其托管实例上执行以下类型的任务:安装或引导应用程序,安装系统补丁,获取系统资产信息,构建部署管道,从 Auto Scaling 组终止实例时捕获日志文件,以及将实例加入 Windows 域等等。
写在最后的话
一波热闹的攻击事件已经过去,下一次攻击开始还会远吗?如果您能事先利用AWS提供的信息安全服务(文中提到的很多服务是免费的),配合完善的审核机制,不管是什么类型的信息安全风险来临你都能处乱不惊。