手機鎖屏了App能不能竊聽?有人親自試了試
最近這幾天關於通過手機監聽用戶敏感信息,通過NLP處理傳到雲端做大數據分析的事兒吵的沸沸揚揚的。搞技術的人忙著撕逼能不能監聽、搞PR的人忙著各種自證、媒體記者忙著找專家追熱、互聯網網民對於隱私,除了慌張顯然也乾不了什麼。我們不一樣,本著較真且不作惡的態度,我們的安卓小伙子寫了一個不痛不癢的demo。
觀看視頻前我想做如下重要聲明:
本視頻僅用於技術研究的測試用途,不會考慮使用在其它路徑,惡意有心人不要打擾,別來試探我們的底線;
本視頻所演示內容,是基於安卓環境下的測試演示,與安卓系統有關,但與手機品牌無關;
本視頻所演示內容,只是強調從技術角度是可以實現後台監聽,然後再用於大數據分析的,但並不是說某些廠商乾了這些事;
技術能不能實現是一回事兒,別人做沒做是另外一件事兒,有心人不要惡意混攪。
視頻觀看地址:點此。
視頻看完了,筆者對其中可能引起的爭議做了一個簡單解答。
關於演示內容
由於時間關係,我只做了後台無感知監聽,語音轉文字傳到服務器,做了一些基礎的nlp處理,懂技術的人都了解,無感知拿數據是最麻煩的環節,而後面基於nlp分詞,提取特徵關鍵詞,再做大數據推薦,其實就沒啥難度了,都是時間問題。
這個能證明某些app偷聽嗎?
對於是否偷聽這個事情我不評價,這個需要相關部門做取證,做技術分析才能得出結論。錄製視頻的目的是想回應某些自稱目前的技術無法實現用戶手機鎖屏情況下,進行監聽、上傳、分析、大數據營銷這樣的能力的觀點。
不好意思,我覺得這個觀點不服。
安卓上面的門檻是怎樣的?
網絡尖刀人工智能實驗室不是研發出身,我們是安全出身,所以一定是按照黑客的習慣,用惡意軟件、惡意木馬的思路來實現這個需求,如視頻所示,我們只在用戶界面獲取了一個麥克風錄音權限,所以說在安卓上的門檻並不是很高,這個思路就是典型的。
持續這樣監聽對電池電量損耗很高,怎麼可能不會被發現?
如果是我來寫代碼,我會把需要觸發的詞做個庫留在App上,用戶講話內容觸發特定的詞,則開始喚醒這個應用開始監聽及分析,這樣就可以降低能耗到無感知。
安卓上退掉這個app就可以抑制我監聽了?
首先大部分用戶都是按home鍵去返回菜單和切換App,進程一直都是掛在後台進程上的,這樣不是殺掉進程,即便是你把我的App退了,那我在給你們說一個組合攻擊的方法。
用戶在手機後台關掉了A應用,但B應用仍在後台運行,A應用註冊了一個服務對外暴露出去,B應用根據它的服務名仍然可以把A喚醒,這樣就不怕服務因人工殺掉(編註:從手機後台徹底關閉)導致無法監聽了。
另外,很多手機廠商會對一些大型互聯網廠商提供白名單,白名單廠商的app不需要授權,就可以獲取一定的權限,這個是殺不掉的。
佔用音頻鎖不釋放,被打斷是不是就不行了?
某些研發同學提出這個質疑的時候,我表示是懵逼的,哥們代碼可能寫的不行啊,首先我希望你明白一個這樣的思路,監聽的本質並不一定非得去對某業務進行持續佔有和使用,監聽的本質是竊取啊。
當用戶打電話的時候,本質上雖然在使用麥克風,我再調取一個麥克風就會有可能被佔用,但是電話錄音是如何做的呢?
copy流啊,我只是在copy你麥克風的流,這樣就可以監聽了啊,錄音功能的App使用麥克風不允許佔用,要打斷前一個音頻,本意是擔心串流,所以寫代碼的時候判斷有沒有人佔用,如果有,就提示另外一個要斷開,但不代表這樣就沒辦法實現了。
安卓沒問題,iOS系統也可以?
安卓門檻很低,但是iOS確實還是要有技術水平的,避免有些人以此作惡,我不講那麼細緻,我只提一個思路,做一些特殊的處理想辦法沙箱逃逸,開發兩個App植入在目標手機裡,用A去調用B的錄音權限,然後在後台監聽,這樣B就可以欺騙系統,實際是在前台監聽,所以就沒有顯示被“錄音”。
至於怎麼欺騙過審核?蘋果對此有無白名單?我不知道,我不說,我不會,我只是個單純的技術研究愛好者,全團隊都是。
錄音解決了,你怎麼在後台防止被打斷呢?
某些人說iOS下,你後台怎麼運行?避免有人可疑作惡,我只能說多去想一下組合拳思路,至於iOS的不死進程,可以查看一下“keepAliveTimeout handler”的相關內容。
相比安卓,iOS無感知門檻真的很高,這個我認可的,但是不是不知道,要看你付出的成本到底是怎樣的。
和鎖屏叫Siri一樣嗎?
hey Siri是蘋果自己的底層應用,寫在系統裡的,給足了權限,但是iOS系統上面的應用,需要使用權限的時候,蘋果控制的還是很嚴格的。
寫在最後
再次強調,技術的本身從來沒有問題,有問題的是人和社會,希望大家抱著學習的態度去研究技術,而不是將技術用於惡意的用途,那些別有用心沒有道德底線的人,遲早付出代價的。