《密码安全新技术专题》 第十三周作业

20182918 2018-2019-2 《密码与安全新技术专题》第13周作业

课程:《密码与安全新技术专题》

班级: 1892
姓名: 冯乾
学号: 20189218
上课教师:王志超
上课日期:2019年5月6日
必修/选修: 选修

1.本次讲座的学习总结

安全漏洞

在计算机领域中,漏洞就是指计算机在硬件或协议上存在的缺陷。这些缺陷的存在会导致网络的攻击者在不经授权的情况下对计算机网络进行侵入,从而窃取储存在计算机当中的信息,甚至对整个网络系统进行破坏。在计算机的所有设备中,硬件设备是最容易受到网络漏洞的攻击和破坏的,例如防火墙、路由器等。不同的设备所产生的漏洞类型有所不同,产生漏洞的原因也有较大的差异。计算机网络安全漏洞还有一个显著的特点,就是具有一定的时效性,从计算机开始运行起,网络中就会不断产生新的漏洞,因此在日常的使用过程中要不断更新补丁或对系统进行升级,只有这样才能有效的加强对漏洞的防范。与此同时,一些已经进行修补的漏洞有可能会发生新的变化,因此也需要引起注意。对计算机安全漏洞的防范是一个长期持续的过程,防范的措施也要随着时间的变化和技术的发展进行不断的创新。只有根据网络安全漏洞的类型和特点有针对性的制定防范措施,才能有效的填补漏洞。

安全漏洞的分类

网络中的协议漏洞

就拿最我们应用最广泛的TCP/IP协议组来说吧,它是置于可信的环境之下设计的,只考虑到网络互连和开放性问题,而没有过多的考虑安全性。造成了TCP/IP协议组本身在应用方面并不安全,因此导致基于TCP/IP协议的一系列网络服务安全性及其脆弱。

应用软件系统的漏洞

任何一款软件由于设计上的缺陷都或多或少存在一定的漏洞,这种漏洞可以造成系统本身的脆弱。通常该漏洞分为两种:一是由于操作系统本身设计缺陷造成的安全漏洞,并影响到运行在该系统上的应用程序;二是应用程序本身设计漏洞。

配置不当引起的漏洞

由于安全策略设置的不完整,系统有时候会在安全策略未发挥作用的时候运行,而管理人员很难发现,直到系统出现问题才有所觉察。

管理方面引起的漏洞

管理制度的缺失,管理人员失误等会造成漏洞的发生。

常见的安全漏洞

(一)IP地址的盗用IP地址的盗用是计算机使用过程中最常见的网络安全漏洞之一。通常,被盗的IP地址都具有较高的权限,因此在被盗后会对计算机的正常运行产生极大的干扰,甚至对泄露用户的个人信息,造成不可挽回的经济财产损失。IP地址的盗用一般是网络黑客通过未经授权的地址篡改自身的登录身份,从而对网络用户的信息进行窃取或篡改。IP地址被盗用的现象发生的十分频繁,这不但对用户的个人权益造成了极大的侵犯,还会对整个网络系统的环境造成严重的破坏。

(二)计算机病毒计算机病毒是危害性较大的一种网络安全病毒之一,它是通过一定的程序对网络进行入侵。计算机病毒具有一定的传染性和隐蔽性,对计算机系统的破坏性也较强,计算机在受到病毒攻击后很难被发觉。一旦病毒入侵了计算机后,就会在系统内进行自我复制,从而使整个计算机系统陷入瘫痪。计算机病毒的载体十分的多样,并且传播的速率很快,但最常见的形式还是黑客入侵。黑客的入侵会对计算机中存储的数据造成极大的破坏。而由于计算机病毒具有一定的伪装性,通常较难辨认,要预防这种安全漏洞是较为困难的,因此,它的危害性也是最强的。计算机病毒具有四大特点。首先是巨大的破坏性。计算机在受到病毒攻击后通常会遭受严重的破坏,不仅计算机的运行速度明显减慢,而且一些重要的文件和数据会丢失,一些文件则被移动了位置,键盘会失效,磁盘会被格式化甚至受到难以修复的损伤。其次是隐蔽性。计算机病毒的类型十分的多样,可以以文档的形式,也可以以程序的形式出现,有时甚至会以游戏的形式侵入计算机当中。这些形式的病毒与一般的应用程序十分的相似,很多病毒查杀的软件甚至都无法对这些病毒进行有效的识别,病毒在入侵计算机后还会不定时的显现,表现形式十分的多样,难以进行清除。第三是传染性,这也是计算机病毒名称的来源。它具有像生物病毒那样的自我复制能力,并且能够从一个程序传染到另一个程序,传播的速度十分的快速。计算机病毒不仅会对计算机的文件、程序等进行破坏,甚至会从一个终端传播到另一个终端,从而造成整个计算机网络的瘫痪。最后是潜伏性。计算机病毒具有一定的潜伏期,在入侵计算机后不会马上显现出来,而是当达到一定的条件和环境后突然爆发,然后便开始迅速的繁殖和破坏活动。典型的病毒就是“黑色星期五”,这一病毒在刚入侵计算机时没有任何的表现,但一旦达到病毒运行的条件后,就会产生指数式的爆发,在短短的时间内就会删除破坏文件、格式化磁盘、封锁键盘、破坏程序等。除了上述的几个主要特征外,计算机病毒还具有强大的复制能力和可触发行,能够对计算机造成极大的破坏。

