那些执迷于“画地图”的人

文 | 史中

来源 |浅黑科技

500

我的高中地理老师名叫黄海东。他是个有趣的老爷子。

第一堂课,他提前五分钟来到教室。抓起一根粉笔,兀自转向黑板,缓慢而虔诚地徒手画了一个硕大的正圆,然后他的手就像针式打印机一样,在圆形中间游走,一点点描出了陆地弯曲的轮廓。他收笔的一瞬间,上课铃响了。老爷子转过身,指着黑板说出了他课程的第一句话:这就是我们的地球。

十五年后,我仍能清晰地回忆起这个上午。阳光从窗户射进来,空气中翻动着稀薄的粉笔末,邻座的同学在稀里哗啦地翻书包,而我直勾勾地盯着黑板,被一种突如其来的心动裹挟,不知西东。

当时的我并不知道,虽然人类已经繁衍了数百万年,但直到400多年前,我们才第一次拥有像黑板上这样的,能够相对准确描述世界样貌的地图。

500

中国最早的世界地图

《坤舆万国全图》

之所以回想起这个美好的片段,是因为我刚刚拜访了一位好基友:大黑客隋刚。

500

隋刚

隋刚有两个叼叼的身份。

身份一:他是知道创宇 404 实验室的副总监。

知道创宇是一群“疯狂”黑客组成的公司,他们的日常是保卫祖国赛博疆域的安全,被称为“网络安全特种兵”。而 404 实验室是其中最精锐的“铸剑者”,曾经研制出无数保卫互联网的核武器。它的老大就是著名的大黑客——黑哥。

由于黑哥经常远在湖南,神龙见首不见尾,所以有关 404 搞的一些大事情,都是隋刚告诉我的。

说到隋刚这位哥,他有着分分钟控制几十万台摄像头、黑掉几万台比特币矿机的水平,却偏要做一个正直的男人。

作为“总监”,他的日常就是总得监督互联网的动向。

普通人看到的世界索然无味,他看到的世界却风云激荡。每天成千上万“心思各异”的坏人如草原骑兵一样汹涌在赛博世界,正义的人们得站在烽火台上,实时俯瞰着这片海洋的动向。大概像这样:

500

身份二:他是一个画地图的人。

听说当年罗马帝国打下来的疆域实在太大了,自己都不知道自己管着哪些土地,心里有点方。为了搞明白哪里是自己的领土,古罗马人才开始认真画了一份地图。

说实话,现在的互联网世界,还不如当年的罗马帝国。。。

没人有一份完美的“网络空间地图”。你看,现在就连在互联网上究竟连接了哪些设备,它们分别在做些什么,都没人能说清楚。

于是,为了更好地守护网络安全,从2013年开始,知道创宇 404 的同事们就在一点一点地绘制网络空间的地图。

所以一句话:隋刚是个“武能起身怼黑产,文能俯身画地图”的居家旅行必备好友。

那天,隋刚给我打电话:过来吧,请你吃新疆大盘鸡(他是新疆人)。我说好啊。

等我到了他的办公室,说走啊吃鸡去吧。他却一把把我壁咚到沙发上淫邪地笑:别急嘛,先给你看样好东西。

于是从裤子里拽出了他15寸的——Mac 电脑,砰地一声打开:来!先给你看看我们的最新成果!

网页闪烁,出现在我面前的是:ZoomEye。

500

这个动效实在是很 Dior

中哥专门找工具截了个 gif 图

在被隋刚壁咚科普的过程中,我渐渐发现,了解 ZoomEye 正在做的事情,比吃大盘鸡爽多了。。。

接下来我就把我听到的剧情原原本本地给你讲出来,让浅友们也爽一下。

Let's ROCK

1、人类的网络像个巨大巨大巨大的蚂蚁窝 

ZoomEye,其实就是知道创宇画了五年多的“网络空间地图”。

注意,有关网络的地图,存在两种:

一种叫做“网页地图”,这种地图标记了全世界几乎所有的网页内容,然后让人可以方便地查询到想要的东西在哪。没错,这就是你再熟悉不过的谷歌和百度。

另一种叫做“网络空间地图”,这种地图标记了全世界所有“电脑”(包括服务器、个人电脑、路由器、摄像头等等等等所有拥有计算能力的联网设备)的位置。人们也可以在 ZoomEye 上查询自己感兴趣的设备在哪里。

同样都是地图,大多数普通人对“网页地图”很熟悉,却对“网络空间地图”很陌生。

