freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

清华大学王之梁:IPv6网络地址空间智能探测的研究与实践
2019-10-25 11:13:58

10月17日,CNCC2019网络空间资产安全治理论坛在苏州金鸡湖会议中心召开,清华大学博士生导师王之梁副教授发表了《IPv6网络地址空间智能探测的研究与实践》的主题演讲,本文整理自王之梁先生的现场演讲内容。

清华大学王之梁副教授发表演讲

王之梁:各位专家大家下午好!我是清华大学网研院的王之梁,非常高兴参加这个论坛,跟大家分享一下我们最近做的研究。我今天报告的题目是“IPv6网络地址空间智能探测的研究与实践”,我们今天论坛的主题是“网络空间资产安全治理”,乍一看好像没有直接的关系,但是实际上网络地址空间的探测和扫描是对于网络空间资产安全治理的第一步,也是非常重要的一步,特别是在IPv6领域。

IPv6是比较热门的话题,我不知道大家了不了解IPv6协议的第一个版本是哪一年发布的?这个IPv6协议其实并不是什么新鲜的事物,第一版是在1996年发布的,到现在有20多年的历史了。在这20多年的发展历程当中,IPv6的发展并不是那么迅速,相对来说是比较滞后的。

在座的很多都是学术界的同行,很多都是来自高校,相信对我们中国教育科研计算机网并不陌生,我们CERNET在IPv6的基础研发、IPv6网络的部署和应用推广方面在国内来说应该是走在前列的。

2005年,发改委牵头组织了重大的工程项目就是中国下一代互联网示范工程项目,当时参加的一共有6家运营商,其中有三家是我们比较熟知的三大运营商,另外还有一家就是我们中国教育科研计算机网。当时这六家运营商,每家负责独立建立自己的IPv6实验网络,并且这六家运营商建立的IPv6实验网络,再通过一个CNGI的交换中心把它们连接起来,最后形成一个完整的CNGI的实验网络。当时我们教育网在CNGI里面就建立了一个最大的IPv6网络,就是CNGI CERNET2实验网,当时也是世界上最大的纯IPv6的互联网。

到了2018年我们CERNET2做了扩容,一类核心节点是26个,实现100G互联;二类核心节点有15个,实现10G互联。

前面说了我们中国在2005年建设了大的IPv6实验网络,但是在发展了十多年之后,我们国内的IPv6的部署情况仍然是不容乐观的,一直在低水平徘徊。2017年11月份,《推进互联网协议第六版(IPv6)规模部署行动计划》文件的印发,列出了我们的目标和相应的时间表。《行动计划》对IPv6的部署起到了很大的推动作用。

image.png

这是目前世界上IPv6部署的现状。左边这个图是在2019年10月份, APNIC所做的全球各个国家IPv6的部署图。绿色的代表这个国家IPv6部署率比较高,红色代表部署率比较低,我们看到部署率最高的两个大国是美国和印度。排名第一的是印度,IPv6部署率已经超过了60%,美国是50%多,这两个国家是走在世界前列的。

我们国内也对IPv6网络部署的现状做了统计。2019年7月份,推进IPv6规模部署专家委员会发布了《中国IPv6发展状况》白皮书。在白皮书里面有很多统计数据:在IPv6用户数的统计方面,截止到2019年6月份,我国IPv6活跃用户数已达1.3亿;我国基础电信企业分配IPv6地址的用户数达到了12亿,这个数字还是非常惊人的。


image.png

我们看另外一个方面,IETF是互联网国际标准化组织;IAB,就是互联网架构委员会,是IETF的监管机构;IAB在2016年建议IETF新标准放弃兼容IPv4,以后都只支持IPv6。在这些大形势之下,我们认为对于IPv6地址空间探测的研究是具有非常重要的意义的。

首先,刚才我们都看到了IPv6发展非常迅猛。在IPv6用户数方面,像印度、美国这些国家他们的IPv6用户数是基于前列的,占比超过了40%;基于IPv6的下一代互联网成为大国博弈的新战场,我们中国要赶上这个趋势。

第二,从网络安全的角度,IPv6地址扫描和探测相关的技术,对于网络安全是非常重要的,是网络攻防的重要基础。

第三,IPv6地址空间具有一些特点,这样也使得传统的一些探测方法在IPv6里面是行不通的,我们需要采用智能化的手段,进行IPv6的探测和扫描,我们认为这也是对IPv6网络进行资产探测的核心技术。

IPv6地址探测究竟难在哪里?有什么挑战?我们认为最大的挑战就是IPv6地址空间的规模太大了,地址空间理论上最大可以达到2的128次方,远远超过了IPv4的2的32次方。从事安全行业的各位都比较了解ZMap,这是一个高速互联网级网络扫描工具,这个工具在万兆链路下,可以在5分钟之内扫描整个IPv4地址空间,即2的32次方空间。我们可以估算一下,采用ZMap最高配置模式,如果扫描IPv6地址空间会怎么样?这个数字非常惊人,ZMap扫描IPv6地址空间需要7乘以10的23次方年,基本上是不可行的,这是第一点。

第二,IPv6地址分布是非常稀疏的,有一个统计数据,全球最新的探活的IPv6地址有2.5亿,这个规模相对来说很小,所以IPv6地址空间非常稀疏。在这样大的IPv6地址空间里面去找到分布这么稀疏的活跃地址,这个难度是可想而知的,好比是大海捞针。

