收藏 分享(赏)

网络安全技术及应用(第四章).ppt

上传人:fmgc7290 文档编号:6919049 上传时间:2019-04-27 格式:PPT 页数:59 大小:209.50KB
下载 相关 举报
网络安全技术及应用(第四章).ppt_第1页
第1页 / 共59页
网络安全技术及应用(第四章).ppt_第2页
第2页 / 共59页
网络安全技术及应用(第四章).ppt_第3页
第3页 / 共59页
网络安全技术及应用(第四章).ppt_第4页
第4页 / 共59页
网络安全技术及应用(第四章).ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、2019/4/27,1,第四章 网络攻击技术,本章学习重点掌握内容: 端口扫描技术 网络嗅探技术 缓冲区溢出 DoS攻击,2019/4/27,2,第四章 网络攻击技术,4.1 网络攻击概述 4.2 网络扫描技术 4.3 网络嗅探技术 4.4 缓冲区溢出技术 4.5 DoS攻击技术,2019/4/27,3,4.1 网络攻击概述,4.1.1 关于黑客 黑客(Hacker),源于英语动词“hack”,意为“劈,砍”,引申为“干了件漂亮的工作”。 那些怀着不良企图,非法侵入他人系统进行偷窥、破坏活动的人被称为“Cracker(骇客)”、“Intruder(入侵者)”。他们也具备广泛的计算机知识,但与黑

2、客不同的是他们以破坏为目的. 据统计,全球每20秒就有一起系统入侵事件发生,仅美国一年所造成的经济损失就超过100亿美元。由于在大多数人眼里的黑客就是指入侵者,因而这里也将黑客理解为“入侵者”或“攻击者”。,2019/4/27,4,4.1 网络攻击概述,4.1.2系统脆弱性表现 1、固有的安全漏洞 任何软件系统,包括系统软件和应用软件都无法避免地存在安全漏洞。这些漏洞主要来源于程序设计等方面的错误和疏忽,如:协议的安全漏洞、弱口令、缓冲区溢出等。这些漏洞给入侵者提供了可乘之机。 2、系统维护措施不完善 当发现漏洞时,管理人员需要仔细分析危险程序,并采取补救措施。有时虽然对系统进行了维护,对软件

3、进行了更新或升级,但出于路由器及防火墙的过滤规则复杂等问题,系统可能又会出现新的漏洞。 3、缺乏良好的安全体系 一些系统忽视信息的安全,在设计和部署时没有建立有效的、多层次防御体系,以及良好的安全性检测与监控平台,这样的系统不能防御复杂的攻击。,2019/4/27,5,4.1 网络攻击概述,4.1.3 黑客攻击的步骤1、收集信息和系统扫描 1) 收集要攻击目标系统的相关信息 这些信息包括目标系统的位置、路由、目标系统的结构及技术细节等。可以用以下的工具或协议来完成信息收集。Ping程序、Tracert程序、Finger协议、DNS服务器、SNMP协议、whois协议。 2) 系统扫描为进一步获

4、取系统及网络信息,使用以下工具进行有针对性地窥探。Nmap:判断OS类型及版本,嗅探系统开放的Service。 Cheops:图形化的网络嗅探工具,能够管理Linux异构网络,获取系统漏洞信息。,2019/4/27,6,4.1.3 黑客攻击的步骤,2、探测系统安全弱点 入侵者根据收集到的目标网络的有关信息,对目标网络上的主机进行探测,以发现系统的弱点和安全漏洞。发现系统弱点和漏洞的主要方法有: 1) 利用“补丁”找到突破口 攻击者通过分析“补丁”程序的接口,自己编写程序通过该接口入侵目标系统。 2) 利用扫描器发现安全漏洞 可以对整个网络或子网进行扫描,寻找安全漏洞。系统管理员使用扫描器可以及

5、时发现系统存在的安全隐患,从而完善系统的安全防御体系;而攻击者使用此类工具,用于发现系统漏洞。目前比较流行的扫描器有因特网安全扫描程序ISS(Internet Security Scanner),安全管理员网络分析工具SATAN(Security Administrator Tool for Analyzing Networks)、NSS、Nessus等。,2019/4/27,7,4.1.3 黑客攻击的步骤,3、实施攻击 攻击者通过上述方法找到系统的弱点后,就可以对系统实施攻击。攻击者的攻击行为一般可以分为以下3种表现形式: 1) 掩盖行迹,预留后门 攻击者潜入系统后,会尽量销毁可能留下的痕迹

