
你是否常常在新聞上看到「快刪! 這幾款App會盜走信用卡資料」之類的標題? 你會不會好奇這些惡意軟體是怎麼進到手機的? 不論是Google Play Store還是Apple App Store,都有安全審核機制,它們是怎麼繞過的? 今天的文章會討論這是怎麼達成的。
一、網頁型
這個是最簡單、最省力的方式。駭客會先寫一個網頁,內容可以是任何正常的東西,只要能吸引人下載使用就好。接著,等到累積到一定數量的使用者,這個App就會卸下偽裝,進行新用卡資料竊取或是其他攻擊。
例如: 我開發一款手機惡意軟體,表面上偽裝成「樹羊文章閱讀器」,由於我已經有網頁版的文章,所以我只要學會開發手機惡意軟體就好,網頁介面可以直接使用第三方的套件,就像你在LINE、IG裡也能直接點開網頁,不用使用瀏覽器應用程式一樣。這個例子發揮了網頁型城市開發的簡單性。
另一個網頁型應用程式的優勢是它卸下偽裝的方便性。因為應用程式只是一個包裝過的瀏覽器,所以要更新顯示內容的時候,根本不需要更新應用程式,只要修改網頁內容,用戶端就會跟著改變,並發動攻擊,例如把原本的正常網頁替換成釣魚網頁。直接更新網頁而不更新應用程式就意味著它可以繞過應用程式商店的審核機制。
二、後門更新
雖然前面才剛提到,網頁型應用程式卸下偽裝時,因為不需要更新應用程式本身,所以可以繞過平臺審核,那是不是代表透過商店更新App時,惡意軟體就會被偵測到? 我只能說半對半錯,因為如果一個應用程式透過更新來安裝惡意軟體,那很又可能被商店的安全審核機制發現,不過還是有方法可以規避。
如果你有在玩手機上的線上遊戲,你或許會發現由時候明明到商店更新過了,為什麼打開遊戲還要下載新資源一次? 這是因為會需要商店更新的,只有涉及程式碼變更的時候,也就是需要重新安裝的時候,但是更新圖像、角色模型等資料的時候不用。這有點類似你的電腦安裝新的驅動程式後可能需要重新開機,但是下載文件時不用的概念。
因此,駭客可以利用這個規則,透過應用程式商店更新新增一個後門,使用者更新完後再透過後門下載惡意程式。這就像你一定不能攜帶毒品過海關,但是你拿再多的量杯都可以。把量杯(或其他儀器)攜帶入境後,就能製造毒品。不要問我原料怎麼來,這只是舉例。
事實上,這個手法也會被利用在電腦的惡意軟體上。雖然電腦上比較不需要規避應用程式商店審核,但是會有資安專家分析、舉報惡意軟體,而一旦被舉報,防毒軟體看到這個惡意程式時就有辦法認得。為了避免被分析,有些惡意軟體會分成執行器和被執行的程式。執行器會被安裝在A位置、惡意程式碼會放在B位置,而執行器的內容就是「讀取B位置的內容並執行它」。如果資安專家只有取得執行器,沒有取得被放在B位置的程式碼,那會被當作無害的執行器,因為沒有惡意程式碼的執行器是無害的。
有的時候,這個機制會被簡化,例如要輸入密碼才能執行。如果資安專家在分析惡意軟體時不知道密碼,那就算執行惡意軟體,什麼事都不會發生。這就像藏頭詩一樣,如果不知道要看每一行的第一個字,就會以為這個信件只是普通的內容。