文章專區

2020-07-15過濾JavaScript,手機不再裸奔! 463 期

Author 作者 洪朝貴/朝陽科技大學資訊管理系副教授。

你的手機,被抓去「挖礦」了嗎?

每次在手機上用瀏覽器造訪陌生的網站,都是在邀請對方把他的JavaScript(JS)程式碼傳來你的手機上執行、都是在冒險。例如手機莫名其妙發燙,說不定就是因為造訪含有挖礦JS程式碼的網站,成為挖礦劫持(cryptojacking)的受害者,幫別人賺取密碼貨幣。

而平時大家所信任的網站,甚至也可能因站方不小心採用惡意程式碼或資安防護出現漏洞,使得訪客的裝置因此被植入惡意程式。例如2017年時,造訪美國英睿達(Crucial)科技、運動品牌艾華朗(Everlast)網路賣場以及1500多個其它網站的許多訪客,他們的手機都被徵召去當無償礦工。這些網站的開發者使用了LiveHelpNow這個工具來實作網站上的即時對話和線上支援功能,沒想到它竟內含挖礦程式碼Coinhive;挖礦還算是有感且客氣的,其它低調默默竊取隱私個資的JS程式碼,可能造成更大、更持久的危害。

避免手機受害的第一步: 關掉JavaScript吧

所以,筆者在手機安裝了兩個瀏覽器,把其中一個的JS關掉並以此作為預設瀏覽器,如筆者在F-droid〔註一〕市集上隨意找到的JumpGo與Lightning瀏覽器。由於Lightning沒有關掉JS,所以筆者幾乎是以「白名單」的方式在使用它,只造訪學校、我國政府、Google旗下(不含 YouTube)等一兩打高度信任的網站。此外,筆者也用它登入Google 的帳號,畢竟用了太多Google的工具/服務,已經無法自拔,但至少不會在Lightning上面做搜尋,以免陷入Google的過濾氣泡(filter bubble)太深【編按:即俗稱的同溫層,是網站針對個人化搜尋,進而提供篩選後內容的結果】。

凡是需要搜尋,或是在Lightning上面看到其它超連結,筆者都手動複製並改貼到JumpGo去。JumpGo一裝好,第一件事就是到「設定」的General Settings底下把JavaScript關掉。你也可以用其它開放原始碼瀏覽器,絕大多數都有這個選項可以開關,但有可能放在「進階」或其它選單底下。凡是不在心中白名單的網站,一律用(關掉JS的)JumpGo閱讀。

有一些網站如果關閉了JS就沒辦法使用,但如果是工具類的網站,經常可以找到自由軟體(free software)〔註二〕版的應用程式(App)。例如Google地圖一定要開啟JS才能用,那就安裝替代品:可離線使用、不會追蹤你的OsmAnd開放街圖。至於沒有替代品的網站,如果因為關掉JS就無法閱讀,那就先略過這個連結,等到回電腦上再看。

另外,也要進入安卓(Android)系統的「設定」=>「應用程式和通知」=>「預設應用程式」,要求安卓系統不論在哪一個App裡面遇到超連結的時候,都會以安全但難用的「禁用JS瀏覽器(以筆者而言是JumpGo)」來開啟。

電腦瀏覽也有一套, 黑名單全部擋下來

在電腦上,有一個比較簡單的折衷辦法,就是安裝瀏覽器擴充套件uBlock Origin。這個套件預設採取黑名單制,會根據用戶所訂閱的清單來決定要封鎖哪些網站的JS,其它的一律放行。諸如uBlock Origin或Adblock Plus之類的套件,雖然以擋廣告出名,但其實它們還可以阻擋各種惡意網站,或臉書這種舖天蓋地、全面追蹤用戶行為的社交媒體。至於到底要把哪些網站列為黑名單,就看用戶決定訂閱哪些(網友整理分享的)清單。

手機裝置也有鎖子甲 教你如何運用Blokada

在安卓系統的手機上,Firefox及同一系列的瀏覽器(如IceCatMobile)也可以安裝uBlock Origin等擴充套件,但是較多人使用的Chrome及同一系列瀏覽器似乎並沒有支援此功能的打算。

