跳至主內容

Android 系統推送廣告的危機?!

發佈日期: 2012年08月22日 7176 觀看次數

推送廣告 (Push Ad)

 
最近,有 Android 用戶回報,他們在通知欄收到一些不明來歷的廣告。據了解後,得知這是推送廣告 (Push Ad),在不定時的情況下,推送一些通知訊息,例如文字廣告、遊戲下載、程式更新、程式推介等等。
 
圖1. 推送廣告
圖1. 推送廣告
 
這些推送廣告除了令人煩擾外,其實它暗藏危機,有機會引起其他資訊保安問題。為解決和被免受推送廣告的滋擾,我們先了解Android系統的基本運作。
 

通知欄 (Notification Bar)

 
對於 Android 用戶來說,通知欄 (Notification Bar) 絕對不會陌生。除了時鐘、電量和手機網絡訊號等資訊外,當系統收到訊息或程式更新的時候,都會在介面頂部的通知欄顯示相關資訊。
 
通知欄非常方便,當有新訊息,用戶便可以透過通知欄,快速閱讀相關內容。以SMS短訊為例(圖2),當你收到朋友的訊息時,就可以在通知欄向下滑動一下,觀看接收的大概內容,只要在訊息上再按一下,就能即時打開短訊程式,方便回覆。
 
圖2. 短訊通知 
圖2. 短訊通知
 

推送訊息 (Push Message)

 
推送訊息其實是 Android 下的一種服務,名為 Google Cloud Messaging for Android (GCM),舊服務是 Cloud to Device Messaging (C2DM),由Google提供開發。當應用程式使用了這個服務,程式開發者就可以按需要發送推送訊息到用戶的手機上。例如,大家常用的網絡短訊程式 WhatsApp,也是使用這項服務。手機不用長期訪問伺服器,直到有短訊發出,何服器才會推送給收件人。
 
圖3. 雲端推送訊息的基本流程
圖3. 雲端推送訊息的基本流程
 
透過 GCM,有些廣告中介公司就為程式開發員和商品公司接上,程式員使用中介公司所提供的開發程式碼 (API),利用程式推送廣告,程式員就能賺取部份廣告收益。
 
注意:如果程式需要使用GCM服務,就必須得到「雲端推送訊息」的權限 (c2dm.permission.RECEIVE)。
 
 

Android 系統的後台服務

 
Android 系統擁有一個多工的環境,系統可同時執行多個前台程式和後台任務。正因為系統有後台服務,我們並不容易知道哪些程式正在運作。有些程式更會在手機開啟時自行啟動。雖然手機介面並沒有程式執行,但實際上,程式已在背後運作。
 
圖4. 執行中的後台程式
圖4. 執行中的後台程式
 
如果下載的應用程式使用了「開機時自動啟用」權限 (RECEIVE_BOOT_COMPLETED),它就能在手機開啟時自動執行,在雲端登記手機資料,準備接受推送訊息服務。整個過程,用戶並不容易注意到。若果這個應用程式是接受推送廣告,或程式主動從伺服器獲取廣告,在通告欄不定時顯示,那就真是煩透了。
 

推送廣告的危機

 
一般用戶可能覺得接收推送廣告除了比較煩擾之外就沒有大問題,但事實並非如此。
 
問題1:數據使用量增加
推送廣告,內容小不免會有文字和圖像,這些文字和圖像都會使用流動數據流量。如果身在海外,流動數據的漫遊費用有可能變得昂貴。
 
問題2:耗電量增加
這些推送服務都會連帶提示音效和手機震動功能,如果長時間收到推送訊息,耗電量亦會相對增加。
 
問題3:手機產生多餘檔案
因為推送廣告有可能帶有圖像檔案,所以程式會預載相關檔案到手機中。這些檔案都寄存在手機內,使手機空間下降。
 
問題4:容易引發其他資訊保安的問題
大部份使用廣告推送服務的程式都會要求很多的權限,而某些程式的推送廣告更會扮得和正常訊息一樣,如系統訊息、程式更新通知等等。當使用者在不為意誤按了假裝訊息,它有可能帶到一些高危網站或釣魚網站。因為程式已擁有很多的權限,手機遭到入侵和資料遭到竊取的風險亦會相應增加。
 
就以上四項問題,以資訊保安的問題最為危險。為解決推送廣告所引致的問題,我們將會在下一篇文章「保護你的手機,遠離推送廣告的問題」談論解決方法。