一,概述
STRIDE分析模型是微软提出的一种威胁建模方法,它也是一套安全设计的方法论,它的6个字母代表六种安全威胁。分别是:
身份欺骗(Spoofing)
身份欺骗,即伪装成某对象或某人,指违背用户的认证信息。攻击者获得了用户的个人信息或使它能够重放认证过程的东西。例如,通过伪装成别人的身份进行操作。
篡改(Tampering)
篡改,即未经授权的情况下,修改系统、数据、代码,对存储或传输中的信息进行未经授权的更改,对硬盘进行格式化,恶意入侵者在通信中引入一个无法检测的网络数据包,以及对敏感文件进行无法检测的更改,都是篡改威胁。例如,非授权人员通过网络抓包或者某种途径修改某个请求包,使得篡改的请求包提交成功。
抵赖(Repudiation)
抵赖,即拒绝执行他人无法证实也无法反对的行为而产生抵赖。例如, A 攻击了某个产品,产品方并不知道是 A 做的,没有证据证明是 A 做的, A 就可以进行抵赖。
信息泄露(Information Disclosure)
信息泄露,即将信息暴露给未授权用户,用户能够阅读他没有被授予访问权的文件,以及入侵者能够在两台计算机之间的传输过程中阅读数据,都是信息泄露威胁。例如,通过某种途径获取未经加密的敏感信息。
拒绝服务(Denial of Service)
拒绝服务,即拒绝或降低有效用户的服务级别,当攻击者能够暂时使系统资源(处理时间、存储等)不可用或无法使用时,就存在拒绝服务的威胁。例如,通过拒绝服务攻击,使得其他正常用户无法使用产品的相关服务功能。
特权提升(Elevation of Privilege)
特权提升,即通过非授权方式获得更高权限,这类威胁更危险的方面是以不被发现的方式破坏系统,从而使用户能够在系统管理员不知情的情况下利用特权。特权提升的威胁包括那些允许攻击者拥有超过应有权限的情况,完全破坏了整个系统的安全,并造成极端的系统破坏。例如,试图用管理员的权限进行业务操作。
二,建模过程
STRIDE威胁建模的一般流程如下:
-
绘制数据流图——设计
-
识别潜在威胁——中断
-
提出缓解措施——修复
-
进行安全验证——验证
绘制数据流图
数据流图是由以下4个元素组成:
-
外部实体(External Entity):系统控制范围之外的用户、软件系统或者设备,作为一个系统或产品的输入或输出,在数据流图中用矩形表示外部实体
-
处理过程(Process):表示一个任务、一个执行过程,一定有数据流入和流出。在数据流图中用圆形表示
-
数据存储(Data Store):存储数据的内部实体,如数据库、消息队列、文件等。用中间带标签的两条平行线表示
-
数据流(Data Flow):外部实体与进程、进程与进程或者进程与数据存储之间的交互,表示数据的流转。在数据流图中用箭头表示
安全人员与系统架构师及设计人员沟通了解设计详情并画出数据流图后还需要标注信任边界(Trust Boundary),针对简单的Web应用的数据流图如下:
识别潜在威胁
STRIDE威胁建模方法已经明确了每个数据流图元素具有不同的威胁,其中外部实体只有仿冒(S)、抵赖(R)威胁,数据流只有篡改(T)、信息泄露(I)、拒绝服务(D)威胁,处理过程有所有六种(STRIDE)威胁,存储过程有篡改(T)、信息泄露(I)、拒绝服务(D)威胁,但如果是日志类型存储则还有抵赖(R)威胁,具体可对照如下表格进行威胁识别
提出缓解措施
根据不同的数据流图元素及威胁相应的缓解措施也不相同,如本文示例数据流图中外部实体用户的仿冒威胁,其缓解措施简单来说就是对用户身份进行认证,对一个Web应用来说缓解仿冒威胁不仅需要较强的认证机制,还需要防止恶意攻击者用暴力破解、口令猜测等方法绕过认证从而造成仿冒用户的威胁,如果笔者来提出该用户仿冒威胁的缓解措施的话,详细措施如下:
-
对用户访问进行帐号密码、证书等身份认证
-
用户认证5次后仍然验证失败,则在30分钟内禁止该帐号登录
-
用户帐号密码认证过程中,如果出现三次密码错误,则增加验证码机制,输入验证码且正确再进行身份认证
-
用户密码必须包含数字、字母及特殊字符且长度在8位以上,如果业务安全需要则增加密码过期机制,每隔6个月提醒用户修改密码
在提出缓解措施时,有的时候不仅要考虑安全问题,同时也要考虑软件的易用性,所以不同的威胁和不同的应用场景,其缓解措施也要随之而改变以提高应用安全的同时也能给用户带来较好的交互体验,微软对于常用的威胁给出了其常用的标准缓解措施并在具体实施时已将常用的缓解方案及措施集成为独立的解决方案或者代码模块,可以方便同类应用直接使用:
进行安全验证
在威胁建模完成后需要对整个过程进行回顾,不仅要确认缓解措施是否能够真正缓解潜在威胁,同时验证数据流图是否符合设计,代码实现是否符合预期设计,所有的威胁是否都有相应的缓解措施,最后将威胁建模报告留存档案,作为后续迭代开发、增量开发时威胁建模的参考依据
标签:威胁,模型,用户,认证,STRIDE,缓解,数据流,建模 From: https://www.cnblogs.com/Ir0nHeart/p/18242815