云安全概述
Azure Stack 作为一款混合云产品,安全防护及安全的业务提供是必备基础能力,本篇将从云安全的定义、Azure Stack 安全机制、Azure Stack 未提供的安全防护三方面,探究 Azure Stack 在安全层面所提供的技术保障以及需要加固的方方面面。
云安全的定义
早在 2008 年,当很多人还认为云计算还处于概念阶段时,趋势科技和瑞星等安全厂商纷纷宣布“云安全”计划,在国内云安全这一概念名词由此诞生。“云安全”计划的提出是为了应对病毒的日益泛滥,做法是将病毒资料库放在“云”端,让“云”端对不安全链接直接判断,阻止其进入用户机器。
云安全一词在国内大受杀毒厂商的追捧,其核心思想是利用大规模的云计算来抵御日益复杂多样的黑客攻击与病毒攻击。在国外,安全软件处于云端的做法,称之为基于云的安全软件 -“Cloud-Based Security” 或者安全即服务 -“Security as a Service”。
而本文所提及的云安全(Cloud Security), 是云计算安全性(Cloud computing security)的简称,顾名思义,是关注云计算业务系统本身的安全性,其概念采用维基百科的解释:通过部署一套广泛的策略、技术与控制方法, 来保护数据、应用程序、与云计算的基础设施的安全性。
云计算环境下的安全问题
云计算的安全疑虑很多,每个建设环节都可能导致安全问题,包括物理机房环境、网络、应用、数据存储等各方面的安全。除去机房环境,可以简单归结为以下几个方面:
- 身份认证:云计算服务商在对外提供服务的过程中,需要同时应对多租户的运行环境,保证不同用户只能访问企业本身的数据、应用程序和存储资源。
- 数据保护:这是目前云计算用户最为担心的安全风险。用户数据在云计算环境中进行传输和存储时,用户本身对于自身数据在云中的安全风险并没有实际的控制能力,数据安全完全依赖于服务商。
- 数据隐私:云计算环境存储的用户数据,离不开管理员的操作和审核,如果缺乏足够的安全防护,将可能导致用户数据被云服务提供商窃取或无意泄露。
- 应用程序安全:云服务提供商必须确保通过云所提供的应用程序服务是安全的,外包或包的代码必须通过测试与可用性的验收程序。
Azure Stack 安全机制
混合云 Azure Stack 场景中,在公共云供应商或者 Azure Stack 供应商和客户之间有一条非常明显的责任分界线。当一个 IaaS 客户角色转变成一个 PaaS 或 SaaS 客户角色,其相应的责任也会发生改变,一个 IaaS 层角色与 PaaS 层角色的责任是明显不同的,比如我们管理一个运行在一台自己管理的虚机上 SQL Server 的责任,与管理一个 Azure SQL 数据库而不用管理运行该数据库的虚机所面临的责任是不一样的。
Azure Stack 的安全机制主要分为三个层面:硬件安全,平台层安全,租户层安全。
Azure Stack 拥有从物理层面到不同的 SaaS 服务层面的多种安全机制,以确保数据安全。在 Azure Stack 混合云环境中,客户不能够访问虚拟机管理程序层,PaaS/SaaS 服务提供商同样不能访问。
硬件安全
Azure Stack 平台硬件层面的基本安全机制有安全启动(Secure boot)和统一的可扩展固件接口(UEFI)。不同品牌的硬件提供商(Lenovo、Dell EMC、HPE 等)针对 Azure Stack 的硬件层都提供了自己强有力的硬件安全解决方案,有效地解决 Azure Stack 的硬件安全问题,等 Azure Stack 硬件 GA 后,我们会详细地比较、分析、评价各厂商的硬件安全解决方案。
平台层安全
Azure Stack 相对于微软的公有云 Azure 是一个独立的平台,但安全管理方面有很大的相似性:
- Azure Stack 和 Azure 工程师没有访问客户数据的默认权限,只在必要时,在监督的条件下被授予访问。
- Azure Stack 和 Azure 平台管理员只将客户数据用于跟客户签订的承包服务,如故障排除和改进的功能,如保护免受恶意软件兼容。
在 Azure Stack 中,作为一个服务提供商只能访问管理门户 admin portal,可通过并仅能通过管理门户或者管理 API 创建用户订阅,管理 Azure Stack 架构,监控平台健康状态,查看审计日志信息,但没有权限查看正常用户的数据与业务。
Azure Stack 实现平台的安全,主要基于两个安全原则:
- Assume breach
- Hardened by default
“Assume breach”原则
基于“Assume breach”安全原则,如果平台检测到任何黑客攻击行为,不仅可以有效阻断,还可以有效限定被攻击的范围,减少被攻击损失。如果一个 Azure Stack 组件被黑客攻破,也不会导致整个平台瘫痪,有效保证其他组件的安全。通常,管理员角色最易受到攻击,Azure Stack 通过一个预定义的约束管理经验模型,保证如果一个管理员证书被攻破,攻击者只能访问该管理员被限制访问的组件。
为了实现 Azure Stack 平台的安全,微软制定了多种安全机制:
1、约束管理,Azure Stack 提供了非常精细的,基于角色的访问控制
- 最低权限账户 ,用于不同服务的服务账户只拥有最低的权限;
- 只能通过管理门户或管理 API 进行平台管理;
- 删除了任何面向客户的域管理员账户;
- 不存在任何超级用户。
2、锁定基础设施
- 启用应用程序白名单,只有经过微软或 Azure Stack OEM 签名的应用才能运行,未签名或第三方签名的应用一概不允许运行;
- 默认的最小通信特权,Azure Stack 内部的功能组件只能与特定的目的组件交换数据;
- 启用网络访问控制 ACL,防护墙默认规则阻断一切网络访问,除非是必要的。 ACL 不只存在于 VM 和虚拟网络层面,有效屏蔽网络风险,可参考如下网络访问控制模型:
3、为了提高检测能力,Azure Stack 启用每个基础架构组件的安全和审计日志,可以监控任何入侵。
4、隔离 host,杜绝 Azure Stack 账户直接访问底层 host。微软与 OEM 厂商提供 host 的全生命周期的管理,提供不影响用户业务及数据的加固服务,比如提供固件、驱动、操作系统补丁升级等服务。
“Hardened by default”原则
Azure Stack 默认启用许多安全控制机制,比如:
1、静态数据加密,Azure Stack 所有的存储都应用 BitLocker 加密,同时提供三备份机制。
2、基础架构组件之间,采用强身份验证。
3、基于 Security Compliance Manager,在底层操作系统上使用预定义安全模板。
4、在底层操作系统,禁用传统旧协议,比如 SMB1,NTLMv1,MS-CHAPv2,Digest。
5、应用 Windows Server 2016 的安全功能
- 凭证保护 ,所有域密码采用基于虚拟化的安全隔离,保证只有特定有权限的系统软件可以访问。
- 代码完整性 ,凭证保护的一个功能,确保只有通过代码完整性检查的代码才能得到执行。
- 反恶意软件 ,使用 Windows Defender 加固支持平台的底层虚拟机上。
- 使用 Server Core,以减少被攻击面并限制使用某些功能。
租户层安全
上一章节,我们介绍了平台层的安全机制,相对租户层不可见的平台层安全机制,Azure Stack 对租户层用户也提供了多种安全机制。
资源管理器 ARM 本身有一个 Role-Based Access 模型,用来定义一个用户可以访问订阅、资源组。其中,ARM 内部的访问能够使用默认定义角色或者自定义角色。
下图描述了 Azure Stack 基于角色的访问控制模型 (参照微软官方 Azure RBAC):
在 Azure Stack 租户层所采用的一些安全策略:
- Azure Stack 的资源策略,用于增强 ARM 传统的访问规则,如允许用户只提供一定类型的虚拟机或强制标记某一个对象。
- 网络安全组,Azure Stack 网络的防火墙访问规则,控制网络、虚机的访问。
- 虚拟网络层 ,作为 Azure Stack 的软件定义网络解决方案,有效地杜绝传统的 2 层攻击。
- TLS/SSL,默认情况下,所有的平台服务和 API 都应用 TLS /SSL 保证安全。
- 支持互联网安全协议 IPsec。
- Azure Key Vault,帮助你轻松管理云应用和服务的加密密钥。
Azure Stack 未提供的安全防护
Azure Stack 本身提供了用户身份认证、权限的租户隔离和虚拟化资源共享业务安全问题的解决方案,但是对于用户应用数据的安全问题则有赖于用户自己解决,这其中包括如下三个方面:
1) 客户虚拟机和应用集群的统一、自动化管理,比如大数据集群管控。
2) 客户数据的自动备份、保护机制,比如数据脱敏,数据防泄漏等。
3) 客户虚拟机和客户网络的安全防护,比如更符合客户习惯的身份认证与访问控制,恶意软件防护,防火墙等。
针对 Azure Stack 未提供的用户应用、数据方面的安全问题,技术层面需要 CMP 和系列安全防护融合的综合解决方案。通过 CMP 可以实现客户虚拟机和应用集群的统一、自动化管理和客户数据的自动备份和保护,而客户虚拟机和网络的安全防护则需要通过专业的安全防护解决方案来解决。
针对混合云,一个专业的安全解决方案,可以提供私有云和公有云统一的安全管理平台,保护 IT 环境免遭数据泄露和业务中断,降低运营成本,获得如下六个方面的功能防护:
1) 入侵检测:
- 通过屏蔽已知漏洞,主动防御各种已知和零时差 攻击
- 检查所有传入和传出流量中是否存在协议偏差、 策略违规或带攻击迹象的内容
- 虚拟修补帮助确保符合 PCI DSS、HIPAA 等主要 法规
- 抵御 SQL 注入、跨站点脚本以及其他 Web 应用 程序漏洞
- 对访问网络的应用程序加强监视或控制。
2) 防恶意软件:
- 确保工作负载免受恶意软件攻击
- 隔离恶意软件,保护实例免受复杂攻击 (包括勒索软件)
- 把可疑对象提交给亚信安全 TM 深度发现 TM 分析 器,以供进行沙盒分析
3) 防火墙,双向有状态防火墙,兼容各类主流协议。
- 通过创建防火墙边界来阻止攻击,可减少攻击面
- 限制为只能通过必要的端口和协议进行通信
- 集中管理服务器防火墙策略,包括用于常见服务
4)Web 信誉,对百万计的 web 站点评级分类,访问低信誉网站时主动提醒。
5) 完整性监控,保护系统文件和注册表,阻止对系统关键资源的更改。
- 监控和跟踪系统更改,并实时报告恶意和意外更改
- 利用事件标记自动复制类似事件的操作
6) 日志审查,智能提取日志中的安全事件。
- 收集操作系统和应用程序日志,并分析其中的可疑行为、安全事件和管理事件
- 通过识别重要安全事件确保满足合规性要求 (PCI DSS)
- 将事件转发到 SIEM 系统或集中的日志记录服务器,以进行关联、报告及归档
参考文献
- What is Cloud-Based Security?
- Azure 门户中基于角色的访问控制入门
- Security and Compliance in Azure Stack
- Azure Stack Security
- Azure Stack—Secure by design
感谢江柳对本文的审校。
评论