6、,并在受损害系统中找到新的漏洞或留下后门,以备下次光顾时使用。 2) 安装探测程序 攻击者可能在系统中安装探测软件,即使攻击者退出去以后,探测软件仍可以窥探所在系统的活动,收集攻击者感兴趣的信息,如:用户名、账号、口令等,并源源不断地把这些秘密传给幕后的攻击者。 3) 取得特权,扩大攻击范围 攻击者可能进一步发现受损害系统在网络中的信任等级,然后利用该信任等级所具有的权限,对整个系统展开攻击。如果攻击者获得根用户或管理员的权限,后果将不堪设想。,2019/4/27,8,4.1.4 主要攻击方法,1、获取口令 获取口令一般有3种方法: 1) 通过网络监听非法得到用户口令。监听者往往能够获得其所在

7、网段的所有用户账号和口令; 2) 知道用户的账号后,利用一些专门软件暴力破解用户口令。 3) 在获得一个服务器上的用户口令文件(在Unix中此文件称为Shadow文件)后,用暴力破解程序破解用户口令。是在本地将加密后的口令与Shadow文件中的口令相比较就能非常容易地破获用户密码,尤其对那些弱口令(如:123456,666666,hello,admin等),在极短的时间内就会被破解。,2019/4/27,9,4.1.4 主要攻击方法,2、WWW欺骗技术 用户可以利用IE浏览器进行各种各样的Web站点的访问,正在访问的网页可能被黑客篡改,网页上的信息是虚假的。例如,攻击者将用户要浏览的网页的UR

8、L改写为指向攻击者自己的服务器,当用户浏览目标网页的时候,实际上是向攻击者的服务器发出请求,那么黑客就可以达到欺骗的目的。,2019/4/27,10,4.1.4 主要攻击方法,3、电子邮件攻击 电子邮件攻击上要表现为两种方式: 1) 邮件炸弹,指的是用伪造的IP地址和电子邮件地址向同一信箱发送数以千计、万计甚至无穷多次的内容相同的垃圾邮件,致使受害人邮箱被“炸”,严重者可能会给电子邮件服务器操作系统带来危险,甚至瘫痪; 2) 攻击者佯称作系统管理员(邮件地址和系统管理员完全相同),给用户发送邮件要求用户修改口令(口令可能为指定字符串)或在看似正常的附件中加载病毒或其他木马程序,这类欺骗只要用户

9、提高警惕,一般危害性不大。,2019/4/27,11,4.1.4 主要攻击方法,4、网络嗅探 网络嗅探是将网卡置于一种混杂模式(Promiscuous)的工作模式,在这种模式下,主机可以接收到本网段同一条物理通道上传输的所有信息,而不管这些信息的接受方是谁。此时,如果两台主机进行通信的信息没有加密,只要使用某些网络监听工具(例如Sniffer、NetXray等工具)就可以轻而易举地截取包括口令和账号在内的信息资料。 5、寻找系统漏洞 现有的操作系统或应用软件,大多会存在一些设计上的Bug,这些Bug通常也被看作是系统的漏洞,在补丁程序没有被开发和公开之前,这样的系统一般很难防御黑客的破坏。此外

10、,还有一些漏洞是出于系统管理员配置错误引起的,这也会给攻击者带来可乘之机,因此系统在有效使用前,应正确配置和初始化,遇到问题及时加以修正。,2019/4/27,12,4.1.4 主要攻击方法,6、DoS(Denial of Service)攻击 DoS攻击,即拒绝服务攻击,是指一个用户占据了大量的共享资源,使系统没有剩余的资源给其他用户提供服务的一种攻击力式。拒绝服务攻击的结果可以降低系统资源的可用性,这些资源可以是网络带宽、CPU时间、磁盘空间、打印机,甚至是系统管理员的时间。 7、缓冲区溢出攻击 利用缓冲区溢出攻击可以导致程序运行失败、系统崩溃等后果。更为严重的是,可以利用它执行非授权指令

11、,甚至可以取得系统特权,进而进行各种非法操作。缓冲区溢出攻击之所以成为一种常见安全攻击手段,攻击者可以植入并且执行攻击代码。被植入的攻击代码以一定的权限运行有缓冲区溢出漏洞的程序,从而得到被攻击主机的控制权。,2019/4/27,13,4.1.5 攻击的新趋势,1、攻击过程的自动化与攻击工具的快速更新 攻击工具的自动化程度继续不断地增强,其中涉及的四个阶段都发生了明显的变化。 1) 扫描潜在的受害者 从1997年起开始出现大量的扫描活动,目前,新的扫描工具利用更先进的扫描技术,变得更加有威力,并且提高了速度。 2) 入侵具有漏洞的系统 早期对具有漏洞的系统的攻击是发生在大范围的扫描之后。目前,

