网络攻击与防御技术
上QQ阅读APP看书,第一时间看更新

1.5 网络攻击的实施过程

一次完整的网络攻击行为根据其生命周期可以分为攻击发起阶段、攻击作用阶段和攻击结果阶段3个过程。

1.5.1 攻击发起阶段

在攻击发起阶段中,攻击者进行攻击前的准备,如确定攻击所针对的操作系统类型、应用平台的类型等,这些系统和应用程序存在哪些可以利用的漏洞等。在众多网络攻击中,绝大多数攻击在发起阶段中,攻击者考虑最多的是选择哪类平台,利用哪种漏洞发起攻击,并以此作为对攻击行为进行有效分析、评估、防范的基础。

1. 平台依赖性

很多攻击都是针对一定范围内的平台发起的,这个平台可能是操作系统平台,也可能是应用平台。例如,2017年5月12日晚在全球爆发的“永恒之蓝”勒索蠕虫就是通过Windows操作平台存在的安全漏洞而传播的,而分别于2003年8月12日在全球爆发的冲击波(Worm.Blaster)蠕虫和2004年5月1日爆发的振荡波(Worm.Sasser)蠕虫可以对Windows 2000和Windows XP两种操作系统平台进行攻击。也有一些攻击是针对特定的操作系统平台而发起的,一般来说是针对某个版本的漏洞而进行的攻击。

还有一些攻击是针对TCP/IP网络体系中的底层协议平台而发起的。例如,针对TCP协议的同步包风暴(SYN Flooding)攻击、针对ICMP、UDP协议的攻击等。只要连接到互联网上的计算机,就需要运行TCP/IP等协议软件,就可能受到这类攻击。

攻击行为对平台依赖性,反映出了攻击可能影响的范围。攻击对平台的依赖性越强,表明该攻击所能够影响的范围越小,反之越大。因此,在攻击的其他条件(如作用点、攻击强度、传播速度等)不变的情况下,能够对多个平台(平台依赖性较弱)发起的攻击,其破坏力要高于那些只对特定平台发起的攻击。根据一个攻击可能影响的范围,可以将平台依赖性分为以下几种类型。

(1)平台依赖性强。针对特定版本(如Windows Server 2012或Windows 10等)或特定内核(在Linux终端输入unmae-a命令即可查看Linux的内核版本号)的操作系统平台、应用平台起作用的攻击,称为对平台依赖性强。一般来说,平台依赖性强的攻击只能影响到个别类型的操作系统或应用系统,涉及的范围一般很小。

(2)平台依赖性中。针对某一品牌或某一品牌中的一个或几个系列的操作系统平台或应用平台起作用的攻击,称为对平台依赖性中(如对Windows系列操作系统、Linux系列操作系统发起的攻击都属于此类)。例如,2003年爆发的冲击波蠕虫就只针对Windows 2000和Windows XP两种版本。这类攻击影响的是一种或一种中几个系列的平台,这些平台应用得越广泛,这类攻击所涉及的范围就越大。

(3)平台依赖性弱。同时针对两种或两种以上的操作系统平台或应用平台起作用的攻击,称为对平台依赖性弱。例如,“永恒之蓝”蠕虫仅仅对Windows操作系统发起攻击,rpcautomounted缓冲区溢出攻击可以对Solaris、HP-UX、SGI IRIX平台发起攻击。这类攻击影响的范围很广。

(4)无平台依赖性。针对任何连接到互联网上的计算机都能够起作用的攻击,称为对平台无依赖性。例如,针对TCP、UDP、DHCP等标准的TCP/IP协议发起的攻击,以及各类DDoS攻击等,只针对具体的协议,利用协议自身存在的漏洞进行攻击,而与平台无关。这类攻击针对的目标最为广泛,涉及面最广,理论上任何连接到互联网上的计算机都可能成为被攻击目标。

2. 漏洞相关性