(三)操作系统和网络协议方面的漏洞操作系统是计算机得以正常运行的基础,但任何的操作系统都存在自身的缺陷,在进行操作系统的更新时,也会产生新的系统漏洞。常见的操作系统漏洞主要有四个方面的内容,分别是访问控制的错误、不完全中介、非法访问、操作系统陷门等。网络协议的漏洞主要指IP漏洞。IP是确保计算机信息传递准确性和效率的基础,当IP出现漏洞时,就会导致计算机无法有效的识别外部传入的信息,难以鉴别真实的地址,从而给黑客的入侵创造了条件。黑客可以利用IP上的漏洞,对网络中的数据进行阻拦,并计算出用户的网络地址,从而截取各种信息,甚至还可以通过修改用户的IP而对用户的个人数据进行篡改。

(四)拒绝服务攻击拒绝服务攻击是指网络攻击者对计算机进行攻击后,会导致计算机的正常服务被拒绝的现象。在这种情况下,用户的计算机失去了基本的操作功能,计算机中包含的数据也无法读取,极大的影响了用户的正常工作和生活。拒绝服务的作用原理是攻击者通过对用户的终端发送大量的虚假服务信息,从而阻挡了用户需要的真实信息,使计算机网络系统无法为用户提供正常的服务,计算机就会产生拒绝服务的现象。造成拒绝服务问题的根本原因是系统软件中存在一定的漏洞,或者操作系统和网络协议的功能不完善。拒绝服务的内容一般包括服务程序的相应、CPU、路由设备等。(五)网络结构安全计算机网络是一种网间结构,是由多个局域网组成的庞大的网络系统,能够为用户提供丰富的网络资源。在这个网络系统中,每一台计算机都是与系统中的其他计算机相互连接的,因此信息可以通过这个网络进行层层的传输,最终送达目的地。在这一过程中,信息不仅仅是在两台计算机终端之间传输,还要输送到网卡中,有时信息也会在传输的过程中被以太网上任何一个节点所截取。黑客就是利用这一原理,对计算机进行了入侵,从而获取了大量的数据包,在通过计算不同节点之间的关系,对数据包进行解码,最终获取重要的用户信息。

漏洞挖掘技术

1.人工分析

人工分析是一种灰盒分析技术。针对被分析目标程序,手工构造特殊输入条件,观察输出、目标状态变化等,获得漏洞的分析技术。输入包括有效的和无效的输入,输出包括正常输出和非正常输出。非正常输出是漏洞出现的前提,或者就是目标程序的漏洞。非正常目标状态的变化也是发现漏洞的预兆,是深入挖掘的方向。人工分析高度依赖于分析人员的经验和技巧。人工分析多用于有人机交互界面的目标程序,Web漏洞挖掘中多使用人工分析的方法。

2.Fuzzing技术

Fuzzing技术是一种基于缺陷注入的自动软件测试技术,它利用黑盒分析技术方法,使用大量半有效的数据作为应用程序的输入,以程序是否出现异常为标志,来发现应用程序中可能存在的安全漏洞。半有效数据是指被测目标程序的必要标识部分和大部分数据是有效的,有意构造的数据部分是无效的,应用程序在处理该数据时就有可能发生错误,可能导致应用程序的崩溃或者触发相应的安全漏洞。

根据分析目标的特点,Fuzzing可以分为三类:

  1. 动态Web页面Fuzzing,针对ASP、PHP、Java、Perl等编写的网页程序,也包括使用这类技术构建的B/S架构应用程序,典型应用软件为HTTP Fuzz;

  2. 文件格式Fuzzing,针对各种文档格式,典型应用软件为PDF Fuzz;

  3. 协议Fuzzing,针对网络协议,典型应用软件为针对微软RPC(远程过程调用)的Fuzz。

Fuzzer软件输入的构造方法与黑盒测试软件的构造相似,边界值、字符串、文件头、文件尾的附加字符串等均可以作为基本的构造条件。Fuzzer软件可以用于检测多种安全漏洞,包括缓冲区溢出漏洞、整型溢出漏洞、格式化字符串和特殊字符漏洞、竞争条件和死锁漏洞、SQL注入、跨站脚本、RPC漏洞攻击、文件系统攻击、信息泄露等。

