本节书摘来异步社区《IPv6安全》一书中的第2章,第2.3节,作者:【美】Scott Hogg , Eric Vyncke,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.3 IPv6网络勘察

IPv6安全
任何类型的攻击的第一个阶段通常都涉及对目标的勘察。攻击者首先评估目标,确定穿透防御的最容易的方法以及实施攻击的最优方式,并确定攻击实际上是否会成功。计算机黑客以几乎相同的方式进行操作。虽然不能在物理上看到受害者,但勘察都可在0~1秒内发生。黑客们在网络的黑暗中摸索道路,寻找一个可能目标的征兆。下面各节讲解攻击者发现IPv6节点并试图攻击它们所采取的步骤。

2.3.1 扫描并评估目标

典型情况下,黑客开始其攻击首先要寻找一个目标,方法是使用ping扫查目标的位置。在IPv4网络中,攻击生命周期的这一个阶段是相对容易实施的。匿名性技术用于掩盖攻击者的源IP地址,且当进行调查跟踪时,提供匿名功能。细心的攻击者可以非常缓慢地执行扫描,方法是一秒仅发送数个数据包,以避免触发入侵检测传感器。多数针对IPv4网络的入侵检测系统(IDS)能够检测扫描,但未必能够检测隐蔽的扫描。相反地,在如此多的攻击冲击一个组织机构的Internet边缘时,典型情况下,即使不隐蔽的扫描也不会被检测到,原因是很少有安全管理人员那么仔细地审视他们的日志。

1 注册表检查
可以通过如下方法进行网络勘察:检查注册表(例如whois)、检查DNS(nslookup、dig、递归解析等)、检查路由仲裁数据库(RADB)、检查公共查找眼镜(glasses)、检查traceroute发现,以及使用流行的搜索引擎寻找本组织拥有的目标IP地址的信息。通过网络甚檫将识别需进一步检查计算机主机(host)。之后扫描主机范围内的IP地址。

因为对人类而言,较大型的地址是难以记忆的,所以IPv6更多地依赖DNS。许多人能够容易地记住一个10位数字的电话号码或一个IPv4地址。但是,IPv6地址长度为128比特,以8个4位十六进制字符段表示,这使之难于记忆。因此,DNS可能成为黑客的一个重点攻击目标,原因是它包含了组织机构所有IPv6系统的信息。在IPv6中,DNS仍然广泛用于Internet可达的外部服务器,所以DNS可用于一些勘察活动。黑客们希望知道存储于DNS服务器上的尽可能多的信息,这有助于他们搜集数据和实施后续攻击。攻击者可使用的另一项技术是简单的DNS扫描,例如试图解析a.foo.com,然后是b.foo.com,再后是c.foo.com . . . a.foo.com,aa.foo.com,ab.foo.com等。

2 自动化的实施勘察
无论从哪个角度看,扫描主机都不是攻击,这种行为不太可能对网络造成任何问题。

多数安全管理员只是忽略外部扫描,而将他们的注意力集中在更重要的事件上面。但是,这个行为确实允许攻击者得到有关网络及网络上系统的信息。这个信息可用于目标的攻击,它是攻击周期的开始。没有勘察,多数攻击就不会成功。即使扫描行为不是实际的攻击,您仍然希望对其施加限制,作为保障网络安全的良好全方位防御方法的组成部分。

注释

一种非常密集的扫描可以两种方式影响网络。第一种方式是由扫描消耗的纯粹带宽资源。第二种方式影响路由器的CPU,它将负责执行被扫描地址的MAC地址解析(在IPv4中是ARP)。如果CPU利用率太高,路由器就不能够再执行其他重要任务(像路由协议),导致网络不稳定。
许多IPv4子网的ping扫查不会花费太多时间,因为子网是主机密集的,多数LAN使用一个24比特子网掩码,所以每个子网很少有254个以上的IP地址。扫描那个/24子网仅需花费数秒时间。

因为IPv6子网是极大型的,扫描主机会花费很长时间。地址的64比特接口标识符部分意味着在一个典型的IPv6子网上,理论上有264=18446744073709551616(大约18 × 1018)个唯一节点地址。据估计,如果攻击者以一种难以置信的每秒探测1100万主机的高速率在具有10000台主机的一个IPv6 LAN上扫描主机,则找到第一台主机将花费28年时间。基于这项计算,黑客在一个IPv6子网中发现一台主机的前景相当黯淡。如果攻击者希望完整地扫描一个子网上的所有存在的IPv6主机,这样的探查会花费更长的时间。这就像在不使用磁铁的情况下,在一个巨型干草堆中寻找一个非常小的针一样困难。

