時隔八年 蘋果竟然再一次栽在了這個漏洞上

八年前,安全研究人員 ColinMulliner 發現並報告了蘋果一個非常有趣的bug。儘管這個bug是在iOS系統Safari上,但它卻仍然能夠影響到電話撥打功能,而究其原因則是因為一些特殊的Web鏈接可以使用URLs進行電話。那麼這到底是怎麼做到的呢?

我們平常看到的Web頁面上的HTML鏈接通常是這樣的:

<AHREF="https://nakedsecurity.sophos.com/">Read NakedSecurity</A>n

A和/A分別代表了一個錨的開始和結束,這樣則能夠使得href 屬性規定鏈接的目標。開始標籤和結束標籤之間的文字被作為超級鏈接來顯示。

但事實上也會出現這樣的鏈接:

<AHREF="tel:+441632960042">Call now</A>n

那麼這時候你就會發現當你點擊這個鏈接時,如果你使用的設備能夠打電話的話,這個前綴後面的號碼就會被撥打出去。

比如在蘋果手機的Safari上點擊了這個鏈接,那麼就會彈出選項讓你去嘗試撥打這個電話號碼。而如果你選擇了允許撥打,那麼你會看到一個對話框,詢問你是否真的想把電話撥打出去:

在2008年,Colin Mulliner發現還有很多方式可以導致出現另一種情況:鏈接被點擊之後會跳過警告對話框,再沒有進行任何詢問的情況下電話程序自動把號碼撥打出去。

Colin Mulliner所發現的方式中有一種是在ifarme中加入電話的url,使用一個電話號碼來作為一個目標網頁去進行刷新或者重定向,然後使用JavaScript改變已經載入的頁面。

當他將一個電話號碼演變成了一個被請求的頁面,那麼他就可以根據他的選擇進行任意的撥號了。而如果你沒有注意到你的電話程序正在撥號,而這時恰好有一個好的機會,那麼你很可能就會錯過它。

這一做法無論是惡作劇或者是騙子進行更多詐騙乃至進行一些收費電話都將會導致用戶出現不必要的風險。

因此,在Colin Mulliner負責任的進行披露之後,蘋果對其進行了修復。

另外,Colin Mulliner其實還發現了一種方式來造成此種情況,即同時佔用iphone的消息傳遞程序,比如發送一個很長的簡訊到一個非常長的電話號碼。這樣你就會發現你的手機在全力的去解決你當前的需求,而使得處理器沒有足夠的資源去對來電進行顯示或者反應,進而讓你立即取消呼叫。

而到了八年之後,Colin Mulliner注意到了媒體上所報道的一個故事,即一個美國男孩因為涉嫌使用一個網站去使得所有訪問該網站的iphone手機都後台撥打了數百到數千個虛假的911電話。而這不得不使Colin Mullinerr想到了他在2008年所發現的那個bug。不幸的是,在經過深入的研究之後,他發現這個新的bug和他那個只是形式上稍微存在著差異。

原因是iOS的App Store中包含了某種微型瀏覽器可以用它來顯示HTML內容,而不需要切換到Safari。這個微型瀏覽器組件被稱為WebView,目前很多程序使用它的方式不盡相同,從顯示授權協議到幫助你去預覽網頁鏈接並保持在你最初的應用程序中,你都會用到它。

Colin Mulliner表示,他的那個bug的POC事實上仍然可以或多或少的在WebView中進行工作。簡而言之,當年蘋果修復了Safari中的bug,但是對於WebView中的問題卻沒有及時的發現。

因此Colin Mulliner再一次的報告了這一問題,而這也導致iOS將再一次迎來更新。那麼在這段時間為了防範這一問題,應用程序的開發人員應該在使用WebView時需要去添加代碼來檢測鏈接顯示的內容並禁止使用電話。

最後對於用戶來說不要驚慌,因為即使騙子使用穆力納的技巧,也只能進行一兩秒鐘的呼叫,他們是沒有辦法讓你無限期的出現這種情況。

註:本文參考來源於nakedsecurity

推薦閱讀:

TAG:苹果公司AppleInc | iOS | 系统漏洞 |