大部分网络攻击都是利用系统的特定安全漏洞发起的,也有少部分攻击不需要利用漏洞。根据产生原因,将漏洞分为设计方面的原因、实现方面的原因和配置方面的原因三类。此外,还有一些攻击并不是利用漏洞而发起的,如分布式的流量攻击(如DDoS攻击),只要足够多的主机同时不停地向固定的被攻击目标或网络重复发送大量无用的数据包,就可以严重占用网络带宽,导致被攻击系统网络堵塞而无法正常对外提供服务,即产生了拒绝服务的攻击效果。

从对攻击与漏洞相关性的分析可以看出,利用系统设计漏洞或不利用漏洞发起的攻击基本上不受条件约束或受条件的约束性非常弱,那么其表现出来的破坏力和影响力就比较大,而且防御起来一般都非常困难。而对于利用实现漏洞而发起的攻击来说,只要打上相应的补丁,就可以防范相应的攻击。对于利用配置漏洞而发起的攻击,则需要认真分析业务需求和配置之间的关系,正确地配置系统,从而降低系统被攻击的可能性。

从上述的分析可以看出,很多攻击都利用了漏洞,而且利用不同形式漏洞发起攻击的机制也很不相同。因此,正确地了解每一种攻击和漏洞的相关程度,采用有针对性的应对措施,对于有效地防范攻击具有重要的意义。漏洞相关性的判定原则如下。

(1)设计漏洞。在系统设计阶段出现的问题,是系统天生具有的。

(2)实现漏洞。在编码过程中,因为没有遵循严格的安全编码方法或测试不严格而造成的漏洞。

(3)配置漏洞。在使用阶段,因用户配置不当而产生的漏洞。

(4)无。所发起的攻击与漏洞之间没有直接的关系,即使漏洞不存在也照样能够实现攻击目的。

1.5.2 攻击作用阶段

在攻击发起阶段确定了攻击的平台和利用的漏洞后,攻击就进入了作用阶段。在此阶段中,攻击者要选择被攻击者系统的某些资源作为攻击对象,以达到获得某些“利益”的目标,本书称为“作用点”。

人们平常所讲的缓冲区溢出攻击、ARP欺骗、木马、DoS/DDoS、病毒、蠕虫、信息窃取、信息伪造、会话劫持、口令猜测等攻击方式,只是说明了攻击的主要特点,而没有指出攻击的真正作用点。从攻击的角度来看,一般情况下攻击者进入系统后,可以根据攻击策略进一步采取以下攻击方式:在现有作用点的基础上,寻找其他薄弱的点进行攻击,进一步体现攻击的有效性;在攻击有效的前提下,寻找其他关键的点进行攻击,体现攻击后果的严重性;寻找其他可以入侵的作用点,实现攻击作用点的多样化。

攻击的作用点在很大程度上体现了攻击者的目的,且一次攻击可以有多个作用点,即可同时攻击系统的多个“目标”。因此,作用点的选择对攻击有直接的影响,为此,本书将作用点作为攻击作用阶段的主要影响因素。作用点的判定原则如下。

(1)账户:包括系统账户、用户账户等。一般指攻击者对账户的猜测和字典攻击及强力破解等,以便达到其非法进入的目的。另外,还包括安装木马后所创建的后门账户等。

(2)文件系统:指被攻击系统的文件系统。它涉及的攻击主要是修改、删除、增加、获取文件等操作。

(3)进程:指被攻击系统内存空间中运行的进程。它包括操作系统进程及应用进程,涉及的攻击如杀死特定进程、探测进程活动、利用该进程对其他部分进行攻击等。

(4)系统资源与信息:指被攻击者系统的硬件资源(如CPU、内存、硬盘等)、固定信息或相对固定的信息,如涉及系统的硬件资源的参数(CPU数量、内存类型及大小、Cache容量、硬盘类型等)、系统的配置参数(分区类型、注册表信息、硬盘及文件访问的参数等)及软件信息(如系统安装的软件列表、运行要求等)。需要说明的是,这里所指的系统信息与前面介绍的进程、文件系统的信息是有区别的,具体为:系统信息一般是固定不变或相对固定不变的,在每次系统初始化时是基本固定,而文件系统与进程中的信息在其生命周期中是动态变化的。系统信息一般都是通过系统进程来访问固定的区域,如特定的环境变量区、内存和硬盘的固定区域等。而进程和文件系统的实际物理位置随着加载时间的不同是动态变化的。

