《应用系统安全》PPT课件.ppt

上传人:牧羊曲112 文档编号:5505734 上传时间:2023-07-14 格式:PPT 页数:80 大小:334.50KB
返回 下载 相关 举报
《应用系统安全》PPT课件.ppt_第1页
第1页 / 共80页
《应用系统安全》PPT课件.ppt_第2页
第2页 / 共80页
《应用系统安全》PPT课件.ppt_第3页
第3页 / 共80页
《应用系统安全》PPT课件.ppt_第4页
第4页 / 共80页
《应用系统安全》PPT课件.ppt_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《《应用系统安全》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《应用系统安全》PPT课件.ppt(80页珍藏版)》请在三一办公上搜索。

1、2023/7/14,计算机系统安全原理与技术(第2版),1,第7章 应用系统安全,2023/7/14,计算机系统安全原理与技术(第2版),2,本章主要内容,恶意程序 应用系统的编程安全 Web安全 软件保护安全软件工程,2023/7/14,计算机系统安全原理与技术(第2版),3,7.1 恶意程序,恶意程序(Malicious Program)其分类如图:,2023/7/14,计算机系统安全原理与技术(第2版),4,7.1.1 计算机病毒,1计算机病毒的概念在1994年2月28日颁布的中华人民共和国计算机信息系统安全保护条例中是这样定义计算机病毒的:“是指编制或者在计算机程序中插入的破坏计算机功

2、能或者毁坏数据,影响计算机使用,且能自我复制的一组计算机指令或者程序代码。”,2023/7/14,计算机系统安全原理与技术(第2版),5,7.1.1 计算机病毒,1计算机病毒的概念计算机病毒是一种计算机程序。此处的计算机为广义的、可编程的电子设备,包括数字电子计算机、模拟电子计算机、嵌入式电子系统等。既然计算机病毒是程序,就能在计算机的中央处理器(CPU)的控制下执行。这种执行,可以是直接执行,也可解释执行。此外,它也能像正常程序一样,存储在磁盘、内存储器中,也可固化成为固件。,2023/7/14,计算机系统安全原理与技术(第2版),6,7.1.1 计算机病毒,1计算机病毒的概念计算机病毒不是

3、用户所希望执行的程序,因此病毒程序为了隐藏自己,一般不独立存在(计算机病毒本原除外),而是寄生在别的有用的程序或文档之上。计算机病毒最特殊的地方在于它能自我复制,或者称为传染性。它的另一特殊之处是,在条件满足时能被激活。自我复制性和激活性有时又称活动性(Living)。,2023/7/14,计算机系统安全原理与技术(第2版),7,7.1.1 计算机病毒,2病毒剖析计算机病毒在结构上有着共同性,一般由3部分组成:(1)潜伏模块(2)传染模块(3)表现模块,2023/7/14,计算机系统安全原理与技术(第2版),8,7.1.1 计算机病毒,3常用反病毒技术(1)访问控制(2)进程监视(3)完整性验

4、证(4)病毒查杀软件,2023/7/14,计算机系统安全原理与技术(第2版),9,7.1.1 计算机病毒,4反病毒技术的发展(1)主动内核技术(2)人工智能技术在反病毒中的应用(3)数字免疫,2023/7/14,计算机系统安全原理与技术(第2版),10,7.1.2 蠕虫,一般认为“网络蠕虫是一种智能化、自动化,综合网络攻击、密码学和计算机病毒技术,不需要计算机使用者干预即可运行的攻击程序或代码。它会扫描和攻击网络上存在系统漏洞的节点主机,通过局域网或者因特网从一个节点传播到另外一个节点”。该定义体现了新一代网络蠕虫智能化、自动化和高技术化的特征。,2023/7/14,计算机系统安全原理与技术(

5、第2版),11,7.1.2 蠕虫,蠕虫的一个功能结构框架如图,2023/7/14,计算机系统安全原理与技术(第2版),12,7.1.2 蠕虫,网络蠕虫的工作机制,2023/7/14,计算机系统安全原理与技术(第2版),13,7.1.3 陷门,陷门是一个模块的未公开的秘密入口。陷门产生的原因:程序员在程序开发期间故意插入用于程序调试或恶意目的;为了连接未来的扩展而提供的“钩子”(HOOKS);为了在程序出错后,了解模块内部各变量的状况;,2023/7/14,计算机系统安全原理与技术(第2版),14,7.1.3 陷门,为了在程序出错后,了解模块内部各变量的状况;稍大一点程序一般都由若干个模块组成,

