跳至主內容

認識QR code潛在攻擊及對應手法

發佈日期: 2022年01月20日 5829 觀看次數

QR code最早用於協助汽車生產商追蹤零件,至今已在各行各業廣泛使用。不久之前,我們簡單介紹了這技術的一些基本知識、常見應用,以及相關的保安隱患和建議。今次專題將會重點分析驗證使用者及儲存資料這兩個QR code應用例子的保安風險及解決方法,讓業界應用QR code於業務或系統開發時提供參考。

 

 

一,驗證使用者

 

QR code的大儲存量配合流動裝置,吸引商戶應用於宣傳及與客人的互動上,例子包括將公司或宣傳品的網址、聯絡方法或地址存於QR code內,增加宣傳效率;其他應用例子包括餐飲業用QR code作自助點餐,及零售業用作推鎖會員獎賞計劃。

 

  1. 用戶要求登入網絡應用程式
  2. 網絡應用程式產生一個獨一無二的QR code,當中會包含一個伺服器的網圵、編碼及有效時間
  3. 用戶用流動應用程式內的QR code掃瞄器來掃瞄網頁上的QR code
  4. 流動應用程式會傳送編碼及用戶的登入資料至網絡應用程式
  5. 網絡應用程式會驗證編碼及驗證用戶

 

 

應用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個步驟:

 

  1. 黑客假扮用戶向服務提供者獲取合法的QR code並放上偽冒網站
  2. 向受害者發送偽冒網站連結
  3. 受害者進入偽冒網站並掃瞄了QR code
  4. 黑客成功登入受害者賬戶
  5. 黑客存取帳戶內的資料

 

 

QRLJacking的後果

 

  1. 賬戶劫持
    • 一旦用戶不慎掃瞄在偽冒網站的QR code,用戶的賬戶就會就被黑客控制。
  2. 資料外泄
    • 用戶在登入過程中,可能會提供其他訊息,例如GPS位置、手機訊息、SIM card等等。黑客以始獲得額外的訊息。

 

 

應對QRLJacking的保安措施

 

  1. 工作階段驗證
    • 服務提供者可以在用戶使用QR code登入後,再發送一個電郵或SMS短訊通知用戶,訊息內可包含登入者的IP地址、位置或所使用的瀏覽器名稱,以供用戶驗證。
  2. 位置驗證
    • 服務提供者可比對用戶的流動裝置和網絡應用程式的登入位置(透過IP 地址或裝置的位置分享功能),如有可疑,例如不同國家或地區,應要求用戶進行進一步身分驗證。
  3. 多重要素驗證
    • 用戶在掃瞄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到社交平台,便遭網民瘋狂點餐,造成不必要的損失。

 

 

保安措施

 

  1. 監察或限制使用情況
    • 商戶應定期檢查店內或印制在宣傳品上的QR code有否被更改,例如被貼上一個不明來歷的QR code等。以食店作例子,食店可以提供人手下單或為客人提供器材下單來取代「靜態QR code」下單作業模式。若果食店必須以QR code下單,程式開發人員可以於QR code的資料內加入隨機的Hash,以防止QR code被該食客以外的人利用。另外,每一個QR code應該在食客進場後才產生並於食客結帳後報銷,以免出現QR code重用的情況。 
  2. 加密資料
    • Secured QR code (SQRC) 是其中一種QR code加密技術,它把QR code的背後訊息分為公開及加密部分。從外觀來看,SQRC與傳統QR code無異,但私密部分已經被加密。使用一般器材,如用手提電話掃瞄SQRC,只能獲取到QR code背後公開部分,加密部分需要擁有密鑰及支援SQRC設備才能獲取背後訊息。SQRC可以提供數據權限的控制,只有被授權的設備才能讀取所有訊息。
  3. 加入防偽技術
    • 在生成QR code前,可以考慮加入數碼簽署。當用戶掃瞄QR code時,應用程式會先校驗QR code是否有效 。修改QR code背後的內容,都會使QR  code中的數碼簽署變成無效。加入了數碼簽署的QR code,可以防止QR  code被修改及偽冒。
  4. 動態QR code
    • 動態QR code比靜態QR code安全。使用動態QR code的應用會向後台要求刷新QR code,之前生成的QR code會被視為無效。動態QR code是一次性,可以有效減少QR code被盜用的風險。
  5. 操作逾時
    • 將QR code設定為有時限,使用者若沒有於指定時間內啟動或使用QR code,逾時後有關QR code就會被作廢並且不能重覆使用。
  6. 資料保密性
    • 減少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

[5] https://www.zdnet.com/article/these-phishing-emails-use-qr-codes-to-bypass-defences-and-steal-microsoft-365-usernames-and-passwords/

[6] https://cofense.com/blog/german-users-targeted-in-digital-bank-heist-phishing-campaigns/