12、攻击工具已经将对漏洞的入侵设计成为扫描活动的一部分,这样大大加快了入侵的速度。,2019/4/27,14,4.1.5 攻击的新趋势,3) 攻击扩散 2000年之前,攻击工具需要一个人来发起新的攻击。现在,攻击工具能够自动发起新的攻击过程。例如红色代码和Nimda病毒这些工具就在18个小时之内传遍了全球。 4) 攻击工具的协同管理 攻击者能够利用大量分布在Internet之上的攻击工具发起攻击。现在,攻击者能够更加有效地发起一个分布式拒绝服务攻击。 2、攻击工具复杂化 攻攻击工具的特征码越来越难以通过分析来发现,并且越来越难以通过基于特征码的检测系统发现,,2019/4/27,15,4.1.5

13、攻击的新趋势,1) 反检测 攻击者采用了能够隐藏攻击工具的技术。这使得要通过各种分析方法来判断新的攻击的过程变得更加困难。 2) 动态行为 自动攻击工具能够按照不同的方法更改它们的特征,如通过随机选择预定的决策路径或者通过入侵者直接的控制来进行攻击。 3) 攻击工具的模块化和标准化 新的攻击工具能够通过升级或者对部分模块的替换完成快速更改。而且,攻击工具能够在越来越多的平台上运行。,2019/4/27,16,4.1.5 攻击的新趋势,3、渗透防火墙 通常,一个计算机系统依赖防火墙提供安全的主要边界保护。但是目前已经存在一些绕过典型防火墙配置的技术,如IPP(the Internet Print

14、ing Protocol)和WebDAV(Web Distributed Authoring and Versioning); 计算机之间存在很强的依存性。一旦某些计算机遭到了入侵,它就有可能成为入侵者的栖息地和跳板,作为进一步攻击的工具。对网络基础架构(如DNS系统、路由器)的攻击也越来越成为严重的安全威胁。,2019/4/27,17,4.2 网络扫描技术,4.2.1 端口与服务 分为物理端口和逻辑端口,下面主要介绍逻辑端口及其分类: (1) 标准端口 这类端口的范围是01023,一般固定分配给一些应用服务,比如FTP的21端口、SMTP的25端口、HTTP的80端口和RPC(远程过程调用)

15、的135端口等等。 (2) 非标准端口 这类端口的范围是102465535,一般不固定分配给某个应用服务,即许多服务都可以使用这些端口。只要某个进程向系统提出访问网络的请求,那么系统就可以从这些端口号中分配一个给该进程。例如1024端口,它是分配给第一个向系统发出请求的进程,当进程结束时,该端口号将被释放,可供其他进程再次使用。,2019/4/27,18,4.2.1 端口与服务,端口的第二种分类方式是按照协议类型来划分,具体可以分为TCP、UDP、IP和ICMP端口等。这里主要介绍前两类。 (1) TCP端口 这类端口主要面向TCP协议,通常在客户机和服务器之间建立连接,提高了数据传输的可靠性

16、。常见有的FTP服务的21端口、TELNET服务的23端口、SMTP的25端口,以及HTTP服务的80端口等。 (2)UDP端口 这类端口面向UDP协议,无须在客户机和服务器之间建立连接,数据传输的可靠性和安全性无法得到保障。常见的有,DNS服务的53端口、SNMP(简单网络管理协议)服务的161端口,以及QQ使用的8000和4000端口。,2019/4/27,19,4.2.2 端口扫描,端口扫描是获取主机信息的一种常用方法。利用端口扫描程序可以了解远程服务器提供的各种服务及其TCP端口分配,了解服务器的操作系统及目标网络结构等信息。端口扫描也广泛被入侵者用来寻找攻击线索和攻击入口。 扫描器是

17、检测远程或本地系统安全脆弱性的软件。通过与目标主机TCP/IP端口建立连接并请求某些服务(如Telnet、FTP等),记录目标主机的应答,搜集目标主机相关信息(如匿名用户是否可以登录等),从而发现目标主机某些内在的安全弱点。 一般把扫描器分为三类:数据库安全扫描器、操作系统安全扫描器和网络安全扫描器。,2019/4/27,20,4.2.3漏洞扫描,漏洞是指硬件、软件或策略上存在的安全缺陷,从而使得攻击者能够在未授权的情况下访问、控制系统。漏洞对系统的威胁体现在恶意攻击行为对系统的威胁,。 操作系统和应用软件的漏洞被黑客大量利用,从而进行木马、病毒等恶意代码攻击,并造成了严重后果。,2019/4

