高危險Android漏洞Janus, 攻擊者可繞過簽章,竄改APP

Android的2017年12月安全更新修補了一個嚴重漏洞,這個漏洞會讓攻擊者在不影響簽章的情況下修改已安裝的應用程式。讓攻擊者能夠存取受影響的設備(間接地)。研究人員在去年 7月首次發現這個漏洞(被指定為CVE-2017-13156,也被稱為Janus漏洞),受到影響的Android版本包括5.1.1到8.0;約有74%的Android設備安裝這些版本。

趨勢科技發現至少有一個應用程式使用了這技術。這特定應用程式利用此漏洞讓自己更難被行動安全軟體偵測。之後也可能用來侵害其他應用程式並存取使用者資料。

漏洞分析

Android應用程式的安裝套件(.APK檔案)其實是.ZIP壓縮檔。.ZIP檔案格式有幾個特點讓這種攻擊發生。看看底下的基本.ZIP檔案結構:

1.ZIP檔案結構

 

檔案結構由三部分組成:檔案實體(File Entry)、核心目錄(Central Directory)和核心目錄結束(EOCD)。核心目錄包含壓縮檔內每個檔案的資料;應用程式使用此目錄來找出記憶體位置以存取所需的檔案。

不過每個檔案實體並不需要相鄰。甚至可以將任意資料放入.ZIP檔案的這部分,如下所示:

2ZIP檔案結構(紅色為任意資料)

 

攻擊者可以在APK檔案開頭放進一個惡意DEX檔案(如下所示)。有漏洞的Android版本仍會將其識別為有效的APK檔案並且執行。 繼續閱讀