网络攻击与防御-课程设计

  • 格式:doc
  • 大小:396.00 KB
  • 文档页数:22

甘肃政法学院

本科课程设计(设计)

题 目 缓冲区溢出攻击的原理分析及防范

计算机科学院 院(系) 计算机科学与技术 专业 09

级 计本一 班

学 号 ************

姓 名 李磊

指导教师 武光利

成 绩

完成时间 年 月

缓冲区溢出攻击的原理分析及防范

【摘要】:利用缓冲区溢出漏洞进行攻击自诞生以来始终是网络攻击常用的手段,对信息安全危害极大。如何检测缓冲区溢出成为研究的一个热点,并涌现出了各种各样的方案。本次课程设计的目的旨在分析攻击的原理及防范措施。

关键字::缓冲区溢出;漏洞;攻击;权限

Abstract:Utilization of buffer overflow attacks since the birth is always the

network attack means used for information security, great harm. How to detect buffer

overflow has become a research hotspot, and emerged in a variety of programmes.

The purpose of the curriculum design is aimed at the analysis of the attack principle

and prevention measures.

Key words:Buffer overflow;Loophole;Attack;Jurisdiction

i 目 录

第一章 引言......................................................... 1

第二章 系统漏洞..................................................... 1

2.1 漏洞的概念 .................................................... 1

2.2 漏洞的分类 .................................................... 2

2.2.1 系统配置不当 .............................................. 2

2.2.2 口令失窃 .................................................. 2

2.2.3 嗅探未加密通讯数据 ........................................ 3

2.2.4 设计存在的缺陷 ............................................ 3

2.2.5 软件编写存在bug........................................... 3

第三章 本地缓冲区溢出的原理及实现.................................. 4

3.1 缓冲区的概念 .................................................. 4

3.2 缓冲区溢出攻击原理 ............................................ 5

3.3 缓冲区溢出实现方式 ............................................ 6

3.3.1利用跳转指令实现溢出....................................... 6

3.3.2定位参数地址实现溢出....................................... 8

3.3.3溢出实现用户权限提升...................................... 14

第四章 基于缓冲区溢出的防御方法................................... 15

4.1关闭不需要的特权程序 ......................................... 16

4.2关闭或修改系统的某些版本信息 ................................. 16

4.3使堆栈向高地址方向增长 ....................................... 17

4.4及时给程序漏洞打补丁 ......................................... 17

4.5提供高级的用户帮助 ........................................... 17

第五章 总结........................................................ 18

参考文献........................................................... 19

1

缓冲区溢出攻击的原理分析及防范

第一章 引言

目前我国互联网已经进入宽带时期,网络用户和网络资源持续增长。但是,互联网的开放性、商业化和应用系统的复杂性带来的安全风险也随之增加,各种安全漏洞的大量存在并不断攀升仍是网络安全的最大隐患,即使计算机系统装上了防火墙和防病毒软件,但遗憾的是系统本身的漏洞难以避免。近年由CERT/CC

发布的系统安全忠告中关于缓冲区溢出(又称堆栈溢出) 漏洞占56.76%以上。缓冲区溢出可以让普通用户通过运行一个“错误”的程序,来使系统运行只有在超级管理员环境下才能运行的程序。一旦系统存在着缓冲区溢出漏洞,系统就有可能被黑客完全控制。所以,缓冲区溢出漏洞是致命的。

缓冲区溢出攻击之所以成为一种常见的攻击手段,其原因在于缓冲区溢出漏洞太普通了,并且易于实现。而且,缓冲区溢出所以成为远程攻击的主要手段,其原因在于缓冲区溢出漏洞给予了攻击者所想要的一切:植入并且执行攻击代码。被植入的攻击代码以一定的权限运行有缓冲区溢出漏洞的程序,从而得到被攻击主机的控制权。本文简单介绍了缓冲区溢出的基本原理及本文讲述了漏洞的基本概念,并列述了漏洞的分类。漏洞的种类繁多,主要就缓冲区漏洞的软件编写存在bug、系统配置不当、口令失窃、明文通讯信息被监听以及初始设计存在缺陷等方面作了简单的介绍。本次课程设计的目的旨在分析攻击的原理及防范措施。

第二章 系统漏洞

2.1 漏洞的概念

漏洞也叫脆弱性,是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷。从而可以使攻击者能够在未授权的情况下访问或破坏系统。这些缺陷被非法用户利用,可以突破系统的审计和访问控制等安全机制,对系统及其承载数据的完整性、保密性和可用性造成威胁。漏洞会影响到很大范围的软硬件设备,包括系统本身及其支撑软件、网络客户和服务器软件、网络路由器和安全防火墙等,即在不同的软硬件设备中都可能存在不同的安全漏洞问题。

