1.1 安全问题的本质是信任的问题。
安全三要素是安全的基本组成要素,分别是
①机密性
②完整性
③可用性
机密性要求保护数据不能泄露,加密是实现机密性要求的常见手段。
完整性则要求保护数据内容是完整的、没有被篡改的。常见的保证一致性的技术手段是数字签名。
可用性要求保护资源是“所需而得”
1.2 如何实施安全评估?
一个安全评估的过程,可以分为四个阶段
1.3 资产等级划分
互联网安全的核心问题,是数据安全的问题
当完成资产等级划分后,对要保护的目标有了一个大概的了解,接下来就是划分信任域和信任边界了。通常我们用一种最简单的划分方式,就是从网络逻辑上来划分。比如最重要的数据放在数据库里,那么把数据库的服务器圈起来;web应用可以从数据库中读/写数据,并对外提供服务,那再把web服务器圈起来;最外面是不可信任的Internet。
1.4 威胁分析
什么是威胁分析?
威胁分析就是把所有威胁都找出来,一般采用一个模型,帮我们去想,哪些方面可能存在威胁,这个过程能够避免遗漏,这就是威胁建模。即STRIDE模型。
1.5 风险分析
如何更科学地衡量风险呢?这里用到了一个DREAD模型
1.6 设计安全方案
一个优秀的安全方案应该具备以下特点:
能够有效解决问题;
用户体验好;
高性能;
低耦合;
易于扩展与升级;
1.7 白帽子兵法
1.7.1 Secure By Default原则
实际上也可以归纳为白名单,黑名单思想
使用白名单时,应注意避免出现通配符*的问题
1.7.1.2 最小权限原则
最小权限原则也是安全设计的基本原则之一,最小权限原则要求系统只授予主体必要的权限,而不要过度授权,这样能有效地减少系统、网络、应用、数据库出错的机会。
1.7.2 纵深防御原则
纵深防御原则包含两层含义:首先,要在各个不同层面、不同方法实施安全方案,避免出现疏漏,不同安全方案之间需要相互配合,构成一个整体;其次,要在正确的地方做正确的事情,即:在解决根本问题的地方实施针对性的安全方案。
1.7.3 数据与代码分离原则
这一原则广泛用于各种由于“注入”而引发安全问题的场景
1.7.4 不可预测性原则
这一原则则是从克服攻击方法的角度看问题