針對移動支付的道德反欺詐系統
Overview
應用程序開發者通常使用 security challenges(一種升級身份驗證形式)來增加應用程序的安全性。團隊對在移動設備上的程序中運行現有反欺詐security challenges Boxer 進行了大規模測量研究后發現,雖然 Boxer 總體上運行良好,但它無法在以低于每秒一幀(FPS)的速度運行的設備上進行有效掃描,從而降低了使用廉價設備的用戶的安全性。于是團隊設計了 Daredevil,一種新的反欺詐系統,用于掃描支付卡,并在各種性能的移動設備和硬件配置中都能很好地工作。與 Boxer 相比,Daredevil將以低于1 FPS的速度運行的設備數量減少了一個數量級,為打擊欺詐行為提供了一個更公平的系統。團隊從5085444臺真實設備收集數據,這些設備運行了496個真實的應用程序。
Background
Boxer是一個在Enix Security 2020上展示的系統,通過掃描信用卡來證明用戶擁有真正的實體卡。Boxer使用客戶端機器學習來驗證信用卡。然而,團隊對Boxer的測量研究,發現Boxer在68.13%的Android設備上掃描失敗,這些設備以低于1 FPS的速度運行,較慢的幀速率使得系統處理驗證的輸入更少。因此,團隊設計了Daredevil,并通過信用卡掃描和驗證系統來驗證Daredevil的效果。實驗結果證明,Daredevil在資源受限的硬件能夠有效地運行安全模型。
Contributions
- 團隊首次對基于設備的深度學習進行了大規模的實際研究。實驗的研究重點是
Boxer,一個掃描信用卡的系統。團隊證明了由于硬件多樣性的程度,基于深度學習的安全挑戰是不同的。 - 團隊在度量研究中得到了一些新的見解,如故障案例的關鍵原因、系統關鍵指標以及開發人員在設計客戶端機器學習信道時應該考慮的緩解策略
- 團隊設計、實施和部署了
Daredevil,它為信用卡掃描和驗證提供了強大的動力,并且可以在各種設備上運行
Measurement Study
為了衡量Boxer的性能,團隊測試了Boxer的開源SDK,并將其提供給第三方應用程序開發人員。團隊在安裝了SDK的329272臺Android設備上運行,共611種Android設備類型。在安裝了SDK的3175912臺iOS設備上運行,共有27種iOS設備類型。

調用Boxer時,它會啟動設備相機,并提示用戶將信用卡放置在相機的中心。OCR處理從相機獲得的幀,并嘗試從卡中提取卡號和到期日。成功后,將向用戶顯示卡號和有效期,SDK將掃描統計信息發送到服務器。Boxer使用了兩階段OCR,包括一個檢測階段,用于檢測信用卡圖像中的數字組,以及一個識別階段,用于從這些組中提取單個數字。Boxer OCR成功率與Android 和iOS上的幀速率如下圖所示。每個點是特定設備類型的平均成功率和幀速率。該圖顯示,當使用相同的機器學習模型時,端到端成功率會隨著幀率的下降而下降。