那么“网络空间地图”究竟长什么样子呢?

你可以想象一个——蚂蚁窝

在蚂蚁窝里,一个个蚁房通过通道相互连接,不断有蚂蚁在其中穿梭,传递食物和信息。而在网络空间里,一个个蚁房就是一个个“电脑”,他们通过“端口”相互连接,传递信息,形成了同样错综复杂的网络。

曾经有神人把融化的铝水浇进了蚂蚁窝,然后凝固之后挖出来,冲掉其中的泥土,就得到了蚁窝的结构模型,我们来感受下:

500

500

500

蚂蚁窝的结构

隐喻了人类的网络结构

我觉得蚂蚁窝特别形象地模拟了网络空间的结构,只不过真实的世界里,网络空间的结构要比那个蚂蚁窝巨大无数无数无数倍。

巨大的“蚂蚁窝”里,服务器、路由器、摄像头、工业设备、医疗器械等等各种奇形怪状的“电子蚂蚁”蜗居在自己的蚁房里。它们之间有千丝万缕的联系,通过相互发送信号连接成一个整体。

你看不见它,也摸不到它,甚至难以想象它,而它却真实地成为我们这个世界的发动机。世界就是这么奇妙。

总结一下:

到现在为止,你知道了我们的网络空间大概是什么样子——像一个巨型蚂蚁窝。

说到这,估计有盆友已经不能忍了。这么庞大错综的蚂蚁窝互联网,想想密集恐惧症都要犯了,它的地图有可能被我们画出来吗?

下面我就来回答这个问题。

500

2、ZoomEye 是怎样探测网络空间的?

别嫌中哥啰嗦,为了让更多浅友明白,我首先要科普两个名词:

第一个词:端口

简单来说,你可以把一台电脑(或者随便什么设备)想像成你的女票。你想联系到她,可以有很多方式:微信、电话、短信等等等等。每一种联系她的途径,就是一个端口。

如果哪一天你忘记了准备女票的生日礼物,她往往会选择对你关闭所有端口,这时,她就在你的“地图”里消失了。神不神奇?意不意外?

500

女票的端口

对于一个网络设备来说,理论上它最多可以有 65536 个端口。因为在人类通用的协议里,用来表示端口号码的二进制字符有16位,而2的16次方正是这个数字。而且,它们就没有人这么矫情,一般不会随意关闭端口。

500

计算设备的端口

第二个词:IP 地址。

在真实世界里,我们怎么标记位置呢?是用经度和纬度。

在网络空间里,我们怎么标记位置呢?是用 IP 地址。

在现实世界里,每一个连接到互联网公网的设备,都有一个 IP 地址,就像你家的门牌号一样。现在全人类的 IP 地址(IPv4),总共只有2的32次方个,算出来的话,是 42 亿个多一点。这并不算是一个天文数字,甚至肯定比很多人想象中还要少一点。

500

全球的 IP 分布图

感兴趣可以看大图

这意味着:目前,如果勤奋一点,几台计算机花几天时间是可以把人类网络空间的“门牌号”一个不落访问一遍的。(注意,我说的是“目前”,这里有一个巨大的坑,我们到后面再说。)

解释完“端口”和“IP 地址”,我猜你已经猜到 ZoomEye 是怎样探测我们的网络空间的了。

理论上来说,他们只需要做一件事:

沿着街道去各家各户敲门一样,给不同 IP 上的不同的端口发信息,看看对方说什么,也就是会有什么消息返回来,然后把这些信息忠实地记录下来,这样就一点点画出了人类所有网络空间的巨幅地图。

500

再总结一下:

目前为止,你知道了ZoomEye 是怎样画出这幅地图的——沿着不同的“门牌号”一个个敲门记录信息,一点点把图“跑”出来。

听隋刚说完这些烧脑的话题,中哥长出一口气。。。

然鹅,不料,想不到的是,更烧脑的还在后面。。。

隋刚说,真正的难点不是把这张“网络空间地图”画出来,而是把它的细节描绘出来。


2、画这幅地图的细节,你会遇到三个难题 

隋刚打开了 ZoomEye 的“数据统计”。上面赫然显示着,设备数:1190860679。

500

这说明,ZoomEye 已经探测到将近12亿台设备连接在整个人类的互联网上。(在这些设备中,可能有很大一部分是路由器或者其他内网入口,它们背后连接的其他设备并不会被探测到,所以也没有包含在这个数量中。这就好像地图可以精确到大楼外部,却看不到内部结构一样。)

