那些執迷於“畫地圖”的人_風聞
观察者网用户_243785-2018-11-26 13:16
文 | 史中
我的高中地理老師名叫黃海東。他是個有趣的老爺子。
第一堂課,他提前五分鐘來到教室。抓起一根粉筆,兀自轉向黑板,緩慢而虔誠地徒手畫了一個碩大的正圓,然後他的手就像針式打印機一樣,在圓形中間遊走,一點點描出了陸地彎曲的輪廓。他收筆的一瞬間,上課鈴響了。老爺子轉過身,指着黑板説出了他課程的第一句話:這就是我們的地球。
十五年後,我仍能清晰地回憶起這個上午。陽光從窗户射進來,空氣中翻動着稀薄的粉筆末,鄰座的同學在稀里嘩啦地翻書包,而我直勾勾地盯着黑板,被一種突如其來的心動裹挾,不知西東。
當時的我並不知道,雖然人類已經繁衍了數百萬年,但直到400多年前,我們才第一次擁有像黑板上這樣的,能夠相對準確描述世界樣貌的地圖。
中國最早的世界地圖
《坤輿萬國全圖》
之所以回想起這個美好的片段,是因為我剛剛拜訪了一位好基友:大黑客隋剛。
隋剛
隋剛有兩個叼叼的身份。
身份一:他是知道創宇 404 實驗室的副總監。
知道創宇是一羣“瘋狂”黑客組成的公司,他們的日常是保衞祖國賽博疆域的安全,被稱為“網絡安全特種兵”。而 404 實驗室是其中最精鋭的“鑄劍者”,曾經研製出無數保衞互聯網的核武器。它的老大就是著名的大黑客——黑哥。
由於黑哥經常遠在湖南,神龍見首不見尾,所以有關 404 搞的一些大事情,都是隋剛告訴我的。
説到隋剛這位哥,他有着分分鐘控制幾十萬台攝像頭、黑掉幾萬台比特幣礦機的水平,卻偏要做一個正直的男人。
作為“總監”,他的日常就是總得監督互聯網的動向。
普通人看到的世界索然無味,他看到的世界卻風雲激盪。每天成千上萬“心思各異”的壞人如草原騎兵一樣洶湧在賽博世界,正義的人們得站在烽火台上,實時俯瞰着這片海洋的動向。大概像這樣:
身份二:他是一個畫地圖的人。
聽説當年羅馬帝國打下來的疆域實在太大了,自己都不知道自己管着哪些土地,心裏有點方。為了搞明白哪裏是自己的領土,古羅馬人才開始認真畫了一份地圖。
説實話,現在的互聯網世界,還不如當年的羅馬帝國。。。
沒人有一份完美的“網絡空間地圖”。你看,現在就連在互聯網上究竟連接了哪些設備,它們分別在做些什麼,都沒人能説清楚。
於是,為了更好地守護網絡安全,從2013年開始,知道創宇 404 的同事們就在一點一點地繪製網絡空間的地圖。
所以一句話:隋剛是個“武能起身懟黑產,文能俯身畫地圖”的居家旅行必備好友。
那天,隋剛給我打電話:過來吧,請你吃新疆大盤雞(他是新疆人)。我説好啊。
等我到了他的辦公室,説走啊吃雞去吧。他卻一把把我壁咚到沙發上淫邪地笑:別急嘛,先給你看樣好東西。
於是從褲子裏拽出了他15寸的——Mac 電腦,砰地一聲打開:來!先給你看看我們的最新成果!
網頁閃爍,出現在我面前的是:ZoomEye。

