近日,Google在12月發佈的安卓系統安全公告中披露了一個名為“Janus”安卓漏洞(漏洞編號:CVE-2017-13156)。該漏洞可以讓攻擊者繞過安卓系統的signature scheme V1簽名機制,進而直接對App進行篡改。而且由於安卓系統的其他安全機制也是建立在簽名和校驗基礎之上,該漏 ...
近日,Google在12月發佈的安卓系統安全公告中披露了一個名為“Janus”安卓漏洞(漏洞編號:CVE-2017-13156)。該漏洞可以讓攻擊者繞過安卓系統的signature scheme V1簽名機制,進而直接對App進行篡改。而且由於安卓系統的其他安全機制也是建立在簽名和校驗基礎之上,該漏洞相當於繞過了安卓系統的整個安全機制。 一旦攻擊者將植入惡意代碼的仿冒的App投放到安卓商店等第三方應用市場,就可替代原有的App做下載、更新。網友安裝這些仿冒App後,不僅會泄露個人賬號、密碼、照片、文件等隱私信息,手機更可能被植入木馬病毒,進而或導致手機被ROOT,甚至被遠程操控。 在第一時間監測到“janus”漏洞的情況後,頂象技術及時更新了“安全SDK”的防禦策略,並率先發佈了針對該漏洞的防護方案,以幫助廣大用戶防範基於該漏洞的攻擊威脅。 分析顯示,安卓5.0到8.0系統以及基於signature scheme V1簽名機制的App均受“Janus”漏洞影響;基於signature scheme V2簽名的App則不受影響。 安卓用戶: 1、儘快升級到最新版安卓系統; 2、短期內,儘量到官方網站更新、下載App。 安卓開發者: 1、儘快將App APK(安裝包)升級到最新的Signature scheme V2簽名機制; 2、及時校驗App APK文件的開始位元組,以確保App是未被篡改; 3、頂象技術的“安全SDK”以更新防禦機制,可以有效防護該漏洞。
“Janus”漏洞爆發原因是什麼?
為了提升安卓系統的安全性,Google發佈了新的簽名認證體系signature scheme V2。由於,signature scheme V2需要對App進行重新發佈,而大量的已經存在的App APK無法使用V2校驗機制,所以為了保證向前相容性,V1的校驗方式的還被保留,這就導致了“Janus”漏洞的出現。 Google為什麼發佈signaturescheme V2呢?那就盤點一下,近年來安卓系統曾爆出的一系列安全問題吧。這些年,安卓系統爆出的簽名漏洞
“MasterKey”漏洞 “Janus”是一個簽名與校驗漏洞,其實,這不是安卓第一次爆出此類漏洞。在2013年 Black Hat上,Bluebox的安全團隊公佈了一個“MasterKey”漏洞。該漏洞影響包括當時最新的安卓6.0系統及以下所有系統。那麼,這些漏洞是怎麼形成的呢? “MasterKey”漏洞原理是基於APK(ZIP文件格式)裡面的多個ZipEntry實現的,具體如下: 1. 向原始的App APK的前部添加一個攻擊的classes.dex文件(A); 2. 安卓系統在校驗時計算了A文件的hash值,並以”classes.dex”字元串做為key保存; 3. 然後安卓計算原始的classes.dex文件(B),並再次以”classes.dex”字元串做為key保存,這次保存會覆蓋掉A文件的hash值,導致Android系統認為APK沒有被修改,完成安裝; 4. APK程式運行時,系統優先以先找到的A文件執行,忽略了B,導致漏洞的產生。 修複方式: 禁止安裝有多個同名ZipEntry的APK文件。“9950697”漏洞 在“9695860”漏洞爆出不久後,APK文件中被髮現存在類似的整形溢出漏洞,這個比“9695860”漏洞更容易利用且可以攻擊APK中的任意文件。 原因是安卓預設認為Zip中localfile header和central directory entry中的文件名長度和和extra的長度是一致的。安裝過程中java代碼在處理時出現溢出,讀取到了正常的文件B,通過校驗,APK正常安裝。運行過程中,C代碼處理時沒有溢出,讀取到了攻擊的文件A。