白帽子讲web安全 ——读书笔记:术语和理论

最近心血来潮,对安全这些略感兴趣,就买了本 白帽子讲web安全 看看 ,这里做个读书笔记吧!方便啥时候忘了再看一下。

exploit——漏洞利用代码

Script kids ——脚本小子,利用exploit到处破坏的家伙,对漏洞及编程原理没有多深的理解。

0day——即时发布

安全三要素:安全的基本组成要素(CIA)——机密性(confidentiality)、完整性(Integrity)、可用性(Available)。

C ——要求保护数据内容不能泄露,加密是实现机密性要求常见的手段

I——要求保护数据内容是完整的,没有被篡改的。常见的保持一致性的手段是数字签名

A——要求保护资源是“随需而得”,DoS(Denial of Service)是破坏的安全的可用性

安全评估过程

Threat(威胁)——可能造成为危险的来源

Risk(风险)——可能会出现的损失

可以简单划分为4个阶段:资产等级划分,威胁分析,风险分析,确认解决方案(这个实施过程是层层递进的,前后之间是因果关系)

 1.互联网安全的核心问题,是数据安全的问题。对互联网公司拥有的资产进行等级划分,就是对数据进行等级划分,

 2.完成资产等级划分之后,对保护的目标有一个大概的了解,接下来就是要划分信任域和信任边界,

 3.威胁建模 :使用某种方法,帮助去想,在哪些方面有可能存在威胁,这个过程能避免漏洞,这就是威胁建模(STRIDE——最早由MS提出来的一种建模方法);

在进行威胁分析的时候,要尽可能地不遗漏威胁,头脑风暴的过程可以确定攻击面(AttackSurface)

威胁 定义 对应的安全属性
Spoofing (伪装) 冒充他人身份 认证
Tampering(篡改) 修改数据或者代码 完整性
Repudiation(抵赖) 否认做过的事情 不可抵赖性
InformationDisclosure(信息泄露) 机密信息泄露 机密性
Denial of Service(拒绝服务) 拒绝服务 可用性
Elevation of Privilege(提升权限) 未经授权获得许可 授权
Ps:意思是可以从这几个基本方面出发考虑潜在的威胁么?

 4.风险分析 :风险有以下因素组成: Risk = Probability * Damage Protential     发生的可能性和损失大小;

 DREAD模型,也是有MS提出,它指导我们应该从哪些方面去判断的威胁的风险程度。

等级 高(3) 中(2) 低(1)
Damage Protential 获取安全验证权限;执行管理员操作,非法上传文件 泄露敏感信息 泄露其他信息
Reproducibility 攻击者可以随意再次攻击 攻击者可以重复攻击,但有时间限制 攻击者很难重复攻击过程
Exploitability 初学者在短期内能掌握攻击方法 熟练的攻击者才能完成攻击 漏洞利用条件非常苛刻
Affected users  所有用户,默认配置,关键用户 部分用户,非默认配置 极少数用户,匿名用户
Discoverability 漏洞很明显,攻击条件很容易获得 在私有区域,部分人能看到,需要深入挖掘漏洞 发现该漏洞极其困难
可以根据不同等级的不同权重具体计算出某一威胁的风险值。

********************************模型是死的,只能起一个辅助作用,最终作出决策的还是人。

5.设计安全方案 :安全评估的产出物。一个优秀的安全方案应该具备以下特点——能够有效解决问题、用户体验好、高性能、低耦合、易于扩展和升级

白帽子兵法(一些思想):

1.Secure By Default(最基本也最重要的原则):白名单和黑名单、最小权限原则

2.纵深防御原则(Defense in Depth):1)在各个不同层面,不同方面实施安全方案,避免出现疏漏,不同安全方案之间需要相互配合,构成一个整体; 2)要在正确的地方做正确的事

3.数据与代码分离原则 :这个原则广泛用于各种由于“注入”而引发安全问题的场景

4.不可预测性原则 :从克服攻击方法的绝度看问题,能有效地对抗基于篡改、伪造的攻击,可以巧妙地用于一些敏感数据上,不可预测性的实现往往需要用到加密算法、随机数算法、哈希算法






你可能感兴趣的:(工作之前的随笔)