安全测试②(设计安全方案依据原则)

以下主要内容全部来自《白帽子讲web安全》以及一部分我自己添加的补充。

1. Secure by Default原则 —— 总则

安全问题本质是信任问题,安全方案也是基于信任来设计的。

①白名单:注意白名单的配置及内容是否设置正确。

②最小权限原则:系统只授予用户必要的权限(业务所需的最小权限)。

2. 纵深防御(Defense In Depth)原则 —— 更全面、正确的看问题

①对根本问题实施针对性的安全方案。

从不同层面、不同角度对系统做出整体的解决方案。警惕安全方案中的“短板”。

②在正确的地方做正确的事。

i) 深入理解威胁本质,做出正确应对。

比如XSS防御技术的发展过程:

过滤特殊字符 -> 区分富文本和非富文本,encode非富文本 -> 对富文本做语法树分析 -> 综合方案。

ii) 把防御方案放到最合适的地方。

综上,对于一个复杂的系统而言,纵深防御是构建安全体系的必然选择。

虽说如此,就在去年看来纵深防御在现实中仍有难以落地的难言之隐。但是今年5月,工信部印发《工业互联网APP培育工程实施方案(2018-2020年)》,旨在推动工业互联网应用生态加快发展。工业生产将面临比以往任何时候都更为复杂的安全挑战,通付盾移动安全实验室作为国内最早移动安全领域研究机构,以移动安全技术为基础,提出和建立了工业互联网APP安全纵深防御技术体系。由此可见,对于纵深防御的研究将会越来越深入并以实用为目标前进。

扩展阅读:

为什么“纵深防御”雷声大雨点小

中国制造2025:通付盾推出工业APP安全纵深防御体系

通付盾全球首推"量子码",引领终端安全防护进入"不可观测"新时代

3. 数据与代码分离原则 —— 从漏洞成因看问题

要防止让用户数据被当做代码执行。

适用于各种如XSS、SQL injection、CRLF injection与X-Path等由注入引发安全问题的场景。

扩展阅读:

为什么要实现程序指令和程序数据的分离?(以Linux为例)

4. 不可预测性原则 —— 从克服估计方法看问题

无法修复问题,但是可以使估计的方法无效。能有效地对抗基于篡改、伪造的攻击。

该方法的实现需要用到加密算法、随机数算法、哈希算法,即让攻击者无法提前预知他想要得到的数据。

如微软无法无法让系统中的软件没有漏洞,它就使漏洞的攻击方法失效,比如的增加对抗缓冲区溢出等内存攻击的功能。

你可能感兴趣的:(安全测试②(设计安全方案依据原则))