构建零信任网络,自然离不开网络准入(NAC)。
一、网络接入控制(NAC)
NAC网络安全解决方案从用户角度考虑内部网络安全,通过对接入用户进行安全控制,提供“端到端”的安全保证。借助于NAC方案,实现“只有合法的用户、安全的终端才可以接入网络”,隔离非法、不安全的用户和终端,或者仅允许他们访问受限的资源。以此来提升整个网络的安全防护能力。
为什么需要网络接入控制?
在传统的园区网络建设思路中,一般认为园区内部网络是安全的,安全威胁主要来自外界。因此各种安全措施基本上都围绕着如何抵御外部的攻击来部署,如部署防火墙等。但是,许多重大的安全漏洞往往出现在网络内部,例如园区内部员工在浏览某些网站时,一些间谍软件、木马程序等恶意软件也会不知不觉地被下载到电脑中,并在内网传播,产生严重的安全隐患。因此,在园区网络中,任何一台终端的安全状态(主要是指终端的防病毒能力、补丁级别和系统安全设置)都将直接影响到整个网络的安全。另外,园区网络出现大量非法接入和非授权访问用户时,也会导致业务系统遭受破坏、关键信息资产泄漏的风险。
NAC方案能够有效的管理网络访问权限、及时的更新系统补丁、升级病毒库,让管理员更快捷的查找、隔离及修复不安全的终端,满足园区网络内部的安全需求。
网络接入控制具备哪些能力?
NAC具备以下能力:
1. 身份认证
对接入网络的用户身份进行合法性认证,只有合法用户才允许接入是园区网络安全的基本需求。园区网络中终端(例如PC等)用户的身份认证应满足如下需求:
符合安全要求的终端提供正确的用户名和密码后,可以正常接入网络。
不符合安全的终端,只能接入到网络隔离区,待终端安全修复后才能接入网络。
不合法的用户不允许接入网络。
2. 访问控制
根据用户身份、接入时间、接入地点、终端类型、终端来源、接入方式(简称5W1H)精细匹配用户,控制用户能够访问的资源。5W1H即:
who-谁接入了网络(员工、访客);
whose-谁的设备(公司标配、BYOD设备);
what-什么设备(PC、手机);
when-什么时间接入(上班、下班);
where-什么地点接入(研发区、非研发区、家里);
how-如何接入(有线、无线)。
3. 终端安全检查和控制
对用户终端的安全性进行检查,只有“健康的、安全的”用户终端才可以接入网络。安全性检查应满足如下需求:
对终端的安全性(杀毒软件安装、补丁更新、密码强度等)进行扫描,在接入网络前完成终端安全状态的检查。
对终端不安全状态能够与网络准入设备进行联动,当发现不安全终端接入网络的时候,能够对这些终端实现一定程度的阻断,防止这些终端对业务系统造成危害,并能够主动帮助这些终端完成安全状态的自修复。
对于未能及时修复的不安全终端,能够对其进行权限限制,避免接入网络,引发网络安全问题。
4. 系统修复和升级
如果系统存在安全隐患,NAC方案提供了系统自动和手动修复升级功能。可自动下载和升级系统补丁、触发病毒库的更新、自动杀死非法/违规进程等强制安全措施。
网络接入控制是如何实现的?
NAC方案包括三个关键组件:安全终端、网络准入设备、服务器系统。
NAC方案的组成:
安全终端:安全终端是安装在用户终端系统上的软件,是对用户终端进行身份认证、安全状态评估以及安全策略实施的主体。
网络准入设备:网络准入设备是网络中安全策略的实施点,负责按照客户网络制定的安全策略,实施相应的准入控制(允许、拒绝、隔离或限制)。
服务器系统:服务器系统包括准入控制服务器、病毒/补丁/软件服务器和业务服务器。
以企业网络为例,网络中的用户通常可以分为员工、合作伙伴和访客,针对不同的用户角色,NAC方案可实现为其定制不同的网络接入和权限控制规则。
- 员工:主要指具有固定办公地点以及长期工作合同的用户。员工通常使用公司设备作为办公设备,公司设备一般在员工领取时已预安装了安全终端,员工认证通过后一般具有公司网络充分的访问权限。
- 合作伙伴:主要指流动性较大,企业约束力较低的合作伙伴等。这些人员会在一定时期内接入企业网络,并访问网络内的部分服务器。这类人员通常也使用安装了安全终端的公司设备,但是,由于此类人员安全性较低,权限应当严格受控。
- 访客:主要指一次性接入企业网络的访客人员。通常通过无线方式接入,权限仅限于借助企业网络访问Internet,与员工、合作伙伴之间要进行严格隔离,以防止企业信息资产泄露。
网络接入控制的应用
NAC方案可以应用在很多网络场景中,例如企业园区网络场景、BYOD场景、物联网场景、公共WIFI网络场景等。
1. 企业网络
如上例,NAC方案在企业网络中通常会按照用户的角色,严格区分员工和非员工的网络访问权限。
2. BYOD
为满足企业员工对于新科技和个性化的追求、提高员工的工作效率,许多企业开始考虑允许员工自带智能设备(例如手机、平板或笔记本电脑等移动设备)接入企业内部网络,这就是BYOD(Bring Your Own Device)。员工自带的设备通常没有安装安全终端,接入企业内部网络可能会带来安全隐患。NAC方案借助终端类型识别技术,自动识别企业员工接入内部网络的设备类型,实现基于用户、设备类型及设备环境的认证和授权。
3. 物联网
大多数的物联网设备不支持传统的身份验证协议或安全证书。NAC方案通过物联网设备的电子规约信息(包括设备版本号、厂家信息、版本号、产品名称、终端类型等)自动识别物联网设备,之后,根据各自配置的安全策略,完成物联网设备的入网认证。
4. 公共WIFI网络
公共WIFI网络非常普及,几乎所有的咖啡馆、商店、机场、酒店和其他公共场所都为他们的顾客和访客提供了公共WiFi接入。对于完全开放的公共WIFI网络安全性很低,这是由于任何人、无需任何身份验证都可以登录,用户连接网络时需要慎重考虑。NAC提供微信认证、短信认证方案,用户接入公共WIFI时,通过微信扫码或者在Web Portal页面上输入手机号实现用户实名入网。
二、网络设备安全配置
1、网络设备安全
网络设备不仅允许用户建立强大的本地网络,还可以保护他们、他们的数据和他们的通信免受不必要的入侵者的攻击。但是,必须特别注意本地网络内的安全,因为内部攻击对用户来说可能是灾难性的。一旦人们相信所有的努力和资源都应该集中在保护用户免受外部入侵者的侵害上,内部安全就会被忽视。
通过在本地网络中引入高度可管理的设备,负责通信的人员可以设计高级拓扑,以支持有关连接和数据流的复杂需求。然而,配置大型功能集的可能性可能会导致缺少有趣的甚至是基本的功能。更重要的是,拥有如此多的配置选项可能会让人不知所措,最终只会专注于配置最少量的基本功能。对于需求量较小的网络来说,基本配置已经足够,但本地保护是一个不容忽视的方面。
本地网络包含个人计算机、共享资源和许多数据流;例如,考虑到云计算或物联网的广泛使用,这些数据流可能包含有价值的信息。通过加密或强大的防火墙,保护所有这些元素免受外部攻击者的攻击至关重要。然而,将所有关注点集中在外部保护上可能会忽略本地网络内部的安全性。本地网络保护也至关重要;如果攻击者能够访问本地基础设施,则本地网络中存在许多攻击向量,攻击者很容易利用这些攻击向量进行攻击,并且并不总是能够信任本地网络的所有内部用户。因此,忽视局域网保护可能是灾难性的。
源于本地网络的攻击目标是访问关键资源、获取密码等个人信息,甚至是拒绝服务。将网络设备安装为可配置的交换机和路由器可以添加安全层,与集线器连接的网络或基于基本交换机的网络相连接,从而使访问更加容易。
这就是为什么网络设备,除了在没有利用的情况下生产力有限之外,甚至可能成为一种威胁。这些设备由制造商提供,通常带有一组默认设置,以方便网络基础设施的插入和启动。这些设置可能会破坏网络并产生安全漏洞。对于攻击者来说,研究网络设备的默认设置并利用其漏洞绕过网络防御是一项微不足道的任务。
对于这些原因,它将被导入管理员和用户,以便在部署之前检查和测试新引入的网络设备的默认设置。了解局域网内的潜在攻击并了解适当网络设备的配置、功能及其好处也至关重要。本章旨在总结利用网络基础设施设置的最常见和最危险的局域网攻击向量。每一个攻击的理论基础将被描述为随后显示每个攻击下的网络行为及其影响通过实际场景。
实际网络场景允许通过更广泛地了解网络基础设施的不同元素上正在发生的事情来整合知识,并应对现实世界的挑战。然而,面对这些挑战时,资源(主要指物理网络设备)可能会受到限制;要研究的各种可能的拓扑和设置使得利用实际场景来探索这些概念成为一种复杂的方法,因为高级网络设备并不总是负担得起,并且构建各种真实的拓扑非常耗时。
必须考虑到,针对攻击的任何对策都不是最适合特定基础设施的。有些对策会影响网络的整体能力,如可伸缩性、灵活性或性能。没有针对每次攻击的全局正确解决方案。管理员应讨论哪种防御最适合其网络需求。
2、网络设备安全配置
网络设备是任何网络基础设施的基础。可以对它们进行管理和配置,以适应不同的需求。这些设备的出厂设置在大多数情况下足以启动功能性网络基础设施。但是,如本章所述,这些设置不建议使用默认设置,因为它们具有生成安全漏洞的能力。
要修改设备的默认设置,负责网络的人员需要访问设备并执行必要的命令以实现所需的配置。
必须限制对这些设备的访问,以防止不必要的入侵者修改已建立的设置。此外,应保护设备设置不被读取;尽管写入权限得到了彻底的保护,但了解网络基础设施的确切配置为攻击者打开了一个充满可能的世界,能够研究当前设置上的漏洞或安全漏洞,从而在不需要修改任何网络配置的情况下对其进行攻击。
出于这些原因,在访问策略和权限方面依靠可靠的设备配置是很重要的。否则,攻击者可能会破坏已建立的网络安全策略。
以下安全措施构成了确保网络设备保护所需完成任务的简单概述;但是,还存在更多高级功能,如AAA框架、监控、访问控制列表(ACL)等,以添加更多超出本章范围的安全层。
全局保护
默认情况下,访问设备的特权级别以启动其配置非常简单,因为此特权模式不受保护。当然,需要解决这些问题,以避免不必要的用户修改设备的配置。
有关网络安全的首要任务之一是通过配置密码来保护特权级别。下面的代码段显示了一个配置示例:
Device(config)# enable secret Device(config)# login block-for attempts within
前面的代码段配置了访问特权级别的密码,还配置了不同的参数。如果在内检测到个错误的访问尝试,登录过程将在期间被阻止。
此配置非常重要,应该是在新安装的设备上启动的第一个配置命令之一。“阻止(block-for)”操作可防止恶意攻击在处理登录功能时利用设备行为的溢出攻击:通过向设备中注入大量登录请求,可能会耗尽其资源,引发系统崩溃。
此配置可以防止的其他攻击是所谓的“字典攻击”。这些攻击寻求获得特权访问并危害设备。字典攻击是一个使用用户名和密码的随机组合的过程,通常通过脚本自动进行攻击,直到找到正确的用户名和密码。这就是为什么在检测到一些失败的登录尝试时阻止连接是至关重要的。
最后,虽然设置了阻止策略和密码,但在默认情况下,密码是以纯文本存储的。必须启用密码加密来修改这一危险行为。
控制台连接
有时,出厂设置仅允许设备通过物理端口(如控制台端口)进行首次连接,直到配置远程连接。这些设备可以通过默认用户名和密码进行保护。必须修改默认密码,因为在Internet上进行快速搜索后,可以快速发现特定设备的用户名/密码对,这意味着任何恶意用户都可以访问网络基础设施。
要解决此简单但危险的漏洞,必须更改默认登录数据,或者在未设置默认登录凭据的情况下保护控制台行。
该保护通过以下线路实现。
Device(config)# line console 0Device(config-line)# password Device(config-line)# exec-timeout Device(config-line)# login
这些命令指定通过控制台端口的访问将受到定义密码的保护。此外,可以定义非活动超时,以便在时间到期后停用该行。最后,必须指定在登录时进行密码检查。触发这些命令后,下次有人试图访问设备时,将提示登录页面。
远程连接
另一方面,网络设备允许远程访问它们,这更有用,因为它不需要与设备的物理连接。但是,对于远程连接有一些注意事项。
执行这些连接的默认协议通常是Telnet,由于其通信缺乏加密,因此本质上是不安全的。攻击者可以嗅探网络流量并执行合法操作以破坏设备的配置。这就是为什么应该通过更安全的协议(如SSH)来实现远程连接,该协议允许加密连接。
要将SSH用作执行远程连接的协议,首先必须生成一对RSA密钥,然后防止VTY线路下的非SSH连接。
Device(config)# line vty 0 Device(config-line)# transport input ssh
还可以定义访问控制列表(ACL),以便在这些线路上提供更细粒度的保护,避免不需要的主机,甚至尝试建立连接。网络管理员应确保不通过不安全的协议与设备建立连接,并执行所需的操作以限制访问。
三、局域网攻击
1、链路层
需要特别注意链路层攻击;这不仅是因为它们的性质,还因为它们允许攻击者执行更复杂的攻击,这是极其有害的攻击的基础。
这些攻击主要针对第二层设备(网桥、两层交换机等)。交换机是划分局域网的一种有用方式,因此,通过为连接到这些设备的每台机器提供一个专用网段,可以提供额外的安全层。
然而,为了提供其功能,交换机依赖于一些不完全安全的技术,在被攻击者利用时会打开安全漏洞。交换机背后的关键概念是其内容可寻址内存表(CAM表,也称为MAC地址表)。
为了防止这些设备像集线器一样工作(即,通过所有连接的端口将所有流量淹没,这是非常不安全的,因为任何连接的设备都可以嗅探不适合它们的网络流量),交换机存储MAC地址和传入数据帧的源端口之间的对应关系。通过存储这对值,交换机可以将网络流量唯一地转发到接收器连接的端口,从而避免通过所有链路系统地转发数据,从而分割本地网络。
MAC/端口对应关系存储在交换机的CAM表中。因此,攻击者主要关注如何破坏这些通信,以便能够嗅探到不适合他们的流量。正如将要描述的,交换机的CAM表损坏是极其危险的,是中间人(MITM)和欺骗攻击的基础。
另一方面,入侵者关注的焦点也是一个流行且重要的第二层协议:地址解析协议。该协议允许主机知道另一个设备的IP/MAC地址对应关系以启动通信。通过伪造带有假地址对应的数据帧,攻击者可以利用这种情况毒害设备的ARP表。
最后,尽管微不足道,但另一种类型的攻击可能会损害交换机的行为:CAM溢出攻击,其重点是交换机的资源耗尽。
欺骗攻击
正如其名称所示,欺骗攻击旨在伪造网络数据帧以模拟合法主机。这些攻击的威力来自ARP协议的设计和性质,以及伪造虚假网络数据帧的可能性。
ARP协议基于请求特定IP地址MAC地址信息的ARP请求消息。这些消息是广播的,如果目标主机的IP地址是发送方正在寻找的IP地址,则目标主机将以ARP回复进行响应。
主要问题来自ARP协议是无状态的,而主机可以发送无偿的ARP回复(即,ARP回复不响应以前的ARP请求)。通过伪造这些ARP回复,入侵者可以“毒害”ARP缓存或网络设备的CAM表,从而能够嗅探受害者的网络流量。
原理:
在每台主机都有一个ARP缓存表,缓存表中记录了IP地址与MAC地址的对应关系,而局域网数据传输依靠的是MAC地址。ARP缓存表机制存在一个缺陷,就是当请求主机收到ARP应答包后,不会去验证自己是否向对方主机发送过ARP请求包,就直接把这个返回包中的IP地址与MAC地址的对应关系保存进ARP缓存表中,如果原有相同IP对应关系,原有的则会被替换。
那么攻击者就可以发送恶意广播消息,告诉目标我是某某主机,毒化目标主机arp缓存表,这就是arp欺骗。
工具:
arpspoof
Ettercap
bettercap
arp攻击主要有如下两种场景:
arp断网攻击,主要原理是:毒化目标主机arp缓存表,欺骗网关地址。
中间人嗅探,主要原理是:目标主机和网关双向欺骗,需配合路由转发功能。
arp攻击演示:
这里,我们采用bettercap进行arp攻击演示。
攻击者:192.168.6.3
目标:192.168.6.5
1. 启动bettercap,如果机器有多网卡需指定对应网卡,http-ui根据个人喜好决定是否开启。具体命令如下所示:
sudo ./bettercap -caplet http-ui -iface en0
如下显示即为成功。
账号密码在http-ui.cap里面可以找到。
2. 主机探测:
进入LAN选项卡,开始进行主机探测。
也可以直接在终端输入命令开启,如下:
3. 配置开启arp欺骗
进入Advanced选项卡开始进行arp欺骗,如下所示。
默认会欺骗整个局域网主机,我们按需进行配置,配置目标ip,把fullduplex一起打开可以欺骗还可以网关(双向)。
然后回来LAN选项卡,可以看着这个小图标即为配置成功。
最后再来看下效果:
如上可以看到攻击成功的效果,目标机器arp表里面网关mac被改成了攻击者的mac。
再看看交换机的路由表也一样如此。
wireshark抓包结果如下,一目了然。
arp欺骗防御演示:
接下来我们再来看看交换机如何防护这种攻击。
进行简单配置后,达到了预期效果。
system-viewarp check enablearp user-ip-conflict record enable
为了更全面的防御各种ARP攻击,最后整理出如下配置:
system-viewarp check enable# arp spoofarp user-ip-conflict record enable# arp floodarp source-suppression enablearp source-suppression limit 100arp resolving-route enablearp resolving-route probe-count 5arp resolving-route probe-interval 3arp valid-check enablearp active-ack enable
dns欺骗演示:
原理:
需要和ARP欺骗配合使用,当ARP欺骗成功后,嗅探到对方发出的DNS请求数据包,分析数据包取得ID和端口号后,向目标发送自己构造好的一个DNS返回包,对方收到DNS应答包后,发现ID和端口号全部正确,即把返回数据包中的域名和对应的IP地址保存进DNS缓存表中,而后来的当真实的DNS应答包返回时则被丢弃。
工具:
Ettercap
bettercap
dns欺骗主要用途就是用来钓鱼。
思路:
配置并启用arp欺骗,配置dns欺骗。
此处为了方便演示,我们起了一台kali当web服务器,待会儿dns欺骗会用到。
再配置dns欺骗,此处用博客进行演示,让域名解析到192.168.6.3上,也是就之前配置好的kali。
然后我们在被欺骗的主机上主动发起dns查询,可以看到符合我们的预期。
我们再用wireshark筛选一下结果如下,可以看到成功伪造了dns应答包。
Bettercap更多模块使用,请直接查看官方文档。
https://www.bettercap.org/modules/
关于arp攻击最常见的就是上面演示的两种,除此之外还有一些攻击如arp泛洪之类的,由于操作比较简单,这里不做演示。可用下面工具进行测试:
https://github.com/davidgfnet/net-tools
https://github.com/EmreOvunc/ARP-Poisoning-Tool
中间人(MITM)攻击演示:
MITM攻击背后的想法基本上是攻击者位于通信的中间,通常是受害者主机和LAN默认网关[37 ]。为了实现这种情况,攻击者可以利用上述免费ARP回复消息。正如[6]中指出的,任何网元都必须接受ARP应答,尽管没有请求。
此攻击的工作流程如下:
- 攻击者确定了将被破坏的两个通信方(即两个受害者)。正是在这两个方面中,攻击者在逻辑上处于能够嗅探其所有相关流量的位置。
- 攻击者伪造包含虚假MAC/IP通信的ARP回复消息。通信将获取攻击者的MAC地址和第一个受害者的IP,以建立MAC/IP地址的假匹配。此ARP回复消息应发送给第二个受害者,以毒害其ARP表。
- 重复第二步,但在这种情况下,通信将获取攻击者的MAC地址和第二个受害者的IP。这个新的伪造ARP回复应该发送给第一个受害者。
- 第一个受害者将向合法IP地址发送网络数据包(即,第二个受害者的IP地址),但以太网帧将包含攻击者的MAC地址,因此网络帧将到达恶意主机。
- 恶意主机将根据其目的检查数据,然后将原始数据包转发给合法主机(即,第二名受害者)。
- 第二个受害者将收到数据包,就好像什么都没发生一样。
- 此攻击在两种方式下都有效,因此第二个受害者的数据包也将被攻击者拦截和转发。
攻击者一般将自己置于受害者主机和LAN的默认路由器中,以拦截受害者的所有通信,如图所示。
让我们考虑上图中的场景来说明MITM攻击的工作流。
首先,由于交换机造成的网络分段,攻击者无法嗅探受害者1流量。通过在不同的链接上执行ping命令和Wireshark,显然只能通过连接受害者和交换机的链接嗅探受害者1生成的消息(及其响应)。
如上攻击者执行 arpspoof命令,该命令发送带有虚假IP/MAC地址对应的免费ARP回复。在这种情况下,攻击者想让受害者相信IP地址为172.16.0.1(即,默认路由器)具有与攻击者对应的MAC。
当攻击正在执行时,可以看到受害者是如何接收到几个带有虚假信息的ARP回复消息的如上图。
如果攻击以两种方式执行(让路由器相信受害者的IP地址与攻击者的MAC地址相对应),入侵者可以嗅探两台设备之间的所有通信。
在这种情况下执行初始ping可以有效地表明,流量首先从受害者流向攻击者。然而,ICMP消息永远不会到达路由器,因为恶意主机没有启用IP转发,所以它会丢弃消息。
要完成攻击,恶意主机需要启用IP转发选项来处理接收到的消息并将其转发到原始目标。此外,有必要禁用ICMP重定向选项,以避免入侵者发送ICMP重定向消息(由于连续重定向,这可能使攻击非常冗长)。
通过再次执行从受害者到路由器的ping,可以清楚地看到由于ARP表中毒而导致的攻击成功,如下图。
在路由器的ARP表中,与172.16.0.102地址(受害者)关联的硬件地址是攻击者的MAC地址。
受害者的ARP表。
端口窃取演示:
端口窃取是另一种嗅探合法流量的方法,而不是针对恶意接收方。此攻击还利用ARP协议行为。端口窃取攻击的工作流程如下[38,39]:
- 攻击者识别受害者的MAC地址。
- 攻击者以受害者的MAC地址为源,不断向网络发送伪造的网络帧。
- 通过不断向网络发送这些消息,交换机会将受害者的MAC地址映射到攻击者连接后的端口。
- 由于入侵者能够嗅探到受害者的消息,交换机将通过攻击者的端口(自上次以受害者的MAC地址作为源的消息来自该端口)转发打算发送给受害者的帧。换句话说,攻击者“窃取”了受害者的端口,如下图。
前面的场景将用于说明此攻击。通过使用Ettercap,可以直接窃取交换机的端口。Ettercap伪造无偿的ARP的来源,并输入受害者的MAC地址,以迫使交换机了解这些地址位于攻击者端口后面。
此攻击的效果与前一场景中的效果相同。入侵者现在能够嗅到受害者之间的通信。在交换机的CAM表中,可以看到不同受害者的MAC地址如何映射到攻击者的端口,如上图。
端口窃取防御演示:
一方面,安全措施可能是被动的。被动技术包括监控网络流量和检查MAC和IP地址的不一致性。此解决方案的主要缺点是,在尝试检测可疑行为时存在时间延迟,因为一旦发现攻击,可能就太迟了,即使危险已经减轻,也可能已经造成损害。
另一方面,主动技术涉及大多数可管理交换机(Cisco、Netgear和Juniper等)中存在的一些方法。动态ARP检测(DAI)方法是可管理交换机最强大、最灵活的功能之一,可为此类攻击提供保护。
启用DAI功能的交换机将截获通过不受信任的端口接收的所有ARP消息,并验证MAC/IP通信是否合法。为了验证这些对应关系,交换机使用了HCPSNooping数据库,其中存储了通过DHCP获得的MAC/IP地址,如上图。也可以使用ACL来验证这些通信,但建议使用DHCP侦听。
设置ip dhcp窥探功能后,必须将合法dhcp服务器连接的端口标记为“受信任”。
激活DHCP窥探和ARP检查功能(将所有端口标记为不受信任,以确保转发前的帧验证)后,攻击者无法再执行ARP欺骗技术来毒害设备的ARP表,因为交换机拒绝任何不受信任的数据包(即。E具有MAC/IP通信的任何数据包(未存储在DHCP侦听绑定数据库中)。
MAC洪泛攻击演示:
如前所述,ARP回复可以被伪造并无偿地发送。这开辟了另一个攻击载体,重点是溢出的第二层设备。通过不断地用假的ARP回复高频率地充斥网络,这些设备的CAM表将始终是满的。
此攻击可能在交换机上引发两种不同的行为,具体取决于实现。一方面,如果交换机的CAM表已满,则无法映射任何其他MAC/IP通信,从而导致合法帧被丢弃。CAM表溢出随后发展为拒绝服务攻击,阻止授权用户发送消息。另一方面,MAC泛洪攻击可能会在交换机上引发另一种危险行为,如上图所示,当CAM表溢出成功时,交换机可能会将其模式还原为广播模式,这意味着交换机将失去其网络分段优势,表现得像一个集线器。
让我们考虑前一种情况。通过macof工具,攻击者伪造带有随机MAC地址的随机消息,使交换机的CAM表溢出。成功的攻击将填充此表,直到没有更多可用空间。
如上所述,这种攻击的效果是交换机将开始像集线器一样工作,通过其所有端口转发每个以太网帧,并失去其分段功能。
MAC洪泛攻击防御演示:
端口安全功能可用作MAC洪泛攻击的对策。此功能使管理员能够确定端口后面允许的不同MAC地址的数量限制。它还允许管理员选择要在攻击下采取的操作,甚至可以关闭攻击源。
例如,通过向模拟交换机添加违规关闭策略,攻击者无法继续发送消息,因为端口已关闭,如上图。
使用保护和限制策略,端口仍处于打开状态,但它不接受来自不受信任MAC地址(即,检测到冲突错误后找到的MAC地址)。这是通过将在端口后面找到的第一个MAC地址配置为静态,如上图,并且不通过该端口接受任何不是来自该MAC地址的消息来实现的。
可以观察攻击者在尝试执行攻击后是如何自动失去连接的,如上图。
通过配置端口安全性,可以减轻网络管理员在发现异常后手动关闭端口的负担。
双重标记攻击演示:
通过在物理基础设施之上定义虚拟网络,虚拟局域网是向LAN添加更多分段的一种有用方式。配置VLAN被视为一种良好的安全实践,因为从逻辑角度来看,每个VLAN都将作为一个单独的LAN。例如,特定VLAN中的攻击者无法对连接到不同VLAN的主机执行MITM攻击。
但是,需要解决一些默认设置,以避免与此机制相关的漏洞。
中继端口
中继端口可以节省用于交换机互连的端口。通过定义中继端口,所有配置的VLAN流量将流经单个端口。为了确定每个数据帧属于哪个VLAN,交换机依赖于IEEE 802.1Q协议。
但是,对于中继端口存在危险的Cisco默认设置,该设置可能允许访问恶意交换机的入侵者获得中继端口,能够接收来自所有VLAN的所有流量,从而绕过VLAN安全层。动态中继协议允许交换机自动协商两台交换机之间的中继端口。为此,网络管理员可以使用不同的值配置端口的工作模式。当交换机发现另一个交换机时,根据这些值,协商可以自动将端口更改为中继端口。如所示,工作模式值的对应关系可参考下表。
上表说明了访问本地交换机的攻击者能够调整其交换机的工作模式,从而自动更改远程交换机端口的工作方法,使其作为中继端口运行。
本机VLAN
本机VLAN是用于中继端口的VLAN,它是将不支持802.1Q协议的交换机与支持802.1Q协议的交换机互连的解决方案。因此,本机VLAN不需要使用相应的VLAN标识符进行标记。
某些交换机上的出厂设置将本机VLAN定义为VLAN 1,默认情况下,所有交换机端口都属于该VLAN。此漏洞可被攻击者利用,因为它允许执行双重标记攻击。
双重标记攻击分四个步骤执行,如上图:
- 攻击者识别受害者连接的VLAN。
- 攻击者通过属于本机VLAN的端口连接到交换机,并发送带有两个VLAN标识符标记的帧:本机VLAN标识符和受害者的VLAN标识符。
- 交换机接收帧并检查标记,剥离本机VLAN标记。由于本机VLAN帧不需要标记,交换机现在只通过攻击者引入的第二个标记通过其中继端口转发帧。
- 接收帧的下一个交换机检查标记并将其转发到相应的VLAN,到达攻击者不应到达的主机(因为它们不属于同一VLAN)。
使用上图中的场景,攻击者的目标是与不在同一VLAN上的主机通信(这在一开始是不可能的)。
攻击者使用Yersinia向交换机发送DTP消息,以协商端口的工作模式,如上图。鉴于默认模式为“动态自动”,攻击者可以通过使用“动态理想”或“中继”配置获得中继端口。
可以通过显示交换机接口的状态来观察攻击是否成功:Gi0/1接口(攻击者连接到的接口)现在标记为中继链路,如上图。
攻击者现在可以利用目标VLAN标识符伪造以太网帧,并与受害者通信,如上图。
另一方面,由于攻击者连接到VLAN 1,默认情况下,VLAN 1是主干端口上使用的本机VLAN,因此它还可以使用Y ersinia执行双重标记攻击(图6.21)。
交换机将剥离本机VLAN标记,并向受害者发送伪造消息,由于交换机的默认设置,该消息是成功跳转的VLAN。
双重标记攻击防御:
在这种情况下,对策很简单。可以在所有端口中停用DTP协议,以缓解中继端口(即,配置交换机端口非协商策略)。如果需要定义这些类型的端口,建议手动定义,这是一种不太灵活但更安全的做法。
另一方面,为了防止双重标记攻击,应将本机VLAN更改为不用于连接主机的其他VLAN。此操作确保本机VLAN专用于中继端口,覆盖危险的VLAN 1默认设置。
2、网络层
网络层攻击主要针对第三层设备,尤其是路由器(但也包括主机)。第三层攻击主要是通过破坏路由表来欺骗IP地址。路由表是该层中的关键资源;第三层设备的路由功能由先前学习的路由支持。
网络层支持Internet协议(IP)的一些协议可能会影响LAN的安全性。互联网控制消息协议(ICMP)是这些协议之一:它提供发送错误消息或操作信息的能力,以监控通信。ICMP消息很有用,但在特定情况下,ICMP重定向类型之类的消息可能会被用来用虚假信息毒害设备的路由表。
但是,在这个级别上,如果没有相应地检查和修改路由器的默认设置,还存在其他可能导致拒绝服务攻击的漏洞,这些漏洞需要同等关注。
基于ICMP的欺骗攻击演示:
ICMP重定向消息有助于加快查找到特定目的地的最有效路由的过程。如果网络依赖于两个网关并且其中一个路由是默认网关,则任何主机都将首先向该特定路由器发送每个消息。
但是,在检查数据包的目的地之后,默认网关可以确定该路由是否是到目标网络的最短路径。如果不是这样,默认路由器将发送ICMP重定向消息,通知发送方到达目的地的最佳路由是通过另一个LAN的网关。随后发送到目的地网络的信息将由二级网关路由,因为它将更有效率。通过ICMP重定向消息修改发送方的路由表,可以实现此行为。
攻击者可以伪造ICMP重定向消息以伪造其内容,并假装默认网关已更改主机以执行MITM攻击,如下图。
该程序将在第2层部分中使用的第一个场景之后描述。首先,受害者的路由表是合法的,默认目的地的网关是合法的路由器,如下图。
攻击者伪造ICMP重定向消息以修改受害者的路由表。为此,使用icmpush[48,49],入侵者宣布到达路由器的最佳下一跳是攻击者本身,如下图。
如果受害者易受伤害(即:如果启用ICMP重定向消息的接受,其路由表将被破坏。事实上,路由表下图,显示了受害者现在将如何首先向攻击者(172.16.0.101)发送打算发送给路由器(172.16.0.1)的消息。
在这种情况下,攻击者可以嗅到受害者的流量。
基于ICMP的欺骗攻击防御
一些设备默认接受ICMP重定向消息,正如所观察到的,这可能导致MITM攻击。这次攻击的对策是微不足道的。每个设备都应配置为拒绝任何ICMP重定向消息。
但是,如果LAN中需要ICMP重定向功能,则设备必须仅接受来自合法来源(即,受信任的局域网网关)。
洪水攻击演示:
正如在其他场景中所看到的,没有任何设备能够完全抵御拒绝服务漏洞。在这个级别上,一个非常简单的攻击可以破坏整个LAN的资源:smurf攻击。此攻击利用ICMP回显请求消息[50]并以大型局域网为目标,使受害者的系统溢出。
smurf攻击工作流程很简单:
- 攻击者伪造ICMP回送请求消息,受害者的IP作为源,大型LAN的广播地址作为目标。
- 如果目标LAN易受攻击,则每个连接的主机将响应回显请求,并向受害者的IP地址发送ICMP回显回复消息。
- 受害者将收到大量可能使系统过载的消息。
试图进行这种攻击的缺点是,现在很难找到一个有这种漏洞的足够大的局域网。鉴于必须有一个大的局域网,这种攻击不容易在虚拟环境中复制,因为它将消耗大量的资源。鉴于大局的必要性,这种攻击不能轻易地在虚拟环境中复制,因为它将消耗大量的资源。
这里主要采用yersinia进行演示:
https://github.com/kamorin/DHCPig
https://github.com/tomac/yersinia
yersinia是一款针对交换机二层网络的攻击工具,功能包括:支持针对以下网络协议的攻击:
生成树协议 (STP)
思科发现协议 (CDP)
动态中继协议 (DTP)
动态主机配置协议 (DHCP)
热备路由器协议 (HSRP)
802.1q
802.1x
交换机间链路协议 (ISL)
VLAN 中继协议 (VTP)
以图形化界面方式启动
yersinia -G
配置并启动dhcp攻击
开始前,先看看dhcp的ip使用情况,可以看到一切正常。
回到kali开始配置,切换到DHCP选项卡,可以看到支持四种模式,我们只需要选择支持dos的就可以发起DHCP Flood攻击。
kali发起攻击后,到交换机再看ip池的使用,如下图可以看到已经使用了很多ip。这种攻击主要是把dhcp的ip池占满,那么别的客户端就不能正常获取ip了。
洪水攻击防御
通过简单地禁用定向广播功能,可以拒绝应用此攻击。这是目前的默认行为,但检查并了解可能导致此选项配置错误的损害非常重要。
# 配置DHCP Flood攻击检测最大报文数为2,检测时间为9000毫秒dhcp flood-protection threshold 2 9000# 配置DHCP Flood攻击表项老化时间为90秒dhcp flood-protection aging-time 90# 配置DHCP Snooping
3、传输层
传输层攻击更侧重于网络设备的耗尽和拒绝服务。在这一层上的协议中,有两种最流行的传输协议:TCP和UDP协议。
TCP和UDP协议提供了可利用的上下文来执行DoS攻击。正如前面所指出的,泛洪网络是一种简单但有效的方式,可以使其系统过载并造成灾难性破坏,因此有必要了解可以采取哪些安全措施来防止DoS攻击。
UDP泛洪攻击演示:
顾名思义,执行此攻击的过程很简单:用UDP数据包以高速率向随机端口泛洪网络。通过执行此攻击,受害者设备必须:
- 检查是否有任何应用程序正在通过该端口侦听
- 如果不是这样,受害者必须构建ICMP目的地不可访问消息,并将其发送到UDP数据包的源(可能是一个假的IP地址,以避免攻击转向入侵者)。
网络将充斥UDP数据包和ICMP消息,此外,受害者设备上的CPU负担可能会使系统冻结。
首先,路由器的CPU(在这种情况下,它将是受害者)在没有流量的初始情况下显示正常的CPU负载。
通过这种实际场景,攻击者的注意力集中在通过将路由器的CPU负载增加到极限来破坏路由器的功能。使用hping3工具,可以执行UDP洪水攻击。一旦攻击开始,流量捕获显示了攻击是如何工作的,如下图:由于恶意UDP消息中指定的随机端口,路由器不断向攻击者定义的目的地(在本例中为IP地址为172.16.0.103的机器)发送ICMP目的地不可访问的消息。
可以观察到路由器的CPU被“显示进程”命令过载。这种攻击可能导致拒绝服务的情况,迫使路由器由于其高CPU利用率而丢弃合法数据包,如下图。
UDP泛洪攻击防御演示:
通过实施流量策略来限制接收到的UDP数据包的速率,以保护设备免受UDP洪泛,可以防止这些攻击。
如果UDP流量限制在10000字节/秒(理想值可能因网络基础设施而异),路由器的CPU将不再过载,因为它会丢弃任何违反策略的数据包,如下图。
在这种情况下,可以观察到,在相同的攻击下,路由器的CPU的负载比未部署策略时少,并且没有达到其100%的容量,如下图。
TCP SYN洪泛攻击演示:
此攻击的基础与以前的洪泛攻击类似,但在这种情况下,攻击者利用TCP协议工作流,尤其是TCP SYN消息。
通过不断地向目标设备发送TCP SYN消息,但从不响应相应的TCP SYN-ACK消息,受害者将腾出资源来徒劳地建立连接,如下图。
攻击者可以垄断受害者的所有资源,合法用户无法创建实际连接(即,拒绝为受害者提供服务)。
为了描述此攻击,使用了与UDP泛洪中相同的场景。在本例中,受害者是部署了默认Apache服务器的主机。如果另一个主机试图访问该网站,默认主页将毫无问题地显示出来。
攻击者通过metasploit的TCP模块执行TCP SYN洪水攻击。可以看出,攻击的执行会引发多个TCP流量,如下图。
在这些情况下,服务器无法接受任何新连接,因为它消耗了资源。如果主机试图重新访问服务器,它将无法建立连接。
TCP SYN洪泛攻击防御:
有不同的措施来防止这种攻击。通过配置TCP拦截功能,网关可以确定是否要建立连接,或者这是否是潜在的TCP SYN攻击。启用此功能后,路由器将管理半开放的连接,防止服务器消耗资源,直到路由器接收到TCP ACK消息,并在证明连接合法时将其最终转发给服务器。路由器丢弃在定义的时间间隔内未确认的半开连接。
但是,如果攻击者位于LAN内部(如前一个场景中),则应在服务器中引入保护。可以配置防火墙以及SYN cookie保护。
3、应用层
最后一节将概述低级攻击如何危害DHCP协议等基本服务。其他应用层服务可能会受到恶意攻击,如HTTP/HTTPS协议或DNS协议,但鉴于其复杂性和扩展性,对这些协议的攻击超出本章的范围。
DHCP协议的攻击演示:
动态主机配置协议(DHCP)允许主机按照客户机-服务器模式自动配置其网络参数(如有效IP地址、默认路由器IP地址、DNS服务器地址等)。在交换一系列消息后,主机将通过在LAN上发现已配置的DHCP服务器来尝试协商参数。
对这一关键服务的依赖也是攻击者的目标。命名为DHCP饥饿攻击,然后使用恶意DHCP服务器[56],可能使目标主机信任恶意服务器提供的信息,从而成为MITM攻击的受害者。
攻击者可以通过以下方式利用DHCP进行攻击:
通过使用来自伪造MAC地址的多个DHCP请求淹没网络,攻击者可以以所有可用IP地址结束。
如果上一步成功,则任何合法主机都将能够获得IP地址(在此阶段成为DoS攻击)。
然后,攻击者可以使用恶意DHCP服务器,该服务器被配置为根据其用途提供有害的网络参数。
例如,如果攻击者将默认路由器DHCP参数配置为针对恶意主机的IP地址,则可能会执行MITM攻击,因为攻击者将首先处理受害者在LAN外部发送的所有消息,如下图。
攻击者可以使用dhcpx之类的工具执行DHCP饥饿攻击。
该工具负责发送几个DHCP请求消息以租用所有可用的IP地址。DHCP服务器将接收这些请求并相应地分配IP地址,直到用完可用的IP地址为止,如下图。
通过观察受害者DHCP服务器(本例中为路由器)上的DHCP绑定表,如下图,可以看到攻击的效果。该表显示了攻击者伪造的几个随机MAC地址的IP绑定。
执行此攻击后,由于服务器上存在多个IP绑定,合法主机无法获取其网络参数,从而引发拒绝服务情况。
如果饥饿攻击成功,攻击者现在可以在网络上开发一个恶意DHCP服务器并提供伪造的网络参数(例如,将自己作为默认网关来执行MITM攻击,如下图所示)。
DHCP协议的攻击防御演示:
针对所提出的DHCP攻击的对策与ARP欺骗类似。攻击需要删除DHCP地址的原因使DHCP服务器相信有多台主机请求网络参数。如果端口安全性配置为限制端口后面不同数量的MAC地址,则攻击将不成功。
为了用一个例子来证明这种技术,在攻击者端口后面设置了四个MAC地址的限制。
可以检查,尽管攻击者正在执行攻击,但交换机只允许前四个DHCP请求,拒绝来自不同MAC地址的任何新消息。DHCP绑定表显示了端口安全策略中指定的仅租用四个IP地址的方式。
DHCP窥探技术还可以防止连接到不受信任端口的设备部署恶意DHCP服务器。通过将未连接到合法DHCP服务器的任何端口声明为不受信任,交换机将不会转发来自它们的DHCP提供。可以观察到,尽管攻击者不断发送恶意DHCP提供消息,但受害者没有收到任何消息,因为交换机正在拦截这些消息,因为它们来自不受信任的端口。
总结
当网络设备配置不正确时,很容易利用LAN漏洞。依赖易于部署的设备是很重要的,但为了支持即时功能,不能忽略它们的安全设置。
链接层部分是本章关于漏洞和安全问题的最广泛部分。链路层攻击利用低级漏洞,并允许攻击者利用此级别的弱点,为执行更高级的攻击提供基础。这就是链路层保护至关重要的原因,了解默认设置如何危害协议堆栈中的这一重要层也是至关重要的。
例如,基于ARP协议的攻击可以毒害设备的ARP表,使其相信伪造的MAC/IP地址通信,从而执行MITM攻击并随后窃取机密信息。通过在第2层设备上配置动态ARP检查等措施,这些设备负责关闭此类攻击,从而减轻更高层设备(如合法主机)的责任。
几乎每一层都存在洪水袭击。这些攻击的重点是引发拒绝服务,如果不限制某些网络功能(如UDP洪泛对策中所示,需要建立流量限制率以避免DoS攻击),则很难防止这些攻击。数据包过滤也会影响网络性能,因为在实际处理数据包之前必须检查每个数据包。
在应用程序级别,DHCP饥饿和恶意技术已经得到解决。在这个级别上有更多易受攻击的应用程序,但DHCP是一种基本的网络服务。如果受到威胁,主机可能会保持脱机状态,直到服务恢复,因为它们没有配置有效的IP地址。如前所述,攻击者可以利用这种情况执行DoS攻击或引入假DHCP服务器来欺骗网络信息。
通过这些场景,可以注意到所选网络攻击的重点是拦截通信(例如。通过多种技术执行MITM攻击)或拒绝它们(DoS攻击)。如今,信息是公司、机构的重要资产,当然,也是普通用户的重要资产。当攻击成功时,密码、文件、个人数据等是入侵者的奖励。出于这个原因,攻击者通过欺骗合法地址、毒害设备的网络信息等来寻找破坏通信的方法。
本章中描述的对策通过充分配置网络设备,有助于防止这些攻击。然而,安全措施是有代价的。并非所有对策都符合既定的网络要求。正如在前面的场景中所看到的,其中一些配置可能导致网络基础设施缺乏灵活性,例如,通过配置静态IP/MAC地址通信。这就是为什么有必要针对所需的安全级别配置这些措施。一些网络基础设施不太关心灵活性和性能,需要更强大的安全屏障,反之亦然。在开始配置设备之前,了解受管网络基础设施及其用途至关重要。
本章介绍了通过遵循OSI模型结构组织的最常见和最危险的网络攻击。然而,由于这些元件从制造商处交付时通常具有脆弱的安全设置,例如缺乏对管理访问的保护,因此也解释了总体设备配置。在链路层部分,描述了一些破坏交换机及其协议的技术。泛洪攻击的目标是溢出交换机的CAM表,而欺骗攻击的目标是“窃取”其他合法主机的MAC地址。
链路层级别依赖于VLAN等功能,但需要进行适当的配置,以避免不必要的漏洞被利用,如中继端口管理或双重标记攻击。
在网络层部分欺骗和洪泛攻击也得到了解决,在这一级别,攻击的目标是设备的路由表。攻击者利用第三层协议(如ICMP)利用伪造或恶意路由毒害这些表。
在传输层,主要关注的是耗尽设备资源以引发拒绝服务。在这种情况下,会利用TCP和UDP工作流来增加CPU使用率,直到达到设备的限制,从而引发系统崩溃。
最后,DHCP协议漏洞已在应用层部分出现。此级别的攻击试图破坏DHCP等高级服务,以执行MITM攻击或嗅探受害者的流量。