IPv6“友邻发现”(ND)是IPv6协议栈的核心部分,它被用于IPv6地址解析和IPv6无状态地址自动配置等。在本文中,探讨了IPv6的不同组件将如何受到基于ND的攻击。
在部署IPv6无状态地址自动配置(SLAAC)时都需要IPv6节点。在SLAAC中,本地路由器将IPv6网络配置信息提供给本地主机,而本地主机利用这一信息来建立起IPv6连接,这包括IPv6地址的配置等。与动态主机配置协议版本6不同,这里没有地址“租用”。相反地,主机会自己自动配置(或“租用”)IPv6地址。SLAAC采用路由器请求和路由器通告消息来请求和传达IPv6网络及IPv6地址管理配置信息。自动配置过程的运作大致如下:
1. 主机配置链路本地地址;
2. 主机检查地址是否唯一,即主机对(暂时)地址执行重复地址检测(DAD);
3. 主机发送路由器请求消息;
4. 在接收路由器通告(RA)后,主机为接收的路由器通告中的每个前缀配置一个或多个暂时IPv6地址;
5. 主机检查地址是否唯一,即对暂时地址执行DAD;
6. 如果地址是唯一的,它通常会成为“首选”地址,可以积极用于网络通信。
在本质上,这意味着一个节点首先配置一个链路本地IPv6地址,然后基于RA消息中的前缀信息配置一个或多个全局IPv6地址。RA消息可能获取其他网络配置信息,例如到特定网络的IPv6路径、递归域名系统服务器的IPv6地址以及采用的最大传输单元(即最大数据包大小)。
有些IPv6部署未能对RA消息中的信息执行验证检查,或者未能执行对相应数据结构的大小限制。
例如,有些部署会对RA消息中的每个前缀配置一个地址,而不会对它们配置的IPv6地址的最大数量进行任何限制。因此,攻击者可以对具有多个RA消息(包含多个自动配置前缀)的受害者采用洪水式攻击,受害者将自动配置很多IPv6地址,最终将会崩溃或停止响应。
为了帮助了解这种攻击的基础,IT管理员可以利用SI6 Networks的IPv6工具包中的ra6工具来执行这种攻击,如下:
ra6 -i eth0 --flood-prefixes 10 -d ff02::1 -l -z 1 -v
这个命令将会向所有本地节点发送一个RA消息,每秒包含10个(随机)前缀。这将导致每个节点为每个随机前缀配置一个IPv6地址。
在Unix系统中,ifconfig命令可以部署在任何受害者的节点来检查已经自动配置的IPv6地址。
图1 ifconfig命令可以用来探测自动配置的地址
当然,在现实世界攻击中,RA消息将以更高的速率发送,例如每秒至少100。然而,由于这种攻击可能让所有本地节点崩溃,本例中采用了更保守的数据包速率来执行攻击。
所有RA消息包含路由器寿命值,这表明路由器发送消息多久后可以作为默认路由器。本地主机从RA消息获取这个数值,并通过本地定时器来追踪它。本地路由器通过定期发送(未请求的)RA消息来试图“更新”本地主机的相关定时器。因此,在正常情况下,路由器的寿命永远不会到期。然而,攻击者可以利用这个定时器或参数来用于拒绝服务(DoS)目的。如果攻击者能够模拟本地路由器,并发送路由器寿命值为0(或其他小数值)的RA消息,受害者节点将从默认路由器列表中删除假冒路由器,从而发生拒绝服务的情况。
假设特定子网的合法本地路由器是fe80::1,攻击者会按如下命令利用ra6来向所有本地节点来执行DoS攻击:
ra6 -i eth0 -s fe80::1 -d ff02::1 -t 0
“-i eth0”表明发动攻击所使用的网络接口;“-s fe80::1”表明攻击数据包的源地址(合法本地路由器被假冒);“-d ff02::1”表示攻击数据包被发送到“所有节点链路本地多播地址”,而“-t 0”设置“路由器寿命值”为0。
Netstat命令可以用来检查受害者节点的路由表,并确认指向fe80::1节点的默认路径已被删除。
在IPv6地址被用于网络通信之前,该地址需要检查唯一性—这通常被称为重复地址检测。DAD的工作原理大致如下:
·愿意使用IPv6地址的节点将为上述地址发送一个邻居请求(NS)消息
·如果在响应中收到邻居通告(NA),该地址被认为是重复的,那么DAD失败。
·如果没有收到该地址的NA消息(可能是在一系列NS消息重发后),该地址被认为是唯一,DAD成功。
DAD相应的NS消息被发送,其中包含设置为未指定地址(::)的源地址,因此这很容易区别于用于地址解析(而不是重复地址检测)的NS消息。
攻击者可以通过如下命令利用na6工具来轻松地执行针对本地节点的DoS攻击:
na6 -i eth0 -b :: -L -v
这个命令指示na6监听(“-L”)网络接口eth0中包含源地址设置为未指定地址(“-b::”)的NS消息,当收到这种消息时响应NA。因此,当节点被引导并尝试自动配置IPv6地址时,它试图配置的每个地址都会被认为是重复地址,则SLAAC会失败。
Ifconfig命令可以用来检查受害者网络接口卡的配置,如下:
图2 检查网络接口卡的配置
从上面的截图中来,至少要注意两件事情。首先,链路本地地址被标记为“重复”。其次,这个接口没有配置全局IPv6地址,原因在于,当暂时链路本地地址的DAD失败时,SLAAC被终止。因此,DoS攻击会发生。
网络不可达检测(NUD)是IPv6的另一个组件,包括测试到相邻节点的路径,如果当前路径失效还可以允许选择替代路径。最重要的是,攻击者为感染NUD唯一能做的事情是让该协议来相信失败路径可以正常工作。
与其他基于ND的攻击相比,这个漏洞并不是那么吸引攻击者,因此,大家并不需要过多担心这个攻击方法。
好文章,需要你的鼓励
DeepSeek 的 AI 模型在处理效率方面取得重大突破,可能对数据中心产生深远影响。尽管引发了科技股抛售,但业内专家认为,这项创新将推动 AI 应用普及,促进大规模和分布式数据中心基础设施需求增长。更高效的 AI 算法有望降低成本、扩大应用范围,从而加速数据中心行业发展。
Rivian 正全面推进 AI 技术整合,开发下一代电动车平台,以挑战特斯拉的市场地位。公司计划于 2025 年实现免手驾驶,2026 年达到 L3 级自动驾驶。Rivian 还将在车载系统中广泛应用 AI 技术,提供语音交互等功能,并计划推出更实惠的车型,扩大市场份额。
Postman 发布了 AI 代理构建器,这是一款创新的生成式 AI 工具。它允许开发者通过整合大语言模型、API 和工作流程来设计、构建、测试和部署智能代理。这一工具旨在简化 API 交互、优化工作流程,并支持创建能执行复杂任务的智能代理,标志着 API 优先的 AI 开发迈出了重要一步。
微软第二财季利润同比增长10%,人工智能年化收入达130亿美元。然而,云计算业务未达预期,下季度指引不及预期,导致盘后股价下跌。公司资本支出创新高,以满足AI和云需求。尽管Azure增长放缓,但微软对下半年增速加快持乐观态度。同时,中国AI初创公司DeepSeek的崛起引发业界对AI基础设施投资的重新审视。