《应用系统安全》PPT课件.ppt
《《应用系统安全》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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用系统安全 应用 系统安全 PPT 课件
链接地址:https://www.31ppt.com/p-5505734.html