与其它技术相比,Fuzzing技术具有思想简单,容易理解、从发现漏洞到漏洞重现容易、不存在误报的优点。同时它也存在黑盒分析的全部缺点,而且具有不通用、构造测试周期长等问题。

常用的Fuzzer软件包括SPIKE Proxy、Peach Fuzzer Framework、Acunetix Web Vulnerability Scanner的HTTP Fuzzer、OWASP JBroFuzz、WebScarab等。

3.补丁比对技术

补丁比对技术主要用于黑客或竞争对手找出软件发布者已修正但未尚公开的漏洞,是黑客利用漏洞前经常使用的技术手段。

安全公告或补丁发布说明书中一般不指明漏洞的准确位置和原因,黑客很难仅根据该声明利用漏洞。黑客可以通过比较打补丁前后的二进制文件,确定漏洞的位置,再结合其他漏洞挖掘技术,即可了解漏洞的细节,最后可以得到漏洞利用的攻击代码。

简单的比较方法有二进制字节和字符串比较、对目标程序逆向工程后的比较两种。第一种方法适用于补丁前后有少量变化的比较,常用的于字符串变化、边界值变化等导致漏洞的分析。第二种方法适用于程序可被反编译,且可根据反编译找到函数参数变化导致漏洞的分析。这两种方法都不适合文件修改较多的情况。

复杂的比较方法有Tobb Sabin提出的基于指令相似性的图形化比较和Halvar Flake提出的结构化二进制比较,可以发现文件中一些非结构化的变化,如缓冲区大小的改变,且以图形化的方式进行显示。

常用的补丁比对工具有Beyond Compare、IDACompare、Binary Diffing Suite(EBDS)、BinDiff、NIPC Binary Differ(NBD)。此外大量的高级文字编辑工具也有相似的功能,如Ultra Edit、HexEdit等。这些补丁比对工具软件基于字符串比较或二进制比较技术。

4.静态分析技术

静态分析技术是对被分析目标的源程序进行分析检测,发现程序中存在的安全漏洞或隐患,是一种典型的白盒分析技术。它的方法主要包括静态字符串搜索、上下文搜索。静态分析过程主要是找到不正确的函数调用及返回状态,特别是可能未进行边界检查或边界检查不正确的函数调用,可能造成缓冲区溢出的函数、外部调用函数、共享内存函数以及函数指针等。

对开放源代码的程序,通过检测程序中不符合安全规则的文件结构、命名规则、函数、堆栈指针可以发现程序中存在的安全缺陷。被分析目标没有附带源程序时,就需要对程序进行逆向工程,获取类似于源代码的逆向工程代码,然后再进行搜索。使用与源代码相似的方法,也可以发现程序中的漏洞,这类静态分析方法叫做反汇编扫描。由于采用了底层的汇编语言进行漏洞分析,在理论上可以发现所有计算机可运行的漏洞,对于不公开源代码的程序来说往往是最有效的发现安全漏洞的办法。

但这种方法也存在很大的局限性,不断扩充的特征库或词典将造成检测的结果集大、误报率高;同时此方法重点是分析代码的“特征”,而不关心程序的功能,不会有针对功能及程序结构的分析检查。

5.动态分析技术

动态分析技术起源于软件调试技术,是用调试器作为动态分析工具,但不同于软件调试技术的是它往往处理的是没有源代码的被分析程序,或是被逆向工程过的被分析程序。

动态分析需要在调试器中运行目标程序,通过观察执行过程中程序的运行状态、内存使用状况以及寄存器的值等以发现漏洞。一般分析过程分为代码流分析和数据流分析。代码流分析主要是通过设置断点动态跟踪目标程序代码流,以检测有缺陷的函数调用及其参数。数据流分析是通过构造特殊数据触发潜在错误。

比较特殊的,在动态分析过程中可以采用动态代码替换技术,破坏程序运行流程、替换函数入口、函数参数,相当于构造半有效数据,从而找到隐藏在系统中的缺陷。

常见的动态分析工具有SoftIce、OllyDbg、WinDbg等。 

2.学习中遇到的问题及解决

  • 问题1:XXXXXX
  • 问题1解决方案:XXXXXX
  • 问题2:XXXXXX
  • 问题2解决方案:XXXXXX - ...

    3.本次讲座的学习感悟、思考等)

    xxx xxx

    4.XX最新研究现状

    根据老师上课内容,选择其中一个研究方向或者研究点,查阅2018年至少5篇顶级会议/期刊论文,概述下当前最新研究进展(要求给出论文的题目、顶级期刊或会议名称、作者等信息,然后介绍相关研究进展)。

参考资料

猜你喜欢

转载自www.cnblogs.com/thechosenone95/p/10887043.html