證碼安全防護(hù)三步走)
做安全這一行平時(shí)最常被朋友問的一句話就是“我手機(jī)是不是中病毒了”最近這一個(gè)月類似的問題突然多了起來而且癥狀出奇一致驗(yàn)證碼短信收不到了或者通知欄閃一下就沒銀行App、社交賬號(hào)卻開始出現(xiàn)異地登錄、異常綁定的記錄。追查下來大多跟一種被稱為“短信攔截”木馬的最新變種有關(guān)。它盯上的目標(biāo)非常聚焦——就是你手機(jī)里收到的驗(yàn)證碼短信尤其是銀行、支付平臺(tái)發(fā)的那幾條。這篇內(nèi)容不講虛的先幫你看清它是怎么運(yùn)作的然后直接給出三件馬上能做的事再附上一套自查和排查的完整清單。無論你是普通手機(jī)用戶還是剛開始自學(xué)攻防、想搞懂背后原理的新手按這個(gè)思路走一遍都能把風(fēng)險(xiǎn)降下來一大截。1. 先搞懂“短信攔截”木馬到底在干什么1.1 它偷的不是通訊錄而是你的“數(shù)字鑰匙”很多人以為木馬就是偷隱私照片、偷通訊錄其實(shí)“短信攔截”木馬的思路完全不同。它盯上的是短信驗(yàn)證碼因?yàn)轵?yàn)證碼在今天的互聯(lián)網(wǎng)體系里幾乎就是一把萬能鑰匙。你可以把驗(yàn)證碼理解成門鎖的臨時(shí)密碼。各大平臺(tái)登錄、改密碼、轉(zhuǎn)賬、綁定新設(shè)備短信驗(yàn)證碼都扮演著“最后一道關(guān)卡”的角色。木馬要做的就是在這條短信到達(dá)你眼前之前先把它截下來用最快的速度轉(zhuǎn)發(fā)給攻擊者手里的服務(wù)器或者手機(jī)號(hào)。等你發(fā)現(xiàn)收不到短信時(shí)攻擊者可能已經(jīng)用這個(gè)驗(yàn)證碼完成了登錄、改綁手機(jī)號(hào)、轉(zhuǎn)走余額等一系列操作。早期這類木馬的手段比較粗暴要root權(quán)限靠系統(tǒng)最高權(quán)限讀短信數(shù)據(jù)庫(kù)。現(xiàn)在的“最新版”變種已經(jīng)不需要這么麻煩了它們普遍走的是“權(quán)限濫用”路線——你安裝時(shí)點(diǎn)了一個(gè)“允許”它就能讀到所有短信再嚴(yán)格一點(diǎn)的還要你開啟“輔助功能”或“無障礙服務(wù)”用屏幕自動(dòng)點(diǎn)擊的方式繞過系統(tǒng)的各種攔截。1.2 它的隱蔽性強(qiáng)在“你根本察覺不到”惡意App在手機(jī)上最理想的狀態(tài)就是運(yùn)行了幾個(gè)月用戶還覺得一切正常。“短信攔截”木馬在這一點(diǎn)上可以說是做到了極致。它會(huì)做三件關(guān)鍵的事把短信廣播的接收優(yōu)先級(jí)提到最高。系統(tǒng)收到一條短信后它會(huì)搶先一步處理處理完直接切斷后續(xù)通知短信連通知欄都不會(huì)彈。轉(zhuǎn)發(fā)完立刻清理痕跡。它不只是把短信內(nèi)容傳出去還會(huì)把短信列表里的記錄同步刪掉。你回頭查手機(jī)根本找不到那條驗(yàn)證碼短信來過。偽裝成正常工具。圖標(biāo)是“工具箱”“短信助手”“系統(tǒng)優(yōu)化”名字也起得很正經(jīng)哪怕你打開應(yīng)用列表翻一圈不細(xì)看權(quán)限的話很容易直接忽略。這也是為什么公安和各大安全廠商反復(fù)提醒不要輕易安裝非官方渠道的App。因?yàn)檫@一類木馬隱蔽性遠(yuǎn)高于普通病毒單靠手機(jī)桌面上的直覺判斷真的很難識(shí)別。2. 它是從哪個(gè)門進(jìn)來的傳播渠道和常見套路2.1 四個(gè)最常見的入口個(gè)個(gè)都是日常場(chǎng)景“短信攔截”木馬不是通過Wi-Fi或者藍(lán)牙自動(dòng)飛進(jìn)你手機(jī)的它必須由用戶親手安裝。所以傳播的關(guān)鍵就是誘導(dǎo)你安裝??偨Y(jié)下來目前最主流的入口有四個(gè)。第一個(gè)是詐騙短信里的下載鏈接典型話術(shù)就是“您的積分即將過期”“車輛ETC已停用”“快遞多次派送失敗請(qǐng)點(diǎn)擊補(bǔ)登”。這類短信的鏈接點(diǎn)進(jìn)去是仿冒頁(yè)面提示你下載一個(gè)所謂的“安全控件”或“業(yè)務(wù)辦理客戶端”實(shí)際上就是惡意安裝包。第二個(gè)是搜索引擎結(jié)果里的“官方版”一搜某個(gè)知名軟件的下載前幾條廣告位里混著仿冒官網(wǎng)下載下來卻是捆綁包或惡意改造版。第三個(gè)是各類第三方應(yīng)用市場(chǎng)、破解資源站里的“去廣告版”“無限金幣版”“高級(jí)解鎖版”。有些工具本身確實(shí)能實(shí)現(xiàn)部分功能但里面嵌入了惡意SDK或者后臺(tái)服務(wù)只要裝上“短信攔截”組件就跟著一起運(yùn)行。第四個(gè)是社交群里直接傳來的APK文件再配上“這個(gè)是剛流傳出來的內(nèi)部版功能很全”之類的話術(shù)有人一好奇就裝了。2.2 惡意App的偽裝套路看起來越“正經(jīng)”越要小心我平時(shí)分析樣本的時(shí)候觀察到最新的“短信攔截”木馬在偽裝上花了很多心思。圖標(biāo)、名稱、甚至是首次打開時(shí)的界面都會(huì)盡量模仿正常應(yīng)用。常見的手法有這么幾類應(yīng)用名模仿系統(tǒng)組件比如“消息中心”“安全服務(wù)”“網(wǎng)絡(luò)助手”圖標(biāo)也設(shè)計(jì)得跟手機(jī)自帶應(yīng)用風(fēng)格接近混在應(yīng)用列表里很有迷惑性。首次打開時(shí)先展示一個(gè)正常的功能界面比如一個(gè)計(jì)算器、一個(gè)清理工具、一個(gè)圖片壓縮器功能是真的能用但底層已經(jīng)悄悄注冊(cè)了短信監(jiān)聽的組件。啟動(dòng)時(shí)會(huì)彈出幾個(gè)看起來很正常的權(quán)限請(qǐng)求彈窗。注意它不會(huì)一次性把所有權(quán)限都要完而是分批請(qǐng)求先要存儲(chǔ)權(quán)限等用戶用幾天沒察覺再要“短信”權(quán)限或“輔助功能”權(quán)限。這種做法在木馬圈叫“漸進(jìn)式授權(quán)”專門對(duì)付現(xiàn)在的權(quán)限提示機(jī)制。所以我在給新手講攻防時(shí)一直強(qiáng)調(diào)判斷一個(gè)應(yīng)用是否安全不能只看圖標(biāo)、名字和界面關(guān)鍵要看權(quán)限申請(qǐng)邏輯和應(yīng)用行為是否匹配。注意一個(gè)手電筒應(yīng)用沒有任何理由讀取你的短信一個(gè)清理手機(jī)垃圾的工具也沒有任何理由發(fā)起“輔助功能”和“修改系統(tǒng)設(shè)置”的申請(qǐng)。凡是功能與權(quán)限嚴(yán)重不匹配的一律先懷疑。3. 直接照著做現(xiàn)在馬上做好這3件事攔住大部分風(fēng)險(xiǎn)3.1 第一件事封住安裝入口管理好你的“授權(quán)黑名單”別讓木馬有機(jī)會(huì)進(jìn)手機(jī)是成本最低、效果最好的一步。這步的核心不是卸載幾個(gè)可疑App而是把手里的安裝權(quán)限管起來。第一步檢查“安裝未知應(yīng)用”的授權(quán)。目前主流安卓手機(jī)的系統(tǒng)設(shè)置里都有一個(gè)“特殊訪問權(quán)限”或“安裝未知應(yīng)用”的入口點(diǎn)進(jìn)去能看到哪些應(yīng)用具備直接安裝其他APK的資格。正常情況下手機(jī)自帶的應(yīng)用商店、瀏覽器、文件管理等工具可以保留這個(gè)權(quán)限其他無關(guān)應(yīng)用一律設(shè)為“不允許”。第二步動(dòng)手清理應(yīng)用來源。以后下載任何App優(yōu)先去手機(jī)品牌自帶的應(yīng)用商店或者軟件官網(wǎng)確認(rèn)后再裝。第三方下載站、網(wǎng)盤分享鏈接里的“原版安裝包”即使是同一個(gè)應(yīng)用名也可能和官方版本不是同一個(gè)簽名風(fēng)險(xiǎn)就在這里。第三步養(yǎng)成“只看權(quán)限再安裝”的習(xí)慣。安裝前彈出的權(quán)限列表里凡是涉及“短信”“通訊錄”“通話記錄”“位置信息”的就要多想一下這個(gè)功能它到底需不需要不需要就拒絕。這步做完你已經(jīng)堵住了絕大部分已知的傳播入口。3.2 第二件事給手機(jī)做一次“平賬式”安全體檢如果你懷疑木馬可能已經(jīng)進(jìn)來了那就按下面這套方法給手機(jī)做一次徹底排查。我用“平賬”這個(gè)詞意思是別只看表面裝了什么應(yīng)用要逐項(xiàng)核對(duì)權(quán)限、流量、電量和短信記錄看有沒有對(duì)不上的地方。排查順序我一般是這樣打開手機(jī)設(shè)置里的“應(yīng)用管理”按“最近安裝”排一下序逐一回憶每個(gè)應(yīng)用是怎么來的。存在來源不明、沒主動(dòng)安裝過卻出現(xiàn)在列表里的重點(diǎn)標(biāo)記。進(jìn)入“權(quán)限管理”找到“短信”相關(guān)權(quán)限查看所有擁有“讀取短信”或“發(fā)送短信”權(quán)限的應(yīng)用列表。只保留電話、短信等系統(tǒng)級(jí)應(yīng)用和正規(guī)銀行類應(yīng)用其余的全部撤銷。再進(jìn)“特殊訪問權(quán)限”重點(diǎn)看“輔助功能”“無障礙”“設(shè)備管理器”“修改系統(tǒng)設(shè)置”這幾項(xiàng)。被授權(quán)列表里出現(xiàn)非系統(tǒng)類工具尤其是不認(rèn)識(shí)的應(yīng)用立刻停用并卸載。打開“流量使用情況”和“耗電排行”對(duì)比過去一周的數(shù)據(jù)。如果一個(gè)幾乎不怎么使用的工具后臺(tái)流量每天幾十MB耗電比常用社交App還高那基本不用再猶豫了。試著給自己的另一個(gè)號(hào)碼或常用設(shè)備發(fā)一條驗(yàn)證碼短信觀察通知欄是否及時(shí)彈出再去短信列表確認(rèn)記錄是否留存。短信正常收到、通知正常彈出、記錄正常保留才算通過測(cè)試。如果排查發(fā)現(xiàn)可疑應(yīng)用處理步驟也有講究。先把手機(jī)斷開網(wǎng)絡(luò)防止木馬繼續(xù)上傳數(shù)據(jù)。然后能卸載的直接卸載卸載不掉的去“設(shè)備管理器”里解除激活狀態(tài)后再刪。頑固的、卸載時(shí)提示“您沒有權(quán)限”或反復(fù)復(fù)活的備份好個(gè)人重要資料后直接恢復(fù)出廠設(shè)置這是最徹底的手段。注意恢復(fù)出廠設(shè)置后先不要急著把整機(jī)備份恢復(fù)到新系統(tǒng)。歷史備份文件里可能連惡意應(yīng)用帶數(shù)據(jù)一起還原回來。我建議先恢復(fù)普通照片、聯(lián)系人和文檔不要一鍵恢復(fù)所有App。3.3 第三件事把“驗(yàn)證碼唯一依賴”改成“多道閘門”手機(jī)清理干凈了不夠還要防止同類事件再次發(fā)生。這里最關(guān)鍵的一步是改變你自己對(duì)驗(yàn)證碼的依賴方式建立多道防線。先說一個(gè)簡(jiǎn)單又實(shí)用的操作給SIM卡設(shè)置PIN碼。設(shè)置之后每次手機(jī)重啟或SIM卡被拔出重新插入時(shí)都需要輸入PIN碼才能使用這張卡。好處是即使手機(jī)丟失、被拆機(jī)取卡攻擊者也不能把卡插到另一臺(tái)設(shè)備上接收驗(yàn)證碼。我見過很多追不回來的盜刷案例就是攻擊者拿到手機(jī)卡后直接插進(jìn)備用機(jī)里收驗(yàn)證碼再一間一間地試主流平臺(tái)的驗(yàn)證碼登錄整個(gè)過程不超過半小時(shí)就能得手。設(shè)置方法是進(jìn)手機(jī)設(shè)置——安全——SIM卡鎖找到“啟用SIM卡PIN”并按提示設(shè)置。注意別把PIN和PUK搞混PIN輸錯(cuò)多次會(huì)把SIM卡鎖死解鎖需要聯(lián)系運(yùn)營(yíng)商獲取PUK碼。再說驗(yàn)證App。凡是支持更高安全級(jí)別的平臺(tái)盡量綁定專用的動(dòng)態(tài)口令碼或者安全密鑰不要只依賴短信驗(yàn)證碼。這個(gè)習(xí)慣的價(jià)值在于即使短信被攔截攻擊者拿不到動(dòng)態(tài)口令登錄依然無法完成。最后養(yǎng)成查看“賬號(hào)安全中心”的習(xí)慣。主流社交平臺(tái)、支付平臺(tái)的安全設(shè)置里都有“登錄設(shè)備管理”“授權(quán)應(yīng)用”一類的頁(yè)面每月動(dòng)手翻一遍看到陌生設(shè)備直接踢下線并改密碼。號(hào)碼、驗(yàn)證碼、登錄設(shè)備這三樣每一道都把它看住單靠攔截一條短信就能拿下你所有賬號(hào)的情況就會(huì)大大減少。4. 中招自測(cè)與問題排查實(shí)錄4.1 中招信號(hào)自查清單結(jié)合我手頭處理過的幾個(gè)案例和周邊朋友遇到的情況出現(xiàn)下面這些信號(hào)就該提高警惕了信號(hào)表現(xiàn)說明建議動(dòng)作驗(yàn)證碼短信經(jīng)常收不到或通知欄閃了一下就消失短信可能被惡意組件搶先攔截并刪除了通知立刻重啟手機(jī)排查短信權(quán)限列表短信列表里找不到曾經(jīng)收到過的驗(yàn)證碼記錄木馬可能在轉(zhuǎn)發(fā)后同步做了刪除操作去運(yùn)營(yíng)商官方渠道查短信詳單核對(duì)某個(gè)不常用應(yīng)用的流量和耗電長(zhǎng)期異常后臺(tái)可能在持續(xù)上傳數(shù)據(jù)或接收遠(yuǎn)程指令查看應(yīng)用詳情卸載并啟用安全軟件查殺權(quán)限列表里出現(xiàn)“短信輔助功能修改系統(tǒng)設(shè)置”的組合這是“短信攔截”木馬最典型的權(quán)限組合立即停用該應(yīng)用的輔助功能授權(quán)然后卸載安裝了一個(gè)應(yīng)用后有“開啟開發(fā)者選項(xiàng)”或“安裝其他應(yīng)用”的提示可能是為了后續(xù)靜默安裝其他惡意組件拒絕所有類似請(qǐng)求并關(guān)閉未知來源安裝權(quán)限4.2 我處理過的幾個(gè)典型場(chǎng)景分享兩個(gè)有代表性的排查過程給大家參考。場(chǎng)景一某開發(fā)者的小號(hào)手機(jī)突然出現(xiàn)驗(yàn)證碼丟失。排查時(shí)發(fā)現(xiàn)應(yīng)用商店列表里有一個(gè)叫“系統(tǒng)組件服務(wù)”的第三方應(yīng)用權(quán)限管理里同時(shí)擁有“讀取短信”和“發(fā)起網(wǎng)絡(luò)請(qǐng)求”。拆開它的安裝包后確認(rèn)了典型的短信劫持邏輯注冊(cè)短信廣播監(jiān)聽、后臺(tái)網(wǎng)絡(luò)上傳、收到指令后刪除記錄。清除方法就是卸載加恢復(fù)出廠設(shè)置再通知相關(guān)平臺(tái)重置了所有賬號(hào)的登錄狀態(tài)。場(chǎng)景二測(cè)試機(jī)上誤裝了一款“搶紅包助手”。表面上功能確實(shí)能運(yùn)行但幾分鐘內(nèi)它請(qǐng)求了“輔助功能”權(quán)限后臺(tái)還在不斷嘗試訪問收件箱。好在檢測(cè)及時(shí)發(fā)現(xiàn)直接封禁了包名。這里有個(gè)經(jīng)驗(yàn)測(cè)試機(jī)盡量用獨(dú)立的系統(tǒng)環(huán)境不要拿日常工作或生活的主力手機(jī)去安裝來路不明的工具。4.3 常見問題速查表問題可能原因處理辦法設(shè)置SIM卡PIN后手機(jī)重啟要求輸入輸錯(cuò)卡被鎖了怎么辦PIN碼多次輸入錯(cuò)誤觸發(fā)了PUK驗(yàn)證機(jī)制停止亂試撥打運(yùn)營(yíng)商客服憑服務(wù)密碼或?qū)嵜畔@取PUK碼卸載惡意App時(shí)提示“不允許卸載或已管理員激活”木馬注冊(cè)了設(shè)備管理器權(quán)限進(jìn)入“設(shè)置—安全—設(shè)備管理器”先反激活再卸載恢復(fù)出廠設(shè)置后陌生應(yīng)用又回來了備份還原時(shí)把惡意應(yīng)用一并恢復(fù)了不要整機(jī)恢復(fù)備份手動(dòng)恢復(fù)數(shù)據(jù)文件并重裝正規(guī)應(yīng)用開啟了“增強(qiáng)攔截”還是中招木馬在權(quán)限正常通過后攔截組件就已注冊(cè)安全軟件未必能實(shí)時(shí)攔截核心是把入口控制住不依賴單一安全策略驗(yàn)證碼被用了一次但手機(jī)里毫無記錄說明短信已經(jīng)被劫持并且刪除痕跡不是遺忘立刻修改重點(diǎn)平臺(tái)密碼解除陌生設(shè)備授權(quán)5. 一些長(zhǎng)期安全習(xí)慣算是過來人的心里話做安全排查做久了我最大的感受是大多數(shù)人的隱私泄露不是被什么頂級(jí)黑客盯上而是栽在幾個(gè)隨手就做的動(dòng)作上。比如某個(gè)“朋友分享”的App、一條“官方系統(tǒng)”的釣魚鏈接、一次無所謂的權(quán)限允許。所謂的攻防自學(xué)其實(shí)第一步學(xué)的不是怎么攻擊而是怎么識(shí)別這些日常風(fēng)險(xiǎn)。我自己用手機(jī)的習(xí)慣可以給大家一個(gè)參考手機(jī)上所有App的權(quán)限每個(gè)月翻一遍重點(diǎn)看短信、通訊錄、位置這三個(gè)敏感權(quán)限的變化?!鞍惭b未知應(yīng)用”的授權(quán)列表只保留手機(jī)應(yīng)用商店和文件管理器其余一律關(guān)閉。所有驗(yàn)證碼短信優(yōu)先用專門的密碼管理器或安全郵箱接收重要的平臺(tái)開二次驗(yàn)證。陌生來源的“破解版”“去廣告版”App再有用也不用主力機(jī)裝真要用就拿到備用機(jī)或虛擬機(jī)里跑一遍。包括我給新手做安全自學(xué)的建議也是這樣先把防守做扎實(shí)再試著從原理層面去理解攻擊者是怎么思考的。把“為什么這個(gè)應(yīng)用要短信權(quán)限”“為什么這個(gè)彈窗要你開輔助功能”這些問題搞明白了比安裝任何一個(gè)安全軟件都管用。要知道追回一個(gè)被偷綁、被改綁的賬號(hào)實(shí)際操作起來遠(yuǎn)比想象中麻煩所以防線盡量往前放別等出了事了再去補(bǔ)救。