(5)网络及网络服务:针对网络或网络服务的攻击。它主要包括占用或利用网络资源与服务、影响网络性能和网络服务质量、增加网络流量、探测网络及相关服务的信息、利用网络提供的功能完成其他非法操作等,即对网络本身及服务的正常运行产生不利影响。

1.5.3 攻击结果阶段

攻击结果就是攻击对目标系统所造成的后果,也是被攻击者所能感受到的攻击带来的影响。

1. 攻击结果的具体表现

一般来说,只要了解了以下3个方面的情况,人们对于一种攻击所能带来的后果就可以有比较清晰的认识。

(1)攻击对目标系统的正常运行造成了哪些方面的影响。即攻击者对目标系统的软、硬件资源、其中的信息及所提供的服务造成了哪些影响,如非法收集、破坏、恶意占用、非法使用等。

(2)攻击是否具备传播性。攻击是否会利用当前系统作为跳板继续对其他目标发起新的攻击。

(3)攻击对目标系统各部分的影响程度。攻击对系统各部分可能造成的损害大概在什么水平。

为此,本书将上述3个方面作为攻击结果阶段的3个影响因素,分别称为攻击结果、传播性和破坏强度。

2. 攻击结果

一个应用系统自身的价值主要体现在其所拥有的硬件资源、信息资源(含软件)及对外提供的服务上,那么网络攻击的实质也就表现在对目标系统的硬件资源、信息和服务的非法访问、使用、破坏等。因此,互联网上存在的各类攻击,虽然其实现方式和表现形式可能各不相同,但是最终反映出的结果却是有限的几种。

(1)攻击结果类型。下面从网络攻击对硬件资源、信息资源和服务产生的非法操作等方面,来划分不同的攻击结果。

①对硬件资源的攻击。对目标系统硬件资源的攻击可以表现为对硬件资源的非法操作,如消耗网络带宽、占用存储资源、破坏系统的关键部件(如CMOS)等。但是硬件资源只是信息和服务的载体,如果没有承载对象,硬件资源也就没有相应的价值。网络用户关心的是提供的信息和服务,而不关心这些信息和服务是通过什么硬件来实现的,但硬件是支撑信息和服务的基础,所以从网络攻击的角度来说,对硬件系统的攻击等同于对硬件上承载的信息和服务的攻击。例如,从用户的角度来看,一个攻击对网络带宽的恶意利用可以反映在服务的正常使用受到限制,对硬盘的占用可以看作是篡改信息,CIH病毒对CMOS的修改可以等同于服务的中断等。

②对信息资源的攻击。对目标系统信息资源发起的攻击可以表现为非法获取和破坏两个方面。其中,获取信息就是收集、读取目标系统中攻击者感兴趣的资料。破坏信息就是恶意篡改、删除目标系统中的各种资料,以达到攻击的目的。

③对服务的攻击。对目标系统上运行的服务发起攻击可以表现为对系统中运行的各种服务进行非法的使用和破坏。

(2)网络攻击的判定原则。下面从攻击对资源导致的结果出发,避开各类攻击技术的实现细节,将网络攻击结果的判定原则分为如下几类。

①泄露信息。攻击造成被攻击者的操作系统、应用系统及用户的相关信息的泄露。例如,攻击发起之前对目标的扫描(很多安全防范系统都将扫描也作为一种攻击)会造成信息的泄露,攻击进入后将用户信息对外进行发送,监听网络上的流量等都属于此类。

②篡改信息。攻击者对目标系统的内存、硬盘、其他部分的信息进行非法增、删、改的操作。例如,植入木马的操作会导致系统配置信息的更改和硬盘文件的增加,文件类病毒的侵入会导致相应文件的修改等。

