chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>通訊/手機編程>

基于mediaserver探討Android加固

大小:0.4 MB 人氣: 2017-10-10 需要積分:1
為了提升Android系統(tǒng)的安全系數(shù),我們一直歡迎并獎勵任何發(fā)現(xiàn)漏洞的研究者。比如,2015年,mediaserver的libstagefright中被發(fā)現(xiàn)了一系列漏洞,我們在同年8月和9月的安全公告(Security Bulletin)中對此進行了更新。
  除了每月解決這些問題,我們還在開發(fā)新的安全功能來強化現(xiàn)有安全模式,并提供額外的深度防護措施。防護措施主要有兩個目標(biāo):
  防護:防止漏洞;
  遏制:通過降低優(yōu)先等級及隔離不信任內(nèi)容相關(guān)組件來保護系統(tǒng)。
  防護(Prevention)
  libstagefright中大部分漏洞都是無符號整數(shù)溢出(integer overflows)導(dǎo)致的堆棧溢出。且libstagefright的多個整數(shù)溢出讓攻擊者可以分配不為輸入數(shù)據(jù)提供足夠空間的緩沖區(qū),導(dǎo)致堆棧中出現(xiàn)緩沖區(qū)溢出。
  無符號整數(shù)溢出的后果已有清晰定義,但接下來的操作可能產(chǎn)生無法預(yù)料的風(fēng)險。相比之下,有符號整數(shù)溢出在C/C++語言中未被定義,意味著不能保證溢出產(chǎn)生的結(jié)果,而編譯者可能選擇典型最快最簡單的操作。我們已經(jīng)調(diào)整了編譯器,為有符號和無符號整數(shù)溢出均提供更加安全的預(yù)設(shè)值。
  UndefinedBehaviorSanitizer(UBSan)是檢測非定義或錯誤操作的LLVM/Clang編譯器工具鏈。UBSan可以檢查有符號和無符號整數(shù)溢出等多種非定義和不安全操作,在此過程中會在執(zhí)行時間為產(chǎn)生的可執(zhí)行的整數(shù)溢出條件測試添加新代碼。比如圖1顯示的是:研究者提供的原始補丁應(yīng)用之后,libstagefright中的MPEG4Extractor組件的parseChunk源代碼。底下黑框里的修改內(nèi)容是為了防止整數(shù)溢出。
  基于mediaserver探討Android加固
  圖1 源代碼中難以察覺的無符號整數(shù)溢出
  可惜SIZE_MAX和size為32位,而chunk_size是64位的,有可能出現(xiàn)檢查不徹底,存在整數(shù)溢出的情況。紅框里的size + chunk_size可能導(dǎo)致整數(shù)溢出,以及產(chǎn)生比size elements更小的緩沖區(qū)。因為size + chunk_size可能比藍框標(biāo)注出來的size更小,所以接下來memcpy可能導(dǎo)致內(nèi)存崩潰。關(guān)于該漏洞潛在exploit vector的更多信息請參考Project Zero。
  圖2將以上代碼片段產(chǎn)生的集合與第二個帶有整數(shù)凈化的編譯版本進行比較。紅框里的是引發(fā)整數(shù)溢出的添加操作。在未凈化版本中,size (r6)和chunk_size (r7)是一起添加的,可能導(dǎo)致r0溢出,且小于size。然后緩沖區(qū)分配到規(guī)定的r0 size,size字節(jié)被復(fù)制上去。如果r0小于r6,就會出現(xiàn)內(nèi)存崩潰。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?