OCR是Boxer管道中的第一個模型,用于提取前六位數(BIN)等數據,然后將其與信用卡設計等其他功能關聯,以確定欺詐行為。但是,如果第一個模型無法運行,設備將被拒絕服務。Boxer在84.7%的設備上成功運行了OCR。然而,在運行速度低于1fps的設備上,成功率僅為31.87%,這些設備占團隊測量的安卓設備的44.61%。
Daredevil
為了提供平等的訪問,即使是在缺乏機器學習硬件加速的資源受限設備上,Daredevil也必須尊重最終用戶的隱私,并且Daredevil必須保證準確率,以避免錯誤標記欺詐。團隊通過以下方式改進Boxer,展示了道德欺詐挑戰的設計:
- 團隊設計了一種新的快速高效的OCR,也可以在資源受限的設備上運行
- 團隊提出了一個機器學習管道,將不同的模型結合起來,以提高效率
- 團隊介紹了一種新的信用卡檢測模型,它與卡片篡改檢測協同工作,掃描卡片的兩面
Threat Model
在威脅模型中,最終目標是減少金錢詐騙,同時確保所有正常用戶都能通過檢測。實驗的重點是應用程序可以用來驗證人們是否擁有真正的信用卡。團隊假設攻擊者盜取了信用卡憑證(例如,卡號和賬單郵政編碼),但沒有盜取真正的信用卡實體。機器學習模型運行在客戶端,在客戶端,Daredevil會在設備上處理信用卡圖像,然后將機器學習輸出的摘要傳遞給服務器,并在服務器上判斷掃描結果。
Architecture
圖5從用戶的角度展示了整個過程:
- 首先用戶啟動相機。
- 然后當他們把卡片放在視口的中心時,用戶界面更新,并給予他們反饋。
- 信用卡檢測和OCR模型運行,同時顯示OCR從卡中提取的細節。在首次成功進行OCR預測后,將繼續運行OCR模型1.5秒,并收集有關OCR詳細信息的其他預測,以糾正預測失誤。
- 糾錯過程完成后,在處理的圖像子集上運行信用卡卡篡改檢測模型,時間長達1s。
- 對服務器進行API調用,以判斷掃描是否包含真實的物理卡。這包括客戶端機器學習模型的輸出,以及服務器端邏輯實現規則,從而對掃描的有效性做出最終的總體決策。

Design
信用卡驗證可以在客戶端或服務器上運行。以服務器為中心的體系結構確保驗證可以在所有手機上運行,無論它們的計算能力如何。然而,服務器端驗證需要將幀從攝像頭傳輸到服務器,從而導致驗證延遲。服務器端驗證也會忽略最終用戶的隱私。通過服務器端驗證,該應用程序會向服務器發送敏感的用戶信息,如卡片圖像,從而引入潛在的數據泄露途徑。在移動客戶端上運行驗證需要在客戶端上運行計算密集型機器學習推理。但客戶機優先的體系結構對網絡的壓力更小,并且由于運行距離攝像機更近,可以更快地處理更多幀。重要的是,客戶端驗證更尊重最終用戶的隱私,因為它避免了向服務器發送敏感信息。Daredevil選擇在客戶機上運行其驗證。并且Daredevil的系統設計和算法改進確保了不同平臺上對資源受限的設備可以進行統一驗證。
Daredevil將驗證分解為四個不同的子任務:OCR、卡片檢測、假媒體檢測和卡片篡改檢測。OCR掃描卡片的數字側并提取卡片編號,卡片檢測檢測框架用戶在視口中將卡片居中并檢測用戶掃描的卡片側(數字或非數字側),假媒體檢測檢查卡片兩側,以檢測從假媒體(如設備屏幕、紙張、紙板等)掃描的卡片。
卡片篡改檢測:其會掃描卡片的兩側。較新的卡片設計在兩面都印上了有意義的信息。例如,較新的Wells Fargo支付卡一面包含銀行和支付網絡標識,另一面包含卡號和到期日。在這種情況下,如果卡篡改檢測在一側檢測到Wells Fargo卡號,并在同一側或另一側檢測到沖突的銀行徽標,Daredevil會將掃描標記為假的。
主循環與完成循環:如果通過所有機器學習模型傳遞來自相機的每一幀,那么將有許多計算資源被浪費。例如,如果圖像中沒有卡,那么在該圖像上運行模型是浪費的。為了使整個ML管道更高效,團隊將計算分為實時運行在所有幀上的一個主循環和一個完整循環,該循環推遲模型的運行,只運行在被認為最有可能有相關欺詐信號的幀的一個子集上。下圖顯示了Daredevil的組成:

卡片檢測器模型:該模型是Daredevil的核心。它是一個三級圖像分類器,用于檢測卡片數字側的中心圖像或非數字側的中心圖像。其還有第三個類,稱為背景類,用于過濾不包含信用卡的幀。Daredevil在主循環上執行卡片檢測器和OCR模型。這些模型必須在主循環中運行,以實時處理幀并向用戶顯示其結果,并在完成循環中執行假媒體檢測和卡片篡改檢測模型。
分解冗余:Daredevil對其每個模型使用不同形式的冗余,以確保其決策的準確性。一些模型需要內置冗余驗證信號,而其他模型則需要外部冗余驗證信號。更具體地,OCR的設計中內置了Luhn算法的冗余。Luhn算法可用于驗證信用卡號。因此可以通過滿足Luhn校驗和來評估OCR的預測結果。圖7總結了在每個模型中使用的不同形式的冗余。

由于不同設備的硬件條件不同,團隊通過改進機器學習模型,改進系統設計,以提供更快的有效幀速率解決方案,解決資源受限的問題。
Improvements in Machine Learning
機器學習的重新設計遵循以下兩個關鍵原則:
- 創建了一個統一的OCR模型,并將參數數量減少了一半。這使得在資源受限的手機上出現二次加速,在配置良好的手機上也接近線性加速。
- 對于OCR的統一模型,在模型的多個階段添加復雜的輔助層,以掃描所有支付卡設計。同時采用系統設計策略來計算較不常見的信用卡設計。
OCR模型設計:新模型借鑒了現有的workon Ratter RCNN、SSD和Yolo的思想。團隊將Boxer的檢測和識別階段替換為單一網絡。該網絡對整個圖像進行全局推理,從而實現端到端的訓練和更快的推理。團隊將該模型實現為一個完全卷積的MobileNetV2,帶有用于檢測和識別的輔助特征,將檢測和識別的獨立組件統一為一個單一網絡。OCR模型的輸入圖像大小為600x375像素,接近信用卡的縱橫比。與CNN一樣,當網絡處理圖像時,特征圖在尺寸上縮小,在深度維度上擴展。團隊網絡的兩個地方添加輔助層,其中一個大小為3824,另一個為1912。團隊發現,在這兩層添加多層預測可以捕獲絕大多數信用卡字體。3824大小的特征塊適用于小字體和扁平字體的支付卡,而與1912大小的特征塊適用于字體較大的浮雕卡。
定位小型對象:在推理過程中,團隊應用非最大值抑制和基于啟發式的定義。團隊的OCR模型像Yolo和SSD一樣很難精確定位小對象。為了在微小字體的支付卡上成功執行OCR,模型首先檢測單個數字的大小與輸入特征圖大小的比率。如果它低于事先設定好的閾值,那么模型將通過機器學習管道傳遞輸入的放大圖像,有效地將小字體的卡片映射到模型本機支持的相對大字體的卡片。
Improvements in System Design
團隊從相機中收集多個幀,并對所有幀并行運行機器學習推理。團隊發現,緩沖圖像并并行運行會使工作負載提高117%。處理更多的幀對于提高復雜機器學習問題的端到端成功率至關重要。為了進一步提高幀速率,團隊對系統設計進行了改進,使用了一個具有有限緩沖區的生產者/消費者管道。
Evaluation
假陽性問題:團隊在不同的資源受限的Android和iOS設備上多次掃描105張不同的真卡,總共掃描310次。Daredevil錯誤地將7次掃描標記為欺詐,假陽性率為2.2%。錯誤均勻地分布在所有設備上,這體現了Daredevil的公平性。報告的七個假陽性中有六個是暫時性的,也就是說,對同一張卡的進一步掃描不會導致假陽性。
此外,通過大量的實驗結果驗證,團隊得出結論:使用Daredevil的架構,能夠實現所需的幀速率,并且使用高保真合成數據能夠實現所需的精度。

安全學術圈招募隊友-ing
有興趣加入學術圈的請聯系 secdr#qq.com