安全测试-威胁建模学习笔记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

举例:


上一篇:xtrabackup 备份问题


下一篇:关于字符串==和equals的区别 ==对象相同 equals对象内容相同