宣告
本文內容僅限於研究,不涉及各安全廠商具體原始碼與風控策略。維護網路安全,人人有責。
0x01-提升賬號安全的目的
註冊賬號是大多數作弊場景的第一步,例如交易場景的生單、營銷場景的秒殺活動等都需要賬號的參與。其次賬號相對於裝置、支付卡等能夠給唯一標識使用者的資源中具備更好的主動權,因此提升賬號安全能力是有必要的。
0x02-問題分析
1、攻擊思路
想要弄清楚如何提升賬號成本,就需要知道建立、運營賬號需要付出什麼成本。說得通俗一點就是以業務藍軍的角度進行批次註冊、登入。(以淘寶頁面為案例,不代表本人對淘寶網進行過攻擊)
1.1、頁面關鍵點拆解
若針對該功能進行逆向需要做什麼準備?
(1)資源類準備包括手機號、驗證碼識別(影像、行為或簡訊驗證碼)、IP等
(2)協議類準備包括業務協議、安全協議。
注:此處不考慮模擬點選類攻擊方式。
以上拆解具體要解決作弊的什麼問題呢?
(1)手機號:解決註冊多個賬戶的問題;
(2)驗證碼:解決被加強驗證的問題;
(3)代理IP:解決IP被唯一標識的問題;
(4)業務協議分析:解決模擬業務請求邏輯與引數的問題;
(5)安全協議分析:解決裝置唯一標識、風控引數、行為模擬的問題。
1.2、關於提升賬號成本
根據以上的關鍵點拆解,解決思路是:
(1)提升資源成本;
(2)提升技術成本。
2、攻擊行為
註冊攻擊包括機器註冊、批次註冊以及小號註冊,登入攻擊包括機器登入、批次登入、惡意撞庫以及賬號盜用,簡訊攻擊包括簡訊轟炸。
3、黑產資源
關於黑產資源,我把賬號獲利產業鏈分為上、中、下游三個環節。
其中上游(事前)是攻擊前所需要準備的資源,中游(事中)是攻擊過程中遇到的風控反制所需要準備的資源,下游(事後)為黑產攻擊的目標場景。
其中具備檢測的維度如下:
維度1:資源
(1)IP資源
(2)手機號資源
(3)驗證碼資源
維度2:作弊工具
(1)改機工具
(2)群控軟體
(3)自動化工具
接下來我們會根據這四個維度進行攻擊原理的分析以及其對應防禦思路的梳理。
0x03-矛與盾
資源維度
1、IP資源
1.1、IP資源介紹
(1)IP型別
(2)位置資訊
(3)風險型別
1.2、攻擊方式
秒撥的底層思路就是利用國內家用寬頻撥號上網(PPPoE)的原理,每一次斷線重連就會獲取一個新的IP。黑產掌握大量寬頻線路資源,利用這些資源構建一個動態IP池,並利用ROS(軟路由)對虛擬主機以及寬頻資源做統一調配和管理,再利用虛擬化和雲端計算的技術整體打包成了雲服務。這樣就能夠生產出大量的真實ip。
(1)IP池實現邏輯
(2)IP池頁面展示
1.3、防禦思路
(1)位置校驗
校驗IP位置與GPS位置是否一致。
(2)雲主機檢測
爬蟲、機器作弊、代理等大多數情況來自於資料中心(機房)。如阿里雲、騰訊雲、美團雲、京東雲、微軟雲、亞馬遜雲等。(需要注意的是部分辦公網路也會使用雲ip所以在策略應用時應該結合其他維度一起判斷)
(3)秒撥檢測
a)秒撥已經成為黑產IP層面的核心技術,也是當前業務安全的痛點之一;
b)秒撥IP數量巨大且與正常使用者共用IP池。
檢測技術:透過IP掃描埠、協議以及報文特徵等方式,識別當前主機是否是正常使用者使用的主機。
(4)代理檢測
a)協議識別:
(1)REMOTE_ADDR:web伺服器就會把 REMOTE_ADDR 設為客戶端的 IP 地址;
(2)X-Forwarded-For:X-Forwarded-For 是一個 HTTP 擴充套件頭部,用來表示 HTTP 請求端真實 IP。
(3)針對於高匿IP這種方式就無法應對。
b)端識別:
(1)System property中的http.proxyHost、http.proxyPort;
(2)虛擬網路卡。
2、手機號資源
2.1、手機號資源介紹
(1)海外卡
(2)虛擬卡
(3)風險卡
2.2、攻擊方式
手機號購買的渠道大致有三類,第一類是購買現成歷史賬號,第二類是透過淘寶等第三方賣家,第三類是接碼平臺。
(1)淘寶三方賣家
(2)接碼平臺
(3)攻擊成本結論
a)成品號價格 > 資源價格
b)成品:手機號註冊號價格 > 郵箱註冊號價格
c)資源:電商平臺三方賣家價格 > 接碼平臺價格
d)資源:免費接碼平臺資源被拉黑機率 > 收費接碼平臺資源被拉黑機率
f)風險:國內資源 > 國外資源 (具體原因是國內安全廠商不具備識別國外風險手機號的能力)
2.3、防禦思路
(1)海外卡
國家號非86;常見香港卡、澳門卡獲取方式更為簡單,所以對於海外卡檢測時,要重點關注這兩地卡號。
(2)虛擬卡
162、165、167、170、171;
海外卡和虛擬卡本身存在正常使用者使用,只能對其進行標記,作為因子結合其他策略一同進行檢測。
(3)風險卡檢測
在註冊、登入場景,面臨全新的手機號,必須依靠外部平臺透過企業共享、打碼平臺以及運營商等渠道對風險手機號進行標識。
3、驗證碼資源
3.1、驗證碼分代
(1)第一代:主要利用簡單知識構建驗證碼。如中文、英文、數字等。
(2)第二代:以第一代驗證碼為基礎,以創新互動方式的思想構建驗證碼。如看題選字、看圖選物等。
(3)第三代:多場景多維度收集資料資訊,為網站提供立體式安全防護。
3.2、攻擊方式
(1)圖片識別
透過RNN、CNN進行影像識別。
(2)自動化點選
Selenium + Headless或chrome外掛進行模擬點選。
(3)打碼平臺
若快、斐斐、超人等打碼平臺進行人工打碼。
(4)協議破解
對第三代驗證碼進行協議破解。
作弊工具
4.1、作弊工具介紹
(1)篡改軟體
(2)群控軟體
(3)自動化軟體
4.2、攻擊方式
攻擊流程一般是:篡改 + 驅動。
(1)篡改軟體
常見HOOK工具包括Xposed、Frida等,常見成品改機工具有改機王、隨心改等。透過篡改唯一標識和相關環境檢測資訊,達到逃避檢測的目的,後續再配套上相關驅動程式碼,可以作為黑盒呼叫,也可以配合自動化點選完成整改攻擊流程。
(2)自動化軟體
常見的行為模擬工具auto.js、指令碼精靈。除開現成的行為模擬工具也可以透過監聽事件或座標識別的方式達到自動化(驅動)的目的。
4.3、防禦思路
(1)裝置指紋
基於裝置與執行環境,為每臺裝置生成一個不可篡改的唯一標識,這個標識就是裝置指紋。
(2)環境檢測
針對市面逆向手段、逆向工具、作弊工具原理分析。對當前應用執行環境進行針對性風險檢測。
0x04-運維階段
1、賬號分級
將賬號評分作為風控體系與業務體系溝通的標準。
例如:對於資源投入高的活動,可以透過賬號評分的標準適當調整使用者的中獎機率,達到控制活動風險的目的。
2、黑白灰名單體系
(1)白名單
大機率為優質使用者,可以用於風控準確性判斷的依據。
例如:新應用的風控策略封禁的使用者中有20%為白名單使用者,那初步可以判斷該策略是不合理的。
(2)灰名單
需要監視其行為。
例如:監視期間存在高頻訪問、頻繁更換機器、頻繁更換賬號等異常行為可以進行封禁。
(3)黑名單
歷史上封禁過的使用者,需要考慮封禁週期。
例如:使用者裝置、手機號轉讓給其他正常使用者是否可以解除封禁?
賬號安全運維階段所需要做的事,還沒有思考透徹,後續如果有機會實踐再來補充。
0x05-結尾
軟體工程沒有銀彈,逆向工程永遠勝利。
懂的不多,做的太少。歡迎批評、指正。