互联网已成为当今许多机构的关键任务,包括大小公司、大学和政府机构。 许多人还依赖 Internet 进行许多专业、社交和个人活动。 目前,包括可穿戴设备和家用设备在内的数十亿“事物”正在连接到互联网。 但在所有这些实用和兴奋的背后,有一个阴暗面,即“坏人”试图通过破坏我们连接到互联网的计算机、侵犯我们的隐私以及使我们所依赖的互联网服务无法运行来对我们的日常生活造成严重破坏。
网络安全领域是关于坏人如何攻击计算机网络,以及我们,即将成为计算机网络专家的人,如何防御这些攻击,或者更好的是,设计新的体系结构,在第一时间对这些攻击免疫。鉴于现有攻击的频率和多样性,以及未来新的、更具破坏性的攻击的威胁,网络安全已成为计算机网络领域的一个中心话题。这本教科书的特点之一是它将网络安全问题带到了最前沿。

坏人可以通过互联网将恶意软件植入你的主机 The Bad Guys Can Put Malware into Your Host Via the Internet

我们将设备连接到 Internet,因为我们希望从/向 Internet 接收/发送数据。 这包括各种好东西,包括 Instagram 帖子、互联网搜索结果、流媒体音乐、视频电话会议、流媒体电影等等。 但是,不幸的是,伴随所有这些好东西而来的是恶意的东西——统称为恶意软件(malware)——它们也可以进入并感染我们的设备。 一旦恶意软件感染了我们的设备,它就可以做各种狡猾的事情,包括删除我们的文件和安装间谍软件(spyware)来收集我们的私人信息,例如社会安全号码、密码和键盘输入(keystrokes),然后发送这些信息(当然是通过互联网! ) 回到坏人那里。 我们的受感染主机也可能加入了一个由数千台类似受感染设备组成的网络,统称为僵尸网络(botnet),坏人控制并利用该网络进行垃圾邮件(spam)分发或分布式阻断服务攻击(distributed denial-of-service attacks)(即将讨论) 针对目标主机。
今天的大部分恶意软件都是自我复制(self-replicating)的:一旦它感染了一台主机,它就会从该主机寻求通过 Internet 进入其他主机,而从新感染的主机中,它会寻求进入更多主机。 通过这种方式,自我复制的恶意软件可以呈指数级快速传播。

坏人可以攻击服务器和网络基础设施 The Bad Guys Can Attack Servers and Network Infrastructure

另一类广泛的安全威胁称为阻断服务 (denial-of-service,DoS) 攻击。 顾名思义,DoS 攻击会使合法用户无法使用网络、主机或其他基础设施。 Web 服务器、电子邮件服务器、DNS 服务器(在第 2 章中讨论)和机构网络都可能受到 DoS 攻击。 站点数字攻击地图(Digital Attack Map)允许用于可视化全球 [DAM 2020] 每日排名靠前的 DoS 攻击。 大多数 Internet DoS 攻击属于以下三类之一:

  • 漏洞攻击(Vulnerability attack)。 这涉及向目标主机上运行的易受攻击的应用程序或操作系统发送一些精心设计的报文。 如果将正确的数据包序列发送到易受攻击的应用程序或操作系统,服务可能会停止,或者更糟糕的是,主机可能会崩溃。
  • 带宽泛洪(Bandwidth flooding)。 攻击者向目标主机发送大量数据包——如此之多的数据包导致目标的访问链接被阻塞,从而阻止合法数据包到达服务器。
  • 连接泛洪(Connection flooding)。 攻击者在目标主机上建立了大量半开或全开的 TCP 连接(TCP 连接在第 3 章中讨论)。 主机可能会因这些虚假连接而陷入困境,以至于停止接受合法连接。

image.png
Figure 1.25 ♦ A distributed denial-of-service attack
现在让我们更详细地探讨带宽泛洪攻击。回顾我们在 1.4.2 节中的延迟和损失分析讨论,很明显,如果服务器的访问速率为 R bps,那么攻击者将需要以大约 R bps 的速率发送流量才能造成损坏。如果 R 非常大,单个攻击源可能无法产生足够的流量来损害服务器。此外,如果所有流量都来自单个源,则上游路由器可能能够检测到攻击并在流量到达服务器附近之前阻止来自该源的所有流量。在分布式 DoS (distributed DoS,DDoS) 攻击中,如图 1.25 所示,攻击者控制多个源,并且每个源都向目标发送流量。使用这种方法,所有受控源的总流量率需要大约为 R 才能削弱服务。 DDoS 攻击利用僵尸网络和数千台主机构成的 DDoS 攻击如今很常见 [DAM 2020]。与来自单个主机的 DoS 攻击相比,DDos 攻击更难检测和防御。
我们鼓励您在阅读本书时考虑以下问题:计算机网络设计人员可以采取哪些措施来防御 DoS 攻击? 我们将看到三种类型的 DoS 攻击需要不同的防御。

