第7章应用系统安全_第1页
第7章应用系统安全_第2页
第7章应用系统安全_第3页
第7章应用系统安全_第4页
第7章应用系统安全_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023/2/1计算机系统安全原理与技术1第7章应用系统安全2023/2/1计算机系统安全原理与技术2本章主要内容恶意程序应用系统的编程安全Web安全安全软件工程

2023/2/1计算机系统安全原理与技术37.1恶意程序恶意程序(MaliciousProgram)其分类如图

:2023/2/1计算机系统安全原理与技术47.1.1计算机病毒

第一个被检测到的病毒出现于1986年,称为Brain(巴基斯坦智囊病毒)。这是一个驻留内存的根扇区病毒,本无恶意的破坏和扩散意图,但病毒代码中的小错误使磁盘文件或文件分配表中的数据被搅乱,从而造成数据丢失。

2023/2/1计算机系统安全原理与技术51.计算机病毒的概念

在1994年2月28日颁布的《中华人民共和国计算机信息系统安全保护条例》中是这样定义计算机病毒的:“是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,且能自我复制的一组计算机指令或者程序代码。”2023/2/1计算机系统安全原理与技术62.病毒剖析计算机病毒在结构上有着共同性,一般由3部分组成:(1)潜伏模块/初始化、进入内存(2)传染模块/找目标进行感染(3)表现模块/破坏2023/2/1计算机系统安全原理与技术73.常用反病毒技术(1)访问控制(2)进程监视(3)完整性验证(4)病毒查杀软件2023/2/1计算机系统安全原理与技术84.反病毒技术的发展(1)主动内核技术(2)人工智能技术在反病毒中的应用(3)数字免疫2023/2/1计算机系统安全原理与技术97.1.2蠕虫早期恶意代码的主要形式是计算机病毒,1988年Morris蠕虫爆发后,人们为了区分蠕虫和病毒,对病毒重新进行了定义。一般认为“网络蠕虫是一种智能化、自动化,综合网络攻击、密码学和计算机病毒技术,不需要计算机使用者干预即可运行的攻击程序或代码。它会扫描和攻击网络上存在系统漏洞的节点主机,通过局域网或者国际互联网从一个节点传播到另外一个节点”。2023/2/1计算机系统安全原理与技术10蠕虫的一个功能结构框架如图2023/2/1计算机系统安全原理与技术11网络蠕虫的工作机制2023/2/1计算机系统安全原理与技术127.1.3陷门陷门是一个模块的未公开的秘密入口。陷门产生的原因:程序员在程序开发期间故意插入用于程序调试或恶意目的;为了连接未来的扩展而提供的“钩子”(HOOKS);为了在程序出错后,了解模块内部各变量的状况;2023/2/1计算机系统安全原理与技术13为了在程序出错后,了解模块内部各变量的状况;稍大一点程序一般都由若干个模块组成,调试期间为了跟踪程序运行踪迹,常常在各个模块内部插入一些调试语句,以打印或显示的方式透视变量的取值情况,调试结束后,由未将这些语句去掉,形成了陷门。在硬件处理器中并非所有操作码都有相应的指令码,这些未定义指令可能成为操作处理器的陷门。2023/2/1计算机系统安全原理与技术147.1.4特洛伊木马特洛伊木马是隐藏在正常程序中完成恶意功能的代码。特洛伊木马代码是程序员故意放在正常程序中。有的特洛伊木马代码分散在整个程序中,有的是在宿主程序执行后通过修改一串指令后才形成的,有的特洛伊木马指令则是以加密形式存放的,只有在执行的瞬间才解密。2023/2/1计算机系统安全原理与技术15一个完整的木马系统由三部分组成:(1)硬件部分:控制端、服务端、因特网;(2)软件部分:控制端程序、木马程序、木马配置程序;

(3)具体连接部分:控制端IP、服务器端IP,控制端端口、木马端口。2023/2/1计算机系统安全原理与技术16木马入侵,大致可分为六步:(1)配置木马(2)传播木马(3)运行木马(4)信息反馈(5)建立连接(6)远程控制2023/2/1计算机系统安全原理与技术177.2应用系统的编程安全