但是,有一个残酷的事实:目前不论是 404 实验室,还是其他人,都不能百分之百画出这张地图的所有细节。

为什么呢?

你在地图上看到一个设备,你肯定想知道以下三个细节:

1、这是什么设备?

2、这个设备位于什么地方?

3、这个设备属于谁?直接操作这个设备的人又是谁?

我们可以拿百度地图来做比喻。

如果你打开百度地图,看到城市、街道和建筑,但在每一个建筑上面,并没有标注哪个是“天坛公园”,哪个是“北京饭店”,相反,几乎所有建筑上面都标记了两个大字:“大楼”。那么,手握地图的人会怎么想?他一定会觉得这个地图太粗糙了,根本没办法使用。

500

全都标记“大楼”的地图

看起来很皮

所以,说清楚一个设备的具体型号、具体位置、与之相关联的个人,实际上非常重要。

现在我们就试着回答一下这三个难题。

问题1:这个 IP 上是什么设备?

500

按照设定,一个设备的端口被“敲门”之后,会回复一串信息。这串信息里,一般会标明自己是什么品牌的什么设备,还有一些其他的基本参数。

你可能会说,这不就已经知道这个设备是什么了吗?然鹅,既然说一般,就总会有例外。

你可以试试,在自己住的小区里,一个单元一个单元爬上楼,一个门一个门地敲。你会遇到什么情况呢?

1)“啪啪啪”敲门,门没开,但里面有人问:谁啊?这时,你能得到的信息有:里面有人住、里面是个男人(或女人)。你就可以把这些信息标注在地图上。

2)“啪啪啪”敲门,门开了。这时,你能得到的信息更多,这是个男人女人,甚至你还可以通过门缝看到屋里的一点陈设,这家是欧式装修还是毛坯房。你就可以把这些信息标注在地图上。

3)“啪啪啪”敲门,门开了,里面的人还很和善,和你攀谈起来,并且邀请你进屋喝一杯茶。这样,你就可以了解到这位主人的职业、年龄、收入情况等等,然后把这些信息标注在地图上。

以上情况算是情理之中。下面我们放飞想象,你又来敲门了:

4)敲门之前,你听到屋里有些响动。“啪啪啪”敲门,门没开,里面的声音却停下来了。无论你说什么,里面都没声音。这说明什么?里面有人,但里面的人究竟是谁?他们在做什么呢?

5)“啪啪啪”敲门,门没开,里面的生物说出了奇特的语言,你根本听不懂。。。那么,里面是谁呢?

500

你有没有意识到一些让人脊背发凉的事实:

在网络世界里绘制地图的时候,门背后透露出来的信息可能是千奇百怪的,甚至是让人恐惧的。。。如果我们不能理解,就只能把这些信息先记录下来,然后颤抖着手在地图上标注:未知。

问题2:这个设备位于什么地方?

500

在现实世界里,知道了门牌号,你就可以找到它的真实物理地址。但在网络空间里,知道了门牌号(IP 地址),并不一定能找到这台设备的具体位置。这是因为 IP 是可以移动和变化的。

也就是说:中国北京市西城区西长安街甲1号,永远不可能挪地方;一个 IP,今天可能在北京,明天就移动到了上海。

所以,你又会发现一些反常识的事实:这幅“网络空间地图”是会自己“扭动”的。

500

这可怎么办?

其实,在全世界都存在这样一种公司——专门为 IP 地址和真实地址配对。ZoomEye 需要靠其他团队帮忙才可以把 IP 地址和真实地址匹配。

但是,由于 IP 地址在不断变化,就算这类地址团队再努力,也智能保证自己的 IP 地址和真实地址的匹配相对准确。

问题3:谁在操作这个设备?

500

在人体内部,有一种叫做“血脑屏障”的东西。

它是一层坚韧的薄膜,隔开了神经系统和身体其他部分。这有点像互联网世界和真实世界的关系。

一个设备在网络上真实地工作,也会真实地影响人类世界,但它们并没有为真实世界开放一一对应的接口。

要知道它背后的人具体是谁,除了“实名制”这种国家特权措施,没有任何其他办法。且不论人们可以有很多种方法绕过实名制的约束,网络空间本身也是有国界的:一个国家无法强制另一个国家对自己实名制。

所以,如果要把全世界网络空间里的设备对应到人,难于上青天。我们必须有更精细的“其他维度”的资料。这里暂且不表。

