软件安全设计(威胁建模实现)

news2024/9/21 22:35:02

目录

一、实验目的

二、实验软硬件要求

三、实验预习

四、实验内容(实验步骤、测试数据等)

实验步骤

确定安全目标

创建在线学习系统概况图

分解在线学习系统

确定威胁

威胁评估

确定威胁缓解计划或策略

验证和记录威胁


一、实验目的

熟悉软件安全需求分析方法,掌握软件安全分析技术。

二、实验软硬件要求

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、实验报告。

实验步骤

  1. 确定安全目标

对于基于web的在线学习系统,其中需要保护的对象主要包括:

用户信息(学习者信息、教师信息、管理员信息)、资源信息(在线课程)、用户和管理密码、业务逻辑等。

图 1 在线学习系统业务流程图

  1. 创建在线学习系统概况图

在业务流程图的基础上,根据web服务的数据处理过程,构建的数据流图

图 2 在线学习系统数据流图

  1. 分解在线学习系统

图中用方框圈出了边界,虚线表示程序的出入点。

图 3 在线学习系统分解

  1. 确定威胁

有了在线学习系统的图形化表示,包括安全边界和信任边界,就可以开始确定在线学习系统的所有威胁了。这里采用工具threating modeling tool生成分析安全威胁报告来创建威胁列表,展示部分内容。

威胁类型

安全威胁

资料披露

SQL 数据库的数据保护不当可能使攻击者读取非公开的信息

欺骗

SQL 数据库可能被攻击者欺骗,这可能导致错误的数据传递到登录进程

人类用户可能被攻击者欺骗,这可能导致未经授权访问请求进程

特权提升

请求过程可以模拟人类用户的上下文,以获得额外的特权

请求过程可以模拟 Web 服务的上下文,以获得额外的特权

篡改

如果允许登录进程访问内存,比如共享内存或指针,或者允许登录进程控制 Web 服务的执行(例如,传回一个函数指针)然后登录进程可以篡改 Web 服务

经过验证/未验证的数据流可能被攻击者篡改。这可能导致针对请求进程的分布式拒绝服务攻击攻击,或针对请求进程的特权攻击升级,或由请求进程披露信息。未能验证输入是否符合预期是大量可利用问题的根本原因。

抵赖

声称它没有从信任边界另一边的进程接收数据

分布式拒绝服务攻击

数据流登录请求可能中断

表 1威胁列表

  1. 威胁评估

可以采用概率x影响因子排序法对上一步中确定的威胁进行排序,本文中的学习系统规模较小,进行省略操作。

  1. 确定威胁缓解计划或策略

1)Spoofing(欺骗)——做好鉴权,考虑使用标准身份验证机制来标识源数据存储区,考虑使用标准身份验证机制来标识外部实体;
2)Tampering(篡改)——保证完整性,考虑所有路径及其处理数据的方式,使用经批准的列表输入验证方法验证所有输入的正确性,考虑一下登入进程函数是否可以使用较少的内存访问,比如传递数据而不是指针。复制所提供的数据,然后验证它;
3)Repudiation(抵赖)——加强可追溯,设置使用日志记录或审计来记录接收数据的源、时间和摘要;
4)Information Disclosure(信息泄露)——加密,检查授权设置,对数据库存储用户密码进行散列计算存储;
5)Denial of Service(拒绝服务)——保证可用性,外部代理中断在信任边界上以任一方向流动的数据,升级服务器容量;
6)Elevation of Privileges(特权提升)——加强权限控制,多重认证;

  1. 验证和记录威胁

最终完成对本次威胁建模的验证,以及文档的记录和保存。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/79956.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]JAVA毕业设计医院管理系统(系统+LW)