在1988年11月,世界上出现了第一个针对缓冲区溢出的攻击——名为RobertT.Morris的finger蠕虫病毒,它利用了VAX机上的BSDUNIX的一个实用程序finger的缓冲区溢出错误,成功入侵了Internet上数以百计的主机,致使全世界大约10%的Internet崩溃。事实上,目前网络上的恶意攻击有一半以上是利用了缓冲区溢出的漏洞。2023/2/1计算机系统安全原理与技术187.2.1缓冲区溢出简单的说,缓冲区溢出(BufferOverflow)就是通过在程序的缓冲区写入超出其长度的内容,从而破坏程序的堆栈,使程序转而执行其他指令,以达到攻击的目的。2023/2/1计算机系统安全原理与技术19系统区用户堆栈区

数据区代码区缓冲区缓冲区溢出示意系统堆栈区2023/2/1计算机系统安全原理与技术207.2.2格式化字符串格式化串的漏洞也是源自于C程序中不对数组边界进行检查的缓冲区错误。以printf()函数为例:intprintf(constchar*format,agr1,agr2,……);format的内容可能为(%s,%d,%p,%x,%n……),将数据格式化后输出。这种函数的问题在于函数printf不能确定数据参数arg1,arg2,……究竟在什么地方结束,也就是说,它不知道参数的个数。printf函数只会根据format中的打印格式的数目依次打印堆栈中参数format后面地址的内容。2023/2/1计算机系统安全原理与技术217.2.3安全编程编写正确的代码虽然可以在一定的程度上减少程序的安全问题。但是这是一项耗时的工作,而且它只能在一定的程度上减少缓冲区溢出的可能。因此在注意编码的同时,也需要用其他的安全手段来保证系统的安全。

1.缓冲区检测技术

2.数组边界检查

3.程序指针完整性检查2023/2/1计算机系统安全原理与技术227.3.1Web安全概述三类安全威胁:1.对Web服务器的安全威胁2.对Web客户端的安全威胁3.对数据传输的安全威胁

7.3Web安全2023/2/1计算机系统安全原理与技术23从Web应用程序的基本体系结构方面来说,其安全主要包括3个环节:(1)Web服务器及其存储数据的安全(2)Web服务器和Web浏览器之间的信息传输安全(3)用户计算机的安全2023/2/1计算机系统安全原理与技术247.3.2客户端安全控制保证客户端安全的第一步就是保证用户计算机中安装的Web浏览器是安全的,不存在任何形式的bug。同时,用户必须定期访问Web浏览器厂商的站点,随时下载升级或补丁程序。1.浏览器安全2.Cookie安全控制3.P3P2023/2/1计算机系统安全原理与技术257.3.3脚本程序安全控制

1.脚本语言目前常用的脚本语言有:PHP(超文本预处理器)、ASP(活动服务器页面)和Perl(PracticalExtractionandReportingLanguage,实用抽取和报告语言)等。2.网页恶意代码2023/2/1计算机系统安全原理与技术26下面内容开始2023/2/1计算机系统安全原理与技术277.3.4服务器安全控制

1.部署防火墙保护Web服务器2.Web服务器安全配置(1)IIS的安全机制(2)主机访问控制(3)用户身份验证(4)Web服务器权限控制(5)文件系统权限控制(6)审核IIS日志记录2023/2/1计算机系统安全原理与技术28(7)禁止或删除不必要的IIS选项或相关组件(8)禁用Content-Location标头的IP地址(9)使用微软IIS锁定向导优化安全配置3.Web应用程序安全控制除了操作系统级、网络级和IIS服务器级的安全措施外,Web应用程序、后端数据库等安全也很重要。

2023/2/1计算机系统安全原理与技术297.3.5网络传输安全控制

1.SSL的工作原理一个SSL会话的建立通常需要以下基本步骤:·客户端发送请求,与服务器建立连接。·服务器向浏览器发送自己的公钥和服务器证书。·客户端和服务器相互协商数据加密强度。·客户端创建一个会话密钥,该密钥用来在当前的SSL会话中加密数据。·客户端用公钥对会话密钥加密,然后将其发送给服务器。·服务器接到加密过的会话密钥并使用私钥解密。2.为Web应用程序配置SSL2023/2/1计算机系统安全原理与技术307.4安全软件工程遵照软件工程原则,在每阶段中进行安全控制。7.4.1需求分析阶段的安全措施详细说明安全与保密要求;把安全保密分配到处理流程中;确定用户数据的敏感等级;确定安全计划,建立安全模型。2023/2/1计算机系统安全原理与技术317.4.2设计阶段的安全措施验证安全模型的正确性设计整体安全机制和安全方案(自己实现的和利用系统安全功能)把安全要求分解到相关模块中,把对数据的安全要求体现在安全数据库的设计中2023/2/1计算机系统安全原理与技术32