2 漏洞无处不在,入侵者只要找到复杂的计算机网络中的一个漏洞,就能轻而易举地闯入系统。所以,了解这些漏洞都有可能在哪里,对于修补它们至关重要。通常,漏洞主要表现在软件编写存在bug、系统配置不当、口令失窃、明文通讯信息被监听以及初始设计存在缺陷等方面。

2.2 漏洞的分类

2.2.1 系统配置不当

(1)默认配置的不足:许多系统安装后都有默认的安全配置信息,通常被称为easytouse。但遗憾的是,easytouse还意味着easytobreakin。所以,一定对默认配置进行扬弃的工作。

(2)管理员懒散:懒散的表现之一就是系统安装后保持管理员口令的空值,而且随后不进行修改。要知道,入侵者首先要做的事情就是搜索网络上是否有这样的管理员为空口令的机器。

(3)临时端口:有时候为了测试,管理员会在机器上打开一个临时端口,但测试完后却忘记了禁止,这样就会给入侵者有洞可寻、有漏可钻。通常的解决策略是:除非一个端口是必须使用的,否则禁止它。一般情况下,安全审计数据包可用于发现这样的端口并通知管理者。

(4)信任关系:网络间的系统经常建立信任关系以方便资源共享,但这也给入侵者有可趁之机、间接攻击的可能,例如,只要攻破信任群中的一个机器,就有可能进一步攻击其他的机器。所以,要对信任关系严格审核、确保真正的安全联盟。

2.2.2 口令失窃

(1)弱不禁破的口令:就是说虽然设置了口令,但是非常简单,入侵者可以轻而易举的攻破。

(2)字典攻击:就是指入侵者使用一个程序,该程序借助一个包含用户名和口令的字典数据库,不断地尝试登录系统,直到成功进入。毋庸置疑,这种方式的关键在于有一个好的字典。

(3)暴力攻击:与字典攻击类似,但这个字典却是动态的,就是说,字典包含了所有可能的字符组合。例如,一个包含大小写的4字符口令大约有50万个组合,1个包含大小写且标点符号的7字符口令大约有10万亿组合。对于后者,一般的计算机要花费大约几个月的时间才能试验一遍。

3 2.2.3 嗅探未加密通讯数据

(1)共享介质:传统的以太网结构很便于入侵者在网络上放置一个嗅探器就可以查看该网段上的通讯数据,但是如果采用交换型以太网结构,嗅探行为将变得非常困难。

(2)服务器嗅探:交换型网络也有一个明显的不足,入侵者可以在服务器上特别是充当路由功能的服务器上安装一个嗅探器软件,然后就可以通过它收集到的信息闯进客户端机器以及信任的机器。例如,虽然不知道用户的口令,但当用户使用Telnet软件登录时就可以嗅探到他输入的口令了。

(3)远程嗅探:许多设备都具有RMON,远程监控功能以便管理者使用公共体字符串进行远程调试。随着宽带的不断普及,入侵者对这个后门越来越感兴趣了。

2.2.4 设计存在的缺陷

(1)TCP/IP协议的缺陷:TCP/IP协议现在已经广为应用、但是它设计时却是在入侵者猖狂肆虐的今天之很早以前设计出来的。因此,存在许多不足造成安全漏洞在所难免,例如smurf攻击、ICMPUnreachable数据包断开、IP地址欺骗以及SYNflood。然而,最大的问题在于IP协议是非常容易“轻信”的,就是说入侵者可以随意地伪造及修改IP数据包而不被发现。现在Ipsec协议已经开发出来以克服这个不足,但还没有得到广泛的应用。

2.2.5 软件编写存在bug

无论是服务器程序、客户端软件还是操作系统,只要是用代码编写的,都会存在不同程度的Bug。Bug主要分为以下几类:

(1)缓冲区溢出:指入侵者在程序的有关输入项目中了输入了超过规定长度的字符串,超过的部分通常就是入侵者想要执行的攻击代码,而程序编写者又没有进行输入长度的检查,最终导致多出的攻击代码占据了输入缓冲区后的内存而执行。

(2)意料外的联合使用问题:一个程序经常由功能不同的多层代码组成,甚至会涉及到最底层的操作系统级别。入侵者通常会利用这个特点为不同的层输入不同的内容,以达到窃取信息的目的。