震網病毒剛剛被報道出來的幾天里,賽門鐵克公司三個大洲的十多名研究員共同對它的代碼進行了初步分析。很快,這件事轉由錢哥、莫楚和法里耶3人小組負責跟進,其他人繼續跟蹤其他新出現的病毒和威脅。一個星期過去了,他們3個仍然在拆解震網病毒的“導彈”部分(missile portion),根本沒來得及研究它的“載荷”(payload)。
像傳統武器一樣,數字武器一般也可分為兩個部分:負責將[惡意代碼](http://www.aqniu.com/infosec-wiki/827.html "惡意代碼是一種程序,它通過把代碼在不被察覺的情況下鑲嵌到另一段程序中,從而達到破壞被感染電腦數據、運行具有入侵性或破壞性的程序、破壞被感染電腦數據的安全性和完整性的目的。")傳播并安裝到目標計算機上的“導彈”部分,或稱為“傳播系統”;以及對目標計算機實施數據竊取或其他破壞性活動的“載荷”部分。震網的載荷,是以西門子公司軟件和可編程邏輯控制器(PLC)為目標的[惡意代碼](http://www.aqniu.com/infosec-wiki/827.html "惡意代碼是一種程序,它通過把代碼在不被察覺的情況下鑲嵌到另一段程序中,從而達到破壞被感染電腦數據、運行具有入侵性或破壞性的程序、破壞被感染電腦數據的安全性和完整性的目的。")。
看到震網這邊的工作量這么大,錢哥覺得有必要說服管理層,讓他們支持3人團隊繼續深挖這個“過氣明星”。每周三,公司在世界各地負責處理病毒威脅的經理們都會召開一個視頻會議,討論當前正在處理中重要病毒的情況,以及下一步的對策。在震網病毒發現后的第一個周三,震網當仁不讓的成為首要議題。
賽門鐵克在卡爾弗城擁有一塊九英畝大、長著棕櫚樹和荒漠灌木的商業用地,和一座寬敞通風的辦公樓。與VirusBlockAda公司狹窄的蘇式辦公樓相比,這座現代化的五層建筑有著大氣的挑高中庭和平整拼接的瓷磚地面,由于地下是電力和通風管道,所以走在上面會發出像敲擊空心玻璃一般的叮當聲。這座建筑還因采用了環保建材、能夠避開加州烈日直射的陽光反射式屋頂和可為每名業主提供良好視野的玻璃外觀,而榮獲“能源與環境設計先鋒獎”。和附近洛杉磯機場旁平淡無奇的購物中心和高速路相比,這里可以算得上一景了。
[](http://www.aqniu.com/wp-content/uploads/2015/09/640.webp-131.jpg)
門口石牌
[](http://www.aqniu.com/wp-content/uploads/2015/09/640.webp-141.jpg)
俯瞰中庭
視頻會議室的房間很小、沒有窗戶,位于三樓的一個不起眼的角落,要從實驗室繞幾個彎才能到。房間里有3個很大的顯示屏,安裝在與坐著的人眼同高的墻上,前面是一排會議桌。這樣,在錢哥開會的時候,就像是有人坐在他正對面一樣。
[](http://www.aqniu.com/wp-content/uploads/2015/09/640.webp-151.jpg)
視頻會議室
錢哥向領導們匯報了莫楚他們前期的研究成果:代碼規模龐大、加載/隱蔽文件手法老辣、還有以西門子PLC為目標的神秘載荷。他還匯報了從“槽洞”中窺見的、遭病毒感染地區的奇特分布模式。但是,他沒有言明攻擊背后可能隱藏的政治含義。
“我要求把法里耶抽調到我們這邊,”錢哥向各位經理提出,“而且我認為我們3個人有必要繼續全力攻關。”但是,有一個問題他自己也說不清楚。那就是,要把震網的代碼徹底研究透,到底還需要多長時間。
一般情況下,公司的威脅研究團隊每天可以分析20種惡意代碼。因此,讓3名頂級分析師無限期地分析一種病毒,無論如何都是劃不來的。之前,這種情況只在2008年Conficker爆發的時候出現過一次。但Conficker是一種感染了全球范圍內數百萬臺計算機、不斷變形的蠕蟲病毒,而且在發現初期帶來了“當初為什么會有人制造并釋放它”等一系列待解難題。與之相比,震網病毒感染的計算機數量少了幾個數量級,攻擊目標(西門子PLC)數量更少。但是,神秘難測的代碼召喚著人們進一步探索的好奇心,經理們最終還是同意了錢哥的要求。“不過,你要時刻向我們報告研究進展。”他們沒想到,在未來幾個月里,關于震網病毒的討論主導了幾乎每周的例會。
錢哥團隊抓住了這次深挖震網代碼的機會,像打了雞血一樣全身心投入其中。隨著研究的深入,他們逐漸意識到,這里面完全是一片陌生的領域,沒有人能幫上他們的忙。
賽門鐵克是個國際化的大企業,但錢哥和莫楚的工作環境是一個很小的辦公室,與外界幾乎隔絕。這里是卡爾弗城的賽門鐵克威脅情報實驗室,類似于生化防御實驗室,研究員們可以在一個實驗網絡中運行惡意代碼。這個實驗網絡與公司辦公網絡物理隔離,是一個用來在可控環境下觀測病毒行為的沙盒系統。要進入這個位于一樓的實驗室,員工要先后經過多層安全門,每進一層門,就多一些限制。最后一扇門只允許很少的幾個人進入,而且內部的實驗網絡是與外部計算機物理隔絕的。在這里,禁止使用任何光盤、U盤等移動介質,防止有人無意中通過移動介質把遍布實驗室的病毒帶到外面,造成病毒樣本泄漏。
“病毒智能實驗室”這個名字給人一種無菌工間的印象,似乎里面都是穿著白大褂、彎著腰觀察顯微鏡和切片的科學家。但賽門鐵克的實驗不屬于任何一種傳統的“實驗室”。里面的工位上什么儀器都沒有,只有幾名一天到晚盯著顯示器的員工,系統化地做著看起來很乏味的事情。墻上沒有一張圖;沒有供員工發泄多余精力用的玩具槍或其他辦公室游戲;沒有擺放營造家庭氛圍的植物,連假的都沒有。唯一一點福利性的綠色景觀,是可以通過一面墻的窗戶看到長滿綠色植被和樹木的小山,完全就是那種仿生態科技園區風景,專門給關在屋子里上班的人看的。
莫楚的辦公隔間里沒有任何個人物品,只是旁邊掛著一副北美大峽谷的全景特寫照片,沐浴著粉色和淡紫色的落日余暉。這是去年莫楚和父親一起旅行時候照的。辦公桌上有兩臺接入實驗網絡的計算機,還有一臺專門用來閱讀郵件和上互聯網的計算機。但這臺計算機只有顯示器和鍵盤、鼠標3種外設,通過彎彎曲曲的數據線跟藏在實驗室外面某個機柜里的主機和硬盤相連,確保這臺計算機無法連接實驗網絡。
錢哥的辦公隔間和莫楚靠著同一面墻,但稍顯個性化一些。隔間門上貼著一些藝術明信片,掛著幾面海盜旗,還有一個釉面裝飾的門簽,上面寫著他名字的雙關語:錢?魯那提克(法語直譯:Chien-狗,Lunatique-喜怒無常的)。把這句法語直譯出來的意思是“小心狗”(Beware of Dog),但錢哥更喜歡文藝的譯法:“狂犬”(Mad Dog)。
錢哥今年39歲,但看上去就像29歲。他個子很高,身形瘦長,戴金絲眼鏡,笑起來臉頰上有一對迷人的深酒窩,討論問題的時候,一激動就會語速加快。錢哥在安全業界一直做得很棒,但在這個喜歡通過炫技而出名的行業里,他反而非常謙虛低調,偏愛埋頭研究而不是拋頭露面。
三個人當中,錢哥在公司的時間最長。這是他大學畢業后的第一份工作,但完全是碰運氣進來的。90年代初,他在加州大學洛杉磯分校,他選的專業是遺傳學、分子生物學和電氣工程,像莫楚一樣打算投身科研事業。但在1996年畢業后,他跟著幾個朋友一起來到了賽門鐵克,打算掙點錢哥供自己讀研究生。沒想到,一呆就是這么多年。
那時,網絡安全還是一個新興領域,不需要接受專業培訓就可以找到一份工作。所以,錢哥剛上班的時候根本不知道什么是病毒,但他很勤奮,自學了大多數病毒采用的X86匯編語言,就甩開膀子干起來了。最好的病毒分析師,未必出自訓練有素的代碼工程師。工程師是建造代碼的,而分析師是拆解代碼的。雖然信息安全是一個以培訓課程和認證為基礎的職業領域,但毫無經驗的錢哥還是憑借他永不滿足的好奇心、猜解謎題和“打破砂鍋問到底”的性格,在實習生中脫穎而出。你可以教會一個人編寫病毒代碼,但無法通過教學使一個人擁有“想知道事物工作原理”的熱情。最頂級的研究者具有強迫癥般的傾向,不挖出代碼中的秘密,他們絕不善罷甘休。(待續)
錢哥剛入職的時候,病毒研究員的工作有點像電器公司的維修工,有很多停工等待的空閑時間。病毒很稀少,一般以軟盤為載體、通過人為攜帶病毒文件的方式緩慢傳播。認為自己遭到病毒感染的客戶,會把存有可疑文件的軟盤寄給賽門鐵克公司。然后,軟盤可能會在某個文件盒里面呆上一個星期,然后錢哥或另一位同事接到通知,再過去把它拿過來。有趣的是,大多數時候,軟盤上的文件都不是病毒。當偶爾發現病毒時,他們會立即把病毒的特征碼加到檢測工具中,然后把“更新包”放在另一張軟盤中寄回給客戶,并提供升級殺毒軟件的說明。
這種慢節奏持續了很長時間。隨著Win98和Office軟件的出現、互聯網的擴張和電子郵件的泛濫,情況發生了變化。病毒進化了。快速傳播的病毒和網絡蠕蟲可以在幾分鐘內感染數百萬臺計算機。1999年的梅麗莎(Melissa)病毒就是其中的翹楚。新澤西州一位名叫大衛?史密斯(David Smith)的31歲程序員制作了它,把它嵌入到Word文檔中,然后把它放到了alt.sex.usenet新聞組上。他非常了解這里的目標受眾,他宣稱,文檔中有登錄色情網站的用戶名和密碼,以此慫恿他們打開染毒文檔。一旦文檔被打開,梅麗莎病毒就會利用Word宏功能中的漏洞,把自己發送到本機Outlook(Office套件中的郵件服務程序)賬戶中前50個聯系人的郵箱中。作為世界上首個通過電郵實現大規模傳播的病毒,它在3天之內感染了超過10萬臺計算機,創造了當時的記錄。當然,以今天的標準,肯定是不值一提啦。除了通過Outlook傳播之外,病毒還會在遭感染計算機的文件中插入一段與Scrabble拼字游戲有關的奇怪文字:“22分。加上分數的3倍,再用我的全部字母加上50。游戲結束,我走啦!”(注:來自動畫片《辛普森一家》第1季第2集,Bart在一局Scrabble游戲中說的話。)梅麗莎病毒沒有造成什么大的破壞,但在它的示范效應下,具有快速傳播能力的病毒和蠕蟲成為接下來幾年里的主流威脅。
隨著威脅不斷增長,賽門鐵克公司意識到,必須在病毒大規模爆發之前就將其快速殺滅。而當公司剛進入殺毒領域時,確定的響應時間“良好”標準是:從發現病毒起,在一周之內發布特征碼。現在,公司打算將這個標準提高到一天之內。要實現這個目標,公司需要在不同時區安排值班分析師,以便能第一時間發現病毒,并在美國客戶起床并點擊帶毒的郵件附件之前,把特征碼分發給他們。
此時,錢哥已經完成了自己在賽門鐵克的“兩年計劃”。攢夠了讀研究生的錢哥,打算先去科羅拉多滑滑雪,再回學校攻讀科學學位。不過公司給了他一個充滿誘惑的合約——去荷蘭任職。公司在阿姆斯特丹附近有一個技術支持和銷售辦公室,急需成立一個病毒分析團隊。這么好的機會放在眼前,錢哥沒理由不答應。他剛去荷蘭沒幾天,就趕上了2000年5月的“求愛信”病毒(Love Letter worm)大爆發。病毒來自菲律賓,開始像是大學生搞的惡作劇,但之后一發不可收拾,感染了全球數百萬臺計算機。這個事件,很好的檢驗了賽門鐵克歐洲團隊的應急響應能力,雖然這個團隊只有一個人。錢哥以創紀錄的不到20分鐘的速度,完成了代碼分析,并發布了用于檢測病毒的特征碼。然并卵。因為病毒占用了幾乎全部網絡帶寬,客戶根本連不上賽門鐵克服務器,更別說下載病毒庫升級包了。當危機過后,錢哥在阿姆斯特丹招募了4名員工,充實了團隊。增加的人手,在一年后迎戰“紅色代碼”的工作中派上了用場。
后來,為組建另一個團隊,錢哥到東京呆了一小段時間。2004年,賽門鐵克將歐洲公司從阿姆斯特丹搬到了都柏林,錢哥也跟著去了愛爾蘭。很快,錢哥又把包括莫楚在內的十幾名新人招至麾下。 2008年,他和曾在賽門鐵克公司工作過的一名法國妹紙——他的新任妻子一起回到了美國。再后來,他加入了莫楚負責的加州團隊。
現在,卡爾弗城的錢哥、莫楚和巴黎的法里耶要打一場解構震網病毒的硬仗。
當他們嘗試解密震網全部代碼時,出現了第一個真正的障礙。如莫楚之前發現的,震網的主體是一個超大的DLL文件。里面包含數十個小的DLL文件和其他組件,這些文件層層加密、嵌套在一起。必須把這么多層加密機制全部破解,才能開始分析代碼。幸運的是,密鑰就保存在代碼當中。每當震網進入一臺計算機時,它都會根據情況需要,用這些密鑰解密里面的DLL文件和其他組件,并將它們提取出來。這應該是病毒設計者預想的工作模式。但是,在實驗計算機上,用于解密“載荷”的最后那些密鑰并沒有被激活。
莫楚仔細偵查代碼中的蛛絲馬跡,終于,在看到與西門子PLC有關的注釋文字時,他悟出了其中原因。震網只會入侵安裝了西門子公司Step 7或WinCC軟件的計算機,而且,這些軟件所對應的PLC還必須是S7-315和S7-417這兩個型號。只有軟硬件環境同時滿足上述條件,才能激活震網解密并釋放載荷代碼的密鑰。
問題是,錢哥和莫楚到哪兒去找西門子的產品呢?所以,他們只好用調試器(debugger)來一遍又一遍的擺弄代碼,以求找到密鑰、并手工解鎖載荷。
調試工具(debugging program)是逆向工程師的大殺器,可以用它們一步一步的觀察代碼的執行過程,就像定格動畫攝像機一樣。這樣,可以逐步將每一個函數分離出來,記錄這些函數的功能和任務。用這種方法,他們摘出了所有包含解密代碼指令的代碼塊,然后順藤摸瓜,找到了密鑰。但這只完成了任務的一半。找到密鑰之后,還要猜解出每個密鑰對應的加密算法。整個挖掘過程持續了好幾天。當他們完成了對病毒所有部分的解密后,他們終于看透了震網在開始感染計算機時所執行的每一個動作。
震網做的第一件事,就是判斷計算機到底是32位還是64位,如果是64位,放棄。它還會檢查計算機是否曾被震網病毒感染過,如果發現上面已有舊的震網版本,就會將其清除并用新版本替換掉。如果發現未被感染的計算機,它就會“演出一段精心彩排過的舞蹈”:迅速通過一系列步驟進駐這臺計算機,并確定下一步行動計劃。
在這個過程中,會有一匹木馬(rootkit)搶先“登陸”并實現U盤上病毒文件對系統的“隱身”。具體手段是,先嵌入系統(hooking the system),使反病毒引擎無法看到文件名,從而躲避掃描。如果掃描器要掃描U盤上的內容,木馬可以將掃描器的命令攔截下來并進行修改,最終給系統返回一個沒有震網病毒文件的結果清單。但這一招無法騙過所有的反病毒產品。震網病毒的設計者事先考慮到了這個問題,并提前做好了應對預案。如果震網發現計算機上安裝了這種厲害的反病毒軟件,就會立即停止感染,什么也不做。(待續)
注釋:
Scrabble是西方流行的英語文字圖版游戲,在一塊15×15方格的圖版上,2至4名參加者拼出詞匯而得分。詞匯以填字游戲的方式橫豎列出,并必須收錄在普通詞典里。不同字母有不同分數,是根據在標準書寫英語中出現頻率訂定,如經常出現的E和O只值1分,但不常用的Q和Z則值10分。圖版上有不同顏色的格子,參加者可從中獲得額外分數。一個游戲版,一百個游戲字卡,四個字卡尺和字卡袋一個。
Twenty-two points, plus triple-word-score, plus fifty points for using all my letters. Game’s over. I’m outta here.
這段話來自動畫片《辛普森一家》第一季第二集。
但如果震網過了這一關,就會激活同樣偽裝成驅動程序文件“第二匹馬”。它有兩個任務:第一個是感染插在計算機上的所有USB存儲設備,但從登陸起算只持續21天;第二個、最重要的是,將震網病毒主體文件——那個巨大的DLL文件及其組件進行解密,并用之前莫楚已經驗證過的那種復雜手段,先把大DLL解壓成若干小DLL,再把它們載入內存。這時,病毒的代碼只是在內存中駐留,每次計算機重啟后,代碼就會消失。所以,每次重啟后,拆分與加載的工作就會重做一次。
一旦震網主體部分被載入內存,震網就會開始搜索新的目標,并把戰果匯報給指揮控制服務器。如果計算機上沒有安裝西門子的Step 7和WinCC軟件,那么震網就會在完成以上任務后,主動進入休眠狀態。
好,現在賽門鐵克的男神們已經清楚了震網傳播和加載代碼的方法,但卻對它的最終目的一無所知。問題的答案,仍然隱藏在載荷部分浩若繁星的代碼中。
這一次,跟莫楚在完成震網導彈部分代碼解構時一樣,他禁不住再次對攻擊者在代碼中巧奪天工的設計嘆服不已。他能想到的,攻擊者全都做到了:周全考慮可能遇到各種問題、匪夷所思卻天衣無縫的解決方案、以及在代碼上線之前對無數種場景的360度無死角測試。莫楚覺得,令人印象深刻的,不僅是震網的代碼本身,還有對整個攻擊流程的精妙策劃。
除了加載文件和騙過殺毒軟件的復雜手段之外,震網還使用了一個擴展檢查清單,來判斷計算機上的環境是否適合釋放病毒載荷。它會仔細跟蹤自身在計算機上占用的處理器資源情況,只有在確定震網所占用資源不會拖慢計算機速度時才會將其釋放,以免被發現。另外,所有的應用程序都會生成臨時文件,但由于這些臨時文件早晚會被其他程序生成的臨時文件覆蓋,多數應用程序都不會主動將其刪除。但震網的設計者不希望相關文件因長期在系統中保存而暴露行蹤。
雖然攻擊方在代碼中額外增加了一些保護措施,但還是存在一些不可思議的設計漏洞。并非只有莫楚一個人這樣認為。當賽門鐵克方面在幾周之后發布震網代碼的研究成果時,業內人士們紛紛開始在網上吐槽震網的眾多缺點。他們還說,震網的設計者根本不像最初的報道中描述的那般高大上,他們連“頂級”都算不上。還有人指出,震網在技術上雖有諸多亮點,但存在前后不一致的情況,而且設計者所犯下了很多低級錯誤,才讓研究者能比較輕易地破解其真實意圖。
也就是說,如果震網的設計者能夠針對潛在破解者所使用的通用工具,采用更具迷惑性的反制手段,那么將對破解者帶來更大的困難。這些手段包括,用更復雜的加密技術阻止目標計算機之外的任何人解鎖載荷,不輕易讓人了解震網的目標是安裝西門子Step 7軟件和PLC的計算機等。震網在與指揮控制服務器的通信中使用的是較弱的加密算法和標準通信協議,如果它在這方面做些文章,研究者也不會如此輕易建立“槽洞”并追蹤到它的流量信息了。
密碼專家內特?勞森(Nate Lawson)在博客中用充滿鄙夷的口吻寫道,“震網的設計者應該為隱藏載荷所用的業余手段感到汗顏”,還說他們用了一些其他黑客早都拋棄的過時手法。“我真心希望這不是美國人寫的”,他說,“因為我希望高端網絡武器開發者至少應該知道保加利亞少年(代指業余選手)在90年代初期就曾經做過的事情。”藝術水準的策略和漏洞百出的技術結合在一起,讓震網看上去就像一個稀松平常的“科學怪人之拼湊品”,而不像是頂級情報機構機密的尖端研究項目。
但是,對于震網中的這些矛盾,莫楚有著自己的看法。他認為,設計者故意在遭感染計算機與服務器的通信中使用了弱加密和標準協議,目的是讓這些通信看起來和正常通信沒什么兩樣,以免引起注意。而且,由于服務器涉及的通信流量很小,不作特別加密處理也是可以理解的。在保護載荷安全性方面,設計者可能沒有辦法使用更復雜的技術。比如,設計者打算用目標計算機的精確配置信息來生成密鑰,以防其他計算機實施解密。但目標計算機在配置上可能無法做到100%相同,從而難以使用同一密鑰加密載荷。這會造成一定的不可控。而且,設計者考慮到目標計算機的配置可能發生變化,這樣一來密鑰就會失效,載荷就無法被解密、激活了。
此外,震網中存在問題的原因也可能是“趕工期”。設計者可能面臨馬上將病毒投入使用的壓力,所以慌慌張張的把病毒趕制出來,其中難免會有一些粗心之舉。
對“拼湊”的另一種解釋是,震網的代碼很可能是由水平不同的多個團隊共同編寫的。震網代碼的模塊化特征意味著,代碼的各個部分可能是由多個團隊同時或在不同時段內合作完成的。莫楚猜測,至少有3個團隊參與了震網代碼的編寫——一個是由頂尖高手組成的、編寫針對西門子軟件和PLC的載荷部分代碼的核心團隊,一個是設計病毒傳播、代碼加載與載荷解鎖機制的次頂級團隊,最后一個負責運營指揮控制服務器并設計通信加密和協議選取機制的糙哥團隊。照此設想,各團隊的職責分工明確而獨立,彼此之間沒有影響。
縱然各團隊在技術水平和經驗上參差不齊,但至少在一件事上是步調一致的。他們沒有主動在代碼中留下可以追蹤自己身份的任何線索。
在對于黑客攻擊的取證調查工作中,始終存在歸因的問題。計算機攻擊可以從世界上任何角落發起,可以通過無數臺被黑計算機或代理服務器掩蓋其發起攻擊的初始路徑。除非攻擊者在掩蓋蹤跡方面非常大意,調查者很難單憑數字證據對鎖定攻擊者的真實位置和身份。
不過,攻擊者偶爾會有意無意的在代碼中留下一些線索。這些線索會告訴人們,他們是誰、他們來自什么地方,等等。在看上去毫無關聯的病毒和木馬中,可能存在同樣的離奇痕跡。這些痕跡,可以幫助取證調查者把這些病毒關聯起來,甚至找出它們的共同作者,就像根據在連環案件中的犯罪手法來找出罪犯一樣。
和其他病毒相比,震網幾乎沒有這方面的信息。但錢哥和莫楚還是挖到兩處。
一天,錢哥正在詳細篩查震網感染計算機部分代碼的注釋,忽然發現了一些有趣的東西:一個阻止震網在某些特定計算機安裝的“感染標記”。每當震網“登陸”一臺新的計算機,都會在解密、解壓病毒文件之前檢查Windows系統的注冊表。如果其中有一個含有“0x19790509”字母數字組合的“神秘字符串”,震網就會立即放棄感染動作,退出這臺計算機。(待續)
錢哥之前見過這種“免疫值”(inoculation values)技術。黑客會在自己計算機的注冊表中植入這個字串,這樣一來,在把病毒釋放到實驗環境或真實網絡中之后,黑客自己的計算機和黑客要保護的其他計算機將不會受到病毒的傷害。攻擊者可以任意設置“免疫值”。一般情況下,這個值會是一個隨機數字串,但震網中的值,明顯是一個符合Unix系統通用日期格式的日期數值。與此呼應的是,震網的代碼中還出現過其他數字串,這些數字串和這個“免疫值”采用的是同樣的格式,每一個都明確指向某個日期。
錢哥對這個日期進行了快速的搜索,如他所料,返回結果中果然有跟以色列和伊朗有關的信息。1979年5月9日,是一位名叫哈比比?艾爾甘尼安(Habib Elghanian)的伊朗猶太裔巨賈在德黑蘭被槍決的日子。那時,伊朗伊斯蘭革命剛剛結束,新政權已經上臺。而艾爾甘尼安是一個富有的慈善家,也是備受尊敬的伊朗猶太社群領袖。他以以色列間諜的罪名被捕并處以極刑。他的死亡,是伊朗猶太社群和伊朗政府之間關系的一個轉折點。在巴拉維國王掌權的將近40年間,伊朗猶太人和本地穆斯林之間的關系非常友好,如同當時伊以兩國之間的關系一樣。但與國王被推翻僅3個月之隔的“艾爾甘尼安事件”,成為伊朗猶太人的“夢碎時刻”。這件事讓他們看清,新政府對猶太人已經變臉。這個事件促使大批猶太人離開伊朗回到以色列,并燃起了兩國間持續至今的敵意。
震網代碼中這個日期的意思,是不是以色列人想據此提醒伊朗“勿忘歷史”呢?或者,是不是其他國家的設計者意圖通過這個信息轉移視線呢?又或者,這些只不過是錢哥根據巧合的數字進行的毫無根據的想象呢?錢哥所能做的,只有繼續猜測。
稍后,團隊發現了另一個可能與以色列有關的線索。這一次,他們在一個驅動程序文件中,發現文件路徑中包含“香桃木”(myrtus)和“番石榴”(guava)兩個詞。通過文件路徑,可以看出文件在電腦中的存放位置,包括多級文件夾和子文件夾的名稱。震網中,有一個保存在某個計算機C盤上、名為“我的簡歷”的文件,其完整路徑為C:\documents\myresume.doc。當程序在編譯程序(功能是將程序設計語言源代碼翻譯為機器能讀取的二進制代碼)中運行源代碼時,文件路徑會顯示出程序員存放中間代碼的位置。大多數病毒設計者會在編譯程序中進行配置,不讓文件路徑顯示出來。但不知是有意還是無意,震網的設計者并沒有隱藏這個信息。驅動程序文件中的具體路徑是b:\myrtus\src\objfre_w2k_x86\i386\guava.pdb,這表明該文件是被程序員稱為“番石榴”的主程序的一部分,存放在一個名為“香桃木”的文件夾中。香桃木是植物的一個屬,其中包括多個名為“番石榴”的種。錢哥在想,難道程序員是個植物學愛好者?還是借物詠意、另有所指?
錢哥進一步搜索了香桃木的含義,發現它跟猶太歷史上另一個著名事件有關——公元4世紀時,以斯帖王后(Queen Esther)幫助身在古波斯的猶太人逃脫了一場大屠殺。根據這個故事,以斯帖是一個猶太女子,嫁給了古波斯國王亞哈隨魯(Ahasherus)為妻,但國王并不知道她是猶太人。當得知國王的首相哈曼(Haman)正在籌劃一個屠殺波斯王國內所有猶太人的陰謀時,她向國王公開了自己猶太人的身份,懇求國王保護自己和族人。國王弄清狀況后,處決了哈曼,并獲準本國猶太人向哈曼身后這股屠猶勢力宣戰。最終,猶太人獲得了勝利,75000名反猶派被殺死。今天,全世界猶太人每年一度的普林(Purim)節,就是為慶祝古波斯猶太人死里逃生而設立的。
[](http://www.aqniu.com/wp-content/uploads/2015/09/640.webp-1610.jpg)
[](http://www.aqniu.com/wp-content/uploads/2015/09/640.webp-173.jpg)
[](http://www.aqniu.com/wp-content/uploads/2015/09/640.webp-185.jpg)
[](http://www.aqniu.com/wp-content/uploads/2015/09/640.webp-191.jpg)
表面上看,這個故事跟震網病毒沒什么瓜葛。但錢哥從以斯帖王后的希伯來文名字中找到了一絲線索。在改名并成為王后之前(隱藏族裔背景),以斯帖的名字是哈達莎(Hadassah)。而哈達莎在希伯來語中的意思,正是香桃木。
從近期形勢來看,不難發現今天的伊朗與古波斯之間的對應關系。2005年,有報道稱,伊朗總統馬哈茂德?艾哈邁迪-內賈德(Mahmoud Ahmadinejad)呼吁,要將以色列“從地圖上抹去”。雖然后續報道稱這句話是“翻譯錯誤”,但內賈德希望滅掉現代以色列國的態度可謂昭然若揭。這簡直堪稱17個世紀之前哈曼愿景的重現。在2010年2月13日,就在震網設計者準備向伊朗目標計算機釋放新版本病毒之際,以色列前任大拉比、在政界享有巨大影響力的猶太精神領袖尤瑟夫(Rav Ovadia Yosef)在普林節前的一次布道中表示,今天的伊朗和曾經的古波斯極為相似。他說,內賈德就是“當代的哈曼”。
“今天,波斯出現了一位新的哈曼,他用核武器威脅著我們的生存。”尤瑟夫說。“但是,正像哈曼及其黨羽所經歷的那樣,內賈德和它的追隨者們將馬失前蹄,并為自己的利箭所傷。”
但是,這些都無法證實,震網驅動程序文件中“香桃木”一詞一定就是對《以斯帖記》的暗示。后來又有人指出,如果換一種方式來讀,可以將香桃木這個單詞(mytrus)理解成“我的遠程終端機”(my RTUs)。RTU,與PLC類似,也是一種用于操作、控制裝備和生產流程的工業控制組件。考慮到震網的目標是西門子公司的PLC,這樣理解也還合乎邏輯。但誰敢說一定如此呢?
賽門鐵克公司的研究團隊很謹慎,沒有根據這些信息做出結論。錢哥只在一篇博客中輕描淡寫的說了這么一句:“咱們大家一起猜吧”。(待續)
注釋2:
https://en.wikipedia.org/wiki/Hooking
hook v. 掛鉤,鉤上;n. 掛鉤,鉤子
在計算機編程中,hooking包括通過攔截程序各部分之間調用/傳遞信息/事件等方式,改變或增加操作系統/應用程序/其他軟件組件行為的一系列技術。攔截程序調用/事件/信息的代碼,稱為hook。
Hooking被用于多種目的,包括調試和擴展程序的功能。比如,hook可以在鍵盤/鼠標的事件信息到達某一程序前將其攔截,或者攔截系統調用,以監視行為、修改應用程序或其他組件的功能。它還廣泛用于標記程序中,如通過hooking3D游戲的輸入和輸出程序,實現對其幀頻的測度。
Hooking也常見于[惡意代碼](http://www.aqniu.com/infosec-wiki/827.html "惡意代碼是一種程序,它通過把代碼在不被察覺的情況下鑲嵌到另一段程序中,從而達到破壞被感染電腦數據、運行具有入侵性或破壞性的程序、破壞被感染電腦數據的安全性和完整性的目的。")中。比如保持權限的后門中,部分代碼會使用hooking技術,通過截取并偽造某個顯示其存在的API的輸出,使自己變得不可見。穿墻(Wallhack)是另一種源于hooking技術的黑客行為。它通過攔截計算機游戲中的函數調用,并修改游戲者看到的畫面,來賦予他們相較于其他玩家的不公平優勢。