安全三要素
- 机密性:要求保护数据内容不能泄露,加密是实现机密性要求的常见手段。
- 完整性:则要求保护数据内容是完整、没有被篡改的
- 可用性:要求保护资源是“随需而得”。
如何实施安全评估
资产等级划分、威胁分析、风险分析、确认解决方案
资产等级划分
资产等级划分是所有工作的基础,这项工作能够帮助我们明确目标是什么,要保护什么。-
威胁分析
可能造成危 害的来源称为威胁(Threat)
威胁建模:
风险分析
可能会出现的损失称为风险(Risk)。
风险由以下因素组成:
Risk = Probability * Damage Potential设计安全方案
一个优秀的安全方案应该具备以下特点:
- 能够有效解决问题;
- 用户体验好;
- 高性能;
- 低耦合;
- 易于扩展与升级。
设计安全方案技巧
- Secure By Default 原则
- 黑名单、白名单
- 最小权限原则
纵深防御原则
首先,要在各个不同层面、不同方面实施安全方案,避免出现疏 漏,不同安全方案之间需要相互配合,构成一个整体;其次,要在正确的地方做正确的事情——必须把防御方案放到最合适的地方去解决。数据与代码分离原则
在 Web 安全中,由“注入”引起的问题比比皆是,如 XSS、SQL Injection、CRLF Injection、 X-Path Injection 等。此类问题均可以根据“数据与代码分离原则”设计出真正安全的解决方案, 因为这个原则抓住了漏洞形成的本质原因。不可预测性原则
不可预测性的实现往往需要用到加密算法、随机数算法、哈希算法,好好使用这条原则, 在设计安全方案时往往会事半功倍。
总结:Secure By Default,是时刻要牢记的总则;纵深防御,是要更全面、 更正确地看待问题;数据与代码分离,是从漏洞成因上看问题;“不可预测性” 原则,则是从克服攻击方法的角度看问题。