白帽子讲Web安全——笔记(一)

安全三要素

  • 机密性:要求保护数据内容不能泄露,加密是实现机密性要求的常见手段。
  • 完整性:则要求保护数据内容是完整、没有被篡改的
  • 可用性:要求保护资源是“随需而得”。

如何实施安全评估

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

  1. 资产等级划分
    资产等级划分是所有工作的基础,这项工作能够帮助我们明确目标是什么,要保护什么。

  2. 威胁分析
    可能造成危 害的来源称为威胁(Threat)
    威胁建模:


    image.png
  3. 风险分析
    可能会出现的损失称为风险(Risk)。
    风险由以下因素组成:
    Risk = Probability * Damage Potential

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

  • 能够有效解决问题;
  • 用户体验好;
  • 高性能;
  • 低耦合;
  • 易于扩展与升级。

设计安全方案技巧

  1. Secure By Default 原则
  • 黑名单、白名单
  • 最小权限原则
  1. 纵深防御原则
    首先,要在各个不同层面、不同方面实施安全方案,避免出现疏 漏,不同安全方案之间需要相互配合,构成一个整体;其次,要在正确的地方做正确的事情——必须把防御方案放到最合适的地方去解决。

  2. 数据与代码分离原则
    在 Web 安全中,由“注入”引起的问题比比皆是,如 XSS、SQL Injection、CRLF Injection、 X-Path Injection 等。此类问题均可以根据“数据与代码分离原则”设计出真正安全的解决方案, 因为这个原则抓住了漏洞形成的本质原因。

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

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

你可能感兴趣的:(白帽子讲Web安全——笔记(一))