6、调试期间为了跟踪程序运行踪迹,常常在各个模块内部插入一些调试语句,以打印或显示的方式透视变量的取值情况,调试结束后,由未将这些语句去掉,形成了陷门。在硬件处理器中并非所有操作码都有相应的指令码,这些未定义指令可能成为操作处理器的陷门。,2023/7/14,计算机系统安全原理与技术(第2版),15,7.1.4 特洛伊木马,我们这里讨论的木马,就是这样一个有用的、或者表面上有用的程序或者命令过程,但是实际上包含了一段隐藏的、激活时会运行某种有害功能的代码,它使得非法用户达到进入系统、控制系统和破坏系统的目的。它是一种基于客户机/服务器方式的远程控制程序,具有隐蔽性和非授权性等特点。所谓隐蔽性是指木

7、马的设计者为了防止木马被发现,会采用多种手段隐藏木马,这样服务端即使发现感染了木马,也不能确定其具体位置;所谓非授权性是指一旦控制端与服务端连接后,控制端将享有服务端的大部分操作权限,包括修改文件、修改注册表、控制鼠标、键盘等,而这些权力并不是服务端赋予的,而是通过木马程序窃取的。,2023/7/14,计算机系统安全原理与技术(第2版),16,7.1.4 特洛伊木马,木马对系统具有强大的控制功能。一个功能强大的木马一旦被植入某台机器,操纵木马的人就能通过网络像使用自己的机器一样远程控制这台机器,甚至能远程监控受控机器上的所有操作。著名的一些木马工具有:Back Orifice 2000(BO2

8、K)、SubSeven,以及国产的灰鸽子、冰河等。,2023/7/14,计算机系统安全原理与技术(第2版),17,7.1.4 特洛伊木马,官方主页宣称“灰鸽子工作室于2003年初成立,定位于远程控制、远程管理、远程监控软件开发,主要产品为灰鸽子远程控制系列软件产品。然而,我们痛心的看到,目前互联网上出现了利用灰鸽子远程管理软件以及恶意破解和篡改灰鸽子远程管理软件为工具的不法行为,这些行为严重影响了灰鸽子远程管理软件的声誉。自2007年3月21日起决定全面停止对灰鸽子远程管理软件的开发和注册。此网站仅记念多年在一起生活、工作过的灰鸽子工作室成员们。”,2023/7/14,计算机系统安全原理与技术

9、(第2版),18,7.1.4 特洛伊木马,1木马结构与分类木马程序一般由2个部分组成:控制端程序,用以远程控制服务端的程序。服务端程序,被控制端远程控制的一方的程序。“中了木马”就是指被安装了木马的服务端程序。,2023/7/14,计算机系统安全原理与技术(第2版),19,7.1.4 特洛伊木马,1木马结构与分类木马的类型很多,大致可以把它们分为以下两大类:(1)依照木马的植入技术来分类。一般常见的有:可执行文件的捆绑木马透过动态链接库文件注入木马动态网页服务程序木马(ASP Trojan、PHP Trojan)透过浏览器漏洞入侵的网页木马(一般称为BMP Trojan或GIF Trojan)

10、透过电子邮件入侵的邮件附件木马等。,2023/7/14,计算机系统安全原理与技术(第2版),20,7.1.4 特洛伊木马,1木马结构与分类木马的类型很多,大致可以把它们分为以下两大类:(2)依照木马的功能来分类。远程访问型木马破坏型木马密码发送型木马键盘记录型木马DoS攻击型木马FTP木马反弹端口型木马攻击杀毒软件和防火墙型木马虽然有多种形式的木马程序,在通常情况下,一种木马程序可能同时具有以上所介绍的多种形式,以增强破坏力。,2023/7/14,计算机系统安全原理与技术(第2版),21,7.1.4 特洛伊木马,2木马工作原理(1)配置木马(2)传播木马(3)运行木马(4)信息反馈(5)建立连