事实上,由于这个问题,许多扫描工具,例如NMAP,不能扫描IPv6子网。例2-24所示为,NMAP不能执行一个IPv6子网的扫查,但它可在单一IPv6主机上执行TCP扫描。

例2-24 一个IPv6子网上的NMAP

存在其他支持IPv6的端口扫描工具。如Halfscan6、strobe、hping、Scapy6和IPv6安全扫描器等工具可执行IPv6主机的端口扫描。但是,他们不允许一个IPv6子网的ping扫查,因为开发人员知道这是多么得没有希望。

2.3.2 加速扫描过程

但是,存在其他技术,老谋深算的黑客可用之加速扫描过程。例如,如果攻击者知道目标组织机构的节点都使用相同品牌和类型的网络接口,则攻击者将知道目标组织机构以太网网络接口卡(NIC)的组织机构唯一标识符(OUI)。那些48比特的MAC地址用于IPv6地址最后64比特自动配置的EUI-64过程。如果攻击者知道24比特OUI,并假定仅有EUI-64地址用在目标子网上,则仅有节点自动配置地址的最后24比特是未知的。那就意味着,可能的地址数将是16777216,对于有100台主机的较小型子网,以每秒1000次扫描的较低速率,攻击者可在数分钟内找到至少一台主机。

这些扫描计算基于如下假定:所有IPv6节点使用64比特完全随机的主机寻址方式。隐私扩展可帮助防止为寻找主机而进行的网络扫描,原因是隐私地址是从随机比特中选取的(第11章包含关于隐私扩展的详细小节)。如果网络管理员简单地使用2001:db8:100:100:1/64作为本地LAN路由器的IP地址,并顺序地为服务器编址(例如2001:db8:100:100:2、2001:db8:100:100:3等),那么在IP06网络中进行勘察也会成为轻而易举的事。如果攻击者以子网前缀的较低端开始扫描,并顺序上移,则找到以这种方式编址的主机将不会花费多长时间。网络管理员将IPv6地址的最后8比特设置成数值/文本上与服务器的IPv4地址的最后一个字节相同,同样是不好的措施。服务器密集地放在::1到::254范围区间,将使勘察非常容易实施。为了使人们比较容易阅读地址,如2001:db8:cafe: babe:f00d的地址经常使用,这也使采用字典攻击的勘察更容易,攻击者只要基于十六进制的“字”构造IPv6地址。

注释

使用以前的地址使攻击者的勘察行为更容易实施,这就是事实,然而您必须在网络操作的方便和安全问题之间取得平衡。可采用这样的一种简单的寻址计划,即网络操作员可验证IPv6地址,方法是解决网络问题时,知道前缀并赢得时间,服务器的本地配置也更容易些。
1 利用多播的勘察方法
聪明的攻击者会利用IPv6多播的能力。攻击者可简单地试图连接到链路本地IPv6所有节点的多播地址,并观察子网上的哪些计算机做出了响应。如果一名攻击者能够简单地ping链路本地多播地址,并使那个LAN上的主机做出响应,那么这就代表有一个安全问题。ping其他多播地址并以那种方式寻找节点也是可能的。但是,这隐含着如下事实,即一名攻击者就在内部LAN上或已经攻破了那个LAN上的一个内部系统。这些类型的勘察活动也可能由恶意内部人员或不知名的内部用户(在其系统上有恶意软件)实施。

表2-3列出攻击者可以利用获得信息的IPv6多播地址。如果一名攻击者使用ping6工具Ping这些多播地址,寻找一个子网上的节点,那么这些就是可能返回的结果。IANA也维护已分配IPv6多播地址的一个列表。

在一个Linux计算机系统上,当试图执行一个ping命令到一个链路本地多播地址时,必须指定接口。例2-25给出当ICMPv6回声消息发送到链路本地多播地址时,多个系统是如何产生重复的(DUP!)响应的。这项技术使勘察更加容易。

例2-25 ping链路本地所有节点多播地址

在Windows XP上,Ping FF02::1命令不会返回响应主机的IPv6地址,但如果同时使用一个嗅探器的话,就可以看到响应。例2-26所示为,在一台Windows Vista计算机上,一条ping到FF02::1的命令就不能发挥作用。

例2-26 Windows Vista ping多播地址