③非法利用服务。利用系统的正常功能,来实现攻击者的其他目的的行为。例如,利用被攻击者的正常网络连接对其他系统进行攻击,通过正常的系统服务利用其他漏洞实现攻击者目的等。

④拒绝服务。使目标系统正常的服务受到影响或系统功能的部分或全部丧失。例如,典型的DoS/DDoS攻击;杀死系统进程使其对外的服务中断;耗尽系统资源中内存使系统崩溃等。

⑤非法提升权限。攻击者利用某种手段或者利用系统的漏洞,获得本不应具有的权限。最为典型的非法提升权限攻击为缓冲区溢出攻击。另外,通过猜测口令、植入木马、预留后门等,也可以使攻击者获得本不应具有的权限。一般来说,权限提升仅是一种手段,后续往往伴随着对目标系统信息资源和服务的非法操作。

3. 传播性

Internet的出现导致了网络攻击的产生,移动互联网的应用催生了大量新的攻击方式,目前的网络攻击在传播方面呈现出越来越明显的主动性、快速性、智能化等特点。毫无疑问,传播性越强的攻击,其攻击面越广、影响力越强、破坏力越大。而且随着连接到Internet上的主机越来越多,尤其是物联网技术的应用、工业控制系统的接入等,这类攻击的影响力已经从局部扩大到国家,甚至到整个互联网。不仅对被攻击目标造成了严重的灾难,而且因为其具有传播性强的特点,对网络本身的运行也造成了严重的影响。先后出现的CodeRed、Nimda、SQL Slammer、“永恒之蓝”等蠕虫对全球互联网造成了严重的灾难。

因此,从分析、判断、防御攻击的角度上讲,传播性是攻击的一个非常重要的特征。特别是从国家角度来讲,正确地了解一个攻击的传播性特点对于及时采取措施,防范可能出现的大规模网络攻击来说是一个必要的前提。对于局域网用户而言,及时了解到攻击的传播性特点对于判断攻击在局域网内的扩散趋势,进而决定采取何种防范措施也是很有帮助的。因此,本书将攻击的传播性作为一个重要影响因素。

通过对大量实例进行分析可以看出,众多网络攻击的传播性有着鲜明的特点。一般来说,早期出现的攻击基本上都不具备传播能力,或者具备较弱的传播能力,且受一些条件限制。而后期出现的攻击则在传播性方面得到了很大的加强,其传播是主动发起行为而不是被动的激活行为。传播性的判定原则如下。

(1)传播性弱。特点是“有条件激活,有条件传播”式,即需要其他条件进行激活,同时传播也不能在现有条件下立刻完成,需要借助其他手段进行。例如,传统的病毒是最为典型的代表。另外,还有一种称为“无传播性”的攻击,它是一对一发起的攻击,传播不是其攻击的目的,不会借被攻击者对其他第三方发起新的攻击。

(2)传播性中。特点是“有条件激活,无条件传播”式,即需要其他条件进行激活,一旦激活后即可在现有条件上立刻完成传播,不再需要其他辅助条件。例如,通过电子邮件系统进行传播的蠕虫,一般来说,需要由用户打开相应的邮件后,才能主动地通过搜索电子邮件地址表进行传播。这类攻击一般都是通过网络实施的。

(3)传播性强。能够不依赖于其他条件自主对外搜索攻击目标并进行有效攻击,同时该传播性可以自主地继续进行下去,无限传播。其特点是“无条件激活,无条件传播”,其典型代表为网络蠕虫。例如,CodeRedⅡ蠕虫就是利用计算机的漏洞主动地对外寻找下一个受害者进行攻击,从而使得攻击在用户毫不知情的情况下进行大规模扩散。

4. 破坏强度

无论从分析、评估、防范哪个角度来看,正确了解网络攻击所造成的破坏程度都是非常有意义的。特别是对于最终用户来说,迫切需要知道如果一种攻击成功实施,会对系统造成什么样的伤害。

