我們之前討論過有些上鎖應用程式沒有適當的隱藏檔案。趨勢科技最近看到另一個上鎖應用程式 – AppLock 有相同的問題。只是這應用程式並不只是沒有隱藏好檔案,還包括了讓其他應用程式能夠變動它的設定檔。設定檔內包含了應用程式的偏好設定、登錄密碼和電子郵件,甚至包括 Google Ad Publisher ID,這被用在 Google 的 AdSense 帳戶。
存取設定檔
當使用者試圖「鎖住」或「隱藏」一個檔案時,應用程式只會將其從原本的位置搬到SD卡上的特定位置 – 位在/sdcard/.MySecurityData/dont_remove/下的子目錄。「隱藏」的檔案既沒被加密也沒有用任何方式進行編碼。和此檔案相關的資料,像檔案名稱、副檔名和時間戳記都被塞入SD卡上一個全域可讀的資料庫,路徑是/sdcard/.MySecurityData/dont_remove/6c9d3f90697a41b。因為這資料庫是全域可讀,所以任何應用程式都可以讀取或存取此資料庫。
惡意份子可以利用這一點來操弄此應用程式的設定檔。一種操弄檔案的方式是改變應用程式的 Google Ad Publisher ID。如上所述,此 ID 用於 Google 的 Adsense,用來產生廣告所帶來的收入。攻擊者可以藉由鎖住一個檔案開始來存取資料庫。
因為資料庫儲存在SD卡上,無須特殊權限來編輯檔案。只需要一般用於讀寫檔案的權限 – android.permission.MOUNT_UNMOUNT_FILESYSTEMS和android.permission.WRITE_EXTERNAL_STORAGE。
圖1、讀取資料庫
攻擊者接著可以建立一個假的 Google Ad 設定檔,然後將其放到一特定路徑。然後可以更新資料庫以指向此路徑,透過應用程式的「解鎖」功能來觸發。如下面截圖所示,該設定檔被成功地變更。
圖2、成功插入假的 Google Ad 設定檔
使用者資訊外洩
操弄設定檔還可以打開資料外洩的大門。網路犯罪分子可以更新資料庫檔案的媒體表並變更路徑目錄。一旦觸發解鎖功能,媒體表可被複製到可存取的 SD 卡目錄上。所儲存的密碼和電子郵件帳戶可能會外洩。
圖3、可以看到電子郵件地址和密碼
密碼經過加密,但是可以透過解密服務或 MD5 彩虹表(rainbow table)來解開。
圖4、加密的密碼可以透過各種不同工具來解開
應用程式崩潰
操弄設定檔也可以導致應用程式崩潰。如果有人在檔案中包含不存在的路徑,應用程式會暫停幾分鐘,最終導致崩潰。
開發人員和使用者的損失
設定檔可被存取對開發人員和使用者都會帶來麻煩。開發人員可能會損失收入,如果與他們與 Google AdSense 帳戶的連結被切斷。對使用者來說,最主要的問題在於可能的資料外洩,包括帳號憑證和電子郵件帳號。
@原文出處:AppLock Vulnerability Leaves Configuration Files Open for Exploit
作者:Simon Huang(行動安全工程師)