11、接(6)远程控制,2023/7/14,计算机系统安全原理与技术(第2版),22,7.1.4 特洛伊木马,3木马伪装技术隐蔽性是木马的最大特点。一般有以下一些隐蔽手段:修改图标捆绑文件出错显示定制端口自我销毁木马更名混淆文件名隐藏在回收站反向连接技术远程线程插入技术拦截系统功能调用。,2023/7/14,计算机系统安全原理与技术(第2版),23,7.1.4 特洛伊木马,4木马运行技术木马的自动运行是木马实现其功能必不可少的一个环节。木马的自动运行需要一定的条件,一个典型的例子就是将木马插入到用户经常执行的程序中。例如Explorer.exe本是Windows系统中一个有用的系统进程,主要负责显示

12、系统桌面上的图标以及任务栏等,但是木马与之捆绑后,只要其运行,木马也就自动运行了。,2023/7/14,计算机系统安全原理与技术(第2版),24,7.1.4 特洛伊木马,4木马运行技术还有其他一些木马自动运行的技术:设置在超链接中捆绑到程序中内置到注册表中隐藏在Win.ini中隐藏在System.ini中隐藏在配置文件中隐藏于启动组中。,2023/7/14,计算机系统安全原理与技术(第2版),25,7.1.4 特洛伊木马,5木马检测技术木马的检测很大程度上依赖于它们出现时间的长短及欺骗手段的应用。大多数木马都能够及时被各种防病毒工具、反木马扫描器、防火墙工具或是入侵检测系统检测到。常用的一些检

13、测方法还有:软件Hash值校验。例如从一些网站上下载软件时,我们会在软件链接旁边看到该软件的MD5值,在下载了软件之后,使用MD5工具生成下载文件的MD5散列值,并将这个散列值与该网站上给出的散列值相比较,相等时说明软件没有被篡改,否则就要怀疑这个软件的真实性。此外,通过运用系统完整性检验工具,如Tripwire,可以监控整个系统中的任何文件或文件夹的修改。这个工具扫描并记录硬盘特征,然后周期性地扫描任何变化,并且在系统发生变化时通知用户。,2023/7/14,计算机系统安全原理与技术(第2版),26,7.1.4 特洛伊木马,5木马检测技术常用的一些检测方法还有:监控进程和端口。监控端口指监控

14、系统当前哪些端口处于监听、连接状态,哪些进程在使用哪些端口,即进行进程和端口的关联。监控端口是检测木马的一个良好途径。木马程序的基本功能就是创建并打开一个或多个控制端(攻击者)能够连接上的端口。通过监视计算机上打开的非常用端口,能够检测出等待建立连接的木马。监视本地打开端口的工具有很多,常用的包括:netstat.exe、fport.exe、tcpview.exe等。可以访问网站http:/trojans.html或http:/sve/nyhetsarkiv/1999/nyheter9902.html了解更多常见恶意软件使用的端口信息。此外,一般文件执行时除了装载文件本身到内存,还有装载它调用

15、的模块到内存,多数的进程内模块为dll文件。因而还可以通过监控注册表,监控进程内模块来检测木马。,2023/7/14,计算机系统安全原理与技术(第2版),27,7.1.4 特洛伊木马,5木马检测技术以上介绍的这些技术的具体实现,读者可以参考:计算机病毒分析与防治简明教程(清华大学出版社)Windows应用程序捆绑核心编程(清华大学出版社)网络渗透测试-保护网络安全的技术、工具和过程(电子工业出版社)等书籍。,2023/7/14,计算机系统安全原理与技术(第2版),28,7.2 应用系统的编程安全,7.2.1 缓冲区溢出7.2.2 格式化字符串漏洞7.2.3 安全编程,2023/7/14,计算机

16、系统安全原理与技术(第2版),29,7.2.1 缓冲区溢出,1什么是缓冲区溢出简单的说,缓冲区溢出(Buffer Overflow)就是通过在程序的缓冲区写入超出其长度的内容,从而破坏程序的堆栈,使程序转而执行其他指令,以达到攻击的目的。,2023/7/14,计算机系统安全原理与技术(第2版),30,7.2.1 缓冲区溢出,1什么是缓冲区溢出程序是从内存低端向高端按顺序存放的,输入的形参按照自右至左的顺序入栈,而堆栈的生长方向与内存的生长方向相反,因此在堆栈中压入的数据超过预先给堆栈分配的容量时,就会出现堆栈溢出。简单地说,缓冲区溢出的原因是由于字符串处理等函数没有对数组的越界加以监视和限制,