18、/27,21,4.2.3漏洞扫描,漏洞扫描工具比较多,这里重点介绍下X-Scan。 X-Scan是国内最著名的综合扫描器之一,其运行界面见图4-1,2019/4/27,22,4.2.3漏洞扫描,1、功能简介 采用多线程方式对指定IP地址段(或单机)进行安全漏洞检测,支持插件功能。扫描内容包括:远程服务类型、操作系统类型及版本,各种弱口令漏洞、后门、应用服务漏洞、网络设备漏洞、拒绝服务漏洞等二十几个大类。 2、使用方法 该软件为绿色软件,无需安装。打开X-Scan,可以看到非常简洁的GUI界面(界面见图4-1),在扫描之前,首先要设定扫描参数: 1) 设置检测范围,设置有效IP格式。 2)进行全

19、局设置,全局设置中包含扫描模块、并发扫描、扫描报告、其他设置四个模块。,2019/4/27,23,4.2.3漏洞扫描,3) 进行插件设置,插件设置主要包括端口相关设置、SNMP设置、NETBIOS相关设置、漏洞检测脚本设置、CGI相关设置、字典文件设置等6项。 4) 设置完毕后,点击开始按钮,X-SCAN开始扫描。在扫描过程中便可以看到具体的扫描过程。 5)生成扫描报告及相关的漏洞信息。,2019/4/27,24,4.2.4 常用扫描技术,1、TCP connect扫描 这是最基本的TCP扫描方法。也称为全连接扫描。利用TCP连接机制,通过系统提供的connect()调用,可以用来与任何一个感

20、兴趣的目标计算机的端口进行连接。优点是用户不需要任何权限,缺点是很容易被发觉。 2、TCP SYN扫描 也称“半连接”扫描。是指在扫描主机和目标主机的指定端口建立连接时只完成了前两次握手,在第三步时,扫描主机中断了本次连接,使连接没有完全建立起来。优点在于:对半连接扫描要比全连接扫描快且隐蔽。缺点则是需要构造适用于这种扫描的IP包,构造SYN数据包需要超级用户或者授权用户访问专门的系统调用。,2019/4/27,25,4.2.4常用扫描技术,3、TCP FIN扫描 这种扫描方法的思想是:关闭的端口会用适当的RST来回复FIN数据包,而打开的端口会忽略对FIN数据包的回复。这种方法和操作系统的实

21、现有一定的关系。有的操作系统不管端口是否打开,都回复RST,此时,这种扫描方法就不适用了。 4、分段扫描 这种技术不是直接发送TCP探测数据包,而是将数据包分成两个较小的IP段。一个TCP头分成若干个数据包,使用过滤器很难探测到。,2019/4/27,26,4.2.4常用扫描技术,5、TCP反向ident扫描 ident协议允许看到通过TCP连接的任何进程的拥有者的用户名,即使这个连接不是由这个进程开始的。这种方法只能在和目标端口建立了一个完整的TCP连接后才能实现。 6、FTP返回攻击 FTP协议的一个有趣的特点是它支持代理(Proxy)FTP连接,即入侵者可以从自己的计算机和目标主机的FT

22、P Server-PI(协议解释器)连接,建立一个控制通信连接。然后,请求这个Server-PI激活一个有效的Server-DTP(数据传输进程)来给Internet上任何地方发送文件。这种方法的优点是能够穿过防火墙并且难以跟踪,主要缺点是速度较慢。,2019/4/27,27,4.2.4常用扫描技术,7、UDP ICMP端口不能到达扫描 许多主机在用户向一个未打开的UDP端口发送一个数据包时,会返回一个ICMP_PORT_UNREACH错误,通过这个就能判断哪个端口是关闭的。出于UDP和ICMP错误都不保证能到达,因此这种扫描器必须具备在一个包看上去丢失的情况下能重新传输的功能。对ICMP错误

23、消息的产生速率做了规定,所以这种扫描方法很慢。 8、ICMP Echo扫描 这并非真正意义上的扫描,但有时通过ping命令可以判断在一个网络上主机是否启动。,2019/4/27,28,4.2.4常用扫描技术,Nmap是目前为止最广为使用的国外端口扫描工具之一,是Insecure.org根据GPL许可证协议提供的免费开源软件。Nmap能够当前流行的操作系统上运行,包括Windows、Linux/Unix。Nmap允许用户定制扫描,可以对单台主机扫描,也可以针对特定网段的扫描。,2019/4/27,29,4.2.4常用扫描技术,Nmap基本功能有三个:1、探测主机是否在线;2、扫描主机端口,探测主

