一、安全三要素
安全三要素是安全的基本组成元素,分别是
机密性(
Confidentiality
)、完整性(
Integrity
)、
可用性(
Availability
)。
机密性
要求保护数据内容不能泄露,加密是实现机密性要求的常见手段。
不能把数据放在一个透明的盒子里,这样即使攻击者不打开盒子也可以得到数据,比较典型的例子就是数据库中客户密码不能明文存储 通常要经过加密
完整性
则要求保护数据内容是完整、没有被篡改的。
比如说数字签名,就是目前用以检验报文完整性的方法
可用性
要求保护资源是“随需而得”,不能被恶意侵占。
比较典型的例子是ddos攻击,通过恶意占用被攻击者的资源,从而导致被攻击者的业务瘫痪。
二、威胁分析建模方法
STRIDE模型:
威胁 | 定义 | 对应的安全属性 |
---|---|---|
Spoofing
(伪装)
|
冒充他人身份
|
认证
|
Tampering
(篡改)
|
修改数据或代码
|
完整性
|
Repudiation
(抵赖)
|
否认做过的事情
|
不可抵赖性
|
InformationDisclosure
(信息泄露)
|
机密信息泄露
|
机密性
|
Denial of Service
(拒绝服务)
|
拒绝服务
|
可用性
|
Elevation of Privilege
(提升权限)
|
未经授权获得许可
|
授权
|
三、风险分析
风险构成的公式:
Risk = Probability * Damage Potential
翻译过来就是 风险 = 概率 * 潜在破坏性
同上面的STRIDE模型,DREAD模型也是由微软推出的,用以
指导我们应该从哪些方面去判断一个威胁的风险程度。
等级 | 高(3) | 中(2) | 低(1) |
---|---|---|---|
Damage
Potential
|
获取完全验证权限;执行管理员操
作;非法上传文件
|
泄露敏感信息
|
泄露其他信息
|
Reproducibility
|
攻击者可以随意再次攻击
|
攻击者可以重复攻击,但有时间
限制
|
攻击者很难重复攻击
过程
|
Exploitability
|
初学者在短期内能掌握攻击方法
|
熟练的攻击者才能完成这次攻击
|
漏洞利用条件非常苛刻
|
Affected users
|
所有用户,默认配置,关键用户
|
部分用户,非默认配置
|
极少数用户,匿名用户
|
Discoverability
|
漏洞很显眼,攻击条件很容易获得
|
在私有区域,部分人能看到,需
要深入挖掘漏洞
|
发现该漏洞极其困难
|
如需要对风险进行评估,只需要对照表格将风险值相加 即可得到结果
高危:
12
~
15
分
中危:
8
~
11
分
低危:
0
~
7
分(仅供参考)
四、设计安全方案
一个优秀的安全方案应该具备以下特点:
能够有效解决问题;
用户体验好;
高性能;
低耦合;
易于扩展与升级。