這個動效實在是很 Dior
中哥專門找工具截了個 gif 圖
在被隋剛壁咚科普的過程中,我漸漸發現,瞭解 ZoomEye 正在做的事情,比吃大盤雞爽多了。。。
接下來我就把我聽到的劇情原原本本地給你講出來,讓淺友們也爽一下。
Let’s ROCK
1、人類的網絡像個巨大巨大巨大的螞蟻窩
ZoomEye,其實就是知道創宇畫了五年多的**“網絡空間地圖”。**
注意,有關網絡的地圖,存在兩種:
一種叫做**“網頁地圖”**,這種地圖標記了全世界幾乎所有的網頁內容,然後讓人可以方便地查詢到想要的東西在哪。沒錯,這就是你再熟悉不過的谷歌和百度。
另一種叫做**“網絡空間地圖”**,這種地圖標記了全世界所有“電腦”(包括服務器、個人電腦、路由器、攝像頭等等等等所有擁有計算能力的聯網設備)的位置。人們也可以在 ZoomEye 上查詢自己感興趣的設備在哪裏。
同樣都是地圖,大多數普通人對“網頁地圖”很熟悉,卻對“網絡空間地圖”很陌生。
那麼“網絡空間地圖”究竟長什麼樣子呢?
你可以想象一個——螞蟻窩。
在螞蟻窩裏,一個個蟻房通過通道相互連接,不斷有螞蟻在其中穿梭,傳遞食物和信息。而在網絡空間裏,一個個蟻房就是一個個“電腦”,他們通過“端口”相互連接,傳遞信息,形成了同樣錯綜複雜的網絡。
曾經有神人把融化的鋁水澆進了螞蟻窩,然後凝固之後挖出來,沖掉其中的泥土,就得到了蟻窩的結構模型,我們來感受下:
螞蟻窩的結構
隱喻了人類的網絡結構
我覺得螞蟻窩特別形象地模擬了網絡空間的結構,只不過真實的世界裏,網絡空間的結構要比那個螞蟻窩巨大無數無數無數倍。
巨大的“螞蟻窩”裏,服務器、路由器、攝像頭、工業設備、醫療器械等等各種奇形怪狀的“電子螞蟻”蝸居在自己的蟻房裏。它們之間有千絲萬縷的聯繫,通過相互發送信號連接成一個整體。
你看不見它,也摸不到它,甚至難以想象它,而它卻真實地成為我們這個世界的發動機。世界就是這麼奇妙。
總結一下:
到現在為止,你知道了我們的網絡空間大概是什麼樣子——像一個巨型螞蟻窩。
説到這,估計有盆友已經不能忍了。這麼龐大錯綜的螞蟻窩互聯網,想想密集恐懼症都要犯了,它的地圖有可能被我們畫出來嗎?
下面我就來回答這個問題。
2、ZoomEye 是怎樣探測網絡空間的?
別嫌中哥囉嗦,為了讓更多淺友明白,我首先要科普兩個名詞:
第一個詞:端口
簡單來説,你可以把一台電腦(或者隨便什麼設備)想像成你的女票。你想聯繫到她,可以有很多方式:微信、電話、短信等等等等。每一種聯繫她的途徑,就是一個端口。
如果哪一天你忘記了準備女票的生日禮物,她往往會選擇對你關閉所有端口,這時,她就在你的“地圖”裏消失了。神不神奇?意不意外?
女票的端口
對於一個網絡設備來説,理論上它最多可以有 65536 個端口。因為在人類通用的協議裏,用來表示端口號碼的二進制字符有16位,而2的16次方正是這個數字。而且,它們就沒有人這麼矯情,一般不會隨意關閉端口。
計算設備的端口
第二個詞:IP 地址。
在真實世界裏,我們怎麼標記位置呢?是用經度和緯度。
在網絡空間裏,我們怎麼標記位置呢?是用 IP 地址。
在現實世界裏,每一個連接到互聯網公網的設備,都有一個 IP 地址,就像你家的門牌號一樣。現在全人類的 IP 地址(IPv4),總共只有2的32次方個,算出來的話,是 42 億個多一點。這並不算是一個天文數字,甚至肯定比很多人想象中還要少一點。
全球的 IP 分佈圖
感興趣可以看大圖
這意味着:目前,如果勤奮一點,幾台計算機花幾天時間是可以把人類網絡空間的“門牌號”一個不落訪問一遍的。(注意,我説的是“目前”,這裏有一個巨大的坑,我們到後面再説。)
解釋完“端口”和“IP 地址”,我猜你已經猜到 ZoomEye 是怎樣探測我們的網絡空間的了。
理論上來説,他們只需要做一件事:
沿着街道去各家各户敲門一樣,給不同 IP 上的不同的端口發信息,看看對方説什麼,也就是會有什麼消息返回來,然後把這些信息忠實地記錄下來,這樣就一點點畫出了人類所有網絡空間的巨幅地圖。