在一个网络上的各节点一定不要对目的地为IPv6多播地址的数据包做出响应。RFC 2463的2.4节描述“一条ICMPv6错误消息一定不要作为接收到一条目的地为一个IPv6多播地址数据包的结果而向外发送”。进而,RFC 4291的2.7节描述“多播地址一定不能用作IPv6数据包的源地址或出现在任何的路由选路首部之中”。因此,当看到源于一个多播地址的流量时,应该是不正常的。IPv6节点不应该对一个多播地址做出响应,从而使无效数据包的发送者得知是谁返回的应答。

2 自动化的勘察工具
黑客精选是网络和系统安全研究人员的一个国际组织。这个组织构造了一组称为“黑客精选”(THC)IPv6攻击工具箱的工具。其中一个工具称为alive6,可识别一个LAN上的其他IPv6节点。例2-27所示为,当一名攻击者向一个IPv6多播地址发送一条探测消息时,这个工具是如何识别相同LAN上的其他系统的。运行alive6的Linux系统能够找到作为默认网关的路由器以及在该LAN上的另一台主机。如果该攻击者使用子网的蛮力扫描的话,他根本就不会发现那台主机。采用攻击者连接到一台以太网交换机的做法,他也不会观察到进出那台主机的流量。通过与LAN上所有节点都监听的多播地址进行通信,则那些节点也会试图对精心伪造的多播数据包做出响应。

例2-27 THC IPv6工具箱alive6

3 嗅探发现节点
攻击者使用的另一项技术是在LAN上的一个系统上安装一个嗅探器,并侦听由各节点发送的数据包。攻击者也可能尝试利用目标计算机的请求节点多播地址。仅当LAN上的一台计算机被攻破时,攻击者才能利用那个系统寻找其他系统。那台被攻破的计算机就可以使用一个嗅探器,侦听该LAN上的邻成发现协议(NDP)消息。

攻击者可利用从以前被攻击和被控制的主机上得到的信息,寻找要攻击的其他主机。下面各节描述攻击者使用的方法和工具,包括利用邻居缓存、使用试验性的协议节点信息和采用Scapy6伪造数据包。

4 邻居缓存
邻居缓存是IPv6 ARP缓存的IPv6对应物。它包含其他邻接IPv6节点的IPv6地址到二层MAC地址的映射。如果一名攻击者远程得到LAN上一台主机的访问权限,就可看到邻居缓存,并用之开始对所列主机进行攻击。第7章包含在几种最流行操作系统上检查邻居缓存的命令。在一台Cisco路由器上,可使用show ipv6 neighbors命令显示邻居缓存。

5 节点信息查询
IPv6也有这样一个标准,它定义了称为节点信息查询(NI查询)的一个特性(RFC 4620)。虽然这只是一个试验性的协议,但它已经在一些操作系统中进行了实现。这个协议可向查询者提供有关主机的信息,例如主机名和系统的完全有效的域名。KAME项目为BSD操作系统开发了一个开源IPv6协议栈,将NI查询实现到几个BSD变种系统之中。KAME实现也可向查询者提供目标的IPv6单播地址和链路本地地址。采用KAME,配置有节点信息查询的各节点就可对一条ping到FF02::1的命令做出响应,响应的信息包含主机名。这种信息对于攻击者是有用的。例2-28所示为,使用带有NI查询的ping6工具的一个BSD系统,查询正在侦听多播地址的其他BSD系统上的地址。

例2-28 使用ping6的FreeBSD NI查询

在例2-29中,Scapy6用于在一个KAME FreeBSD系统上执行一条节点信息查询。试验表明,在Scapy6脚本首先可用的情况下,“freebsd”定义为IPv6 BSD计算机。之后,以期望的选项生成一个数据包“niqpkt”。这个数据包是目的为“freebsd”的一个IPv6数据包,它是包含freebsd计算机的IPv6地址作为数据字段的一个ICMPv6NIQueryIPv6类型的数据包。之后,以sr命令发送和接收数值为“niqpkt”的数据包,应答数据包和未应答数据包分别捕获并保存在变量ans和unans中。以show和print命令可以将这条精心伪造数据包的结果输出到显示器上。NI查询响应给出BSD计算机在其接口上配置的单播、链路本地和环回IPv6地址。在攻击之前,这条信息可有助于系统的勘察,并找出有关系统的更多细节。

例2-29 Scapy6节点信息查询测试

2.3.3 应对勘察攻击

通过使攻击者扫描IPv6子网尽可能困难,有助于应对勘察攻击,这里有几条建议。为了帮助应对勘察攻击,基础设施设备节点标识符不应是顺序排列的,不应从/64子网的低端开始编址。可使用随机节点ID,使攻击者扫描IPv6子网时更加困难。

