OPPO安全:全心分享,滿腔情懷
摘要: OPPO安全的開放與分享理念,不但引領(lǐng)安全行業(yè)一部分領(lǐng)域快步奔跑,同時也促進(jìn)自身不斷攀登。
街頭算命,大概許多人不會陌生。實際上,他們大多通過一些小伎倆,在不知不覺中獲知了你的一些基本信息,所以許多方面讓你覺得很準(zhǔn)。
但在不遠(yuǎn)的未來,某些“算命大師”完全可以在人群中看了你一眼,就能對你知根知底。這并非是科幻想象,而是已經(jīng)存在、并極有可能繼續(xù)深入研發(fā)的黑產(chǎn)技術(shù)。
隱私泄露+大數(shù)據(jù)+人臉識別+智能眼鏡+高速網(wǎng)絡(luò)……只需要充分將這些技術(shù)整合起來,“算命大師”戴上智能人臉識別眼鏡,通過實時同步的黑產(chǎn)大數(shù)據(jù),即可在人群中識別出你的面部信息,繼而你的姓名、身份證號、手機(jī)號碼、家庭住址、工作信息、社交關(guān)系……都將一一顯示在鏡片之上。
早在2012年上映的電影《碟中諜4》中,就已經(jīng)向我們演示過這個場景。
《碟中諜4》電影截圖
細(xì)思極恐是不是?確實,在大數(shù)據(jù)時代,在人手都有一部手機(jī)的時代,每一個人的隱私信息,都能成為被黑灰產(chǎn)挖掘出金礦的數(shù)據(jù)。
眼下隱私泄露問題已然泛濫成災(zāi),騷擾電話、垃圾短信無處不在。沒人能夠預(yù)料到未來隱私泄露會演變到何等惡劣的地步,故而保護(hù)隱私成為國家、社會、互聯(lián)網(wǎng)勢在必行之事,更是成為安全行業(yè)大有可為之事。
如今,國家已然出臺針對網(wǎng)絡(luò)安全與個人信息保護(hù)的相關(guān)法律法規(guī),互聯(lián)網(wǎng)包括安全行業(yè)也在積極響應(yīng)國家安全建設(shè)大業(yè)。其中,OPPO安全即是其中典范之一。

