你部Smartphone 安全嗎?

每次開機,第一時間會用邊隻 Apps ? Facebook ? Whatsapp ?定 check email 呢?一般而言,我們都會上 App Store 或Google Play 去下載心儀 Apps做自己想做的事‥‥‥。時間長了,會發現即使電話叉足電,閒置電池都會很快被耗盡。除此之外,也有不少電話被監聽,中毒等新聞,網絡上不少教學要機主格式化電話,備份資料。有見及此,想從 programming 和用家角度去分享心得。
1. 熄機不一定是完全停止運作,永遠不知道 Apps 背後運行什麼程式
在電腦世界中,背後運行的程式,叫做 Thread。Thread就是跟主程式分開,獨立進行背景程式。只要背後寫成一個回應方式 (callback method) ,就可以定期更新主頁。在 Android / iOS 的世界中,有三種類型的 Thread :行單一個Task 、重覆行一個Task、什至連續一個 Backend Class 去使用。
而以上所有Threads,如果不是用家設定教它停止運作,或用呼叫 App Stack 掃走,電話很快就會耗盡電力。即使依正常步驟離開Apps,Threads 也未必停止運作。
如果有開發 Android App 的經驗,就會明白所有開機關機的程序都是先由截取按鈕的事件觸發的。即使離開某 App ,如果開發者設計一個 Thread,是一定需要用家到設定才叫它停止運作。
Hacker 可以從熄機的流程中截取按下和放開按鈕的觸發事件,可執行Thread去做任何事。如果你已經 root 了電話或 jail break iPhone, App 更可以竊取所有用戶資料和聯絡人名單的電郵和電話號碼。
2.要使用太多無謂的權限的Apps,安全性教人懷疑。
不少Apps 開發者,特別專注 Android Developement 方面,都會多開幾個權限,方便開發者改良。尤以拍攝App、開閃光燈的App其嚴重:
如果稍為細心留意,就知道開閃光燈跟開 Wi-Fi、提取用戶資料是風馬牛不相及的事,然而,用家心急起來多數不為意App會提取你電話中什麼權限而已。另外,Google與Apple就審批一個 Apps 上架與否,處理方式大有不同。Google 只會掃描 APK一次,看看有沒有明顯的木馬,和內容是否符合要求,最快可以兩小時後就成功上架;Apple 卻要數個星期。截圖和文字描述被呈上後,全程由人手審批。如果要跟其他電子儀器溝通或配合,Apple App Reviewer 更會要求開發者呈交一段 Demonstration Video,好讓其他人明白如何使用那隻App。因此,一般人會更易相信 iOS App 比 Android App 安全。
可以看到,使用Apps 雖然方便,但暗藏危機。下載 Apps 前,請停一停,諗一諗,是否真的清楚明白使用的權限和衡量個人資料被竊取的風險。至於放資料上雲端等是否安全,就留待日後有機會再講。