24、机所提供的网络服务;3、推断主机所用的操作系统 。主要命令如下: 1、Ping扫描(Ping Sweeping) 扫描192.168.7.0网络: nmap -sP 192.168.7.0/24 2、端口扫描(Port Scanning) 使用tcp连接扫描目标主机开放的服务: nmap -sT 192.168.7.12 3、隐蔽扫描(Stealth Scanning) TCP SYN扫描:nmap -sS 192.168.7.7 TCP FIN扫描:nmap sF 192.168.7.7 4、操作系统识别(OS Fingerprinting) 采用指纹识别技术Nmap可以发现目标主机使用的操

25、作系统,命令如: nmap -sS -O 192.168.7.12,2019/4/27,30,4.3 网络嗅探技术,网络嗅探技术是提供给网络安全管理人员进行管理的工具,监视网络的状态,数据流动情况以及网络上传输的信息等。 4.3.1 网络嗅探的原理 网络嗅探是利用计算机的网络接口截获目的地为其他计算机数据报文的一种工具。通过把网络适配卡(一般如以太网卡)设置为一种混杂模式 (Promiscuous)状态,使网卡能接受传输在网络上的每一个数据包。嗅探工作在网络环境中的底层,它会拦截所有正在网络上传送的数据,并且通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体布局。,2

26、019/4/27,31,4.3.2 网络嗅探工具,常用的网络监听工具或技术有Winpcap、Sniffer、NetXray、Tcpdump 等,下面依次介绍这些监听工具。 1、Winpcap Winpcap (Windows Packet Capture)是Windows平台下捕获IP网络通讯数据包的驱动类库。通过这套类库可以很方便的获得通过本机网络数据包,很多抓包工具Wireshark、ClearSight、Sniffer等工具都是基于Winpcap开发的。在Linux平台上相应的类库为 Libpcap。,2019/4/27,32,4.3.2 网络嗅探工具,Winpcap提供了以下功能: (

27、1) 捕获原始数据包,包括在共享网络上各主机发送/接收的以及相互之间交换的数据包; (2) 在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉; (3) 在网络上发送原始的数据报; (4) 收集网络通信过程中的统计信息。,2019/4/27,33,4.3.2 网络嗅探工具,Sniffer Sniffer原本是提供给管理员的一类管理工具,主要用途是进行数据包分析,通过网络监听软件,管理员可以观测分析实时经由的数据包,从而快速地进行网络故障定位。但是网络监听工具也是攻击者们常用的收集信息的工具。Sniffer网络监控主要包括: 1) Monitor Matrix(主机会话监控矩阵)

28、 2) Monitor Protocol Distribution(协议分布状态监控,,2019/4/27,34,4.3.2 网络嗅探工具,3) Monitor Global Statistics(全局统计数据查看, 4) Capture define filter(过滤器的定制) NetXray NetXRay是由Cisco Networks公司开发的,用于监视网络状态,并为优化网络性能提供数据的软件。通过长时间的捕获,依据统计数值分析网络性能。网络中包的捕捉和解码,用于故障分析。,2019/4/27,35,4.3.2 网络嗅探工具,4、Tcpdump Tcpdump 是一个非常经典的网络包

29、监听分析工具,它最初是由美国加州大学伯克利分校劳伦斯伯克利国家实验室的网络研究小组开发,现在由“The Tcpdump Group”来更新和维护。 Tcpdump (基于Libpcap)支持Solaris、HP-UX、Irix、BSD 等多种操作系统平台。针对不同的平台,在具体安装时各有不同。,2019/4/27,36,4.4 缓冲区溢出技术,4.4.1 缓冲区溢出原理 缓冲区是指内存中存放数据的地方。在程序试图将数据放到机器内存中的某一个位置时,如果没有足够的空间,就会发生缓冲区溢出。,2019/4/27,37,4.4.1 缓冲区溢出原理,下面是一段简单的C程序: void SayHello

30、 (char* name) char tmpName80; strcpy (tmpNname, name); printf (“ Hello %sn“ , tmpName); int main (int argc, char*argv) if (argc !=2) printf(“ Usage: hello .n“);return 1; SayHello(argv1); return 0 ,2019/4/27,38,4.4.1 缓冲区溢出原理,上面的例子中,如果输入的字符串长度超过80,则会造成name超出分配内存区,发生错误。在C语言中类似的函数还有:sprintf()、gets()、sca

31、nf()等。 黑客要利用缓冲区溢出这个漏洞攻击系统,通常要完成两个任务,一是在程序的地址空间里安排适当的代码,二是通过适当的初始化寄存器和存储器,让程序跳转到安排好的地址空间执行。,2019/4/27,39,4.4.1 缓冲区溢出原理,进程在内存的空间分成三个区: 一是代码区:存储程序的可执行代码和只读数据; 二是数据区:又分为未初始化数据区(BSS),存储静态分配的变量;初始化数据区,存储程序的初始化数据; 三是堆栈区:其中堆用于存储程序运行过程中动态分配的数据块;栈用于存储函数调用所传递的参数、函数的返回地址、函数的局部变量等。,2019/4/27,40,4.4.1 缓冲区溢出原理,每一次