還好,f-droid市集上有一個叫Blokada的App,它的運作方式類似uBlock Origin,都是以用戶訂閱的清單來決定是否阻擋網站。不同之處在於,它的防護範圍不僅限於單一瀏覽器App,而是整隻手機所有Apps的網路流量。【編按:Google Play市集上的版本叫作Blokada Lite,在網域名稱系統(Domain Name System, DNS)的層次運作,原則上較為粗糙,且用戶自己無法調整訂閱清單,但也有一些差強人意的阻擋效果。】它運作的方式是化身為虛擬私人網路(virtual private network, VPN)〔註三〕攔截所有Apps的網路連線,逐一決定是否放行。順帶一提:安卓上任何VPN的App都會攔截所有Apps的網路連線,所以必須很確定你信任它才可以使用;其它功能的Apps選到沒有原始碼的Apps就算了,VPN類型的Apps請一定要堅持只用自由軟體(App很可能是免費下載的,但VPN服務當然會收費)。


補給站+
全球百大VPN公司中,有三成屬中資,但是,高度言論管制、國內禁用VPN、全面監控民眾的中共政府,為什麼要那麼熱心地為全球人士提供免費VPN呢?(眨眼)


Blokada安裝好之後,只要進首頁確認看到「Blokada is active」或 「廣告阻擋已啟用」,手機的資安評等馬上從裸奔等級提升至鎖子甲等級,可以阻擋掉九成以上的JS攻擊(下圖左)。想要瞭解自己使用手機以來直到一分鐘之前這段期間到底被多少廣告網站偷窺(或被更惡意的入侵),請點進「主機記錄」查看,也可以點選並下拉主畫面上方的橫弧線,動態地查看近一兩分鐘內Blokada阻擋了多少個網站,進而瞭解哪個App特別可疑(下圖中及右)。
 

圖一:手機安裝好Blokada後的操作介面示意圖。(作者提供)

如果希望加強阻擋效果,可以進入「主機列表」,多勾選幾個清單。甚至還可以按「+」手動從網址或檔案新增過濾清單。例如FilterList(https://filterlists.com)這個網站上有許多清單可以挑選,多到令人頭昏眼花。至於比較推薦哪些清單呢?這個我還沒有研究。清單勾選得越多,缺點是會佔用大量記憶體,且每次連網的檢查可能會讓所有的Apps變慢;優點則是網路流量減少,可能較省電也節省了數據用量。建議不要勾選太多個。

不過,安裝Blokada可能使某些網站或Apps的某些功能失效,如筆者自己最常遇到的是無法留言和參與各種討論。因此,凡是遇到網站或App功能怪怪的時候,請記得先檢查是不是Blokada造成的。

結語

資安專家施奈爾(Bruce Schneier)說:「安全是一種過程,而非結果。(Security is a Process, not a Product.)」安裝Blokada對於提升手機的安全確實很有幫助,但這並不表示從此以後就可以高枕無憂。以後再找機會跟大家分享筆者的「節慾手機」使用習慣。

〔註一〕F-Droid是安卓系統裡功能類似於Google Play商店的軟體資源庫,裡頭只包含自由及開放原始碼軟體。

〔註二〕自由軟體可不受限制地自由使用、複製、研究、修改和分發,相對的概念則是閉源軟體(Proprietary Software)這種非自由軟體。
不過,由於自由軟體的定義與是否收取費用無關,因此自由軟體不見得是免費的。

〔註三〕所謂VPN,指的是網際網路中從裝置到網路間的加密連線,如此便可確保機密性資料的傳輸安全,並防止未經授權的人員竊聽流量。


延伸閱讀
1.Trend Labs,趨勢科技全球技術支援與研發中心,〈挖礦劫持(Cryptojacking)攻擊影響近1,500個網站〉,趨勢科技,https:// scimonth.pse.is/QQPHM,2017年12月4日。

2.洪朝貴,〈保護隱私的f-droid及guardian project自由軟體市集〉,玩具烏托邦,https:// newtoypia.blogspot.com/2015/09/f-droidguardian-project.html,2015年9月28日。

3.Abby Huang,〈報告:全球三成VPN龍頭公司屬中資翻牆更難、個資恐外泄中共〉,關鍵評論網,https://www.thenewslens.com/ article/121877,2019年7月10日。