当前位置:   article > 正文

工作中安全风险评估

x.805 涉及完整性的威胁

参考链接:
https://zhuanlan.zhihu.com/p/22369557
https://www.secrss.com/articles/3298

前言

风险评估的目的是:

  1. 识别系统面临的威胁
  2. 判断这种威胁转变成现实后可能带来的影响
  3. 判断这种转变的可能性或难易度

常见的风险评估步骤:

资产识别/系统分析 > 威胁分析 > 识别风险/安全测试 > 消减措施响应

1.资产识别/系统分析

  • 资产识别是指识别出系统中的关键资产,也就是回答“需要保护什么?”这个问题。一般来说,一个系统的关键资产是这个系统的业务和数据,包括核心业务组件、用户的数据、用于鉴权和认证的密码、密钥等。

  • 系统分析是进行威胁分析的前提,只有充分了解被评估系统的功能、结构、业务流等信息后,威胁分析才有依据。对被分析系统有一个高层次的认识,之后通过多个维度对系统进行分解,最后通过业务流将各分解后的组件串联起来,实现“整体-局部-整体”的分析过程。需要注意的是,在进行系统分析前,必须根据项目的目的和限制条件对系统分析进行约束,否则,系统分析是分析不完的。
  • 如果可以的话,建议是画出总体的系统架构图。一般来说可以做以下的分析:
    系统的组网情况(处在什么位置/周边系统等)
    软件架构分析(OS/DB/PLAFORM/WEB后台等)
    内/外部结构分析(维护接口、业务接口、调试接口等)
    典型业务流程/场景分析(业务场景1/业务场景2/...)
    管理/维护场景分析(近端维护场景/远程维护场景/...)
    关键事件分析(登录/鉴权/认证/数据读写/...)

2.威胁分析

  • 什么是威胁,可以从安全三元组来解释:即机密性、完整性、可用性,一般来说,还需要还再加上一个抗抵赖性。

  • 威胁分类:

    -对机密性的威胁
    通过嗅探、暴力破解等手段窃取用户身份,认证信息,仿冒合法用户访问系统。 攻击者非法获得系统中保存的或传输过程中的机密数据,如用户认证信息、用户
    -对完整性的威胁
    通过修改发送给系统的数据或从系统收到的数据,影响系统业务逻辑,比如绕过认证机制、欺骗计费系统、执行越权操作等
    -对可用性的威胁
    通过Flood、畸形报文等攻击等手段造成系统不能提供正常的服务
    -对抗抵赖性的威胁
    通过修改系统访问日志、审计日志来隐藏攻击痕迹、修改业务行为记录

  • 威胁分析就是识别威胁,总结成一个句子就是:
    攻击者(威胁源),利用XXX漏洞(漏洞),通过XXX(攻击面/攻击手段)方式,对XXX(关键资产)产生了XXX威胁(后果)

  • 威胁分析的套路很多,只要识别出威胁就可以,业界也有一些比较成熟的建模,比如X.805分层分析、攻击树模型、微软的STRIDE威胁建模等

3.STRIDE威胁建模

把威胁分成6个维度来考擦,如下:

威胁定义对应的安全属性
spoofing冒充认证
tampering修改数据或代码完整性
reputation否认不可抵赖性
information disclosure信息泄露机密性
denial of service拒绝服务可用性
elevation of privilege未授权访问授权

-- spoofing(仿冒),举例:伪基站、外挂

-- tampering(篡改),举例:修改定位信息,任意地点考勤打卡

-- reputation(抵赖),指保留必要的审计日志,攻击事件后溯源

-- elevation of privilege(权限提升),例如垂直越权

  • STRIDE建模的第一步就是分解业务场景,绘制业务场景的数据流图
    具体可以使用microsoft threat modeling tool绘制
    核心元素包含:进程、数据存储、数据流、外部实体
    1612211-20190929155950751-1352863443.png

  • 绘制完数据流图以后,就是对数据流中的每个元素可能面临的威胁逐个进行分析,但不是每个元素的STRIDE六类威胁都要去分析
    1612211-20190929155931547-837918645.png

  • 输出威胁列表和消减方案
    组件 web程序用户身份验证过程
    威胁描述 攻击者通过监视网络获取身份验证凭据
    威胁类型 I
    攻击方法 利用网络监视软件
    消减方案 利用SSL提供加密通道
    危险评级
    这里叫“消减方案”而不是“消除方案”是因为在实际做STRIDE威胁分析时,我们发现的每个威胁,由于各种实际原因不一定能肯定根除。
    根据威胁造成的危险对其进行评价。这样就能够首先解决危险最大的威胁,然后再解决其他的威胁。实际上,解决所有找出的威胁也许在经济上是不可行的,可以进行决策,忽略掉一些
  • DREAD威胁评级模型
    DREAD分别是威胁评级的6个指标的英文首字母。
    潜在损失(Damage Potential) 如果缺陷被利用,损失有多大?
    重现性(Reproducibility) 重复产生攻击的难度有多大?
    可利用性(Exploitability) 发起攻击的难度有多大?
    受影响的用户(Affected users) 用粗略的百分数表示,有多少用户受到影响?
    可发现性(Discoverability) 缺陷容易发现吗?

附:十大安全设计原则

  1. 原则1 最小攻击面
  2. 原则2 默认安全
  3. 原则3 权限最小化
  4. 原则4 纵深防御
  5. 原则5 失败安全
  6. 原则6 不信任第三方系统
  7. 原则7 业务隔离
  8. 原则8 公开设计
  9. 原则9 简化系统设计
  10. 原则10 使用白名单

转载于:https://www.cnblogs.com/bingogo/p/11608455.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/462239
推荐阅读
相关标签
  

闽ICP备14008679号