云计算承载了多种不同的应用,汇集了许多用户的信息,甚至包含许多敏感信息,容易成为黑客和不法分子的攻击对象。对云计算面临的威胁进行分析,并采取适当的安全措施来消减威胁,是云安全的核心工作之一。
1.威胁建模的定义
威胁建模是一种工程技术,它以结构化的方式来识别、评估应用系统面临的威胁,其目的是在设计阶段充分了解各种可能的安全威胁,对可能的风险进行管理,并指导选取适当的应对措施,根据设计和测试情况对安全架构和设计进行验证,从而降低系统的攻击面。威胁建模活动可帮助识别安全目标、相关威胁、相关漏洞和对策。
一个开发团队首先需要明确项目需要保护的目标,了解有哪些威胁和漏洞能够影响保护目标,找到缓解这些威胁和漏洞的具体措施,才有可能开发出安全的信息系统。因此,威胁建模也是一种风险管理模型,可以用于所有软件产品和系统的开发。
由于应用环境的复杂,软件可能存在很多漏洞和威胁,但在实际应用中,这些漏洞和威胁不太可能都会导致软件安全问题,组织也不可能解决所有的问题。通过威胁建模,组织可识别出软件应用中所需处理的威胁,从而合理地投入资源。威胁建模从应用系统生命周期的架构和设计阶段开始,它是基于组织的安全目标进行的。组织的安全目标是业务目标的关键部分,它们用于确定威胁建模活动的程度以及花费精力的多少。
2.威胁建模的流程
威胁建模的流程主要包括确定建模对象、识别威胁、评估威胁和消减威胁四个步骤。
(1)确定建模对象
确定要保护和评估的对象,了解软件应用可信任边界之内的所有功能组件。威胁建模中常用“资产”来描述对象,这里的资产可能指软件系统本身、信息的可用性或者信息内容本身,如用户数据。
(2)识别威胁
发现组件或进程存在的威胁。威胁是一种不希望发生、对资产目标有害的事件。从本质上看,威胁是潜在事件,它可能是恶意的,也可能不是恶意的。因此,威胁并不等于漏洞。
(3)评估威胁
对威胁进行分析,评估其被利用进行攻击的概率,了解被攻击后资产的受损后果,并计算风险。
(4)消减威胁
根据威胁的评估结果,确定是否要消减威胁以及消减的技术措施。在设计阶段,可以通过重新设计来直接消减威胁,或釆用技术手段来消减威胁。在本阶段,应在确定消减威胁后继续评估是否可以接受剩余的风险。
3.STRIDE模型
微软提出使用STRIDE模型来进行威胁建模的实践。STRIDE即Spoofing(欺骗)、Tampering(篡改)、Repudiation(抵赖)、Information Disclosure(信息泄露)、Denial of Service(拒绝服务)和Elevation of Privilege(提权)。其内容见表2-1。
表2-1 STRIDE模型
使用STRIDE模型进行威胁建模,应按照确定建模对象、识别威胁、评估威胁以及消减威胁4个步骤反复进行,直到所有威胁带来的风险都在可接受范围内。
为了使企业对云安全问题有全新的认识和了解,做出更有效的采购决策,云安全联盟(CSA)2020年推出了最新版本的《云计算11大威胁报告》。这一报告反映了云计算安全联盟安全专家就云计算中最重要的安全问题所达成的共识。《云计算11大威胁报告》中的云安全威胁主要如下。
(1)数据泄露
数据泄露是指敏感、受保护或机密信息被未经授权的个人发布、查看、窃取或使用的网络安全事件。数据泄露可能是蓄意攻击的主要目的,也可能仅仅是人为错误、应用程序漏洞或安全措施不足的结果。数据泄露涉及所有非公开发布的信息,包括但不限于个人健康信息、财务信息、个人可识别信息(PII)、商业秘密和知识产权。
云资源的配置错误是导致数据泄露的主要原因,还可能会导致删除或修改资源以及服务中断。
(2)配置错误和变更控制不足
当计算资产设置不正确时,就会产生配置错误,这时常会使它们面对恶意活动时倍显脆弱。常见的例子包括不安全的数据存储要素(元素)或容器、过多的权限、默认凭证和配置设置保持不变、标准的安全控制措施被禁用。
在云环境中,缺乏有效的变更控制是导致配置错误的常见原因。云环境和云计算方法与传统信息技术的不同之处在于,它们使变更流程更难控制。传统的变更流程涉及多个角色和批准,可能需要几天或几周才能到达生产阶段(环境)。
(3)缺乏云安全架构和策略
部分IT基础设施迁移到公有云之上的过渡期中最大的挑战之一就是实现能够承受网络攻击的安全架构。然而这个过程对于很多组织而言仍然是模糊不清的。当组织把上云迁移判定为简单地将现有的IT栈和安全控制“直接迁移”到云环境时,数据可能会被暴露在各种威胁面前。
通常而言,迁移过程中的功能性和速度通常是优先于安全的。这些因素导致了迁移过程中云安全架构和策略缺失的组织容易成为网络攻击的受害者。另外,缺乏对共享安全责任模型的理解也是一个诱因。
实现适合的安全体系结构和开发健壮的安全策略将为组织在云上开展业务活动提供坚实的基础。利用云原生工具来增强云环境中的可视化,也可以最小化风险和成本。采取预防措施可以显著降低安全风险。
(4)身份、凭据、访问和密钥管理的不足
云计算在传统内部系统的身份和访问管理(IAM)方面引入了多种变化。在公有云和私有云设置中,都需要云服务提供商(CSP)和云服务使用者在不损害安全性的情况下管理IAM。
凭据保护不足,缺乏加密秘钥、密码和证书的定期自动更新机制,缺乏可扩展的身份、凭据及访问控制系统,无法使用多因子认证方式,无法使用强密码等,可能会造成安全事件及数据泄露。
(5)账户劫持
通过账户劫持,恶意攻击者可能获得并滥用特权或敏感账户。在云环境中,风险最高的账户是云服务或订阅账户。网络钓鱼攻击、对基于云的系统的入侵或登录凭据被盗等都可能危害这些账户。这些独特、潜在且非常强大的威胁可能会导致数据和资产丢失和系统入侵,甚至造成云业务应用的严重中断。
账户和服务劫持意味着对账户及其服务以及内部数据控制的完全失陷。在这种情况下,跟账户相关的所有业务逻辑、功能、数据和应用程序都有风险。这种失陷的后果有时会造成严重的运营和业务中断,包括组织资产、数据和能力完全丧失。账户劫持的后果包括导致声誉受损的数据泄露、品牌价值下降、涉及法律责任以及敏感个人和商业信息泄露。
(6)内部威胁
卡内基·梅隆计算机应急响应小组(CERT)将内部威胁定义为“对组织资产拥有访问权限的个人,恶意或无意地使用其访问权限,以可能对组织造成负面影响的方式行事的可能性”。内部人员可以是在职或离职的雇员、承包商或其他值得信赖的商业伙伴。内部人员在公司的安全边界内工作,得到公司信任,他们可以直接访问网络、计算机系统和敏感的公司数据。与外部威胁参与者不同,内部人员不必穿透防火墙、虚拟专用网络(VPN)和其他外围安全防御。
内部威胁可能导致专有信息和知识产权的损失。与攻击相关的系统停机事件会对公司的生产效率产生负面影响。此外,数据丢失或引起对其他客户的伤害会降低客户对公司服务的信心。
(7)不安全接口和API
云计算提供商开放了一系列软件的用户界面(UI)和API,以允许用户管理云服务并与之交互。常见云服务的安全性和可用性取决于这些API的安全性。
从身份验证和访问控制到加密和活动监视,这些接口必须设计成可防御无意和恶意规避安全策略的行为。设计不好的API可能会被滥用,甚至导致数据泄露。被破坏、暴露或攻击的API已导致了一些重大的数据泄露事件。使用一系列安全性薄弱的接口和API会使组织面对各种安全问题,如机密性、完整性、可用性和相关责任的安全问题。
(8)控制面薄弱
薄弱的控制面意味着负责人(无论是系统架构师还是DevOps工程师)不能完全控制数据基础设施的逻辑、安全和验证能力。在这种情况下,利益相关者如果对安全配置、数据如何流动以及架构的盲点和脆弱点控制不足,就可能导致数据损坏、不可用或泄露。
薄弱的控制面可能会因被窃取或损坏而导致数据丢失,这可能会导致巨大的业务影响,还可能招致对数据丢失的监管处罚。例如,根据欧盟通用数据保护条例(GDPR)的规定,产生的罚款可能高达2000万欧元或企业全球收入的4%。在控制层面薄弱的情况下,用户也可能无法保护其基于云的业务数据和应用程序,这可能会导致用户对所提供的服务或产品失去信心。最终,这可能会转化为云服务商收入的减少。
(9)元结构和应用结构失效
为了提高云服务对用户的可见性,云服务提供商通常通过API接口提供在基准线上的安全流程交互。但是,不成熟的云服务提供商通常不确定如何向其用户提供API,以及在多大程度上提供API。例如,允许云服务用户检索日志或审计系统访问情况的API接口,可能包含高度敏感的信息。但是,这一过程对于云服务用户来说是非常必要的,用于检测未经授权的访问。
元结构和应用结构是云服务的关键组件。云服务提供商在这些功能上的故障可能会严重影响所有云服务的用户。
(10)有限的云使用可见性
当组织不具备可视化和分析组织内使用的云服务是否安全、能力是否适当时,就会出现有限的云使用可见性。这个概念被分解为两个关键的挑战。
1)未经批准的应用程序使用。当员工使用云应用程序和资源而没有获得公司IT和安全部门的特别许可和支持时,就会发生这种情况。
2)批准程序滥用。企业往往无法分析使用授权应用程序的内部人员是如何使用其已获批准的应用程序的。通常,这种使用在没有得到公司明确许可的情况下发生,或者由外部威胁行动者使用凭证盗窃、SQL注入、域名系统(DNS)攻击等方法来攻击服务。在大多数情况下,可以通过判断用户的行为是否正常或是否遵守公司政策来区分有效用户和无效用户。
(11)滥用及违法使用云服务
恶意攻击者可能会利用云计算能力来攻击用户、组织以及云供应商,也会使用云服务来搭建恶意软件。搭建在云服务中的恶意软件看起来是可信的,因为他们使用了云服务提供商的域名。另外,基于云的恶意软件可以利用云共享工具来进行传播。
一旦攻击者成功入侵用户的云基础设施管理平台,攻击者可以利用云服务来做非法事情,而用户还需要对此买单。如果攻击者一直在消耗资源,比如进行电子货币挖矿,那用户还需一直为此买单。另外,攻击者还可以使用云来存储和传播恶意或钓鱼攻击。公司必须要注意该风险,并且有办法来处理这些新型攻击方式。这可以包含对云上基础架构或云资源API调用进行安全监控。
解决云服务滥用的办法包含云服务提供商检测支付漏洞及云服务的滥用。云服务提供商必须要建立事件响应框架,对这些滥用资源的行为进行识别并及时报告给用户。云服务提供商也需要采取相应的管控措施允许用户来监控其云负载及文件共享或存储应用程序的运行状况。