说明:
本文部分内容摘自吴翰青先生的《白帽子讲web安全》,整理成笔记以供将来温习
web安全史
Hacker:最初是称那些研究计算机系统和网络的人,现在“黑客”一词已经成为破坏的代名词,在央视《新闻调查》栏目层播出一期纪录片《我是黑客》,采访中普罗大众对于黑客的认识还是带有偏见的。
单讲“黑客”二字,就是习武之人!
提防“脚本小子”,在网络犯罪中造成主要破坏的就是这些人,他们懂计算机但不深,能熟练使用工具,但单独寻找漏洞并编写exploit能力较弱。
中国黑客简史:
作者将中国黑客发展分为三个阶段
启蒙时代
20世纪90年代,热爱技术的青年出于好奇和求知欲走上黑客这条路,没有任何利益瓜葛,纯粹爱好;
黄金时代
中美黑客大战,一战成名,黑客文化和黑客技术吸引无数青少年加入其中,各种黑客组织和论坛层出不穷;
黑暗时代
黑客精神:Open、Free、Share消亡,黑产阴云密布,黑客功利性越来越强,破坏力越来越强;
黑帽子/白帽子
白帽子
精通安全技术,工作在反黑客领域的专家;
黑帽子
利用黑客技术进行破坏,甚至进行网络饭犯罪的群体;
返朴归真,安全的本质
安全的本质就是信任的问题
一切的安全设计的基础,都是建立在信任的关系上的。我们必须相信一些东西,必须有一些最基本的假设,安全方案才能得以建立;
安全是一个持续的过程
攻击和防御在不断的对抗和碰撞中得到发展,两者是相互促进的辩证关系。任何一劳永逸的想法都是不现实的而且是很危险的;
安全三要素
机密性
保护数据内容不能泄露,加密是实现机密性的常见手段;
完整性
保护数据内容是完整的、没有篡改的,常见的保持一致性的技术手段就是数字签名;
可用性
要求保护资源“随取而得”
以上三点是安全领域中最基本的部分,此外还有注入可审计性、不可抵赖性等。
如何实施安全评估
分四个阶段
资产等级划分---->威胁分析---->风险分析---->确认解决方案
资产等级划分:明确目标是什么,要保护什么
互联网安全的核心问题,是数据安全的问题
然后划分信任区域和信任边界
威胁分析:把所有的威胁都找出来。可以采用头脑风暴法,也可以使用模型法,帮助我们发现哪些方面可能讯在威胁
我们把可能造成危害的来源称为威胁;
STRIDE模型是由微软提出的,内容如下
风险分析:
可能出现的损失称为风险,风险一定是和损失关联在一起的;
Risk = Probability * Damage Potential
如何更科学的衡量风险,有一个DREAD模型,也是微软提出的
注意:
威胁和风险是有区别的,风险一定是和损失关联在一起的,千万不要张冠李戴
设计安全方案:
由前面三个阶段的结果得出的具有针对性的解决方案,完成一个优质的解决方案,考验着安全工程师的水平;
一个优秀的安全方案应该具备以下特点:
针对性,能够有效解决问题
用户体验好
高性能
低耦合
易于扩展和升级
设计安全方案的技巧
Secure By Default原则:
即默认安全原则,可以理解为一白名单、黑名单思想,二最小权限原则;
白名单思想,默认拒绝策略,将允许的流量放入白名单;
黑名单思想,默认允许策略,将拒绝的流量放入黑名单;
最小权限原则,即只授予系统主题必要的权限,而不过渡授权;
纵深防御原则:
从不同层面、不同方面实施安全方案,避免出现漏洞;
牢记木桶理论
在正确的地方做正确的事情,即在解决根本性问题的地方实施针对性的安全方案;
数据和代码分离原则:
广泛应用于“注入”而引发安全问题的场景;
程序在栈或堆中,将用户数据当作代码执行,混淆了代码与数据的边界,从而导致安全问题的发生
不可预测性原则:
巧妙地用在一些敏感数据上,不能被攻击者猜测到,提高攻击门槛;
其实现往往用到加密算法、随机数算法、哈希算法
最后,
安全是一门朴素的学问,也是一种平衡的艺术。
无论是传统安全还是互联网安全,其内在的原理都是一样的,我们只需抓住安全问题的本质,之后无论遇到什么安全问题都会无往而不利。