
15歲高三學(xué)生發(fā)布報(bào)告分析Signal和Cloudflare架構(gòu)中的漏洞
聲明:該文章來(lái)自(藍(lán)點(diǎn)網(wǎng))版權(quán)由原作者所有,K2OS渲染引擎提供網(wǎng)頁(yè)加速服務(wù)。
Signal 是個(gè)曾經(jīng)都被埃隆馬斯克推薦的加密通訊應(yīng)用,該應(yīng)用在默認(rèn)情況下就采用端到端加密用戶數(shù)據(jù)確保不會(huì)被劫持,而 Telegram 則是默認(rèn)不加密用戶必須手動(dòng)建立加密會(huì)話。
一位自稱丹尼爾的 15 歲高三學(xué)生日前發(fā)布了一份報(bào)告揭露 Signal 和 Discord 等數(shù)百款應(yīng)用中存在的架構(gòu)漏洞,這里的架構(gòu)指的是這些平臺(tái)使用的網(wǎng)絡(luò)基礎(chǔ)架構(gòu)。
簡(jiǎn)單來(lái)說(shuō)就是 Signal 使用 Cloudflare 作為 CDN 平臺(tái),而 Cloudfalre 在全球大多數(shù)地方都有數(shù)據(jù)中心節(jié)點(diǎn),可以通過(guò)探測(cè)節(jié)點(diǎn)的方式將某個(gè)用戶所處的范圍縮小到 200 英里。
盡管 Cloudflare 采用任播方式進(jìn)行 CDN 并且禁止用戶請(qǐng)求不在附近的數(shù)據(jù)中心,但借助 Cloudflare Worker 使用的內(nèi)部 IP 地址,攻擊者仍然可以實(shí)現(xiàn) Cloudflare 數(shù)據(jù)中心穿越。
實(shí)現(xiàn)數(shù)據(jù)中心穿越后實(shí)際上就可以采集到不同數(shù)據(jù)中心的 IP 地址以及這些 IP 地址對(duì)應(yīng)的位置,接下來(lái)只需要向目標(biāo)用戶發(fā)送文件等著這個(gè)文件被初次訪問(wèn)和緩存到 Cloudflare 邊緣節(jié)點(diǎn)即可。
以 iPhone 系統(tǒng)和 Signal 為例,當(dāng)向目標(biāo)用戶發(fā)送一個(gè) 1*1 像素的圖片時(shí),Signal 首先會(huì)幫助請(qǐng)求 Cloudflare 邊緣節(jié)點(diǎn),Cloudflare 不會(huì)一次性將文件緩存到所有節(jié)點(diǎn),而是讓距離用戶最近的節(jié)點(diǎn)去拉取文件。
當(dāng)成功拉去文件并將其返回給 Signal 后,Signal 會(huì)利用蘋果的推送系統(tǒng)將包含這個(gè)圖片的新消息通知推送給用戶,實(shí)際這個(gè)步驟更早, 因?yàn)?Signal 檢測(cè)到有新消息才會(huì)通知用戶,但通知用戶需要在通知里包含消息概覽因此也就需要請(qǐng)求這個(gè)圖片。
也就是在用戶完全沒有點(diǎn)擊這個(gè)消息的情況下,Cloudflare 已經(jīng)根據(jù) Signal 的請(qǐng)求使用距離用戶最近的邊緣節(jié)點(diǎn)拉取了文件,接下來(lái)只需要檢測(cè)哪個(gè)節(jié)點(diǎn)包含這個(gè)文件即可。
通過(guò)這種方式攻擊者可以將目標(biāo)用戶的真實(shí)位置鎖定在大約 200 英里的范圍內(nèi),這可能造成用戶的隱私泄露,尤其是對(duì)于某些高價(jià)值用戶來(lái)說(shuō)。
那么這個(gè)漏洞被確認(rèn)了嗎?
大約在 1 年前已經(jīng)有另一位研究人員將 Cloudflare 穿越漏洞上報(bào),但 Cloudflare 認(rèn)為這不是問(wèn)題所以直接將漏洞通報(bào)給關(guān)了,再接到丹尼爾的再次反饋后,Cloudflare 將原始漏洞報(bào)告重新開啟,然后進(jìn)行了處理。
Cloudflare 給原始報(bào)告者和丹尼爾 200 美元的漏洞獎(jiǎng)金,但這個(gè)修復(fù)不夠徹底,丹尼爾再次測(cè)試后大約還能獲得 54% 的邊緣節(jié)點(diǎn),也就是準(zhǔn)確性沒那么高但仍然可以實(shí)現(xiàn)猜測(cè)部分目標(biāo)用戶的位置。
在收到丹尼爾的再次報(bào)告后 Cloudflare 表示不會(huì)再進(jìn)行處理,Cloudflare 認(rèn)為這不是他們系統(tǒng)里的問(wèn)題,消費(fèi)者有責(zé)任自己保護(hù)自己。
丹尼爾也將漏洞反饋給了 Signal 并遭到 Signal 的強(qiáng)烈否決,該應(yīng)用表示這不是他們系統(tǒng)的問(wèn)題;Discord 同樣不認(rèn)為這是他們的問(wèn)題,而是 Cloudflare 的問(wèn)題,也就是最終結(jié)果是 Discord 甩鍋給 Cloudflare,Cloudflare 甩鍋給用戶自己。
Telegram 不存在這個(gè)問(wèn)題,因?yàn)樵搼?yīng)用不使用 Cloudflare CDN,而且 Telegram 使用不依賴 HTTP 協(xié)議的內(nèi)部系統(tǒng),所以無(wú)法通過(guò) CDN 節(jié)點(diǎn)這種方式猜測(cè)位置,當(dāng)然前提是 Telegram 并未默認(rèn)加密,用戶必須自己每次開啟 E2EE 加密會(huì)話。
對(duì)網(wǎng)絡(luò)安全有興趣的朋友強(qiáng)烈閱讀丹尼爾的報(bào)告原文:https://gist.github.com/hackermondev/45a3cdfa52246f1d1201c1e8cdef6117
[超站]友情鏈接:
四季很好,只要有你,文娛排行榜:https://www.yaopaiming.com/
關(guān)注數(shù)據(jù)與安全,洞悉企業(yè)級(jí)服務(wù)市場(chǎng):https://www.ijiandao.com/
- 1 豐收時(shí)節(jié)感悟總書記的“三農(nóng)”情懷 7904239
- 2 樺加沙強(qiáng)度接近地球上限?回應(yīng)來(lái)了 7808982
- 3 “晚1秒就撞 我肯定不慣著他” 7713964
- 4 盤點(diǎn)新疆的全國(guó)之“最” 7617930
- 5 今晚是國(guó)慶節(jié)前油價(jià)最后一次調(diào)整 7519879
- 6 廣東居民窗上貼“麥”字:因?yàn)辂溈孙L(fēng) 7428023
- 7 護(hù)網(wǎng):社交賬號(hào)不受控制?木馬在作祟 7327605
- 8 大二學(xué)生連續(xù)上3周夜班后猝死 7237130
- 9 廣州宣布停工停業(yè)停市停課停運(yùn) 7139338
- 10 全球最強(qiáng)臺(tái)風(fēng)明日登陸廣東 7048800