精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當前位置:安全企業動態 → 正文

谷歌砸重金求挑錯,360發現安卓重大安全漏洞

責任編輯:editor006 作者:陳思 |來源:企業網D1Net  2018-01-23 16:09:42 本文摘自:INFOQ

北京時間1月22日,“穿云箭”組合漏洞媒體溝通會于360大廈召開。上周,谷歌官方發文致謝360 Alpha團隊,并向360 Alpha團隊負責人龔廣頒發了總額為112500美金的安卓漏洞獎勵計劃(ASR)史上最高金額的獎金。360 Alpha團隊在2017年8月向谷歌提交了關于攻破Pixel手機的“穿云箭”組合漏洞報告。

谷歌砸重金求安全公司挑錯

Android Security Rewards(ASR)項目是Google于2015年啟動,主要對那些向公司提交Android安全漏洞的安全專家提供獎勵。該項目要求專家在運行最新Android版的Pixel手機和平板上進行測試,然后根據漏洞的危險程度來提供不同的獎金。

該項目于2017年6月的到了安全專家和白帽子們的大力支持,但是Google表示:“每個Android版本包含更多的安全保護,但是已經有兩年沒有專家獲得漏洞鏈這個頂級大獎了。”不過在上周五,公司終于宣布來自奇虎360技術公司的Guang Gong贏得了這個大獎,獎金共計達到11.25萬美元(約合72萬人民幣)。

  圖:谷歌團隊發文致謝360團隊

據360安全團隊介紹,這次發現的兩個漏洞分別是基于Chrome瀏覽器的V8引擎漏洞CVE-2017-5116,以及Android系統漏洞CVE-2017-14904,是ASR首個可以遠程有效利用的系列漏洞。其中,Chrome瀏覽器漏洞CVE-2017-5116可被用于在Chrome瀏覽器沙盒內遠程執行代碼。

“穿云箭”組合漏洞可以徹底遠程攻破谷歌Pixel手機,對用戶的隱私及財產安全造成極大的威脅。為了保護用戶的手機安全,360 Alpha團隊在17年8月將該組合漏洞報告給谷歌,已成功幫助其修復Android 系統和Chrome瀏覽器。

  圖:360助理總裁兼首席安全工程師鄭文彬現場演講

之所以此次Google會頒發如此高的獎金,一方面是由于“穿云箭”組合漏洞的影響面廣,未修復前大部分安卓手機都可能會被黑客利用這個組合漏洞攻破。另一方面該漏洞是基于底層系統存在的,能影響手機設備上所有應用,甚至包括電話短信等基礎應用,造成的危害最大。不法分子可利用該漏洞獲取用戶短信驗證碼、支付應用權限等,對用戶的個人隱私和財產都造成極大威脅。

Pixel遠程利用鏈的技術細節

根據谷歌發布的在線安全文檔,我們找到了有關這兩個漏洞的技術細節。

漏洞鏈包括兩個漏洞,CVE-2017-5116和CVE-2017-14904。CVE-2017-5116是一個V8引擎錯誤,用于在沙盒渲染過程中獲得遠程代碼執行。CVE-2017-14904是Android的libgralloc模塊中的一個漏洞,用于從Chrome的沙箱中轉移。通過訪問Chrome中的惡意URL,這個利用鏈可以用來將任意代碼注入到system_server中。

RCE錯誤(CVE-2017-5116)

V8 6.0引入了對SharedArrayBuffer的支持,SharedArrayBuffer是一種在JavaScript工作人員之間共享內存的低級別機制,并在工作人員之間同步控制流。

SharedArrayBuffers給JavaScript訪問共享內存,原子和futexes。WebAssembly是一種可以在現代Web瀏覽器中運行的新類型的代碼,它是一種低級匯編式語言,具有緊湊的二進制格式,可以接近本機的性能運行,并提供匯編語言(如C / C ++)目標,使他們可以在網上運行。通過在Chrome中結合使用SharedArrayBuffer WebAssembly和web worker這三個功能,可以通過競爭條件觸發OOB訪問。簡而言之,WebAssembly代碼可以放入SharedArrayBuffer中,然后傳遞給Web Worker。當主線程解析WebAssembly代碼時,工作線程可以同時修改代碼,這會導致OOB訪問。

