安全测试-威胁建模学习笔记1

简介: 前言: 构建新系统与更新老系统,设计与实施要考虑防御入侵的手段,威胁建模是种手段. 威胁的分类:来自网络,来自主机,来自应用。 威胁建模的定义: 结构化标识、定量、定位威胁的方法,是开发过程的一部分。

前言:

构建新系统与更新老系统,设计与实施要考虑防御入侵的手段,威胁建模是种手段.

威胁的分类:来自网络,来自主机,来自应用。

威胁建模的定义:

结构化标识、定量、定位威胁的方法,是开发过程的一部分。


设计安全软件的其中一个问题在于,不同的团体考虑安全性的方式不一样。软件开发人员认为安全性好坏主要取决于代码质量,而网络管理员考虑的是防火墙、事件响应和系统管理。学术界大多数人可能按经典的  Saltzer   Schroeder  设计原则、安全性模型或其他抽象概念来看待安全性。当然,所有这些对于构建安全的系统都是非常重要的

威胁建模的本质:1.至今还没有任何已确定有效的方法来衡量威胁模型的质量,2.我们无法证明给定的设计是安全的,但我们可以从自己的错误中汲取教训并避免重复犯同样的错误


用STRIDE进行威胁建模,保证系统的5大安全属性。


安全属性  对应的STIDE的字母   说明

机密性    I 数据只限应具有权限的人员访问。

完整性   T 数据和系统资源只限适当的人员以适当的方式进行更改。

可用性  D 系统在需要时一切就绪,可以正常执行操作。

身份验证  S 建立用户身份(或者接受匿名用户)。

授权   E 明确允许或拒绝用户访问资源。

认可   R 用户无法在执行某操作后否认执行了此操作。


STRIDE   Spoofing (假冒)、 Tampering (篡改)、 Repudiation (否认)、 Information Disclosure (信息泄漏)、 Denial of Service (拒绝服务)和  Elevation of Privilege (提升权限)的字母缩略词。
其中分别对应的安全属性是S---身份验证,T----完整性,R---认可,I----机密性,D--可用性,E----授权。



建模过程分为6步:
1.标识机密信息
2.建立体系结构
3.分解应用
4.辨别威胁
5.将威胁文档化
6.评定威胁级别

其中第一步标识机密信息,哪些是机密信息呢?一般是保密数据(如客户清单,其他人的工资,管理员口令),私有数据(如知识产权保护的数据),重要数据(如卡号,加密密钥等),还有数据库的完整性,页面的完整性,网络与计算机的完整性,还有应用的可用性。

第二步,建立体系结构,目的是为了更好的理解系统架构,为辨别威胁做准备。
  具体就是定义应用的目的与实现方法,并绘制应用架构图,包括标识子系统,标识数据流,列出系统中的机密。
第三步,分解应用结构图,包括认证机
制,授权机制,标识所用的技术,描述信任的边界,标识系统的入口。
    象黑客一样思考。

第四步,辨别威胁。方法有3种,第一是威胁清单。第二种是STRIDE。第三种是威胁树(根节点(表示攻击者的目的),子节点用来描述威胁的子威胁与条件)。
第五步:文档化
第6步,评定威胁级别
2种方法:
一是简单模型法:风险=资产重要性(1-10级)*威胁等级(1-10级)
二是DREAD 模型法:比法1的粒度大一些。将级别分为1-15,在微软公司广泛使用。
D--DAMAGE 损害。被攻击后的严重性有多大?
R-Reproducibility 再现性。攻击是任何时间都可以进行,还是有一定的先决条件?
E-Exploitability 可利用性。实现攻击是否需要很高的技能与知识?
A-affected users 影响的用户。被攻击后,有多少用户会受到影响?
D-discoverability 可发现性。这个漏洞是否容易被发现?

DREAD定量评定


HIGH(3)
MEDIUM(2)
LOW(1)
D attacker can retrieve extremely sensitive data and corrupt or destroy data
attacker can retrieve sensitive data but do little else
attacker can only retrieve data that has little or no potential for harm
R
works every time; does not require a timing window
timing-dependent;works only within a time window
rarely works
E
bart simpson could do it
attacker must be somewhatknowledgeable and skilled
attacker must be very knowledgeable and skiiled
A
most or all users
some users
few if any users
D
attacker can easily discover the vulnerability
attacker might discover the vulnerability
attacker will have to dig to discover the vulnerability

举例:


目录
相关文章
|
Web App开发 JavaScript 前端开发
NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记
快速学习 NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文
NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记
|
2月前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
273 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
2月前
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
51 2
|
2月前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
79 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
|
7月前
|
Java 测试技术 编译器
JMM测试利器-JCStress学习笔记
JMM测试利器-JCStress学习笔记
java202303java学习笔记第四十六天-请求-postman接口测试
java202303java学习笔记第四十六天-请求-postman接口测试
82 0
|
云安全 安全 Cloud Native
如何做好云渗透测试的威胁建模(上)
微软针对威胁建模(Threat modeling)的描述:威胁建模是帮助保护系统、应用程序、网络和服务的有效方法。这是一种工程技术,用于识别潜在的威胁和建议,以帮助降低风险并在开发生命周期的早期实现安全目标。威胁建模实践使开发团队可以在计划的运行环境的背景下,以结构化的方式思考、记录并讨论系统设计的安全影响。 [1](文末附注释解析)
|
测试技术
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
80 0
|
存储 Kubernetes 监控
PolarDB-X 混沌测试系统搭建赛题解析 | 学习笔记
快速学习 PolarDB-X 混沌测试系统搭建赛题解析
PolarDB-X 混沌测试系统搭建赛题解析 | 学习笔记
|
关系型数据库 OLAP API
测试 API|学习笔记
快速学习测试 API
141 0
测试 API|学习笔记