17、结果覆盖了堆栈数据。缓冲区的溢出有各种不同的类型。,2023/7/14,计算机系统安全原理与技术(第2版),31,7.2.1 缓冲区溢出,1什么是缓冲区溢出一般而言,有以下几种缓冲区溢出攻击的方式:1)攻击者可用任意数据覆盖堆栈中变量的内容。2)覆盖堆栈中保存的寄存器内容,导致程序崩溃。3)把堆栈里面的返回地址覆盖,替换成一个自己指定的地方,而在那个地方,可以植入一些精心设计了的代码以达到攻击的目的。,2023/7/14,计算机系统安全原理与技术(第2版),32,7.2.1 缓冲区溢出,2覆盖堆栈中变量的内容,2023/7/14,计算机系统安全原理与技术(第2版),33,7.2.1 缓冲区溢出

18、,3覆盖堆栈中寄存器的内容在栈上声明的各种变量的位置就紧靠着调用函数的返回地址。如果用户输入的数据越过边界就会将调用函数的返回地址覆盖,造成程序崩溃。,2023/7/14,计算机系统安全原理与技术(第2版),34,7.2.2 格式化字符串漏洞,格式化字符串的漏洞产生于数据输出函数中对输出格式解析的缺陷,其根源也是C程序中不对数组边界进行检查的缓冲区错误。以printf()函数为例:int printf(const char*format,agr1,agr2,);format的内容可能为(%s,%d,%p,%x,%n),将数据格式化后输出。这种函数的问题在于函数printf不能确定数据参数arg

19、1,arg2,究竟在什么地方结束,也就是说,它不知道参数的个数。printf函数只会根据format中的打印格式的数目依次打印堆栈中参数format后面地址的内容。,2023/7/14,计算机系统安全原理与技术(第2版),35,7.2.2 格式化字符串漏洞,1printf中的缺陷第一个printf调用是正确的,第二个调用中则缺少了输出数据的变量列表。那么第二个调用将引起编译错误还是照常输出数据?如果输出数据又将是什么类型的数据呢?,2023/7/14,计算机系统安全原理与技术(第2版),36,7.2.2 格式化字符串漏洞,1printf中的缺陷,2023/7/14,计算机系统安全原理与技术(第

20、2版),37,7.2.2 格式化字符串漏洞,2用printf读取内存数据输入“%p,%p,%p”,实际上可以读出栈中的数据,2023/7/14,计算机系统安全原理与技术(第2版),38,7.2.2 格式化字符串漏洞,3用printf向内存写数据在格式化控制符中,有一种鲜为人知的控制符%n。这个控制符用于把当前输出的所有数据的长度写回一个变量中去,2023/7/14,计算机系统安全原理与技术(第2版),39,7.2.2 格式化字符串漏洞,3用printf向内存写数据,2023/7/14,计算机系统安全原理与技术(第2版),40,7.2.2 格式化字符串漏洞,3用printf向内存写数据,这是因为

21、程序中将变量num的地址压入堆栈,作为printf()的第二个参数,“%n”会将打印总长度保存到对应参数的地址中去。打印结果见图7-25,0 x616161的十进制值为1633771873,按照DWORD类型,其值长度为20。,2023/7/14,计算机系统安全原理与技术(第2版),41,7.2.3 安全编程,程序的正确性是由程序的编写者来保证的。为了避免出现缓冲区溢出的漏洞,在编写程序的一开始就必须将安全因素考虑在内。忽略了编码的安全性大致来说有两种。第一种是直接进行设计、编写、测试,然后发布,忘记了程序的安全性。或者设计者自认为已经考虑到了,而做出了错误的设计。第二种错误是在程序完成以后才

