CVE-2015-3839漏洞能夠使短信程序崩潰

研究人員在安卓系統(tǒng)中發(fā)現(xiàn)了兩個新漏洞,它們可以破壞手機和平板電腦中特定的短信功能。第一個漏洞,即CVE-2015-3839,這個漏洞允許攻擊者將惡意信息注入系統(tǒng)的短信應(yīng)用程序之中,并引起程序崩潰,從而達到阻止用戶發(fā)送或接收信息的目的。與此同時,第二個漏洞,即CVE-2015-3840,這個漏洞允許攻擊者篡改短信或彩信的發(fā)送/接收狀態(tài),這將導(dǎo)致用戶發(fā)送多條付費信息。
 

不同于近期被披露出來的”Stagefright”漏洞以及其他針對安卓系統(tǒng)媒體服務(wù)器部件的漏洞,這兩個新型漏洞針對的是安卓系統(tǒng)的消息傳遞部件。目前,所有版本的安卓系統(tǒng)都存在這兩個漏洞,包括最新版的Android 5.1.1 Lollipop在內(nèi)。但是,這兩個漏洞對Vanilla版本的影響最為嚴(yán)重(安卓Vanilla指的是純凈的,沒有定制任何程序的安卓OEM版本,它是由谷歌公司直接發(fā)行的原生系統(tǒng))。這是因為,“純凈”的Vanilla操作系統(tǒng)仍然使用了原生的短信應(yīng)用程序,而這個程序仍然存在這些漏洞。而那些非Vanilla版本的安卓系統(tǒng)已經(jīng)進行了升級,并且使用了定制版的短信應(yīng)用程序,有的用戶也使用了第三方的短信程序來代替系統(tǒng)自帶的短信app。
 

我們已經(jīng)將漏洞的信息報告給了谷歌公司,他們已經(jīng)采用了我們所建議的漏洞補丁,并推送了更新補丁來修復(fù)這些漏洞。這兩個漏洞的危險系數(shù)評級均為“低風(fēng)險”。我們?nèi)栽诶^續(xù)監(jiān)視各種針對這些漏洞的潛在攻擊。
 

CVE-2015-3839漏洞能夠使短信程序崩潰。
 

函數(shù)中沒有正確處理異常的代碼
 

相較于之前披露的能夠使手機陷入無限重啟的安卓漏洞,這個漏洞的破壞性更強。與安卓的媒體服務(wù)器漏洞差不多,攻擊者可以利用CVE-2015-3839漏洞,并在不需要請求任何權(quán)限的情況下誘導(dǎo)用戶安裝惡意軟件。不同的是,這個漏洞只允許攻擊者在短信程序上執(zhí)行拒絕服務(wù)(DoS)攻擊,而無法對整個設(shè)備發(fā)動攻擊。攻擊之后,用戶就無法再使用短信程序來發(fā)送或接收信息了。
 

這個漏洞來源于設(shè)備更新短信狀態(tài)時的一個空指針異常(NPE)。安卓設(shè)備在發(fā)送了文字消息之后,會使用”updateMessageStatus”函數(shù)來更新SMS-STATUS-REPORT PDU(協(xié)議數(shù)據(jù)單元)格式的短信狀態(tài)。然而,這個函數(shù)的部分代碼并沒有對操作異常進行恰當(dāng)?shù)奶幚?,這就導(dǎo)致黑客可以通過不正當(dāng)?shù)牟僮魅ヒ鸲绦懦绦虻谋罎ⅰ?br />  

為了實現(xiàn)目的,攻擊者需要繞過”updateMessageStatus”函數(shù)的空指針檢測部分。他們可以使用”createfromPDU”函數(shù)(此函數(shù)用于解析PDUs數(shù)據(jù),并存儲消息對象),然后返回一個新的”smsMessage”對象。這個函數(shù)并不會對消息對象”wrappedMessage”進行驗證,而且總會以3GPP(GSM)和3GPP2(CDMA)形式返回一個新的”smsMessage”對象。
 

返回一個新”SmsMessage”對象的”createfromPDU”函數(shù)
 

這樣一來,黑客就可以成功地繞過”updateMessageStatus”函數(shù)的空指針檢測了。然而,如果”wrappedMessage”對象恰好為空,調(diào)用”getStatus”函數(shù)同樣可以引起系統(tǒng)發(fā)生“空指針異常”錯誤。由于進行函數(shù)調(diào)用操作的”updateMessageStatus”函數(shù)并沒有對異常進行處理,那么整個短信應(yīng)用程序?qū)罎⒉⒅兄惯\行。
 

空指針異常導(dǎo)致com.android.mms包中發(fā)生堆棧崩潰
 

接下來,攻擊者只需要注入惡意的協(xié)議數(shù)據(jù)單元(PDUs),然后引起系統(tǒng)發(fā)生“空指針異常”錯誤。我們將惡意的協(xié)議數(shù)據(jù)單元(PDUs)注入了”MessageStatusService”之中,就成功地引起了程序的崩潰。//MaliciousPDUinbytes
 

