如何做好云渗透测试的威胁建模(上)

简介: 微软针对威胁建模(Threat modeling)的描述:威胁建模是帮助保护系统、应用程序、网络和服务的有效方法。这是一种工程技术,用于识别潜在的威胁和建议,以帮助降低风险并在开发生命周期的早期实现安全目标。威胁建模实践使开发团队可以在计划的运行环境的背景下,以结构化的方式思考、记录并讨论系统设计的安全影响。 [1](文末附注释解析)

NO.1

威胁建模相关定义

微软针对威胁建模(Threat modeling)的描述:威胁建模是帮助保护系统、应用程序、网络和服务的有效方法。这是一种工程技术,用于识别潜在的威胁和建议,以帮助降低风险并在开发生命周期的早期实现安全目标。威胁建模实践使开发团队可以在计划的运行环境的背景下,以结构化的方式思考、记录并讨论系统设计的安全影响。 [1](文末附注释解析)


CSA针对云威胁建模(Cloud Threat modeling)的描述:云威胁建模扩展了标准威胁建模实践,以考虑独特的云。云威胁建模增加了攻击面的识别和扩大,帮助对不同云服务提供商的安全需求进行提取,并强化了风险管理。[2]注:CSA每年都会推出云计算顶级威胁,帮助企业实现云威胁建模,已推出的白皮书包括《云计算的11类顶级威胁》、《云原生安全威胁分析报告》、《为实现成功的网络安全威胁情报交换构建坚实基础》《云计算的顶级威胁:深度分析》等内容。


NO.2

云计算的发展与技术演进

云计算今天并不是一个新鲜的概念,随着AWS、微软、谷歌等厂商相继推出云计算产品和解决方案,让云计算技术也在不断地演进。


许多组织采用云原生技术发新型应用程序,云应用及云安全进入到了加速时代。云原生计算基金会(Cloud Native Computing Foundation)定义了云原生应用的特点是“持续交付、DevOps、容器、微服务”等多个组件[3],云原生应用本身也在发展包括但不限于FaaS,BaaS,其核心是“不可变基础设施”的概念,这也助推了企业向新兴的基础设施转型。


传统模式上,威胁建模不仅仅要考虑IT资产主体也要考虑IT资产的客体。但在云模式下,威胁建模还要充分地考虑云共享责任模型中,需要根据云供应商的特点,选择合适的管理模型与方法,定义适当的安全级别和安全控制措施。共享责任模型的不同点在于既要考虑云供应商的安全要求,也要考虑客户及用户的安全要求。


在构建应用程序时,威胁建模(Threat modeling)是安全生命周期(SDLC)的关键部分。威胁建模预测设计缺陷和实现弱点如何合理地应用到云应用程序,成为很多企业关心的问题。并且在对云原生应用程序进行威胁建模时,团队必须考虑额外的安全挑战。例如虚拟化技术、容器化编排等应用场景,对安全管控形成了一定的屏障。


云原生应用程序不是包含所有逻辑和操作功能的单一整体应用程序,即传统型“巨石”架构。云原生应用是由数多个或数百个解耦的组件组成,这些组件可以通过DevOps模式实现独立的实例化、更新或重新部署。


NO.3

云威胁建模方法

CSA推荐应用一致的STRIDE模型与方法,这一方法由微软首次提出,并广泛地应用于微软的Azure[4], 在安全开发生命周期(SDLC)中识别系统的安全问题,形成基于DevOps的DevSecOps安全交付价值流。通过分析系统中各个组件的安全弱点,产生安全风险评估报告。并且微软结合CSA云安全报告推出公有云威胁的分类法[4]。


STRIDE模型与方法的特点在于云厂商普遍应用,以微软、AWS、谷歌、腾讯、阿里等厂商为代表,其成熟度较高、支持敏捷建模、自动化建模等模式。