500

我在 ZoomEye 上通过“某关键词”搜索到一些摄像头设备,我选了一个给你截了个图,从中可以得知它的 IP 地址信息、真实地址信息。(虽然不觉得太隐秘,但中哥还是打个码吧,感兴趣的话你可以到 ZoomEye 上自己探索。)

说到这里,我们再来总结一下。

绘制网络空间地图,我们不可避免会遇到三个难以解决的问题:

1)互联网的复杂程度大到难以想象;

2)互联网的结构是不断变化的,而且速度非常快;

3)我们用以绘制互联网地图的资料非常有限。

在现有的科技水平下,我们能做到的成绩大概是:

网络空间的所有设备中,

有50%我们可以探测到;

有10%我们可以知道它们的型号和功能;

有1%我们可以知道他们的位置;

却有不到0.01%我们能知道他们背后的人是谁。

所以,如果以苛刻的眼光来看,在网络空间地图上,未知的部分其实占了大多数。

500

这有点像小时候玩的红警。未探索的地方,呈现一片漆黑。但谁都知道,有无数珍贵的矿藏和凶险的敌人等在黑暗中。

之前中哥埋了一个坑,我说目前人们可以穷尽所有 42 亿多个 IP 地址。也就是说,我们可以做到挨家挨户把所有的门敲一遍。但是在未来,我们可能连这一点都做不到。

这就是人类浩浩荡荡的,从 IPv4 迁移到 IPv6 的过程。具体的科普就不写在这里了,简单来说,未来的 IPv6,IP 总数是2的128次方个。这个数量超过了宇宙中总粒子的数量。。。

就像在电影里出现的那个长长的无尽走廊,人类永远不可能敲尽所有的门。

隋刚说,ZoomEye 正在尽力支持 IPv6。但是不可否认,绘制 IPv6 网络空间的“完整地图”,是一个更艰巨的任务。

500

既然难度这么大,为什么 404 实验室的大牛们还要拼死画这张地图呢?

因为这件事,我们有着不能不做的理由:

知道网络空间里的设备都是什么,我们就拥有了网络空间的“民用地图”。

知道网络空间里的设备都处于什么位置,我们就拥有了网络空间的“高精地图”。

知道网络空间里的设备背后的人是谁,我们就拥有了网络空间的“作战地图”。

之前一直没提,网络空间测绘其实最开始发源于美国,在美国有一个大名鼎鼎的网络空间搜索引擎,名为 Shodan。

某种程度上说,Shodan 就可以被称为作战地图。它有能力探测到网络空间的精细结构,却特意隐藏了一些信息,不能被其他人看到。

中哥只能说这么多了。但你应该能够理解:一个国家,在和平时期可能用不到作战地图,但是如果你没有作战地图。。。

你还记得知道创宇是“网络安全特种兵”吗?所谓“侠之大者,为国为民”。隋刚和 404 实验室的任务核心,正在于此。

500


3、惊天秘密——我们就像“蜂群”

既然不可能完整地画网络空间的完整地图,这个地图对我们来说又异常重要。于是,404 的黑客们,小宇宙开始爆发了。他们使用了一种神奇的方式来绘制地图。

“我们就像蜂群。”隋刚脱口而出。

我:纳尼??

“你有没有玩最近很火的游戏《荒野大镖客2》?”他问。

我:纳尼??

看到我明显没跟上思路,他为我找到了一张《荒野大镖客2》的全幅地图,说:

你看,游戏里的地图,山丘往往在一起,河流也在一起,草原、沼泽都会按照一定的规律聚集。

人们的思维是有逻辑的,而互联网是人类思维创造出来的,它一定和人类的行为方式是有相似性的。

500

《荒野大镖客2》的地图

为了让我更明白,他举了几个现实中的例子:

你看,去年有一个肆虐的病毒 Mirai,它曾经造成了德国大断网。为什么这个病毒的重灾区是在德国呢?通过我们的地图可以看出来,其实德国集中采购了一大批光猫,而正是这批光猫容易受到 Mirai 的感染。

而某几款施耐德的设备,往往会安装在电厂中;

几种特定型号的大型机,往往又会被安装在银行中。

这就是“蜂群效应”。

500

说到这里,隋刚说出了最震撼的一句话:

人的“蜂群效应”,会间接投射在网络空间里!

这下我明白了。他所说的其实是:我们可以用大数据的方式来理解网络空间。

