🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

前言

大家有在進行結算嗎?(問候)

信用卡最初是作為面對面交易的後付款和信用支付方式出現的,但隨著網際網路的普及,它也被用於網路服務和網上購物等線上場合。
這次我們將簡單介紹信用卡在線上的安全歷史、最近的詐騙利用及其對策。

早期的信用卡支付存在漏洞

在日本,直到2015年左右,網路上的信用卡支付只需提供 「卡號」「有效期限」 即可完成交易。
只要在網頁表單中輸入卡號和有效期限,即使是別人的卡也可以被使用,並未進行所有者確認

信用卡號具有特定格式,可以被機械生成。
前6位為BIN碼,代表品牌和發卡公司(發卡機構),第7位到倒數第2位為會員帳戶號碼,最後1位為檢查碼(MOD-10)。(目前BIN碼已逐步推進到8位數)
只要將未來10年左右的日期作為有效期限組合,便能輕易在網上進行測試。

此外,當時的在線支付因為便利性,信用卡信息等有可能被存儲在數據庫中,導致透過SQL注入或後門等方式洩漏的情況時有發生。

基於這些情況,經濟產業省主導制定了一系列法律,促使事業者採取各種安全措施。

近年來的安全措施

主要參考經濟產業省及日本信用協會的指導。如果想更詳細了解,請參考以下網站。

非保留・非經過