CSA应用STRIDE模型于多个数字安全课程包括CCSK、CDSP、CBP、CZTP、CCPTP等,帮助企业建立基于不同视角的数字安全体系。该模型对不同类型的威胁进行分类,以便更好地理解安全性。基于云环境STRIDE模型中的威胁类型的分类示例如下表所示:


NO.4

云威胁建模的价值

云威胁建模的工作是在保护有价值的事物上进行识别、交流和理解威胁和缓解措施。有价值的威胁建模工作还会对应用程序的需求、概念、设计、编码、实现等全生命周期的安全进行改进,随着云原生的应用,云威胁建模的经典价值包括但不限于:



NO.5

云威胁建模与云渗透测试

威胁建模是非常重要的云渗透测试中的关键步骤。因为云应用程序的攻击面可以频繁变化。随着企业应用微服务架构,应用程序的攻击面会动态进行变化,例如基于容器的调度、基于FaaS、BaaS等新兴基础设施以及不可变基础设施运营模式,这可能会导致新的威胁。当我们面临这些实例进行测试时,可能会出现新的攻击向量,攻击面也会不断变化。


所以云渗透测试工作的重要性与重复性就不言而喻了,通过云渗透测试可以帮助企业实现初始威胁模型之后控制措施调整 。也可能会随着应用程序的发展而暴露出关键的弱点。


以云计算为中心,渗透测试人员将不会遇到传统的数据中心设计,在这些新兴环境及新兴服务模式下,将面临界新的攻击面及攻击向量。CSA CCPTP云渗透测试帮助企业解决在新兴基础设施下的安全问题。[5]


NO.6

云威胁建模知识检查

你的组织有一个在 Azure 中托管的面向公众的网站。该网站要求用户登录并使用受信任的标识提供者(如 Microsoft 和 Google)来支持登录。黑客向组织的员工发送一封恶意电子邮件,其中包含指向看起来与实际登录页面相同的登录页面的链接,但实际上是为了欺骗毫无戒心的用户泄露其用户名和密码。此类攻击属于哪种类型的安全威胁?[6]

A.SQL 注入攻击

B. 跨站点脚本攻击

C.中间人攻击

D.钓鱼攻击


NO.7

课程推荐及近期开班信息

CCPTP(Certifified Cloud Penetration Test Professional)云渗透测试认证专家(点击跳转课程详情介绍),旨在提供针对云计算渗透测试所需的专业实操技能,弥补云渗透测试认知的差距和技能人才培养的空白,提升专业人员能力及提供认证证书,为云计算产业发展提供渗透人才队伍保障。


为满足行业的专业化要求,CCPTP云渗透线下班即将于2023年6月在上海举办开班,为您带来更加专业和前沿的云渗透学习体验。本次课程不仅有的精彩课程,CSA大中华区还将携学员走进云网基础设施安全国家工程研究中心,深入了解了当前数字安全领域发展的最新趋势,让您掌握最新技术、扩展资源圈,为未来的职业发展奠定坚实基础。


云网基础设施安全国家工程研究中心展厅

相关文章
|
物联网 安全 测试技术
带你读《物联网渗透测试》之二:IoT威胁建模
本书介绍物联网渗透测试的原理和实用技术。主要内容包括IOT威胁建模、固件分析及漏洞利用、嵌入式web应用漏洞、IOT移动应用漏洞、IOT设备攻击、无线电入侵、固件安全和移动安全最佳实践、硬件保护以及IOT高级漏洞的利用与安全自动化。
|
安全 测试技术
安全测试-威胁建模学习笔记1
前言: 构建新系统与更新老系统,设计与实施要考虑防御入侵的手段,威胁建模是种手段. 威胁的分类:来自网络,来自主机,来自应用。 威胁建模的定义: 结构化标识、定量、定位威胁的方法,是开发过程的一部分。
1117 0
|
27天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
55 3
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
71 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
3月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
256 7
Jmeter实现WebSocket协议的接口测试方法
|
3月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
267 3
快速上手|HTTP 接口功能自动化测试
|
3月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
55 5
|
2月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
41 0
|
4月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~