admin 管理员组文章数量: 887053
2024年2月7日发(作者:compare破解版)
第37卷第2期2021年2月福建电脑Journal of Fujian ComputerVol. 37
No.2Feb. 2021软件漏洞分析课程建设探讨彭碧涛王常吉罗海蛟(广东外语外贸大学网络空间安全学院广州510006)摘要本文从《软件漏洞分析》课程的建设目标、设计思路、内容设置、实验环境建设和教学模式等多方面对课程建设进
行了探索,重点培养学生软件漏洞分析、漏洞利用和漏洞挖掘的能力。关键词软件安全;漏洞分析;漏洞利用;课程建设
中图法分类号 434
GD0I:10.16707/.2021.02.015PENG
Bitao,
WANG
Changji,
LUO
Haijiao(Department
of
Cyber
Security,
Guangdong
University
of
Foreign
Studies,
Guangzhou,
China, 510006)Discussion on the Construction of Software Vulnerability Analysis Course1引言软件漏洞是指存在于操作系统或应用程序中,
2软件漏洞分析课程体系设置2.1课程建设目标依照教育部网络空间安全专业的人才培养目
标,参考其他相关高校软件漏洞相关课程,建立了
本课程的建设目标:(1)掌握常见软件漏洞产生的
成因和基本原理,能够对常见软件漏洞进行分析。(2)掌握常见缓冲区溢出漏洞的利用方法,能够
利用经典的缓冲区溢出漏洞。(3)掌握操作系统对
软件漏洞的防范机制及对应的破解机制和方法。(4)掌握基本的漏洞挖掘机制和方法,能够运用
不同的方法对多个漏洞软件进行漏洞挖掘。(5)理
解软件漏洞发展的趋势,了解软件漏洞的前沿领
域。(6)培养学生脚踏实地、认真严谨的工作风格;
引导学生建立软件安全研究的正确价值观和职业
道德伦理,同时増强学生遵纪守法的法律意识。2.2课程设计思路在高校的教学中,学生具备扎实计算机相关的
理论基础,理解密码学、身份认证体系和可导致攻击者在未授权情况下获取或破坏系统数
据的安全缺陷[1]。随着软件规模不断扩大,软件的
开发、集成变得越来越复杂,新型应用软件数量急
剧増加,导致软件产品在推出时总会存在很多对系
统安全可靠运行构成严重威胁的软件漏洞[2];软件
运行与开发环境己从传统的静态封闭状态转变为
互联网环境下的动态开放状态,因此越来越多的软
件漏洞和缺陷被发现[3]。如何发现和减少产品中的
漏洞,提高软件产品的安全性,改善软件产品的质
量是当前的重要课题。《软件漏洞分析》课程正是
为了解决这一问题,培养软件安全人才而开设。通过《软件漏洞分析》课程建设,组建理论基
础扎实、科研能力强和工程实践水平高的师资团
队,构建培养学生软件漏洞分析、挖掘和利用基本
能力的教学体系。本文从课程建设的目标、设计思
路、内容设置、实验环境建设和教学模式与评价方
法等方面开展了研究和探索。PKI体系
结构,同时具有一定的网络攻防能力,但对于具体本文得到教育部产学研协同育人基金(No.2、No.2)、广东外语外贸大学2019年度教学改革重点项目基金、2014年度教改项
目基金(14025)资助。彭碧涛(通信作者),男,1978年生,主要研究领域为软件安全。E-mail:
pengbitao@处理。E-mail:
luohaiijao@。王常吉,男,1971
年生,主要研究领域为信息安全、密码学。E-mail: 201610007@。罗海蛟,男,1975年生,主要研究领域为网络安全、自然语言
。
2021 年福建电脑表1教学内容安排模块软件漏洞基
础知识知识点软件漏洞基本概念;课堂59的如何分析二进制文件中的漏洞,如何使用各种方
法来利用程序中的漏洞了解得不多;学生比较熟悉
使用各种现成的工具进行网络攻击和漏洞利用,但
对于背后的原理及更深一个层次的理解和实践比
较缺乏。因此需要系统学习软件漏洞的原理、监测、
实验1PE文件格式;必备
分析工具;软件分析实验。2分析和利用等方面的知识,来掌握软件漏洞的相关
知识体系;同时为了避免大偏的枯燥理论灌输,在
《软件漏洞分析》的教学中需要引入大量的实践环
节,开展多种教学形式,调动学生的积极性和探索
主动性,实现理论与实践的结合,能够对软件漏洞
有一个比较深入的认识。(1) 强化“理论”基础,同时做到有的放软件漏洞分析涉及汇编语言、操作系统、逆向分析、
计算机组成原理、计算机系统结构等多方面的内
容,同时包含不同的系统平台以及多种不同的软件
漏洞类型,因此在选择内容时候需要做到有的放
矢,有所取舍。本课程主要以Windows平台的软件
漏洞为研究对象,重点学习Windows平台下栈溢出
漏洞、堆溢出漏洞、整数溢出漏洞、格式化字符串
漏洞的原理、分析和利用,Windows系统的漏洞防
护机制的原理及对应破解方法;同时讲解Windows
平台下的双重释放漏洞、数组越界访问漏洞和内核
漏洞的原理;在对不同类型的漏洞进行分析时,突
出对应各类软件漏洞产生原理的理解。(2) 突出‘‘实践”导向,培养学生的实践手能力。在软件漏洞的学习上,注重对学生实践能
力的培养。对每一种漏洞的理论,本课程都通过生
灵活现的经典案例来加强理论的消化;从实际例子
出发,通过动手分析、利用每一个漏洞样本程序来
掌握理论知识。对于不同的漏洞类型,分别采用字
符串定位、栈回溯、污点追踪、条件断点分析、函
数定位、源码对比等方法来快速定位和分析漏洞,
分析不同的漏洞成因,制定检测、利用和防御方案。(3) 紧贴前沿领域,建立学生对新兴领洞的自主学习基础能力。结合当前的技术发展趋
势,课程对移动终端、云计算和物联网的漏洞软件
进行介绍,同时结合具体的漏洞案例进行简要分
析,帮助学生对最新的软件漏洞领域建立一个初步
的理解和认识,为进一步学习对应知识打下基础。2.3课程内容设置按照软件漏洞学习实践能力的规律,按照层次
递进的原则,将课程内容划分为9个大的模块。各
模块主要知识点和课时安排如表1所示,课时安排
为48个学时。栈溢出漏洞
原理与利用函数调用原理;栈溢出机制;栈溢出利用。21堆溢出漏洞
Windows堆管理;堆溢出机制;堆溢出利原理与利用21用。ShellcodeShellcode 概念;Shellcode 开发;Shellcode
优化;基于
Metasploit 开发
Shellcode。63其他内存攻 基于机构化异常处理的攻击;基于虚函数
击技术的攻击;Heap
Spray技术。33其。
他类型软 整数溢出漏洞;格式化字符串漏洞;双重
释放漏洞;数组越界访问漏洞。63件漏洞Windows 软栈保护机制及其突破;SafeSEH机制及其
突破;DEP机制及其突破;ASLR机制及 33件机制其突破;SEHOP机制及其突破。FTP服务器漏洞挖掘及其利用;SMTP服
漏洞挖掘务器漏洞挖掘及其利用;33文件类型漏洞挖掘及其利用。软件漏洞发 移动终端漏洞;云计算平台漏洞;物联网3展趋势漏洞。每个模块中,每个知识点的内容具体如下:
软件漏洞基础知识模块:软件漏洞基本概念主
要讲解什么是软件漏洞、软件漏洞产生的原因、软
件漏洞分析和利用的基本概念;文件格式主要讲
解PEPE文件的各个组成部分以及各种内存地址之间
动immunity的
转换;必Debugger备分析工Windbg具讲解PEViewIDAPro、OllydbgVMware
、
、、 和
等静态和动态分析工具软件;最后以一个具体的例
子来演示这些软件的应用。栈溢出漏洞原理与利用模块:函数调用原理讲
解函数调用过程中系统栈的变化和相关寄存器的
作用;栈溢出机制讲解为何存在栈溢出,以及其系
统栈的变化;栈溢出利用讲解当存在栈溢出漏洞
时,如何编写代码控制程序的流程。漏
堆溢出漏洞原理和利用模块:先讲解Windows
堆管理的数据结构和策略,以及堆的分配、释放、
合并等操作;然后学习堆链表拆卸中可能出现的问
题,以具体例子调试和体会堆溢出的利用和攻击。ShellCode模块:Shellcode概念部分解释其处
于软件漏洞中的哪一个环节,以及其要解决的问
题;Shellcode开发讲解如何开发基本的shellcode
程序,如何利用跳板开发shellcode,以及如何开发
通shellcode用平台的shellcode;
Shellcode优化讲解如何对
进行编码和解码,如何尽量开发占用小空
间的
shellcode;基于
MetaSploit 的
Shellcode 讲解通矢域
60彭碧涛等:软件漏洞分析课程建设探讨第2期用测试平台下shellcode的开发、发布和使用。其他内存攻击技术模块:基于结构化异常处理
的攻击讲解Windows的异常处理机制,以及如何在
栈和堆溢出漏洞下利用异常处理机制进行攻击;基
于虚函数的攻击讲解如何利用软件类中的虚函数
实现漏洞攻击;Heap
spray技术讲解如何利用堆喷
射技术实现系统攻击,同时会结合栈和堆溢出漏洞
利用技术。其他类型软件漏洞模块:基于条件记录断点的
漏洞分析方法学习整数溢出漏洞的原理和利用;基
于输出消息定位漏洞的方法学习格式化字符串漏
洞的原理和利用;基于栈回溯和补丁比较的方法学
习双重释放漏洞的原理和利用;基于源代码对比与
跟踪的方法学习数组越界漏洞。根据不同漏洞的特
点,介Windows绍多种不同的漏洞分析方法和利用方法[4-5]。安全机制模块:讲解Windows米用的
各DEP种安ASLR全机制的实现原理,包括GS、SafeSEH、
、和SEHOP机制;针对每一种安全机制,
介绍多种突破限制的方法,及如何利用这些漏洞。漏洞挖掘模块:基于存在漏洞的FTP、SMTP
服务器,介绍fuzz技术如何挖掘在这些服务器中的
fuzz漏洞;同时基于己有的漏洞多媒体播放软件,学习
方式下如何挖掘文件类型漏洞。在挖掘漏洞的
基础上,掌握如何快速定位、分析和利用漏洞。2.4漏洞分析实验环境建设漏洞分析实验环境是整个教学中重要的部分。
由于市面上没有合适的Windows平台下漏洞分析
Workstation实验平台,因此根据课程的教学内容,基于VMware
Player虚拟机搭建了课程的实验平台。
Windows在虚拟机中根据实验环境需要,动态地导入对应的
操作系统,构建相应的模拟仿真实验环境。2.5教学模式探讨(1)案例教学法,激发学生学习兴趣。该课
程理论性和实践性都很强,如果只是单纯的理论讲
解,很容易陷入一知半解的境地,需要实践才能对
讲授的理论有清晰和深刻的理解和体会。因此在教
学过程中,每一章的每一个知识点的学习都通过案
例进行演示来加深对知识的掌握程度。知识点的学
习分为四个阶段:理论讲解、实践演示、学生实践
操作和课后作业,阶段之间是层级递进的关系。首
先教师讲解知识点的理论,以及涉及到的工具软
件;然后教师通过具体的例子,一步一步地演示理
论内容;接着通过实验,让学生自己动手操作实现一遍对应的例子来体会知识点;最后布置对应的课
后作业,要求学生对不同的例子进行分析,通过举
一反三,加深对知识点的理解和掌握。(2) 翻转教学法,培养学生探索精神。在教
学中,讲解完某一种类型的漏洞知识点后,教师提
供一个具体类型的CVE编号,让学生自己组队,
从网上收集资料,分析该漏洞的成因、机理、利用
方式和修复机制;在下一次课堂上,挑选两个队上
台讲解作业结果,分享他们的心得,其他学生在台
下提问及交流。通过这种翻转教学法,调用学生的
学习积极主动性,培养自由探索和钻研的精神。(3) 灵活的考核方式,培养学生的创新能力。
考核主要包含平时成绩和期末大作业成绩,其中平
时成绩60°%,期末成绩40°%。平时成绩主要由平时
出勤、课堂表现、课后作业完成情况、分组案例讲
解等四部分构成。其中平时出勤占10%,课堂表现
占10%,主要考核上课学习态度和课堂回答问题的
情况;课后作业完成情况占20%,分组案例讲解占
20%,这两部分主要考核学生对于知识点的掌握程
度,以及课后的参与度。期末考试成绩以大作业的
形式开展,要求学生完成一份有一定难度的大作
业,题目自选,可以是对己知漏洞的分析、利用和
修复报告,也可以是对Web和二进制软件的漏洞挖
掘实践,根据完成报告的难度给定分数。同时对于
参加网络信息安全竞赛的同学,比赛的获奖成绩也
可以作为期末大作业来提交。3总结本文构建了软件漏洞分析课程体系,在讲解漏
洞相关基本理论的基础上,紧紧围绕实践进行教学
组织。通过案例教学、翻转课堂和灵活的考核方式
来培养学生的软件漏洞分析实践创新能力。参考文献[1] 黄烨烽,王嘉捷,杨轶.有限资源条件下的软件漏洞自动挖掘与利用.
计算机研究与发展,2019, 56(11):2299-2314[2] 曹晓梅,朱枫,沙乐天.“软件漏洞分析与防范”课程建设.软件导刊,
2018,3(17):217-220[3] 傅建明,彭国军,严飞.软件安全课程教学方法探究.软件导刊,2020,
19(2):226-229[4] 王清,张东辉,周浩,等.0day安全:软件漏洞分析技术.第2版.北京:电
子工业出版社,2011[5] 林桠泉.漏洞战争.北京:电子工业出版社,2016
版权声明:本文标题:软件漏洞分析课程建设探讨 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1707283277h513608.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论