這不過是又一次無人在意的警示

XcodeGhost 發現已經一週,大範圍傳開也有一天。今天早晨我跟一位 iPhone 用戶說起這事,她竟然完全不知,搞得我挺不好意思的,怪自己告訴了人家這麼大一個壞消息。

我從一開始就關注此事,大概理出一些眉目。下文分享的觀點大都並非我的原創,而是綜合網上已有信息所做的彙總,順便寫上一點我的忠告。即使聽者寥寥,我該說的也說了。

說明一下,我不懂技術,若文中有錯誤,請方家指教。

XcodeGhost 是怎麼回事?

根據各個安全平臺的評估,XcodeGhost 造成的影響比我們預想的要大,所以大家先抓緊時間卸載相關 app 並且修改所有相關的密碼吧。做完這些,咱們再慢慢看本文不遲。據騰訊安全團隊說,App Store 下載排名前 5000 的 app 當中有 76 個感染了 XcodeGhost 病毒,我建議先把所有國產 app 卸載了。

(注:騰訊安全團隊今天中午發佈了一份相當完整的關於 XcodeGhost 的說明,有興趣的可以點擊這裡查看。)

XcodeGhost 不是直接針對手機的釣魚短信,也不是直接針對手機 app 的木馬程序, 而是針對開發手機 app 的環境,那個環境叫做 Xcode, Xcode 是運行在電腦上的一個程序,絕大多數 iPhone/iPad/MacBook 上面的程序都要藉助它來完成。如果這個開發環境都感染病毒了,開發出來的 app 自然很危險。做一個不太恰當但也能說明問題的類比:Xcode 好比廚房裡的砧板,每一個手機 app 好比上桌的菜。每道下鍋、上桌的菜,都要先在砧板上切好。如果砧板進入廚房之前被人用毒藥水泡過,而你對此全然不知,那你用這砧板切過的菜所做出的每一道菜都會有毒。

今天有一位自稱 XcodeGhost 作者的人出面澄清,說這只是自己的實驗,沒有惡意,而且公開了源代碼,但是大家好像並不這麼看。至少在我寫這篇文章的時候,尚未看到有人針對其源代碼做出分析並確認這真的只是實驗。我沒有水平去分析源代碼,僅就一點質疑:如果只是沒有惡意的實驗,何必要用那麼多匿名身份在國內各個技術社區分發你的染毒 Xcode?當然我也希望這只是一個實驗,不要給大家造成那麼大的損失。

Android 平臺真的沒關係嗎?

Android 用戶不必幸災樂禍,說不定你的問題更多呢!

即使 XcodeGhost 不針對 Android 平臺,並不代表 Android 安全,你只是這一次沒有中招而已。一次沒中招也不重要,因為你每天都在中招。

黑客之所以能夠成功誘使很多程序員去下載被植入木馬的 Xcode, 是因為據說從 App Store 的官方渠道下載 Xcode 太慢,姑且認為這個理由成立。可是很多普通用戶恐怕不知道,下載 Xcode 再慢也罷,好歹還能直接從官網下載,只是速度快慢的問題。而開發 Android app 必需的 Android SDK 可是連慢的機會都沒有,因為 Android 官網早在幾年前就無法直接訪問了,這是有無問題。國產 Android app 開發者估計也懶得爬牆下載官方的 Android SDK, 使用其它亂七八糟渠道 Android SDK 的可能性簡直不能再大了。這是著名 blogger 霍炬的觀點,我完全認同。他因此感嘆:「都不敢想了,遍地是災都是客氣說法。」

接著往下看,還是有辦法能解決一二的,雖然不能完全解決。

從官網下載軟件就行嗎?

當然不是!

有許多證據表明,即使用官網的 URL 下載,但只要使用了迅雷之類的國產下載工具,就有可能被替!換!文!件!對,你沒有看錯,是替換文件!看來迅雷只適合用來下載小電影了,誰知道將來會不會把倉老師換成抗日神劇?此次 XcodeGhost 的主要傳播渠道雖然不是迅雷,但是難以保證迅雷以後不會幹出這樣的事。所以即使拿著官網的下載 URL,也不要把它交給迅雷和 360 折騰。

這個建議不是說給程序員的,因為我的讀者裡基本沒有程序員,這是給普通用戶的建議。

真的沒有辦法避免嗎?

在方便與安全之間,我們總要做出選擇,這取決於你多麼重視自己的安全和隱私。無論使用什麼平臺,以下建議都值得參考,做到什麼程度看你自己。

  1. 如果有同類的非國產軟件,就堅決不用國產軟件,這是最最重要的。趕緊把什麼衛士、什麼助手卸載乾淨。
  2. 絕對不下載、不安裝來路不明的軟件,哪怕它能帶來短時間的方便,這次的 XcodeGhost 來自百毒網盤就是個教訓。
  3. 軟件來源選擇順序:最優先考慮開源軟件,國外大公司口碑好的閉源軟件次之……對普通用戶來說,沒有必要去選擇更多了。
  4. 有條件的請直接從國外購買電子產品,誰也不知道小米等國産手機商蒐集那些數據是要幹嘛。
  5. Android 用戶只從 Google Play 和 F-droid 下載 app, 我估計很多 Android 用戶可能都沒聽說過 F-droid, 試試吧。
  6. 軟件下載完之後要做 MD5 或者其它方式的驗證。這個對普通用戶來說有點難,但是相信我,完全值得花半個小時瞭解一下。
  7. 沒事不要越獄或者 root, 尤其普通用戶,千萬不要這麼幹。

人們依然會很快忘記

寫了這麼多,連我都覺得自己很賤。每次出現類似的事,我都要不斷告訴身邊的人注意信息安全,可是也沒幾個人聽我的。比如 2015 年初爆出 iCloud 安全問題,導致眾多明星私拍洩漏,大家看了看豔照就這麼過去了,好像和自己沒關係,反正洩漏的也不是自己的豔照。不知看過豔照之後有幾個人真的啟用了 iCloud 的二步驗證。(如果還沒有啟用 iCloud 的二步驗證,看到這裡是不是該去啟用了?)

技術遠遠沒有發展到安全與方便並存,甚至我們看到越來越多利用技術威脅安全的事故發生。要怎麼選擇,全看個人。就算你不在乎衙門查開房記錄,難道你也不怕黑客惦記銀行卡和豔照嗎?

雖然話都說到這個份上了,但我相信人們依然會很快忘記 XcodeGhost 事件,就好像忘記 2008 和 2015 的災難一樣。

最後羅嗦一句網速問題,我覺得通過 App Store 下載 Xcode 速度慢只是個藉口。App Store 是我最討厭的 Mac 軟件,有時通過它下載安裝 app 也的確很慢,可是這也沒有慢到我無法忍受。我家的寬帶最多只能算家用中等水平,無論如何都沒法和國內專業互聯網公司的網速相比。在這種網速下,我通過 App Store 下載最新版的 OS X Yosemite 也沒有花多少時間,更何況 Xcode 和 Yosemite 相比簡直太小了。因此我只能說,因為下載速度慢就去百毒網盤下載染毒 Xcode 的程序員,真的太他媽不專業和不敬業了!