再總結一下:
目前為止,你知道了ZoomEye 是怎樣畫出這幅地圖的——沿着不同的“門牌號”一個個敲門記錄信息,一點點把圖“跑”出來。
聽隋剛説完這些燒腦的話題,中哥長出一口氣。。。
然鵝,不料,想不到的是,更燒腦的還在後面。。。
隋剛説,真正的難點不是把這張“網絡空間地圖”畫出來,而是把它的細節描繪出來。
2、畫這幅地圖的細節,你會遇到三個難題
隋剛打開了 ZoomEye 的“數據統計”。上面赫然顯示着,設備數:1190860679。
這説明,ZoomEye 已經探測到將近12億台設備連接在整個人類的互聯網上。(在這些設備中,可能有很大一部分是路由器或者其他內網入口,它們背後連接的其他設備並不會被探測到,所以也沒有包含在這個數量中。這就好像地圖可以精確到大樓外部,卻看不到內部結構一樣。)
但是,有一個殘酷的事實:目前不論是 404 實驗室,還是其他人,都不能百分之百畫出這張地圖的所有細節。
為什麼呢?
你在地圖上看到一個設備,你肯定想知道以下三個細節:
1、這是什麼設備?
2、這個設備位於什麼地方?
3、這個設備屬於誰?直接操作這個設備的人又是誰?
我們可以拿百度地圖來做比喻。
如果你打開百度地圖,看到城市、街道和建築,但在每一個建築上面,並沒有標註哪個是“天壇公園”,哪個是“北京飯店”,相反,幾乎所有建築上面都標記了兩個大字:“大樓”。那麼,手握地圖的人會怎麼想?他一定會覺得這個地圖太粗糙了,根本沒辦法使用。
全都標記“大樓”的地圖
看起來很皮
所以,説清楚一個設備的具體型號、具體位置、與之相關聯的個人,實際上非常重要。
現在我們就試着回答一下這三個難題。
問題1:這個 IP 上是什麼設備?
按照設定,一個設備的端口被“敲門”之後,會回覆一串信息。這串信息裏,一般會標明自己是什麼品牌的什麼設備,還有一些其他的基本參數。
你可能會説,這不就已經知道這個設備是什麼了嗎?然鵝,既然説一般,就總會有例外。
你可以試試,在自己住的小區裏,一個單元一個單元爬上樓,一個門一個門地敲。你會遇到什麼情況呢?
1)“啪啪啪”敲門,門沒開,但裏面有人問:誰啊?這時,你能得到的信息有:裏面有人住、裏面是個男人(或女人)。你就可以把這些信息標註在地圖上。
2)“啪啪啪”敲門,門開了。這時,你能得到的信息更多,這是個男人女人,甚至你還可以通過門縫看到屋裏的一點陳設,這家是歐式裝修還是毛坯房。你就可以把這些信息標註在地圖上。
3)“啪啪啪”敲門,門開了,裏面的人還很和善,和你攀談起來,並且邀請你進屋喝一杯茶。這樣,你就可以瞭解到這位主人的職業、年齡、收入情況等等,然後把這些信息標註在地圖上。
以上情況算是情理之中。下面我們放飛想象,你又來敲門了:
4)敲門之前,你聽到屋裏有些響動。“啪啪啪”敲門,門沒開,裏面的聲音卻停下來了。無論你説什麼,裏面都沒聲音。這説明什麼?裏面有人,但裏面的人究竟是誰?他們在做什麼呢?
5)“啪啪啪”敲門,門沒開,裏面的生物説出了奇特的語言,你根本聽不懂。。。那麼,裏面是誰呢?
你有沒有意識到一些讓人脊背發涼的事實:
在網絡世界裏繪製地圖的時候,門背後透露出來的信息可能是千奇百怪的,甚至是讓人恐懼的。。。如果我們不能理解,就只能把這些信息先記錄下來,然後顫抖着手在地圖上標註:未知。
問題2:這個設備位於什麼地方?
在現實世界裏,知道了門牌號,你就可以找到它的真實物理地址。但在網絡空間裏,知道了門牌號(IP 地址),並不一定能找到這台設備的具體位置。這是因為 IP 是可以移動和變化的。
也就是説:中國北京市西城區西長安街甲1號,永遠不可能挪地方;一個 IP,今天可能在北京,明天就移動到了上海。
所以,你又會發現一些反常識的事實:這幅“網絡空間地圖”是會自己“扭動”的。

