QR Code 是一套由日本開發商 Denso Wave 於 1994 年為了解決傳統「一維條碼」資訊容量不足,進而創建的矩陣二維條碼技術。當初是為了在工廠追蹤汽車零件,如今卻成了現代人生活中最不設防的資安後門。
其實網路上許多安全性議題,初衷都是良善的,建立在所謂的「信任機制」下。你相信 Google,或許還聽過他們早期的不為惡精神(Don’t be evil),所以在授權 G 家服務時不會有任何遲疑,至少在資安這塊是這樣。普通一點的情況下,你在使用政府相關網站時也會自動產生信賴感──即使這類政府網站早已被駭客攻擊成功過無數次。網路上的信賴感,說起來其實是人類與電腦間極其奇妙、也最脆弱的一種直覺反射。
過去我們曾經公開過不少手機的資安問題,例如《詐騙陷阱:千萬不要隨便開啟 7-11 電子禮卷的贈品簡訊》以及《科技詐騙:閒聊 1+1>2 的智慧型手機與網路詐騙手法》這兩篇文章中,都一再反覆警告不要輕易點擊來路不明的網址。
問題來了:你懂得提防簡訊裡的奇怪連結,但為什麼路邊一根電線桿、停車場繳費機、或餐廳桌上的一張 QR Code 貼紙,你卻會毫不猶豫地拿起手機掃下去?
蒙上眼睛搭計程車
說穿了,QR Code 就是一組「被圖形化的網址或指令」。
掃描 QR Code 的動作,就像是你把眼睛蒙起來搭計程車。你遞給司機(手機鏡頭)一張寫著亂碼的紙條,在抵達目的地(網頁載入完成)之前,你完全不知道自己會被載去哪裡。
它可以是一份單純的餐廳菜單,也可以是一個夾帶惡意木馬程式的 APK 下載點,更常見的是偽裝成第三方支付的釣魚網站。
實體的偽裝,突破心理防線
這項技術最大的致命傷,在於它把複雜的數位資訊降維成一張「看起來無害的幾何圖形」。
駭客不需要懂得破解伺服器或加密憑證,他們需要的只是一台印表機和幾張雙面膠。這種被稱為「QR 釣魚(Quishing)」的手法,就是直接把惡意 QR Code 貼紙,精準覆蓋在原本合法的條碼上。實體世界賦予了這張貼紙虛假的權威感,當你以為正在掃描繳交停車費時,實際上卻是把信用卡資訊直接輸入給了海外的詐騙集團。
有些人甚至連自己在製作 QR Code 時,都有可能被駭客設計的假生成網站,製作出一張連結被偷改掉的釣魚圖片。有興趣的人可參考《比特幣 Bitcoin QRCode 條碼產生器的詐騙網站》這篇文章。
從共享單車到自助點餐
環顧我們每天使用的服務,這類實體覆蓋攻擊的重災區無處不在。
例如騎乘 YouBike 時車柱上的掃碼區、公有停車場的繳費機、電動車充電樁、甚至是小吃店桌上的 LINE Pay 或街口支付轉帳碼。多數人的習慣是打開 iPhone 或 Android 內建相機,看到畫面跳出黃色連結框就憑直覺點擊,完全沒有檢查網域(Domain Name)是否拼字錯誤,直接將系統防線拱手讓人。
而且手機螢幕小,掃描 QR Code 時顯示的提示網址,也可能大半字元都看不到,更容易降低人們的警覺心。
不是不能用,而是要分場合
QR Code 本身沒有原罪,防禦的關鍵在於分辨「動態」與「靜態」。
當你在超商結帳,由店家 POS 機螢幕動態產生的條碼,或是你朋友手機螢幕上當下叫出的 LINE ID 加好友碼,這類「動態生成、具備短暫時效性」的 QR Code 是相對安全的。
反之,只要是印在紙上、貼在牆上、或是壓在壓克力板底下的「靜態」條碼,掃描前都必須預設它有被動過手腳的風險。
鷹眼結語
下次在戶外看到 QR Code,準備拿出手機前,請先用手指摳一下邊緣。只要邊緣有浮凸、像是後來貼上去的貼紙,立刻停止動作。
記住,不隨便掃碼,就像不隨便吃路邊陌生人給的糖果一樣,這是數位時代最基本的求生本能。


發佈留言