安全性设计方案

安全性设计方案

系统资源的分析

电子公文传输系统就是利用计算机网络和安全技术,实现政府部门与部门之间、单位与单位之间政府红头文件的起草、制作、分发、接收等功能,以现代的电子公文传输模式取代传统的纸质公文传输模式。若需紧急状况公文立即传输,可能导致重要文件的传输不能按时到达。本项目主要是为了节约人力物力与时间,在相对安全的情况下传输公文。

其中包含的资源主要是信息资源,不同级别的部门和人员查看资源的权限也是不同的,具体如下

  • 部门信息(部门编号、部门名称)
  • 组织信息(组织编号、组织名称)
  • 人员信息(人员编号、登录名、登陆密码、真实姓名、所属角色编号、所属部门编号、职位、电话号码、邮箱、性别)
  • 文件类型信息(类型编号、类型名称)
  • 文件信息(文件编号、文件名称、文件简介、文件链接、发送日期、发送者、接收者、状态、文件类型编号)
  • 其他信息(字体、字号、电子公章等)

以上资源在系统和传送过程中均需进行保密传输,并且在不同的组织和部门下,人员可以查看的信息也是有区别的

为保护安全,我们对用户进行安全性设计如下:

  • 身份认证
  • 数据加密
  • 数字签名
  • 访问控制
  • 证书配置
  • 安全审计

本系统为规范使用,还针对部分功能进行划分:

用户

用户可对公文文件进行发送、接收,对自己的文件浏览、查询、打印等。

  • 公文传输:在安全登录情况下,从电脑中将需处理的公文上传至电子公文系统。
  • 公文管理:使用者根据自己所发布或所接收的文件,按照密级、紧急程度等进行分类归档。
  • 公文加密:将公文使用密码算法加密进行加密发送。
  • 公文接收:对相应接收到的公文进行判断并解密,安全保存至用户公文系统。
  • 公文验证:登录者可根据自己的需求对公文验证。
  • 公文查询:根据签发部门,密级,紧急程度等查询公文。

管理员

管理员可以发布所有文件,普通用户只能阅读自己对应权限下的文件。

用户管理

  • 管理员可增加、删除和修改系统角色信息。
  • 管理员可根据系统设置的安全规则、安全策略对不同级别的用户分配不同的权限。

公文设置管理

  • 管理员可进入后台选择文件列表,查看用户发布及签收文件的情况。
  • 管理员可查询所有发布和接收的公文,可对所有使用者用户发布的文件进行修改。

系统管理

  • 管理员可以对数据进行备份,以便后续审计工作。
  • 管理员可以进行事务配置。

基于STRIDE模型的威胁分析

  • 以电子公文传输系统数据流分析为基础,分析传输及其相关处理过程是否有STRIDE模型中所含有的威胁,识别并记录威胁。针对系统的威胁涉及到处理过程、数据流和数据存储等,通过此方法可识别可能影响应用程序的威胁、攻击、漏洞,进而设计对应的缓解对策,以降低安全风险并满足传输系统的安全。这里根据威胁类型整理出部分可能存在的威胁:
  • Spoofing 欺骗:
    • 威胁描述:涉及非法访问并使用其他用户的身份验证信息,例如用户名和密码。
    • 威胁目标:用户信息
    • 可能使用方式:伪冒用户身份、钓鱼网站、欺骗数据库等(威胁度:中);
  • Tampering 篡改:
    • 威胁描述:涉及恶意修改数据。示例包括对持久数据(例如数据库中保存的数据)进行未经授权的更改,以及数据在通过开放网络(例如 Internet)在两台计算机之间流动时的更改。
    • 威胁目标:数据库信息、传输数据
    • 可能使用方式:跨站脚本攻击、SQL 注入攻击、日志攻击等(威胁度:较高);
  • Repudiation 否认:
    • 威胁描述:与拒绝执行某项操作而其他方没有任何方式证明的用户相关联。例如,用户在缺乏追踪被禁止操作的能力的系统中执行非法操作。不可否认性是指系统对抗否认威胁的能力。例如,购买商品的用户可能必须在收到商品时签名。然后,供应商可以使用签名的收据作为用户确实收到包裹的证据。
    • 威胁目标:日志记录
    • 可能使用的方式:否认操作、缺少签名(威胁度:中);
  • Information Disclosure 信息泄露:
    • 威胁描述:涉及将信息暴露给不应该访问它的个人——例如,用户读取他们无权访问的文件的能力,或者入侵者读取两台计算机之间传输的数据的能力。
    • 威胁目标:数据信息
    • 可能使用的方式:恶意程序窃取信息,钓鱼网站(威胁度:高);
  • Dos 拒绝服务:
    • 威胁描述:拒绝服务 (DoS) 攻击拒绝向有效用户提供服务,例如,通过使 Web 服务器暂时不可用或无法使用。您必须防范某些类型的 DoS 威胁,以提高系统可用性和可靠性。
    • 威胁目标:服务器
    • 可能使用的方式:使用僵尸电脑进行DOS攻击、UDP FLOOD\SYN FLOOD、Land攻击等(威胁度:高);
  • Elevation of privilege 特权提升:
    • 威胁描述:非特权用户获得特权访问,从而有足够的访问权限来破坏或破坏整个系统。特权提升威胁包括攻击者有效渗透所有系统防御并成为可信系统本身的一部分的情况。
    • 威胁目标:访问权限
    • 可能使用的方式:挂马攻击、跨域攻击、跨站脚本攻击等(威胁度:较高)。