坏人能够嗅探数据包 The Bad Guys Can Sniff Packets

如今,许多用户通过无线设备访问 Internet,例如连接 WiFi 的笔记本电脑或具有蜂窝 Internet 连接的手持设备(见第 7 章)。虽然无处不在的 Internet 访问极其方便,并且为移动用户提供了奇妙的新应用程序,但它也创造了一个重要的安全漏洞——通过在无线发射器附近放置一个被动接收器,该接收器可以获得传输的每个数据包的副本! 这些数据包可能包含各种敏感信息,包括密码、社会安全号码、商业机密和私人个人信息。 记录每个经过的数据包副本的被动接收器称为数据包嗅探器(packet sniffer)
嗅探器也可以部署在有线环境中。 在有线广播环境中,就像在许多以太网 LAN 中一样,数据包嗅探器可以获得通过 LAN 发送的广播数据包的副本。 如第 1.2 节所述,有线接入技术也会广播数据包,因此容易受到嗅探。 此外,获得接入机构的接入路由器或接入 Internet 链路的坏人可能能够植入嗅探器,复制进出机构的每个数据包。 然后可以离线分析嗅探的数据包以获取敏感信息。
数据包嗅探软件可在各种网站上免费获得,也可作为商业产品获得。 众所周知,教授网络课程的教授会布置实验练习,这些练习涉及编写数据包嗅探和应用层数据重建程序。 实际上,与本文相关的 Wireshark [Wireshark 2020] 实验(请参阅本章末尾的介绍性 Wireshark 实验)正是使用了这样的数据包嗅探器!
因为数据包嗅探器是被动的——也就是说,它们不会将数据包注入通道——它们很难被检测到。 因此,当我们将数据包发送到无线信道时,我们必须接受某些坏人可能正在记录我们数据包的副本的可能性。 您可能已经猜到了,一些针对数据包嗅探的最佳防御措施涉及加密。 我们将在第 8 章研究应用于网络安全的密码学。

坏人可以伪装成你信任的人 The Bad Guys Can Masquerade as Someone You Trust

创建一个具有任意源地址、数据包内容和目标地址的数据包,然后将这个手工制作的数据包传输到 Internet,这是非常容易的(在您继续阅读本文时,您很快就会掌握这样做的知识!) 这将尽职尽责地将数据包转发到其目的地。 想象一下,毫无戒心的接收者(比如互联网路由器)收到这样的数据包,将(虚假)源地址视为真实地址,然后执行一些嵌入到数据包内容中的命令(比如修改其转发表)。 将具有虚假源地址的数据包注入 Internet 的能力被称为 IP 欺骗(IP spoofing),并且只是一个用户可以伪装成另一个用户的众多方式之一。
为了解决这个问题,我们需要端点身份验证(end-point authentication),即一种允许我们确定消息是否来自我们认为的来源的机制。 再一次,我们鼓励您在阅读本书各章的过程中思考如何为网络应用程序和协议做到这一点。 我们将在第 8 章探讨端点身份验证机制。
在结束本节时,值得考虑一下互联网最初是如何变得如此不安全的地方。 本质上,答案是互联网最初设计成那样,基于“一组相互信任的用户连接到一个透明网络”[Blumenthal 2001] 的模型——一个(根据定义)不需要安全性的模型 。 原始互联网架构的许多方面都深刻地体现了这种相互信任的理念。 例如,一个用户向任何其他用户发送数据包的能力是默认的,而不是请求/授予的能力,并且用户身份是按声明的表面值(face value)获取的,而不是默认情况下进行身份验证。
但今天的互联网当然不涉及“相互信任的用户”。 尽管如此,今天的用户在不一定相互信任时仍然需要通信,可能希望匿名通信,可能通过第三方间接通信(例如,我们将在第 2 章中研究的 Web 缓存,或移动辅助代理 ,我们将在第 7 章中研究),并且可能不信任硬件、软件,甚至它们进行通信的空气。 随着本书的深入,我们现在面临许多与安全相关的挑战:我们应该寻求防御嗅探、端点伪装、中间人攻击、 DDoS 攻击、恶意软件等。 我们应该记住,相互信任的用户之间的通信是例外而不是规则。 欢迎来到现代计算机网络的世界!