网络安全课程设计

发布 2023-08-31 21:32:50 阅读 4940

《网络安全》期末考试。

课程设计总结)

设计名称基于缓冲区溢出的漏洞研究

姓名廖鑫。指导教师师晶晶。

班级 2014级计本班。

成绩。2016 年 12 月

摘要: 缓冲区溢出攻击是网络攻击事件中最常用的一种攻击方式,成为系统和网络安全中函待解决的重要问题在分析缓冲区溢出攻击原理的基础上,说明了攻击的成因,然后描述了目前常见的攻击类型,最后给出了应如何做出防范措施,以及处理该漏洞的解决方案。

关键词: 缓冲区溢出攻击;系统安全;边界检查。

第一章引言1

第二章攻击原理及危害2

第三章造成攻击的技术原因3

缺少必要的边界检查3

操作系统设计策略上的隐患3

第四章攻击类型3

基于堆栈的缓冲区溢出攻击3

基于堆的缓冲区溢出攻击4

基于lb库的缓冲区溢出攻击9

第五章防范措施10

安全编码10

非可执行的缓冲区10

数组边界检查10

加强对返回地址的保护11

了解系统常见进程11

及时打补丁或升级11

从系统级和编译器两个方而来加强对内存空间的管理11

第六章结论12

参考文献12

第一章引言。

自从缓冲区溢出漏洞被发现以来,缓冲区溢出攻击一直是网络攻击事件中用得最多的一种攻击方式,成为系统和网络安全中履待解决的重要问题。早在2023年,美国康奈尔大学计算机科学系研究生莫里斯就利用unix fingered不限输入长度等漏洞感染了互联网中的数万台机器;2023年8月席卷全球的“冲击波(woim. msblast) "和2023年5月出现的“**波(woim sasser) "1]分别利用了windows系统rpc dcom和lsa ss服务的缓冲区溢出漏洞进行攻击。

2023年9 月份中国国家信息安全漏洞库[2]发布的漏洞类型分布如图1 所示,缓冲区溢出类漏洞数量大幅度上升,达到 122 个,是上月数量(62 个)的近 2 倍,占10月漏洞总量的 %,排名第一。从中国国家信息安全漏洞库公布的统计数据中可以看出,无论是在绝对数量上还是相对比例上缓冲区溢出攻击的问题正在扩大。如图1-1:

图1-1 中国国家信息安全漏洞库2023年发布的漏洞类型、数量、比例。

由于缓冲区溢出攻击危害的严重性,使它至今仍是人们研究的重要课题,文章在总结当前已有研究成果的基础上提出了解决该问题的方案。

第二章攻击原理及危害。

要对缓冲区溢出攻击的原理有个清楚认识,就必须先对可执行文件执行时的内存结构[2]有个总体了解。一般程序从逻辑上可分为两大部分:**区和数据区。

数据区从逻辑上可划分为静态数据、堆栈和堆三部分,它们之间的区别依赖于各部分对应内存分配的时间和方式以及数据存储的位置。总体来说,windowss平台下程序的内存结构如图2-1所示,linux或unix平台下程序的内存结构如图2-2所示。

高端内存。低端内存。

图2-1 windows下程序在内存中的结构。

高端内存。低端内存。

图2-2 unix下程序在内存中的结构。

通常所说的缓冲区溢出指的就是“堆栈和堆”这两部分空间中产生了溢出。

正如微软给缓冲区溢出所下定义中所说的,缓冲区溢出是因为人们向程序中提交的数据超出了数据接收区所能容纳的最大长度,从而使提交的数据超过相应的边界而进入了其他区域。如果是人为蓄意提交超长数据且对系统正常运行造成了不良影响,那么我们就说发生了缓冲区溢出攻击。

缓冲区溢出攻击通常会带来以下后果:

1、过长的宇符串覆盖了相邻的存储单元而造成程序异常,严重的会造成死机、系统或进程重启等;

2、可让攻击者执行恶意**或特定指令,甚至获得超级权限等,从而引发其他的攻击。

第三章造成攻击的技术原因。

3. 1缺少必要的边界检查。

这方面最明显的例子是c和c++语言。由于一开始设计的时候c和c++就没有为数组和宇符指针的引用提供任何的边界检查机制,从而导致了它们的不安全性。而它们是日常开发中使用最广的语言,甚至连 windows /unix这两个广泛使用的操作系统的很多模块也是用它们开发的,所以造成现在缓冲区溢出漏洞频频暴露。

并且用它们开发的大部分软件在今后很长一段时间里仍会被使用,这也就给缓冲区溢出攻击的存在提供了有利环境。

3. 2操作系统设计策略上的隐患。

这方而主要是指堆栈和堆数据区的可执行性属性。unix和ms windows系统为实现更好的性能和功能,往往在数据段中动态地放入可执行的**[4],以保持程序的兼容性,使堆栈和堆具有可执行的属性。但从两者用途本质——存储数据来看,赋予堆栈和堆可执行的属性是不必要的。

而且堆栈和堆作为程序与用户交互的窗口,赋予其可执行的权力对系统安全构成了威肋。

网络安全课程设计

网络安全是网络工程专业核心专业课程,是理论与实践并重的课程。本课程设计目的是在网络安全课程基础上,熟悉网络安全的架构方法,达到熟练分析网络隐患的技能,能够利用所学的基本知识和技能,解决常见的安全隐患,并设计出相对安全的网络系统规则。要求学生运用所学的网络安全基本知识 基本原理和技能,根据需求完成网络...

《网络安全》课程设计

目录。由于采用了word的目录功能,请同学查阅word的标题和目录使用方法,以便正确生成目录,模板中的分页符也不得随意删除,以免造成页眉和页码的错误 设计总说明 i 1 第一层标题 1 1.1 这是第二层标题 1 1.1.1 这是第三层标题 1 1.2 这是第二层标题 1 2 第一层标题 1 2.1...

网络安全课程设计

摘要。本次课程设计共分为四个小任务,前两个为设计性的任务,分别为加密解密程序设计以及缓冲区漏洞溢出程序设计,后俩个任务为验证性任务,分别为使用team viewer进行远程控制以及端口扫描任务。在本文中可以看到,学生通过完成四个小任务,了解到关于网络安全方面的问题。目录。一 加密解密程序1 1.1课...