安全模型分析核心
应用安全模型
核心的步骤
说白了一个应用的安全,我们往往其实关注的是哪里有缺陷,以致各种引起经济,隐私,资料的损失。
所以其实不管是哪一种已经成形的安全模型其实逃不了以下几步
- 拆解应用
- 风险评级
- 针对策略或者更新
拆解应用
对于拆解一个既定的应用程序,什么才是最重要的,最需要安全保护的呢。
应该是数据 (data)
黑客们会关注这个程序运行的机理,但本质他们需要获得的是数据
This involves creating use-cases to understand how the application is used, identifying entry points to see where a potential attacker could interact with the application, identifying assets i.e. items/areas that the attacker would be interested in, and identifying trust levels which represent the access rights that the application will grant to external entities. This information is documented in the Threat Model document and it is also used to produce data flow diagrams (DFDs) for the application. The DFDs show the different paths through the system, highlighting the privilege boundaries.
``` [^foot1]注
### 风险评级
往往很多老板或者说希望自身软件的项目leader会非常关注这个问题。不同的安全分析模型中 有不同的方法来评估一个软件的安全风险级别。
但大部分的情况下,都可以运用 STRIDE[^stride]注 的模型来对风险先进行分类,这是非常有用的,能够让本来**抽象和模糊的**的风险可以按条理和逻辑来处理,之后能用DREAD[^dread]注模型来对每一种模型来进行值的估计,最后得出整体的安全等级或者说风险等级。而这最后一步使得**风险**变得更加可以估计和比较。并且从一个复杂的情况变成了数学。便于决策者们在风险和成本之间取舍。
### 针对策略
这个没什么可以说的。往往最直观的便是各个软件的安全性补丁,或者防御性软件(例如防火墙之类)但不得不提的是,往往策略应该和风险的损失呈正比,否则就是得不偿失
[^ex1]例
Once a risk ranking is assigned to the threats, it is possible to sort threats from the highest to the lowest risk, and prioritize the mitigation effort, such as by responding to such threats by applying the identified countermeasures.
##注脚
[^foot1]: 引用至https://www.owasp.org/index.php/Application_Threat_Modeling
[^stride]: 最基本也是最常用的风险分析模型之一 STRIDE 分别代表了其每一个重要步骤
[^dread]: 和STRIDE同样的有名的基本模型,可以进行大概的风险的评估并且能给出一个数值。
[^ex1]: 同1.