原來古波斯的童話故事阿里巴巴真正講述的是……網路安全威脅?

我們一直不厭其煩地說,掀開童話故事薄薄面紗之後,看到的可能是有關訊息安全的報告。不僅歐洲的作家試圖警示其後代來自網路的威脅,東方作者也有同樣的先見之明。比如經典著作《一千零一夜》中的主角舍赫拉查德就每日更新其訊息安全視頻”播客”,而他這麼做的背後確實隱藏著不可告人的動機。
不過今天要說的是直到十八世紀才加進舍赫拉查德”博客”的一些內容:尤其是名為《阿里巴巴和四十大盜》的那場”事故”。即使你不知道故事具體內容,也應該耳熟能詳那句魔咒:”芝麻開門!”
其實整個故事建立在用密碼來防止非授權訪問這一核心思想之上,當然這只是最顯而易見的一點,童話中還有大量其他的訊息安全小建議。
不安全頻道上的密碼傳輸
讓我們來快速回顧故事內容:一夥強盜將掠奪的寶物藏在一個洞穴中,只有使用密碼”芝麻開門”才能進入這個洞穴,而這個保護機制則充滿了安全隱患。
在故事最開頭,強盜的頭目站在入口處大喊道:”芝麻開門!”很明顯這裡有幾個問題,首先密碼過於簡單,其次這個登錄方式沒有雙因素認證,甚至連用戶名都沒有!
更糟糕的是,這個密碼是通過公開的頻道傳輸的,阿里巴巴此時正在附近蒐集木柴,並無意間聽到了強盜說的話。實際上當他後來嘗試使用密碼時,僅僅是出於好奇而沒有任何惡意,但是待洞穴打開之後,他進去拿走了一部分寶物。
間諜軟體模塊
阿里巴巴回到家之後,讓他的妻子清點金幣的數量。可是金幣數量太多以至於她徒手完全數不過來,於是她從阿里巴巴弟弟的妻子那兒借來了計量工具。
有些翻譯將這種工具譯為廚房秤,也有的譯為一種鍋,這僅是一些無足輕重的細節。重要的是,好奇心重的弟媳在工具底部塗抹了蜂蜜(某些版本翻譯為板油),想弄明白嫂子為何突然需要這樣的工具。當工具還回來時,萬萬沒有想到底部有一枚金幣,很明顯嫂子在用它數金幣!
即便你不是十分精通網路安全,也可以看出作者其實是在描述一個融入正規合法產品的間諜軟體模塊。弟媳提供的”設備”基於”計量即服務”的模型,並監控著用戶的行為。故事寓意十分清楚:請使用來自可信任源的工具,並且記得檢查它們是否有安全漏洞或者帶有惡意軟體。
接下來發生的事情在我看來有些牽強,阿里巴巴和弟弟卡西姆說明了一切並告訴了他洞穴密碼。卡西姆進入了洞穴,卻忘記了密碼並困在了那裡(沒有密碼無法離開洞穴),最後被盜賊們發現並被砍下了腦袋。這裡想表達的意思大概是”不要稀里糊塗忘記密碼”。
我懷疑當時這部分故事中有一段講述薩珊王朝的技術人員使用的古老密碼管理工具,但是原版內容在故事的口口相傳中逐漸被遺失了。我們可以插入自己的版本來代替它:卡巴斯基密碼管理工具可以安全儲存密碼和其他機密訊息。
始終不變的密碼
讓我們回到故事中,由於卡西姆遲遲沒有回家,親人們便開始尋找他,阿里巴巴在洞穴中找到了死去的弟弟,將他帶回家鄉安葬。
這段劇情是個讀者舉例說明了一個十分糟糕的密碼策略:強盜們在發生上述事故之後並沒有修改密碼。具體原因我們不得而知,可能只是因為疏忽大意,也有可能是因為認證系統架構的初始設計考慮不周。
還有一種可能,他們也許並沒有管理員權限,如果他們劫持了洞穴並且只有一個普通用戶密碼,洞穴真正的主人可能已經帶著管理員密碼駕鶴西去。
通過承包商發動的攻擊
阿里巴巴不想讓人發現自己的秘密,因此他無法直接下葬受到嚴重傷害的屍體。他和弟媳以及侍女一起絞盡腦汁掩蓋事實,侍女多次往返藥店購買藥物,想製造出卡西姆病情越來越嚴重的假象,並最後宣布他自然死亡。
然後她還找來一個鞋匠將卡西姆的身體縫補在一起,在來的路上她蒙住了鞋匠的眼睛並帶他繞了一段路來確保鞋匠不知道他們的具體位置。
盜賊們正試圖找出消息洩露的源頭,最終他們找到了鞋匠。他們承諾給他金幣,然後也蒙住了這位老人的眼睛並迫使他隨著記憶找到了卡西姆的屋子。
這個例子說明即便你通過加密頻道和承包商合作,敏感訊息還是有可能落入攻擊者手中,也許侍女應該和鞋匠簽署一份保密協議。
蜜網
盜賊團伙中的一員先在卡西姆家的大門上做了記號,之後和同夥們一同回來殺害居住於此的阿里巴巴等人。然而機智的侍女發現了門上的記號,隨後將整條街上的所有大門都做了相同的記號。
實際上侍女將整條街變成了蜜網,它的原理如下:入侵者誤將蜜罐當成了目標並發動攻擊,於是他們便暴露了自己的目的和攻擊手段。在他們反應過來之前,政府網路應急部門的專家已經迅速出動並化解危機。
唯一的問題是:利用無辜用戶的家作為蜜罐是否合乎道德?好在最後沒有造成實際傷害,強盜們及時發現了這個圈套並取消了攻擊行動。
容器化
盜賊的首領打算親自指揮攻擊,他找來40個巨大的油罐(”罐子”的英語單詞”jar”正巧對應JAR這種Java歸檔文件格式),其中兩個裝滿了油,其餘都是空的。裝油的罐子用來應對簡單的安全掃描,而盜賊們則躲在空罐子裡。
盜賊首領帶著這批罐子出現在了阿里巴巴房子的門口,他打算冒充賣油的銷售商來混入屋子並趁著所有人入睡時釋放出罐子裡的盜賊團伙。
大體上說,這講述的是一種將惡意軟體藏於容器中的攻擊方式。由於屋子入口的掃描器並不會深入掃描容器內部,惡意軟體偷偷溜入了安全邊際,之後首領可以在屋內啟動它們。
然而侍女再一次拯救了大家,她無意中聽到了盜賊在罐子裡發出的聲音,然後檢查了所有的容器並確定了藏有盜賊的罐子,她往這些油罐中倒入滾燙的油,徹底消除了威脅。換句話說,即便在那個時代,她已經有了可以掃描容器內部的工具,而我們的卡巴斯基安全解決方案擁有同樣的功能,不同的是我們適用於1500年後的今天。
最終邪不壓正,盜賊的首領被打敗,阿里巴巴的兒子(故事結尾突然冒出來的角色)娶了這位聰明的侍女,而阿里巴巴則成為了唯一知曉寶藏洞穴密碼的人。
故事的寓意
- 在設計認證系統時,請時刻考慮安全因素,如果在非加密頻道上傳輸固定的密碼並且缺少多重因素認證,那簡直是自討苦吃。
- 請小心謹慎地選擇供應商和承包商,盡可能檢查它們的工具和服務是否存在安全漏洞或者被植入惡意軟體,切記所有人都要簽署保密協議。
- 使用可以在容器載入時對其內部進行掃描的安全解決方案,防止惡意軟體從被黑客控制的代碼庫”潛入”到你的項目中。
資料來源: https://www.kaspersky.com/blog/fairy-tales-ali-baba/36284/