从安全角度而言,将您的路由器编址为子网上的第一台主机(即路由器2001:db8:100:100:1)并不是一个好的思路,本书的许多例子也说明了这点。类似地,从节点地址范围的低端开始顺序地对主机编址,也不是一种好思路。手动生成可配置的随机节点ID具有很高的维护开销,也仅适用于高指标(high-target)的子网和偏执狂的网络管理员。只要指派节点标识符的机制满足安全性和可维护性之间的合适平衡,任何不可预测的机制都是好的方法。但是,这增加了管理负担,其中地址的节点部分必须是完全随机的。虽然使地址的节点部分是随机的,可防止勘察企图,是一个不错的思路,但也许实际并不可行。

许多较新的操作系统支持端主机使用隐私寻址。为了保留计算机用户的个人隐私,IETF撰写了RFC 4941“IPv6中无状态地址自动配置的隐私扩展”,定义了应该如何产生和使用隐私地址。隐私扩展的使用以及使用随机节点ID的操作系统可有助于保证主机地址是随机分配的,并均匀地分布在子网的地址区间上。这可防止主机的简易勘察,其中主机的节点标识符顺序地指派地址并从地址区间范围的低端开始定位。第11章我们将进一步讨论隐私地址。

第 5 章将讨论安全邻居发现(SEND)如何使用密码学方式产生的地址(CGA)作为IPv6地址的节点标识符,帮助认证一个网络上的各系统。这些CGA主机标识符本质上是随机的,将使勘察变得更加困难。因此,使用SEND是取得节点标识符随机化的另一种方式,并降低扫描的有效性。

一些网络管理员希望主动地扫描他们的网络主机,了解网络存在的弱点。一旦找到脆弱的主机,他们将快速地对系统打补丁,只要这些系统与企业安全策略相悖。如果IPv6节点ID不是随机的,则防御性安全扫描将是不可能的。防御性扫描系统的制造商需要做出调整,从而防止在LAN上的任何设备蛮力发现的企图。一种解决方案是在端用户节点和服务器上使用软件代理,这可使他们能够以中心化的补丁系统进行深入检查。但是,来自于未知设备(在其上没有代理)的真实风险也许是非授权的恶意知情人员。在没有软件代理的情况下,为寻找那些非授权设备,可通过合法系统的邻居缓存进行发掘,或使用网络接纳控制(NAC)解决方案。正像与安全有关的任何事情一样,在保障环境安全和容易地进行管理之间存在折中。因此,网络和系统管理员维护IPv6地址的一个列表,并将那个列表用于防御扫描目标是必要的。替代方法是使用“拉”模型的系统,主机查询一台中心服务器,以检查其弱点。

如果一台主机是双栈的,则能够通过扫描IPv4发现主机,但无法发现其IPv6地址。但是,这依赖于这样的假定:在一个节点上侦听端口的所有服务都绑定到IPv4和IPv6地址。可能存在可利用一种协议的各种技术,从运行两种协议的主机上寻找信息。通过利用IPv4主机的密度信息,可以很容易地使用某种类型的技术来发现IPv6主机。

因为对IPv6网络的勘察要比对IPv4网络的勘察困难得多,所以IPv6地址列表将成为攻击者的目标。任何可能包含IP06地址的地方(日志、DHCP记录等)都将有助于黑客确定子网上主机IPv6地址。因此,通过使用权限和/或加密,保障存储这类信息的文件的安全就是重要的。

