認識QR code潛在攻擊及對應手法
QR code最早用於協助汽車生產商追蹤零件,至今已在各行各業廣泛使用。不久之前,我們簡單介紹了這技術的一些基本知識、常見應用,以及相關的保安隱患和建議。今次專題將會重點分析驗證使用者及儲存資料這兩個QR code應用例子的保安風險及解決方法,讓業界應用QR code於業務或系統開發時提供參考。
一,驗證使用者
QR code的大儲存量配合流動裝置,吸引商戶應用於宣傳及與客人的互動上,例子包括將公司或宣傳品的網址、聯絡方法或地址存於QR code內,增加宣傳效率;其他應用例子包括餐飲業用QR code作自助點餐,及零售業用作推鎖會員獎賞計劃。
- 用戶要求登入網絡應用程式
- 網絡應用程式產生一個獨一無二的QR code,當中會包含一個伺服器的網圵、編碼及有效時間
- 用戶用流動應用程式內的QR code掃瞄器來掃瞄網頁上的QR code
- 流動應用程式會傳送編碼及用戶的登入資料至網絡應用程式
- 網絡應用程式會驗證編碼及驗證用戶
應用QRL的優點
- 現時網上服務愈來愈普遍,每種網上服務幾乎也要建立一組賬戶及密碼,要有效管理這些賬戶及密碼亦日趨困難。為了方便管理賬戶,有用戶會把多個賬戶設定相同密碼,但這做法卻衍生另一個問題,只要一個賬戶的密碼被竊取,便有機會遭殃及其他賬戶。QRL就能提供免密碼的登入方法,只需要掃瞄QR code便可以自動登錄。
- 傳統密碼登錄如果被竊取,黑客可以重用賬戶訊息,模仿真正用戶登入。QRL則提供一次性QR code。每次登錄後, QR code都會被刷新,避免replay攻擊。
什麼是QRLJacking?
Quick Response Code Login Jacking (QRLJacking) 是一種利用QRL登入的攻擊。用戶掃瞄了黑客提供的QR code,從而獲得用戶賬戶的控制權。
圖片來源: https://owasp.org/www-community/attacks/Qrljacking
QRLJacking簡單分為5個步驟:
- 黑客假扮用戶向服務提供者獲取合法的QR code並放上偽冒網站
- 向受害者發送偽冒網站連結
- 受害者進入偽冒網站並掃瞄了QR code
- 黑客成功登入受害者賬戶
- 黑客存取帳戶內的資料
QRLJacking的後果
- 賬戶劫持
- 一旦用戶不慎掃瞄在偽冒網站的QR code,用戶的賬戶就會就被黑客控制。
- 資料外泄
- 用戶在登入過程中,可能會提供其他訊息,例如GPS位置、手機訊息、SIM card等等。黑客以始獲得額外的訊息。
應對QRLJacking的保安措施
- 工作階段驗證
- 服務提供者可以在用戶使用QR code登入後,再發送一個電郵或SMS短訊通知用戶,訊息內可包含登入者的IP地址、位置或所使用的瀏覽器名稱,以供用戶驗證。
- 位置驗證
- 服務提供者可比對用戶的流動裝置和網絡應用程式的登入位置(透過IP 地址或裝置的位置分享功能),如有可疑,例如不同國家或地區,應要求用戶進行進一步身分驗證。
- 多重要素驗證
- 用戶在掃瞄QR code後,需要額外驗證方法才能登入,如加入Sound-based Authentication為二次驗證。Sound-based Authentication會在掃瞄QR code後產生一段錄音,需要在把錄音回放到登入頁面才可以完成登入。偽冒網站需要架設更多功能及需要開啟更多瀏覽器權限,大大妨礙黑客的攻擊成效及增加其成本。
二,儲存資料
QR code的大儲存量配合流動裝置,吸引商戶應用於宣傳及與客人的互動上,例子包括將公司或宣傳品的網址、聯絡方法或地址存於QR code內,增加宣傳效率;其他應用例子包括餐飲業用QR code作自助點餐,及零售業用作推鎖會員獎賞計劃。
「quishing」釣魚攻擊
「quishing」是結合QR code的釣魚攻擊。當用戶掃瞄QR code後,便會進入釣魚網站。美國網絡保安公司Abnormal Security與其合作伙伴在2021年9月進行了一次釣魚攻擊演練, 透過釣魚郵件附帶一個.WAV檔案,如果用戶打開有關檔案便會被轉至釣魚網站。但這次演練中,合作伙伴的保安措施能成功偵測該.WAV檔案並確認為威脅。一個月後,Abnormal Security再重施故技,但這次釣魚郵件只附帶QR code,卻能成功通過合作伙伴的保安措施。由於QR code是一個圖象,現時的保安措施未必能識別是一個威脅,因此「quishing」可能是日後一種新常態。
2021年12月9日,另一間美國網絡保安公司Cofense發表報告,表示有兩間外國銀行 (Sparkasse 及 Volksbanken Raiffeisenbanken) 曾遇上「quishing」,黑客假扮有關銀行佯稱有新安全措施,需要用戶掃瞄一個QR code來審視銀行賬戶,背後卻是一個釣魚網站,要求用戶填寫銀行賬戶資料。
盜用QR Code
去年10月,有食客在本地一間壽司店因上載點餐QR code到社交平台,便遭網民瘋狂點餐,造成不必要的損失。
保安措施
- 監察或限制使用情況
- 商戶應定期檢查店內或印制在宣傳品上的QR code有否被更改,例如被貼上一個不明來歷的QR code等。以食店作例子,食店可以提供人手下單或為客人提供器材下單來取代「靜態QR code」下單作業模式。若果食店必須以QR code下單,程式開發人員可以於QR code的資料內加入隨機的Hash,以防止QR code被該食客以外的人利用。另外,每一個QR code應該在食客進場後才產生並於食客結帳後報銷,以免出現QR code重用的情況。
- 加密資料
- Secured QR code (SQRC) 是其中一種QR code加密技術,它把QR code的背後訊息分為公開及加密部分。從外觀來看,SQRC與傳統QR code無異,但私密部分已經被加密。使用一般器材,如用手提電話掃瞄SQRC,只能獲取到QR code背後公開部分,加密部分需要擁有密鑰及支援SQRC設備才能獲取背後訊息。SQRC可以提供數據權限的控制,只有被授權的設備才能讀取所有訊息。
- 加入防偽技術
- 在生成QR code前,可以考慮加入數碼簽署。當用戶掃瞄QR code時,應用程式會先校驗QR code是否有效 。修改QR code背後的內容,都會使QR code中的數碼簽署變成無效。加入了數碼簽署的QR code,可以防止QR code被修改及偽冒。
- 動態QR code
- 動態QR code比靜態QR code安全。使用動態QR code的應用會向後台要求刷新QR code,之前生成的QR code會被視為無效。動態QR code是一次性,可以有效減少QR code被盜用的風險。
- 操作逾時
- 將QR code設定為有時限,使用者若沒有於指定時間內啟動或使用QR code,逾時後有關QR code就會被作廢並且不能重覆使用。
- 資料保密性
- 減少QR code內儲存用戶個人資料,並避免在QR code加上敏感資料。
參考資料:
[1] https://www.comparitech.com/blog/information-security/what-is-QRLJacking/
[2] https://owasp.org/www-community/attacks/Qrljacking
[3] https://hakin9.org/QRLJacking-new-social-engineering-attack-vector/
[4] https://abnormalsecurity.com/blog/qr-code-campaign-bypass-security
[6] https://cofense.com/blog/german-users-targeted-in-digital-bank-heist-phishing-campaigns/
分享至