主控模块过滤层敏感模块

普通模块过滤层敏感模块普通模块安全过滤层敏感模块敏感模块普通模块安全模块的访问控制2023/2/1计算机系统安全原理与技术337.4.3编程阶段的安全控制按要求实现各模块的安全功能;组织独立人员审查模块代码;(仔细阅读源程序)保护源代码不与无关人员接触。2023/2/1计算机系统安全原理与技术347.4.4测试阶段安全控制测试各模块安全功能,最好通过第三方独立测试;根据安全要求综合测试程序与运行环境;组织安全专业人员进行攻击性测试。2023/2/1计算机系统安全原理与技术357.4.5运行维护阶段的安全控制成立软件配置管理机构对提交运行的软件,对其任何修改必须得到批准;对修改后的源程序需要再审查;由配置管理机构自己对源代码编译生成目标代码,防止引入不安全功能。2023/2/1计算机系统安全原理与技术36配置管理在安全上的好处:1、可以防止非故意威胁保护程序和文件的完整性是采用配置管理的主要安全动机。因为所有修改只能在配置管理部门同意后才能进行,对所有修改的副作用做了仔细地评估。由于程序的各个版本都已保存,可以追踪到错误的修改。2023/2/1计算机系统安全原理与技术372、可以防止程序被恶意修改:一旦一个程序检查后被管理部门接受,且用于系统,程序员便无法再偷偷摸摸进行地进行微妙地修改。由于有管理部门监督检查,修改者会处处留心违反安全的事件发生。为了对修改进行可懂和可审计的控制,配置部门只接受在源程序级别上的修改:语句的插入、删除和替换。管理部门保存原始源程序及各个版本的单个修改指令。2023/2/1计算机系统安全原理与技术387.4.6行政管理控制1、指定程序开发标准1)设计标准:专用设计工具、语言或方法的使用;2)文件、语言和编码风格的标准;3)编程标准,包括强制性的程序员对等检查,以及对程序的正确性和与标准的一致性进行周期性的代码审查;4)测试标准,验证技术、独立测试、测试结果的存档备查;5)配置管理标准:控制对成品程序的访问与修改;2023/2/1计算机系统安全原理与技术392、实施程序开发标准遵循程序开发标准有利于项目的持续进行,即使项目中途换人,也不影响项目按标准完成。对开发安全软件的公司需要进行安全审计。由一个独立的安全评价小组以不声张的方式检查每一个项目。该小组检查设计、文件和代码。这本身就是一种警告性措施。程序员不太可能在模块中放入可疑代码。2023/2/1计算机系统安全原理与技术403、责任分开:模块化编程和设计迫使程序员取得非法的程序结果必须合谋,由独立测试小组而不是由编写这段程序的程序员对模块进行测试,这些分离措施可以使程序具有更高的安全性。4、对职员的管理:招收雇员时需要调查其背景,在公司对他取得信任之前,应限制其访问权限。为了安全上的原因公司还应该要求其遵守一般的行为准则。2023/2/1计算机系统安全原理与技术41思考与练习

7.1试述计算机病毒的一般构成、各个功能模块的作用和作用机制。7.2简述计算机病毒的防治措施和感染病毒后的修复方法。7.3什么是计算机病毒免疫?7.4一个计算机程序能用来自动测试陷门吗?也就是说,你能够设计一个计算机程序,在给定另一个程序的源或目标代码以及对那个程序的适当描述后,能够对这个程序中是否存在陷门回答“是”与“否”吗?说明你的方法。2023/2/1计算机系统安全原理与技术427.5使用瑞星杀毒软件单机版和网络版在实际环境下对单机和网络系统进行病毒的查杀,并检测系统漏洞,分析单机版和网络版在应用上和功能上的区别。7.6如何防

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论