是不是IPv6地址空间探测是完全不可行的呢?也不是,我们可以摸到一些规律,用一些技巧做这个事情。我们认为全球的IPv6管理有一定的规则,这就使得IPv6地址空间有一定的规律,如果比较好的掌握这些特征规律的话,就可以更好的找到潜在的有可能是活跃的IPv6地址。这也是现有方法的基本的出发点。

基于这样一个想法,我们进一步提出了IPv6地址空间探测的框架,先找到一些IPv6的活跃地址,就是所谓的种子地址;我们对种子地址进行建模分析,分析特征,进一步采用算法,生成预测的IPv6地址,这个有点类似于数据驱动的方法。最后得到生成的地址之后,我们对于生成的地址进行实际探测验证,然后进行拓扑的探测和可视化,这是具体的思路。

具体来看收集活跃的种子地址。有几方面,首先主动收集网络上公开的数据集,比如说DNS的数据集,有大量的IPv6地址都是活跃的IPv6地址。另外我们可以进行被动探测,比如说在CERNET里面做一些流量采集,可以得到大量的IPv6地址。另外就是采用第三方库的地址进行收集。收集到这些活跃的种子地址之后,就可以对它们进行建模分析,生成地址。在这个过程当中应该综合采用多种地址生成的算法,这样可以更多的累积IPv6预测地址。在得到预测地址之后,我们还需要根据全球BGP路由表里面的IPv6前缀进行过滤,得到有效的预测地址**;最后对预测地址**进行探测验证。如果探测成功了,说明这个地址是真正活跃的,我们可以进一步进行拓扑的探测和可视化,同时地址验证的结果也可以对地址生成算法提供反馈,这就是我们IPv6地址空间探测总体框架和思路。

说一下活跃地址种子收集的过程,我们对全球IPv6活跃地址进行一个持续的、自动化的采集。随着时间变化的情况,有些数据增长非常快;在收集到IPv6活跃地址之后,我们会对活跃的IPv6地址进行统计分析,并且进行数据的清洗。

地址建模分析和地址生成算法是核心的部分,今天我主要介绍三种已有的算法,以及我们根据已有算法提出的新的算法,时间关系我就主要简单讲一下各个算法的思路。

第一种算法,是基于地址结构生成算法的Entropy/IP。这个算法思路其实非常简单,我们观察一下IPv6地址,IPv6地址里面的每一个字符,相当于是4个bit,就是半个字节,这样对所有IPv6的种子地址,我们以半字节为粒度做一个统计分析,来计算他们的熵值,就是每半字节熵值。这样就可以画出IPv6地址空间以半字节为粒度的熵值分布的折线图。有了这个折线图之后,相邻的熵值相近的几个半字节就可以划分一个段,对每一段的取值做一些统计分析,最后得到这样一个概率分布的模型,基于这样一个概率分布模型就可以进一步生成IPv6的地址。

第二种算法基于密度的智能地址生成算法6Gen。这个算法是把IPv6看成一个高维向量,把所有的种子地址都拿出来,在高维向量空间中标出来之后我们就看一下这里面哪一个区域密度比较大,基本思路就是在密度大的区域里面去生成IPv6地址,这个直观来说命中率就比较高。

第三种算法叫做基于密度反馈模型的生成算法6Tree,这个算法的基本思想就是在整个地址生成的过程当中采取反馈的机制,生成一部分IPv6地址后,马上进行探测,探测完之后对算法提供一个反馈,核心的思想就是进行在线的反馈;在这之前需要构造一个IPv6地址空间树。

把树的叶子节点加入到优先队列里面,扫描的时候,每次取出一个叶子节点,在叶子节点内部生成IPv6地址,然后去扫描IPv6的地址,优先扫描命中率比较高的节点。同时扫描完之后可以继续更新这个地址空间树,并更新优先队列。这就保证了IPv6地址空间里面,密度比较高的部分,会被优先的扫描到。

基于前面提到的这些算法,我们也提出了自己的改进方法,这个方法叫做基于模式的智能地址生成算法6Entropy。

最后我们对四种算法做了总结和比较,采用相同的种子地址数量,生成相同的目标地址数,并对其进行实际的探测,最后得到结果。我们提出的6Entropy算法命中率相对其他的方法要更高一些;我们分析了这些算法,6entropy可以根据地址的内部结构和地址的密度进行IPv6地址生成,所以在地址命中率方面具有一定的优势,另外就是算法时间复杂度相对来说较低。

最后简单介绍一下拓扑探测和可视化问题。我们得到了验证地址集之后,需要验证一下预测地址是否存活,如果地址存活就可以进行进一步的IPv6拓扑的探测。我们整个方法思路就大概介绍到这里。

最后对我们整个报告做一个总结,首先这个IPv6地址空间探测具有非常重要的意义,目前的方法基本思路都是对已有的IPv6种子地址进行了统计分析,类似于数据驱动的方法,基于这个统计规律生成预测地址,我们做了初步的实验,结果证实了相关方法的有效性。

从未来发展方向来看,有两点需要我们重点考虑。一是刚才反复强调的已有的方法,主要是数据驱动的方法,我们希望可以采用数据驱动与领域知识相结合的方式进行地址空间的探测。另外一点就是目前这些方法对于机器学习的应用比较有限;我们认为采取机器学习方法,特别是更为强大的深度学习技术,将来在地址空间探测里面会发挥更大的作用。

这就是我今天的分享,谢谢大家!

本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者