【山东科技大学 软件安全 期末复习】
软件是程序、数据和文档的集合体。
网络攻击中,超过 70% 的漏洞来自应用程序软件。
移动互联网App存在安全漏洞的比例超过 90%。
软件面临的安全威胁分为三类,分别为 软件漏洞、恶意代码 和 软件侵权 。
漏洞利用的过程:漏洞发现 、漏洞挖掘 、漏洞验证、漏洞利用、实施攻击。
0day漏洞是指已经被发现(有可能未被公开)但官方还没有相关补丁的漏洞。
1day漏洞是指厂商发布安全补丁之后但大部分用户还未打补丁时的漏洞,此类漏洞仍然具有可利用性。
//存在漏洞,x*y是int型整数,会爆int(溢出) c++和java都存在此问题 long foo(int x, int y) {long result= x * y ;return result; }
int i = -3; unsigned short ui=i; printf("%u",ui); //结果为65533,对65536取模
char c1='a'; char c2='b'; char c3=c1+c2; printf("%d,",c3); //结果为-61 ---------->应改为int c3=c1+c2;
软件安全错误一般包含六个方面,分别是 需求说明错误 、设计错误、编码错误、测试错误 、配置错误 和 文档错误 。
漏洞是引发信息安全事件的根源。
软件开发过程中,人为错误称为(软件错误),软件中,软件内部的错误称为(软件缺陷 ),软件运行中,不正常的状态称为(软件故障)。
网络空间包含电子设备、基础设施、应用、数据,还有(人)。
网络安全框架的核心PDRR模型中,P指( 保护 )、D指( 检测 )。
unsigned short int a =32768; short int i=a; //-32768 ~ 32767 printf("%d",i); //-32768 a=65535; i= a; printf("%d",i); // -1
int bigint=2147483647; printf("%d",bigint++); //2147483647 unsigned int z=0; printf("%d",--z); //-1
unsigned int i=ULONG_MAX; int c= -1; printf("%d", c==i); //1
栈帧是系统为进程中的每个(函数)调用划分的一个空间。
指向当前栈帧的栈顶的指针是(ESP),指向栈底的是(EBP)。
缓冲区溢出指向缓冲区写数据时,没有做(边界)检查,缓冲区的数据超过预先分配的(边界),使得一簇数据覆盖在合法数据上引起的系统异常。
数据区存储(全局)变量和(静态)变量。
栈增长方向是从(高)地址到(低)地址;堆增长方向是从(低)地址到(高)地址。 //站高
Win32系统中,进程空间按功能分为4个区域,从低地址到高地址依次为(栈区)、(堆区)、(代码区)、(数据区)。
程序中所用的缓冲区可以是堆、栈、数据区。 √
代码区只存放机器代码。 ×------>存放程序汇编后的机器代码和只读数据
//改错 1.char s1[5]; // ---->char s1[6];2.char s2[]="abcde";3.char *p;4.int i;5.strcpy(s1,s2);6.p=(char *) malloc (strlen(s1)); //----> p=(char*)malloc(strlen(s1)+1);
char s[10]; //----->cin.width(10)cin>>s;cout<<s<<endl;
在C语言的格式化输出中,表示十进制数输出的格式符号是%d,那么表示宽度为6,右对齐的十进制数输出的格式符号是(%6d);表示宽度为6,左补零右对齐的十进制数输出的格式符号是(%06d);输出16进制数的格式符号是(%x);输出字符串的格式符号是(%s);以小数形式输出浮点数的格式符号是(%f);输出十进制无符号数的格式符号是(%u);输出asc码字符的格式符号是(%c);以指数形式输出浮点数的格式符号是(%e);输出指针地址的格式符号是(%p);输出长整型数的格式符号是(%ld)。
unsigned short s=4; while (--s >=0) // ---->死循环,应改为while (--s>0) {printf("%d",s); }
在32位系统中,size_t相当于类型 unsigned int最大值是 4294967295(2^32-1)
char s1[5]; //---->char s1[6]char s2[5]; //---->char s2[6]char s3[10]; //---->char s3[11]strcpy(s1,"12345");strcpy(s2,"abcde");strcpy(s3,s1);strcat(s3,s2);cout<<s1<<endl;cout<<s2<<endl;cout<<s3<<endl;
char s[10];puts("input a string:") ;gets(s); // ----> fgets(s,sizeof(s),stdin)cout<<s<<endl;
void test(char *c) {short s=strlen(c); //可能会爆shortchar buf[100];cout << "strlen(c)=" << strlen(c)<<endl;if(s<100){strcpy(buf,c);}else{cout<<"overflow!" <<endl;} }
// n赋初值为10 n=(2* ++n)*(n = 'a')+ (n>0?1:-1); //----->答案是2135,但编译器不同意
软件生命周期由三个时期构成,分别是**(软件定义)时期、(软件开发)时期和(软件维护)时期**。
确定软件完成总目标的是(软件定义)时期,由(系统分析员)负责完成。
软件定义时期,一般分为三个阶段,分别是(问题定义)、(可行性研究)和(需求分析)。
完成设计和实现任务的是(软件开发)时期,其中系统设计分为(总体设计)和(详细设计)阶段,系统实现分为(编码和单元测试)和(综合测试)阶段。
使软件能够满足用户长久需求的是(软件维护)阶段。
软件安全中,软件安全测试和开发过程包括:软件安全(需求分析 )、软件安全(设计 )、软件安全( 编码)、软件安全( 测试)、软件安全(部署)。
威胁建模可以在软件**(设计)**之初,就帮助发现安全问题,发现风险。
解决软件产品自身安全实质性的方法是(威胁建模)。
威胁建模有3种,分别是以**(软件)、(安全)和(资产和风险)**为中心。
测试人员使用**(威胁模型)**来生成安全测试用例。
开发团队使用**(威胁模型)**来实现安全控制和编写安全的代码。
威胁建模的作用可以跨越软件生命周期,一个完整的威胁建模是软件**(设计)、(开发)、(测试)、(部署)和运营团队**的代表性输入项。
设计阶段,由**(软件架构团队)**识别威胁,建立威胁模型。
威胁建模是循环反复的过程。 √
软件开发阶段,会发现所有的可能威胁。 ×
FILE *file=fopen("test.txt","w"); fprintf(file,"%s","hello"); //后面增加fflusf(stdout) fclose(file); return 0;
void change (int * q) //改成int* & q { if(q==NULL) q=new int(20); } int main(){ int *p=NULL; change(p); printf("%d\n,*p); }
威胁建模过程:确定安全目标,创建应用程序概况图,分解应用程序,确定威胁,威胁评估,确定威胁缓解计划和策略,验证威胁,威胁建档
int foo(char * s){ char *d=new char[10]; if (s==NULL){ //也要释放dreturn 0; } strncpy(d,s,10); delete[] d; return 1; }
信息安全三大基本属性:保密性,认证性,完整性。
保密性:实现保密性的方法一般是对信息加密和分配访问权限。
完整性:实现完整性的方法一般为预防和检测两种机制。
可用性:为了实现可用性,可以采取备份(实时备份、定时备份)和灾难恢复、应急响应、系统容侵等许多安全措施。
char * s="c language"; //----->char s[]="c language"; s[0]='C';
函数栈帧包含的信息:前一个栈帧的栈低位置,即前栈帧EBP;该函数的局部变量;函数调用的参数;函数的返回地址RET,用于保存函数调用前指令的位置。
栈溢出:越界的数组元素覆盖相邻的局部变量,甚至覆盖前栈帧EBP和函数返回地址RET。
格式化串漏洞的根源:C语言不对数组边界进行检查的缓冲区错误。
需求分析:头脑风暴,问卷调查和访谈,策略分解,数据分类,主/客体关系矩阵…
需求分析:核心安全需求,通用安全需求(安全架构,会话管理),运维安全需求,其它安全需求。
STRIDE威胁分类:
假冒 认证性 攻击者能够伪装成另一个用户或身份 验证主体、验证代码或数据
篡改 完整性 在传输、存储或归档过程中能够修改数据 访问控制列表、数字签名
否认 不可否认性 攻击者能够否认攻击 强身份验证、数字签名
信息泄露 机密性 信息泄露给未授权的用户 加密、访问控制列表
拒绝服务 可用性 对于合法用户拒绝提供服务 访问控制列表、授权
特权提升 授权性 攻击者能够跨越最小权限限制 访问控制列表、输入验证
Java类加载器:启动类加载器,标准扩展类加载器,路径类加载器,网络类加载器。
int **a =new int *[3]; for (int i=0;i<3;i++){a[i]=new int[2];}delete []a; //----->应该删除每个a
char *s1="abcd";char s2[5];strcpy(s2,s1);if(s1==s2){ //改为 if(strcmp(s1,s2)==0)printf("equal!");}else{printf("not equal!");}
Obj * obj=new Obj[10]; delete []obj //释放OObj * obj=new Obj(10); delete obj //释放
代码静态检测:不在计算机上实际执行所检测的程序,而是采用人工审查或类似动态分析的方法。
代码动态检测:实际运行代码时进行检测的方法。
上述知识是考前整理的,考完之后发现只复习上述知识是远远不够的
【山东科技大学 软件安全 期末复习】相关推荐
- 电子科技大学操作系统期末复习笔记(二):进程与并发控制
目录 前言 进程管理 进程基本知识 程序的顺序执行 前趋图 程序的并发执行 并发程序 进程的定义和特征 进程的特征和状态 操作系统内核 定义 功能 原语 原子操作的实现 操作系统控制结构 进程控制块P ...
- 电子科技大学人工智能期末复习笔记(四):概率与贝叶斯网络
目录 前言 概率 概率公式 贝叶斯公式 链式条件概率 例题 1. 求联合概率分布/边缘概率分布/条件概率分布 2. 灵活运用贝叶斯公式 概率总结 贝叶斯网络 判断独立性 两个事件独立的判断 条件独立性 ...
- 电子科技大学人工智能期末复习笔记(三):一阶逻辑
目录 前言 逻辑基础 命题的定义 命题的真值 原子公式 连词和量词 合式公式的真值表 等价关系 永真蕴含式 置换与合一 消解原理 鲁滨逊归结原理 总结 例题 前言 本复习笔记基于李晶晶老师的课堂PPT ...
- 电子科技大学 图论期末复习 公式索引
title: 图论期末考试复习 date: 2020-08-17 09:01:09 tags: 参考资料:<图论及其应用> 高等教育出版社 张先迪 / 李正良 仅用于方便复习公式查阅,公式 ...
- 电子科技大学 图论期末复习 公式快速索引
title: 图论期末考试复习 date: 2020-08-24 09:01:09 tags: 参考资料:<图论及其应用> 高等教育出版社 张先迪 / 李正良 仅用于复习参考,公式或多有误 ...
- 电子科技大学图论期末复习重点(杨春老师强调+往年期末卷子总结)
附加老师最后一节课画的重点(课堂笔记) 结语:2022年图论试卷很基础,掌握基础80分没有问题的,大家冲冲冲!!!
- 网络安全 期末复习 (山东农业大学)
山东农业大学(任教老师:张亮) 必修,期末复习整理 期末考试结束了,网络安全考的不是很理想,因为所以有关于考试有关的试题及题型所有都不知道,这个总结并不是很全面,希望如果是同一学校的学弟学妹们在在此基 ...
- 山东科技大学计算机控制系统期末考试试卷,山东科技大学_计算机操作系统试题A...
山东科技大学 计算机操作系统 一.单项选择题(每小题2分,共30分) 1. 有m个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则信号量 的变化范围是(d ). A. 1至m B. ...
- 【postgresql数据库】数据库整体知识完整版-2023电子科技大学期末复习
<数据库>重要知识点 作者 内容 发布时间 博客地址 Github Trae1ounG 数据库复习 2023/6/3 Trae1ounG的博客_CSDN博客-软件测试,计算机组成原理,数据 ...
最新文章
- python编程在哪里写程序-教你如何编写、保存与运行Python程序的方法
- C#WIFI搜索与连接
- SAP FICO年结
- 鸿蒙开发-使用Storage实现数据存储
- 什么原因会导致minor gc运行频繁?
- 前端学习(2640):懂代码之登录页login.vue存入用户信息
- 计算机网络与通信思维导图,用思维导图描述5G场景
- Vscode之运行更新出错
- JavaScript特效之显示当前时间
- java中如何连接SqlServer2000?
- 万物皆可秒——淘宝秒杀Python脚本,扫货618,备战双11!
- c语言串口通信实验报告,单片机串口通信实验报告总结
- 解决ajax回调函数不执行success的问题
- 主数据管理(Master Data Management)基础
- UNIX环境高级编程(APUE)读书笔记
- 最新版CameraX入门(拍照、存储展示、切换前后摄像头、手电筒、闪光灯、手势伸缩、双击放大缩小)
- github Your account has been flagged.提示情况的解决办法
- CAD梦想画图中的“对象显示顺序”
- Oracle11g 的下载和安装
- 基于STM32F103c8t6的智能垃圾桶项目