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

举例:

时间: 2024-11-08 18:08:59

安全测试-威胁建模学习笔记1的相关文章

《威胁建模:设计和交付更安全的软件》——第1章 潜心开始威胁建模1.1 学习威胁建模

第1章 潜心开始威胁建模 谁都可以学习威胁建模,更进一步说,每个人都应该学习威胁建模.威胁建模是利用模型来发现安全问题,这意味着通过提取大量细节对安全问题进行全面检查,而不是代码本身.之所以要构建模型,是因为模型能让你在没构建系统之前即可发现问题,以及在问题出现前提早发现问题.最后,威胁模型可以预见可能侵袭你的威胁. 首先,威胁建模是一门实用科学,本章系统地描述其实用性.尽管本书为你提供了很多有价值的定义.理论.观点.有效的方法和技术,但你还是希望能将这些用于实践.因此,本章内容主要从实践经验展

kali linux web渗透测试学习笔记

    kali linux web渗透测试学习笔记 metasploit使用方法: 启动: 第一步:启用Postgresql服务.service postgresql start 第二步:启用metasploit服务.service matasploit start 第三步:启动框架.msfconsole 一个ASP站点的sql注入 测试数字型注入点 1.网址:asp?ID+13,后面加',看看是什么数据库,然后输入1=1,1=2,得到数据库是microsoft acess 2.转用sqlma

Windows Shellcode学习笔记——Shellcode的提取与测试

本文讲的是Windows Shellcode学习笔记--Shellcode的提取与测试, 0x00 前言 之前在<Windows Shellcode学习笔记--通过VisualStudio生成shellcode>介绍了使用C++编写(不使用内联汇编),实现动态获取API地址并调用,对其反汇编提取shellcode的方法,并开源了测试代码. 接下来在对shellcode进行提取的过程中,发现了当时开源代码的一些bug,所以本文着重解决测试代码的bug,并介绍使用C++开发shellcode需要考

作为一个新手的Oracle(DBA)学习笔记

Oracle数据库笔记 Jack Chaing 作者QQ595696297 交流群 127591054 祝大家学习进步. 如果大家想看Word版本的可以去下载:Word排版比较清晰一些. http://download.csdn.net/detail/jack__chiang/9810532 此笔记是作者本人去年开始从一个DBA新人的学习笔记,积累至今,希望拿出来给那些对DBA有兴趣的童孩学习,大家一起努力嘛. 此笔记记录了作者工作学习中从零基础的学习的记录,和从中遇见的问题与问题的解决!很高兴

我的Android进阶之旅------&amp;gt;Android中编解码学习笔记

编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等.最近因为项目的关系,需要理清媒体的codec,比较搞的是,在豆丁网上看运营商的规范 标准,同一运营商同样的业务在不同文档中不同的要求,而且有些要求就我看来应当是历史的延续,也就是现在已经很少采用了.所以豆丁上看不出所以然,从 wiki上查.中文的wiki信息量有限,很短,而wiki的英文内容内多,

《威胁建模:设计和交付更安全的软件》——2.4 软件模型

2.4 软件模型 建立清晰的软件模型有助于寻找威胁,否则你会陷入到软件功能正确与否的细节中.图表是软件建模的最佳方法. 正如你在第1章学习到的内容,在白板上绘制图表是开始威胁建模非常有效的方法,但是当一个系统特别复杂,在白板上绘制或重新绘制模型就变得不可行了.这时,你要么简化系统要么使用计算机化的方法. 本章,你能学习到各种图表,在威胁建模时如何使用各种图表.如何处理大型系统威胁建模的复杂性.你也能学到信任边界.有效标签,以及如何验证图表等更多细节内容.2.4.1 图表类型 做图表有很多方法,不

(转) OpenCV学习笔记大集锦 与 图像视觉博客资源2之MIT斯坦福CMU

      首页 视界智尚 算法技术 每日技术 来打我呀 注册     OpenCV学习笔记大集锦 整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的.如果有好的资源,也欢迎介绍和分享. 1:OpenCV学习笔记 作者:CSDN数量:55篇博文网址:http://blog.csdn.net/column/details/opencv-manual.html 2:部分OpenCV的函数解读和原理解读 作者:梦想腾飞数量:20篇博文网址:http:/

Deep Learning(深度学习)学习笔记整理系列之(一)(转)

目录: 一.概述 二.背景 三.人脑视觉机理 四.关于特征        4.1.特征表示的粒度        4.2.初级(浅层)特征表示        4.3.结构性特征表示        4.4.需要有多少个特征? 五.Deep Learning的基本思想 六.浅层学习(Shallow Learning)和深度学习(Deep Learning) 七.Deep learning与Neural Network 八.Deep learning训练过程        8.1.传统神经网络的训练方法

PHP学习笔记 (1) 环境配置与代码调试

一配置PHP环境 1.了解什么是PHP PHP("PHP: Hypertext Preprocessor",超文本预处理器的字母缩写) PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写.PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用 2.PHP的背景和优势 PHP的发展背景 1).1994年由Rasmus Lerdorf创建,开始是一个简单的Perl语言编写的程序,用统计