這可怎麼辦?
其實,在全世界都存在這樣一種公司——專門為 IP 地址和真實地址配對。ZoomEye 需要靠其他團隊幫忙才可以把 IP 地址和真實地址匹配。
但是,由於 IP 地址在不斷變化,就算這類地址團隊再努力,也智能保證自己的 IP 地址和真實地址的匹配相對準確。
問題3:誰在操作這個設備?
在人體內部,有一種叫做“血腦屏障”的東西。
它是一層堅韌的薄膜,隔開了神經系統和身體其他部分。這有點像互聯網世界和真實世界的關係。
一個設備在網絡上真實地工作,也會真實地影響人類世界,但它們並沒有為真實世界開放一一對應的接口。
要知道它背後的人具體是誰,除了“實名制”這種國家特權措施,沒有任何其他辦法。且不論人們可以有很多種方法繞過實名制的約束,網絡空間本身也是有國界的:一個國家無法強制另一個國家對自己實名制。
所以,如果要把全世界網絡空間裏的設備對應到人,難於上青天。我們必須有更精細的“其他維度”的資料。這裏暫且不表。
我在 ZoomEye 上通過“某關鍵詞”搜索到一些攝像頭設備,我選了一個給你截了個圖,從中可以得知它的 IP 地址信息、真實地址信息。(雖然不覺得太隱秘,但中哥還是打個碼吧,感興趣的話你可以到 ZoomEye 上自己探索。)
説到這裏,我們再來總結一下。
繪製網絡空間地圖,我們不可避免會遇到三個難以解決的問題:
1)互聯網的複雜程度大到難以想象;
2)互聯網的結構是不斷變化的,而且速度非常快;
3)我們用以繪製互聯網地圖的資料非常有限。
在現有的科技水平下,我們能做到的成績大概是:
網絡空間的所有設備中,
有50%我們可以探測到;
有10%我們可以知道它們的型號和功能;
有1%我們可以知道他們的位置;
卻有不到0.01%我們能知道他們背後的人是誰。
所以,如果以苛刻的眼光來看,在網絡空間地圖上,未知的部分其實佔了大多數。
**這有點像小時候玩的紅警。**未探索的地方,呈現一片漆黑。但誰都知道,有無數珍貴的礦藏和兇險的敵人等在黑暗中。
之前中哥埋了一個坑,我説目前人們可以窮盡所有 42 億多個 IP 地址。也就是説,我們可以做到挨家挨户把所有的門敲一遍。但是在未來,我們可能連這一點都做不到。
這就是人類浩浩蕩蕩的,從 IPv4 遷移到 IPv6 的過程。具體的科普就不寫在這裏了,簡單來説,未來的 IPv6,IP 總數是2的128次方個。這個數量超過了宇宙中總粒子的數量。。。
就像在電影裏出現的那個長長的無盡走廊,人類永遠不可能敲盡所有的門。
隋剛説,ZoomEye 正在盡力支持 IPv6。但是不可否認,繪製 IPv6 網絡空間的“完整地圖”,是一個更艱鉅的任務。