STRIDE应对方法

在初期进行STRIDE威胁建模

威胁建模

威胁建模是一个非常有用的工具,它的核心是像攻击者一样思考。威胁建模强迫我们站在攻击者角度去评估产品的安全性,分析产品中每个组件是否可能被篡改、仿冒,是否可能造成信息泄露、拒绝攻击。

威胁建模流程

  • 绘制数据流图
  • 识别威胁
  • 提出缓解措施
  • 安全验证

数据流图

识别威胁

元素 仿冒 篡改 抵赖 泄露 拒绝服务 权限提升
外部实体 1 1 0 0 0 0
处理过程 1 1 1 1 1 1
数据存储 0 1 0 1 1 0
数据流 0 1 0 1 0 0

提出缓解措施

威胁类型 缓解措施
仿冒 认证
篡改 完整性保护
抵赖 数字签名
信息泄露 保密性
权限提升 访问控制

安全验证

在威胁建模完成后,需要对整个过程进行回顾,不仅要确认缓解措施是否能够真正缓解潜在威胁,同时验证数据流图是否符合设计,代码是否符合预期等。

基于DREAD模型的风险分析

分析背景

威胁建模工具是 Microsoft 安全开发生命周期 (SDL) 的核心要素。潜在安全问题处于无需花费过多成本即可相对容易解决的阶段,软件架构师可以使用威胁建模工具提前识别这些问题。因此,它能大幅减少开发总成本。此外,我们设计该工具时考虑到了⾮安全专家的体验,为他们提供有关创建和分析威胁模型的清晰指导,让所有开发人员都可以更轻松地使用威胁建模。
通过使用Microsoft threat-modeling工具进行威胁建模后,我们需要对威胁进行评级,进行优先排序。

威胁评级DREAD

威胁评级

根据威胁造成的危险对其进行评价。这样就能够首先解决危险最大的威胁,然后再解决其他的威胁。实际上,解决所有找出的威胁也许在经济上是不可行的,可以进行决策,忽略掉一些,因为它们发生的机会很小,即使发生,带来的损失也很小。

简单评价系统: 危险 = 发生概率 × 潜在的损失  

这种评价方式很容易理解,发生概率大,潜在损失也大的威胁肯定危险等级最高;而发生概率低,潜在损失也低的威胁危险等级最低。发生概率大损失小或者发生概率小损失大的,危险等级就居中。 实际做STRIDE威胁分析时就是用的这种简单评价方式,评价简洁实施容易,但由于评价标准单一,对于有争议的威胁就可能出现大家对危险等级的评级意见不统一。

DREAD威胁评级模型

DREAD分别是威胁评级的5个指标的英文首字母。

  • 潜在损失(Damage Potential)如果缺陷被利用,损失有多大?
    0 = 没有损失
    5 = 个人用户数据被盗用或影响
    10 = 整体的系统或数据破坏

  • 重现性(Reproducibility)重复产生攻击的难度有多大?
    0 = 非常困难或者不可能,即时对于应用管理员
    5 = 需要一步或两步,可能需要变成授权用户
    10 = 仅仅一个浏览器和地址栏就完成攻击,不需要身份认证

  • 可利用性(Exploitability)发起攻击的难度有多大?
    0 = 高级程序和网络知识,以定制的或高级攻击工具
    5 = 互联网上存在恶意软件,此漏洞可被轻易地利用和可用的攻击工具
    10 = 仅仅一个web浏览器就可以

  • 受影响的用户(Affected users)用粗略的百分数表示,多少用户受到影响?
    0 = 没有
    5 = 一些用户,但不多
    10 = 所有用户

  • 可发现性(Discoverability)缺陷容易发现吗?
    0 = 非常困难,甚至不可能; 需要源码或者管理员权限
    5 = 可以通过猜测或者监测网络活动来发现
    9 = 错误的细节已经在公共平台上披露,可以用搜索引擎轻易发现
    10 = 信息在web浏览器的地址栏或者表单里可见。