多功能代碼位于函數GetFirstArgumentAsBytes中其中參數args可能是一個ArrayBuffer或TypedArray對象。將SharedArrayBuffer導入到JavaScript后,TypedArray可能由SharedArraybuffer支持,因此TypedArray的內容可能隨時由其他工作線程修改。

i::wasm::ModuleWireBytes GetFirstArgumentAsBytes( const v8::FunctionCallbackInfo& args, ErrorThrower* thrower) { ...... } else if (source->IsTypedArray()) { //--->source should be checked if it's backed by a SharedArrayBuffer // A TypedArray was passed. Local array = Local::Cast(source); Local buffer = array->Buffer(); ArrayBuffer::Contents contents = buffer->GetContents(); start = reinterpret_cast(contents.Data()) + array->ByteOffset(); length = array->ByteLength(); } ...... return i::wasm::ModuleWireBytes(start, start + length);}EoP錯誤(CVE-2017-14904)

沙盒轉義錯誤是由map和unmap不匹配造成的,這會導致Use-After-Unmap問題。

static int gralloc_map(gralloc_module_t const* module, buffer_handle_t handle){ …… private_handle_t* hnd = (private_handle_t*)handle; …… if (!(hnd->flags & private_handle_t::PRIV_FLAGS_FRAMEBUFFER) && !(hnd->flags & private_handle_t::PRIV_FLAGS_SECURE_BUFFER)) { size = hnd->size; err = memalloc->map_buffer(&mappedAddress, size, hnd->offset, hnd->fd); //---> mapped an ashmem and get the mapped address. the ashmem fd and offset can be controlled by Chrome render process. if(err || mappedAddress == MAP_FAILED) { ALOGE("Could not mmap handle %p, fd=%d (%s)", handle, hnd->fd, strerror(errno)); return -errno; } hnd->base = uint64_t(mappedAddress) + hnd->offset; //---> save mappedAddress+offset to hnd->base } else { err = -EACCES;}…… return err;}

gralloc_map將由參數句柄控制的圖形緩沖區映射到內存空間,而gralloc_unmap將其取消映射。映射時,mappedAddress加hnd-> offset被存儲到hnd-> base,但是當unmapping時,hnd-> base被直接傳遞給系統調用unmap減去偏移量。hnd-> offset可以從Chrome的沙盒進程中操作,所以可以從Chrome的沙盒渲染進程中取消映射system_server中的任何頁面。

static int gralloc_unmap(gralloc_module_t const* module, buffer_handle_t handle){ …… if(hnd->base) { err = memalloc->unmap_buffer((void*)hnd->base, hnd->size, hnd->offset); //---> while unmapping, hnd->offset is not used, hnd->base is used as the base address, map and unmap are mismatched. if (err) { ALOGE("Could not unmap memory at address %p, %s", (void*) hnd->base, strerror(errno)); return -errno; } hnd->base = 0;}…… return 0;}int IonAlloc::unmap_buffer(void *base, unsigned int size, unsigned int /*offset*/)//---> look, offset is not used by unmap_buffer{ int err = 0; if(munmap(base, size)) { err = -errno; ALOGE("ion: Failed to unmap memory at %p : %s", base, strerror(errno)); } return err;}

盡管SeLinux限制了域isolation_app訪問大部分Android系統服務,但isolated_app仍然可以訪問三個Android系統服務。

52neverallow isolated_app {53 service_manager_type54 -activity_service55 -display_service56 -webviewupdate_service57}:service_manager find;

要從Chrome的沙箱中觸發前面提到的Use-After-Unmap錯誤,首先將一個可解析的GraphicBuffer對象放入一個包中,然后調用IActivityManager的binder方法convertToTranslucent將惡意包傳遞給system_server。當system_server處理這個惡意軟件包時,會觸發該錯誤。

360攜手移動安全聯盟推出“先行者”行動

目前,我國Android系統手機用戶占比超過50%,數量非常龐大。然而由于補丁的下放延遲,導致市場上的Android手機會存在漏洞修復相對滯后的情況。大多數手機廠商,對于Android系統漏洞的修復都是在等待谷歌官方的補丁。然而,從白帽子發現漏洞提交給谷歌,谷歌收到漏洞報告進行修復,最后下發補丁給廠商需要一段相對漫長的時間。在這段期間,手機用戶往往會因為各類漏洞而面臨著一定的安全威脅。

2017年12月,中國信息通信研究院泰爾終端實驗室牽頭會同設備生產廠商、互聯網廠商、安全廠商、高等院校共同發起成立移動安全聯盟(Mobile Security Alliance,簡稱MSA)。

因此,作為移動安全聯盟理事成員的360,與移動安全聯盟攜手,推出“先行者”行動,與移動安全聯盟一起,幫助國內移動廠商成為漏洞修補的“先行者”。

圖:移動安全聯盟標準政策組組長翟世俊博士現場演講

未來,“先行者”行動將配合移動安全聯盟漏洞修補相關計劃,360在發現漏洞信息的第一時間與移動安全聯盟成員共享,從政策、標準、檢測、修復、應急響應等方面積極推進,與合作廠商同步,判斷漏洞風險,并聯合制定防御方案,確保最短時間內對漏洞進行修復。

關鍵字:谷歌hnderrno

本文摘自:INFOQ

x 谷歌砸重金求挑錯,360發現安卓重大安全漏洞 掃一掃
分享本文到朋友圈
當前位置:安全企業動態 → 正文

谷歌砸重金求挑錯,360發現安卓重大安全漏洞

責任編輯:editor006 作者:陳思 |來源:企業網D1Net  2018-01-23 16:09:42 本文摘自:INFOQ

北京時間1月22日,“穿云箭”組合漏洞媒體溝通會于360大廈召開。上周,谷歌官方發文致謝360 Alpha團隊,并向360 Alpha團隊負責人龔廣頒發了總額為112500美金的安卓漏洞獎勵計劃(ASR)史上最高金額的獎金。360 Alpha團隊在2017年8月向谷歌提交了關于攻破Pixel手機的“穿云箭”組合漏洞報告。

谷歌砸重金求安全公司挑錯

Android Security Rewards(ASR)項目是Google于2015年啟動,主要對那些向公司提交Android安全漏洞的安全專家提供獎勵。該項目要求專家在運行最新Android版的Pixel手機和平板上進行測試,然后根據漏洞的危險程度來提供不同的獎金。

該項目于2017年6月的到了安全專家和白帽子們的大力支持,但是Google表示:“每個Android版本包含更多的安全保護,但是已經有兩年沒有專家獲得漏洞鏈這個頂級大獎了。”不過在上周五,公司終于宣布來自奇虎360技術公司的Guang Gong贏得了這個大獎,獎金共計達到11.25萬美元(約合72萬人民幣)。

  圖:谷歌團隊發文致謝360團隊

據360安全團隊介紹,這次發現的兩個漏洞分別是基于Chrome瀏覽器的V8引擎漏洞CVE-2017-5116,以及Android系統漏洞CVE-2017-14904,是ASR首個可以遠程有效利用的系列漏洞。其中,Chrome瀏覽器漏洞CVE-2017-5116可被用于在Chrome瀏覽器沙盒內遠程執行代碼。

“穿云箭”組合漏洞可以徹底遠程攻破谷歌Pixel手機,對用戶的隱私及財產安全造成極大的威脅。為了保護用戶的手機安全,360 Alpha團隊在17年8月將該組合漏洞報告給谷歌,已成功幫助其修復Android 系統和Chrome瀏覽器。

  圖:360助理總裁兼首席安全工程師鄭文彬現場演講

之所以此次Google會頒發如此高的獎金,一方面是由于“穿云箭”組合漏洞的影響面廣,未修復前大部分安卓手機都可能會被黑客利用這個組合漏洞攻破。另一方面該漏洞是基于底層系統存在的,能影響手機設備上所有應用,甚至包括電話短信等基礎應用,造成的危害最大。不法分子可利用該漏洞獲取用戶短信驗證碼、支付應用權限等,對用戶的個人隱私和財產都造成極大威脅。

Pixel遠程利用鏈的技術細節

根據谷歌發布的在線安全文檔,我們找到了有關這兩個漏洞的技術細節。

漏洞鏈包括兩個漏洞,CVE-2017-5116和CVE-2017-14904。CVE-2017-5116是一個V8引擎錯誤,用于在沙盒渲染過程中獲得遠程代碼執行。CVE-2017-14904是Android的libgralloc模塊中的一個漏洞,用于從Chrome的沙箱中轉移。通過訪問Chrome中的惡意URL,這個利用鏈可以用來將任意代碼注入到system_server中。

RCE錯誤(CVE-2017-5116)

V8 6.0引入了對SharedArrayBuffer的支持,SharedArrayBuffer是一種在JavaScript工作人員之間共享內存的低級別機制,并在工作人員之間同步控制流。

SharedArrayBuffers給JavaScript訪問共享內存,原子和futexes。WebAssembly是一種可以在現代Web瀏覽器中運行的新類型的代碼,它是一種低級匯編式語言,具有緊湊的二進制格式,可以接近本機的性能運行,并提供匯編語言(如C / C ++)目標,使他們可以在網上運行。通過在Chrome中結合使用SharedArrayBuffer WebAssembly和web worker這三個功能,可以通過競爭條件觸發OOB訪問。簡而言之,WebAssembly代碼可以放入SharedArrayBuffer中,然后傳遞給Web Worker。當主線程解析WebAssembly代碼時,工作線程可以同時修改代碼,這會導致OOB訪問。

多功能代碼位于函數GetFirstArgumentAsBytes中其中參數args可能是一個ArrayBuffer或TypedArray對象。將SharedArrayBuffer導入到JavaScript后,TypedArray可能由SharedArraybuffer支持,因此TypedArray的內容可能隨時由其他工作線程修改。

i::wasm::ModuleWireBytes GetFirstArgumentAsBytes( const v8::FunctionCallbackInfo& args, ErrorThrower* thrower) { ...... } else if (source->IsTypedArray()) { //--->source should be checked if it's backed by a SharedArrayBuffer // A TypedArray was passed. Local array = Local::Cast(source); Local buffer = array->Buffer(); ArrayBuffer::Contents contents = buffer->GetContents(); start = reinterpret_cast(contents.Data()) + array->ByteOffset(); length = array->ByteLength(); } ...... return i::wasm::ModuleWireBytes(start, start + length);}EoP錯誤(CVE-2017-14904)

沙盒轉義錯誤是由map和unmap不匹配造成的,這會導致Use-After-Unmap問題。

static int gralloc_map(gralloc_module_t const* module, buffer_handle_t handle){ …… private_handle_t* hnd = (private_handle_t*)handle; …… if (!(hnd->flags & private_handle_t::PRIV_FLAGS_FRAMEBUFFER) && !(hnd->flags & private_handle_t::PRIV_FLAGS_SECURE_BUFFER)) { size = hnd->size; err = memalloc->map_buffer(&mappedAddress, size, hnd->offset, hnd->fd); //---> mapped an ashmem and get the mapped address. the ashmem fd and offset can be controlled by Chrome render process. if(err || mappedAddress == MAP_FAILED) { ALOGE("Could not mmap handle %p, fd=%d (%s)", handle, hnd->fd, strerror(errno)); return -errno; } hnd->base = uint64_t(mappedAddress) + hnd->offset; //---> save mappedAddress+offset to hnd->base } else { err = -EACCES;}…… return err;}

gralloc_map將由參數句柄控制的圖形緩沖區映射到內存空間,而gralloc_unmap將其取消映射。映射時,mappedAddress加hnd-> offset被存儲到hnd-> base,但是當unmapping時,hnd-> base被直接傳遞給系統調用unmap減去偏移量。hnd-> offset可以從Chrome的沙盒進程中操作,所以可以從Chrome的沙盒渲染進程中取消映射system_server中的任何頁面。

static int gralloc_unmap(gralloc_module_t const* module, buffer_handle_t handle){ …… if(hnd->base) { err = memalloc->unmap_buffer((void*)hnd->base, hnd->size, hnd->offset); //---> while unmapping, hnd->offset is not used, hnd->base is used as the base address, map and unmap are mismatched. if (err) { ALOGE("Could not unmap memory at address %p, %s", (void*) hnd->base, strerror(errno)); return -errno; } hnd->base = 0;}…… return 0;}int IonAlloc::unmap_buffer(void *base, unsigned int size, unsigned int /*offset*/)//---> look, offset is not used by unmap_buffer{ int err = 0; if(munmap(base, size)) { err = -errno; ALOGE("ion: Failed to unmap memory at %p : %s", base, strerror(errno)); } return err;}

盡管SeLinux限制了域isolation_app訪問大部分Android系統服務,但isolated_app仍然可以訪問三個Android系統服務。

52neverallow isolated_app {53 service_manager_type54 -activity_service55 -display_service56 -webviewupdate_service57}:service_manager find;

要從Chrome的沙箱中觸發前面提到的Use-After-Unmap錯誤,首先將一個可解析的GraphicBuffer對象放入一個包中,然后調用IActivityManager的binder方法convertToTranslucent將惡意包傳遞給system_server。當system_server處理這個惡意軟件包時,會觸發該錯誤。

360攜手移動安全聯盟推出“先行者”行動

目前,我國Android系統手機用戶占比超過50%,數量非常龐大。然而由于補丁的下放延遲,導致市場上的Android手機會存在漏洞修復相對滯后的情況。大多數手機廠商,對于Android系統漏洞的修復都是在等待谷歌官方的補丁。然而,從白帽子發現漏洞提交給谷歌,谷歌收到漏洞報告進行修復,最后下發補丁給廠商需要一段相對漫長的時間。在這段期間,手機用戶往往會因為各類漏洞而面臨著一定的安全威脅。

2017年12月,中國信息通信研究院泰爾終端實驗室牽頭會同設備生產廠商、互聯網廠商、安全廠商、高等院校共同發起成立移動安全聯盟(Mobile Security Alliance,簡稱MSA)。

因此,作為移動安全聯盟理事成員的360,與移動安全聯盟攜手,推出“先行者”行動,與移動安全聯盟一起,幫助國內移動廠商成為漏洞修補的“先行者”。

圖:移動安全聯盟標準政策組組長翟世俊博士現場演講

未來,“先行者”行動將配合移動安全聯盟漏洞修補相關計劃,360在發現漏洞信息的第一時間與移動安全聯盟成員共享,從政策、標準、檢測、修復、應急響應等方面積極推進,與合作廠商同步,判斷漏洞風險,并聯合制定防御方案,確保最短時間內對漏洞進行修復。

關鍵字:谷歌hnderrno

本文摘自:INFOQ

電子周刊
回到頂部

關于我們聯系我們版權聲明隱私條款廣告服務友情鏈接投稿中心招賢納士

企業網版權所有 ©2010-2024 京ICP備09108050號-6 京公網安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 分宜县| 威海市| 庄浪县| 扎赉特旗| 武强县| 洱源县| 乌拉特后旗| 台东市| 阿尔山市| 栾川县| 永清县| 永康市| 十堰市| 中江县| 罗城| 望谟县| 甘泉县| 宁都县| 正安县| 沾化县| 常熟市| 清远市| 临夏市| 枞阳县| 酒泉市| 通榆县| 桓台县| 贞丰县| 河东区| 安仁县| 榆林市| 陇南市| 东乌| 金平| 敖汉旗| 五指山市| 天全县| 济南市| 祁连县| 农安县| 大丰市|