《IPv6安全》——2.3 IPv6网络勘察相关推荐

  1. 全球5G论坛主席Latif Ladid:基于IPv6的5G无线移动网络和SDN带来的冲击

    2015年5月18-19日,"2015全球未来网络暨SDN技术大会"在北京召开,全球5G论坛主席Latif Ladid做了<基于IPv6的5G无线移动网络和SDN带来的冲击& ...

  2. 基于IPv6的配电自动化系统通信网络构架

    配电自动化系统具备监管配电网的功能,可以调控配电网,还具有采集配电数据和监控配电数据等功能,通信网络构架包含自动化主站.配电子站及配电终端及通信通道等.自动化系统只有实时掌握配电网运行状态,让设备使用 ...

  3. 【计算机网络】网络层 : IPv6 协议 ( IPv6 数据包格式 | IPv6 地址表示 | IPv6 地址类型 | IPv4 与 IPv6 协议对比 | IPv4 -> IPv6 过渡策略 )

    文章目录 一.IPv6 发展 二.IPv6 数据报格式 三.IPv6 和 IPv4 对比 四.IPv6 地址表示 五.IPv6 地址 类型 六.IPv4 向 IPv6 过渡策略 一.IPv6 发展 I ...

  4. 华为云服务器配置ipv6,华为云获“IPv6支持度优秀奖”,持续助推云网融合

    近日,由下一代互联网国家工程中心主办的"GNTC 2020全球网络技术大会"在南京正式召开.云服务IPv6支持能力颁证颁奖仪式在大会上隆重举行,并由工业和信息化部信息通信发展司闻库 ...

  5. java ipv6校验_Java对IPv6的支持详解:支持情况、相关API、演示代码等

    本文由朱益盛.杨晖.傅啸分享,来自IBM Developer社区,原题"使用 Java 开发兼容 IPv6 的网络应用程序",本次收录时有改动. 1.引言 前几天,有个群友跟我讨论 ...

  6. ipv6访问文件服务器,开启IPv6,让你的局域网可以使用IPV6进行共享文件夹的访问...

    随着电脑技术的发展,除开PC电脑外,越来越多的设备需要接入到网络当中.特别是加入局域网中,如果在使用之前的IPV4的地址,可能会导致IP地址的资源耗尽.好在Windows操作系统和大多数的设备都已经支 ...

  7. 为什么推广ipv6?以及网站ipv6如何改造?

    IPV6介绍 地址资源无限多 通常见到的124.33.24.116这种形式的是ipv4版本的地址,这种地址由32位二进制数表示. ipv6是一种新的ip地址的表示方式形如fc80::2367:7cff ...

  8. ipv6地址概述——了解ipv6与ipv4不同

    目录 一 ipv4与ipv6 1.ipv4的概述 2.ipv4存在的问题 3.ipv6的概述 4.ipv4与ipv6的优点和特点 5.ipv6与ipv4的变化 ipv4包头 ipv6包头 6.ipv6 ...

  9. IPv6闲谈-一起玩玩IPv6自动配置

    昨夜梦里惊魂,1997年,安阳市文峰中路老口腔医院门口那个卖冰糖葫芦的老人,他死了.1997年我刚上初中,他已经是老人了,我上学路上老是碰到他,却从没有买过他一个冰糖葫芦-现在,他死了,那个卖洗衣膏的 ...

  10. ipv6地址概述——了解ipv6地址

    个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能. 个人爱好: 编程,打篮球,计算机知识 个人名言:海不辞水,故能成其大:山不辞石,故能成其高. 个人主 ...

最新文章

  1. oracle11g broker,张欣橙 Oracle11g 配置DG broker
  2. Ubuntu 18的中文界面切换《图解教程》亲测成功
  3. dedecms代码研究三
  4. 【CF1009F】 Dominant Indices (长链剖分+DP)
  5. VMware配置上限(Configuration Maximums)
  6. 查找在Git中删除文件的时间
  7. 4666 Hyperspace stl
  8. 3.CND技术详解---内容缓存工作原理及实现
  9. 字符串的unicode java_Java把字符串转Unicode
  10. 如何通过 OAuth 2.0 使 iOS Apps 集成 LinkedIn 登录功能?
  11. 利用抓包工具分析数据帧具体内容
  12. 阿里java编程规范试题_阿里java编码规范考试总结
  13. Mysql经典面试题及答案
  14. 三剑客python自学笔记--02
  15. 科大讯飞18岁成人礼:这家极客公司未来不设限
  16. PDF文件太大,有哪些方法可以减小PDF
  17. P6560 [SBCOI2020] 时光的流逝 (博弈,反向建图,拓扑排序
  18. 【考研英语】用最少的时间拿最多的分数,完形超实用攻略!
  19. 基于net6的头像上传功能
  20. 舆情产业链四大环节密切协同

热门文章

  1. Linux环境编程之文件I/O(二):文件的打开与关闭
  2. 【OpenCV学习笔记】【错误处理】计算机缺失MSVCP120D.dll
  3. leetcode刷题日记- 重复叠加字符串匹配
  4. 在Ubuntu中安装以theano作为backend的keras
  5. 遥感数据共享(一)珠海一号数据
  6. Glide修改本地图片缓存路径
  7. python函数参数为文件名_从零开始第5步:Python 函数和模块
  8. 源码解析由于mysql驱动包升级, “LOAD DATA” 出现The used command is not allowed with this MySQL version错误
  9. Mybatis-02-对数据库的基本操作
  10. 还在搭建传统IT架构的你,正在慢慢被行业淘汰