11月29日,OPPO技術(shù)開放日第六期活動在成都1906創(chuàng)意工廠拉開序幕。OPPO技術(shù)開放日是OPPO開放平臺打造的技術(shù)類品牌活動,旨在為廣大開發(fā)者提供一個專業(yè)分享和開放交流的空間。
OPPO技術(shù)開放日活動已經(jīng)進(jìn)行到了第六期,本期以“應(yīng)用與數(shù)據(jù)安全防護(hù)”為主題,圍繞云密碼本、密鑰白盒、惡意行為檢測能力、動態(tài)檢測方法、SDK安全檢測、應(yīng)用安全等OPPO安全的多項前沿技術(shù)能力、安全防護(hù)經(jīng)驗進(jìn)行分享,增加OPPO與安全從業(yè)者、高校圈的互動交流,共同打造OPPO安全生態(tài)體系,并致力于提升整個行業(yè)的安全水位。
由此可見,OPPO安全能力相當(dāng)深厚,自無法一一詳細(xì)介紹。故我們擇取OPPO安全新技術(shù)“云密碼本”以及應(yīng)用安全極為重要的技術(shù)“SDK安全檢測”進(jìn)行深入淺出的解讀。
密碼無處不在,萬物互聯(lián)的時代,誰手頭沒有十個八個密碼?但是,我們放在電腦上、手機(jī)端的密碼真的安全嗎?
你想象一下,你在設(shè)備上輸入密碼登錄帳號的時候,手機(jī)有沒有木馬記錄你的密碼,數(shù)據(jù)傳輸過程中有沒有被黑客攔截數(shù)據(jù)進(jìn)而解密,你的密碼和數(shù)據(jù)在服務(wù)端會不會被惡意攻擊者滲透攻擊、數(shù)據(jù)提取,甚至業(yè)務(wù)托管方有沒有內(nèi)鬼竊取解密你的帳號密碼和數(shù)據(jù)?
當(dāng)然,隨著技術(shù)的提升,通過通信信道、服務(wù)器端竊取解密數(shù)據(jù),已經(jīng)變得比較困難。但安全緯度往往是多方面的,如果能在用戶端也構(gòu)建一套有效的安全圍欄,會不會讓安全水位更上一層呢?OPPO安全團(tuán)隊認(rèn)真思考過這個問題,并且也付出了行之有效的努力,研發(fā)出了“云密碼本”技術(shù)和產(chǎn)品。
OPPO云密碼本有什么用呢?從安全角度來看,每一個APP代表不同的業(yè)務(wù),每個業(yè)務(wù)有不同的安全屬性,我們對不同安全應(yīng)用的APP通常會設(shè)置不同的密碼。因此,密碼會越來越多,時間久了非常容易遺忘,所以O(shè)PPO云密碼本技術(shù)就是專門解決用戶密碼維護(hù)的難題。
密碼可以說是用戶的核心數(shù)據(jù)資產(chǎn),安全自然要擺在第一位,那么OPPO云密碼本如何保障用戶密碼安全呢?
整體而言,OPPO云密碼本使用了端云協(xié)同安全密鑰技術(shù)實現(xiàn)安全能力,實現(xiàn)了托管方也無法解密隱私安全數(shù)據(jù),讓用戶隱私真正屬于用戶自己。
據(jù)了解,端云協(xié)同安全密鑰是專門解決用戶數(shù)據(jù)上云,用戶數(shù)據(jù)跨平臺同步安全保護(hù)而產(chǎn)生、研發(fā)的。基本思路是通過安全的密鑰管理體系,進(jìn)而實現(xiàn)保護(hù)用戶數(shù)據(jù)的目的。
OPPO在設(shè)計上重點考慮了四個方面:
一、能夠安全地跨平臺同步,支持跨平臺、多設(shè)備、自動地進(jìn)行密鑰同步;
二、每一個應(yīng)用具備完全相互隔離且獨(dú)立的密鑰體系,它可以根據(jù)應(yīng)用的分組,開發(fā)者的分組,開發(fā)者的組織機(jī)構(gòu)來使用這個密鑰;
三、一定要實現(xiàn)OPPO無法解密,即除了用戶自己以外的任何人,都沒有辦法解密用戶的數(shù)據(jù);
四、實現(xiàn)攻擊者無法窺探,即采用基于硬件安全芯片或硬件加密機(jī)的安全技術(shù),極大提升攻擊成本,直至放棄攻擊。
其中,整個密鑰管理體系在端側(cè)和云側(cè)可能面臨的攻擊形態(tài)主要有以下四種:即移動端端側(cè)暴力破解、云側(cè)暴力破解、側(cè)信道分析、滲透攻擊等。
一、移動端端側(cè)暴力破解。攻擊者可能在移動端利用惡意軟件進(jìn)行滲透攻擊,甚至暴力嘗試破解用戶安全密碼。但移動端本地沒有密文數(shù)據(jù),用戶數(shù)據(jù)從服務(wù)端加密機(jī)集群拉取到本地的TEE環(huán)境中處理,得到TEE環(huán)境的保護(hù)。所以本地滲透攻擊轉(zhuǎn)而需要嘗試滲透TEE環(huán)境,而TEE環(huán)境是足夠安全的,難以攻擊。
二、云側(cè)暴力破解。OPPO安全硬件加密機(jī)集群,對用戶的錯誤次數(shù)進(jìn)行檢測,超過限制次數(shù)以后,嘗試的密碼還是出錯,密鑰會被立刻刪除,用戶只能重置賬戶。這種機(jī)制雖然嚴(yán)苛,但這是從用戶數(shù)據(jù)安全角度上防止暴力破解。
三、中間人攻擊或者側(cè)信道分析。OPPO安全采用了具備完全前向安全性的雙層加密通信信道,建立移動端TEE和加密機(jī)集群的E2E安全信道,數(shù)據(jù)傳輸?shù)玫阶銐虻陌踩雷o(hù)。
四、滲透攻擊。OPPO安全綜合采用了TEE、加密機(jī)集群等防護(hù)技術(shù),硬件安全芯片或硬件加密機(jī)的安全技術(shù)的加入,極大的提升攻擊成本。
知攻而后知防。密鑰全生命周期安全,不同的教科書有不同的定義,但是基本是類似生成、分發(fā)、使用、撤消、歸檔、備份、更新、存儲等。
OPPO安全為了達(dá)成全生命周期的安全,使用了諸多安全工具,如計算層面端側(cè)使用TEE;云端使用硬件加密機(jī)機(jī)群;認(rèn)證方面使用了很多因子保護(hù),包括帳號密碼、安全密碼、短信安全碼、可信設(shè)備等。
如何驗證可信設(shè)備呢?則是通過業(yè)界標(biāo)準(zhǔn)的PKI/x509數(shù)字證書機(jī)制,構(gòu)建了一整套信任體系。
密鑰體系最基礎(chǔ)的就是用戶所掌控的因子,比如安全碼、安全手機(jī)、安全密碼,其他任何人都不知道。由用戶側(cè)掌控的這些因子派生出主密鑰(MK),MK臨時使用,需要進(jìn)行身份驗證,驗證之后MK就會被銷毀掉,MK來保護(hù)CMK,CMK保護(hù)WK,這些密鑰構(gòu)建了符合密碼安全業(yè)界標(biāo)準(zhǔn)化的多層密鑰體系。
安全密鑰通過設(shè)備信任鏈來管理所有參與設(shè)備。只有加入到設(shè)備信任鏈里的設(shè)備,才能夠參與到密鑰管理協(xié)議里來。根據(jù)規(guī)則,要求在Normal World中,由用戶輸入帳號密碼、云服務(wù)安全密碼、安全手機(jī)短信驗證碼等因子,在Secure World中,通過安全認(rèn)證協(xié)議綜合以上因子,再額外增加設(shè)備認(rèn)證因子,通過雙層加密信道與云端硬件加密機(jī)集群進(jìn)行認(rèn)證。
如果有人請求加入設(shè)備信任鏈,設(shè)備信任鏈如何校驗這個人的身份呢?OPPO安全后臺有一堆加密機(jī)機(jī)群,通過加密機(jī)機(jī)群來校驗收到請求因子的正確性,并且這個因子不會發(fā)送到后臺,而是要通過SRP協(xié)議認(rèn)證,保證用戶密碼的安全性。并且校驗次數(shù)也會被統(tǒng)計,如果試錯過高,則會限制登錄,甚至銷毀既有密鑰。
由此可見,OPPO安全采用了多重嵌套式的技術(shù),環(huán)環(huán)相扣,層層把關(guān),讓用戶能夠放心安心地使用云密碼本產(chǎn)品。
端云協(xié)同的安全密鑰技術(shù)應(yīng)用場景相當(dāng)豐富,比如帳號密碼,醫(yī)療類、健康類數(shù)據(jù),密鑰類數(shù)據(jù),密鑰類數(shù)據(jù)擴(kuò)展起來就是藍(lán)牙、WiFi設(shè)備配對,甚至是文件加密、全盤加密等等;再就是家庭設(shè)備數(shù)據(jù),帳號設(shè)備數(shù)據(jù),這也是很敏感的信息;還有行為特征類數(shù)據(jù),以及財務(wù)、購物、交易數(shù)據(jù),這些自始至終都是非常敏感的。
另外,該技術(shù)可以實現(xiàn)真正端到端的安全通信,這種通信可以基于文本的消息,也可以基于視頻語音通話,甚至可以是基于端到端的敏感會議、遠(yuǎn)程協(xié)助。
眾所周知,軟件開發(fā)工具包(Software Development Kit)簡稱SDK, 集成在APP中為用戶提供了豐富的功能,因為使用量大,所以SDK的安全問題往往影響更為廣泛和深遠(yuǎn)。
SDK多以JAR, AAR或者so的形式存在,可以共享APP申請的權(quán)限; 開發(fā)者對于SDK的內(nèi)部實現(xiàn),如用戶隱私信息的采集、對外通信等,屬于黑盒,集成SDK后的APP被引入更多攻擊面,而且三方SDK往往成為整個APP中的安全短板;某些SDK的裝機(jī)量數(shù)以億計,那么其中的安全問題可能會影響數(shù)億的終端設(shè)備和用戶。
第一、私鑰或?qū)ΨQ密鑰硬編碼;
第二、違規(guī)采集用戶的個人隱私信息;
第三、敏感數(shù)據(jù)明文傳輸沒有做保護(hù);
第四、不安全的證書校驗;
第五、WebView不規(guī)范使用;
第六、繞過沙盒限制,訪問應(yīng)用私有組件;第七、下載并安裝惡意使用;
第八、權(quán)限濫用。
那么,OPPO安全對于三方SDK安全檢測采取什么辦法呢?據(jù)悉,OPPO安全檢測內(nèi)容主要分三個方面:隱私合規(guī)檢測、漏洞檢測、惡意行為檢測。
OPPO安全采用靜態(tài)污點分析的方法進(jìn)行安全掃描。污點分析分三個階段:第一是標(biāo)記source點,source點就是敏感數(shù)據(jù);第二是跟蹤,采用特定的安全規(guī)則跟蹤污點信息在程序中的傳播過程;第三在關(guān)鍵的程序點(Sink點)檢測關(guān)鍵的操作是否會受到污點信息的影響,最后記錄數(shù)據(jù)傳輸路徑,從而識別程序是否存在安全風(fēng)險。
OPPO安全在三方SDK檢測流程上,總結(jié)出四個重要步驟:第一、結(jié)合攻防團(tuán)隊的實戰(zhàn)經(jīng)驗,整理安全檢測的checklist;第二、檢測反射調(diào)用敏感API(如用戶個人隱私信息采集);第三、通過指紋生成及識別技術(shù),對三方SDK代碼及具體版本進(jìn)行準(zhǔn)確識別,維護(hù)SDK黑名單庫;第四、安全檢測報告內(nèi)容盡量詳盡,通常覆蓋多個緯度,比如:安全風(fēng)險評級、安全場景與細(xì)節(jié)描述、風(fēng)險代碼示例、安全緩解建議、安全事故案例和安全測試方法。
對于OPPO手機(jī)終端安全測試人員來說,SDK的檢測的難度,可能重點體現(xiàn)在以下兩個點:第一、需要檢測的SDK本來就很多,再加上迭代頻繁,造成工作量劇增;第二、安全人員要怎樣盡量做好投入產(chǎn)出比的計算。
那么,有了技術(shù)維度的方法論統(tǒng)籌,OPPO安全的SDK安全檢測如何與SDL(安全開發(fā)生命周期)融合呢?據(jù)了解,SDL一共有七個方面:安全培訓(xùn)、需求評估、產(chǎn)品設(shè)計、實施、驗證、上線發(fā)布、應(yīng)急響應(yīng)。
如上圖所示,藍(lán)綠黃三色分別對應(yīng)三大類,其中最復(fù)雜的是第二類綠色部分。OPPO安全做需求評估時,需要設(shè)定安全門欄,分析安全與隱私風(fēng)險;產(chǎn)品設(shè)計階段要分析攻擊面,建立威脅建模,實施狀態(tài)可以進(jìn)行靜態(tài)安全掃描,摒棄不安全的實現(xiàn)。驗證過程對APP做動態(tài)掃描,模糊測試。上線發(fā)布階段進(jìn)行終版安全評析,發(fā)布存檔,同時需要制定響應(yīng)計劃。
OPPO結(jié)合工作實踐與SDL實施經(jīng)驗,從隱私合規(guī)檢測、漏洞檢測、惡意行為檢測三個維度出發(fā),落地了一套移動三方SDK安全質(zhì)量保障方案,保障移動終端應(yīng)用安全, 可以從四個方面做到閉環(huán):
有人會疑問,第三方SDK本身提供的一般都屬于成品,一個SDK的文件,是沒有源代碼的,那OPPO安全是怎么去分析它的權(quán)限、一些數(shù)據(jù)的行為?
實際上,如上問題并非無計可施。如果三方SDK是有混淆的,那OPPO安全的安全工具可以對混淆代碼進(jìn)行掃描,同時對于經(jīng)驗豐富的安全人員來說,代碼混淆只是增加了一些工作量而已;如果是加固的SDK,可以先嘗試脫殼再分析,在靜態(tài)無法分析的情況下可以將SDK集成到APP后使用動態(tài)工具來檢測,當(dāng)然也可以對SDK的歷史版本和當(dāng)前版本做一個差分分析,看看其新增了一些什么功能。
一直以來,OPPO都是用最大努力創(chuàng)造、創(chuàng)新極致技術(shù),來保障用戶的隱私安全。如上所述,不過是OPPO安全大樹上的一根枝椏。但OPPO安全人從不因其只是一根分支,就生輕怠之心。因為,每一個分支做到極致,都能成長為粗壯的枝干,接受到更多太陽的光輝,讓整棵大樹更為生機(jī)盎然。
《后漢書·桓譚傳》有言:“天下皆知取之為取,而莫知與之為取。” 意為人們都只知道取得為取得,而不知道給予別人或付出代價也是取得。
OPPO安全深知“與之為取”的道理,閉門造車必將固步自封,一家繁榮不是安全行業(yè)的健康生態(tài)。所以,OPPO安全在此次的OPPO技術(shù)開放日活動上,毫不吝嗇地對行業(yè)展示自家最新的安全理念與安全產(chǎn)品。同時,也誠邀業(yè)界數(shù)據(jù)專家、安全專家加入OPPO安全團(tuán)隊,一起為用戶隱私安全而努力。
此外,OPPO安全雖是以技術(shù)為主,但確實是一個有擔(dān)當(dāng)、有情懷、有理想的安全團(tuán)隊,他們始終抱著開放共享的態(tài)度,加強(qiáng)產(chǎn)學(xué)聯(lián)合共建,為行業(yè)培養(yǎng)更多優(yōu)秀的網(wǎng)絡(luò)安全人才,也為用戶提供更安全的手機(jī)服務(wù)和互聯(lián)網(wǎng)應(yīng)用服務(wù),以推動網(wǎng)絡(luò)安全行業(yè)的健康持久發(fā)展。
OPPO安全的開放與分享理念,不但引領(lǐng)安全行業(yè)一部分領(lǐng)域快步奔跑,同時也促進(jìn)自身不斷攀登。
站在高處手舉明燈的人,對于長夜攀行者而言就是星辰。愿OPPO安全成為安全峰頂一顆耀眼之星,同時也愿整個安全領(lǐng)域——星辰漫天!