22、考虑添加安全因素,在已经完成了的功能外包裹上安全功能。这样做不仅要付出非常昂贵的代价,更重要的是添加的安全功能有可能会影响已经实现的功能,甚至会造成某些功能的不可实现。,2023/7/14,计算机系统安全原理与技术(第2版),42,7.2.3 安全编程,1C语言的安全编程(1)对内存访问错误的检测和修改。(2)对于缓冲区溢出的覆盖错误,可由程序员预设缓冲区的大小。(3)指针引用是C中最灵活、最核心、最复杂,也是最易出错的部分。(4)出于保密的需要,在程序设计时要涉及到创建密钥或密码等问题,具体到C程序设计中则是随机数的选取和使用问题。,2023/7/14,计算机系统安全原理与技术(第2版),4

23、3,7.2.3 安全编程,1C语言的安全编程(5)C语言没有提供异常处理机制,其异常检测处理是由程序员预设完成的。微软的Michael Howard与David LeBlanc所合著的“Writing Secure Code”(编写安全的代码)一书中集中讨论了编写安全代码的方方面面,读者可进一步阅读。,2023/7/14,计算机系统安全原理与技术(第2版),44,7.2.3 安全编程,2Java语言的安全编程本书根据Java程序的编译、执行过程将安全机制分成语言层、字节码层以及应用层3个层次,如图7-27所示。,2023/7/14,计算机系统安全原理与技术(第2版),45,7.3 Web安全,

24、7.3.1 Web安全概述7.3.2 客户端安全控制7.3.3 脚本程序安全控制7.3.4 服务器安全控制7.3.5 网络传输安全控制,2023/7/14,计算机系统安全原理与技术(第2版),46,7.3.1 安全编程,三类安全威胁:对Web服务器的安全威胁对Web客户端的安全威胁对数据传输的安全威胁,2023/7/14,计算机系统安全原理与技术(第2版),47,7.3.1 安全编程,三类安全威胁:对Web服务器的安全威胁(1)服务器端操作系统、相关软件存在安全漏洞。(2)服务器端的错误配置。对Web客户端的安全威胁(1)客户端随意从Web站点下载应用程序在本地运行。(2)利用浏览器扩展性的攻

25、击。(3)浏览器劫持(Browser Hijacking)。(4)网络钓鱼(Phishing)。(5)隐私信息泄漏。对数据传输的安全威胁,2023/7/14,计算机系统安全原理与技术(第2版),48,7.3.1 安全编程,Web安全控制的基本框架(1)Web服务器及其存储数据的安全。(2)Web服务器和Web浏览器之间的信息传输安全。(3)用户计算机的安全。,2023/7/14,计算机系统安全原理与技术(第2版),49,7.3.2 客户端安全控制,保证客户端安全的第一步就是保证用户计算机中安装的Web浏览器是安全的,不存在任何形式的bug。同时,用户必须定期访问Web浏览器厂商的站点,随时下载

26、升级或补丁程序。1浏览器安全2Cookie安全控制,2023/7/14,计算机系统安全原理与技术(第2版),50,7.3.3 脚本程序安全控制,1脚本语言目前常用的脚本语言有:PHP(超文本预处理器)、ASP(活动服务器页面)和Perl(Practical Extraction and Reporting Language,实用抽取和报告语言)等。2网页恶意代码(1)不断地消耗本机的系统资源,导致系统拒绝服务甚至崩溃。(2)非法读取用户的本地文件。(3)非法向用户的硬盘上写入文件。(4)在用户的计算机上执行任意代码。(5)Web欺骗。,2023/7/14,计算机系统安全原理与技术(第2版),5

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

28、够在客户端和服务器之间建立一个安全的信息传输通道。安全套接层(SSL)是一个可以在浏览器客户和Web服务器之间建立加密会话的协议,因此可以应用SSL来为Web应用程序提供网络传输安全。,2023/7/14,计算机系统安全原理与技术(第2版),53,7.4 软件保护,7.4.1 软件技术保护的基本原则7.4.2 密码保护技术7.4.3 电子注册保护技术7.4.4 结合硬件的保护技术7.4.5 基于数字签名的保护技术7.4.6 软件水印7.4.7 软件的反动态跟踪技术,2023/7/14,计算机系统安全原理与技术(第2版),54,7.4.1 安全编程,软件技术保护的基本原则(1)实用性。用户购买的