[附源码]JAVA毕业设计医院管理系统(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&…

Spring Cloud Feign的自定义配置及使用

Feign 提供了很多的扩展机制,让用户可以更加灵活的使用,这节我们来学习 Feign 的一些自定义配置。 日志配置 有时候我们遇到 Bug,比如接口调用失败、参数没收到等问题,或者想看看调用性能,就需要配置 Feign 的日志了…

遥感影像(tif,img)概览/金字塔(overviews)的创建与清除

使用python环境下的gdal进行遥感影像(tif,img格式)概览(overviews)的创建与清除,前边是测试过程,结论在最后 过程 问题起因是拿到一批img格式的影像需要转cog,程序运行中报了个错 …

ESXi8.0安装,实体机安装,IPMI远程安装实战笔记

目录 1.前言 2.连接主板IMPI 3.硬件兼容及BIOS设置 4.从U盘安装ESXi ESXi8.0安装包下载: 链接:https://pan.baidu.com/s/1-a3ka1TAScFPtAc29jcxzQ 提取码:qwhg 1.前言 ESXi系列的虚拟机直接以操作系统的形态出现,与基于Li…

【Linux静态库和动态库】

Linux静态库和动态库1. 编译与ELF格式2. 库的基本概念3.静态库的制作:(假设要将a.c、b.c制作成静态库)4.静态库的常见操作5.静态库的使用6. 多个库的相互依赖举例1.(库文件制作、错误处理)7.静态库和动态库的关系和区别8.动态库的制作软链接 …

ADI Blackfin DSP处理器-BF533的开发详解25:USB接口设计(含源代码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 硬件设计原理图 功能介绍 跟网口一样,USB这个设计很勉强,因为BF533并不带USB口,当时是给一个大厂做MP4的方案…

猿如意中的【UltraEdit】开发工具详情介绍

目录 一、工具名称 二、下载安装渠道 2.1 什么是猿如意? 2.2 如何下载猿如意? 2.3 如何在猿如意中下载UltraEdit? 三、UltraEdit介绍 四、软件安装过程 五、软件界面 六、UltraEdit功能特点介绍 七、UltraEdit使用/体验感受…

Python测试进阶(二)

文章目录简介selenium等待Web控件交互表单操作多窗口frame多浏览器处理用 js 操作文件上传弹窗pageObject复用浏览器简介 这部分主要介绍 web 自动化测试 selenium 专门测试 web 的工具,根据测试用例,直接在浏览器上执行对应动作还是在 pytest 框架中…

牛客网SQL入门复健小练

SQL3:distinct 查询结果去重,返回所有不同的university 方法一:distinct关键字。(注意:这个关键字实际上是 select distinct,如果是多列,多列作为一个组合然后 distinct 去重) 方…

[oeasy]python0028_直接运行_修改py文件执行权限_设置py文件打开方式

直接运行 回忆上次内容 我们把两个程序整合起来了 可以持续输出当前时间每秒都更新但是我想在 shell 里面 只输入文件名(./sleep.py)并回车就能不断输出时间可能吗?🤔 import time while True:print(time.asctime())time.sleep(1) 尝试执行 第 1 句 根…

EXCEL基础:数据透视表(按月或月累计统计操作)

【按月统计数据】: 本操作实现的是原始数据是以日为单位,统计使用的时候,需要以月份或者季度、年份的形式进行,可以使用数据透视表的【组合】功能来 实现,如下所示: 如下所示,将日期字段放在行…

免费分享一套基于VuePress开发的markdown产品文档

vuepress-theme-jingli 文档 | 效果 | 本仓库的gitee镜像 (进入赞助商扫码注册可为本项目作者充电~) 介绍 这个主题的初衷是打造一个好用的、面向程序员的知识管理工具轻松构建一个结构化的知识库,让你的知识海洋像一本本书一样清晰易读。…

Mac 下设置VScode 背景图片失败解法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言解法一:直接修改VScode 的CSS解法二:还是想用插件总结前言 仓库推荐 C/C 每日一练小仓库,慢慢学习C 知识必备仓库 https://…

Java8:SPI机制

参考资料: 《双亲委派机制及其弊端》 《Java中SPI机制深入及源码解析》 《Java SPI思想梳理》 《深入理解 Java 中 SPI 机制》 写在开头:本文为学习后的总结,可能有不到位的地方,错误的地方,欢迎各位指正。 目录 …

MyBatis-Plus联表查询的短板,终于有一款工具补齐了

mybatis-plus作为mybatis的增强工具,它的出现极大的简化了开发中的数据库操作,但是长久以来,它的联表查询能力一直被大家所诟病。一旦遇到left join或right join的左右连接,你还是得老老实实的打开xml文件,手写上一大段…

10.泛型算法

文章目录*泛型算法**10.1概述**10.2初识泛型算法**10.2.1只读算法**算法和元素类型**操作两个序列的算法**10.2.2写容器元素的算法**算法不检查写操作**介绍back_inserter**拷贝算法**10.2.3重排容器元素的算法**消除重复单词**使用unique**10.3定制操作**10.3.1向算法传递函数…

【JavaSE】那些异常

目录 1. 何为异常 2. 异常的分类 2.1 运行异常 / 非受查异常 : 3. 异常的处理思想 4. 异常的抛出 5. 异常的捕获 5.1 异常声明 throws 5.2 try-catch 捕获异常并处理 6. finally 7. 异常的处理流程 8. 自定义异常 1. 何为异常 在Java中,将程序执…

LeetCode 1884. 鸡蛋掉落-两枚鸡蛋 -- 动态规划

鸡蛋掉落-两枚鸡蛋 中等 60 相关企业 给你 2 枚相同 的鸡蛋&#xff0c;和一栋从第 1 层到第 n 层共有 n 层楼的建筑。 已知存在楼层 f &#xff0c;满足 0 < f < n &#xff0c;任何从 高于 f 的楼层落下的鸡蛋都 会碎 &#xff0c;从 f 楼层或比它低 的楼层落下的鸡蛋…

Jedis解读与建议

1. Jedis是什么&#xff1f; 官网 Jedis 是官方推荐的java客户端&#xff01;SpringBoot的RedisTemplate的底层也是Jedis&#xff1b; 2. 为什么使用池化&#xff1f; 背景&#xff1a; Redis为单进程单线程模式&#xff0c;采用队列模式将并发访问变为串行访问。Redis本身没…

leetcode:合并两个有序数组

合并两个有序数组1、题目描述2、解决方案3、代码实现1、题目描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非…