这5个指标每个指标的评级分为高中低三等,最终威胁的危险评级由这5个指标的加权平均算出。

举例

比如前不久刚爆出的CPU芯片的Meltdown和Spectre漏洞,这个威胁因为是涉及硬件底层的漏洞,所以在其上面运行的任何软件或者系统都可能受到影响,而不像通常的某个软件的漏洞,只针对对应的软件。
所以这个漏洞在“潜在的损失”(Damage Potential)这项评分一定是高,但在“可发现性”(Discoverability)这项评分上就是低,因为这个底层的漏洞⾮常难发现,需要有非常丰富经验和技术的研究者花很多时间和精力才可能发现的,事实上这个漏洞的确也是存在了很多年一直没有被发现。类似如此对每项指标逐一评级后就能算出最终的危险评分。每项评级的评定标准参考上表。

DREAD应对方法

在初期进行DREAD威胁建模

威胁建模

威胁建模是一个非常有用的工具,它的核心是像攻击者一样思考。威胁建模强迫我们站在攻击者角度去评估产品的安全性,分析产品中每个组件是否可能被篡改、仿冒,是否可能造成信息泄露、拒绝攻击。

威胁建模流程

  • 分析五个指标
  • 计算风险等级
  • 风险校正和缓解措施
  • 安全验证

分析五个指标

  1. 潜在损失:
    0=没有损失
    5=个人用户数据被盗用或影响
    10=整体的系统或数据破坏

  2. 重现性
    0=非常困难或不可能,即使对于应用管理员
    5=需要一步或两步,可能需要变成授权用户
    10=仅仅一个浏览器和地址栏就完成攻击,不需要身份认证

  3. 可利用性
    0=需利用高级程序和网络知识
    5=需利用恶意软件,此漏洞可被轻易利用和可用的攻击工具
    10=仅仅一个web浏览器就可以

  4. 受影响用户
    0=没有
    5=一些用户,但是不多
    10=所有用户

  5. 可发现性
    0=非常困难,甚至不可能,需要源码或者管理员权限
    5=可以通过猜测或者监测网络活动发现
    9=错误细节在公共平台上披露,可用搜索引擎发现
    10=信息在web浏览器的地址栏或者表单里可见

计算风险等级

由以上五个指标加权平均算出危险评级:
严重:9-10
高危:6-8
中危:3-5
低危:1-2
忽略:0
DREAD模型的计算方式:等级=危害性+复现难度+利用难度+受影响用户+发现难度

已有的等级计分分数标准,结合DREAD的等级计算方式,最终适配出来的分数是:

等级[忽略(0),严重(10)]=(潜在损失[0,10]+重现性[0,10]+可利用性[0,10]+受影响用户[0,10]+可发现性[0,10])/2

其中,
1.潜在损失、重现性、可利用性任意一个值为0,总分即为0;
2.等级为0总分除以2后取整。

风险校正和缓解措施

  1. 根据DREAD模型计算的5个维度的权重都是1,而通常情况下更多人更看重漏洞危害对等级的影响,或者有的只看重危害和利用难度,或者有的只看重危害+利用难度+影响用户,那么权重是不是需要调整呢,或者删掉一些维度呢?
    这个需要大量的数据和实践来支撑,目前DREAD模型的标准权重是1,这个是模型的理论基础,后续结合实际情况再看是否和如何调整。

  2. 大部分时间计算下来的漏洞都是中危以上,基本上很难计算出来低危的漏洞,而实际上确实有低危的情况。
    1)方法一:引入部分漏洞类型,当选择这些类型的时候,会默认给出一些参考值。
    2)方法二:调整漏洞等级的大分和小分的值,例如现有低危计算是12,可以调整为0.53.5都是低危。

  3. 除了常见的5个维度,有些情况下,如果通盘考虑,除了传统意义上的安全风险,可能还有覆盖不全的?
    1)安全维度本身,有时候需要考虑触发条件等因素,可以酌情进行调整。
    2)公关风险和法律风险

安全验证

在威胁建模完成后,需要对整个过程进行回顾,不仅要确认缓解措施是否能够真正缓解潜在威胁,同时验证数据流图是否符合设计,代码是否符合预期等。

人员分工

  • 20201213郭幸坤:DREAD应对方法
  • 20201221曾思源:STRIDE应对方法、
  • 20201220蔡笃俊:安全性设计方案
  • 20201229赵斌:基于DREAD模型的风险分析
  • 20201214罗云帆:基于STRIDE模型的威胁分析
  • 20201212杨铖宇:系统资源分析
posted @ 2023-05-16 10:23  acacacac  阅读(125)  评论(0编辑  收藏  举报