这周开始看了白帽子讲Web安全(纪念版)》,以下是我的读书笔记

1.1 Web安全简史

(1)中国黑客的发展阶段:启蒙时代、黄金时代、黑暗时代
(2)2003年的冲击波蠕虫是一个里程碑事件,主要针对于Windows操作系统RPC服务,是运行在445端口的蠕虫。
(3)Web安全史上的两个里程碑:SQL注入的出现XSS的出现

1.2 黑帽子,白帽子

(1)黑帽子:历用黑客技术造成破坏,甚至进行网络犯罪的群体。
(2)白帽子:精通网络安全技术,工作于反黑客领域的专家们。
(3)白帽子和黑帽子的工作角度很不一样。

1.3 返璞归真,揭秘安全的本质

(1)安全的本质是信任的问题
(2)把握信任条件的度,使其恰到好处,正是设计安全方案的难点所在,也是安全这门学温的艺术魅力所在。

1.4 破除迷信,没有银弹

(1)安全是一个持续的过程。

1.5 安全三要素

(1)安全三要素分别是:机密性、完整性、可用性
(2)机密性:要求保护数据内容不能泄露,加密是实现机密性要求的常见手段。
(3)完整性:要求保护数据内容是完整、没有被篡改的。
(4)可用性:要求保护资源是“随需而得”。
(5)其中,后人又扩充了一些要素,如:可审计性、不可抵赖性。

1.6 如何实施安全评估

(1)安全评估过程:资产等级划分、威胁分析、风险分析、确认解决方案
(2)资产等级划分:是所有工作的基础,这项工作能够帮助我们明确目标是什么,要保护什么;互联网安全的核心问题,是数据安全的问题;对互联网公司拥有的资产进行等级划分,就是对数据做等级划分。
(3)威胁分析:把所有的威胁都找出来,一般会使用一些模型来找。
(4)威胁分析是非常重要的一件事情,因为如果在确定攻击面的时候想得不够全面,攻击者就可以利用事先完全没有想到的漏洞完成入侵。
(5)风险分析:风险由以下因素组成:Risk = Probability * Damage Potential;影响风险高低的因素,除了造成损失的大小外,还需要考虑到发生的可能性。
(6)设计安全方案:安全评估的产出物,就是安全解决方案; 解决方案一定要有针对性。
(7)作为安全工程师:要想的就是如何通过简单而有效的方案,解决遇到的安全问题;安全方案必须能够有效抵抗威胁,但同时不能过多干涉正常的业务流程,在性能上也不能拖后腿;好的安全方案对用户应该是透明的,尽可能地不要改变用户的使用习惯。
(8)优秀的安全方案应该:能够有效解决问题、用户体验好、高性能、低耦合、易于扩展与分析。

1.7 白帽子兵法

(1)Secure By Default原则
a)可以归纳为白名单、黑名单的思想,如果更多地使用白名单,那么系统就会变得更安全;
b)另一层含义就是“最小权限原则”,最小权限原则要求系统只授予主体必要的权限,而不要过度授权,这样能有效地减少系统、网络、应用、数据库出错的机会。
(2)纵深防御原则
a)要在各个不同层面、不同方面实施安全方案,避免出现疏漏,不同安全方案之间需要相互配合,构成一个整体;
b)其次,要在正确的地方做正确的事情,即:在解决根本问题的地方实施针对性的安全方案。
(3)纵深防御并不是同一个安全方案要做两遍或多遍,而是要从不同的层面、不同的角度对系统做出整体的解决方案
(4)从防御角度:我们需要考虑的可能有Web应用安全、OS系统安全、数据库安全、网络环境安全等。
(5)数据与代码分离原则:广泛适用于各种由于“注入”而引发安全问题的场景;将用户数据当作代码执行,混淆了代码与数据的边界,就会导致安全问题的发生。
(6)不可预测性原则:有效地对抗基于纂改、伪造的攻击。
(7)不可预测性的实现往往需要用到加密算法、随机数算法、哈希算法,好好使用这条原则,在设计安全方案时往往会事半功倍。

1.8 小结
(1)安全是一门朴素的学问,也是一种平衡的艺术