IEEE x ATEC科技思享會是由專業(yè)技術(shù)學(xué)會IEEE與前沿科技探索社區(qū)ATEC聯(lián)合主辦的技術(shù)沙龍。邀請行業(yè)專家學(xué)者分享前沿探索和技術(shù)實踐,助力數(shù)字化發(fā)展。
在萬物互聯(lián)的大數(shù)據(jù)時代,數(shù)據(jù)鏈接了我們生活的方方面面。一方面,大數(shù)據(jù)極大便利了我們的工作與生活;另一方面,數(shù)據(jù)的海量化也增加了諸多隱私信息泄露的風(fēng)險與挑戰(zhàn)。本期科技思享會邀請到了四位重磅嘉賓,共同圍繞“隱私保護的前沿技術(shù)及應(yīng)用”這個主題,分別從機器學(xué)習(xí)算法、通訊協(xié)議、APP及操作系統(tǒng)等不同層面,就隱私安全風(fēng)險及技術(shù)創(chuàng)新應(yīng)用展開討論。
以下是中國科學(xué)院信息工程研究所陳愷研究員的演講,《移動App與用戶隱私安全》。
《移動App與用戶隱私安全》
很高興跟大家共同交流,我們今天講的是《移動APP和用戶隱私安全》。
新型惡意代碼及攻擊
現(xiàn)在的手機跟以前不太一樣,十多年前的手機不是智能機,以前的手機上沒有太多的傳感器,而現(xiàn)在的手機上有很多傳感器,比如光線傳感器、距離傳感器、重力傳感器、加速度傳感器、磁場傳感器等等一系列的傳感器,還有像陀螺儀、GPS、指紋傳感器、霍爾感應(yīng)器、氣壓傳感器、以及紫外線傳感器等等。而用這些傳感器,就有可能借助一些人工智能的技術(shù)把用戶的行為習(xí)慣收集起來。
2019年劍橋大學(xué)有一個研究:他利用內(nèi)置麥克風(fēng)去錄制音頻,根據(jù)手指敲擊屏幕的聲音,竊取手機的密碼。這看起來很不可思議,用戶敲擊手機, APP只有一個麥克風(fēng)的權(quán)限,怎么能夠竊聽密碼呢?他們利用這個內(nèi)置麥克風(fēng),最后達到的效果是可以在嘗試10次之后,準確恢復(fù)54%的四位密碼, 20次嘗試后準確率可以達到61%,很高的準確率。
這是什么原理呢?
我們可以看到,手機在屏幕上敲密碼時,在手機上不同的位置,敲擊動作會產(chǎn)生不同的聲波,手機利用了上下兩個脈沖去接收用戶手機敲的震動聲波,由于上下共有兩個麥克風(fēng),所以手機利用不同的聲音波形還是能夠比較準確的知道用戶敲的是哪一個字母。通過一些學(xué)習(xí)技術(shù),大概能猜出來用戶敲擊了鍵盤的什么位置,從而把字母和位置再關(guān)聯(lián)起來,就知道用戶敲的到底是什么字母。當然這個提前可以訓(xùn)練一下。
怎么訓(xùn)練呢?
就是手機在屏幕上可以顯示出不同的,比如說九鍵的數(shù)字鍵或者是字母鍵盤的鍵,看看不同的鍵敲下去以后,它的波形是什么樣的,從而能夠訓(xùn)練出一個model。后來劍橋的研究人員找了不同的手機、平板電腦,在噪音環(huán)境(包括公共休息室、閱覽室和圖書館)進行了測試,最后發(fā)現(xiàn)是很有效的。他們做了具體的測試,分很多組測試了數(shù)字、四位數(shù)的密碼、隨機的英文字母,在最不理想的情況下,模型正確識別單個數(shù)字的準確率是隨機猜測的3倍,而最佳情況下的單個數(shù)字識別率是 100%。所以他們還是能夠比較準確的識別出用戶敲擊了鍵盤的哪個位置。這個研究就證明了,在實驗環(huán)境下,惡意APP有機會獲得超出權(quán)限的信息。
但這并不是不可防御的。怎么去防御呢?
有一種防御方法就是降低敲擊的聲音。比如通過給手機貼膜,像敲到膜上很可能震動就會小一些。所以這個時候它可能沒辦法區(qū)分用戶敲擊了屏幕的不同鍵,這種情況下就能把用戶保護起來了。
但我們?nèi)绾握业竭@些存在惡意行為的APP呢?這是我們后面準備研究的內(nèi)容。
除此之外,造成信息泄露的攻擊行為還有很多。比如通過麥克風(fēng)、揚聲器能去做用戶行為的一些識別,比如說穿越墻壁、門和窗子,監(jiān)測多個用戶的位置和身體活動,還可以推斷出線性和有節(jié)奏的活動等等。
技術(shù)的發(fā)展,使得用戶隱私泄露的風(fēng)險變大了。
Observation:a unique business model
后來我們想了一些辦法去抓這類惡意的行為或者有這種潛在威脅的行為。直接去找是挺難的,因為攻擊者往往會隱藏他的行為。
我們可以利用這種方法:某些惡意或有潛在威脅的攻擊方式,是捆綁在一個正常APP上的,就像攻擊者在一個正常的APP上面放了一小塊惡意的程。這個時候我們就可以在海量的程序之間兩兩對比,找到看起來相似的程序,把它的差異拿出來。
比如上圖中這個綠色的小鳥找到了,我們就把兩個程序的代碼進行比對,找到這個差異的部分,這個差異的部分很可能就是惡意的部分。
另外我們可以把看起來不太一樣的軟件放在一起。如果這個不太一樣的軟件里面有一些共有的代碼,如果又不是一些library code的話,那很可能是攻擊者散布在各個軟件里面的攻擊代碼。這個時候我們就能把這個代碼找到了,很可能就是一些潛在有危險的代碼。
在海量軟件里面去把軟件兩兩相比是一件很麻煩的事情。那怎么辦呢?
我們就把軟件界面的調(diào)用圖的關(guān)系理出來。比如說一個憤怒的小鳥,就是這樣的一個調(diào)用的圖。把第一個界面和后面界面的關(guān)系理出來。
我們就去比較這些圖。每一個程序看起來相似的程序里面,這兩個圖應(yīng)該是類似的、甚至是一樣的,所以我們就把它找出來。因為圖和圖的比較是很麻煩也比較費力氣的一件事,我們得把圖的比較變成一個三維的結(jié)構(gòu)體。比如說把這個圖每一個節(jié)點固定下來,固定下來之后,這樣我們就把這個看起來很隨意的一張圖變成一個能夠固定下來的一張圖。不管誰畫出來,這張圖都是一樣的。然后這個圖我們最后用一個點,也就是這個圖的一個質(zhì)心去表示這張圖。這樣我們就比較這個圖的質(zhì)心,這樣就把原來的一個圖的比較變成一個點的比較,效率大大提高了。具體方法我們暫且先不細說了,感興趣的同學(xué)可以來看看我們的論文。
Measurement And Approach
所以我們后來也利用這個方式在官方市場上去找了一百多萬的APP互相比較,在GooglePlay上包括40多萬的APP,還有其他的中國市場。結(jié)果發(fā)現(xiàn)像Google這樣的市場,有7%的比例很可能是存在有潛在威脅代碼,并且它能找到的潛在威脅代碼比其他的惡意軟件檢測工具找到的還要多。這是因為它能夠去找未知的這種方式。另外一個特點就是它的性能很高,它分析一個程序只要不到10秒鐘就能分析成功。
另外我們還用類似的技術(shù)去找蘋果其中的一些潛在的惡意的部分,我們就利用了一個原理,什么原理呢?就是我們假設(shè)攻擊者是貪心的,他把自己的惡意部分不光放在安卓里面,也會放到蘋果里面。這個時候我們就做了一個跨平臺的映射,把安卓的惡意代碼給它映射到蘋果。在蘋果的程序里面去找這個惡意的部分。
當然這個聽起來好像挺難做的,做起來也確實不太容易,為什么呢?因為大家都覺得蘋果手機很安全,而且蘋果里面做了很多的隱私保護,上面也沒有殺毒軟件,所以在蘋果里面找惡意程序并不好找。后來我們就利用這個方法去找蘋果里面的惡意部分。簡單來說就是把剛剛安卓找到的惡意部分去做了跨平臺的映射,映射到蘋果,再在行為的層面上去做一個對應(yīng)關(guān)系去把它找出來。
其實安卓的部分和蘋果的部分之間,在功能上還是很相似的,雖然在語言上、結(jié)構(gòu)上很可能都不太一樣。比如說安卓是Java寫的,蘋果是用C代碼去寫,有很大的差異。但它有行為的相似性,所以還是能夠抓到的。最后我們在蘋果的官方市場上找了10萬個APP去分析,然后谷歌里面也是找了40萬個APP,我們找到了蘋果的官方市場上大概有2.94%的比例含有對應(yīng)的安卓的那一部分的潛在惡意行為。在Jailbreak這樣的市場上,也就是越獄的市場上,這個比例更高一些,達到5%到10%。所以在越獄市場上有更多的潛在有威脅的行為。
講到隱私,某些APP通過了解用戶的行為記錄,推送跟用戶隱私密切相關(guān)的廣告。如果要去關(guān)閉的話,往往要經(jīng)過很多的步驟,我們把這類測試設(shè)置稱為隱私設(shè)置。
但這類設(shè)置很少有人去研究,為什么呢?因為傳統(tǒng)的這種程序的分析方法很難去做這方面的研究,它需要懂一點語義信息,比如說什么叫做隱私設(shè)置。怎么能精準找到隱私設(shè)置呢?
我們后來為了解決這個問題,去做了一個跟用戶有關(guān)的實驗:做了一個設(shè)備,列舉了很多的settings,然后讓用戶去標記出來一些對他來說比較隱私的設(shè)置。我們把這個設(shè)置分成幾個層次。這個settings里面有的用戶覺得沒關(guān)系,有的用戶可能覺得非常的緊張、非常的難受。所以我們把它做一些分類,分成五檔,這樣就能夠讓用戶標記好了。我們拿它作為一個訓(xùn)練的model,這樣對于一個setting,分析這個setting的語義信息,我們就知道這個setting是不是一個跟用戶隱私相關(guān)的setting。
第二,我們還得去判斷這個setting藏得深不深。如果藏得不深,用戶一眼就能看到。我們?nèi)ヅ袛嗨氐蒙畈簧睢K晕覀円彩亲隽艘粋€這樣的User Study,讓用戶去找這個setting。我們看看一些settings好不好找,同樣分成五類,從非常好找一直到非常難找,總共分成了五類。然后讓用戶去寫出來一些原因,為什么很難找?盡管某些知名APP的隱私設(shè)置體驗還是很好的,但我們做實驗的時候仍發(fā)現(xiàn)某些規(guī)范性差的APP隱私設(shè)置,我們稱為“hidden”,就是比較難找到的,47.12%的比例。用戶為什么會找不到這個隱私設(shè)置,主要包括跟用戶常用的習(xí)慣不太一樣,。用戶從開始界面到最后設(shè)置的位置,這個點擊的路徑,我們稱為UI- path,如果過長,用戶就會找不到。我們后來就做了一個工具,把用戶覺得難找的東西找出來。先找到這些settings,確認它是一個privacy setting,再確認它是一個hidden privacy setting,然后找到了各種features。我們找到了六個原因,包括14個features,這里面有一個比較難的是找UI-path,這個單純分析code很難分析出來。
比如說分析code里面,像這個很簡單的界面,它有三個layers,有settings的layer,有箭頭的layer,還有背景的layer。其實很簡單,但是它分成三個layers,分析code就麻煩。但是如果去分析語義是比較簡單的。比如用戶點完一個按鈕,點完下一個界面,出來的界面里面的元素和用戶點擊的這個按鈕應(yīng)該是有語義上的關(guān)聯(lián)的。通過這種關(guān)聯(lián),我們就找到大概這個設(shè)置是怎么樣的,即UI-path是什么樣的一個path。當然有時用戶會點擊一些圖標,比如說這個齒輪,我們就得解析這個齒輪是什么語義。這時候我們用了Google的一個Text,就可以猜到它可能是一個什么語義。比如說這個齒輪,Google對這個齒輪的解析就是setting gear,所以一下子就跟setting有關(guān),就拿到了這個圖標的語義信息。這個工序是比較準確的,達到93.5%的準確性。分析一個程序大概不到10分鐘。
通過具體的分析結(jié)果。我們可以看到,隨著帶有隱私安全性攻擊的程序下載量增加,這個privacy setting的比例也越來越多。很多的settings,它是by default的、可能泄露用戶隱私,尤其是跟用戶社交行為相關(guān)的這些settings。
“智能化”聊天機器人
除了這種APP以外,現(xiàn)在大家還常用一種東西叫做“個人助手”,個人語音助手比如說智能音箱,我們可以用智能音箱、用助手去做什么事兒呢?可以聽歌,可以問它天氣。有時候它會有第三方的skills,第三方的skills可以做什么呢?它可以去給我們買東西、可以做很多敏感的操作。所以我們就去看這個skills,看它會不會有一些敏感的行為。我們看了這些skills以后發(fā)現(xiàn),曾經(jīng)有研究發(fā)現(xiàn)它跟名稱相關(guān),它可以去調(diào)用一些跟正常的skills的名稱一樣的skills或者發(fā)音相似的skills。因為skill的調(diào)用,例如我們調(diào)用工商銀行,我們說“你能打開工商銀行嗎”,但事實上如果有一個惡意的skill,它叫“工商銀行嗎”,那你打開的是什么呢?并不是工商銀行,而是這個惡意的skill“工商銀行嗎”,這個skill就會泄露你重要的行為了。
這個skill的分析和傳統(tǒng)APP的分析不太一樣。比如說安裝時,傳統(tǒng)的APP是裝到手機上的,它有代碼在手機上,你可以對代碼做分析。但是skill它是通過一種調(diào)用的方式去調(diào)用它,它的代碼并不在你的智能音箱上,它只是一個服務(wù),所以對它進行分析并不太容易。另外一個難點就是這一類skills的分析需要使用自然語言,你得不停的跟它對話。它是一個全黑盒的,你用自然語言能夠讓它理解、你還得理解它的自然語言,這樣對它做分析。所以一直沒有研究對這個skill的行為進行分析。
我們嘗試去看看這個skill到底會不會做一些有害用戶的事情。操作的具體方法是:首先你需要跟skill進行對話,你要有第一句話,我們把第一句話稱為“Utterances”,之后得跟它交互,交互就得理解它問的問題以及回答它問的問題,不停的交互才能把它的行為枚舉出來。Utterances怎么來呢?我們就想到用戶的第一句話是怎么跟skill交互的。用戶交互的時候通常會問“Help”,或者找到這個skill的官網(wǎng),看看這個skill的范例,這個例子里面是怎么使用。所以我們也找到skill的官網(wǎng),從官網(wǎng)里面去看它大概是怎么使用,然后通過自然語言理解技術(shù),把skill的使用方法拿出來,所以能夠啟動調(diào)用這個skill的工作、跟它對話。
之后,我們就要理解并回答它的問題。我們把這個問題分成5種類型,包括Yes/No問題、選擇題、WH問題,還有Instruction問題和Mix問題。Mix就是把這幾類混合起來,然后針對每種類型分別處理,具體做的過程就不細說了。簡單來說就是問一個問題,下面可能有若干個答案,每個答案下面又有若干的問題,所以它會形成一種樹狀結(jié)構(gòu)。我們最后找到了亞馬遜上的28000多個skills,還有谷歌上的1000多個skills,分析了超過5200個小時,其中有9000多個skills的名稱不滿足亞馬遜的要求,有100多個skills和開發(fā)者的skills相互沖突,換句話說它可能會問到一些敏感的問題。還有68個skills也很有趣,它會悄悄的錄音。所謂的悄悄錄音是指當用戶跟它說“stop”時,這個skills并不stop,它沒有停下來,它會把你交互的過程發(fā)到遠端的服務(wù)器上去。其中有一些skills很奇怪,比如說你跟它說停止的時候,它會說 “OK” 或者 “cannot find this skill”,但是這個skill仍然是在工作,所以這個時候就在悄悄的錄音了。
Skill的審核機制探索
后來我們就想,這個skills既然這么有害,它怎么會通過它的審核系統(tǒng)放到市場上呢?所以我們就在看這個skills的審核系統(tǒng)到底是什么樣的評審系統(tǒng)。我們?nèi)シ治隽藖嗰R遜和谷歌。我們首先想確定這個skills它到底是誰在審核呢?是一個用戶還是一個機器人在審核呢?如果是用戶人在審核,那可能會好一點,人看的會細一點。如果是個機器的,它很可能會有一些錯誤,或者是人和機器結(jié)合起來再審核嗎?我們就在做這件事情——怎么去區(qū)分人和機器呢?這個用到了圖靈測試。
我們問了對方一個謎語,我們編了一個skill,skill里面藏了一個謎語,問問對方,看他審核時,到底能不能回答出來。我們猜如果是人的話,猜謎語應(yīng)該能猜出來。機器的話,猜謎語很可能猜不出來,這樣就能夠做區(qū)分了。但是等我們真正做實驗的時候,發(fā)現(xiàn)人有時候也猜不出謎語,這個謎語有時候太難了。那怎么辦呢?這時我們就發(fā)現(xiàn)了人和機器還是不太一樣。雖然人有時候猜錯答案,但答案多少比較相近。比如說有一個問題,他說“I have wings, I am able to fly, I’m not a bird yet”,這個答案是Airplane,但是人會猜成Butterfly,機器可能會猜成Milk,顯然Butterfly和最后的答案是比較接近的。
所以我們就分析這個答案的語義,當然是用到一些知識庫以及和謎面之間的關(guān)聯(lián)度,最后把它猜出來,可能是一個人。
通過這種方式,我們發(fā)現(xiàn)亞馬遜里面大概有1.9%的比例,是用人在做的。谷歌里面大概有55%的比例是人在做,剩下來的都是機器。換句話說,亞馬遜里面有接近于98%的比例,測試的過程都是機器在測而不是人。我們甚至能夠分析這些機器和人的工作時間是不是在周末。然后我們也能看到機器的Test是怎么去審核一個skill呢?
比如說這個樹的每一個節(jié)點是一個問題,就像我們前面畫的,不同的問題下面有答案,每個答案又對著問題。就是亞馬遜審核skill的一個過程,它審核對于第一層的問題,每個問題都會去審核。至于第二層到第三層……到后面層,它每一層只審核一個問題,除了最后一層,最后一層是審核一部分的問題,它有自己的規(guī)律,谷歌也有規(guī)律。谷歌的規(guī)律是它只審核這一個層次的最后一個問題。所以就是這樣,它并沒有全部審核很多skills里面的問題,這也就造成了一部分的問題,存在隱私上面可能會泄露或者問了一些不好的問題,但是仍然能夠通過審核在市場上架,就是這個原因。
總結(jié)
最后總結(jié)一下,現(xiàn)在某些含有隱私安全攻擊的APP在收集用戶的隱私,但是也有不同的方法可以去查看包括隱私設(shè)置藏的比較深的這種方式,我們也正在探索怎么去查看。另外就是智能音箱,有些智能音箱會有skill這類行為,這時候就需要對這個skill的中間的語言進行語義分析,才能夠找到這些敏感的行為。另外就是這個里面我們用到了很多的AI方面的技術(shù),AI去賦能傳統(tǒng)的安全、去做智能化的惡意代碼的檢測,而這些事情可能是一些傳統(tǒng)方式比較難做到的一些事情,包括語義的分析。當然在其他地方,包括黑客的知識、經(jīng)驗的傳承,智能化的漏洞的發(fā)現(xiàn)利用等等。另一方面,人工智能本身現(xiàn)在也存在一些安全的問題,像對抗樣本、神經(jīng)網(wǎng)絡(luò)后門、還有模型隱私問題,這也得到了大家的關(guān)注。
-
傳感器
+關(guān)注
關(guān)注
2551文章
51125瀏覽量
753760 -
APP
+關(guān)注
關(guān)注
33文章
1574瀏覽量
72506 -
隱私
+關(guān)注
關(guān)注
0文章
27瀏覽量
10169
原文標題:【中科院陳愷分享】移動App與用戶隱私安全
文章出處:【微信號:IEEE_China,微信公眾號:IEEE電氣電子工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論