如果要较为准确、全面地描述一种攻击所可能造成的破坏,必须满足以下条件:破坏强度的等级(强、中、弱)定义必须明确,根据定义,不同人对相同的攻击能够得出相同或相似的判断结果;定位性强,通过描述,人们可以自行判断一种攻击实际上针对哪些位置进行的;能够适应复杂攻击情况,新型的攻击往往包含多种攻击手法,其攻击目标也不止一个,因此对攻击强度的描述需要同时反映出对多个目标的攻击情况;可扩展性强,该方案可以通过简单扩充来满足新出现攻击的特点,而不会造成结构上的重大调整。

基于以上分析给出对攻击强度的描述方法,即在攻击作用阶段所给出的作用点的基础上,分析攻击对每个作用点可能的破坏程度(本书所指的攻击结果,是指攻击成功实施后的结果)。给出具体的划分准则,具体描述如下。

(1)账户。账户主要指系统账户或用户账户,一旦某种攻击取得了某个账户的使用权,则意味着从此以后,攻击者就相当于系统的合法用户,其行为仅受所取得用户权限的约束而且很难被发现。其破坏力及对系统的影响程度都是非常大的。同样对于木马植入后留下的秘密账户,也相当于系统的合法用户身份。为此,将所有针对账户发起的攻击的破坏强度都定义为“强”。

(2)文件系统。对于文件系统的攻击一般有修改、删除、增加、获取文件的操作,也可以将其归纳为“读”和“写”两类操作。对文件系统进行“写”操作,如修改、删除、增加文件等,或者对需要保密的信息进行解密的,都有可能造成不可恢复性的破坏。将这些攻击行为都定义为“强”。另外,对文件系统进行“读”操作,如查询、访问文件等,一般来说会造成系统信息的外泄,虽然也很严重,但与写操作相比,其影响尚没有达到不可恢复的程度,因此将其攻击强度定义为“中”。

(3)进程。针对进程的攻击也分为两种类型:一类是以破坏进程运行为目的操作,如杀死进程、修改进程资料、修改进程执行顺序(如执行攻击者代码)等,其造成的损失往往是不可恢复性的,因此属于一种破坏性“强”的攻击;另一类是以侦察、获取进程信息为目的操作,或者执行系统自身所有的特定代码,所造成的损失尚没有达到不可恢复的程度,因此属于“中”等强度的攻击行为。

(4)系统资源与信息。对于系统资源与信息的攻击主要是通过固定的系统进程对特定区域的信息进行的读、写操作。对系统资源的攻击主要是对系统资源的消耗、占有等操作。针对系统资源与信息的攻击,其强度也分为“强”和“中”两类。其中,凡是对系统信息进行写操作的攻击及对系统资源进行占有、消耗为目的的攻击,其破坏性都比较“强”;凡是对系统信息进行读操作的攻击,其破坏性属于“中”等强度。需要说明的是,考虑到系统性资源与信息对于信息系统非常重要,对其进行的非法授权操作即使是读操作都可能引起较为严重的问题,因此对系统信息的破坏强度目前没有“弱”这一等级。

(5)网络及网络服务。针对网络及网络服务的攻击,根据其破坏强度可以分为3类:对于自动的、不间断的(指无干预情况下)、攻击范围不针对某一固定区域的、通过网络传播而实施的攻击,一般利用网络对其他节点发起大量的攻击,造成网络资源的大量占用甚至耗尽,使得网络无法正常提供服务,属于一种高“强”度的攻击。另外,虽然不通过网络进行攻击传播,但可能使网络的正常服务中断,也属于一种高“强”度攻击;对于非自动的、有条件的、攻击范围局限于某一区域(如一个局域网)的,通过网络传播而实施的攻击,一般会造成局部网络的功能部分或全部失效,属于“中”等破坏性的攻击。此外,有些攻击会影响到正常的网络服务或关键的网络节点,但还没有使网络服务完全无法进行,其攻击也属于“中”等破坏性的攻击;对于影响范围只局限于被攻击者本身,或者对被攻击者的网络服务影响轻微的(如扫描)攻击,属于破坏性较“弱”的攻击行为。