原来,绘制一副网络世界的地图,仅仅是傻傻地敲门,忠实地记录下门背后传回的信息,是远远不够的。

真正的绘图者,可以从这些杂乱的数据里,像“达芬奇密码”一样,分析出一个个让人震惊的规律,从而大大简化绘图的难度。

举个例子:

假设我们发现了很多未知的设备,但就是搞不清楚他们是什么。

500

这种情况下,就可以先把类似的设备归为一类,然后标记为“X”。

500

后来我们突然发现,这其实是一个电厂的控制器,那么,我们据此可以推断,所有有这个设备的地区,就很可能都是和电厂相关的。

500

而我们通过大数据还可以知道,和这个 IP 相关联的设备,很可能就是电厂的设备。

于是,原本在这幅地图上被标记为X的区域,就可以通过分析,一片一片地被我们揭开。

隋刚发现,这些未知的部分,其实藏满了比想象中更动人的秘密。但是,解开这些秘密,却需要很多不同行业的专业知识。

404 实验室总的黑客们都是网络安全的顶尖高手,但是他们却没有各行各业的专业能力来判断哪个设备属于医院,哪个设备属于电厂,哪个设备属于银行,等等等等。这就造成了他们只能把设备归类为不同的区域 X,却没办法揭开每一片 X 背后的真相

有了这个方向以后,2018 年 404 实验室对 ZoomEye 添加了一个重大的功能。

4、我们的星辰大海,就是发现那些“X”

2018年之前,ZoomEye 这张地图,所有人都可以查看。

2018年之后,ZoomEye 这张地图,所有人都可以标注。

这正像当年的哥伦布、达伽马和麦哲伦。他们所能做的,只是标记出各大洲的轮廓,而这些大洲上有着怎样的人,有着怎样的山川风貌,却是无数追随他们脚步的普通人一点点标记出来的。

500

这是一张哥伦布使用的地图,可以看出来非常不准确。但是后人正是在这个基础上一点点地完善出了相对准确的世界地图。

隋刚告诉我,知道创宇和 404 实验室想做的,正是这样一件事。

500

这张图标注了热门组件的数量

最多的仍然是:Unknown

设备的类型,在ZoomEye 上是用“组件”的形式表现的。现在登录 ZoomEye,能看到已经存在了7000+类设备。

隋刚估计,网络上的设备,总分类数量可以达到几十万甚至几百万。7000到几百万,中间还有巨大的差距,等待人们去填补。

在 ZoomyEye 网页的顶端,赫然写着“贡献”二字,这就是所有人为网络世界地图进行标注的入口。

500

我截取了一段 ZoomEye 社区里,各行各业技术宅们为“网络空间地图”做的标注。

听完隋刚的讲述,我才能真正明白这个入口的意义:

虽然我们面对的网络空间像宇宙一样浩瀚,但这并不能成为我们留在原地的理由。恰恰相反,我们必须刻不容缓地出发,只是为了获得在这片网络世界里钢铁般的生存权利。

这是一个远航的时代,我们可以为英雄们欢呼,也可以把自己变成英雄。

500

其实,资深的浅友应该还记得,2018年春天,中哥曾经找隋刚聊过一次。那一次,他们发现了网络上一款数量达到几十万个之多的摄像头存在漏洞,可能被黑产控制用来做犯罪活动。(想复习的同学点这里:《黑掉摄像头:你看到好看的皮囊,我却看到有趣的灵魂》)

当时我并没有仔细讲解,他们正是用 ZoomEye 的网络空间地图,才看到了全球黑客可能被黑客控制的摄像头分布的全貌。也正是因为他们的预警,才让国家和很多公司对可能到来的进攻做了防御,你我并没有感受到巨大的冲击。

少数人描绘这张地图的执念,

才赢得了多数人忘掉这张地图的权利。

500

坐在隋刚对面吃着大盘鸡。我脑海里突然蹦出了《麦田守望者》的那句话:

有那么一群小孩子在一大块麦田里做游戏。几千几万个小孩子,附近没有一个人——没有一个大人,我是说——除了我。我呢,就在那混帐的悬崖边。我的职务是在那儿守望,要是有哪个孩子往悬崖边奔来,我就把他捉住——我是说孩子们都在狂奔,也不知道自己是在往哪儿跑。我得从什么地方出来,把他们捉住。我整天就干这样的事。我只想当个麦田里的守望者。

500

500

站务

全部专栏