首页 > 代码库 > 白帽子讲Web安全——我的安全世界观

白帽子讲Web安全——我的安全世界观

      

       互联网本来是安全的,自从有了研究安全的人之后,互联网就变得不安全了。

 

一、安全的本质

       安全问题的本质是信任的问题。

       一切的安全方案设计的基础,都是建立在信任关系上的。我们必须相信一些东西,必须有一些最基本的假设,安全方案才得以建立;如果我们否定一切,安全方案就会如无源之水,无根之木,无法设计,也无法完成。

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

 

二、破除迷信,没有银弹

       安全是一个持续的过程。

 

三、安全三要素

       机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)。

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

       完整性则要求保护数据内容是完整的、没有被篡改的。常见的保证一致性的技术手段是数字签名

       可用性要求保护资源是 “随需而得”。

       另外还有可审计性、不可抵赖性等。

 

四、白帽子兵法

1 、Secure By Default 原则

1)黑名单、白名单

运用白名单的思想,只允许信任列表里的通过,但需要主意避免出现类似通配符“ * ”的问题。

2)最小权限原则

多设置一些反问句,以确定业务所需的最小权限。

2、纵深防御(Defense in Depth)原则

包含两层含义:首先,要在各个不同层面、不同方面实施安全方案,避免出现疏漏,不同安全方案之间需要相互配合,构成一个整体;其次,要在正确的地方做正确的事情,即:在解决根本问题的地方实施针对性的安全方案。

对于一个复杂的系统来说,纵深防御是构建安全体系的必要选择。

3、数据与代码分离原则

 

4、不可预测性原则

即使无法修复 code,但是如果能够使得攻击的方法无效,那么也可以算是成功的防御。

不可预测性的实现往往需要用到加密算法、随机数算法、哈希算法,好好使用这条原则,在设计安全方案时往往会事半功倍。

       这四项原则的特点:Secure By Default,是时刻要牢记的总则纵深防御,是要更全面、更正确地看待问题;数据与代码分离,是从漏洞成因上看问题;不可预测性原则,则是从克服攻击方法的角度看问题。

 

五、写在最后

安全是一门朴素的学问,也是一种平衡的艺术。

白帽子讲Web安全——我的安全世界观