网络攻防原理与技术(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-19 19:55:55

点击下载

作者:吴礼发,洪征,李华波

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

网络攻防原理与技术

网络攻防原理与技术试读:

前言

本书的第1版于2012年4月出版,至今已4年有余。在这期间,国内外安全形势发生了很大变化,包括中国在内的多数国家都已将网络空间安全上升到国家安全的战略高度,进而大大推动了网络攻防技术的快速发展。因此,第1版中介绍的部分内容已显得陈旧了。另一方面,经过几年的教学实践,对教材相关章节的安排及内容有了新的认识,也希望通过新版教材来体现。

编写教材最难处理的是内容的取舍,特别是网络攻防技术,内容繁多,实践性强。在有限的篇幅中,应当将哪些最重要的内容教给学生呢?经验表明,基本原理是核心。掌握了基本原理以后,既可以为自己编写攻防工具打下坚实的理论基础,也可以更快地掌握、更合理地使用已有的攻防工具和技术。因此,第2版遵循的原则仍然是阐述攻防技术的基本原理。尽管网络攻防领域特别强调实践能力,但本书并不希望将教材写成使用手册。每天都有大量新的攻防工具问世,我们希望给读者介绍这些工具背后所蕴含的关键技术的基本思想。当然,要想真正掌握一门网络攻防技术,只靠学习本书中的材料是远远不够的,还需要读者利用课程实验、大量的课外阅读和实践活动来实现。

与第1版相比,本书的章节修订简要说明如下。

第1章是绪论。本次修订重写了本章。2015年底,国务院学位委员会、教育部批准增设了“网络空间安全”一级学科。本章从网络空间安全一级学科的角度,全面介绍了网络空间安全发展历程和知识体系。目的是使读者在一级学科知识体系的大框架下,对网络攻防技术有一个总体的了解,为后续章节的学习打下基础。

第2章介绍密码学基础知识。考虑到学完如何加密的内容后,再来探讨破解密码的问题更符合认识规律,本次修订将有关密码分析的内容从2.1节“密码学概述”部分独立出来,放在本章的最后,同时增加了密码旁路分析技术、密码算法和协议的工程实现分析技术。

第3章介绍网络侦察技术。本次修订主要增加了近几年发展较快的以因特网上的设备为搜索对象的搜索引擎——Shodan的介绍。

第4章介绍网络扫描技术,主要对原有内容进行了更新与补充。

第5章介绍拒绝服务攻击。本章进行了比较大的修订,主要加强了近几年流行的反射式拒绝服务攻击方法和新型拒绝服务攻击防御技术的介绍,缩减了已较少使用的拒绝服务攻击方式的篇幅。

第6章介绍特洛伊木马。近年来,木马取代了传统的计算机病毒成为恶意代码的主要形式,是黑客最常利用的攻击手段。同时,木马、病毒和蠕虫等恶意代码之间的界限逐渐模糊,采用的技术和方法也呈多样化、集成化。因此,本次修订将第1版的第6章“计算机病毒”和第7章“特洛伊木马”合并为一章,以介绍木马为主,同时对木马涉及的相关技术进行了修订,以体现最新的技术状态。

第7章介绍口令攻击技术。操作系统、网络应用等的用户口令破解与防御是网络攻防对抗中的重要一环,因此,此次修订增加了口令攻击技术,主要介绍口令认证概述、操作系统口令破解、网络应用口令破解、常用文档口令破解和口令防御技术。

第8章介绍网络监听技术。此次修订重写了本章。首先按网络监听涉及的两个步骤(流量劫持、数据采集与分析)对第1版的章节安排进行了调整,其次增加了一些新的流量劫持技术、数据采集与解析技术原理的介绍。

第9章介绍缓冲区溢出攻击,第10章介绍Web网站攻击技术。此次修订主要对这两章的相关内容进行了更新,以反映最新的技术现状。

从第11章开始主要介绍典型的网络防护技术。第11章介绍信息认证技术,第12章介绍访问控制技术,第13章介绍防火墙的基本概念、工作原理、体系结构、评价标准和使用方法等,第14章介绍入侵检测技术。在此次修订中,对这些章节的相关内容进行了增加、删除或相应的改动。

最后,此次修订在每章(第1章除外)增加了与章节内容相匹配的实验项目,给出了每个实验的实验目的、实验内容及要求、实验环境等基本要素,供授课教师布置实验时参考。

本书可作为网络工程、信息安全及计算机等专业的教材,参考理论时数为40~50学时,实验时数为20~30学时。学习本门课程之前,读者最好已了解或掌握了有关计算机网络、操作系统或C程序设计等课程的内容。因此,建议在大学四年级或研究生阶段开设本课程。本书也可作为相关领域的研究人员、工程技术人员,以及广大网络攻防技术爱好者的参考书。

本书在编写过程中得到了作者所在课程建设小组其他成员(刘军教授、赖海光副教授、周海刚副教授、黄康宇讲师、周振吉博士)的大力支持,这里表示诚挚的感谢。

由于网络攻防涉及的内容广、更新快,加之作者水平有限,书中难免存在各种缺点和错误,敬请广大读者批评指正。

编者第1章 绪论

本章从网络空间安全的角度,全面介绍了网络空间安全的发展历程、知识体系、安全防护技术概览和攻击技术概览。目的是使读者在网络空间安全学科知识体系的大框架下,对网络攻防技术有一个总体了解,为后续章节的学习打下基础。1.1 网络空间安全概述

近年来,新服务的发展、通信量的上升和信息技术的进步这三股来自不同维度的力量不断推动着计算机网络向前发展。日益增长的网络应用需求催生了各种各样的新型网络服务,而新服务的实现对网络技术提出了新的要求。为了应对日益增长的网络流量,特别是多媒体流量的快速增长,各种新的网络传输技术相继出现,进一步促进了网络技术,尤其是移动传输技术的飞速发展。而信息技术的发展,特别是计算机技术和通信技术的发展,更是对网络的发展起到了非常大的促进作用。技术的发展进一步促进了网络在世界范围内的广泛应用,如同水电一样,网络已成为人们的日常生活不可或缺的部分。

人们在享受网络带来的种种好处时,也不得不面对它所带来的问题。长久以来,网络攻击一直呈指数级增长,成千上万的网络安全事件每天都在发生,小到普通民众、商业公司,大到军队、国家,无一例外均受到了不同程度的影响。网络安全在国家安全中的地位越来越重要,国家政治、经济、文化和军事等领域受网络的影响日益增强,世界各国纷纷将网络安全提升到国家安全的战略高度。

同时,随着信息时代的到来,战争的形式也在发生着深刻的变化,现代战争已成为信息的战争。信息是战略资源、决策资源,毫不夸张地说,它就是武器系统的核心,更是战场的灵魂。而网络作为敌对双方借以获取信息优势的制高点,与之相关的攻击与防护已成为军队作战的新模式,随着世界各国相继建立并大力发展网络战部队,网络战时代已经到来。

网络战是为干扰、破坏敌方网络信息系统并保证己方网络信息系统正常运行而采取的一系列网络攻防行动。网络战正在成为高技术战争的一种日益重要的作战样式,它能够破坏敌方的指挥控制、情报信息和防空等军用网络系统,甚至可以悄无声息地破坏、瘫痪和控制敌方的商务、政务等民用网络系统,不战而屈人之兵。

网络战的出现意味着国家级力量开始大力介入网络安全领域,也将网络攻防对抗提升到了一个新的高度,对抗的层次、水平和影响力均已远远超越以前的黑客攻击。例如,2010年9月发生的震网病毒攻击伊朗核电站事件,2013年斯诺登曝光的美国系列网络监控丑闻等,都对世界各国的网络安全领域带来了深远的影响。

网络安全形势千变万化,网络安全的内涵和外延随着技术的进步也在不断地丰富和拓展。

在计算机产生之前,网络安全主要是指通信安全,重点关注的是信息加密(信息的保密性)。计算机产生后,需要考虑计算机系统的安全,如保障计算机系统自身的完整性。计算机网络产生后,“网络安全”中的“网络”主要是指计算机网络,包括计算机网络系统的硬件、软件,以及在网络中存储、传输和处理的数据。网络安全是指保护计算机网络不因偶然或恶意因素的影响而遭到破坏、更改或泄露,系统连续、可靠、正常地运行,网络服务不中断。

随着网络和通信技术的进一步发展,传统的以语音业务为主的“电信网络”,以及以视频业务为主的“有线电视网络”,在消除了政策上的障碍后,实现了基于IP的深度融合,即所谓的“三网融合”。网络安全领域也从计算机网络延伸到了电信网络和有线电视网络。

近几年来,网络安全进一步向物理世界和虚拟世界延伸,包括与国家基础设施密切相关的工业控制网络或系统(如电力网络、交通控制网络、城市供水网络、石油天然气网络和核电控制系统等)、虚拟的社交网络等,网络安全上升到了“网络空间安全”。目前,“网络空间”这一术语被广泛用于中、美等多国战略报告、论文和媒体报道中。网络空间也被称为与海、陆、空、太空并列的第五空间。

时至今日,国内外有关“网络空间”的定义还不统一,其内涵也在发展的过程中不断完善,下面对此做一个简要介绍。[1]

美国最早使用Cyberspace 一词来描述与信息和网络有关的物理和虚拟空间。国内对Cy-berspace的翻译很多,比较典型的有:电磁空间、电子空间、网络空间、网际空间、虚拟空间、控域、网络电磁空间和赛博空间等,对其内涵的解读在学术界和工业界也呈百家争鸣的状态。接受度比较广的两种译法是“网络空间”和“赛博空间”,其中后者是音译。2015年6月国务院学位办批准设立“网络空间安全”一级学科,采用的是“网络空间”这一名词。因而本书也采用“网络空间”的译法。

美国国家安全部门和美军对Cyberspace的理解也不完全一致,并且随着时间的推移,对其内涵的解读也在不断变化。据不完全统计,Cyberspace有近30种正式定义,此外还有各种各样的个人解释。自2004年以来,美国政府先后推出了4种不同的官方定义。这些定义的基本思路相同,但侧重点略有区别。

2001年初,美国国防部的“官方词典”——联合出版物JP1-02将Cyberspace定义为数字化信息在计算机网络中通信时的一种抽象(notional)环境。这个定义虽很简洁,但比较模糊,看不出确切的含义。

2003年2月,布什政府发布了《保卫Cyberspace的国家安全战略》,其中将Cyberspace比喻为“国家中枢神经系统”,由成千上万的计算机、服务器、路由器和交换机用光纤互联在一起,支持关键的基础设施运行。这个定义除具体地列举了网络空间的组成外,还指出了计算机网络在国家、社会、政治、经济和军事上举足轻重的作用。

2006年12月,美国参联会主席签署了《Cyberspace行动的国家军事战略》,并将Cyber-space定义为“域”(domain),其特征是:使用电子技术和电磁频谱存储、修改和交换信息,并通过网络化的信息系统和物理基础设施达到此目的。该定义主要强调支撑Cyberspace的技术基础:电子技术和电磁频谱。

2008年1月,布什签署了两份与网络安全(cyber security)相关的文件:第54号国家安全政策指令和第23号国土安全总统指令(NSPD-54/HSPD23),其中对Cyberspace的定义是:“网络空间是由众多相互依赖的信息技术(IT)基础设施网络组成,包括因特网、电信网、计算机系统和用于关键工业部门的嵌入式处理器、控制器。还涉及人与人之间相互影响的虚拟信息环境”。这个定义首次明确指出Cyberspace的范围不限于因特网或计算机网络,还包括各种军事网络和工业网络。

2008年5月,美国防部常务副部长戈登签署了一份备忘录,对上述的Cyberspace定义作了一些修订,删去了“关键工业部门”等字样,认为Cyberspace是全球信息环境中的一个领域,它由众多相互依存的IT基础设施网络组成,包括因特网、电信网、计算机网和嵌入式处理器、控制器。考虑到信息领域快速演变的特点,Cyberspace的定义有可能会被进一步修订,备忘录建议在未得到进一步的通知之前,军方沿用这一定义。到目前为止,美国国防部或参联会没有发布新的定义。

2009年4月,美国国防大学根据美国国防部负责政策的副部长的指示,组织专家学者编写出版《Cyberpower和国家安全》一书,书中对Cyberspace的定义做了全面的解读:①它是一个可运作的(operational)空间领域,虽然是人造的,但不是某一个组织或个人所能控制的,在这个空间中有全人类的宝贵战略资源,不仅仅是用于作战,还可用于政治、经济和外交等活动,例如在这个空间中虽然没有一枚硬币流动,但每天都有成千上万美元的交易;②与陆、海、空、天等物理空间相比,人类依赖电子技术和电磁频谱等手段才能进入Cyber-space,才能更好地开发和利用该空间资源,正如人类需要借助车、船、飞机或飞船才能进入陆、海、空、天物理空间一样;③开发Cyberspace的目的是创建、存储、修改、交换和利用信息,Cyberspace中如果没有信息的流通,就好比电网中没有电流,公路网上没有汽车一样,虽然信息的流动是不可见的,但信息交换的效果是不言自明的;④构建Cyberspace的物质基础是网络化的、基于信息通信技术(ICT)的基础设施,包括联网的各种信息系统和信息设备,所以网络化是Cyberspace的基本特征和必要前提。

以上是美国政府安全部门和军队对Cyberspace的理解,美国民间对Cyberspace的理解也不尽相同。有人认为它是由计算机网、信息系统和电信基础设施共同构建的、无时空连续特征的信息环境;有人认为它是因特网和万维网(WWW)的代名词;但更多的人认为Cyber-space不限于计算机网络,还应包括蜂窝移动通信、天基信息系统等。有人认为Cyberspace是一种隐喻(metaphor),是概念上的虚拟信息空间;有人认为这个空间是社会交互作用的产物,包括从认知到信息再到物理设施三个层次。还有人强调Cyberspace和陆、海、空、天等物理空间的根本区别是:前者是非动力学(non-kinetic)系统,而后者是动力学(kinet-ic)系统。

牛津字典对“网络空间”的定义是:网络空间是通过计算机和全球因特网进行通信、控制和信息交换的虚拟空间。

国内对网络空间的定义也没有完全统一。著名网络安全专家方滨兴院士给出的定义是:“网络空间是人运用信息通信技术系统进行数据交互的虚拟空间。其中,“信息通信技术系统”包括各类因特网、电信网、广电网、物联网、在线社交网络、计算系统、通信系统和控制系统等电磁或数字信息处理设施;“数据交互”是指网民运用电磁或数字信息等形式所进行的信息通信技术活动”。它包含三个要素。(1)载体:信息通信系统(包括各类因特网、电信网、广电网、物联网、在线社交网络、计算系统、通信系统和控制系统等,以及电子或数字信息处理设备等)。(2)主体:网民、用户。(3)规则:构造一个集合,用规则管理起来,称为“网络空间”。

上文介绍了“网络空间”这一重要概念,下面来讨论“网络空间安全(Cyberspace Se-curity,简称Cybersecurty)”。

网络空间安全涉及网络空间中电磁设备、电子信息系统、运行数据和系统应用中所存在的安全问题,既要防止、保护并处置“信息通信技术系统”及其所承载的数据受到损害,也要应对这些信息通信技术系统所引发的政治安全、经济安全、文化安全、社会安全与国防安全。针对上述风险,需要采取法律、管理、技术和自律等综合手段来应对,确保机密性、可用性、可控性得到保障。

网络空间安全主要研究网络空间中的安全威胁和防护问题,包括基础设施、信息系统的安全和可信,以及相关信息的保密性、完整性、可用性、真实性和可控性等相关理论和技术。从层次角度来看,网络空间安全主要包含四个层次的安全,从低到高分别如下。(1)设备层安全:在网络空间中信息系统设备所面对的安全问题,主要包括:物理安全、辐射泄密、电子对抗、移动终端安全和硬件可靠等。(2)系统层安全:在网络空间中信息系统自身所面对的安全问题,主要包括:运行安全、网络窃密、网络对抗、计算安全、传输安全、无线信道安全和软件安全等。(3)数据层安全:在网络空间中处理数据时所带来的安全问题,主要包括:数据安全、密码破解、情报对抗、数据可信、数据保护和数据通信安全等。(4)应用层安全:在信息应用过程中出现的安全问题,主要包括:内容安全、信息发掘、传播对抗、隐私保护、控制安全和身份安全等。

网络空间安全涉及的理论与技术众多,2015年教育部“网络安全一级学科论证工作组”给出的网络空间安全知识体系主要包括网络空间安全基础理论、密码学基础知识、系统安全理论与技术、网络安全理论与技术,以及应用安全技术等五大类,如图1-1所示。

网络空间安全基础理论是支撑网络空间安全一级学科的基础,为网络空间安全其他研究方向提供理论基础、技术架构和方法学指导。主要内容包括:网络空间安全数学理论、网络空间安全体系结构、网络空间安全博弈理论、网络空间安全治理与策略、网络空间安全标准与评测,以及网络空间中人的安全行为与管理。

密码学基础主要研究在有敌手的环境下,如何实现计算、通信和网络的信息编码和分析。密码学为系统、网络及应用安全提供密码机制。主要内容包括:对称密码设计与分析、公钥密码设计与分析、安全协议设计与分析、侧信道分析与防护,以及量子密码和新型密码。

系统安全理论与技术主要研究网络空间环境下计算单元(端系统)的安全,是网络空间安全的基础单元。主要研究内容包括:芯片安全、系统硬件与物理环境安全、系统软件安全、恶意代码分析与防护、可信计算,以及先进计算安全等。

网络安全理论与技术是网络空间可靠、通信安全的保障。主要内容包括:通信基础设施与物理环境安全、因特网基础设施安全、网络安全管理、网络安全防护与主动防御(含攻防与对抗),以及端到端的安全通信。图1-1 网络空间安全理论与技术

应用是指网络空间中建立在因特网之上的应用和服务系统,如国家重要行业应用、社交网络等。应用安全研究各种安全机制在一个复杂系统中的综合应用。主要内容包括:关键应用系统安全、物联网与工控安全、社会网络安全、信息内容安全,以及数据安全与隐私保护。

当然,随着网络安全新理论、新技术的不断出现,网络空间安全涉及的理论和技术也将不断更新。

本书主要介绍的是网络安全理论与技术中的“网络攻防与对抗”“身份认证、访问控制”“计算机网络安全”,以及“密码学基础知识”中最基本的密码学知识。攻防的对象主要是计算机网络。1.2 网络安全防护1.2.1 网络安全属性

如前所述,网络安全防护主要是保护计算机网络系统的硬件、软件以及在网络中存储、传输和处理的数据不因偶然或恶意因素的影响而遭到破坏、更改或泄露,系统连续、可靠、正常地运行,网络服务不中断。

信息、网络或系统是否安全,主要通过安全属性来评估,主要包括以下几个。(1)保密性(Confidentiality或Security)。对信息资源开放范围的控制,不让不应知晓的人知道秘密。保密性的保护措施主要包括:信息加密、解密;对信息划分密级,对用户分配不同权限,对不同权限的用户访问的对象进行访问控制;防止硬件辐射泄露、网络截获和窃听等。(2)完整性(Integrity)。完整性包括系统完整性和数据完整性。系统完整性是指系统不被非授权地使用;数据完整性是使信息保持完整、真实或未受损状态,任何篡改、伪造信息应用特性或状态等的行为都会破坏信息的完整性。完整性的保护措施主要包括:严格控制对系统中数据的写访问,只允许被许可的当事人进行更改。(3)可用性(Availability)。可用性意味着资源只能由合法的当事人使用,保证合法用户对信息的合法利用。可用性的保护措施主要有:在坚持严格的访问控制机制的条件下,为用户提供方便和快速的访问接口,提供安全性的访问工具。(4)不可否认性(Non-repudiation)或不可抵赖性。不可否认性是指通信双方在通信过程中,对于自己所发送或接收的消息不可抵赖。也就是说,数据的收、发双方都不能伪造收、发数据的证明:信息的发送者无法否认已发出的信息,信息的接收者无法否认已经接收的信息。不可否认性的保护措施主要包括:数字签名、可信第三方认证技术等。

也有文献将可靠性(Reliability)和可信性(Dependability或Trusty)作为安全属性的一部分。

网络攻击的实施破坏了网络或信息系统的安全属性,而网络防护技术则是保护上述安全属性不被破坏。1.2.2 网络安全威胁

我们将所有影响网络正常运行的因素称为网络安全威胁,从这个角度讲,网络安全威胁既包括环境和灾害因素,也包括人为因素和系统自身的因素。

1.环境和灾害因素

网络设备所处环境的温度、湿度、供电、静电、灰尘、强电磁场和电磁脉冲等,自然灾害中的火灾、水灾、地震和雷电等,均有可能破坏数据、影响网络系统的正常工作。目前,针对这些非人为的环境和灾害因素已有较好的应对策略。

2.人为因素

多数网络安全事件是由于人员的疏忽或黑客的主动攻击造成的,这就是人为因素,具体包括以下两种。(1)有意:人为主动的恶意攻击、违纪、违法和犯罪等。(2)无意:因工作疏忽而造成失误(配置不当等),对网络系统造成不良影响。

网络安全防护技术主要针对此类网络安全威胁进行防护。

3.系统自身因素

系统自身因素是指网络中的计算机系统或网络设备由于自身的原因引发的网络安全风险,主要包括以下几种。(1)计算机硬件系统的故障。(2)各类计算机软件故障或安全缺陷,包括系统软件(如操作系统)、支撑软件(各种中间件、数据库管理系统等)和应用软件的故障或缺陷。(3)网络和通信协议自身的缺陷,将在1.3.1节详细分析因特网协议的安全问题。

系统自身的脆弱和不足(或称为“安全漏洞”)是造成信息系统安全问题的内部根源,攻击者正是利用系统的脆弱性使各种威胁变成现实危害的。

一般来说,在系统的设计和开发过程中有很多因素会导致系统、软件漏洞,主要包括以下几种。(1)系统基础设计错误导致漏洞。例如,因特网在设计时未考虑认证机制,使得假冒IP地址很容易。(2)编码错误导致漏洞。例如,缓冲区溢出、格式化字符串漏洞和脚本漏洞等都是由于在编程实现时没有实施严格的安全检查而产生的漏洞。(3)安全策略实施错误导致漏洞。例如,在设计访问控制策略时,若不对每一处访问都进行访问控制检查,则会导致漏洞。(4)实施安全策略对象歧义导致漏洞。即实施安全策略时,处理的对象和最终操作处理的对象不一致,如IE浏览器的解码漏洞。(5)系统开发人员刻意留下的后门。一些后门是开发人员为调试而保留的,而另一些则是开发人员为后期非法控制而设置的。这些后门一旦被攻击者获悉,将严重威胁系统的安全。

除了上述设计实现过程中产生的系统安全漏洞外,不正确的安全配置也会导致安全事故,如短口令、开放Guest用户和安全策略配置不当等。

尽管人们越来越意识到安全漏洞对网络安全所造成的严重威胁,并采取多种措施来避免安全漏洞的出现,但因特网上每天都在发布新的安全漏洞公告,漏洞不仅存在,而且层出不穷,原因主要有以下几点。(1)方案的设计可能存在缺陷。(2)从理论上证明一个程序的正确性是非常困难的。(3)一些产品测试不足,便匆匆投入市场。(4)为了缩短研制时间,厂商常常将安全性置于次要地位。(5)系统中运行的应用程序越来越多,相应的漏洞也就不可避免地增多。

为了降低安全漏洞对网络安全造成的威胁,目前一般的处理措施是通过打补丁来试图消除安全漏洞。但是,打补丁并不是万能的,主要原因如下。(1)由于漏洞太多,相应的补丁也太多,补不胜补。(2)有的补丁会使得某些已有的功能不能使用,导致拒绝服务。(3)有时补丁并非厂商们所宣称的那样可以解决问题。(4)很多补丁一经打上,就不能卸载,如果发现补丁因为这样或那样的原因不合适,就只好把整个软件卸载,然后重新安装,非常麻烦。(5)漏洞的发现到补丁的发布有一段时间差,此外,漏洞也可能被某些人发现而未被公开,这样就没有相应的补丁可用。(6)网络容量、网站数量增长太快,没有足够多的合格补丁管理员。(7)打补丁有时需要离线操作,这就意味着关闭该计算机上的服务,这对很多关键的服务(如工业控制系统)来说也许是致命的。(8)有时补丁并非总是可以获得的,特别是对于那些应用范围不广的系统而言,生产厂商可能没有足够的时间、精力和动机去开发补丁程序。(9)除了利用补丁解决已有问题之外,厂商可能在补丁中添加了很多其他功能,这些额外的功能可能导致新漏洞的出现、性能下降、服务中断,或者出现集成问题和安全功能的暂时中断等。(10)补丁的成熟也需要一个过程,仓促形成的补丁常常会有这样或那样的问题,甚至还会带来新的安全漏洞。(11)自动安装补丁也有问题,很多自动安装程序不能正常运行。

网络对抗研究领域中一个最基础的研究方向就是漏洞挖掘,即通过测试、逆向分析等方法发现系统或软件中存在的未知安全漏洞,在其安全补丁发布之前开发出相应的攻击程序,并大规模应用。对于已发布补丁的软件,也可以通过补丁比较技术发现补丁所针对的安全漏洞的细节,以最短的时间开发出利用程序,在用户还没来得及打上补丁之前实施攻击。在这种情况下,补丁反而为攻击者提供了有用的信息。

总之,威胁网络安全的因素有很多,但最根本的原因是系统自身存在安全漏洞,从而给了攻击者可乘之机。1.2.3 网络安全防护体系

要保障网络安全,必须将组织管理体系、技术标准体系和技术防护体系三个方面有机结合起来。组织管理体系包括:组织机构、人员编制、职责分工和教育培训。技术标准体系包括:行政法规、技术标准与规范。技术防护体系包括:物理安全防护、电磁安全防护、信息安全防护(包括网络、计算环境、基础设施和应用系统的安全防护技术,如入侵检测技术、防火墙、安全评估技术、信息认证技术、访问控制技术、加解密技术和安全态势感知技术等)。

安全保密技术与安全保密制度相辅相成,互相促进,互相制约:如果安全制度的制定和执行不到位,再严密的安全保障措施也是形同虚设;安全技术不到位,就会使得安全保密措施不完整,任何疏忽都会造成失泄密的后果;安全教育和培训不到位,网络安全相关人员就不能很好地理解、执行各项规章制度,正确使用各种安全防护技术和工具。

在构建网络安全防护体系时,要注意遵循以下原则。(1)水桶原则。攻击针对薄弱环节;安全机制和服务设计的首要目的是防御最常见的攻击,通过提高整个系统的“安全最低点”的安全性来提高整个网络的安全性能。(2)整体性原则。充分考虑各种安全配套措施的整体一致性,避免顾此失彼。(3)均衡性原则。绝对安全难以达到,也不一定必要,所以需要建立合理的实用安全性与用户需求评价和平衡体系;正确处理需求、风险与代价的关系。(4)等级性原则。等级是指安全层次和安全级别:包括信息保密程序分级、对用户操作权限分级、对网络安全程度分级(安全子网和安全区域)和对系统实现结构的分级(应用层、网络层和链路层等),从而针对不同级别的安全对象提供合适的、可选的安全解决方案。(5)一致性原则。安全体系的设计必须遵循一系列标准,以确保各个分系统的一致性。(6)易操作性原则。安全措施如果太复杂,不易设置和操作,使用时就很容易出错,反而更不安全。(7)技术与管理相结合原则。仅有安全技术是不够的,还需要有配套的安全管理措施,它们相辅相成,互相促进,互相制约。(8)统筹规划、分步实施原则。设计安全防护体系时,首先要有完整的解决方案,然后考虑时间和成本,分阶段逐步实施。在实施过程中,还需对最开始的方案进行修正。(9)动态发展原则。安全技术和安全状态并非一成不变,而是动态变化的,因此,构建安全防护体系时,应根据形势的变化进行动态调整。

总之,网络安全不仅仅是一个技术问题或管理问题,而是一个系统工程,一定要坚持以组织管理为保障,技术标准为指南,防护技术为手段,三位一体,才能提高安全防护水平。1.2.4 网络安全防护技术的发展过程

一般认为,网络安全防护技术的发展主要经历了三个阶段。

第一代安全技术,以“保护”为目的,划分明确的网络边界,利用各种保护和隔离手段,如用户鉴别和授权、访问控制、可信计算基(Trusted Computing Base,TCB)、多级安全、权限管理和信息加解密等,试图在网络边界上阻止非法入侵,从而达到确保信息安全的目的。第一代安全技术解决了许多安全问题。但并不是在所有情况下都能清楚地划分并控制边界,保护措施也并不是在所有情况下都有效。因此,第一代安全技术并不能全面保护信息系统的安全,于是出现了第二代安全技术。

第二代安全技术,以“保障”为目的,以检测技术为核心,以恢复技术为后盾,融合了保护、检测、响应和恢复四大类技术,包括:防火墙(Firewall)、入侵检测系统(Intru-sion Detect System,IDS)、虚拟专用网(Virtual Private Network,VPN)和公钥基础设施(Public Key Infrastructure,PKI)等。第二代安全技术也称为信息保障技术,目前已经得到了广泛应用。

信息保障技术的基本假设是:如果挡不住敌人,至少要能发现敌人或敌人的破坏。例如,能够发现系统死机、网络扫描,发现网络流量异常等。针对发现的安全威胁,采取相应的响应措施,从而保证系统的安全。在信息保障技术中,所有的响应甚至恢复都依赖于检测结论,检测系统的性能是信息保障技术中最为关键的部分。因此,信息保障技术遇到的挑战是:检测系统能否检测到全部的攻击?但是,几乎所有的人都认为,检测系统要发现全部攻击是不可能的,准确区分正确数据和攻击数据是不可能的,准确区分正常系统和有木马的系统是不可能的,准确区分有漏洞的系统和没有漏洞的系统也是不可能的。因此,出现了第三代安全技术。

第三代安全技术,以“顽存(Survivable,也称为可生存、生存等)”为目的,即系统在遭受攻击、故障和意外事故的情况下,在一定时间内仍然具有继续执行全部或关键使命的能力。第三代安全技术与前两代安全技术的最重要区别在于设计理念:不可能完全正确地检测和阻止对系统的入侵行为。第三代安全技术的核心是入侵容忍技术(或称攻击容忍技术)。容忍攻击的含义是:在攻击者到达系统,甚至控制了部分子系统时,系统不能丧失其应有的保密性、完整性、真实性、可用性和不可否认性。增强信息系统的顽存性对于在网络战中防御敌人的攻击具有重要意义。

近几年来,虽然网络安全领域取得了很多研究成果,网络安全防护措施也在不断完善,但网络安全依然面临着巨大的挑战,这些挑战主要体现在以下四个方面。(1)通用计算设备的计算能力越来越强带来的挑战。

当前的信息安全技术特别是密码技术与计算技术密切相关,其安全性本质上是计算安全性,但是,当前通用计算设备的计算能力不断增强,对很多方面的安全性带来了巨大挑战。例如,DNA软件系统可以联合、协调多个空闲的普通计算机,对文件加密口令和密钥进行穷搜,已经能够以正常的代价成功实施多类攻击;又如,量子计算机的不断发展对主要依赖数论的公钥密码算法带来了挑战,而新型的替代密码算法尚不成熟。(2)计算环境日益复杂多样带来的挑战。

随着网络高速化、无线化、移动化和设备小型化的发展,信息安全的计算环境可能附加越来越多的制约,这往往约束了常用方法的实施,而实用化的新方法往往又受到质疑。例如,传感器网络由于其潜在的军事用途,常常需要比较高的安全性,但是,由于结点的计算能力、功耗和尺寸均受到制约,因此难以实施通用的安全方法。当前,所谓轻量级密码的研究正在试图寻找安全和计算环境之间合理的平衡手段,但其尚有待于发展。(3)信息技术发展本身带来的问题。

信息技术在给人们带来方便和信息共享的同时,也带来了安全问题,如密码分析者大量利用了信息技术本身提供的计算和决策方法实施破解,网络攻击者利用网络技术本身编写大量的攻击工具、病毒和垃圾邮件;由于信息技术带来的信息共享、复制和传播能力,造成了当前难以对数字版权进行管理的局面。(4)网络与系统攻击的复杂性和动态性仍较难把握。

信息安全技术发展到今天,网络与系统安全理论研究仍然处于相对困难的状态,这些理论很难刻画网络与系统攻击行为的复杂性和动态性,直接造成了防护方法主要依靠经验的局面,“道高一尺、魔高一丈”的情况时常发生。

为了应对上述挑战,网络安全防护技术的发展将向可信化、网络化、集成化和可视化方向发展。(1)可信化。

从传统计算机安全理念过渡到以可信计算理念为核心的计算机安全,并以此为基础来构建网络信任环境。人们开始试图利用可信计算的理念来解决计算机安全问题,其主要思想是在硬件平台上引入安全芯片,从而将部分或整个计算平台变为“可信”的计算平台。很多问题需要研究和探索,如可信计算模块、平台、软件和应用(可信计算机、可信PDA、核高机)等。(2)网络化。

网络类型和应用的不断变化为信息安全带来了新的问题,它们显然会进一步引发安全理论和技术的创新发展。近几年来,无线网络发展很快,从传统的无线网络到现在的传感器网络,以及IP化的卫星网络,无不影响着网络安全技术的发展。各种应用的网络化对网络安全提出了越来越高的需求,也在不断促进网络安全技术的发展。云计算就是一个典型的代表。

云计算是随着网络技术高速发展而产生的技术制高点,已经对人们的工作方式和商业模式带来根本性的改变。同时,云计算模式也带来了大量新的安全问题。(3)集成化。

从推出的信息安全产品和系统来看,它们越来越多地从单一功能向多种功能合一的方向发展。不同安全产品之间也加强了合作与联动,形成合力,共同构建安全的网络安全环境。(4)可视化。

随着网络流量、网络安全事件和网络应用的快速增长,将海量的网络安全态势信息以易懂的图形化形式呈现出来显得非常必要。可视化不是简单地将数据图形化呈现,不是日志信息的简单分类和归集,而是深度挖掘这些原始素材背后的内在关联,以全局视角帮助网络管理者看清各种威胁,看清攻击事件的全貌,帮助了解攻击者的真正意图和目标。1.3 网络攻击技术1.3.1 TCP/IP协议族的安全性

本书介绍的网络攻击技术主要针对以TCP/IP协议族为基础的计算机网络,很多攻击技术的实施需要直接或间接利用TCP/IP协议族中相关协议的脆弱性,因此,本节首先对这些主要协议存在的安全问题做一个简要介绍。

1.因特网体系结构[2]

因特网体系结构,即TCP/IP 体系结构,共有4个层次,如图1-2所示。由于TCP/IP在设计时考虑到要与具体的物理传输媒体无关,因此在TCP/IP的标准中并没有对OSI/RM(Open System Interconnection/Reference Model)体系结构中的数据链路层和物理层做出规定,而只是将最低的一层取名为网络接口层。这样,如果不考虑没有多少内容的网络接口层,那么TCP/IP体系实际上就只有3个层次:应用层、运输层和网际层。

TCP/IP的最高层是应用层。在这层中有许多著名协议,如超文本传送协议HTTP、文件传送协议FTP、简单邮件传送协议SMTP和简单网络管理协议SNMP等。图1-2 TCP/IP体系结构

再往下的一层是TCP/IP的运输层(或传输层)。这一层包括两个重要的协议,一个是面向连接的传输控制协议TCP(Transmission Control Protocol),另一个是无连接的用户数据报协议UDP(User Datagram Protocol)。

运输层下面是TCP/IP的网际层,其主要协议就是无连接的网际协议IP(Internet Proto-col),有两个主要版本IPv4和IPv6。与网际协议IP配合使用的还有4个协议,这就是Inter-net控制报文协议ICMP(Internet Control Message Protocol)、Internet组管理协议IGMP(Inter-net Group Management Protocol)、地址解析协议ARP(Address Resolution Protocol)和逆地址解析协议RARP(Reverse Address Resolution Protocol)。与IP协议一样,ICMP协议也有两个主要版本ICMPv4和ICMPv6。由于目前因特网上的网际协议仍以IPv4协议为主,也就是通常所称的IP协议,因此,如果不做特别说明,谈到IP协议时指的都是IPv4。

因特网的设计初衷是在各科研机构间共享资源,因此尽可能地开放以方便计算机间的互联和资源共享,对安全性考虑较少,导致其存在一些固有的安全缺陷,即具有一些容易被攻击者利用的特性。从整体设计上讲,一般认为,因特网的以下几个特性易被攻击者利用。(1)分组交换。

因特网是基于分组交换的,这使得它比电信网(采用电路交换)更容易受攻击,主要表现在:所有用户共享所有资源,给予一个用户的服务会受到其他用户的影响;攻击数据包在被判断为是否恶意之前都会被转发到受害者;路由分散决策,流量无序等。(2)认证与可追踪性。

因特网没有认证机制,任何一个终端接入后即可访问全网(而电信网则不是,它有UNI、NNI接口之分),这将导致一个严重的问题,即IP欺骗:攻击者可以伪造数据包中任何区域的内容,然后发送数据包到因特网中。

通常情况下,路由器不具备数据追踪功能,因此很难验证一个数据包是否来自其所声称的地方。通过IP欺骗隐藏来源,攻击者就可以发起攻击而无须担心对由此造成的损失负责。(3)尽力而为(best-effort)的服务策略。

因特网采取的是尽力而为策略,即只要是交给网络的数据,无论是正常用户发送的正常数据,还是攻击者发送的攻击流量,网络都会尽可能地将其送到目的地。把网络资源的分配和公平性完全寄托在终端的自律上。现在看来,这显然是不现实的。(4)匿名与隐私。

网络上的身份是虚拟的,普通用户无法知道对方的真实身份,也无法拒绝来路不明的信息(如邮件)。20年前,美国《纽约客》杂志以黑色幽默方式直指网络虚拟化之弊——“在因特网上,没有人知道你是一条狗”。(5)对全球网络基础设施的依赖。

全球网络基础设施不提供可靠性、安全性保证,这使得攻击者可以放大其攻击效力:首先,一些不恰当的协议设计导致一些(尤其是畸形的)数据包比其他数据包耗费更多的资源(如TCP协议的连接请求SYN包比其他的TCP包占用的目标资源更多);其次,因特网是一个大“集体”,其中存在的很多不安全系统会严重威胁整个网络的安全。

除了上面讨论的因特网的整体性不足之外,从安全性的角度来看,TCP/IP体系中的很多协议也存在可被攻击者利用的缺陷。下面将对TCP/IP协议族中的几个主要协议及其安全缺陷做一个简要介绍,这些内容是后续章节中有关攻击技术的基础。

2.IP协议及其安全缺陷

IP协议的数据报格式如图1-3所示。

首先来介绍IP数据报首部的固定部分中的几个主要字段。(1)版本。指IP协议的版本,值4表示IPv4,值6表示IPv6。(2)首部长度。可表示的最大数值是15个单位(一个单位为4B),因此IP的首部长度的最大值是60B。当IP分组的首部长度不是4B的整数倍时,必须利用最后一个填充字段加以填充。最常用的首部(固定首部)长度就是20B,即不使用任何选项。(3)总长度。指首部和数据之和的长度,单位为B。总长度字段为16bit,因此数据报的最大长度为65535B(即64KB)。

IP层下面的每一种数据链路层协议都有其自己的帧格式,其中包括数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。当一个IP数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过MTU的值。当数据报长度超过网络所容许的最大传送单元MTU时,就必须将过长的数据报进行分片后才能在网络上传送。这时,数据报首部中的“总长度”字段不是指未分片前的数据报长度,而是指分片后每片的首部长度与数据长度的总和。图1-3 IP数据报的格式(4)标识(identification)。它是一个计数器,用来产生数据报的标识。当IP协议发送数据报时,它就将这个计数器的当前值复制到标识字段中。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。(5)标志(flag)。目前只有前两个比特有意义。

●标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。

●标志字段中间的一位记为DF(Don′t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。(6)片偏移。指出较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。片偏移等于5就表明偏移量为40 B。每个分片的长度一定是8B(64 bit)的整数倍。(7)生存时间。记为TTL(Time To Live)。用来控制数据报所通过路由器的最大跳数。当源站发送数据报时,它在此字段写入一个数。这个数值约为任何两个主机之间的路由器数的两倍。当路由器收到一个数据报时,它先将此字段的值减1。若在减1之后此字段的值是0,路由器就丢弃该数据报。(8)协议。指出此数据报携带的数据使用的是何种协议,以便使目的主机的IP层知道应将此数据报上交给哪个进程。(9)首部检验和。只检验数据报的首部,不包括数据部分。这是因为数据报每经过一个结点,结点处理机就要重新计算一下首部检验和(生存时间、标志和片偏移等字段可能发生变化)。若将数据部分一起检验,计算的工作量就太大了。(10)源地址。数据报的源IP地址。(11)目的地址。数据报的目的IP地址。

IP协议是无状态、无认证协议,其自身有很多特性易被攻击者利用。(1)IP协议没有认证机制。

由于IP没有来源认证,IP包中的所有字段几乎都可以伪造。例如,IP协议中没有相应的控制来防止数据包被篡改,攻击者可以伪造首部检验和字段,或可以重新计算检验和以使网络结点不会丢弃数据包;由于IP协议本身对IP数据包是否来自真正的源地址不提供任何保障,因此攻击者可以进行IP源地址假冒。

很多需要重写IP首部的攻击都要用到IP欺骗,主要的攻击包括:拒绝服务攻击、中间人攻击、源路由攻击、客户端攻击和服务器端攻击等。(2)数据包分片。

如前所述,由于底层协议MTU的限制,IP数据报可能需要先分片,到达目的地后再重组。这一机制可以被攻击者利用,例如:借此攻击那些不能正确处理数据报分片异常(如分片重叠)的主机,用于绕过防火墙,或逃避入侵检测系统的检查。(3)寻址与协议选项。

数据报的寻址信息及协议选项的信息泄露了部分网络拓扑信息。记录路由或时间戳的协议选项可被攻击者用于网络侦察。(4)访问控制与带宽控制。

IP协议没有访问控制机制,使得攻击者可以查看上层协议(如TCP、UDP等)的内容;攻击者还可以利用IP协议没有带宽控制的缺陷,进行包风暴攻击来消耗带宽和系统资源,从而导致拒绝服务攻击(将在第5章介绍)。

3.ICMP协议及其安全缺陷

为了提高IP数据报交付成功的机会,在网际层使用了ICMP协议[RFC 792]。ICMP允许主机或路由器报告差错情况、提供有关异常情况的报告。ICMP报文作为IP层数据报的数据,加上数据报的首部后组成数据报发送出去。ICMP报文格式如图1-4所示。图1-4 ICMP报文的格式

ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。

ICMP报文的前4个字节是统一的格式,共有3个字段:即类型、代码和检验和。接下来的4个字节的内容与ICMP的类型有关。再后面是数据字段,其长度和格式取决于ICMP的类型。ICMP报文类型字段的值与ICMP报文类型的对应关系如表1-1所示。表1-1 类型字段的值与ICMP报文类型的关系

ICMP报文的代码字段是为了进一步区分某种类型中的几种不同的情况。检验和字段检验整个ICMP报文。

ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机,因而被广泛应用。(1)利用“目的不可达”报文对攻击目标发起拒绝服务攻击。(2)利用“改变路由”报文破坏路由表,导致网络瘫痪。(3)木马利用ICMP协议报文进行隐蔽通信(将在第6章介绍)。(4)利用“回送(Echo)请求或回答”报文进行网络扫描或拒绝服务攻击。

利用ICMP协议进行拒绝服务攻击的详细情况将在第5章介绍。

4.UDP协议及其安全缺陷

UDP协议格式如图1-5所示,包括两个字段:数据字段和首部字段。首部由4个字段组成,每个字段都是两个字节。

由于UDP协议提供的是不可靠的数据传输服务,所以不需要应答,因而UDP的源端口号是可选的,如果不用,可将其置为0。

同样,检验和字段也是可选的。UDP计算检验和的方法和计算IP数据报首部检验和的方法相似,不同之处在于:IP数据报的检验和只检验IP数据报的首部,但UDP的检验和是将首部和数据部分一起检验。详细情况请读者参见参考文献[19]。在伪造或篡改UDP数据报时,需要重新计算UDP检验和。

尽管UDP协议提供的是不可靠数据传输服务,但由于其简单高效,因此有很多应用层协议利用UDP作为传输协议,如域名解析协议(DNS)、简单网络管理协议(SNMP)、网络文件系统(NFS)、动态主机配置协议(DHCP)和路由信息协议(RIP)。如果某一应用层协议需要可靠传输,则可根据需要在UDP基础上加入一些可靠机制,如重传、超时和序号等,或直接利用TCP协议。

UDP协议可以用来发起风暴型拒绝服务攻击。图1-5 UDP数据报格式

5.TCP协议及其安全缺陷

TCP协议报文段格式如图1-6所示,由首部和数据两部分构成。由于TCP的全部功能都体现在它首部各字段的作用中,因此,只有弄清TCP首部各字段的作用才能掌握TCP的工作原理。下面将对一些主要字段做一个简要介绍。图1-6 TCP报文段格式

TCP报文段首部的前20B是固定的,后面有4N字节是根据需要而增加的选项(N必须是整数)。因此TCP首部的最小长度是20B。

首部固定部分主要字段的意义如下。(1)序号占4B。TCP是面向数据流的协议,即可将它传送的报文看作连续的数据流。为此,TCP把在一个TCP连接中传送的数据流中的每一个字节都编上一个序号。整个数据的起始序号在连接建立时设置。首部中的序号字段的值则是本报文段所发送的数据的第一个字节的序号。(2)确认号占4B,是期望收到的下一个报文段首部的序号字段的值。例如,A正确收到了B发送过来的一个报文段,其序号字段的值是501,而数据长度是300B,这就表明A已正确收到了B发送的序号在501800之间的数据。因此,A期望收到B的下一个报文段的首部中的序号字段应为801,于是A在发送给B的响应报文段中将首部中的确认号置为801。(3)数据偏移占4bit,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远,即TCP报文段首部的长度。但应注意,“数据偏移”的单位不是字节而是32bit字(即以4B长的字为计算单位)。由于4bit能够表示的最大十进制数字是15,因此TCP首部的最大长度不能超过60B。

下面的6个比特是说明本报文段性质的控制比特,也就是通常所说的标志位,它们的意义如下。

1)紧急位(URG)。当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据),而不要按原来的排队顺序来传送。该比特现在已很少使用。

2)确认位(ACK)。当ACK=1时,确认号字段有效;当ACK=0时,确认号无效。

3)推送位(PSH)。当两个应用进程进行交互式通信时,有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应。在这种情况下,TCP就可以使用推送(push)操作。这时,发送端TCP将推送比特PSH置为1,并立即创建一个报文段发送出去。接收TCP收到推送比特置为1的报文段后,就尽快地(即“推送”向前)交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。PSH比特也可称为急迫位。同样,该位已很少使用。

4)复位位(RST)。当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后重新建立传输连接。复位比特还用来拒绝一个非法的报文段或拒绝打开一个连接。复位比特也可称为重建比特或重置比特。

5)同步位(SYN)。在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载