29、软件,当然会频繁地使用,对合法用户来说,如果在使用或安装过程中加入太多的障碍,甚至需要改变计算机的硬件结构,会影响用户购买的积极性。除非是功能上的需要,或是特定用户群的强制性要求,任何纯为加密而对用户提出的一些硬件上的要求,都是不可接受的。况且,目前大多数计算机用户都不敢自行改变计算机的硬件。,2023/7/14,计算机系统安全原理与技术(第2版),55,7.4.1 安全编程,软件技术保护的基本原则2)局部可共享特性。相当多的计算机用户,都需要一定范围内非商业目的的软件交流,或学术性,或社交性,必须满足他们这方面的要求。不能交流的软件是没有活力的,也是难以推广的。当然,这种交流不应该是大范围的

30、、无限制性的。3)可重复使用性。计算机软件被装在计算机上,难免被损坏而需要重新安装,如果因为加密而使买来的计算机软件不能重新安装,便可能给用户带来不必要的损失。,2023/7/14,计算机系统安全原理与技术(第2版),56,7.4.2 密码保护技术,密码保护技术是在每一件软件产品中都附带一个密码,在软件安装和运行过程中的某些关键环节要求用户输入该密码,只有用户输入正确的密码,软件才能正确地安装和正常地运行。优点是:简便易行,且无附加成本,是目前很流行的保护方法。缺点是:由于其密码相对固定,要保证合法用户获得有效的密码,就不能防止盗版者通过合法途径获取密码后再进行非法复制流通。,2023/7/1

31、4,计算机系统安全原理与技术(第2版),57,7.4.2 密码保护技术,在软件载体上所附的序列号并不能直接输入,对软件实现解密,而只能将其作为该软件的身份识别标志,并通过向软件生产者提供该标识,以换取针对该软件的解密密码(即授权号),便可以限制该软件的序列号直接被盗版流通,即使发生了盗版行为,也可能通过该授权过程来追访盗版者的踪迹。可以在授权系统中对每一份软件的可授权次数加以适当的限制。为了更进一步防范盗版者在购买正版软件后,先通过正当途径获取授权号,然后再将授权号随同盗版软件一起复制传播,可以考虑在授权号中加入授权日期信息。那样,该授权号可以预先设定其有效时间,如果超过了规定的日期后,该授权

32、号即自行失效。,2023/7/14,计算机系统安全原理与技术(第2版),58,7.4.3 电子注册保护技术,用户可在网上获得使用采用该技术加密的软件,这时该软件一般是功能受限制,或者使用时间受限制,或者经常出现要求注册的画面等。用户使用后觉得满意,可按要求进行注册,注册法因开发商而异。,2023/7/14,计算机系统安全原理与技术(第2版),59,7.4.3 电子注册保护技术,下面给出4种注册法:1)用户交费之后,软件公司会告诉用户一个地址、用户名和密码,然后用户去那个地址就可以下载到正式版。2)用户交费之后,软件公司会通过E-mail传给用户一个文件,用户把这个文件复制到软件安装的目录之后,

33、就成为正式用户了。一般来说,这个文件很小(几百个Bytes和几K)。这些文件一般来说扩展名是*.reg(注册表文件)或*.1ic。3)软件给出该软件的序列号,用户交费时把这一序列号一起寄给软件提供商或开发商,软件开发商利用注册机(软件)产生该软件的注册号寄给用户即可。4)用户按要求填写个人资料,交费时把这份个人资料一起寄给软件提供商或开发商,软件开发商利用注册机(软件)产生该软件的注册号寄给用户即可。,2023/7/14,计算机系统安全原理与技术(第2版),60,7.4.3 电子注册保护技术,电子注册保护方式的优点是:不需要任何硬件或软盘,方便易用,价格低廉。电子注册保护方式的缺点是:网上付费