{00,02,00,02,D0,65,61,60,80,90,25,12,23,61,60,80,01,25,12,23,00,FF};
 

在下面的演示視頻中,研究人員會給大家講解如何在安卓4.4.4以及5.1.1版本的設(shè)備中進行操作。
 

CVE-2015-3840漏洞允許攻擊者篡改短信或彩信的發(fā)送/接收狀態(tài),將導(dǎo)致用戶發(fā)送多條付費信息。
 

攻擊者可以利用這個漏洞,在不需要得到”WRITE_SMS”權(quán)限許可的情況下修改短信/彩信的狀態(tài)。攻擊者可以對安卓安全模塊進行權(quán)限提升攻擊,然后使用一個未經(jīng)授權(quán)的惡意程序來修改短信/彩信的接收狀態(tài)和信息數(shù)據(jù)。
 

這個漏洞來源于一個存在于”MessageStatusReceiver”服務(wù)(AndroidManifest.XML文件包含有這個服務(wù))中的漏洞。這個服務(wù)會根據(jù)SMS-STATUS-REPORT PDU的狀態(tài)來觸發(fā)消息狀態(tài)更新。由于它沒有相關(guān)的保護措施,所以它可以允許任何未經(jīng)授權(quán)的第三方應(yīng)用程序發(fā)送偽造的廣播以及入侵短信/彩信的數(shù)據(jù)。
 

黑客可以利用這個有漏洞的receiver來更新信息的狀態(tài):
 

這樣一來,攻擊者就可以篡改一條已經(jīng)成功發(fā)送的消息狀態(tài),并將其標(biāo)記為”發(fā)送失敗”,這很有可能會誘導(dǎo)用戶重新發(fā)送這條消息。情況還有可能更加糟糕,攻擊者可以使用一個惡意程序來監(jiān)視并修改信息的內(nèi)容,他們可以還可以讓用戶向一個收費的服務(wù)號碼持續(xù)不斷地發(fā)送付費信息,以此來騙取用戶的錢財。
 

為了利用這個漏洞,我們注入了下列惡意的PDU,并將其廣播給含有漏洞的receiver:
 

注入惡意PDU,并將短信狀態(tài)標(biāo)記為“已接收”
 

//maliciousPDUinbytes
 

{00,02,00,02,D0,65,61,60,80,90,25,12,23,61,60,80,01,25,12,23,00}
 

注入惡意PDU,并將短信狀態(tài)標(biāo)記為“發(fā)送失敗”
 

//maliciousPDUinbytes
 

{00,02,00,02,D0,75,71,60,80,70,42,34,56,61,60,80,01,25,14,15,40}
 

在下面的演示視頻中,研究人員會給大家講解如何在安卓4.4.4以及5.1.1版本的設(shè)備中進行操作。
 

相關(guān)建議:
 

通常來說,安卓設(shè)備的更新補丁總是零散發(fā)布的,所以在修復(fù)補丁推送給終端用戶之前,用戶們可以考慮更換手機的短信程序。用戶們也可以考慮安裝相應(yīng)的手機防護程序來防御這種安全威脅。
 

趨勢科技能夠檢測這種類型的攻擊,并可以通過相應(yīng)的保護措施來保護用戶的安全。除此之外,趨勢科技的移動安全產(chǎn)品可以檢測針對CVE-2015-3839漏洞以及CVE-2015-3840漏洞的惡意軟件,例如AndroidOS_MsgDoS.A和AndroidOS_MsgCrack.A。
 

漏洞披露的時間軸
 

6月4日:我們將漏洞的詳細信息報告給了谷歌公司。
 

6月7日:谷歌公司確認了相關(guān)信息,并為漏洞分配了編號CVE-2015-3839和CVE-2015-3840。
 

7月20日:我們向谷歌公司提供了能夠修復(fù)漏洞的相關(guān)代碼。
 

8月7日:谷歌公司采用了修復(fù)補丁,并將其推送給用戶。
 

相關(guān)閱讀
網(wǎng)友評論
圖文推薦
  • 百度殺毒怎么樣 百度殺毒軟件好嗎

    百度殺毒軟件好嗎?這是很多用戶在使用百度殺毒這款軟件之前的疑問,因為殺毒軟件實在太多,用戶有這樣的疑問也無可厚非,今天,小編就帶大家看看百度殺毒的一些特色吧,或許能夠解答用戶的疑問了!

  • 勒索病毒怎么清除 勒索病毒徹底清除方法

    很多用戶的電腦遭受了勒索病毒的侵入,那么要如何清除勒索病毒呢?接下來,小編就為大家?guī)砝账鞑《厩宄椒ㄒ约袄账鞑《厩宄ぞ?,感興趣的朋友可以來了解下。

  • 比特幣病毒怎么解決 比特幣病毒解決方法

    最近,很多朋友都被比特幣勒索病毒給刷屏了,黑客通過索要破解費用來獲取利益,那么,比特幣病毒怎么破解呢?接下來,小編就為大家?guī)肀忍貛挪《窘鉀Q方法。