32、过程或函数调用,在堆栈中必须保存传递给函数的参数、函数返回后下一条指令的地址、函数中分配的局部变量、恢复前一个栈帧需要的数据(基地址寄存器的值)等数据。,2019/4/27,41,4.4.1 缓冲区溢出原理,程序执行后,如果输入长度不超过80个字符的字符串,内存情况如图4-10(a)所示,如果输入的字符串长度超过80,由于C语言不检查字符串越界,字符串溢出给它分配的缓冲区,写到相邻的单元中去,把原来函数的返回地址改写了,致使函数无法正确返回。,2019/4/27,42,4.4.2 对缓冲区溢出漏洞攻击的分析,1、代码放置的方法 有两种在被攻击程序地址中间放置代码的方法:植入法和利用已存在的代码

33、。 1) 植入法:攻击者向被攻击的程序输入一个字符串,程序会把这个字符串放到缓冲区里。攻击者在这个字符串中包含可以在这个被攻击的硬件平台上运行的指令序列。 2) 利用已存在代码:有时攻击者想要的代码已经在被攻击的程序中,攻击者所要做的只是对代码传递些参数,然后使用程序跳转到选定的目标。例如,攻击代码要求执行exec(“/bin/sh”),而在libc库中的代码执行exec(arg),其中arg是一个指向字符串的指针变量,那么攻击者要做的就是将字符串“/bin/sh”做为参数传给arg,然后调用libc库中相应的指令序列。,2019/4/27,43,4.4.2 对缓冲区溢出漏洞攻击的分析,2、控

34、制程序转移的方法 最基本的方法就是溢出一个没有边界检查或者有其他弱点的缓冲区,扰乱程序的正常执行顺序。许多的缓冲区溢出是用暴力的方法改写程序的指针,按照其程序空间的突破和内存定位不同,可以分成以下几类: 1) 激活记录:每当一个函数调用发生时,调用者会在堆栈中留下一个激活记录,它包含了函数结束时的返回地址。攻击者通过溢出这些自动变量,使这个返回地址指向攻击代码。通过改变程序的返回地址,当函数调用结束时,程序就跳转到攻击者设定的地址,而不是返回原先的地址。这类的缓冲区溢出被称为堆栈溢出攻击(Stack Smashing Attack), 2) 函数指针:函数指针变量可以用来定位任何地址空间,所以

35、攻击者只需在函数指针附近找到一个能够溢出缓冲区,然后溢出这个缓冲区来改变函数指针,使之指向攻击代码。当程序通过函数指针调用函数时,实际就执行了攻击代码。 3) 长跳转缓冲区:在C语言中包含了一个简单的检验恢复系统,称为setjmp/longjmp。可以用setjmp(buffer)来设定检验点,而用longjmp(buffer)来恢复到检验点。如果攻击者能够进入缓冲区空间,那么longjmp实际上是跳转到攻击者的代码上面。,2019/4/27,44,4.4.3 缓冲区溢出的保护,目前有四种基本的方法保护缓冲区免受缓冲区溢出的攻击和影响。 1、强制编写正确代码的方法。 2、通过操作系统使得缓冲区

36、不可执行,从而阻止攻击者植入攻击代码。这种方法有效地阻止了很多缓冲区溢出的攻击,但是攻击者并不定靠植入代码来实施攻击,这是这种方法存在的弱点。 3、利用编译器的边界检查来实现缓冲区的保护。这个方法是通过使缓冲区溢出不可能出现,从而消除这种威胁,但是这种实施方式的代价较大。 4、使用一种间接的方法,该方法在程序指针失效前进行完整性检查。虽然这种方法不能使所有的缓冲区溢出失效,但它可以阻止绝大多数的缓冲区溢出攻击。,2019/4/27,45,4.4.3 缓冲区溢出的保护,除了在开发阶段要注意编写正确的代码之外,对于用户而言,还应注意以下几个方面: 1) 关闭不必要的端口或服务,管理员应该知道自己的

