zoukankan      html  css  js  c++  java
  • 《白帽子讲Web安全》笔记

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

    一、资产等级划分

    为什么要划分?

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

    什么是资产?

    • 在互联网的基础设施已经比较完善的今天,互联网的核心其实是由用户数据驱动的——用户产生业务,业务产生数据。互联网公司除了拥有一些固定资产,如服务器等死物外,最核心的价值就是其拥有的用户数据。互联网安全的核心问题,是数据安全的问题。

    如何实施?

    • 每个公司因为业务不同对数据的侧重也不同。做资产等级划分的过程,需要与各个业务部门的负责人一一沟通,了解公司最重要的资产是什么,他们最看重的数据是什么。通过访谈的形式,安全部门才能熟悉、了解公司的业务,公司所拥有的数据,以及不同数据的重要程度,为后续的安全评估过程指明方向。

    划分信任域和信任边界

    • 最简单的划分方式,就是从网络逻辑上来划分。比如最重要的数据放在数据库里,那么把数据库的服务器圈起来;Web 应用可以从数据库中读/写数据,并对外提供服务,那再把 Web 服务器圈起来;最外面是不可信任的 Internet


    二、威胁分析

    • 造成危害的来源称为威胁(Threat),而把可能会出现的损失称为风险(Risk)。两者紧密联系

    什么是威胁分析?

    • 威胁分析就是把所有的威胁都找出来。怎么找?一般是采用头脑风暴法。当然,也有一些比较科学的方法,比如使用一个模型,帮助我们去想,在哪些方面有可能会存在威胁,这个过程能够避免遗漏,这就是威胁建模

    • 一种威胁建模的方法,它最早是由微软提出的,叫做 STRIDE 模型。

    • STRIDE 是 6 个单词的首字母缩写,我们在分析威胁时,可以从以下 6 个方面去考虑。

      威 胁 定 义 对应的安全属性
      Spoofing(伪装) 冒充他人身份 认证
      Tampering(篡改) 修改数据或代码 完整性
      Repudiation(抵赖) 否认做过的事情 不可抵赖性
      InformationDisclosure(信息泄露) 机密信息泄露 机密性
      Denial of Service(拒绝服务) 拒绝服务 可用性
      Elevation of Privilege(提升权限) 未经授权获得许可 授权
    • 在进行威胁分析时,要尽可能地不遗漏威胁,头脑风暴的过程可以确定攻击面(Attack
      Surface)。

    • 在维护系统安全时,最让安全工程师沮丧的事情就是花费很多的时间与精力实施安全方
      案,但是攻击者却利用了事先完全没有想到的漏洞(漏洞的定义:系统中可能被威胁利用以造
      成危害的地方。)完成入侵。这往往就是由于在确定攻击面时,想的不够全面而导致的。

    三、风险分析

    • 风险由以下因素组成:
      Risk = Probability * Damage Potential (风险=概率*潜在损害)

    • 科学地衡量风险
      DREAD 模型,它也是由微软提出的

      等 级 高(3) 中(2) 低(1)
      Damage Potential 获取完全验证权限;执行管理员操作;非法上传文件 泄露敏感信息 泄露敏感信息
      Reproducibility 攻击者可以随意再次攻击 攻击者可以重复攻击,但有时间限制 攻击者很难重复攻击过程
      Exploitability 初学者在短期内能掌握攻击方法 熟练的攻击者才能完成这次攻击 漏洞利用条件非常苛刻
      Affected users 所有用户,默认配置,关键用户 部分用户,非默认配置 极少数用户,匿名用户
      Discoverability 漏洞很显眼,攻击条件很容易获得 在私有区域,部分人能看到,需要深入挖掘漏洞 发现该漏洞极其困难
    • 风险分析例子
      以《智取华山》为例,如果国民党在威胁建模后发现存在两个主要威胁:第一个威胁是从
      正面入口强攻,第二个威胁是从后山小路爬悬崖上来。那么,这两个威胁对应的风险分别计算
      如下:
      走正面的入口:
      Risk = D(3) + R(3) + E(3) + A(3) + D(3) = 3+3+3+3+3=15
      走后山小路:
      Risk = D(3) + R(1) + E(1) + A(3) + D(1) = 3+1+1+3+1=9
      如果我们把风险高低定义如下:
      高危:12~15分 中危:8~11分 低危:0~7分
      那么,正面入口是最高危的,必然要派重兵把守;而后山小路竟然是中危的,因此也不能
      忽视。之所以会被这个模型判断为中危的原因,就在于一旦被突破,造成的损失太大,失败不
      起,所以会相应地提高该风险值。

    • 在任何时候都应该记住——模型是死的,人是活的,再好的模型也是需要人来使用的,在
      确定攻击面,以及判断风险高低时,都需要有一定的经验,这也是安全工程师的价值所在。

    四、设计安全方案

    • 安全评估的产出物,就是安全解决方案。解决方案一定要有针对性,这种针对性是由资产
      等级划分、威胁分析、风险分析等阶段的结果给出的。
    • 设计解决方案不难,难的是如何设计一个好的解决方案。设计一个好的解决方案,是真正
      考验安全工程师水平的时候。
    • 很多人认为,安全和业务是冲突的,因为往往为了安全,要牺牲业务的一些易用性或者性
      能,笔者不太赞同这种观点。从产品的角度来说,安全也应该是产品的一种属性。一个从未考
      虑过安全的产品,至少是不完整的。
    • 作为安全工程师,要想的就是如何通过简单而有效的方案,解决遇到的安全问题。安全方
      案必须能够有效抵抗威胁,但同时不能过多干涉正常的业务流程,在性能上也不能拖后腿。
    • 最终,一个优秀的安全方案应该具备以下特点:
      能够有效解决问题;
      用户体验好;
      高性能;
      低耦合;
      易于扩展与升级。
  • 相关阅读:
    MVC模式和三层架构的区别
    浅谈MVC3自定义分页
    Jquery进度条插件 Progress Bar
    浅谈 MVC3 WebMail 发送邮件
    LINQ orderby 排序妙用
    mvc3 razor视图下 显示字符串形式的html
    Asp.Net MVC3 让你疯狂的5个理由
    4月8日作业 代码审核复查
    几个js处理时间函数
    看看下面JavaScript代码输出什么?
  • 原文地址:https://www.cnblogs.com/greycdoer0/p/11203050.html
Copyright © 2011-2022 走看看