




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章软件安全概述1.软件=程序+数据+文档资料程序:完成特定功能,满足性能要求的指令序列数据:程序运行的基础和操作对象文档资料:与程序开发、维护和使用有关的图文资料2软件分类:2.1按功能——系统软件(必不可少、与硬件相关、控制协调计算机各部件及资源);支撑软件(用户开发软件的工具,如开发环境);应用软件(特定领域内开发的为特定目的服务的软件,理解成用户软件)2.2按规模——微型、小型、中型、大型、甚大型、极大型。2.3按工作方式——实时处理软件、分时软件、交互式软件、批处理软件2.4按软件服务对象的范围——项目软件(定制软件)、产品软件(面向市场的软件)3软件安全——采取工程的方法使得软件在敌对攻击的情况下仍能够继续正常工作。即采用系统化、规范化、数量化的方法来指导构建安全的软件。4软件安全工程化3大支柱——风险管理、软件安全切入点、安全知识5软件安全的知识体系——描述性知识(原则、方针、规则)、诊断性知识(弱点、攻击程序、攻击模式)、历史知识(历史风险);这3类包含了7种知识:原则、方针、规则、弱点、攻击程序、攻击模式、历史风险。6软件工程——是一门研究如何使用系统化、规范化、数量化等工程原则和方法进行软件的开发和维护的学科6.1软件工程层次工具层方法层过程层(基础)质量保证层6.2软件工程三要素:方法、工具、过程6.3软件工程研究内容7软件保证——是计划的和系统的行动集合来确保软件过程和产品符合需求、标准和规程。7.1软件保证的两个目标7.1.1可信性——即没有可利用的弱点存在,无论是来自敌意的还是无意的企图。7.1.2执行可预见——可证明信任软件在执行的时候是依照所希望的那样运行和工作。这些行为包括需求分析、测试、验证、以及报告。7.2软件保证的内容——质量保证、质量工程、验证、正确性证明、不合规范报告、纠错行为、安全保证、数据隐私性保证、以及在软件生命周期中的应用情况。7.3软件保证关系到软件的两个属性——质量、可靠性8软件质量——系统、部件或过程满足明确要求(IEEE定义)。——满足或超出认定的一组需求,并使用经过认可的评测方法和标准来评估,还是用认定的流程来生产。9软件质量保证(SQA)的原则——①确保SQA要自始至终有计划进行②审查软件产品是否遵守适用的标准、规程和要求,并得到客观验证③SQA和结果要保证全员参与,沟通顺畅④逐级解决不符合问题10软件质量的体现可靠性:产品在规定的条件下和规定的时间内,完成规定功能的能力,其效力度量为可靠度。软件可靠性:在规定环节下及时间内,软件不引起系统失效的概率。可维护性:产品在规定的条件下和时间内,按规定的程序和方法进行维修,保持或恢复到规定的状态的能力。安全性:将伤害或损坏的风险限制在可接受水平内的能力。可用性:产品在任一随机时刻需要和开始执行任务时,处于可工作和可使用状态的程度。机密性:避免未经许可泄露信息的能力。完整性:避免不适当地更改的能力。经济型:通常用寿命周期费用表示软件开发过程中的成本和开销。11软件质量量度模型——①高层:软件质量需求评价准则(SQRC)②中层:软件质量设计评价准侧(SQDC)③低层:软件质量度量评价标准(SQMC)12软件可靠性工程——预计、测量和管理以软件为基础的系统的可靠性,最大限度的满足用户要求的应用科学。12.1软件可靠性工程的内容——①关于软件可靠性的规格说明②SR的分析测量技术③一整套保证软件开发的方法和技术。12.2软件可靠性工程的研究范围——软件可靠性定量评测、设计与管理、保证技术。13软件容错性——软件运行时,能对非正常因素引起的错误给出适当的处理货信息提示,是软件运行正常结束。13.1容错技术包含下面几个方面故障检测技术:在软件中的故障暴露时,能对由此而引起的故障产生响应的过程。故障恢复技术:在软件中预先设定一个恢复点,在运行过程中可恢复到预设点的状态破坏估计:对故障引起的破坏做出正确的估计,隔离故障。故障隔离技术:主动采取措施,防止故障破坏性蔓延的技术。继续服务:从故障中恢复到,可用的状态。14应用安全——关注应用系统的安全性,或网络应用层的安全性。15专有名称及定义16软件安全工具16.1反汇编工具——将2进制代码为输入,生成整个或部分程序的汇编语言代码的文本文件的程序;例子:IDAProv、W32Dasm17调试器——让软件开发人员在程序运行的同时观察程序的运行过程和状态。基本功能:设置断点、代码跟踪。18反编译器——输入2进制文件,生成可读性好的高级语言代码。19系统监控工具——显示操作系统收集到的有关应用程序及其环境的信息。例子:FileMon(文件系统监控:所有文件系统级的监控)、RegMon(注册表活动监控)、ProcessExplorer、TCPView(TCP和UDP网络连接监控)、Portmon(物理端口监控)、WinObj(系统中的命名对象)、RootkitRevealer(列出注册表和文件系统API的差异)、Autoruns(显示开机启动的项目)。20修补和转储工具——可以修改2进制可执行代码以改变其行为的过程,常与软件破解有关。例子:HexWorkshop、UltraEdit、WinHex、Dumpbin、PEview.第一章课后习题:1恶意代码的趋势是什么?答:①攻击方式会从WEB转移到文件共享网络。2什么是软件安全?答:采取工程的方法使得软件在敌对攻击的情况下仍能够继续正常工作。即采用系统化、规范化、数量化的方法来指导构建安全的软件。3简述软件安全与软件工程、软件质量、软件保证、软件质量保证之间的联系。答:第三章缺陷和漏洞简介1软件缺陷——从产品内部看,软件缺陷是软件产品开发或者维护过程中所存在的错误、毛病等各种问题;从外部看软件缺陷是系统所需要实现的某种功能的失效和违背。2漏洞——系统设计、实现和操作管理中存在的缺陷和弱点,能被利用而违背系统的安全策略。3软件缺陷存在的原因4软件缺陷的严重性级别——①致命的:造成系统和应用程序崩溃、死机、系统悬挂,数据丢失、主要功能完全丧失等②严重的:功能或特性没有实现,主要功能丧失,导致严重的问题,或致命的错误声明③一般的:不影响系统的使用,但没有很好的实现功能④轻微的:对功能几乎没有影响,产品及属性仍可使用。5软件缺陷状态——①激活状态:问题还没有解决,新发现的缺陷验证后仍存在缺陷②已经修正状态:针对存在的缺陷已经修正好了③非激活状态:验证测试后缺陷不存在的状态。6漏洞存在的原因——①设计漏洞:包括密码设置不当;安全需求不明确②实现漏洞:即编码的时候产生的漏洞。7堆栈——被应用程序所使用的保留的虚拟内存区域,是操作系统分配内存的方法。8栈溢出——输入数据时,由于没有进行边界检查,导致输入的数据的数据量超过堆栈预留的存储空间,最终覆盖了堆栈中的返回地址。如果覆盖返回地址的是一个攻击程序的地址,则这个攻击程序就可以运行了。9修改邻接变量的栈溢出——栈溢出的主要危害是能够修改邻接变量和修改返回地址。当输入变量没有进行边界检查,长度超出预先设想的长度,则会覆盖其他邻接变量甚至是返回地址。10植入代码——如果用注入代码的起始地址覆盖原来的返回地址,就成了代码注入。11栈溢出的防御方法——①避免或正确使用可能产生栈溢出的函数,如gets()、fgets()等②进行堆栈检查:在堆栈最后一个局部变量和函数的返回地址之间另外再压入一个cookie,在函数返回到主调用函数之前检查cookie是否被修改了。修改了说明返回地址呗重写了立即停止程序。12堆——类似于堆栈,堆也是应用程序所使用的虚拟内存的一个区域。和堆栈不同,堆可以建立私有堆空间,也可以释放堆空间:分配对空间代码13堆与栈的区别14堆结构15堆块——包括块首和块身,块首是一个堆块头部的几个字节,用来标识这个堆块自身的信息:大小、是否空闲等。块身是数据区。16堆表——一般位于堆区的起始位置,用于索引堆区中所有堆块的重要信息,包括堆块的大小,位置,是否被占用等。占用的堆块被使用它的程序索引,堆表只索引所有空闲堆块。17堆块分配类型①Lookaside分配:寻找到大小匹配的空闲块,将其状态修改为占用,去掉堆表指针,返回一个指向块的指针给程序。②Freelist分配:首先寻找最优的空闲块,如果失败则寻找次优的空闲块,即最小的能满足的空闲块③Free[0]分配:由于按照大小升序链着大小不同的空闲块,分配时先从Freelist[0]反向查找最后一个块(即表中最大的块),看是否满足要求,若能则正向搜索最小能满足要求的空闲块进行分配。18Windows分配策略19堆溢出原理——和栈溢出是一样的,即堆的空间无法容纳用户输入的数据,导致数据重写了堆块后的地址空间。20格式化串——C/C++中有一些函数(如printf())没有固定的参数列表.计算机程序通常需要能够在运行时创建字符串。这些字符串可能包含多种类型的变量。——是C、C++等程序设计语言printf类函数中用于指定输出参数的格式与相对位置的字符串参数。其中的转换说明(conversionspecification)用于把随后对应的0个或多个函数参数转换为相应的格式输出;格式化字符串中转换说明以外的其它字符原样输出。21格式化串漏洞机理——实际上是输入输出确认缺陷,产生源头在外部提供的、不给信任的数据被包含在格式化字符串的参数中。22格式化串漏洞防治——在所需要格式化字符串参数的程序中不使用非常量作为格式化字符串参数。Windows比linux更容易预防:原因是攻击者操作字符串输入进行利用,低位堆栈使得在堆栈中存放shellcode和在字符串本身插入该代码的起始地址非常困难。Linux堆栈地址位于高位内存,windows位于低位内存。23.SQL注入漏洞——是Web系统特有的一类漏洞,源于PHP、ASP等脚本语言对用户输入数据的错误解析。(网站程序员在编写代码时,没有对用户输入数据的合法性进行判断使应用程序存在安全隐患,用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想要得到的数据这就是所谓的SQL注入)24SQL注入攻击的防范——①使用SQL注入攻击自动化的工具进行渗透测试②在Web服务器运行时进行实时的入侵检测,处理问题的位置位于脚本程序与数据库之间③借鉴静态代码分析技术查找程序高级逻辑错误的方法来对脚本代码进行漏洞挖掘④Web应用要对用户输入的数据进行限制,过滤掉可能引起攻击的字符。25漏洞5种分类第三章课后习题1windows环境下进程的内存如何布局?答:2简述堆栈溢出的机理答:输入数据时,由于没有进行边界检查,导致输入的数据的数据量超过堆栈预留的存储空间,最终覆盖了堆栈中的返回地址。如果覆盖返回地址的是一个攻击程序的地址,则这个攻击程序就可以运行了。3简述堆溢出机理答:和栈溢出是一样的,即堆的空间无法容纳用户输入的数据,导致数据重写了堆块后的地址空间。4简述SQL注入攻击机理,并给出典型示例答:是Web系统特有的一类漏洞,源于PHP、ASP等脚本语言对用户输入数据的错误解析。(网站程序员在编写代码时,没有对用户输入数据的合法性进行判断使应用程序存在安全隐患,用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想要得到的数据这就是所谓的SQL注入)示例:5如何实现堆栈溢出漏洞的利用和防范?答:①避免或正确使用可能产生栈溢出的函数,如gets()、fgets()等②进行堆栈检查:在堆栈最后一个局部变量和函数的返回地址之间另外再压入一个cookie,在函数返回到主调用函数之前检查cookie是否被修改了。修改了说明返回地址呗重写了立即停止程序。第四章恶意代码分析1恶意软件——其行为损害系统用户和系统所有者利益的软件的统称。是故意在计算机系统上执行恶意任务的恶意代码的集合。2恶意软件分类——依赖于主机程序的恶意软件、独立于主机的恶意软件。3病毒——如果恶意代码将其自身的副本添加到文件、文档或磁盘驱动器的启动扇区来进行复制则被认为是病毒。病毒的明显特征是自我复制。4蠕虫——如果代码在没有携带者(宿主文件)的情况下复制,则被认为是蠕虫。5木马——木马和病毒与蠕虫的区别在于不进行复制,但是病毒和蠕虫可用于将木马作为攻击负载的一部分复制到目标系统上。木马通常的意图是在系统中提供后门,使攻击者可以窃取数据。6远程访问特洛伊——某些木马程序使攻击者可以远程控制系统,此类程序称为远程访问特洛伊RAT7Rootkit——是一组高级软件工具程序的集合,攻击者可用于获取对计算机的未经授权的远程访问权限并发动其他攻击。8后门——恶意攻击者选择用来远程链接系统的工具。9逻辑炸弹——是合法的应用程序,知识编程时被人故意写入的某种恶意功能,在一定程度下(时间、次数、某种逻辑组合)会出现。10细菌——是第一代病毒,是病毒还不能被感染的一种形式。11垃圾邮件发送程序——用来向即时消息组、新闻组或其他任何种类的移动设备发送未经请求的消息,形式可以是电子邮件或短信。12病毒宿主——可执行文件、脚本、宏、启动扇区。13病毒分类14文件型病毒的感染技术——①重写病毒:这种病毒从磁盘上找到一个文件,简单地利用自己的副本改写文件,是一种较初级的技术②追加病毒:一种典型的DOS环境下的COM文件感染技术是在宿主文件的头部插入一条JMP指令,指向初始文件的尾部(即指向了追加的病毒代码)③前置病毒:把病毒的代码插入到宿主程序的前面,这些代码通常采用高级语言如C、PASCAL等实现④蛀穴病毒:通常不增加被感染对象的大小,而是重写宿主文件中可用来安全存放病毒代码的区域。⑤分割型蛀穴病毒:是蛀穴病毒的一个变体,即病毒代码被分割成一个例程和N个片段这些片段位于包含闲散控件的节中⑥压缩型病毒:压缩宿主程序是一种特殊的感染技术,这种技术有时用来隐瞒宿主程序长度的增长:采用二进制压缩算法,对宿主程序进行充分压缩从而节省空间。⑦变形虫感染技术:把宿主程序嵌入到病毒体中,即把病毒头放在文件之前,病毒尾部追加到宿主之后。⑧嵌入式解密程序技术:一些高级病毒会把其解密程序注入可执行的宿主文件中,并将宿主入口点修改为指向解密程序的代码。⑨嵌入式解密程序和病毒体技术:病毒体被分成几个部分,将它们注入到宿主文件中的随机位置,重写那些位置原来的内容。⑩迷惑性欺骗跳转技术:W32/Donut是最早感染.NET可执行文件的病毒,它并不依赖及时编译技术。当执行已被感染的.NETPE文件时Donut病毒立即获得了控制权⑪入口点隐蔽(EPO)病毒:不会改变宿主程序的入口点位置,也不会改变入口点的代码,而是通过改变宿主代码的某个位置而令病毒随机地获得控制权15病毒的检测——传统的病毒检测方法有:比较法、搜索法、分析法、感染实验法、软件模拟法、行为检测法等。16蠕虫和病毒的区别——如从最大的特点是利用各种安全漏洞进行自动传播。17蠕虫的分类——①主机蠕虫:所有的部分都在其运行的主机中,利用网络连接仅仅是把自身复制到其他主机(然后自身停止,即任何时刻自由一个蠕虫的副本在运行及复制)②网络蠕虫:由多个部分组成,且分布在不同主机中,使用网络的目的是各部分之间的通信及传播18蠕虫和漏洞的关系——①邮件蠕虫:主要利用多用途网际邮件扩充协议MIME的漏洞②网页蠕虫:主要利用IFrame和MIME漏洞③系统蠕虫:一般具备一个小型的漏洞利用系统,它随机产生IP地址,并尝试漏洞利用,然后将自身复制过去。19蠕虫的实体结构20蠕虫的功能结构21蠕虫的工作方式22蠕虫的技术发展超级蠕虫:包含多操作系统运行版本,从而具有更强的感染力。针对多个漏洞,只要一个漏洞存在既可以攻击。分布式蠕虫:数据部分和代码部分不再痛一个计算机中,运行代码在攻击时,从数据存放地获取供给信息。动态功能升级技术:蠕虫可以升级功能(除控制功能),从而获得更强的生存能力和攻击能力。通信技术:蠕虫具有蠕虫之间、编写者与蠕虫之间传递信息和指令的能力。与网路攻防技术的结合:网络攻防技术将会被纳入到蠕虫的功能中来隐藏蠕虫的踪迹。与病毒结合:蠕虫在攻击计算机后,继续攻击文件系统,从而导致传播机制的多样化。23蠕虫的防治与检测24木马——是一种恶意程序,是一种远程控制的攻击工具。可以获取远程访问和控制系统的权限。进而攻击计算机。25木马结构——木马配置程序、控制程序、木马程序26木马入侵步骤26.1配置木马——实现两个功能:木马伪装(即让木马在服务器尽可能隐藏得更加隐蔽)、信息反馈(即设置信息反馈的方式及地址)26.2传播木马——采用各种传播方式,将配置好的木马传播传播出去。26.3运行木马——服务器端运行木马或木马捆绑程序后,木马就会自动进行安装。26.4信息反馈——木马成功安装后收集一些服务端的软硬件信息,并通过Email、QQ等手段告知控制端的攻击者。26.5建立连接——控制端要与服务端链接必须要知道服务端的木马端口(端口是已知的,编写木马的时候就设定好了)和IP地址,有两种发放获的IP:IP扫描(扫描主机的木马端口,如果是开启的证明主机上被安装了木马,然后请求链接)、信息反馈(木马程序主动告知控制端相关信息)26.6远程攻击——链接建立之后,形成一条通信信道,控制端通过这条信道以及木马程序远程控制服务端。27木马的基本原理——一般木马包含服务端和客户端,木马通常绑定在合法文件上,只要运行了该文件木马就可以自动安装。攻击者利用客户端控制服务器首先得建立一个连接,建立连接需要知道端口号和IP。获得服务端信息后马上建立连接,进而控制服务端。28木马的传播方式29移动代码(恶意代码)——移动代码的特殊性是可移动的,并且可以在很多系统上运行而不需要终端用户显示的安装他们。30广告软件和间谍软件(恶意代码)——广告软件是自发强制地向终端用户做广告的程序。31粘人软件(恶意代码)——一些间谍软件、广告软件一旦被安装就很难被卸载。32网页恶意脚本程序(恶意代码)——这类恶意代码指利用.asp、.html、.vbs、.js类型的文件进行传播的基于VBScript和javaScript脚本语言并由WindowsScriotingHost解释执行的一类恶意程序。33即时通信病毒(恶意代码)——34手机病毒——又叫移动恶意代码,是以手机为攻击目标的恶意程序。35宏病毒36恶意代码分析36.1分析前的准备——在代码分析系统上安装软件安全分析工具,如反汇编器、系统监控工具、调试器、反编译器、修补和转储工具。(分析系统有两种基本类型:①基于真实系统来建立,例如建立在可运行多个系统的PC机上②使用虚拟机软件,建立一个虚拟系统)26.2分析过程①对可疑对象进行快速检查。②用一个或一组反病毒扫描器进行过滤③对尚未分析的文件进行残留物清理④对可疑对象中常见病毒代码的位置进行快速检查⑤分析对象中的字符串,使用“Strings”这种工具,将字符串转储出来,使用理解Unicode字符串的工具⑥使用反汇编工具在应用程序代码的入口附近进行快速检查,观察该处是否存在异常的恶意代码⑦在有恶意代码的迹象下,借鉴一些软件安全测试的方法⑧⑨使用动态分析并同时监控恶意代码的行为第四章课后答案1三种主要的恶意软件的区别是什么?答:病毒的特性:自我代码复制,感染携带者进行复制。木马特性:代码不复制。蠕虫:自我代码复制,感染携带者不复制。2病毒是如何分类的?答:①按照病毒攻击的操作系统分类:DOS病毒、Windowsb病毒、UNIX病毒、OS/2病毒、Macintosh病毒、其他操作系统病毒②按照病毒的链接方式分类:源码型病毒、嵌入型病毒、外壳病毒、译码型病毒、操作系统型病毒③病毒寄生存储的位置分类:引导型病毒、文件型病毒、混合型病毒3文件型的病毒的感染技术包括哪些?答:①重写病毒:这种病毒从磁盘上找到一个文件,简单地利用自己的副本改写文件,是一种较初级的技术②追加病毒:一种典型的DOS环境下的COM文件感染技术是在宿主文件的头部插入一条JMP指令,指向初始文件的尾部(即指向了追加的病毒代码)③前置病毒:把病毒的代码插入到宿主程序的前面,这些代码通常采用高级语言如C、PASCAL等实现④蛀穴病毒:通常不增加被感染对象的大小,而是重写宿主文件中可用来安全存放病毒代码的区域。⑤分割型蛀穴病毒:是蛀穴病毒的一个变体,即病毒代码被分割成一个例程和N个片段这些片段位于包含闲散控件的节中⑥压缩型病毒:压缩宿主程序是一种特殊的感染技术,这种技术有时用来隐瞒宿主程序长度的增长:采用二进制压缩算法,对宿主程序进行充分压缩从而节省空间。⑦变形虫感染技术:把宿主程序嵌入到病毒体中,即把病毒头放在文件之前,病毒尾部追加到宿主之后。⑧嵌入式解密程序技术:一些高级病毒会把其解密程序注入可执行的宿主文件中,并将宿主入口点修改为指向解密程序的代码。⑨嵌入式解密程序和病毒体技术:病毒体被分成几个部分,将它们注入到宿主文件中的随机位置,重写那些位置原来的内容。⑩迷惑性欺骗跳转技术:W32/Donut是最早感染.NET可执行文件的病毒,它并不依赖及时编译技术。当执行已被感染的.NETPE文件时Donut病毒立即获得了控制权⑪入口点隐蔽(EPO)病毒:不会改变宿主程序的入口点位置,也不会改变入口点的代码,而是通过改变宿主代码的某个位置而令病毒随机地获得控制权4EPO病毒的基本原理是什么?答:5病毒的检测方法主要有哪些?答:传统的病毒检测方法有:比较法、搜索法、分析法、感染实验法、软件模拟法、行为检测法等6蠕虫和病毒的区别与联系?答:7蠕虫与软件漏洞的关系如何?答:①邮件蠕虫:主要利用多用途网际邮件扩充协议MIME的漏洞②网页蠕虫:主要利用IFrame和MIME漏洞③系统蠕虫:一般具备一个小型的漏洞利用系统,它随机产生IP地址,并尝试漏洞利用,然后将自身复制过去。8蠕虫的基本结构和工作方式是怎么样?答:蠕虫的功能结构21蠕虫的工作方式9蠕虫技术的趋势如何?答:超级蠕虫:包含多操作系统运行版本,从而具有更强的感染力。针对多个漏洞,只要一个漏洞存在既可以攻击。分布式蠕虫:数据部分和代码部分不再痛一个计算机中,运行代码在攻击时,从数据存放地获取供给信息。动态功能升级技术:蠕虫可以升级功能(除控制功能),从而获得更强的生存能力和攻击能力。通信技术:蠕虫具有蠕虫之间、编写者与蠕虫之间传递信息和指令的能力。与网路攻防技术的结合:网络攻防技术将会被纳入到蠕虫的功能中来隐藏蠕虫的踪迹。与病毒结合:蠕虫在攻击计算机后,继续攻击文件系统,从而导致传播机制的多样化。10蠕虫的检测和防治方法有哪些?答:11.木马的定义与结构如何?答:木马定义——是一种恶意程序,是一种远程控制的攻击工具。可以获取远程访问和控制系统的权限。进而攻击计算机。木马结构——木马配置程序、控制程序、木马程序12木马实施网络入侵的基本步骤包括哪些?答:木马入侵步骤配置木马——实现两个功能:木马伪装(即让木马在服务器尽可能隐藏得更加隐蔽)、信息反馈(即设置信息反馈的方式及地址)传播木马——采用各种传播方式,将配置好的木马传播传播出去。运行木马——服务器端运行木马或木马捆绑程序后,木马就会自动进行安装。信息反馈——木马成功安装后收集一些服务端的软硬件信息,并通过Email、QQ等手段告知控制端的攻击者。建立连接——控制端要与服务端链接必须要知道服务端的木马端口(端口是已知的,编写木马的时候就设定好了)和IP地址,有两种发放获的IP:IP扫描(扫描主机的木马端口,如果是开启的证明主机上被安装了木马,然后请求链接)、信息反馈(木马程序主动告知控制端相关信息)远程攻击——链接建立之后,形成一条通信信道,控制端通过这条信道以及木马程序远程控制服务端。13木马的基本原理,木马的传播方式如何?答:木马的基本原理——一般木马包含服务端和客户端,木马通常绑定在合法文件上,只要运行了该文件木马就可以自动安装。攻击者利用客户端控制服务器首先得建立一个连接,建立连接需要知道端口号和IP。获得服务端信息后马上建立连接,进而控制服务端。木马的传播方式14恶意代码的分析步骤哟哪些?答:分析前的准备——在代码分析系统上安装软件安全分析工具,如反汇编器、系统监控工具、调试器、反编译器、修补和转储工具。(分析系统有两种基本类型:①基于真实系统来建立,例如建立在可运行多个系统的PC机上②使用虚拟机软件,建立一个虚拟系统)分析过程①对可疑对象进行快速检查。②用一个或一组反病毒扫描器进行过滤③对尚未分析的文件进行残留物清理④对可疑对象中常见病毒代码的位置进行快速检查⑤分析对象中的字符串,使用“Strings”这种工具,将字符串转储出来,使用理解Unicode字符串的工具⑥使用反汇编工具在应用程序代码的入口附近进行快速检查,观察该处是否存在异常的恶意代码⑦在有恶意代码的迹象下,借鉴一些软件安全测试的方法⑧⑨使用动态分析并同时监控恶意代码的行为第五章安全软件开发生命周期1软件过程——为了获得高质量软件产品,在软件工具的支持下由软件人员完成的一系列软件工程活动。它规定了开发软件所需完成的各项任务和步骤。2软件生存周期:①可行性分析和项目计划②需求分析③软件设计④程序编写⑤软件测试⑥运行维护3传统软件开发模型:①瀑布模型——将软件生命周期的各项活动规定为一定顺序链接的若干阶段工作,这些工作的衔接关系式从上到下,不可逆转如同瀑布一样。缺点:在开始阶段开发人员和用户对需求的描述往往是不全面的、瀑布模型是由文档驱动的、开发过程中事先选择的技术或需求迅速发生变化,需要返回某个阶段重新开始②原型模型——软件开发人员在于用户进行需求分析时,以比较小的代价快速建立一个能反映用户主要需求的原型模型,让用户在计算机上操作,提出修改意见③渐进模型4软件安全开发生命周期——①安全原则、规则及规章(视为保护性需求)②安全需求工程:通常是特定功能需求所需的特有安全需求,这些安全需求有别于系统范围的安全策略和安全规范③架构和设计评审、威胁建模:软件架构和设计应该被安全分析人员尽早审评,避免形成有安全缺陷的体系结构和设计④软件安全编码:编码时应该遵循一定的软件安全编码原则⑤软件安全测试:第五章习题1什么是软件过程?答:为了获得高质量软件产品,在软件工具的支持下由软件人员完成的一系列软件工程活动。它规定了开发软件所需完成的各项任务和步骤。2什么是软件生存周期?答:①可行性分析和项目计划②需求分析③软件设计④程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海外国语大学《编辑艺术》2023-2024学年第二学期期末试卷
- 2025届辽宁省庄河高级中学高三高考英语试题系列模拟卷(9)含解析
- 宿迁职业技术学院《商务谈判与礼仪》2023-2024学年第二学期期末试卷
- 呼和浩特民族学院《手板与模具基础》2023-2024学年第二学期期末试卷
- 江苏省江阴市江阴初级中学2025届初三第二次全国大联考英语试题含答案
- 江苏省宜兴市周铁区达标名校2025届初三4月统一测试(一模)物理试题试卷含解析
- 2025届吉林省长春市汽开区初三下学期5月统考英语试题含答案
- 富蕴县2025届数学三下期末检测模拟试题含解析
- 湘潭理工学院《中国现当代文学一》2023-2024学年第一学期期末试卷
- 大连工业大学《耳鼻咽喉头颈外科学》2023-2024学年第二学期期末试卷
- 外固定架课件
- 结业证书文档模板可编辑
- 《雷锋叔叔你在哪里》教学案例
- DB32-T 2798-2015高性能沥青路面施工技术规范-(高清现行)
- DBS62∕002-2021 食品安全地方标准 黄芪
- 译林版五年级英语下册 Unit 6 第4课时 教学课件PPT小学公开课
- API-620 大型焊接低压储罐设计与建造
- 部编统编版五年级下册道德与法治全册教案教学设计与每课知识点总结
- 浙江省杭州市介绍(课堂PPT)
- 路面及绿化带拆除和修复方案
- 001压力管道安装安全质量监督检验报告
评论
0/150
提交评论