【廉環(huán)話】安全入侵應(yīng)對實務(wù)—移動終端篇
原創(chuàng)【51CTO.com原創(chuàng)稿件】大家好,這次我又來“打卡”了。下面的這張照片是四月份我在貓本的敏志溪火車站(Menzies Creek Station)附近的一片林區(qū)里所拍到的一棵被鋸剩下的樹根。當?shù)厝烁嬖V我們:這里的樹木都是上好的木材,在一次整體伐木的過程中,唯獨這顆大樹在被鋸斷后才發(fā)現(xiàn)到它的中心已經(jīng)被完全蛀空了。大家既對該樹本身表示痛心,又對浪費的伐木時間和由此引發(fā)木材的缺失而表示惋惜。
由此我想到:在企業(yè)運營中,日益普及的移動終端,特別是各種智能手機或Pad,在我們企業(yè)的整體IT架構(gòu)內(nèi)部所占的比重雖然不大,但是如果它們在安全上一旦出現(xiàn)問題或是被惡意軟件等入侵和攻擊,那么我們IT系統(tǒng)這顆大樹也將會從內(nèi)部被瓦解甚至崩潰掉。所以我們這次就來聊聊如何做好移動終端的入侵應(yīng)對吧。
第一階段:基礎(chǔ)與準備
1. 首先我們要具備APP權(quán)限管理方面的基本知識。想必大家都知道,對于Android平臺的APP而言,其權(quán)限是在AndroidManifest.xml中被說明的。我們可以采用如下的形式,來對APP運行所需要訪問系統(tǒng)的權(quán)限和依賴關(guān)系進行細粒度的定義。
2. 如果企業(yè)有自己開發(fā)的APP,特別是那些Android版本的,為了防止各種惡意代碼的攻擊,可以采用軟件加殼和代碼混淆等技術(shù)來予以自身的保護和防止被反編譯。另外在最終交付給用戶使用前,開發(fā)人員也可在APP里安插一些函數(shù)鉤子,以發(fā)現(xiàn)調(diào)試器的進程,從而在內(nèi)存的層面上實現(xiàn)反動態(tài)的調(diào)試。
3. 適當?shù)剡M行挑選、安裝能夠有效防范各種本地入侵的手機安全管理軟件,以持續(xù)提供病毒查殺、流量監(jiān)控、騷擾攔截、話費跟蹤、以及“健康”體檢等服務(wù)。記得我在某次選型過程中,就曾將是否具備識別“偽基站”的功能作為一個衡量的指標,在此大家也可以借鑒一下。
4. 如果用戶采用的是BYOD的模式去使用企業(yè)的IT服務(wù)資源的話,那么應(yīng)當使用嵌入式移動虛擬化技術(shù),來實現(xiàn)企業(yè)所需的可信且安全的APP與用戶自行安裝的第三方的非可信APP,能夠同時共享地運行在同一臺移動終端之上。通過運用沙箱(sandbox)技術(shù),達到每個APP在系統(tǒng)中進行時都能被分配到一個唯一且固定的UID。不同的APP各自獨立運行在Dalvik虛擬機中,從而實現(xiàn)不同APP的進程之間的相互隔離。
5. 購置并部署移動設(shè)備管理(MDM)平臺,實現(xiàn)對移動設(shè)備的標準化、流程化、統(tǒng)一的和遠程的安全管理與響應(yīng)。當然還可以通過該平臺去推送企業(yè)為員工定制的各種APP。
6. 在用戶的安全意識層面上,要普及如下基本知識點:
· 下載應(yīng)用時,優(yōu)先選擇官方發(fā)布且認證過(有簽名)的APP,不要輕信通過旁人掃描二維碼的形式去下載安裝。
· 在自行安裝APP的過程中,要注意看清楚彈出的有關(guān)系統(tǒng)權(quán)限的提示信息,不要輕易點擊和開放終端的最高權(quán)限。比如說對Apple產(chǎn)品的“越獄”行為、或是在Android系統(tǒng)中的Root權(quán)限提升都應(yīng)避免和謹慎。在不確定如何操作的時候,要及時與IT人員聯(lián)系。
· 定期運行檢查并保持防病毒軟件的病毒庫更新狀態(tài)。
· 注意不要點擊帶有亂碼的短/彩信、陌生連接請求和獵奇網(wǎng)站。
· 不要隨便連接到陌生的或是名稱怪異的WiFi熱點之上。
總之,正所謂“凡事預(yù)則立、不預(yù)則廢”,我們要先發(fā)制人,事先做好各種防范工作。
第二階段:檢查與識別
近年來Android平臺的移動終端漏洞屢屢被曝光,信息盜用和應(yīng)用入侵事件更是層出不窮。而iOS平臺則由于其系統(tǒng)相對是閉源且嚴格,因此曾在傳統(tǒng)觀念上被認為在非越獄的情況下,其安全性遠高于Android。但是近年來,iOS平臺也相繼暴露了一些XcodeGhost和中間人漏洞等多種惡意的SDK。因此,作為安全工程師的我們,仍然需要發(fā)揮精耕細作的精神,在各種入侵事件發(fā)生前做好預(yù)防性檢查。我們可以通過運用各種平臺、多種工具的混搭,來構(gòu)建出符合自己企業(yè)特點的“百寶箱”。
1. 自動化漏洞掃描,目前國內(nèi)以3BAT為首的行業(yè)龍頭公司都已經(jīng)提供了移動終端APP的漏洞檢測相關(guān)產(chǎn)品。值得慶幸的是這些大多數(shù)都是免費的,而且能夠支持在特定應(yīng)用場景下的二次開發(fā)。
· 對于iOS平臺,除了有Idb和Needle這類經(jīng)典的開源的安全評估工具之外,也有360NirvanTeam和MobSF(同時支持Android和iOS)這樣的具有iOS App在線審計功能的開源方案。它們基本上可以實現(xiàn)對BIN文件的分析、XCodeGhost和惡意SDK的檢測、以及第三方庫的漏洞檢測等。
· 對于Android平臺,既然剛才有提到過3BAT,那么依次對應(yīng)的在線掃描系統(tǒng)有:360APP漏洞掃描(http://dev.#/html/vulscan/scanning.html)、百度的MTC(http://mtc.baidu.com)、阿里的聚安全(http://jaq.alibaba.com/)和騰訊的金剛審計系統(tǒng)(http://service.security.tencent.com/kingkong),它們都在不同程度上做到了對本地的文件內(nèi)容讀寫和IPC通信的監(jiān)控、Manifest信息和Logcat日志的查看,敏感文件加密與傳輸操作的審查等,也實現(xiàn)了對Android App的自動化靜態(tài)與動態(tài)的分析。
2. 人工綜合分析,主要包括對網(wǎng)絡(luò)數(shù)據(jù)包的分析、應(yīng)用行為的分析、源代碼的分析等,這往往需要人員具有一定的網(wǎng)絡(luò)和開發(fā)方面的經(jīng)驗。
· 網(wǎng)絡(luò)數(shù)據(jù)包分析:是運用Wireshark之類的包分析工具,抓取終端在網(wǎng)絡(luò)通信時候的收發(fā)數(shù)據(jù)包,對源/目的IP地址、URL、以及各層的數(shù)據(jù)進行解析的操作。
· 應(yīng)用行為的分析:是運用DDMS之類的調(diào)試工具,通過對APP的各種操作日志的記錄,來對其運行狀態(tài)和操作行為屬性等進行監(jiān)控。另外,還可以通過對服務(wù)端施以模擬攻擊的滲透測試,來偵測APP的各種響應(yīng),從而挖掘出不安全的因素。
· 源代碼分析:則是對可疑的APP進行源代碼級別的邏輯分析和審驗,找出安全隱患或惡意代碼行。不過,這一般是可以委托給專業(yè)的第三方軟件分析公司來完成。
我們再來看看遭遇式的識別流程。一般如果在用戶的移動終端上出現(xiàn)如下這些異常的狀態(tài),那么十之八九就昭示著該設(shè)備已經(jīng)中招了!
1. 防病毒軟件顯示報警信息。
2. 系統(tǒng)響應(yīng)的異常延遲狀態(tài)。
3. 網(wǎng)絡(luò)瀏覽的異常緩慢狀態(tài)。
4. 系統(tǒng)異常的重啟、死機或關(guān)機。
5. 某個/些APP的異常關(guān)閉或閃退。
6. 出現(xiàn)包含有奇怪字符或亂碼的提示信息。
7. 異常高額的電話費或上網(wǎng)流量的使用。
8. 頻繁的陌生或是無號碼信息的電話呼入與呼出。
所以,一旦發(fā)生了上述情況以及出現(xiàn)移動終端設(shè)備異常發(fā)熱的時候,我們就應(yīng)該立即使用一些比較“稱手的兵器”來進行抽絲剝繭。這里主要和大家分享的是針對Android平臺的入侵識別。
1. 使用Intent Sniffer工具,來檢查應(yīng)用程序之間進行過通信的最近的任務(wù)或廣播。
2. 使用MindMac工具,通過模糊測試的方法來發(fā)現(xiàn)導(dǎo)致設(shè)備、APP在運行過程中出現(xiàn)的異常閃退的原因,甚至是系統(tǒng)崩潰的bug。
3. 使用經(jīng)典的X-Ray工具,來檢查是否帶有由提權(quán)類漏洞所引發(fā)的后臺自動發(fā)送付費類短信,和上傳各種個人隱私等跡象。
4. 使用Drozer工具,來發(fā)現(xiàn)和挖掘Android上是否存在被利用的公共漏洞和遠程漏洞。
5. 以及使用“瑞士軍刀”類型的工具-- SPF(Smartphone Pentest Framework)進行全面檢查。它能夠支持Android,iPhone和blackberry。
第三階段:取證與調(diào)查
每當用戶一臉無辜地將有問題的移動終端放到你面前的時候,其實它早就已經(jīng)是“一塊窟窿眼兒的瑞士奶酪”了。面對這樣的殘局,你要做的事情就是要根據(jù)既定的流程,認真仔細地進行取證與調(diào)查。具體步驟可參照如下:
1. 將設(shè)備復(fù)位,以止損。即屏蔽掉所有的網(wǎng)絡(luò)活動,如WiFi、藍牙連接等;拔下記憶卡(SD卡),如果可以移除電池的話,也應(yīng)拔下。
2. 將移動終端與一臺處于standalone模式(脫機、與企業(yè)內(nèi)容斷開,但必要是可以連接互聯(lián)網(wǎng))的電腦相連接,運行與智能終端類型相符的管理軟件,進行病毒查殺。
3. 備份終端上的數(shù)據(jù),運行與智能終端類型相符的管理軟件,進行基本信息檢查與同步,將SIM卡、記憶卡和終端內(nèi)部的存儲空間里的各種歷史數(shù)據(jù)、日志信息等,根據(jù)既定的checklist逐一導(dǎo)出。
4. 定位入侵與威脅,將發(fā)現(xiàn)的惡意內(nèi)容和APP進行有效的隔離,以待進一步研究并最終形成報告。
5. 待取證和調(diào)查結(jié)束后,按照相關(guān)的操作規(guī)則擦除掉(Wipe)該移動終端或?qū)⑵湔w系統(tǒng)重置為出廠時的原始狀態(tài),以備封存期(一般為半年)后再次分配給用戶使用。當然如果事關(guān)重要,也可不做任何重置操作,直接封存之。
小結(jié)
好了,這次我同樣采用的是“三步遞進式”的應(yīng)對策略解析方式,希望大家通過這次我所梳理出“三板斧”技巧,結(jié)合自己的平時業(yè)務(wù)技能查缺補漏,能夠使得相關(guān)知識和思路有所level up(提升)。我們在平時的IT系統(tǒng)維護與安保工作中,千萬不要只注重那些能夠由自己所掌控的“面”上的查驗,而忽略了某些已經(jīng)交付給用戶而不太出現(xiàn)在IT人員面前的“點”上隱患。記住,大家要提防用戶在不經(jīng)意之間把自己手中用于提供工作效率的手機“玩”成了時刻會威脅系統(tǒng)的“手雷”。最后,面對不斷迭代、此消彼長且瞬息萬變的各種移動終端入侵與攻擊,我真誠的給大家奉上一句:摔跤吧,安全工程師們!
【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】