2016年,因為分期付款法(分期付款法)的修正,要求不要直接處理信用卡。
如果要進行支付,必須轉到由支付服務提供者(PSP)提供的畫面,或採用令牌支付。(例如PAY.JP的令牌支付

令牌支付是指 從輸入信用卡的網頁表單直接發送到PSP,然後將收到的令牌提供給系統並向PSP請求授權
這樣一來,信用卡信息就不會被儲存在數據庫中,也不會因為不小心而在日誌中洩漏。

安全碼

信用卡上除了卡號之外,還有一組稱為CVV(CVC、CID)的 3~4位數字
這些信息不會存儲在卡片本身(磁條或IC卡)上,所以可用於證明手上有真正的卡。※自CVV2起
這項要求也逐漸被納入在線支付,顯著增加了在線隨機測試的模式數量。

3D安全

這是被稱為本人認證服務的一種機制。
當嘗試在線支付時, 發卡機構會提供一個用於進行本人認證的URL,並在該URL中通過一次性密碼等方式進行本人確認 的機制。
由於這個過程涉及重定向或iframe等,使得界面有來回跳動的情況,因此需要特別注意一致性。不過,PAY.JP有視頻和實施範例,我們應遵循這個最佳實踐進行實施。

3D安全最大的好處是對 Chargeback 的防範。
信用卡的消費者保護性質非常強,如果消費者宣稱遭遇詐騙並獲得認可,便可拒絕支付。
但如果在此之前已經發貨或開始服務……那麼這筆費用就得由店家承擔,這就是Chargeback。
通過導入3D安全,這種情況下可以將負擔轉移至信用卡公司,而非店家。(責任轉移)

雖然3D安全自古以來就存在(3D安全1.0),但最近出現了EMV 3D安全(3D安全2.0),並且已經成為強制性要求。
1.0與2.0之間的不同在於,以前版本在每次交易時都會出現本人認證畫面,因此 退回率較高 的問題。而在2.0中,通過風險基礎進行分發,降低了本人認證畫面的出現頻率,抑制了退回率的上升。

信息洩漏及詐騙利用的趨勢

儘管這樣的法制化提升了安全性,但信用卡洩漏和詐騙利用仍屢見不鮮。
手法多種多樣,以下列出三個最具代表性的例子。

E掃描

這是一種被稱為網頁掃描、在線掃描、表單劫持、Magecart的手法。
著名的例子是2024年發生在塔利斯在線商店上的 支付應用程式被篡改 事件。
我個人認為,報告中提到的支付應用程式篡改情況往往是這種手法。

我本人也曾參考其他公司的報告,實際目擊到過篡改的情況。

在信用卡輸入畫面中 植入惡意腳本,將表單中輸入的信用卡號等發送到外部
惡意腳本可以嵌入自網站的腳本中,也可能是第三方腳本被篡改並嵌入。(Magecart指的就是後者)

有關詳情,請參考德丸老師的以下文章第4部分。
總結信用卡信息竊取手法

其他公司的案例:
https://www.trendmicro.com/ja_jp/jp-security/24/k/expertview-20241108-01.html

透過此機制,也可以竊取ID、密碼、個人信息等,而有效的信用卡信息在 暗網上的價值很高(後述),因此特別容易成為目標。
(在我見到的案例中,所有的Email地址、密碼等都被完全竊取)

對策

當腳本或內容被篡改時就會出現問題。
如果自己網站上 存在漏洞,應該加以修復

此外,作為緩解措施, 也應建立篡改檢測機制
如果是靜態腳本,可以用文件哈希值進行比較是一個簡便的方法。
可以通過CSP或SRI指定哈希值,也可以定期自行比對。

不過,對於動態腳本或第三方腳本,用哈希值來檢查會相對困難。
應該採用多重措施,如引入CSP的網域控制或WAF等來降低風險,當然,監控和警報的設置也不要忘記。
※雖然聽說動態腳本若加入CSP的nonce會較好,但那是針對XSS的防範,並不一定能對篡改提供幫助。

非法訂單

在處理珍稀或高現金化率的商品時,這種情況非常常見。
以下是常見的案例。

  • 使用非法獲得的信用卡
  • 訂送至空置房屋或轉運公司

非法獲得的信用卡在暗網上大約幾千元就能買到。
參考資料: INTERNET Watch 「日本的卡片信息以世界最高價格買賣」,NordVPN發布暗網調查結果,原因何在?

這些卡片會被用來將商品送往空置房屋(如老式公寓等)或轉運公司(倉庫等),然後由收到商品的人在境外轉售以獲取利潤。

對策

對於這些情況,熟悉的商店自然會建立起黑名單,但新開的商店則比較困難。
在技術上能採取的手段有限,可以通過以下措施進行緩解。

  • 引入3D安全
  • 引入詐騙檢測服務(保證有Chargeback的保障)

此外,配送公司也可能會告知某個配送目的地存在可疑情況。

信用卡大師攻擊

如同在早期的信用卡支付存在漏洞中所述,信用卡號具有特定格式,可以自行生成。這被稱為 使用Bot進行大量有效性檢查 的信用卡大師攻擊。

即使在目前的安全措施下,僅進行有效性檢查的話,許多網站仍可實施這一行為。
例如出現3D安全畫面時,就可以認為該信用卡是有效的。實際上並不需要進行支付。

如同E掃描一樣,這個攻擊者只想要有效的信用卡信息。非法訂單中提到的這些信息在暗網上以幾千元出售,並從中獲利。
(這裡的攻擊者販賣有效卡片與上述非法訂單獲益的攻擊者並不是同一群體)

對策

對於網站來說,主要的損失來自於支付手續費的增加和資源的耗盡。
Bot的防範是基本的,但基於經驗,這些Bot通常很高級,所以不是那麼容易應對。

  • 使用CAPTCHA

    • 要求用戶解決令人厭煩的拼圖來進行人機識別。
      雖然變形文字的效果並不好,但拼圖型的方式仍然有效。
      缺點是會提高退回率。
  • 使用靜默挑戰

    • 透過腳本評估行為是否為人類的方式。
      這樣對人類幾乎沒有負擔,但Bot可以模仿人的行為,因此效果可能不強。
  • 設置速率限制

    • 利用IP地址等連接來源信息檢測並阻止重複的支付嘗試。
      攻擊方會使用數百到數千個不同的IP地址,因此逐一登記單個IP地址是非常困難的。應調查IP所屬的網路範圍,並進行統一限制。
    • 不過,這個範圍可能是國內大型線路或VPS提供者,所以如果封鎖範圍,可能對一般消費者產生影響。應仔細查閱whois或IP調查服務。
    • 除了IP地址之外,還可以使用JA3/JA4指紋來進行檢測,但攻擊者也非常懂這些方法,可能會導致完全不一致,並沒有很大幫助。

綜合運用這些策略可降低被攻擊的風險。
順帶一提,我曾寫過一篇文章介紹如何在不改動現有電子商務網站的情況下簡單檢測信用卡大師攻擊,歡迎參考。

總結

日本的支付安全自2015年以來,一直在朝著自上而下的強化方向發展,但目前仍持續著攻擊與防禦的“貓鼠遊戲”。
支付實作中,防禦設計的關鍵在於 “如何削弱攻擊的動機”,與功能要件同樣重要。希望本篇文章中介紹的歷史和對策,能對大家的服務“防護”提高有所幫助。


原文出處:https://qiita.com/ahera/items/5c5bcfeeeea69081744d


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝12   💬9   ❤️5
348
🥈
我愛JS
📝1   💬8   ❤️2
62
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付