描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302518327丛书名: 21世纪高等学校网络空间安全专业规划教材
本书适合作为高等院校信息安全、网络空间安全相关专业本科生和研究生的教材,也适合于从事网络与系统管理相关方向技术人员以及理工科学生学习网络攻防的参考用书。
本书可作为高等院校信息安全、网络空间安全相关专业本科生和研究生的教材,也可作为从事网络与系统管理相关方向技术人员及理工科学生学习网络攻防技术的参考用书。
第1章网络攻防技术概述
1.1黑客、红客及红黑对抗
1.1.1黑客与红客
1.1.2红黑对抗
1.2网络攻击的类型
1.2.1主动攻击
1.2.2被动攻击
1.3网络攻击的属性
1.3.1权限
1.3.2转换方法
1.3.3动作
1.4主要攻击方法
1.4.1端口扫描
1.4.2口令攻击
1.4.3彩虹表
1.4.4漏洞攻击
1.4.5缓冲区溢出
1.4.6电子邮件攻击
1.4.7高级持续威胁
1.4.8社会工程学
1.5网络攻击的实施过程
1.5.1攻击发起阶段
1.5.2攻击作用阶段
1.5.3攻击结果阶段
1.6网络攻防的发展趋势
1.6.1新应用产生新攻击
1.6.2网络攻击的演进
1.6.3网络攻击新特点
习题
第2章Windows操作系统的攻防
2.1Windows操作系统的安全机制
2.1.1Windows操作系统的层次结构
2.1.2Windows服务器的安全模型
2.2针对Windows数据的攻防
2.2.1数据本身的安全
2.2.2数据存储安全
2.2.3数据处理安全
2.3针对账户的攻防
2.3.1账户和组
2.3.2用户的登录认证
2.3.3账户密码的安全
2.3.4权限管理
2.4针对进程与服务的攻防
2.4.1进程、线程、程序和服务的概念
2.4.2重要系统进程
2.4.3常见的服务与端口
2.5针对日志的攻防
2.5.1Windows日志概述
2.5.2日志分析
2.5.3日志管理
2.6针对系统漏洞的攻防
2.6.1Windows系统漏洞
2.6.2典型的利用漏洞的攻击过程
2.6.3补丁管理
2.7针对注册表和组策略的攻防
2.7.1针对注册表的攻防
2.7.2针对组策略的攻防
习题
第3章Linux操作系统的攻防
3.1Linux操作系统的工作机制
3.1.1Linux操作系统概述
3.1.2Linux操作系统的结构
3.2Linux操作系统的安全机制
3.2.1用户和组
3.2.2身份认证
3.2.3访问控制
3.2.4Linux的日志
3.3Linux系统的远程攻防技术
3.3.1Linux主机账户信息的获取
3.3.2Linux主机的远程渗透攻击
3.3.3DNS服务器的攻防
3.3.4Apache服务器的攻防
3.4Linux用户提权方法
3.4.1通过获取“/etc/shadow”文件的信息来提权
3.4.2利用软件漏洞来提权
3.4.3针对本地提权攻击的安全防御方法
习题
第4章恶意代码的攻防
4.1计算机病毒
4.1.1计算机病毒的起源
4.1.2计算机病毒的概念
4.1.3计算机病毒的基本特征
4.1.4计算机病毒的分类
4.1.5计算机病毒的传播机制
4.1.6计算机病毒的防范方法
4.2蠕虫
4.2.1网络蠕虫的特征与工作机制
4.2.2网络蠕虫的扫描方式
4.2.3网络蠕虫的防范方法
4.3木马
4.3.1木马的概念及基本特征
4.3.2木马的隐藏技术
4.3.3网页木马
4.3.4硬件木马
4.3.5木马的防范方法
4.3.6挖矿木马
4.4后门
4.4.1后门的功能和特点
4.4.2后门的分类
4.4.3Windows系统后门程序的自动加载方法
4.4.4后门的防范方法
4.5僵尸网络
4.5.1僵尸网络的概念
4.5.2僵尸网络的功能结构
4.5.3僵尸网络的工作机制及特点
4.5.4僵尸网络的防范方法
4.6Rootkit
4.6.1Rootkit的概念
4.6.2用户模式Rootkit和内核模式Rootkit
4.6.3Bootkit攻击
4.6.4挂钩技术
4.6.5DKOM技术
4.6.6虚拟化技术
4.6.7Rootkit的检测方法
4.6.8Rootkit的防范方法
习题
第5章Web服务器的攻防
5.1Web应用的结构
5.1.1C/S结构
5.1.2B/S结构
5.1.3Web应用安全结构概述
5.2针对Web服务器的信息收集
5.2.1需要收集的信息内容
5.2.2网络踩点
5.2.3网络扫描
5.2.4漏洞扫描
5.2.5网络查点
5.2.6针对Web服务器信息收集的防范方法
5.3Web数据的攻防
5.3.1针对敏感数据的攻防
5.3.2网站篡改
5.4Web应用程序的攻防
5.4.1Web应用程序安全威胁
5.4.2SQL注入漏洞
5.4.3跨站脚本漏洞
5.5Web服务器软件的攻防
5.5.1Apache攻防
5.5.2IIS攻防
习题
第6章Web浏览器的攻防
6.1Web浏览器技术
6.1.1万维网
6.1.2Web浏览器
6.1.3Web浏览器的安全
6.1.4Web浏览器的隐私保护
6.1.5Web开放数据挖掘形成的安全威胁
6.2Web浏览器插件和脚本的攻防
6.2.1Web浏览器插件的攻防
6.2.2脚本的攻防
6.3针对Web浏览器Cookie的攻防
6.3.1Cookie介绍
6.3.2Cookie的组成及工作原理
6.3.3Cookie的安全防范
6.4网页木马的攻防
6.4.1网页木马的攻击原理
6.4.2网页挂马的实现方法
6.4.3网页木马关键技术
6.4.4网页木马的防范方法
6.5网络钓鱼的攻防
6.5.1网络钓鱼的概念和特点
6.5.2典型钓鱼网站介绍
6.5.3网络钓鱼攻击的实现方法
6.5.4网络钓鱼攻击的防范方法
6.6黑链的攻防
6.6.1黑链的实现方法
6.6.2黑链的应用特点
6.6.3黑链篡改的检测和防范方法
习题
第7章移动互联网应用的攻防
7.1移动互联网概述
7.1.1移动互联网的概念
7.1.2移动终端
7.1.3接入网络
7.1.4应用服务
7.1.5安全与隐私保护
7.2智能移动终端系统的攻防
7.2.1登录安全
7.2.2软键盘输入安全
7.2.3盗版程序带来的安全问题
7.2.4认证安全
7.2.5安全事件分析
7.3移动应用的攻防
7.3.1恶意程序
7.3.2骚扰和诈骗电话
7.3.3垃圾短信
7.3.4二维码安全
7.4云服务的攻防
7.4.1关于云计算
7.4.2云存储的安全问题
7.4.3云服务的安全防范
7.5网络购物的攻防
7.5.1网络游戏网站钓鱼欺诈
7.5.2网络退款骗局
7.5.3购买违禁品骗局
习题
参考文献
网络攻防表面上是一种攻守双方的技术对抗,其实质则是攻击者与防守者之间的力量较量,是人与人之间的智力博弈。近年来,随着人们对网络的依赖性越来越强,功能各异的操作系统和应用软件在丰富了网络应用的同时,其自身存在的漏洞也成为网络攻击者不断挖掘和利用的资源。网络攻防是一种矛与盾的关系,防守者总希望能够通过获取并分析攻击者的痕迹来溯源攻击行为,并制定或修改防御策略。
本书(包括配套的《网络攻击与防御实训》)是江苏省高等学校重点教材,从立项之初到最后成书,期间曾多易其稿,甚至将第一稿的全部内容推翻进行重写。在写作过程中克服了许多困难。
一是内容确定。武汉大学张焕国教授曾经用“信息安全是信息的影子”来比喻信息与信息安全之间的关系,非常确切。今天,当人们随时随地、无时无刻地享受着即时通信、撰写博客、点评美食、网络约车等信息技术带来的便捷时,银行账号信息窃取、电信诈骗、地理位置信息泄露等信息安全问题也如影相随。那么,作为一本课时量受限的教材来说,又该如何在有限的时间内为学生系统介绍信息安全领域有关攻击与防范的知识呢?本书立足作者多年来从事信息安全实践与教学科研的经验,最后确定将操作系统、恶意代码、Web服务与应用和移动互联网应用等方面的攻防作为重点进行介绍。
二是内容组织。从攻防的角度来讲,本书的每一章都可以单独编成一本厚厚的书,很显然这不适合于教学。本套书将理论和实践分开,本书重点介绍攻击与防御中涉及的基础知识和基本理论,而配套的《网络攻击与防御实训》主要提供具体的攻防训练,通过实训加深对基础知识的理解,并培养实践动手能力。
三是知识融合。就攻击和防御来说,虽然针对每一个具体案例在知识结构上具有相对独立性,但不同案例所涉及的知识点和实践能力的培养具有交叉性,这就涉及不同章节及同一章节不同知识点之间的融合。融合不仅仅是内容上的有效组织,更是培养目标的确定,以及培养过程的遵循。只有在内容上注重相互间的关联,在教学过程中关注理论与实践之间的结合,才能最后实现在知识上融会贯通的人才培养目标。
本书共7章,具体内容简述如下。
第1章: 网络攻防技术概述。本章较为系统地介绍网络攻防的基础知识,主要包括网络攻击的类型、方法、实施过程及发展趋势。
第2章: Windows操作系统的攻防。本章在介绍Windows操作系统安全机制的基础上,重点从数据、进程与服务、日志、系统漏洞、注册表等方面分别介绍攻防的实现方法。
第3章: Linux操作系统的攻防。本章在介绍Linux操作系统工作机制和安全机制的基础上,分别介绍用户和组、身份认证、访问控制、日志等的安全机制,并对Linux操作系统的远程攻防技术和用户提取方法进行介绍。
第4章: 恶意代码的攻防。恶意代码包括的内容较多,而且相关内容的发展较快。本章重点对计算机病毒、蠕虫、木马、后门、僵尸网络和Rootkit等典型恶意代码从攻击与防范两个层面进行较为系统的介绍。
第5章: Web服务器的攻防。本章在对比分析了C/S结构和B/S结构及安全机制的基础上,从Web服务器的组成出发,重点介绍Web服务器信息的收集方法、Web数据的攻防、Web应用程序的攻防及Web服务器软件的攻防等内容。
第6章: Web浏览器的攻防。本章与第5章的内容相互照应,但重点不同。本章主要从Web浏览器安全应用出发,从浏览器插件和脚本、Cookie、网页木马、网络钓鱼、黑链攻击等方面,介绍针对Web浏览器的攻击与防范方法。
第7章: 移动互联网应用的攻防。作为近年来发展迅速的移动互联网应用及存在的主要安全问题,本章立足于应用安全,通过大量的案例介绍,从技术和非技术两个层面介绍相关的安全问题,并提出相应的安全防范方法。
本书在编写过程中得到了许多同事和同行的无私帮助和支持,在项目申请和出版过程中得到了清华大学出版社编辑老师的关心和帮助,我的同事倪雪莉老师和刘家银老师对全书的文字进行了校对。同时,本书的编写参考了大量的文献资料,尤其是国内外著名安全企业的技术手册,有些未能在参考文献中标明。在此一并表示衷心的感谢!
由于作者水平有限,书中难免有不足之处,敬请读者提出宝贵意见。
作者
2019年于南京
作为类UNIX操作系统家族中的一员,Linux操作系统已经成为服务器应用领域的首选。相较于Windows操作系统,Linux在很多方面都具有一定的优势,尤其在安全方面。由于Linux的开源性,其安全漏洞的发现与补丁的发布效率都要比Windows系统高。然而,Linux并非一个绝对安全的操作系统,也存在大量的安全漏洞,并且攻击者凭借其开源性可以从源码中发现更多的系统内核和开源软件的漏洞。本章将从网络攻防的角度介绍Linux操作系统的安全机制、攻击技术及对应的防范方法。
3.1Linux操作系统的工作机制
Linux是源自于UNIX的开放源代码的多用户、多任务、支持多线程和多CPU的操作系统,主要应用于安全性要求较高的服务器、网络设备和移动终端。
3.1.1Linux操作系统概述
Linux操作系统诞生于1991年,最初是由芬兰大学生Linus Torvalds为在Intel x86架构计算机上运行自由免费的类UNIX操作系统,而用C语言编写的开放源代码的操作系统。目前,Linux存在着许多不同的版本,主要包括Ubuntu、Fedora、RedHat、CentOS、OpenSUSE等,但不同版本都使用了相同的Linux内核。
Linux的基本思想是: 一切都是文件,即系统中包括命令、硬件和软件设备、进程等所有对象对于操作系统内核而言都被视为拥有各自特性或类型的文件。Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以根据需要对其源代码进行修改。目前,Linux可以运行在多种硬件平台上,如x86(32位和64位)、680×0、SPARC、Alpha等处理器的平台。此外,Linux还是一种嵌入式操作系统,可以运行在智能手机、机顶盒、路由器等设备上,如Google基于Linux内核开发了Android移动智能终端操作系统与开发环境。
Linux通过自带的防火墙、入侵检测和安全认证等工具,可以及时发现和修复系统的漏洞,以提高系统的安全性。在桌面应用中,Linux的用户数要少于Windows操作系统的用户,较少的用户群使专门针对Linux的恶意代码和渗透攻击要比Windows操作系统少。同时,Linux内核源代码是以标准规范的32位或64位计算机进行优化设计的,良好的稳定性使得一些安装了Linux的主机像UNIX主机一样可以常年不关机或宕机。在网络功能方面,Linux内置了免费网络服务器软件、数据库和Web开发工具,如Apache、Sendmail、SSH、MySQL、PHP、JSP、VSFTP等。丰富而强大的网络功能为用户提供了安全可靠的网络服务,使得Linux成为安全性、稳定性和可靠性要求较高的服务器操作系统的首选。
3.1.2Linux操作系统的结构
Linux操作系统采用宏内核(monolithic kernel)架构,整个操作系统是一个运行在核心态的单一的进程文件,这个二进制文件包含进程管理、内存管理、文件管理等。而Linux的前身Minix采用的是微内核(Micro Kernel)架构,基于该架构的操作系统大部分都运行在单独的进程中,而且多数在内核之外,进程之间通过消息传递来通信,内核的任务是处理消息传递、中断处理、底层的进程管理及可能的I/O。
1. Linux操作系统的内核结构
如图31所示,从体系结构来看,Linux操作系统的体系架构分为用户态和内核态,也称为用户空间和内核。内核从本质上看是一种软件,用于控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU资源、存储资源、I/O资源等。为了使上层应用能够访问到这些资源,内核必须为上层应用提供访问的接口,即系统调用。系统调用是操作系统的最小功能单位,根据不同的应用场景可以进行扩展和裁剪,不同的Linux版本提供的系统调用数量各不相同。系统调用功能通过系统调用接口实现。
图31Linux操作系统内核结构
在Linux内核中,位于硬件抽象层中的各类设备驱动程序可以完全访问硬件设备,并以模块化形式进行设置,而且系统运行期间可以直接通过LKM(Loadable Kernel Module,可装载内核模块)机制装载或卸载。内核服务功能模块位于硬件抽象层之上,包括进程与线程管理、内存管理、文件系统管理、设备控制与网络5个子系统。这些内核服务功能模块通过系统调用接口向用户态的GNU运行库/工具、命令行Shell、X窗口及应用软件提供服务。
Shell是一个被称为“命令行”的特殊的应用程序,其实质是一个命令解释器,它负责将上层的各种应用与系统调用连接起来,以便让不同程序能够以一个清晰的接口协同工作,从而增强各个程序的功能。同时,Shell是可编程的,它可以执行符合Shell语法的文本,即Shell脚本。为了方便用户和系统交互,一般一个Shell对应一个终端,终端是一个硬件设备,呈现给用户的是一个图形化窗口,用户可以通过这个窗口输入或者输出文本,这个文本直接传递给Shell进行分析解释,然后执行。
2. Linux的工作机制
Linux操作系统在进程与线程管理、内存管理、文件系统管理、设备控制、网络、系统调用等方面都形成了特有的工作机制,掌握这些工作机制为全面学习Linux操作系统的功能及应用特点是非常有帮助的。
(1) 进程与线程管理。
进程是一个动态的概念,进程运行过程实际上是进程的一个生存周期,通常分为实际占用CPU的运行状态、进程可运行(但暂时挂起)的就绪状态和资源不可用的阻塞(中断)状态3种状态。线程可以理解为同一进程中相互独立执行的上下文,线程是“多任务”的进程。线程的概念较为适用于紧密耦合的一组处理流程。在传统进程的概念中,一个进程有一条执行线索,进程之间空间、时间独立,互不干扰。而线程在逻辑上是一个事务的不同线索,线索之间有着种种联系,可能是共享一段缓存或协调执行一组任务。
Linux内核采用抢占式多用户多进程(multiprocessing)模式。在该模式下,多个进程可并发活动,具体由内核进程管理模块负责调度并分配硬件资源。进程作为最基本的调度单元,维护着一个进程控制块(Processing Control Block,PCB)结构,由内核schedule()进程调度函数根据进程优先级和CPU、内存、外设等资源情况来选择进程的运行。
(2) 内存管理。
内存管理在操作系统中不仅非常重要,而且非常复杂。利用虚拟存储技术,Linux使得一个拥有有限内存资源的计算机可以为每个进程提供多达4GB的虚拟内存空间。其基本实现思路是通过进程映像和分页机制在内存和二级存储之间传送数据,以充分利用有限的内存资源。另外,Linux虚拟内存管理机制把用户空间和核心空间分开,这样不仅有效地保护了核心空间,各个进程之间也互不影响。
(3) 文件系统管理。
Linux使用了虚拟文件管理(Virtual File System,VFS)机制,从而使得它能够支持多种不同类型的逻辑文件系统(主要包括ext2/ext3/ext4、vfat、NTFS等),通过设备驱动程序访问特定硬件设备(如磁盘、打印机等)。而VFS为用户进程提供了一组通用的文件系统调用函数(如open、close、read、write等),可以对不同文件系统中的文件进行统一的操作。ext2/ext3/ext4是Linux中默认的文件系统格式,使用索引节点来记录文件信息,作用类似于Windows系统中的FAT32文件系统的目录项,包含了文件长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。
(4) 设备控制。
设备驱动程序(device driver)是操作系统中一种可以使计算机和设备进行通信的特殊软件。Linux抽象了设备的处理,它对所有的硬件设备都视为常规的文件来处理。Linux支持3种类型的硬件设备: 字符设备、块设备和网络设备。其中,字符设备直接读/写,没有提供缓冲区,如系统的串行端口/dev/cua0和/dev/cua1; 块设备只能按照一个块(一般是512字节或1024字节)的倍数进行读/写,块设备通过bcache(buffer cache)访问,进行随机存取; 网络设备则通过BSD(Berkeley Software Distribution,伯克利软件套件)Socket网络接口进行访问。大多数的设备驱动程序都采用LKM(Loadable Kernel Modules,可装载内核模块)机制,在需要的时候作为核心模块加载,在不需要的时候进行卸载,以提高对系统资源的利用率。
(5) 网络。
Linux中的网络模块提供了对各种网络标准的访问,并支持各种网络硬件设备。网络接口可以分为网络协议栈和网络驱动程序。其中,网络协议栈负责实现每一种可能的网络传输协议,包括网络接口层的协议(如以太网、PPP、SLIP等)、TCP/IP协议层,以及为上层网络应用提供的Socket接口,如图32所示。网络设备驱动程序负责与硬件设备之间的通信。
图32Linux操作系统的网络功能
Linux通过以上5种工作机制实现了操作系统基本的硬件管理和系统功能,这些功能模块全部运行在CPU的核心态。而应用程序运行在用户态,不能直接访问内存空间,也不能直接调用内核函数。Linux提供了系统调用接口,通过该接口应用程序可以访问硬件设备和其他系统资源,以增加系统的安全性、稳定性和可靠性。同时,Linux为用户空间提供了一种统一的抽象接口,有助于应用程序的跨平台移植。
3.2Linux操作系统的安全机制
与Windows操作系统类似,Linux同样通过身份认证、授权访问与安全审计等机制来实现对系统的安全管理。
评论
还没有评论。