白帽子讲Web安全——我的安全世界观
互联网本来是安全的,自从有了研究安全的人之后,互联网就变得不安全了。
一、安全的本质
安全问题的本质是信任的问题。
一切的安全方案设计的基础,都是建立在信任关系上的。我们必须相信一些东西,必须有一些最基本的假设,安全方案才得以建立;如果我们否定一切,安全方案就会如无源之水,无根之木,无法设计,也无法完成。
把握住信任条件的度,使其恰到好处,正是设计安全方案的难点所在,也是安全这门学问的艺术魅力所在。
二、破除迷信,没有银弹
安全是一个持续的过程。
三、安全三要素
机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)。
机密性要求保护数据内容不能泄露,加密是实现机密性要求的常见手段。
完整性则要求保护数据内容是完整的、没有被篡改的。常见的保证一致性的技术手段是数字签名。
可用性要求保护资源是 “随需而得”。
另外还有可审计性、不可抵赖性等。
四、白帽子兵法
1 、Secure By Default 原则
1)黑名单、白名单
运用白名单的思想,只允许信任列表里的通过,但需要主意避免出现类似通配符“ * ”的问题。
2)最小权限原则
多设置一些反问句,以确定业务所需的最小权限。
2、纵深防御(Defense in Depth)原则
包含两层含义:首先,要在各个不同层面、不同方面实施安全方案,避免出现疏漏,不同安全方案之间需要相互配合,构成一个整体;其次,要在正确的地方做正确的事情,即:在解决根本问题的地方实施针对性的安全方案。
对于一个复杂的系统来说,纵深防御是构建安全体系的必要选择。
3、数据与代码分离原则
4、不可预测性原则
即使无法修复 code,但是如果能够使得攻击的方法无效,那么也可以算是成功的防御。
不可预测性的实现往往需要用到加密算法、随机数算法、哈希算法,好好使用这条原则,在设计安全方案时往往会事半功倍。
这四项原则的特点:Secure By Default,是时刻要牢记的总则;纵深防御,是要更全面、更正确地看待问题;数据与代码分离,是从漏洞成因上看问题;不可预测性原则,则是从克服攻击方法的角度看问题。
五、写在最后
安全是一门朴素的学问,也是一种平衡的艺术。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。