xz後門盡管沒有引起嚴重的問題,不過這次安全危機也為Linux乃至整個開源社區敲響警鐘,那就是想要發起供應鏈攻擊其實也不是特別困難。在xz項目中原作者因為各種原因身心俱疲,當有個熱心的貢獻者前來幫忙時,原作者自然非常高興並逐漸信任他,進而逐漸將整個項目交給他。
現在已經有不少開源社區成員在分析 xz 後門中的黑客 Jia Tan 的真實身份,盡管想要真正追查到他的真實身份很難,不過現在已經有推測表明 Jia Tan 可能是一個生活在東歐的黑客,並且他還故意冒充東八區的用戶 (該時區包括中國全部地區、俄羅斯 / 馬來西亞 / 新加坡 / 澳大利亞部分或全部區域)
開源社區成員 RHEA 對 Jia Tan 的 GitHub 提交記錄進行分析,主要觀察他是在哪些時間進行活動的,需要註意的是提交時間是可以修改的,前提是你每次操作時都修改時間,這是一個比較難堅持的事情,畢竟比較麻煩。
冒充東八區用戶:
一般來說黑客的工作時間集中在下午或深夜比較合理,畢竟很少有人願意早晨五點就起來幹活 (盡管早睡早起也確實是個好習慣)。
Jia Tan 這名字聽起來就像是東亞人,而他的 Github 大部分提交都帶有 UTC+8 時間戳,也就是東八區用戶,東八區用戶配合亞洲名字,那麼想要冒充誰其實已經很明顯。
然而黑客顯然不會使用自己的真實名字,所以這招禍水東引本身就存在漏洞,所以每次提交都修改時區為東八區似乎有助於提高可信度。
有幾次忘記修改時區:
正如前面提到的每次修改系統時區其實是個很麻煩的事情,畢竟一年提交那麼多次代碼每次修改會讓人無比煩躁。
因此分析就發現在 UTC+2 和 UTC+3 時區分別有過 3 次和 6 次調提交,這與 UTC+8 的 440 次提交來說顯得很少,但卻是個關鍵證據。
畢竟如果真是生活在東八區,那為什麼有幾次要修改成 UTC+2 或者 UTC+3 呢?要麼他是去東歐旅遊,順手在那裡寫的代碼並提交。
那旅遊這事河裡嘛?也不河裡,因為有兩次提交時區發生變更,但中途有 11 個小時的時間差,也就是說他在 UTC+3 提交代碼後立即飛往 UTC+8,但這兩個時區之間的飛機通常要 10~12 個小時的飛行時長,這還是直達的情況下,如果考慮中轉時間會更長,因此這看起來並不合理。
還有一次提交時 UTC+3 和 UTC+8 隻差幾分鐘,馬斯克的星艦也沒這麼快,所以必然有一個時區是造假的。
然而誰會在逢年過節還繼續幹活呢?
在分析中有個很有趣的現象引起 RHEA 的關註,那就是他對比中國 2023 年的節假日,發現 Jia Tan 竟然在中國農歷新年以及中秋節等假期提交代碼。
倒不是說不能在法定節假日期間繼續幹活並提交代碼,但 RHEA 發現這名黑客在東歐假期 (UTC+2 和 UTC+3 都包括部分東歐國傢) 的時候卻沒有提交代碼。
東歐假期與中國的法定節假日並不重疊,在中國節假日期間提交代碼而在東歐節假日卻沒有提交代碼,因此從代碼提交時間來看,Jia Tan 的工作安排和假期更適合東歐人,而不是東亞或東南亞地區的人。
另一方面,Jia Tan 的主要工作時間是周二、周三、周四和周五,如果他是個業餘愛好者那有自己的工作,不可能工作日還如此活躍的提交代碼。
除非他是受雇於人,也就是這就是他的主要工作,所以周六、周日都是休息的,至於周一,想必全世界打工人都一樣,剛剛過周末周一腦袋不夠清醒不是很想幹活吧。
基於我們可以初步認為 Jia Tan 很有可能是生活在東歐的人,而發起攻擊就是他的主要工作,使用東亞名稱和修改 UTC+8 就是想要規避追蹤,不過打工人偶爾偷懶也是正常的,所以總有幾次提交泄露他所在的真實時區。