1.98k likes | 2.23k Views
第 7 章 网络安全. 本章要点. 网络安全与独立系统安全有何相似与不同 网络应用程序所面临的威胁:拒绝服务、网站被 “ 黑 ” 、恶意移动代码和协议攻击 防止网路攻击的控制措施:物理安全、策略与规程以及大量的控制技术 防火墙的原理、功能和限制 入侵检测系统的 种类、功能与局限 安全电子邮件: PGP 和 S/MIME.
E N D
本章要点 • 网络安全与独立系统安全有何相似与不同 • 网络应用程序所面临的威胁:拒绝服务、网站被“黑”、恶意移动代码和协议攻击 • 防止网路攻击的控制措施:物理安全、策略与规程以及大量的控制技术 • 防火墙的原理、功能和限制 • 入侵检测系统的种类、功能与局限 • 安全电子邮件:PGP和S/MIME
我们每天都在跟网络打交道。网络攻击确实是一个至关重要的问题。本章将描述是什么使得网络安全与前面讲过的应用程序和操作安全既有区别又有相似之处。由于网络的增长和变化速度比计算机科学其他方面的发展速度更快,因此,不可能介绍所有最流行的攻击与防御技术。但新的形式和变化都是建立在一些基础知识之上的。这些知识包括:网络基本概念、网络威胁和网络控制等。我们每天都在跟网络打交道。网络攻击确实是一个至关重要的问题。本章将描述是什么使得网络安全与前面讲过的应用程序和操作安全既有区别又有相似之处。由于网络的增长和变化速度比计算机科学其他方面的发展速度更快,因此,不可能介绍所有最流行的攻击与防御技术。但新的形式和变化都是建立在一些基础知识之上的。这些知识包括:网络基本概念、网络威胁和网络控制等。
7.1 网络的概念 由于网络存在单一故障点(single point of failure),所以是脆弱的。但是网络具有恢复(resilience)或容错能力(fault tolerance),所以又是健壮的。一般认为,网络的中间部分很健壮,但其周边却是脆弱的。 在一般用户的眼里,一个网络看起来就像一个设计成两端由中间的一条单线连接起来的东西。这里,我们在描述计算机网络时,着重介绍安全的概念,同时也以简化的方式描述网络本身,而避免让网络的复杂性分散注意力。注意,我们描述的网络是对更复杂的实际网络的抽象。
7.1.1 网络 简单网络模型可以设想为两台设备通过硬件介质连接起来,并用软件实现设备间通信。可能一台计算机是服务器(server),另一台设备提供输入/输出是客户(client)。 图 7.1 网络的简单示意图
7.1.1 网络(续) 但实际网络的状况显然要比这复杂得多。 (1) 执行用户到计算机通信的简单网络设备通常是一台微型计算机或者工作站,因此,客户端具有相当大的存储容量和计算能力。 (2) 一个网络可以配置为单个客户与服务器相连,但在通常情况下,是多客户与多个服务器交互的。 (3) 网络服务通常是由很多台计算机一起提供的。单个用户会话在客户与服务器之间来回传送消息的过程中,需要经过一些中间计算机。但这些计算机中的部分如果正在实现其他重要的交互服务,则消息可能被暂停传输。 (4) 在终端用户接受服务的过程中,通常不会意识到发生了很多会话和计算工作。
7.1.1 网络(续) 通常,网络中的一个单一的计算系统称为一个节点(node),其任务处理设备(计算机)称为主机(host)。两台主机之间的连接称为链路(link),网络计算由许多用户、通信介质、可见主机和通常对终端用户不可见的系统组成。系统是一个处理器的集合,通常都具有比工作站(workstation)更强的处理能力和更大的存储空间。 图 7.2 更复杂但更典型的网络示意图
7.1.1 网络(续) 使用环境 网络具有以下几个典型的特征: (1) 匿名性:网络隐藏了通信者绝大多数的特征,如相貌、声音以及环境,而在通常情况下,我们是以这些特征相互认识的。 (2) 自动性:通信自动完成。 (3) 远程性。 (4) 透明性:用户甚至不清楚当前通信的主机与上一次通信的主机是否相同。 (5) 路由的多样性:为了维护和提高网络的可靠和性能,通信路由通常动态分配。
7.1.1 网络(续) 外形和尺寸 网络按照节点和连接的形式进行组织的方式,称为网络的拓扑结构(topology)。其与安全相关的特性有: (1) 边界:边界将一个网络的元素与不属于该网络的元素区分开来。 (2) 拥有关系:要想知道网络中每台主机的拥有者是很困难的。 (3) 控制:如果说拥有关系是不确定的,那么控制也就是不确定的了。
7.1.1 网络(续) 通信模式 数据的通信要么采用数字(digital)格式(传输的数据以离散的二进制数值表示),要么采用模拟(analog)格式(传输的数据以连接范围的一系列点来表示,使用的介质采用声音或者电压)。转换工作由调制解调器来完成,可以实现数字和模拟信号之间的双向转换。
7.1.2 传输介质 通信可以使用几种传输介质: (1)电缆:可以是双绞线(twisted pair)或者无屏蔽双绞线(unshielded twisted pair, UTP)也可以是同轴电缆(coaxial (coax) cable)。 (2) 光纤:采用极细的玻璃作为传输介质。传输的是光束而不是电能。光纤介质所产生的串扰非常低、价格和重量相对铜线而言都低得多。铜线逐渐被光纤所取代。 (3) 无线:采用无线电信号传送通信信号。很多符合802.11协议的设备都适用于建立办公室或者家庭无线网络。
7.1.2 传输介质(续) (4) 微波:微波信道的容量与双绞线相当。微波信号必须在小于相距49公里的地方进行中继。 (5) 红外:红外线通信传输距离不超过11.5公里。由于传输直线的要求和距离的限制,红外线一般只在像办公室那样有保护措施的范围内使用。 (6) 卫星:卫星通信链路的质量通常比在地球上铺设的电缆更好。卫星通常在一个很广的范围内传播通信信号。从使用性考虑总是希望信号覆盖很宽的范围,但是覆盖范围越窄,被窃听的危险就越低。
7.1.3 协议 通信可以与实际的通信介质相互分开。协议(protocol)的定义使得这一独立性的实现成为可能,允许用户以一个较高的、抽象的通信层次看待网络。在通信的两端,通信完成的细节过程通过硬件和软件技术被隐藏了。这些硬件和软件依据协议栈(protocol stack)行事。协议栈中的每一层都像是定义了一种语言,使用该语言就可实现在该层中相关信息之间的相互交流。 目前,网络中用得最多的是两种协议栈:开放系统互连协议(OSI)体系和传输控制与互连协议(TCP/IP)体系。
7.1.3 协议(续) ISO OSI参考模型 OSI参考模型包含7层。我们可以把这些层看成是在一条装配线,每一层将自己提供的服务添加到整个通信过程中。 表 7.1 OSI协议中的层
7.1.3 协议(续) 发送和接收方的平行层也称为“对等层”(peers) 图 7.3 ISO OSI网络模型
7.1.3 协议(续) 寻址 在网络层(3),一种称为路由器(router)的设备会将消息准确地从源地址发送到目的地址。网络层所建立的目的地址、源地址和其中的数据一起,合称为一个包(packet)。 图 7.4 网络层传输
7.1.3 协议(续) 每一台计算机都通过一块网络接口卡(Network Interface Card,NIC)连接到一个网络,在网络接口卡上有一个唯一的物理地址,称为MAC地址(MAC为Media Access Control的缩写)。在数据链路层,另外加上了两个头部,其中一个是计算机上的NIC地址(源MAC地址),另一个是路由器上的NIC地址(目的MAC地址) 。包含目的MAC地址、源MAC地址和数据的数据链路层结构称为一个帧(frame)。 图 7.5 数据链路层传输
7.1.3 协议(续) 分层 图 7.6 传输的消息准备过程
7.1.3 协议(续) 表示层(6)将原始消息分割成许多小块。在会话层(5)添加了一个会话头部,以指明发送者、接收者和一些与顺序相关的信息。传输层(4) 添加了一些在发送者和接收者之间进行逻辑连接的信息。网络层(3)增加了一些路由信息,并把从传输层(4)传来的一个信息单元进一步分割为多个数据包。数据链路层(2)添加了一个头部和尾部,以保证这些消息块的正确顺序,并检测和校正传输错误。消息和控制的每一比特都在物理层(1)通过物理介质进行传播。
7.1.3 协议(续) TCP/IP 一般认为OSI模型过于复杂,其中包含了太多的层次 。因此,TCP/IP成为了目前应用最广泛的协议栈。TCP/IP是为实际因特网设计的,并且是根据协议而不是根据层定义的。但是,仍然可以把它看成4层结构:应用层、主机到主机(端到端)的传输层、网络层和物理层。其主要由处于底层的IP传输协议、基于其上用于实现面向连接的通信会话的TCP协议以及第三方协议——用户数据报协议(User Datagram Protocol, UDP)组成。
7.1.3 协议(续) 传输层从应用层接收长度可变的消息,将它们分割成一定大小的单元,按包(packet)发送出去。网络层以数据报(datagram)方式传输这些包,根据数据的目的地(随数据一起提供的地址)将它们发送至不同的物理连接。物理层实现实际比特流的数据通信。 表 7.2 因特网通信中的层
7.1.3 协议(续) TCP协议将无序的包按照正确顺序进行排列,请求重传丢失的包,重新获取一个毁坏包的新副本。对速率或效率要求非常高时,允许数据流中存在少量不准确的数据。 TCP数据包是一个数据结构,其中包含一个序列号、一些标记、源端口(port)和目的端口号。每一种服务都使用一个众所周知的端口,比如80端口用于HTTP(网页),23端口用于Telnet(远程终端连接),25端口用于SMTP(电子邮件),161端口用于SNMP(网络管理)。简而言之,每种服务都有一个守护进程,以监视指定的端口号,并且当有任何数据传到该端口时为其提供服务。 UDP协议不提供TCP协议中的错误检测和误码校正功能,不过它是一种更小、更快的传输协议。
7.1.3 协议(续) 表7.3 因特网提供的服务
7.1.3 协议(续) 寻址方式 地址是网络中一个节点的唯一标识符。广域网必须遵从已经建立的规则,而局域网中寻址方式的限制相对较小。在基于TCP/IP协议的广域网上的主机都有一个32位的地址,称为IP地址(IP address)。IP地址四个8比特一组,通常用十进制表示。网络地址也采用我们熟悉的域名(domain name)进行区分,比如ATT.COM或者CAM.AC.UK,由寻址表完成从这些字符串到数字格式的转换。IP地址按照从右到左的顺序进行解析。最右边的部分,如.COM、.EDU、.ORG或者.GOV以及由两个字符代表的某个国家,如.UK、.FR、.JP或者.DE,称为顶级域名(top-level domain),由一些称为因特网注册部门的小型组织机构进行管理。负责进行注册的组织机构需要发布主机地址,这些地址是包含在其管理的顶级域名下的二级域名表中。
7.1.3 协议(续) 当第一次试图将一个完整的域名解析为它所对应的IP地址时,系统将完成一次从顶级主机开始查找的过程(在随后的解析工作中,系统自身维护一个记录域名的缓存,本地进行域名解析)。最后域名被转换成为一个32位,四个8比特一组的地址,并被包含在所有以该地址为目的地的IP包中。
7.1.3 协议(续) 路由概念 主机需要知道如何根据IP地址发送一个包。每台主机都清楚与自己直接相连的其他主机,并且与相邻的主机交换连接信息。主机将它能到达的主机(地址)及代价(跳步数)的描述信息广播给它的邻居。每台主机将流量传递给能提供最小代价路径的某个邻居。
7.1.4 网络类型 网络是一个通信主机的集合。 局域网 局域网(Local Area Network, LAN)的覆盖范围较小,一般局限于一栋建筑内。LAN的主要优点在于它的所有用户可以很方便地共享数据、程序,以及共享对设备的访问,比如打印机。 大多数LAN都具有以下特征: (1) 规模小:用户通常不超过100个。 (2) 局部控制:都由一个组织统一管理。 (3) 物理保护:外部恶意访问者很难访问内部设备。 (4) 有限范围:仅覆盖一个很小的范围。
7.1.4 网络类型(续) 广域网 广域网(Wide Area Network, WAN)和局域网在规模、距离和控制或拥有关系等方面都有较大的区别,但WAN仍然有一些统一的原则。其他相似网络类型还包括校园网(CAN)和城域网(MAN)。以下是WAN的典型特征: (1) 单一控制:通常,一个广域网应该由一个组织机构负责和控制。 (2) 覆盖范围大:一个WAN通常比一个LAN的服务范围要大,一般从几公里到整个地球的范围。 (3) 物理上暴露(常常如此,但不全是):大多数广域网使用公共通信介质,因此,相对来说要暴露一些。
7.1.4 网络类型(续) 互联网(网际网) 由众多网络构成,最典型的互联网是因特网。因特网由因特网协会进行松散的控制。因特网协会指定了一些公平活动的基本规则,以保证所有用户都能接受公平的服务,并且它支持标准协议,以实现用户之间的通信。以下是因特网的一些特征: (1) 联合:对于因特网的用户甚至是网络服务提供商,我们几乎都不可能给出一个适当描述。 (2) 巨大:没有谁真正知道因特网到底有多大。 (3) 异构:可能每一款商业硬件和软件中,至少有一个产品连接到了因特网上。 (4) 物理上和逻辑上暴露:由于没有统一的访问控制,实际上任何攻击者都可以访问因特网,而且由于连接设备的复杂性,他们可以获取网上的任何资源。
7.2 网络面临的威胁7.2.1 导致网络脆弱的因素 (1) 匿名性:攻击者可以远隔千里实施攻击,而无需与被攻击者的系统、该系统的管理员或者任何用户进行直接接触。因此,隐藏在电子屏障之后的潜在攻击者处于比较安全的地位。攻击者可能利用很多其他主机来实施攻击,这样就可以隐藏攻击的源头。 (2) 攻击点多——既指攻击的目标,也指发动攻击的地点:攻击者可能来自任何主机,也可能针对任何主机。因此,在一个大型网络中,容易受到攻击的点是很多的。 (3) 共享性:由于网络允许共享资源和分担负载,所以潜在的访问联网系统的用户比单机系统用户多。
7.2.1 导致网络脆弱的因素(续) (4) 系统的复杂性:一个网络操作/控制系统很可能比一个为独立计算设计的操作系统要复杂得多。攻击者也可以利用攻击目标强大的计算能力,将部分计算机工作交给攻击目标完成,从而能够大大提高攻击能力。 (5) 未知边界:网络的可扩展性也意味着网络的边界是不确定的。可能怀有恶意的未知或者不受控制的用户团体是网络安全的不利因素。
7.2.1 导致网络脆弱的因素(续) 图 7.7 无清晰的网络边界
7.2.1 导致网络脆弱的因素(续) (6) 未知路径:从一台主机到另一台主机可能存在着多条路径。 图 7.8 网络中某种消息的路由过程
7.2.2 谁在攻击网络 关注动机有助于我们了解谁可能攻击互联网的主机和用户。网络挑战、名声、金钱以及意识形态是4个重要的动机。 (1) 挑战:对网络攻击者而言,一个最重要的动机就是对智力的挑战。击败看似无懈可击的事物是一些攻击者喜欢的智力刺激。有些攻击者只是希望看看这种不受欢迎的活动深入到什么地步。 (2) 名声:一些攻击者希望通过攻击活动得到认可 。也就是说,一方面是出于迎接挑战的考虑,另一方面是为了由此而获得声望。
7.2.2 谁在攻击网络(续) (3) 金钱与间谍、有组织犯罪 :经济回报也是攻击者实施攻击的一个动机。一些组织的行为看似很奇怪,但实际上,工业间谍应该为此负责。工业间谍是非法的,但却经常出现,部分原因是其潜在的高收益。更精心策划的攻击需要不止一个人,所以,出现了有组织的犯罪。到处都有证据表明,有组织的犯罪集团正在利用Internet提供的新机会。 (4) 意识形态:Denning曾经把攻击行为分为黑客主义与计算机恐怖主义。黑客主义(hactivism)是指“使用黑客技术针对一个目标的一系列活动,目的是干扰其正常运转,但不会造成严重破坏”。计算机恐怖主义(cyberterrorism)是“一种具有潜在动机的黑客活动,目的是造成严重损坏,比如造成死亡或者严重的经济损失”。
7.2.3 攻击前侦察 攻击者在采取攻击行动之前,首先要进行充分的调查和计划活动。网络攻击者开始攻击之前需要了解有关攻击目标的大量信息。研究这些攻击的前期工作的目的是:一旦发现了某些特征行为,就可能在攻击真正发生之前采取措施加以阻止。 端口扫描 收集信息的一种简单方法是采用端口扫描(port scan)。针对一个特定的IP地址,扫描程序报告该地址的哪些端口会响应消息,以及目前存在着有哪些已知的弱点。通过端口扫描可以知道三件事情:目标系统上有哪些标准端口或者服务正在运行并响应请求;目标系统上安装了哪些操作系统;目前都有哪些应用程序在提供服务及其版本是什么。可以通过合法的渠道获得端口扫描工具。
7.2.3 攻击前侦察(续) 社会工程学 社会工程学涉及:使用社会技巧和人际关系,使某人透露一些与安全相关的信息,甚至直接为攻击做一些事情。社会工程学不会有多大损失,最多是引起了可能攻击目标的警觉,对不涉及安全管理的人,社会工程学就很容易成功。 情报收集 情报收集(Intelligence)是收集细节信息的常用手段。在信息安全领域,通常是指通过不同渠道收集不连续的信息比特,而后就像做拼图游戏一样将它们组合到一起。大多数情报收集技术都只需经过很少的训练和最少的时间投入。
7.2.3 攻击前侦察(续) 操作系统与应用程序特征 如果掌握了操作系统和应用程序的种类版本,攻击者就可以查找一张记录了某种软件已知漏洞的表,从而决定利用哪个特殊的漏洞实施攻击。所有与特定类型及版本相关的特性称为操作系统或者应用程序的指纹(fingerprint),可用于标识其开发商和版本。通过与操作系统或者应用程序的简单交互可以确定这些。有时,应用程序会自报身份。如, Server: Netscape-Commerce/1.12 Your browser sent a non-HTTP compliant message. 或 Microsoft ESMTP MAIL Service, Version: 5.0.2195.3779
7.2.3 攻击前侦察(续) 公告牌与聊天室 有大量秘密公告牌与聊天室支持信息交换。攻击者可以发现最新漏洞和利用技术,永远不会知道谁正在从因特网上读取信息。 文档的可用性 开发商自身有时也会发布一些对攻击者有用的信息。
7.2.3 攻击前侦察(续) 侦察:结束语 一个计算机站点可能注意到,在短时间内,侦测数量出现异常。但是,一名聪明的攻击者,会采取一种游击战术,即收集一些信息,然后潜伏一段时间,而后再出来收集更多的信息。 防御侦察的最好办法是保持沉默。尽可能少地发布与自己站点相关的信息,不管是人为的,还是通过机器自动发布的。
7.2.4 传输中的威胁:偷听与窃听 实施攻击最简单的方法是偷听。偷听(eavesdrop)这个词语暗示着无须额外努力就能听到。窃听(wiretap)需通过一些努力窃取通信信息。被动窃听(passive wiretapping)只是“听”,与偷听非常相近。而主动窃听(active wiretapping)则意味着还要在通信信息中注入某些东西。窃听是否成功与通信媒介有关。
7.2.4 传输中的威胁:偷听与窃听(续) 电缆 (1) 嗅包器(packet snifter) 软件可以获取一个LAN上的所有数据包。 (2) 可以对一个网卡重新编程,使它与LAN上另一块已经存在的网卡具有相同的地址。 (3) 电缆线会发射无线电波。通过自感应(inductance)过程,入侵者可以从电缆线上读取辐射出的信号,而无须与电缆进行物理接触。 (4) 切断或部分切断电缆,进行分接。
7.2.4 传输中的威胁:偷听与窃听(续) 网络中传输的信号是多路复用(multiplexed)的,意味着在某个特定的时刻不只一个信号在传输。LAN传输的常常是截然不同的包,但是在WAN上传输的数据,却在离开发送它们的主机以后,经过了复杂的多路复用处理。这样,在WAN上的窃听者不仅需要截取自己想要的通信信号,而且需要将这些信号,从同时经过多路复用处理的信号中区分开来。
7.2.4 传输中的威胁:偷听与窃听(续) 微波 由于通过空气传播,使得微波信号更容易被局外人接触到。微波链路可携带巨大流量,因此,几乎不可能将特定信号,从进行了多路复用处理的其他传输信号分离出来。专用微波链路,不能很好地获得因容量大而产生的保护。 图 7.9 微波信号的路径
7.2.4 传输中的威胁:偷听与窃听(续) 卫星通信 由于在一个几百公里宽上千公里长的区域内都可以截取卫星信号,因此潜在被截取的可能性比微波信号更大。复杂的多路复用处理可以提供信号保护。 光纤 光纤具有两个安全优势:第一,在每次进行一个新的连接时,都必须对整个光纤网络进行仔细调整;第二,光纤中传输的是光能,而不是电能。但是,通信线路中的诸如中继器、连接器和分接器等设备,可能是渗透点。
7.2.4 传输中的威胁:偷听与窃听(续) 无线通信 在防范入侵和骗取连接服务方面无线通信遇到了困难。无线通信主要的威胁不是干扰,而是截取。由于开放性,很容易对一个无线网络连接采用主动或者被动窃听技术。加上无线通信中通常不使用或使用很弱的加密技术,以及一些软件的缺陷,实施截取比想象中的要容易。另一个问题是:无线网络有骗取网络连接的可能性。很多主机都运行了动态主机配置协议(Dynamic Host Configuration Protocol,DHCP),通过该协议,一名客户可以从一个主机获得一个临时IP地址和连接。这个分配机制在用户鉴别方面存在大问题。此外,对这类问题的政策法规也不一致。
7.2.5 窃听技术总结 从安全的角度来看,我们应该假设在网络节点之间所有的通信链路都有被突破的可能。采用加强物理上和管理上的安全保护措施,对于本地连接十分必要。 图 7.10 网络在窃听技术中暴露的弱点
7.2.6 协议的缺陷 互联网联盟为方便详查所有因特网协议,而将它们公开张贴出来。每一种被接受的协议被分配了一个Internet (Request for Comment, RFC)标准(草案)编号。许多协议中存在的问题,被那些敏锐的检查者发现并得到了纠正。但协议本身可能还存在缺陷。
7.2.7 假冒 比采用窃听技术获取网络信息更简单的方法,是冒充另一个用户或另一个进程。在广域网中采用假冒技术比局域网中具有更大威胁。但局域网有时会在未经安全考虑的情况下,就被连接到一个更大的网络中去,这方面的问题也不容忽视。下面讨论一些常见的假冒方式: 通过猜测突破鉴别 方法有:通过简单猜测获取口令、猜测口令为默认口令、休眠账户结合社会工程学获取口令。
7.2.7 假冒(续) 以偷听或者窃听突破鉴别 鉴别的细节在网络上传输时,它们就暴露在网络上任何一个在监视通信的人面前。这样同样的鉴别细节可以被一个假冒者反复使用,直到它们被改变为止。 避开鉴别 对于一个有弱点或者缺陷的鉴别机制来说,攻击者可以绕开鉴别访问系统。在一个典型的操作系统缺陷中,用于接收输入口令的缓冲区大小是固定的,并对所有输入的字符进行计数,包括用于改错的退格符。如果用于输入的字符数量超过了缓冲区的容纳能力,就会出现溢出,从而导致操作系统省略对口令的比较,并把它当做经过了正确鉴别的口令一样对待。