黑客李偉:我所見證的移動安全歷史
來自專欄淺黑科技7 人贊了文章
大家好~我是 @史中,我的日常生活是開撩五湖四海的科技大牛,我會嘗試各種姿勢,把他們的無邊腦洞和溫情故事講給你聽。如果你特別想聽到誰的故事,不妨加微信(微信號:shizhongst)告訴我,反正我也不一定撩得到。
不想走丟的話,你也可以關注我的自媒體公眾號「淺黑科技」。
-------正文分割線-------
老將李偉:我所見證的移動安全歷史
文 | @史中
得以見證一個行業破土而出,從孱弱到璀璨,是職業生涯的某種幸運。這也許會成為值得珍藏的回憶標本。
李偉就是這樣一名移動安全的老兵。在移動安全這個概念誕生之前的1998年,他正坐在摩托羅拉的辦公室里,為尋呼機的系統開發核心組件。現在回想起來,中國的移動科技爆發,似天水蕩平川,正是始於哪些人們腰間的「小黑盒」。就這樣,他和中國最早的移動設備,以及現在已經到了知天命之年的第一批移動通信用戶聯繫在了一起。
在李偉眼中,這段將近20年的歷史,和自己最為蓬勃的歲月緊密相連,有一種別樣的溫情。
摩托羅拉、塞班,移動安全的洪荒時代
大學畢業後做了三年 Windows 應用開發的李偉覺得,Windows 的系統變得越來越龐大,甚至有些公式化。就在這個時候,嵌入式系統獨特的技術美感吸引了他。偶然的機會,他看到了如日中天的摩托羅拉尋呼機業務正在招賢納士,從此開始了移動設備的職業生涯。
當時好一點的尋呼機要2000多塊錢,很貴。但我們辦公室每個人的抽屜一拉開,滿滿全是各種尋呼機。
李偉饒有興趣地回憶。
一部尋呼機的系統固然簡單,但是卻有著著豐富的技術細節。李偉舉例,尋呼台的基站是以廣播的形式對外發送信號。所有的尋呼機都可以收到,但是必須只有一部尋呼機能解釋出這個信號,這其中涉及到的號碼識別和尋呼協議技術正是他參與研發的。
然而,隨著世紀之交臨近,短暫霸佔人們生活的尋呼機迅速被手機拉下神壇。李偉也順理成章地成為中國第一批手機的開發專家。縱然從界面和易用性來講,彼時的手機可以用簡陋來形容。但即使如此,安全技術也是必不可少的。
當時的環境下,並沒有漏洞和利用漏洞提權的安全概念。因為手機系統是特殊的資源,需要對手機設計完全不同於 PC 的一整套許可權訪問模式,來限制惡意資源訪問。比如「drm」,就是一種限制資源訪問次數和轉發的系統。而且,在當時我們也設計了硬體層、驅動層、應用層的防護系統,以防止任何一個層次可能出現的漏洞。
李偉告訴 @史中 ,這是他最早涉及到的安全項目。
然而,他隱隱感到一種不安,因為在他的想像中,一部手機應該搭載複雜一些的操作系統。這個想法最終促使他在2005年加入了後來名聲大噪的塞班(Sybian)。
彼時塞班還沒有被諾基亞收購,他作為這個智能系統在中國的第一個工程師,負責塞班對整個中國市場開發者的技術輔導和對接。
因為我有很多移動設備嵌入式開發經驗,所以對於手機系統的底層邏輯非常熟悉。越是到系統底層,各個系統的邏輯相似度越高,在內核層,塞班、Android、iOS 的邏輯都是非常類似的。而和系統底層相關的應用,只有安全這一個類別。
李偉如此解釋自己走上移動安全道路的原因。也正是在這個時候,移動系統的安全問題真正開始浮現。
在當時,手機病毒雖然是稀有物種,但是對於手機系統商和軟體開發商來說,已經成為不容忽視的問題。開發反病毒軟體的團隊們,也成為了李偉辦公室的常客。例如後來名噪一時的網秦,例如一個名為「信安易」的手機殺毒軟體,後來成為了360手機衛士。
中國第一批 Root 安卓的人
2010年,3Q大戰爆發。現在看來,這場商業史上的經典戰爭成為了中國移動安全技術軍備競賽的元年。那一年,帶著摩托羅拉和塞班系統這兩個移動通信史上最大的光環,李偉已經成為了中國當時為數不多炙手可熱的手機安全專家。
準備火力全開的騰訊向他伸出了橄欖枝,李偉就此組建移動安全實驗室。
「安卓底層的對抗,簡單說就是注入和反注入的能力對抗。當時騰訊在這方面的能力比較弱,我可以說是臨危受命。」李偉回憶道。實際上,回看當時的手機江湖,Android 只有一歲,用李偉的話說,不僅是騰訊,所有人對於 Android 的安全構架,「都處在一個朦朧的狀態」。
為了對抗病毒和惡意軟體,李偉必須找到一種技術,從應用層一直打通內核層拿到系統的底層許可權。這其中的核心技術,就是我們現在熟知的 Root。只是在當時,這個詞還未被發明。
2011年初,李偉憑藉經驗斷定,這種能「突破系統結構的技術」是存在的。而且,另一件事佐證了他的判斷。
LBE 的張勇是我的朋友,他是國內第一個做出 Android Root 的人, 他既然做出來了,我就相信這件事肯定可以做。
當年6月,李偉帶著兩個兄弟,開始了「底層許可權控制技術」的研究。這項技術的難度在於,不僅要求研究者掌握 Android 的底層邏輯,還要對上層的服務層和框架層有深刻的理解。對於李偉來說,他仍然需要從零開始補足 Android 系統的上層邏輯。那段時間,每天工作到夜裡兩三點,是他的常態。
雖然現在對於 Android 系統的 Root 技術,可以在網路上找到現成的開源技術和架構。但是當年在沒有任何參考的情況下,能把 Root 搞出來,還是很有難度的。
李偉說。
兩個月之後,實驗室成功地向騰訊交付了這個「底層許可權控制技術」。他不無驕傲地回憶,這個技術「領先了對手半年時間」。
這位中國第一批 Root Android 系統的大牛,並沒有對我過多回憶其中的困難。但從零開始構建 Root 的世界觀,可以想見他使出了怎樣的「洪荒之力」。
病毒戰爭
在完成了 Root 技術開發之後,移動安全實驗室接到了新的任務,那就是提高手機管家對於手機病毒的查殺能力。
「Android 是一個新平台,當時惡意軟體爆發,所有業界的殺軟查殺率都不好。業界急需一個有病毒捕捉能力的體系。」他說。
病毒往往隱藏在 App 中進行傳播。而業界普遍認為,一個對於 App 的自動分析處理系統是最好的解決方案。但是,李偉對當時騰訊採用的分析系統構架並不滿意,他決定操刀做一些改進,從而提高病毒識別的準確率。
想要分辨出病毒的難點在於,你必須知道一個 App 到底有哪些惡意行為。
例如讀取電話本、上傳資料。這兩個動作本身沒問題,但是如果一個程序先讀了你的電話本,然後把它上傳到伺服器,這個動作就很可疑。
然而難點也正在這裡,單獨判斷程序讀電話本和上傳資料都很簡單,但是把這兩個動作的邏輯關係識別出來,就有很大的難度,需要分析程序的執行流程,或者說需要虛擬執行。
李偉設計的系統,簡單來說就是用儘可能準確的諸多行為模型對大量的 App 進行篩查。在2011年的時候,這個系統一天會篩查幾萬個文件。而為了保證準確性和改進系統,還會有大量的人工複檢。「大概每個人每天要審計好幾百個 App 的代碼」,李偉回憶。
讓李偉欣慰的是,這些辛苦沒有白付,優化了一年之後,在2012年騰訊的手機病毒檢測能力終於到了國內領先的水平,而且在一次國際測評中拿到了滿分的成績。
除此之外,李偉對於初期殺毒引擎的設計一直不滿意。用他的話說,設計的「有點糙」。
例如一個遊戲的安裝包可能達到80M,在手機上的殺毒引擎就會把這80M的文件全部放到內存中,再進行檢測。這種處理方法會佔用很多內存,而且檢測的時間很長。
我們設計了一種方法,向系統申請很小片的內存用於病毒掃描。一個80M 的 APK 安裝包里,很可能真正的代碼只有 4M,其他的都是資源和圖片。這種情況下,只需要把可能包含惡意程序的代碼部分放到內存里檢測就可以完全實現病毒查殺。
這個原理聽上去很簡單,對於實驗室的技術水平來說,實現起來也並不複雜。事實證明,他們用這種技術,實現了殺毒速度十倍的提升。團隊發現,他們發明的這項技術已經走在了病毒查殺的前列,所以還專門申請了專利。「這導致競爭對手必須採用其他的技術路線。」李偉說。
深夜追兇
雖然整個中國的手機殺毒軟體技術在飛速進步,但是在利益的驅使下,惡意軟體的蓬勃之勢絲毫沒有減弱。李偉講述了在2012年,他遇到的最為奇葩,最為忍無可忍的惡意軟體。
病毒檢測系統捕捉到了一個惡意程序,我們照例對它進行人工篩查。我們發現這個病毒會在微信等流行的程序上面覆蓋一層窗口,惡意推廣它的廣告,誘導用戶下載其他 App。可惡的是,它還會有一些交互的按鈕,給用戶的感覺就像是微信在推送這些廣告一樣。更可惡的是,它還會根據入侵的 App 不同,改變按鈕的風格,讓用戶覺得渾然一體。
做了很多年反病毒工作的李偉覺得忍無可忍,黑客居然躺到了自家微信的門口「為非作歹」。更可怕的是,通過利用 Android 的系統許可權,這個病毒可以獲取很多用戶的隱私信息。
李偉和團隊經過分析惡意軟體的代碼,發現了它用於控制和回連的伺服器地址。而經過公開資料的查詢,居然很容易就定位到了病毒作者的真實姓名和地址。和上層溝通之後,騰訊決定報警。
從發現病毒,到分析研究,定位犯罪分子,到報案出警,所有的事情都發生在一天之內。我記得當天深夜,公安需要團隊出人連夜去江蘇配合辦案,我們團隊的人有很多都沒有把身份證帶在身上。好在有帶了身份證的同事,都沒有來得及回家,就直接買票去了江蘇。當天就把犯罪分子緝拿歸案了。
現在想起這個「深夜追兇」的故事,李偉仍然難掩內心的波瀾。對於大部分的病毒,殺毒軟體只能做到攔截和查殺,但是像這次一樣斬草除根的行動並不多。對於他來說,做手機安全十多年,眼前的場景讓他堅信了自己工作的價值。
保衛 App
2013年,李偉注意到了一個特別的趨勢,那就是很多病毒不再把注意力集中在 Android 系統之上,而是直接「搞 App 」。有了這個想法之後,李偉開始研發一套監測 App 漏洞的系統,並且本能地對自家的微信等 App 進行測試。這一查不要緊,他確實發現了自家產品存在很多問題,這讓團隊驚出一身冷汗,緊急對微信等核心產品做了修補。
於是李偉注意到,「應用安全」很可能是未來一個非常重要的安全方向。於是他把移動安全實驗室的工作重心放到了「應用漏洞」的研究上。
相比攻擊 Android 系統,攻擊 App 的成本很低。而且 App 和用戶最近,裡面有很多個人的信息。這些都是黑產最為關心的。通過入侵 App 拿到個人通訊錄或者關係鏈,比入侵系統之後再拿這些數據要簡單得多。
李偉說。
對於一個 App 來說,最常見的漏洞有以下幾種情況:
1、很多 App 中會使用 Webview 內嵌瀏覽器,如果安全機製做得不夠,這裡就有可能成為攻擊入口。用戶通過 Webview 打開一個惡意url,就會執行遠程攻擊代碼。
2、一些 App 也可能通過自身的協議聯網。在這種情況下,黑客可以通過「中間人攻擊」或者「偽造伺服器」的方法,向客戶端發送惡意代碼。3、在 Android 系統中存在一個 App 之間的相互調用機制。如果調用介面安全性不高的話,App 1 就可以利用 App2 執行一些惡意代碼,從而竊取 App 內的隱私信息。
通俗來說,如果一個聊天 App 被攻擊,那麼很可能受害者掃一下二維碼,就被盜取了他的通訊錄和關係鏈,而如果漏洞厲害的話(這樣的漏洞也屢次被發現),是可能跨 App 攻擊的。
他告訴 @史中,從某種程度上來說,找到 App 的漏洞比找到操作系統漏洞更難,因為攻擊需要入口,而 App 對外開放的介面,遠沒有操作系統對外開放的介面那麼多。他說:
App漏洞利用和系統漏洞利用不同。
- 系統的使用者是 App, App 可能調用所有的系統介面。
- 而 App 的使用者是人,人一般只會使用有限的幾個介面,例如:網路訪問、語音、掃碼、信息鍵入。
所以我們只能通過這些介面做文章。
李偉的 App 漏洞挖掘思路,在某種程度上和騰訊的另一位大牛,研究系統漏洞的吳石有些相似。
這種輸入特定數據的方法,本質上是虛擬執行。我們必須從這些介面輸入特定的數據,造成 App 的運行錯誤,從而發現和利用漏洞。
數據輸入動作很大程度上是自動化的。我們根據經驗發現 App 的薄弱環節,然後利用自動化的工具生成一些極端的數據,以此來觀察 App 的不同反應。
隱形的對手
App 漏洞研究是一件苦差事,因為 App 在大多數情況下並不是標準化的。對於研究者而言,雖然經驗可以復用,但對於不同的 App 都要分別開展研究。而且,由於 App 安全受國家和用戶群的限制,並沒有系統漏洞受關注。但是李偉覺得移動安全實驗室的工作意義非凡。
我們對市面上 Top 200 和用戶量較大的 App 都會進行研究。從13年到今天,總共發現了100多個高危漏洞,這些漏洞覆蓋了10億用戶。
理論上來說,對於 App 的漏洞利用非常隱蔽。如果已經有黑產竊取了某些 App 的用戶資料,也只會在竊取的當時產生流量,不會留下數據包等證據。李偉告訴雷鋒網,在行業中對於某 App 的用戶信息究竟有沒有遭到竊取,很難產生官方的統計。所以李偉和團隊的對手其實是「隱形」的。他們的所有努力,都是以想像中的敵人為對手,在對手發現並且利用漏洞之前先行封堵。如果以每個高危漏洞攻擊一個用戶算來,他們已經阻止了潛在的1000億次進攻。
雖然對手從不露面,但是李偉不敢有絲毫懈怠。某種意義上來說,他更像名將蒙恬,卻匈奴七百里,築長城而守藩籬。
正是因為這片戰場上駐守著諸多如李偉一樣的百戰名將,才使方寸之間的虛擬世界運行如常。
再自我介紹一下吧。我是 @史中,是一個傾心故事的科技記者。我的日常是和各路大神聊天。如果想和我做朋友,可以關注微博:史中方槍槍,或者加我微信:shizhongst。
不想走丟的話,你也可以關注我的自媒體公眾號「淺黑科技」。
推薦閱讀:
※網路欺詐呈高發態勢 移動安全支付需加「三把鎖」
※一種繞開反病毒引擎的方法
※【阿里聚安全·安全周刊】戰鬥民族黑客入侵德國政府|「貓臉識別」門禁
※The nice comments on Evolution of the EMM Industry