34、方式尚未标准化,能够接受的人不,2023/7/14,计算机系统安全原理与技术(第2版),61,7.4.4 结合硬件的保护技术,1“钥匙盘”2光盘3ROM片4软件狗,2023/7/14,计算机系统安全原理与技术(第2版),62,7.4.5 基于数字签名的保护技术,一种签名方案,该系统由三部分组成:1)签证中心。中心的任务是对每个软件供应商的资格进行审查,审查合格者,发给签证密钥。2)软件供应商。发行软件的售主或个人。3)用户。从软件供应商那里购买软件的顾客。,2023/7/14,计算机系统安全原理与技术(第2版),63,7.4.5 基于数字签名的保护技术,系统包含三个阶段:1)预约阶段。在本阶段

35、里,软件供应商向中心提出申请,中心审查软件供应商资格,若审查通过,中心就向他发放一个签证密钥。这种发放的优点是用户可确认中心是否向软件供应商授权。2)分发阶段。在本阶段里,软件供应商用签证密钥来签署他们所发行的程序,并把签名的程序分发给用户。3)鉴别阶段。当用户得到程序时,启用基于身份的代理签名系统验证这些程序是否确实为软件供应商所发行,并进一步验证是否存在讹误。,2023/7/14,计算机系统安全原理与技术(第2版),64,7.4.6 软件水印,所谓软件水印,就是把程序的版权信息和用户身份信息嵌入到程序中。它是近年来出现的软件产品版权保护技术,可以用来标识作者、发行者、所有者、使用者等,并携

36、带有版权保护信息和身份认证信息,可以鉴别出非法复制和盗用的软件产品。,2023/7/14,计算机系统安全原理与技术(第2版),65,7.4.6 软件水印,根据水印的嵌入位置,软件水印可以分为代码水印和数据水印。代码水印隐藏在程序的指令部分数据水印则隐藏在包括头文件、字符串和调试信息等数据中。根据水印被加载的时刻,软件水印可分为静态水印和动态水印。静态水印存储在可执行程序代码中,比较典型的是把水印信息放在安装模块部分,或者是指令代码中,或者是调试信息的符号部分。区别于静态水印,动态水印则保存在程序的执行状态中,而不是程序源代码本身。这种水印可用于证明程序是否经过了迷乱变换处理。,2023/7/1

37、4,计算机系统安全原理与技术(第2版),66,7.4.6 软件水印,根据水印的嵌入位置,软件水印可以分为代码水印和数据水印。代码水印隐藏在程序的指令部分数据水印则隐藏在包括头文件、字符串和调试信息等数据中。根据水印被加载的时刻,软件水印可分为静态水印和动态水印。静态水印存储在可执行程序代码中,比较典型的是把水印信息放在安装模块部分,或者是指令代码中,或者是调试信息的符号部分。区别于静态水印,动态水印则保存在程序的执行状态中,而不是程序源代码本身。这种水印可用于证明程序是否经过了迷乱变换处理。,2023/7/14,计算机系统安全原理与技术(第2版),67,7.4.7 软件的反动态跟踪技术,软件的

38、反动态跟踪技术,是指防止破译者利用各种各样的软件动态调试、动态跟踪工具,对被保护的软件进行动态跟踪、分析和破译的技术。,2023/7/14,计算机系统安全原理与技术(第2版),68,7.5 安全软件工程,7.5.1 需求分析7.5.2 设计与验证7.5.3 编程控制7.5.4 测试控制7.5.5 运行维护管理7.5.6 行政管理控制,2023/7/14,计算机系统安全原理与技术(第2版),69,7.5.1 需求分析阶段的安全措施,详细说明安全与保密要求;把安全保密分配到处理流程中;确定用户数据的敏感等级;确定安全计划,建立安全模型。,2023/7/14,计算机系统安全原理与技术(第2版),70

39、,7.5.2设计验证阶段的安全措施,验证安全模型的正确性设计整体安全机制和安全方案(自己实现的和利用系统安全功能)把安全要求分解到相关模块中,把对数据的安全要求体现在安全数据库的设计中。,2023/7/14,计算机系统安全原理与技术(第2版),71,7.5.3编程阶段的安全控制,按要求实现各模块的安全功能;组织独立人员审查模块代码;(仔细阅读源程序)保护源代码不与无关人员接触。,2023/7/14,计算机系统安全原理与技术(第2版),72,7.5.4测试阶段安全控制,测试各模块安全功能,最好通过第三方独立测试;根据安全要求综合测试程序与运行环境;组织安全专业人员进行攻击性测试。,2023/7/