37、系统上安装了什么,并且哪些服务正在运行; 2) 软件漏洞公开后,大的厂商就会及时提供补丁,用户应及时下载安装软件厂商的补丁; 3) 在防火墙上过滤特殊的流量等。,2019/4/27,46,4.5 DoS攻击技术,4.5.1 拒绝服务概述 DoS是Denial of Service的简称,即拒绝服务,造成拒绝服务的攻击行为被称为DoS攻击。拒绝服务攻击是指一个用户占据了大量的共享资源,使系统没有剩余的资源给其他用户提供服务的一种攻击力式。 对DoS而言,主要使用的攻击方式有TCP SYN Flood、UDP Flood、Smurf等。,2019/4/27,47,4.5.2 DoS攻击方法,1、T

38、CP SYN Flood TCP SYN Flood攻击是最常见又最容易被利用的一种攻击手法。在TCP/IP协议中,采用三次握手建立一个连接。但是TCP SYN Flood在实现过程中只进行前2个步骤:当服务器端发出SYN-ACK确认消息后,客户端由于采用源地址欺骗等手段使得服务器端收不到ACK回应;于是,服务器端会在一定时间处于等待接收客户端ACK消息的状态。对于服务器来说,由于需要分配一定的资源给每一个等待的连接,因此可用的TCP连接是有限的。如果恶意攻击短时间内发送大量的此类连接请求,该服务器可用的TCP连接队列将很快被阻塞,系统可用资源急剧减少,甚至会导致服务器的系统崩溃。,2019/

39、4/27,48,4.5.2 DoS攻击方法,2、UDP Flood UDP Flood攻击是导致基于网络带宽的服务拒绝攻击的一种。UDP 是一种无连接的协议,而且它不需要用任何程序建立连接来传输数据。当攻击者随机地向受害系统的端口发送UDP数据包的时候,就可能发生了UDP Flood攻击。当受害系统接收到一个UDP数据包时,如果攻击数据包的目的端口在受害系统中没有应用程序开放,它就会产生一个目的地址无法连接的ICMP数据包发送给该伪造的源地址。如果向受害者系统发送了足够多UDP数据包的时候,网络可用带宽迅速缩小,导致正常的连接不能进入。,2019/4/27,49,4.5.3 分布式拒绝服务攻击

40、,DDoS是一种基于分布式的特殊形式的拒绝服务攻击,是一种分布、协作的大规模攻击方式,主要瞄准比较大的站点,像商业公司、搜索引擎和政府部门站点。它也是2000年以来最流行的攻击方法之一。 分布式拒绝服务攻击是利用DoS攻击方式(如SYN Flood),通过大量的主机同时攻击某一个目标,使目标消耗掉大量的系统资源从而无法正常工作。用来实施分布式拒绝服务攻击的著名程序有:TFN2K、Trinoo、Stacheldraht等。,2019/4/27,50,4.5.3 分布式拒绝服务攻击,攻击者发起DDoS攻击的第一步,就是寻找在Internet是有漏洞的主机,进入系统后在其上面安装后门程序,攻击者入侵

41、的主机越多,他的攻击队伍就越壮大。 第二步在入侵主机上安装攻击程序,最后各部分主机各司其职,在攻击者的调遣下对攻击对象发起攻击。由于攻击者在幕后操纵,所以在攻击时不会受监控系统的跟踪,身份不容易被发现。 由于黑客没有直接去控制代理端。因此增加了追查DDoS攻击者的难度。从,2019/4/27,51,4.5.4 实施DDoS攻击的工具,1、Trinoo Trinoo是复杂的DDoS攻击程序,它使用“主控”(master)程序对实际实施攻击的任何数量的“代理”程序实现自动控制。攻击者连接到安装了主程序的计算机,启动master程序,然后根据一个IP地址的列表,由master程序负责启动所有的代理程

42、序。接着,代理程序用UDP信息包攻击网络,从而攻击目标。在攻击之前,侵入者为了安装软件,已经控制了装有master程序的计算机和所有装有代理程序的计算机。,2019/4/27,52,4.5.4 实施DDoS攻击的工具,Trinoo DDoS攻击的基本特性 1) 在master程序与代理程序的所有通信中,trinoo都使用了UDP协议。入侵检测软件能够寻找使用UDP协议的数据流(类型17)。 2) Trinoo master程序的监听端口是27655,攻击者一般借助telnet通过TCP连接到master程序所在的计算机。入侵检测软件能够搜索到使用TCP(类型6)并连接到端口27655的数据流。

43、 3) 所有从master程序到代理程序的通信都包含字符串“144”,并且被引导到代理的UDP端口27444。入侵检测软件检查到UDP端口27444的连接,如果有包含字符串“144”的信息也被发送过去,那么接受这个信息包的计算机可能就是DDoS代理。 4) Master和代理之间通信受到口令的保护,但是口令不是以加密格式发送的,因此它可以被“嗅探”到并被检测出来。,2019/4/27,53,4.5.4 实施DDoS攻击的工具,trinoo网络就可以按照如下步骤被拆除: 1) 在代理daemon上使用“strings”命令,将master的IP地址暴露以来。 2) 与所有作为Trinoo mas

