4
三十年過去了,在廣州潮濕的天氣里,我經(jīng)常會回憶起小時候東北的天空。
那時候,我時常需要仰望天空。因為我的任務(wù)是手握一根松木桿,高高挑起電視天線。一陣風(fēng)吹過,電視上就閃過一片雪花。村莊很空曠,我有足夠的時間,把天線調(diào)整到一種精妙的姿勢。在某一刻,電視里的雪花猛然消失,我的心情頓時舒暢得無以復(fù)加。
直插天際的松木天線很漂亮,只是它的刺有些扎手。
如果愿意,可以叫我老王。從小我就喜歡一切最先進(jìn)的科技。在1980年代,最先進(jìn)的科技是“電”。那時候電視經(jīng)常因為里面電壓的變化,造成影像拉伸或壓縮。路途遙遠(yuǎn),我沒辦法抱著電視到鎮(zhèn)上去找專業(yè)的師傅維修,只能打開后蓋,小心避開高壓包,自己學(xué)著調(diào)節(jié)背后的旋鈕。
這并不是電視帶給我的最大挑戰(zhàn)。
由于用電高峰期,電壓下降得很厲害。為了讓電視工作,我甚至需要自己改造家里的電路,把零線接到地上,撒上鹽水,用這種“土”但是有效的方法提高電壓。
那時的電視都搭配調(diào)壓器。在晚上的時候,需要把調(diào)壓器調(diào)到最高級別,才能勉強把電視點亮。而到了半夜,則需要記得把調(diào)壓器調(diào)回來。有一天鄰居老頭在我們家看電視,他并不懂這些,看完之后悄悄回家了。我從夢里醒來,看到電視像探照燈一樣噴出光芒。我家的電視以這種方式犧牲了。
我第一次看到電腦,是在學(xué)校發(fā)的勞動課本的最后一頁。當(dāng)時我就說,這東西我認(rèn)識啊,不就是電視加個喇叭嘛。
1995年,我高中畢業(yè)。父親已經(jīng)臥病在床很多年,家里的錢沒辦法繼續(xù)支撐我的學(xué)業(yè)。我意識到自己必須掙錢養(yǎng)家了。
那時候,北京一家軟件公司的老板到了我的家鄉(xiāng),想要建設(shè)一個“軟件基地”。他看中的是我家鄉(xiāng)便宜的人力和土地。
招聘的時候,老板說這份工作就是要用電腦“編程”。我想這應(yīng)該即簡單又有趣:不就是鼓搗“電視加喇叭”嗎?我從小就會啊。
老板租下來一個廢棄的“化肥廠”(實際上是過去生產(chǎn)炸藥的軍工廠),這個廠房從外表看只是一個山腳下的小樓。而進(jìn)入小樓才發(fā)現(xiàn),空間一直延伸到山體里面很遠(yuǎn)很遠(yuǎn)。這個軟件基地,果真是“基地”。
一臺 486 電腦作為主機(SCO Unix 系統(tǒng)),連出20臺終端,我們一個小組的人合用這一臺電腦的計算能力。而就算這樣,還必須爭先恐后。雖然連接了20臺終端,但系統(tǒng)最多只能允許16臺同時在線,如果你拉肚子來晚了,或者干脆手速不夠快,對不起你只能等其他人登出,當(dāng)然完不成工作是要扣工資的。
最初的三個月是技術(shù)培訓(xùn),這三個月里,我第一次學(xué)習(xí)了打字和編程。所以我更愿意把這里叫做學(xué)校。
如果這個學(xué)校里只有男生,或者只有男生和長相一般的女生,也許我都不會成為一名黑客。偏偏有一個姑娘,攪動了我年輕的荷爾蒙。
我絲毫不想掩飾我成為黑客的最初動機,那就是強烈的窺探欲。
剛學(xué)會打字的姑娘們,選擇把日記敲進(jìn)電腦里。我滿腦子想的都是如何翻看姑娘的文件夾,我幻想打開姑娘日記的一瞬間,看到她的文字里寫滿了對我的暗戀之情。
然而,自己的權(quán)限只能訪問自己的文件夾。我把目光投向了最前面對著我們坐的那個家伙。這位管理員也是我們的同學(xué),而且是編程學(xué)得很爛的同學(xué),所以他只能做管理員的工作。但正是這個家伙,擁有 Root 權(quán)限,可以查看所有文件。
如果能搞到他的密碼,我的人生就圓滿了。
在愛情面前,我的智商爆發(fā)了。我買了一本 C 語言的書,自己研究了好幾天,磕磕絆絆寫出了一個偽造的登錄頁面。趁管理員出去上廁所又不小心沒有注銷賬號的空檔,我把這個偽造界面在他的系統(tǒng)上運行了起來。
隨著他噼噼啪啪地敲打密碼,這串字符被自動存儲到我的目錄下。這是我人生中第一次黑客攻擊,我的老師是自己的荷爾蒙。雖然我拿到了密碼,但是我卻不是那么高興,因為我發(fā)現(xiàn):載滿姑娘情感糾葛的日記,根本沒有一個字提到我。
為了持續(xù)監(jiān)控班里同學(xué)的“思想狀況”,我需要維持自己的登錄權(quán)限。但是那個管理員同學(xué)閑著沒事,唯一的工作就是改密碼。我必須改進(jìn)我的技術(shù)。我發(fā)現(xiàn)一個方法,可以用另一個高權(quán)限賬戶進(jìn)入,把管理員的密碼替換成我的密碼。這樣,無論密碼如何修改,我都可以進(jìn)入。只是有一次我疏忽了,修改了root密碼之后忘記備份原密碼,剎那間我意識到,已經(jīng)沒有沒辦法把密碼改回去了。
之后的故事是:可憐的管理員在機器前試了上百次密碼,驚動了整個基地。這時,我只要走上講臺,輕輕鍵入我的密碼,就可以解決一切。但是這樣做的結(jié)果只有一個:我被掃地出門。我任由這個同學(xué)滿頭大汗地打電話給北京總部,被嚴(yán)厲批評,并且花了一夜的時間重裝系統(tǒng)。
那時候安裝一個 SCO Unix 系統(tǒng),需要來回插拔50張5寸軟盤。
雖然直到現(xiàn)在都沒有人知道我才是“幕后黑手”,但在之后的每一次攻擊中,我的腦海中都會浮現(xiàn)出這次的教訓(xùn)。不是所有的對手都像那個管理員同學(xué)一樣弱,而這個世界,往往沒有機會讓你挽回錯誤。
我開始了四海為家的程序員生涯。
我清楚地記得,那時我們一幫人坐著火車,從哈爾濱到北京,然后沿著剛修通的京九鐵路南下。中途每經(jīng)停一站,我們唯一的任務(wù)就是下車買啤酒。三天三夜的時間,我們幾乎品嘗了大半個中國的啤酒,穿越了無數(shù)山川和村莊,來到深圳。
在華為做現(xiàn)場開發(fā)的日子里,我知道了金山解霸的作者,神人梁肇新。他寫的軟聲卡,居然可以讓只會“嘀—嘀”響的喇叭放出歌曲。
我迷上了中國最早的網(wǎng)絡(luò)游戲:MUD,為了在公司里架設(shè)游戲服務(wù)器,我甚至學(xué)會了它的編程語言 LPC。(98 年華為中研部素未謀面的老伙計們,還記得《東方故事II》里原名“小李飛刀”,后來拜入少林被強制改名為“渡小”的那個家伙嗎?)
更重要的是,我第一次看到了 Coolfire——那個曾經(jīng)啟迪了無數(shù)第一代中國黑客的臺灣黑客教父——寫的文章。 我才知道,原來有系統(tǒng)溢出這樣的概念,簡單的溢出就可以獲得權(quán)限,這可比我偷管理員的密碼強多了。
我開始瘋狂地把那些攻擊代碼下載下來,進(jìn)行攻擊實驗。后來我才知道,這些代碼根本就不可能編譯過去。(因為當(dāng)時的 Unix 系統(tǒng)不管是 SCO 還是 Tru64 上的商業(yè)版本 cc 都不支持 _asm)意料之中,我那時的攻擊都以失敗告終。不過沒關(guān)系,這種神一樣的黑客技術(shù)已經(jīng)印在了我的腦海中,永遠(yuǎn)無法消失了。
再后來,我輾轉(zhuǎn)哈爾濱、珠海、北京、上海。雖然我的肉體居無定所,不過我在網(wǎng)絡(luò)世界里,卻有了非常固定的組織。
奇遇是這樣發(fā)生的:
我偶然發(fā)現(xiàn)有一條新聞,著名的黑客組織“綠色兵團”分成了南北兩派。懷著一顆八卦的心,我混進(jìn)了 sunnet IRC 綠色兵團組織的駐地,沒想到,誤打誤撞的我卻殺進(jìn)了當(dāng)年最核心的黑客圈子。這個叫“#isbase”的房間,大概每天四五十人在線。這些人正是中國的第一批黑客。
我向他們詢問綠色兵團分家的情況,結(jié)果卻遭到了鄙視。他們紛紛笑話我,這件事情已經(jīng)過去一年了,為什么還在問。被鄙視,我絲毫不介意。關(guān)鍵的問題在于,這些黑客居然和我說話了!
雖說我接觸的人和我的黑客水平有點不同步,不過我有我的能力,那就是僅僅用了一兩個月就和他們混得稱兄道弟。當(dāng)時網(wǎng)名還叫 cbird 的蔡晶晶在 IRC 中注冊了一個永久的房間“#Superman”,但是平時沒人。于是我厚著臉皮把房間要過來,拉了幾個聊得來的兄弟。
林浪子(后來盤古團隊的 DM)、oliver、se1ang、未央生、kaka、rcch、white 等等,是最早的成員,后來隨著 ICBM(趙偉)、KEJI、KKQQ、SWAN 等大牛的加入,#superman 的成員固定了下來。
房間里有人了,必須得找點事干。于是我們決定,本房間的任務(wù)是:搞XXX。(如果你了解XXX的意思,那么你是老司機。)
我們盯上了國內(nèi)某個 Warez 組織(可以理解為:破解軟件組織)。他們擁有一個龐大的破解軟件和“XXX”電影渠道。如果能夠控制他們的FTP,不就等于我們也有了這個重要的資源了嗎?
現(xiàn)在回想起來,那是我們小組的一次完美配合。我們直接“黑吃黑”攻入了他們的服務(wù)器,并且采用各種手段一直保持權(quán)限,讓我們有足夠的時間把所有的最新高清毛片都拖下來。
在網(wǎng)絡(luò)世界中,我們幾乎就是隱形人。這讓我感到驕傲。
經(jīng)過這次完美的戰(zhàn)役,我們小組榮幸地升級為“Superman Sex Team”,簡稱“SST”。團隊的伙伴們覺得這個名字有點土,于是把“SST”寫成了“557”。這還不夠,作為頂尖的黑客組織,我們的“557”應(yīng)該是16進(jìn)制的。于是我們小組的名字變成了“0x557”。
當(dāng)時的我絕沒想到,這個松散的組織最后會成為黑客界的一個傳奇。
我找到了真正讓我著迷的事情——在網(wǎng)絡(luò)世界里,成為一個隱形人。
我和“557”的兄弟們,隨意進(jìn)出幾乎任何一個網(wǎng)站的服務(wù)器。不會受到任何阻攔。
在林浪子(DM)閉關(guān)研究漏洞以及利用程序編寫的時候,我光榮的成為了一名“腳本小子”。說句老實話,那個年代把人都搞懶惰了。例如袁哥發(fā)現(xiàn)的“IIS Unicode漏洞”,幾乎可以通殺所有的 IIS 服務(wù)器。而像這樣的通用性漏洞有很多,只要用一個掃描器批量掃,絕大部分網(wǎng)站肯定中。某種程度上說,我根本不用費心去挖掘漏洞。
我關(guān)心的是,被黑掉的服務(wù)器究竟有多大的存儲空間。我的原則很簡單:遇到硬盤小的就直接掠過,遇到超過100G的硬盤就留下來放“XXX”。那段時間,我黑站黑到吐。
不過,我很享受這個過程。確切地說,我享受隱藏自己的樂趣。我像一個錦衣夜行的俠客,穿梭在黑暗的互聯(lián)網(wǎng)中。這大概和你們心中的經(jīng)典“黑客”形象相差無幾。
現(xiàn)在回想起來,那是個最好的時代。很多現(xiàn)在深藏于內(nèi)網(wǎng)的核心主機都暴漏在公網(wǎng)上,只要你想,你可以接觸任何操作系統(tǒng),那時候我甚至登入了一臺運行了 OS/390 的機器。相比現(xiàn)在,放眼望去不是Windows就是Linux,瞬間感覺世界單調(diào)了很多。
每黑一個站,我都學(xué)會了更好地隱蔽自己。
即便我攻擊成功并且全身而退,但計算機的日志不會騙人。對方的管理員完全可以依靠日志溯源到我的身份。在每一次攻擊時,我都需要清醒地知道在服務(wù)器這個巨大的迷宮里,我的一舉一動都被怎樣記錄著。最重要的是你要知道哪里會有你的痕跡,在全身而退前,我要輕輕地把這些痕跡抹掉,而不是暴力的刪除所有日志。
這并不容易。攻擊 IIS 服務(wù)器的時候,你要知道 IIS 的日志存放在哪里;攻擊 Apache 的時候,你要知道 Apache 的日志在哪里。當(dāng)然,這些還遠(yuǎn)遠(yuǎn)不夠。我猜測了密碼,我嘗試了提權(quán),所有的微小動作都會在不同的瑣碎之處甚至意想不到的地方產(chǎn)生日志。所有這些動作,一旦疏忽大意,就會留下可供追溯的蛛絲馬跡。
對于“隱形人”來說,蛛絲馬跡就意味著失敗。
在網(wǎng)絡(luò)世界里,所有的門都為我敞開;在現(xiàn)實世界里,卻四壁高聳。
我厭倦了做開發(fā),想成為一個專業(yè)的安全人員。那時我甚至想:哪怕是一個系統(tǒng)管理員也行。我只是享受完全掌控計算機的感覺。然而,所有愉快的面試都終止在我拿出高中文憑的那一刻。
2002年的上半年,我奔波在上海的大街小巷,想要找到一個收留我的公司。直到六月的一天,一個 IRC 里面經(jīng)常一起討論技術(shù)的老朋友突然聯(lián)系我,他就是 Shotgun。那時他剛從北京啟明星辰來到上海啟明星辰赴任 CTO。
在飯桌上,我告訴他我已經(jīng)待業(yè)半年了。他的話我至今難忘:“你去那么多地方面試,卻不來我這,是不是看不起我?”沒錯,我的黑客圈子救了我。第二天我就坐進(jìn)了啟明星辰的辦公室:張江一座宏偉的五層建筑的第六層——在房頂加蓋的部分。
在啟明星辰,我可以合法的登入大型系統(tǒng)進(jìn)行配置檢查,對目標(biāo)系統(tǒng)發(fā)起滲透測試。也正是從那個時期開始,我接觸到了銀行、電信等企業(yè)使用的大型專用系統(tǒng)。這些系統(tǒng)分區(qū)分塊,層層疊疊,就像碩大無朋的數(shù)字迷宮。哪怕是管理員都只能熟悉自己負(fù)責(zé)區(qū)塊的架構(gòu)和配置文件。
成功潛入,并不意味著我要和對方管理員一樣熟悉他的系統(tǒng),而是我必須比對方所有的管理員更熟悉他的系統(tǒng)。
這就像一棟大樓,每一層都有自己的保安,而我需要打穿所有的守衛(wèi),進(jìn)入核心區(qū)域。以一敵十,甚至以一敵百,是我的宿命。
像幽靈一樣穿行在這些巨大的迷宮中,讓我獲得了無以復(fù)加的享受。從這個時候開始,我意識到自己在這個世界上是不可替代的。
然而現(xiàn)實總是不免殘酷。我漸漸發(fā)現(xiàn)了一些真相:聽上去有點可笑,滲透測試的目的就是為企業(yè)找出薄弱環(huán)節(jié)。但是在真正的滲透測試中,企業(yè)的技術(shù)人員往往為了防止生產(chǎn)系統(tǒng)崩潰,甚至僅僅出于私心,把一些實際上很脆弱的環(huán)境隱藏起來。只對測試人員開放有限的接口。
這就像所謂的信息安全”木桶原理“,理論上確實可以要求解決“短板”問題提高安全等級,但是如何保證“短板”是最短的? 我們甚至無法保證他們把所有的“板”給了我們。實際上,真正的攻擊并不會在意你是測試系統(tǒng)還是生產(chǎn)系統(tǒng),它要得只是通向目標(biāo)的路徑和攻擊通道。太多的事例表明,有限制的滲透測試做出的結(jié)論往往似是而非。
那些年,我時常懷疑,這樣的滲透測試真的可以防御入侵嗎?
不同于滲透測試,真正的網(wǎng)絡(luò)攻擊根本沒有套路和規(guī)矩可言。作為一個老黑客,我親歷了網(wǎng)絡(luò)世界最兇殘的一面:在黑暗的服務(wù)器中對戰(zhàn),一個微小的錯誤就可能讓你被對方直刺喉嚨。生死一念間,這絕不是花拳繡腿和自欺欺人。
我想要找到一種方式,讓我參與到真正的網(wǎng)絡(luò)攻擊當(dāng)中。
有一次,我們團隊執(zhí)行一項無通知滲透測試任務(wù),客戶是一家跨國集團公司,他們懷疑競爭對手通過網(wǎng)絡(luò)攻擊竊取機密信息,但是安全廠商認(rèn)為核心網(wǎng)絡(luò)是邏輯隔離的,外部入侵無法訪問核心數(shù)據(jù)。此次項目只有客戶的CTO和安全部門的核心leader知情,目的是驗證能否通過外部攻擊的方式訪問核心數(shù)據(jù)以及測試管理員的應(yīng)急響應(yīng)能力,我們被授權(quán)可以動用除DoS之外的一切手段從外網(wǎng)發(fā)起滲透。
這個目標(biāo)非常龐大,卻又保衛(wèi)森嚴(yán)。這里幾乎部署了世界上存在的所有類型的安全防護(hù)系統(tǒng)。突破這些自動化防御系統(tǒng),雖然艱難,但是我還是成功了。
和機器對抗,永遠(yuǎn)不是最難的;和人對抗,才是我站在這里的目的。
初步滲透之后,我們打通了通向內(nèi)網(wǎng)的攻擊通道,并且掌握了查看對方所有人郵件的權(quán)限。通過查看管理員的往來郵件,我知道他們已經(jīng)發(fā)現(xiàn)了被入侵的跡象并且修補了漏洞,但是他們顯然還不知道自己已經(jīng)被監(jiān)視。監(jiān)控對方的郵件對我來說是個好消息,所謂知己知彼,百戰(zhàn)不殆。至少目前我具有很大的優(yōu)勢——能可以查看對手的牌。
對于滲透測試來說,初期的攻擊是最容易被發(fā)現(xiàn)的,因為必須要做一些常規(guī)的掃描和利用嘗試,部署在邊界的安全設(shè)備都有能力發(fā)現(xiàn)此類攻擊,但是從另一個角度上來講,管理員也最容易忽略這些信息,每天發(fā)生在網(wǎng)絡(luò)上的各種攻擊掃描數(shù)據(jù)足以讓真正的攻擊痕跡淹沒在茫茫的告警中。
很多管理員會認(rèn)為既然發(fā)現(xiàn)了漏洞,那么打上補丁,甚至直接下線就安全了,事實上一個有經(jīng)驗的入侵者在獲得入口后會及時的利用入口打通其它的攻擊通道并遷移過去,而且很有可能做一些微調(diào)讓漏洞利用變得困難,防止其它入侵者利用。
對方的管理員顯然比較專業(yè),準(zhǔn)確的定位到漏洞位置,及時修補,然而從他的郵件里來看,他并沒有發(fā)現(xiàn)其他痕跡,也不清楚這個入口服務(wù)器事實上已經(jīng)作用不大了。
對于一個大型目標(biāo)來說,并不是獲得一個網(wǎng)站權(quán)限、拿到一個域控管理員的賬號、進(jìn)入一個數(shù)據(jù)庫就能搞定一切的,大多時候你甚至不知道真正的數(shù)據(jù)存放在哪里。我必須不停的探測、查找,分析對方的網(wǎng)絡(luò)結(jié)構(gòu),分析對方的管理員權(quán)限范圍,分析各種應(yīng)用的數(shù)據(jù)來。這個過程,就不可避免地要跟管理員進(jìn)行對抗——技術(shù)上的和心理上的對抗。
這種對抗對攻擊者來說是最不愿意碰到的,在我看來一次完美的攻擊行為應(yīng)該在管理員毫不知情的情況下完成,所謂靜悄悄的來,靜悄悄的走。然而理想化的結(jié)果很難存在,更多的是對抗在攻擊過程中就已經(jīng)產(chǎn)生。
攻防過程中,管理員先天上具備資源的掌控性優(yōu)勢,他可以隨時下線感覺有問題的機器,所以對于攻擊者來說這就不僅僅是技術(shù)上的對抗,更重要的是心理上的對抗,要盡力偽裝自己的目的,在不能完全隱藏自己痕跡的情況下,最好讓管理員感覺攻擊者是個白癡,讓他產(chǎn)生技術(shù)上的優(yōu)越感,從而不至于采取拔網(wǎng)線,分析磁盤鏡像等極端的防護(hù)措施。
我刻意選在半夜兩點鐘動手。然而萬萬沒想到,即便是在深夜,我剛剛進(jìn)入對方的服務(wù)器系統(tǒng),就觸發(fā)了對手的報警,在非常短的時間內(nèi),對方管理員就進(jìn)入了機房,登錄了系統(tǒng),把我踢了出去。
我們感覺到很詫異,因為這次攻擊中沒有利用任何第三方工具,沒有嘗試破解密碼,沒有提權(quán)操作,而且完全遵循管理員日常管理的規(guī)范通過合法的身份和路徑登入系統(tǒng),并且禁止日志記錄。從技術(shù)角度上講已經(jīng)做到了極致。
萬幸,對方管理員并沒有摸透我的全部進(jìn)攻途徑,我們在一個很明顯的位置放置了一個很粗糙的webshell,并且偽造了幾條毫無目的的攻擊記錄,從郵件內(nèi)容來看,對方顯然認(rèn)為這是一次無目標(biāo)的的自動攻擊,而這種攻擊充斥在網(wǎng)絡(luò)中,管理員被我們迷惑了,并沒有意識到這是有針對性的攻擊行為。攻擊跳板機仍然存在。我重新規(guī)劃了攻擊路徑,擇機又發(fā)起了進(jìn)攻,眼看就要成功突破防線的一瞬間,毫無防備,我又被管理員干掉了。
我終于意識到,對方的管理員在一個特殊的地方,做了特殊的監(jiān)控手段。這種特殊的防護(hù),只能根據(jù)網(wǎng)絡(luò)的實際情況搭建,完全不是通用腳本,這種看上去的小伎倆卻把我這個“老司機”絆倒幾次。從那時起,我清晰地意識到:關(guān)鍵位置的定制防護(hù)手段在防護(hù)中的作用非凡。
我們已經(jīng)獲取了一些敏感數(shù)據(jù),其中包括門禁卡數(shù)據(jù),但是最終目的并沒有達(dá)到,我們準(zhǔn)備測試另外一種可能性。經(jīng)過與對方CTO的溝通,得到授權(quán)后,我們做了一個瘋狂的計劃:通過復(fù)制對方的門禁卡,派人潛入他們的工作區(qū)域,直接連接內(nèi)網(wǎng)的 Wi-Fi,從而偽裝內(nèi)部人員繞過他們的防護(hù)腳本。我們已經(jīng)選定了執(zhí)行人,并且做了周密的進(jìn)攻和配合計劃。
但就在計劃實施的前一晚,事情出現(xiàn)了轉(zhuǎn)機:我們發(fā)現(xiàn)了對方的防御設(shè)置,在一臺據(jù)說已經(jīng)廢棄的測試服務(wù)器上提取了監(jiān)控腳本,經(jīng)過分析后發(fā)現(xiàn)是可以被繞過的。
我們進(jìn)入了對方的集中控制臺,這臺機器雖然不能直接作為跳板進(jìn)入核心系統(tǒng),但是在這個控制臺的內(nèi)存中,存儲著我們渴望已久的目標(biāo)機器系統(tǒng)級密碼。我們成功把這臺機器的內(nèi)存做了鏡像。我們都知道,這 2G 內(nèi)存中,有幾個字節(jié)正是我們夢寐以求的“金鑰匙”。
然而,為了分析出密碼的所在,我們必須將這 2G 內(nèi)存全部下載到本地。而把一個 2G 的文件,在管理員眼皮底下傳出來,簡直是不可能的任務(wù)。這無異于從保衛(wèi)森嚴(yán)的大樓里,搬出一個保險柜。
我們需要做的,是把這個巨大的內(nèi)存鏡像,切成數(shù)十個小片,通過無數(shù)不同的渠道傳輸出來。即使這樣,為了不引起對方管理員注意,我們對所有的下載通道都做了自我限速,傳輸速度不能超過1M。終于,這段內(nèi)存的最后一個比特也平安到達(dá)了我的本地存儲。我知道這件事成了。
利用系統(tǒng)密碼,我成功地獲得了對方服務(wù)器的最高權(quán)限,終于拿到了“機密”的信息——事先準(zhǔn)備好的測試文件。雖然經(jīng)歷了艱難的三進(jìn)三出,但是最終的結(jié)果令人滿意。我們找到了對方網(wǎng)絡(luò)的諸多缺陷,自己也收獲頗多,因為真正的攻防對抗經(jīng)驗是實驗室環(huán)境無法模擬出來的。
這樣的經(jīng)歷讓我難忘。
二十年的黑客生涯讓我越來越相信,真正優(yōu)秀的 Hacking,更像是一門藝術(shù),是一種人與程序、人與人之間的對抗。0day和rootkit只是一種輔助,真正考驗的是hacker的技術(shù)功底和天馬行空的思維能力。越是高精尖的技術(shù),越具有不穩(wěn)定性。而我的對手,往往不給我出現(xiàn)任何閃失的機會。我必須用體系內(nèi)已有的規(guī)則,做超出規(guī)則的事情。
自從離開家鄉(xiāng),時間就過得很快。當(dāng)年在 IRC 活動的中國第一代黑客,很多都已到了不惑之年。有人早已不寫代碼,成為公職人員;有人遠(yuǎn)走他鄉(xiāng),在地球另一端,難以相見;有人還在這里,創(chuàng)業(yè)打拼,建立了自己的網(wǎng)絡(luò)安全帝國;有人“藝高膽大”,鋌而走險,卻最終鋃鐺入獄。
如今,還能數(shù)得上名的,不過十余人。我目送自己的黑客圈子一年年變老。
看慣了在比特陣地里的搏殺,我終于決定,用我的經(jīng)驗做一個理想中的“藝術(shù)品”。我和合作多年的老黑客 CP,還有“烏云漏洞一哥”Jannock 一拍即合,決定成立一家自己的公司。成立公司的底氣就是:我們具備豐富的網(wǎng)絡(luò)對抗經(jīng)驗。
我們知道哪些防護(hù)手段對有經(jīng)驗的黑客來說如同虛設(shè);
我們知道如何在一個貌似正常的系統(tǒng)中檢查異常;
我們同樣知道用怎樣的小成本防護(hù),就可以給黑客造成巨大的麻煩。
我們決定用自己的技術(shù)和經(jīng)驗,讓更多的人感知到自己正在遭受的攻擊。我雖然總用“沒文化”來自嘲,不過我很喜歡我的公司名字:錦行。這讓我時常回憶起過去“錦衣夜行”的日子。我想要找到一種方法,可以實時“看到”黑客的攻擊路徑,感知他的來源,預(yù)測他的攻擊目的。就像當(dāng)年我的對手希望看到我的行蹤一樣。
我們決定為黑客準(zhǔn)備一個“真實的”虛擬世界。
讓我來說說一個黑客是怎樣思考問題的吧:
在突破邊界防御之后,黑客第一時間的需要就是,搞清目標(biāo)內(nèi)部的構(gòu)架。他會潛入所有可能的地方收集信息。我們要做的就是,在偌大的網(wǎng)絡(luò)空間里,安插一扇虛掩的門。
你可以想象一個小偷。在進(jìn)入一幢別墅之后,他發(fā)現(xiàn)了五扇上鎖的門,這些門看上去沒有區(qū)別,他沒辦法判斷哪個門后藏著你想要的東西。所有的門都被鎖,但是鎖的類型并不相同。事實證明,如果我是那個小偷,我會從我最容易打開的那把鎖開始攻擊,然后尋找是否有暗門、窗戶等等其它通道進(jìn)入別的房間,就算沒有,也可以開辟一條進(jìn)入別墅的通道,從而不必每次從大門出入,站穩(wěn)腳跟之后再來判斷周圍的環(huán)境。
相信你也會做出同樣的選擇。
你還記得嗎,對于黑客熟悉怎樣的鎖,我最有發(fā)言權(quán)。這扇門背后,恰恰是我們布置的迷宮——真實的虛擬系統(tǒng)。
我會根據(jù)用戶原有的業(yè)務(wù)模式創(chuàng)造出這個“虛擬系統(tǒng)”。不過,這個場景和用戶真實生產(chǎn)環(huán)境的相似度有多少,并沒有你想象中那么重要。因為對于攻擊者來說,在打開其他門之前,他并不知道什么是“真實”的。反而,這個虛擬場系統(tǒng)越符合他的想象,就越能讓黑客自信爆棚。
有一個很簡單的判斷方式:為了探明環(huán)境,黑客會在虛擬系統(tǒng)中做一系列輸入。而虛擬系統(tǒng)反饋的輸出數(shù)據(jù),如果符合他的預(yù)期,那么黑客就會深信不疑。
而我們要做的,只是在這個虛擬的系統(tǒng)里隱藏各種探測腳本——還記得當(dāng)年讓我馬失前蹄的腳本嗎?這比我當(dāng)年遇到的腳本更加隱蔽,更加靈活。就像在一間屋子的地板下面,布滿感應(yīng)裝置。(如果在明顯的位置布上幾只攝像頭,黑客只需要一伸手就可以關(guān)閉它。)只要有人踏足這個房間,他的詳細(xì)動作都會被記錄并且傳出。據(jù)此,一個黑客的所有企圖都會暴露在我們眼前,就算是我們本身陷入進(jìn)去也不例外。
在我看來,這件事情的關(guān)鍵,倒不是如何搭建一個虛擬的環(huán)境捕捉到黑客的動作,而是如何分析他的每一個行為。
他為什么使用這個指令組合?
他為什么希望查詢這些信息?
他的每一個動作在我們“同行”眼中,都指向一個明確地意圖。他究竟是競爭對手?還是敵對勢力?或者只是一個迷路的腳本小子?都可以通過行為暴露出來。
更進(jìn)一步,他打指令的方式、下載文件的位置、搜索數(shù)據(jù)的習(xí)慣,都把他明確地定義為一個確切的人。擁有了這些指紋,在下一次他攻擊錦行“治下”的任何虛擬系統(tǒng),系統(tǒng)都能夠第一時間把他識別出來。這樣,就可以把他所有的“前科”聯(lián)系起來。這對于精準(zhǔn)預(yù)判他的下一步動作,有著非常重要的作用。
這個“真實的虛擬迷宮”,我給它起名叫幻云。
讓我驕傲的是,所有的這些判定,幻云都可以自動完成。而只有當(dāng)用戶需要分析不同情報之間關(guān)聯(lián)的時候,才需要專家介入。
我對“錦行”非常期待,因為我近二十年的黑客生涯,都傾注在其中。
創(chuàng)業(yè)讓我變得無比忙碌,我被迫從“自由黑客"改變?yōu)橐粋€事必躬親的初創(chuàng)公司 CSO。不過這種轉(zhuǎn)變并沒有讓我不適應(yīng),我是那種“每天不敲兩個小時代碼就渾身難受”的人。這讓我有足夠的激情對初期的產(chǎn)品進(jìn)行打磨。
當(dāng)年的我,迫于生計輾轉(zhuǎn)中國;而現(xiàn)在,我因為“錦行”而選擇定居南國。我用了二十年的時間,輾轉(zhuǎn)從國土的最北端走到最南端,卻從沒遠(yuǎn)離這片“賽博戰(zhàn)場"。
這些年,我見證了所有城市的高樓拔地而起,不過我并沒有幸運地成為腰纏萬貫炒房客;
我見證了黑客從我們幾個人的隱秘圈子擴展到了千軍萬馬,不過我也沒有成為用數(shù)據(jù)換跑車的黑產(chǎn)從業(yè)者。
我見證了網(wǎng)絡(luò)安全從無人問津變成了巨大的產(chǎn)業(yè)。創(chuàng)業(yè)維艱,身不由己。但在內(nèi)心里,我一直是個黑客。
這讓我感到驕傲。
【老王(La0wang),王俊卿】
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。