40、14,计算机系统安全原理与技术(第2版),73,7.5.5运行维护阶段的安全控制,成立软件配置管理机构对提交运行的软件,对其任何修改必须得到批准;对修改后的源程序需要再审查;由配置管理机构自己对源代码编译生成目标代码,防止引入不安全功能。,2023/7/14,计算机系统安全原理与技术(第2版),74,7.4.6 行政管理控制,1、指定程序开发标准 1)设计标准:专用设计工具、语言或方法的使用;2)文件、语言和编码风格的标准;3)编程标准,包括强制性的程序员对等检查,以及对程序的正确性和与标准的一致性进行周期性的代码审查;4)测试标准,验证技术、独立测试、测试结果的存档备查;5)配置管理标准:控

41、制对成品程序的访问与修改;,2023/7/14,计算机系统安全原理与技术(第2版),75,7.4.6 行政管理控制,2、实施程序开发标准遵循程序开发标准有利于项目的持续进行,即使项目中途换人,也不影响项目按标准完成。对开发安全软件的公司需要进行安全审计。由一个独立的安全评价小组以不声张的方式检查每一个项目。该小组检查设计、文件和代码。这本身就是一种警告性措施。程序员不太可能在模块中放入可疑代码。,2023/7/14,计算机系统安全原理与技术(第2版),76,7.4.6 行政管理控制,3、责任分开:模块化编程和设计迫使程序员取得非法的程序结果必须合谋,由独立测试小组而不是由编写这段程序的程序员对

42、模块进行测试,这些分离措施可以使程序具有更高的安全性。4、对职员的管理:招收雇员时需要调查其背景,在公司对他取得信任之前,应限制其访问权限。为了安全上的原因公司还应该要求其遵守一般的行为准则。,2023/7/14,计算机系统安全原理与技术(第2版),77,思考与练习,7.1 试述计算机病毒的一般构成、各个功能模块的作用和作用机制。7.2 简述计算机病毒的防治措施和感染病毒后的修复方法。7.3 什么是计算机病毒免疫?7.4 一个计算机程序能用来自动测试陷门吗?也就是说,你能够设计一个计算机程序,在给定另一个程序的源或目标代码以及对那个程序的适当描述后,能够对这个程序中是否存在陷门回答“是”与“否

43、”吗?说明你的方法。,2023/7/14,计算机系统安全原理与技术(第2版),78,7.5 使用瑞星杀毒软件单机版和网络版在实际环境下对单机和网络系统进行病毒的查杀,并检测系统漏洞,分析单机版和网络版在应用上和功能上的区别。7.6 如何防止把带有木马的程序装入内存运行,请给出几个有效的办法,并说明这些方法对系统运行效率的影响。7.7 模块化的影响有好有坏。一个过度模块化的程序以很小的模块方式完成它的操作,因而难以获得一个总的轮廓。要知道许多模块单独的功能很容易,但却不容易确定它们结合起来做什么。请建议一种能够在程序开发中用来维护这种轮廓的方法。,2023/7/14,计算机系统安全原理与技术(第

44、2版),79,7.8 根据程序语言中出现的安全问题,如越界问题、不安全的信息流问题,你觉得编译器应如何解决这些问题?7.9 开发一个安全程序的主要手段有哪些?说明这些手段发挥的作用各是什么?7.10 网络蠕虫的好坏作用有哪些?如果蠕虫进入网络中的一个计算机系统后,完成某项任务(如在屏幕上留下行公告信息或建立一个小进程)后,并未在系统中留下特殊的标记就退出该计算机系统,继续在网络中寻找另一个计算机系统。请问这种蠕虫会不会在在网络造成危害,为什么弘如果你的网络中出现这类蠕虫,你将如何消除它?,2023/7/14,计算机系统安全原理与技术(第2版),80,7.11病毒程序与蠕虫程序的主要差别有哪些?限制病毒的传播速度的有效措施有哪些?7.12 对照一般软件工程的概念,安全软件工程主要增添了哪些任务?7.13 实验:Web安全控制。实验主要内容:IE 6.0中新增安全功能的使用;使用IE Security工具;为Web应用程序建立、安装服务器证书;为Web应用程序(站点)配置SSL等。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号