摘要

随着全球互联网IPv4地址分配耗尽,IPv6开始加速推广和部署。双栈技术允许设备同时启用IPv4和IPv6栈,这意味着用户暴露了双倍的安全风险。尽管现有的工作可实现对部分双栈服务器的识别和测量,但仍存在以下问题。首先,双栈主机识别需要对主机服务进行深层协议识别,然而这种方式会消耗过高的扫描资源。其次,实际的网络服务提供商有可能在分布式主机上提供一致的服务,使得通过服务指纹进行双栈主机判别的准确性难以保证。针对此问题,利用局域网服务发现协议将主机服务与IP地址绑定的协议特性,提出了基于SSDP和DNS-SD协议的双栈主机发现方法:在IPv4网络环境下,通过SSDP诱导目标主机主动向构建的IPv6服务器发送请求,然后从服务器日志中提取IPv6地址;或通过DNS-SD协议枚举目标主机的服务列表及其对应的AAAA记录,获取目标主机IPv6地址,实现双栈地址对的发现。该方法直接从IPv4主机获取其IPv6地址,确保了发现的双栈主机的准确性,同时,在发现过程中只需要针对特定协议构造请求数据包,极大地节约了扫描资源。基于该方法,对全球IPv4网络意外暴露的SSDP主机和DNS-SD主机进行了测量,共收集到158 000个不重复的IPv6地址,其中55 000个为拥有全球可达IPv6地址的双栈主机地址对。与现有工作将测量目标聚焦于双栈服务器不同,该方法主要针对终端用户和客户端设备,构建了迄今为止尚未探索过的活跃IPv6设备独特集合及双栈主机地址对集合。通过对获取的IPv6地址编址类型的分析,随机生成已成为当前IPv6地址分配的主要方式,这一方式大大降低了IPv6主机被扫描发现的可能性。特别地,通过对双栈主机的开放端口和服务测量,发现双栈主机在不同协议栈上的安全策略差异:IPv6栈上暴露了更多高风险服务,扩大了主机的攻击面。研究结果表明,IPv6地址空间遍历扫描的不可行性缓解了IPv6的安全风险,但错误的网络配置大幅增加了这些高风险的IPv6主机被发现的可能性,用户应该重新审视双栈主机上的IPv6安全策略。