今日頭條與木馬
來源:知乎 劉一鳴
摘要
近期,央視報道了今日頭條選擇性推送廣告的行為,即,今日頭條有選擇地避開一線城市,將虛假廣告推送給二三線城市。
雖然定向推送這種技術并不新鮮,今日頭條用這種技術偷偷作惡,卻著實令人擔憂。幸好,作惡的對象是二三線的居民,生活在一線城市的我們,似乎還可以心存僥幸?
可惜,并非如此。
因為今日頭條客戶端在設計上,就是一個功能強大的木馬。
它可以做什么呢?
竊取你手機里的機密文件,今日頭條能做到。
隨時對你進行定位,順帶記錄和識別你和別人的談話,外加無聲拍照,今日頭條能做到。
總體來講,只有它想不想做,沒有它做不到。
考慮到今日頭條并不自律,建議任何有信息安全要求的人和組織,卸載今日頭條。
問題
今日頭條是不是一個木馬?
這個問題如果由今日頭條回答,是個公關問題,答案肯定是否定的。
然而它實際上是否如此呢?我們就要看看它的客戶端,用技術說話了。
今日頭條幾乎獲取了所有權限
從信息安全的角度來講,應用應僅取得必要的權限,但是今日頭條基本把敏感權限都請求了。
對今日頭條客戶端APK的分析結果,顯示今日頭條申請的權限如下:
上述的這些權限能做什么,各位可以通過百度查找。
這里面有幾個尤其敏感的:
基本上木馬夢寐以求的各種權限,作為一個新聞客戶端的今日頭條都要了。
今日頭條的熱補丁機制隨時可以運行木馬代碼
確實,申請了過多權限并不一定代表今日頭條代碼里會進行木馬行為。
然而你知道神奇的地方是什么嗎?今日頭條的客戶端安裝包只有20M,里面基本上沒什么東西。
它的許多功能都是通過熱補丁按需下載安裝的,不要誤會,不是按照你的需要,而是按照今日頭條的需要。
比如它一個典型的熱補丁列表,這個“robust_hotfix_for_66509”就是一段未加驗證就加載的可執行代碼。
今日頭條有能力隨時下發一段代碼,讓手機里的客戶端去執行。
至于下發什么代碼、給什么人下發、什么條件下下發,那完全能是看人下菜碟。
就像今日頭條對二三線城市用戶做的事情那樣。
蘋果為什么禁止熱補丁,一個原因就是擔心這樣的情況發生。
模擬演示
口說無憑,我們來看一看。
這個熱補丁包是一段單純的二進制代碼(DEX文件),沒有任何保護。
我們使用二次打包的方式,把它修改成木馬代碼,然后利用中間人,仿冒今日頭條的服務端去下發這段代碼。
注意:今日頭條的服務端可以實現一模一樣的事情,我只是在冒充它的服務端。
我使用的官方下載的今日頭條客戶端,僅僅是修改了網絡請求,下發了木馬熱補丁,可見木馬控制端已經連接。
而今日頭條熱補丁升級的HTTPS證書校驗也并沒有實現行業推薦的SSLpinning(也或許它就不重視安全),也就是說,即便今日頭條不下發木馬,你在不安全的WIFI下只要使用了今日頭條,照樣可能被黑客在手機里種上木馬。
有人說,國內知名應用大都有熱補丁。沒錯,先不說別人沒這么不自律,人家的熱補丁大都實現得很安全,您一個單dex直接加載,黑客不劫持都對不起觀眾了吧?
而且看看評論區的態度,人家應用都是知道熱補丁對用戶很危險所以小心謹慎地做好安全,而您面對安全是“有幾個應用不用熱補???”,pardon me?
結論
在信息安全領域里,攻擊是否會發生要從兩個維度考慮,即能力與意愿。
從今日頭條客戶端的設計上看,今日頭條具有木馬的一切能力,唯一的問題是,今日頭條是否有作惡的意愿?
從今日頭條選擇性虛假廣告上看,這并不是一個足夠自律的企業,它是否能抵御用戶隱私的誘惑呢?要打一個巨大的問號。但是即便今日頭條能抵御誘惑,其客戶端設計存在的安全問題,也給了別有用心的黑客太多的機會。
因此,公眾有必要知道,使用今日頭條客戶端存在嚴重的安全風險。
在這個安全風險得到解決之前,
建議涉密部門、涉密設備禁止安裝今日頭條客戶端;
建議禁止安裝今日頭條客戶端的手機連入企業內網;
建議對個人隱私有要求的用戶卸載今日頭條客戶端。
題外話
在互聯網時代,信息安全的確不一定能跟得上業務的快速變化,相關國家標準的制定也必然慢于新技術的發展。
可以說,存在安全風險是必然的,廠商獲得不受監管的巨大權力也是必然的。
在這種條件下,廠商面對作惡的態度和自律就顯得尤為重要,應該珍惜用戶這份信任。
但是倘若廠商作惡,不要心存僥幸,因為有人會站出來,我們信息安全從業者眾多,自會用我們的方式守護公眾的安全。
(聲明:本文僅代表作者觀點,不代表新浪網立場。)