目录
一、实验目的
二、实验软硬件要求
三、实验预习
四、实验内容(实验步骤、测试数据等)
实验步骤
确定安全目标
创建在线学习系统概况图
分解在线学习系统
确定威胁
威胁评估
确定威胁缓解计划或策略
验证和记录威胁
一、实验目的
熟悉软件安全需求分析方法,掌握软件安全分析技术。
二、实验软硬件要求
1、操作系统:windows 7/8/10等
2、安装Threat Modeling Tool 2016
三、实验预习
《软件安全技术》教材第7章
四、实验内容(实验步骤、测试数据等)
1. 目标:完成基于Threat Modeling Tool 2016的在线学习系统威胁建模过程。
2. 步骤:
(1) 安装Threat Modeling Tool 2016;
(2) 打开软件,根据前期的在线学习系统安全需求分析结果,构建软件流程图以及软件安全边界。
(3) 根据软件流程以及安全边界,生成威胁建模报告
3、实验报告。
实验步骤
-
确定安全目标
对于基于web的在线学习系统,其中需要保护的对象主要包括:
用户信息(学习者信息、教师信息、管理员信息)、资源信息(在线课程)、用户和管理密码、业务逻辑等。
图 1 在线学习系统业务流程图
-
创建在线学习系统概况图
在业务流程图的基础上,根据web服务的数据处理过程,构建的数据流图
图 2 在线学习系统数据流图
-
分解在线学习系统
图中用方框圈出了边界,虚线表示程序的出入点。
图 3 在线学习系统分解
-
确定威胁
有了在线学习系统的图形化表示,包括安全边界和信任边界,就可以开始确定在线学习系统的所有威胁了。这里采用工具threating modeling tool生成分析安全威胁报告来创建威胁列表,展示部分内容。
威胁类型 | 安全威胁 |
资料披露 | SQL 数据库的数据保护不当可能使攻击者读取非公开的信息 |
欺骗 | SQL 数据库可能被攻击者欺骗,这可能导致错误的数据传递到登录进程 |
人类用户可能被攻击者欺骗,这可能导致未经授权访问请求进程 | |
特权提升 | 请求过程可以模拟人类用户的上下文,以获得额外的特权 |
请求过程可以模拟 Web 服务的上下文,以获得额外的特权 | |
篡改 | 如果允许登录进程访问内存,比如共享内存或指针,或者允许登录进程控制 Web 服务的执行(例如,传回一个函数指针)然后登录进程可以篡改 Web 服务 |
经过验证/未验证的数据流可能被攻击者篡改。这可能导致针对请求进程的分布式拒绝服务攻击攻击,或针对请求进程的特权攻击升级,或由请求进程披露信息。未能验证输入是否符合预期是大量可利用问题的根本原因。 | |
抵赖 | 声称它没有从信任边界另一边的进程接收数据 |
分布式拒绝服务攻击 | 数据流登录请求可能中断 |
表 1威胁列表
-
威胁评估
可以采用概率x影响因子排序法对上一步中确定的威胁进行排序,本文中的学习系统规模较小,进行省略操作。
-
确定威胁缓解计划或策略
1)Spoofing(欺骗)——做好鉴权,考虑使用标准身份验证机制来标识源数据存储区,考虑使用标准身份验证机制来标识外部实体;
2)Tampering(篡改)——保证完整性,考虑所有路径及其处理数据的方式,使用经批准的列表输入验证方法验证所有输入的正确性,考虑一下登入进程函数是否可以使用较少的内存访问,比如传递数据而不是指针。复制所提供的数据,然后验证它;
3)Repudiation(抵赖)——加强可追溯,设置使用日志记录或审计来记录接收数据的源、时间和摘要;
4)Information Disclosure(信息泄露)——加密,检查授权设置,对数据库存储用户密码进行散列计算存储;
5)Denial of Service(拒绝服务)——保证可用性,外部代理中断在信任边界上以任一方向流动的数据,升级服务器容量;
6)Elevation of Privileges(特权提升)——加强权限控制,多重认证;
-
验证和记录威胁
最终完成对本次威胁建模的验证,以及文档的记录和保存。