既然難度這麼大,為什麼 404 實驗室的大牛們還要拼死畫這張地圖呢?
因為這件事,我們有着不能不做的理由:
知道網絡空間裏的設備都是什麼,我們就擁有了網絡空間的**“民用地圖”。**
知道網絡空間裏的設備都處於什麼位置,我們就擁有了網絡空間的**“高精地圖”。**
知道網絡空間裏的設備背後的人是誰,我們就擁有了網絡空間的**“作戰地圖”。**
之前一直沒提,網絡空間測繪其實最開始發源於美國,在美國有一個大名鼎鼎的網絡空間搜索引擎,名為 Shodan。
某種程度上説,Shodan 就可以被稱為作戰地圖。它有能力探測到網絡空間的精細結構,卻特意隱藏了一些信息,不能被其他人看到。
中哥只能説這麼多了。但你應該能夠理解:一個國家,在和平時期可能用不到作戰地圖,但是如果你沒有作戰地圖。。。
你還記得知道創宇是“網絡安全特種兵”嗎?所謂“俠之大者,為國為民”。隋剛和 404 實驗室的任務核心,正在於此。
3、驚天秘密——我們就像“蜂羣”
既然不可能完整地畫網絡空間的完整地圖,這個地圖對我們來説又異常重要。於是,404 的黑客們,小宇宙開始爆發了。他們使用了一種神奇的方式來繪製地圖。
**“我們就像蜂羣。”**隋剛脱口而出。
我:納尼??
“你有沒有玩最近很火的遊戲《荒野大鏢客2》?”他問。
我:納尼??
看到我明顯沒跟上思路,他為我找到了一張《荒野大鏢客2》的全幅地圖,説:
你看,遊戲裏的地圖,山丘往往在一起,河流也在一起,草原、沼澤都會按照一定的規律聚集。
人們的思維是有邏輯的,而互聯網是人類思維創造出來的,它一定和人類的行為方式是有相似性的。
《荒野大鏢客2》的地圖
為了讓我更明白,他舉了幾個現實中的例子:
你看,去年有一個肆虐的病毒 Mirai,它曾經造成了德國大斷網。為什麼這個病毒的重災區是在德國呢?通過我們的地圖可以看出來,其實德國集中採購了一大批光貓,而正是這批光貓容易受到 Mirai 的感染。
而某幾款施耐德的設備,往往會安裝在電廠中;
幾種特定型號的大型機,往往又會被安裝在銀行中。
這就是**“蜂羣效應”。**
説到這裏,隋剛説出了最震撼的一句話:
人的“蜂羣效應”,會間接投射在網絡空間裏!
這下我明白了。他所説的其實是:我們可以用大數據的方式來理解網絡空間。
原來,繪製一副網絡世界的地圖,僅僅是傻傻地敲門,忠實地記錄下門背後傳回的信息,是遠遠不夠的。
真正的繪圖者,可以從這些雜亂的數據裏,像“達芬奇密碼”一樣,分析出一個個讓人震驚的規律,從而大大簡化繪圖的難度。
舉個例子:
假設我們發現了很多未知的設備,但就是搞不清楚他們是什麼。
這種情況下,就可以先把類似的設備歸為一類,然後標記為“X”。
後來我們突然發現,這其實是一個電廠的控制器,那麼,我們據此可以推斷,所有有這個設備的地區,就很可能都是和電廠相關的。
而我們通過大數據還可以知道,和這個 IP 相關聯的設備,很可能就是電廠的設備。
於是,原本在這幅地圖上被標記為X的區域,就可以通過分析,一片一片地被我們揭開。
隋剛發現,這些未知的部分,其實藏滿了比想象中更動人的秘密。但是,解開這些秘密,卻需要很多不同行業的專業知識。
404 實驗室總的黑客們都是網絡安全的頂尖高手,但是他們卻沒有各行各業的專業能力來判斷哪個設備屬於醫院,哪個設備屬於電廠,哪個設備屬於銀行,等等等等。這就造成了他們只能把設備歸類為不同的區域 X,卻沒辦法揭開每一片 X 背後的真相。
有了這個方向以後,2018 年 404 實驗室對 ZoomEye 添加了一個重大的功能。
4、我們的星辰大海,就是發現那些“X”
2018年之前,ZoomEye 這張地圖,所有人都可以查看。
2018年之後,ZoomEye 這張地圖,所有人都可以標註。
這正像當年的哥倫布、達伽馬和麥哲倫。他們所能做的,只是標記出各大洲的輪廓,而這些大洲上有着怎樣的人,有着怎樣的山川風貌,卻是無數追隨他們腳步的普通人一點點標記出來的。
這是一張哥倫布使用的地圖,可以看出來非常不準確。但是後人正是在這個基礎上一點點地完善出了相對準確的世界地圖。
隋剛告訴我,知道創宇和 404 實驗室想做的,正是這樣一件事。
這張圖標註了熱門組件的數量
最多的仍然是:Unknown
設備的類型,在ZoomEye 上是用“組件”的形式表現的。現在登錄 ZoomEye,能看到已經存在了7000+類設備。
隋剛估計,網絡上的設備,總分類數量可以達到幾十萬甚至幾百萬。7000到幾百萬,中間還有巨大的差距,等待人們去填補。
在 ZoomyEye 網頁的頂端,赫然寫着“貢獻”二字,這就是所有人為網絡世界地圖進行標註的入口。
我截取了一段 ZoomEye 社區裏,各行各業技術宅們為“網絡空間地圖”做的標註。
聽完隋剛的講述,我才能真正明白這個入口的意義:
雖然我們面對的網絡空間像宇宙一樣浩瀚,但這並不能成為我們留在原地的理由。恰恰相反,我們必須刻不容緩地出發,只是為了獲得在這片網絡世界裏鋼鐵般的生存權利。
這是一個遠航的時代,我們可以為英雄們歡呼,也可以把自己變成英雄。
其實,資深的淺友應該還記得,2018年春天,中哥曾經找隋剛聊過一次。那一次,他們發現了網絡上一款數量達到幾十萬個之多的攝像頭存在漏洞,可能被黑產控制用來做犯罪活動。(想複習的同學點這裏:《黑掉攝像頭:你看到好看的皮囊,我卻看到有趣的靈魂》)
當時我並沒有仔細講解,他們正是用 ZoomEye 的網絡空間地圖,才看到了全球黑客可能被黑客控制的攝像頭分佈的全貌。也正是因為他們的預警,才讓國家和很多公司對可能到來的進攻做了防禦,你我並沒有感受到巨大的衝擊。
少數人描繪這張地圖的執念,
才贏得了多數人忘掉這張地圖的權利。
坐在隋剛對面吃着大盤雞。我腦海裏突然蹦出了《麥田守望者》的那句話:
有那麼一羣小孩子在一大塊麥田裏做遊戲。幾千幾萬個小孩子,附近沒有一個人——沒有一個大人,我是説——除了我。我呢,就在那混帳的懸崖邊。我的職務是在那兒守望,要是有哪個孩子往懸崖邊奔來,我就把他捉住——我是説孩子們都在狂奔,也不知道自己是在往哪兒跑。我得從什麼地方出來,把他們捉住。我整天就幹這樣的事。我只想當個麥田裏的守望者。