第三方跟蹤器集成在app內(nèi)部,有權(quán)限訪問(wèn)app內(nèi)的任何數(shù)據(jù)。跟蹤器的網(wǎng)絡(luò)通信暴露了更多攻擊面,其安全漏洞、內(nèi)部壞員工,被黑客入侵,都可能威脅到用戶存儲(chǔ)的密碼安全。
近期德國(guó)安全研究員Mike Kuketz發(fā)表了一篇博客LastPass安卓版:第三方模塊會(huì)監(jiān)控每一步(LastPass Android:Drittanbieterüberwachen jeden Schritt)指出:Lastpass內(nèi)置了7個(gè)跟蹤器,會(huì)跟蹤用戶操作的每一步,甚至連注冊(cè)LastPass賬號(hào)的操作(注冊(cè)事件相關(guān)信息,不包括密碼)也會(huì)發(fā)送給第三方跟蹤器。博客一發(fā)表,立即引發(fā)了大量討論,Google搜索已經(jīng)有超過(guò)28萬(wàn)條結(jié)果:
國(guó)內(nèi)知名大號(hào)擴(kuò)展迷Extfans在知名安全軟件翻車?免費(fèi)功能變收費(fèi)后,又被曝疑似收集用戶數(shù)據(jù)傳給廣告公司進(jìn)一步討論了這些追蹤器,指出AppsFlyer,MixPanel和Segment這幾個(gè)跟蹤器會(huì)大量收集用戶數(shù)據(jù)用于大數(shù)據(jù)營(yíng)銷。
LastPass官方回應(yīng):
沒(méi)有敏感的個(gè)人數(shù)據(jù)和加密數(shù)據(jù)庫(kù)可以被這些跟蹤器獲取。這些跟蹤器只收集使用LastPass時(shí)有限的統(tǒng)計(jì)數(shù)據(jù)。該數(shù)據(jù)用于幫助我們改進(jìn)和優(yōu)化產(chǎn)品。(No sensitive personally identifiable user data or vault activity could be passed through these trackers.These trackers collect limited aggregated statistical data about how you use LastPass which is used to help us improve and optimize the product.)
很高興看到越來(lái)越多的研究,越來(lái)越多的用戶開始關(guān)注密碼管理器的安全問(wèn)題。
密碼管理器作為安全產(chǎn)品,管理用戶所有密碼,安全至關(guān)重要。不能用看待普通軟件產(chǎn)品的方式來(lái)看待密碼管理器。
目前能夠看到的討論,基本上都在關(guān)注跟蹤器對(duì)用戶隱私的侵犯,幾乎沒(méi)有人討論跟蹤器是否會(huì)威脅到密碼管理的安全。
先說(shuō)結(jié)論:跟蹤器能威脅到密碼管理的安全!
事實(shí)上,軟件供應(yīng)鏈攻擊是近年來(lái)發(fā)展迅猛的一種攻擊方法,去年爆出席卷美國(guó)數(shù)千政企的太陽(yáng)風(fēng)黑客攻擊正是使用了供應(yīng)鏈攻擊:微軟承認(rèn)該公司遭到黑客入侵,微軟同樣使用太陽(yáng)風(fēng)軟件也被供應(yīng)鏈攻擊。https://www.landiannews.com/archives/82943.html
從LastPass官方的回應(yīng)可以看出:他們顯然并沒(méi)有認(rèn)識(shí)到,集成第三方服務(wù)可能威脅密碼安全。
密碼管理器,不是看誰(shuí)最炫酷最方便,而是看誰(shuí)最能抵御攻擊不泄密。
接下來(lái),我們從權(quán)限、威脅、攻擊三個(gè)方面逐步深入揭秘集成跟蹤器的安全風(fēng)險(xiǎn)。
1、權(quán)限
Exodus Privacy Report
app的權(quán)限就是操作系統(tǒng)允許app做的事情,比如使用網(wǎng)絡(luò)、讀寫公共存儲(chǔ)區(qū)的文件、攝像頭拍照和錄像等。
現(xiàn)代智能手機(jī)操作系統(tǒng)管理權(quán)限以app為基本單位,并不是以app內(nèi)部的模塊為單位。
什么意思呢?就是說(shuō),app內(nèi)置的跟蹤器(以及其他第三方模塊)具備和app一樣的權(quán)限。
讀取app運(yùn)行時(shí)內(nèi)存(以下簡(jiǎn)稱內(nèi)存)
第三方跟蹤器也是app的一部分,可以不受限制的讀取app使用的任何內(nèi)存數(shù)據(jù),包括內(nèi)存中的主密碼。
讀取app沙盒中的內(nèi)部存儲(chǔ)
相比傳統(tǒng)的桌面操作系統(tǒng),移動(dòng)操作系統(tǒng)的沙盒能夠防止惡意app訪問(wèn)其他app的內(nèi)部數(shù)據(jù),大大提升了數(shù)據(jù)安全。但并不能阻止app內(nèi)部的第三方跟蹤器(模塊)讀取內(nèi)部存儲(chǔ)的數(shù)據(jù),包括加密數(shù)據(jù)庫(kù)。
很多密碼管理器用戶的一個(gè)認(rèn)知誤區(qū)是:加密數(shù)據(jù)庫(kù)暴露也無(wú)所謂,只要主密碼足夠安全。
首先,密碼管理器要正確使用加密算法。TeamSIK在2016年的一項(xiàng)密碼管理器研究(Password-Manager Apps)發(fā)現(xiàn),諸多密碼管理器廠商(最近的主角LastPass也名列其中)并不會(huì)正確使用加密算法,被輕松破解。
其次,“主密碼足夠安全”現(xiàn)實(shí)中很難做到,泄密的可能性實(shí)在是太多了:
前面提到:惡意程序從運(yùn)行時(shí)內(nèi)存中提取主密碼
使用了不安全的輸入法輸入主密碼
惡意程序通過(guò)偽造解鎖界面,誘導(dǎo)用戶輸入
惡意程序通過(guò)截屏、錄屏獲得
密碼重用
被有心人偷窺
使用密碼字典破解
密碼管理器進(jìn)化史(下)中講到,密碼管理器安全主要取決于解鎖條件。加密數(shù)據(jù)庫(kù)一旦暴露,就只剩下唯一一個(gè)保護(hù)因素——主密碼,保護(hù)能力大打折扣。
完全網(wǎng)絡(luò)訪問(wèn)
跟蹤器的工作原理就是把收集到的用戶數(shù)據(jù)發(fā)送到云端,集成跟蹤器的app必然會(huì)要求網(wǎng)絡(luò)權(quán)限。
網(wǎng)絡(luò)既可以把收集的數(shù)據(jù)發(fā)送到云端,也可以被云端控制,執(zhí)行云端發(fā)送的指令。
2、威脅
再來(lái)看看,采用第三方服務(wù)跟蹤器,可能帶來(lái)哪些威脅呢?
跟蹤器的安全漏洞
跟蹤器完全可能存在安全漏洞,這些跟蹤器具備的權(quán)限都可能被黑客利用,包括讀取內(nèi)存中緩存的主密碼,內(nèi)部存儲(chǔ)的加密數(shù)據(jù)庫(kù)。
一般來(lái)說(shuō),跟蹤器并不會(huì)為密碼管理器專門防護(hù)優(yōu)化,防范密碼泄漏。
他們大多就沒(méi)想過(guò):跟蹤器提供給密碼管理器廠商是否需要不一樣的安全防護(hù)。隔行如隔山,他們往往不懂密碼管理器的特殊需求。
更不用說(shuō)這還需要增加額外的培訓(xùn)、學(xué)習(xí)和研發(fā)成本。
第三方供應(yīng)商的內(nèi)部壞員工
又有新鮮瓜上市了,百度92年程序員被抓:篡改數(shù)據(jù)給賭博網(wǎng)站"大開方便之門",https://finance.sina.com.cn/stock/relnews/us/2021-03-10/doc-ikknscsi0652289.shtml只需調(diào)用一個(gè)接口這么簡(jiǎn)單!
陳某睿在公司電腦上使用CURL命令發(fā)送給公司的服務(wù)器,調(diào)用一個(gè)接口,這個(gè)接口可以自動(dòng)審核網(wǎng)站,發(fā)送的CURL命令包括需要快速通過(guò)審核的網(wǎng)站,然后發(fā)送的網(wǎng)站就通過(guò)了承接百度聯(lián)盟廣告資質(zhì)的審核。
從內(nèi)部攻破,輕而易舉!
黑客入侵
一旦黑客入侵,就如同內(nèi)部壞員工一般,可以從內(nèi)部攻擊app的防護(hù)。
通常合格的密碼管理器廠商會(huì)做一些防范措施,阻止黑客入侵(包括客戶端和云端),以及被入侵后,提升偷取用戶密碼的難度。第三方服務(wù)商就很難說(shuō)了。
第三方服務(wù)商,不懂密碼管理器是怎樣保護(hù)用戶密碼的,也不懂怎樣提升這方面的防護(hù)能力,在安全管理方面也不如密碼管理器廠商嚴(yán)格,更不愿意為此承擔(dān)額外成本。
密碼管理器廠商,對(duì)第三方服務(wù)沒(méi)有足夠的控制力和透明度。既不了解第三方的安全防護(hù)水平,也沒(méi)有權(quán)限審核第三方服務(wù)的源代碼,更不能干預(yù)其內(nèi)部安全管理。
3、攻擊
本文不會(huì)覆蓋具體的攻擊技術(shù)和方法,只列舉幾個(gè)大的攻擊框架。
惡意代碼直接讀取
內(nèi)部員工或者入侵黑客,可能直接在跟蹤器中植入惡意代碼,隨著版本更新一起發(fā)布。太陽(yáng)風(fēng)黑客攻擊就是利用軟件更新發(fā)布的惡意代碼:
真正當(dāng)成跳板的是美國(guó)太陽(yáng)風(fēng)公司的網(wǎng)絡(luò)管理軟件,這些軟件更新后攜帶惡意軟件并且可以接受黑客下發(fā)的指令。值得注意的是微軟公司也同樣使用太陽(yáng)風(fēng)軟件,這導(dǎo)致微軟公司也同樣被黑客滲透,微軟檢測(cè)后已經(jīng)確認(rèn)該事實(shí)。
由于用戶輸入的主密碼通常會(huì)被緩存在操作系統(tǒng)的UI組件中,app很難完全擦除,被惡意代碼讀取并不難。
不少密碼管理器在解鎖后還會(huì)解密出存儲(chǔ)的全部密碼,當(dāng)然也能被跟蹤器讀取。
ISE一位研究員輕松從內(nèi)存中提取主密碼(Password Managers:Under the Hood of Secrets Management)。
順便說(shuō)一下,很多密碼管理器還會(huì)收集崩潰信息,改進(jìn)產(chǎn)品,很可能整個(gè)運(yùn)行時(shí)內(nèi)存(heapdump)都被收集到云端,甚至有密碼管理器使用第三方的崩潰收集服務(wù)。
在跟蹤器中,直接讀取內(nèi)存中的主密碼、加密數(shù)據(jù)庫(kù),發(fā)送到自己控制的云端服務(wù)器,也可以破解用戶所有密碼。
釣魚主密碼
跟蹤器中的惡意代碼可以偽造鎖定界面,讓用戶輸入主密碼。
和普通釣魚攻擊不同,由于跟蹤器也是app的一部分,根本無(wú)法區(qū)分要求輸入主密碼的是跟蹤器還是app主體程序。
熱更新技術(shù)發(fā)動(dòng)遠(yuǎn)程攻擊
熱更新技術(shù)常用于緊急修復(fù)bug,可以繞過(guò)應(yīng)用商店審核、發(fā)布、以及用戶更新app的漫長(zhǎng)過(guò)程,直接更新程序。
既然可以通過(guò)熱更新遠(yuǎn)程更新程序,那同樣也可以遠(yuǎn)程植入惡意代碼,為所欲為!
盡管蘋果和谷歌的應(yīng)用商店都禁止使用熱更新技術(shù)執(zhí)行遠(yuǎn)程代碼,但是無(wú)法從技術(shù)上徹底限制。React Native,小程序等技術(shù)執(zhí)行遠(yuǎn)程代碼甚至得到官方允許。只要沒(méi)有引起應(yīng)用商店注意,app執(zhí)行遠(yuǎn)程代碼的方法很多很多。
4、總結(jié)
跟蹤器為了收集用戶數(shù)據(jù),都會(huì)將收集到的信息通過(guò)網(wǎng)絡(luò)發(fā)送到云端。我們知道,信息領(lǐng)域絕大多數(shù)的安全事故都與網(wǎng)絡(luò)有關(guān),網(wǎng)絡(luò)是最大的攻擊面。
攻擊面(Attack Surface)指軟件可能被黑客破壞的所有入口。把攻擊面限制到最小化是一項(xiàng)基本安全原則。
本來(lái)聯(lián)網(wǎng)就會(huì)讓密碼管理器面臨很大的安全威脅,即使LastPass集成的跟蹤器本身沒(méi)有問(wèn)題,也可能因?yàn)橄螺d惡意數(shù)據(jù)泄密。集成不受控的第三方服務(wù),還一下子集成了7個(gè),安全隱患可想而知。