44、ter的机器管理者联系,通知它们这一事件。 3) 在master计算机上,识别含有代理IP地址列表的文件,得到这些计算机的IP地址列表。 4) 向代理发送一个伪造“Trinoo”命令来禁止代理。通过crontab文件(在UNIX系统中)的个条目,代理可以有规律地重新启动,因此,代理计算机需要一遍一遍地被关闭,直到代理系统的管理者修复了crontab文件为止。 5) 检查master程序的活动TCP连接,这能显示攻击者与Trinoo master程序之间存在的实时连接。,2019/4/27,54,4.5.4 实施DDoS攻击的工具,2、TFN和TFN2K TFN(Tribe Flood Netw

45、ork)与Trinoo一样,使用一个主控(master)程序与位于多个网络上的攻击代理进行通信。可以由TFN发动的攻击包括:UDP攻击、TCP SYN攻击、ICMP回音请求攻击以及ICMP广播。,2019/4/27,55,4.5.4 实施DDoS攻击的工具,以下是TFN DDoS攻击的基本特性以及相关的抵御策略 1) 发动TFN时,攻击者要通过master程序与所有代理程序通信,指示它们发动攻击。 2) 用于发现系统上TFN代理程序的程序是TD,发现系统上master程序的程序是TFN。TFN代理并不查看ICMP回音应答信息包来自哪里,因此使用伪装ICMP信息包冲刷掉这些过程是可能的。,201

46、9/4/27,56,4.5.4 实施DDoS攻击的工具,TFN2K 特点 1) 在TFN2K下,master与代理之间的通信可以使用许多协议,例如TCP、UDP或ICMP,这使得协议过滤不可能实现。 2) TFN2K能够发送破坏信息包,从而导致系统瘫痪或不稳定。 3) TFN2K伪造IP源地址,让信息包看起来好像是从LAN上的一个邻近机器来的,这样就可以挫败出口过滤和入口过滤。 4) TFN2K非常隐蔽,使得它很难被检测到。因为没有端口号,所以很难探测,即使在正常的基础上使用端口扫描程序也无法探测到用户的系统正被用作TFN2K服务器。目前仍没有能有效防御TFN2K拒绝服务攻击的方法。,2019

47、/4/27,57,4.5.4 实施DDoS攻击的工具,抵御TFN2K方法 1) 只使用应用代理型防火墙,这能够有效地阻止所有的TFN2K通信。但只使用应用代理服务器通常是不切实际的,因此只能尽可能地使用最少的非代理服务。 2) 禁止不必要的ICMP,TCP和UDP通信,特别是对于ICMP数据,可只允许ICMP类型3(Destination Unreachable,目标不可到达)数据包通过。如果不能禁止ICMP协议,那就禁止主动提供或所有的ICMP Echo Reply包。 3) 禁止不在允许端口列表中的所有UDP和TCP包。 4) 配置防火墙过滤所有可能的伪造数据包。 5) 对系统进行补丁和安

48、全配置,以防止攻击者入侵、安装TFN2K。,2019/4/27,58,4.5.4 实施DDoS攻击的工具,3、Stacheldraht Stacheldraht也是基于Trinoo与TFN的客户机服务器模式,Stacheldraht增加了以下新功能:攻击者与master程序之间的通信是加密的,以及使用RCP(remote copy,远程复制)技术对代理程序进行更新。 以下是Stacheldraht DDoS攻击的基本特征以及建议采取的防御措施。 1)在发动Stacheldraht攻击时,攻击者访问master程序,向它发送一个或多个攻击目标的IP地址。master程序再继续与所有代理程序进行通

49、信,指示它们发动攻击。,2019/4/27,59,4.5.4 实施DDoS攻击的工具,2)代理程序要读取一个包含有效master程序的IP地址列表。这个地址列表使用了Blowfish加密程序进行加密。代理会试图与列表上所有的master程序进行联系。如果联系成功,代理程序就会进行一个测试,以确定它被安装到的系统是否会允许它改变“伪造”信息包的源地址。 3) Stacheldraht代理并不检查ICMP回音应答信息包来自哪里,因此就有可能伪造ICMP信息包将其排除。 4) Stacheldraht代理程序与TFN和Trinoo一样,都可以用一个C程序来探测,它的地址是:http:/staff.washington.edu/dittrich/misc/ddos_scan.tar。,

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

当前位置:首页 > 网络科技 > 网络与通信

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报