那曲檬骨新材料有限公司

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>通訊/手機編程>

基于mediaserver探討Android加固

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

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發表評論

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

      發表評論,獲取積分! 請遵守相關規定!

      ?
      至尊百家乐赌场娱乐网规则| 百家乐赌博导航| 百家乐透视牌靴价格| 大发888老虎机网页版| 博乐百家乐官网游戏| 乐中百家乐官网的玩法技巧和规则| 圣安娜百家乐包杀合作| 九游棋牌大厅| 澳门百家乐官网路单怎么看| 百家乐最新投注方法| 威尼斯人娱乐城最新网址| 葫芦岛市| 新濠百家乐官网娱乐城 | 百家乐官网看大路| 百家乐闲和庄| 网上百家乐| 海港城百家乐官网的玩法技巧和规则 | 顶旺娱乐| 励骏会百家乐官网的玩法技巧和规则| 百家乐大娱乐场开户注册 | 百家乐官网园云鼎赌场娱乐网规则 | 三国百家乐官网的玩法技巧和规则| 狮威百家乐赌场娱乐网规则| 平原县| 百家乐娱乐城有几家| 大发888亚洲游戏平台| 百家乐官网游戏机价格| 金域百家乐娱乐城| 顶旺娱乐| 百家乐官网天下第一庄| 金龍百家乐的玩法技巧和规则| 拜泉县| 百家乐扑克投注赢钱法| 百乐门| 百家乐投注法则| 澳门娱乐城开户| 欢乐谷百家乐官网的玩法技巧和规则 | 大世界百家乐娱乐| 百家乐官网平台哪个好本站所有数据都是网友推荐及提供 | rmb百家乐的玩法技巧和规则| 百家乐官网博彩博彩网|