说明:

本文部分内容摘自吴翰清先生的《白帽子讲web安全》,整理成笔记以供将来温习


web安全史


Hacker:最初是称那些研究计算机系统和网络的人,现在“***”一词已经成为破坏的代名词,在央视《新闻调查》栏目层播出一期纪录片《我是***》,采访中普罗大众对于***的认识还是带有偏见的。

单讲“***”二字,就是习武之人!

提防“脚本小子”,在网络犯罪中造成主要破坏的就是这些人,他们懂计算机但不深,能熟练使用工具,但单独寻找漏洞并编写exploit能力较弱。


中国***简史:

作者将中国***发展分为三个阶段

    启蒙时代

        20世纪90年代,热爱技术的青年出于好奇和求知欲走上***这条路,没有任何利益瓜葛,纯粹爱好;

    黄金时代

        中美***大战,一战成名,***文化和***技术吸引无数青少年加入其中,各种***组织和论坛层出不穷;

    黑暗时代

        ***精神:Open、Free、Share消亡,黑产阴云密布,***功利性越来越强,破坏力越来越强;


黑帽子/白帽子

    白帽子

        精通安全技术,工作在反***领域的专家;

    黑帽子

        利用***技术进行破坏,甚至进行网络饭犯罪的群体;


返朴归真,安全的本质


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

    一切的安全设计的基础,都是建立在信任的关系上的。我们必须相信一些东西,必须有一些最基本的假设,安全方案才能得以建立;

安全是一个持续的过程

    ***和防御在不断的对抗和碰撞中得到发展,两者是相互促进的辩证关系。任何一劳永逸的想法都是不现实的而且是很危险的;


安全三要素


机密性

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

完整性

    保护数据内容是完整的、没有篡改的,常见的保持一致性的技术手段就是数字签名;

可用性

    要求保护资源“随取而得”

以上三点是安全领域中最基本的部分,此外还有注入可审计性、不可抵赖性等。


如何实施安全评估


分四个阶段

    资产等级划分---->威胁分析---->风险分析---->确认解决方案


资产等级划分:明确目标是什么,要保护什么

    互联网安全的核心问题,是数据安全的问题

    然后划分信任区域和信任边界

威胁分析:把所有的威胁都找出来。可以采用头脑风暴法,也可以使用模型法,帮助我们发现哪些方面可能讯在威胁

    我们把可能造成危害的来源称为威胁;

    STRIDE模型是由微软提出的,内容如下

    安全世界观_第1张图片

风险分析:

    可能出现的损失称为风险,风险一定是和损失关联在一起的;

    Risk = Probability * Damage Potential

    如何更科学的衡量风险,有一个DREAD模型,也是微软提出的

安全世界观_第2张图片  

 注意:

    威胁和风险是有区别的,风险一定是和损失关联在一起的,千万不要张冠李戴

设计安全方案:

    由前面三个阶段的结果得出的具有针对性的解决方案,完成一个优质的解决方案,考验着安全工程师的水平;

    一个优秀的安全方案应该具备以下特点:

        针对性,能够有效解决问题

        用户体验好

        高性能

        低耦合

        易于扩展和升级


设计安全方案的技巧


Secure By Default原则:

    即默认安全原则,可以理解为一白名单、黑名单思想,二最小权限原则;

        白名单思想,默认拒绝策略,将允许的流量放入白名单;

        黑名单思想,默认允许策略,将拒绝的流量放入黑名单;

        最小权限原则,即只授予系统主题必要的权限,而不过渡授权;

纵深防御原则:

    从不同层面、不同方面实施安全方案,避免出现漏洞;

        牢记木桶理论

    在正确的地方做正确的事情,即在解决根本性问题的地方实施针对性的安全方案;

数据和代码分离原则:

    广泛应用于“注入”而引发安全问题的场景;

    程序在栈或堆中,将用户数据当作代码执行,混淆了代码与数据的边界,从而导致安全问题的发生

不可预测性原则:

    巧妙地用在一些敏感数据上,不能被***者猜测到,提高***门槛;

    其实现往往用到加密算法、随机数算法、哈希算法



最后,

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

无论是传统安全还是互联网安全,其内在的原理都是一样的,我们只需抓住安全问题的本质,之后无论遇到什么安全问题都会无往而不利。