天天看點

Java微服務關于賬号安全的一些思考

Java微服務關于賬号安全的一些思考

聲明

本文内容僅限于研究,不涉及各安全廠商具體源碼與風控政策。維護網絡安全,人人有責。

0x01-提升賬号安全的目的

新增賬號是大多數作弊場景的第一步,例如交易場景的生單、營銷場景的秒殺活動等都需要賬号的參與。其次賬号相對于裝置、支付卡等能夠給唯一辨別使用者的資源中具備更好的主動權,是以提升賬号安全能力是有必要的。

0x02-問題分析

1、攻擊思路

想要弄清楚如何提升賬号成本,就需要知道建立、營運賬号需要付出什麼成本。說得通俗一點就是以業務藍軍的角度進行批量注冊、登入。(以淘寶頁面為案例,不代表本人對淘寶網進行過攻擊)

Java微服務關于賬号安全的一些思考

1.1、頁面關鍵點拆解

若針對該功能進行逆向需要做什麼準備?

(1)資源類準備包括手機号、驗證碼識别(圖像、行為或短信驗證碼)、IP等

(2)協定類準備包括業務協定、安全協定。

注:此處不考慮模拟點選類攻擊方式。

Java微服務關于賬号安全的一些思考

以上拆解具體要解決作弊的什麼問題呢?

(1)手機号:解決注冊多個賬戶的問題;

(2)驗證碼:解決被加強驗證的問題;

(3)代理IP:解決IP被唯一辨別的問題;

(4)業務協定分析:解決模拟業務請求邏輯與參數的問題;

(5)安全協定分析:解決裝置唯一辨別、風控參數、行為模拟的問題。

1.2、關于提升賬号成本

根據以上的關鍵點拆解,解決思路是:

(1)提升資源成本;

(2)提升技術成本。

2、攻擊行為

注冊攻擊包括機器注冊、批量注冊以及小号注冊,登入攻擊包括機器登入、批量登入、惡意撞庫以及賬号盜用,短信攻擊包括短信轟炸。

Java微服務關于賬号安全的一些思考

3、黑産資源

關于黑産資源,我把賬号獲利産業鍊分為上、中、下遊三個環節。

其中上遊(事前)是攻擊前所需要準備的資源,中遊(事中)是攻擊過程中遇到的風控反制所需要準備的資源,下遊(事後)為黑産攻擊的目标場景。

Java微服務關于賬号安全的一些思考

其中具備檢測的次元如下:

次元1:資源

(1)IP資源

(2)手機号資源

(3)驗證碼資源

次元2:作弊工具

(1)改機工具

(2)群控軟體

(3)自動化工具

接下來我們會根據這四個次元進行攻擊原理的分析以及其對應防禦思路的梳理。

0x03-矛與盾

資源次元

1、IP資源

1.1、IP資源介紹

Java微服務關于賬号安全的一些思考

(1)IP類型

Java微服務關于賬号安全的一些思考

(2)位置資訊

Java微服務關于賬号安全的一些思考

(3)風險類型

Java微服務關于賬号安全的一些思考

1.2、攻擊方式

秒撥的底層思路就是利用國内家用寬帶撥号上網(PPPoE)的原理,每一次斷線重連就會擷取一個新的IP。黑産掌握大量寬帶線路資源,利用這些資源建構一個動态IP池,并利用ROS(軟路由)對虛拟主機以及寬帶資源做統一調配和管理,再利用虛拟化和雲計算的技術整體打包成了雲服務。這樣就能夠生産出大量的真實ip。

(1)IP池實作邏輯

Java微服務關于賬号安全的一些思考

(2)IP池頁面展示

Java微服務關于賬号安全的一些思考

1.3、防禦思路

(1)位置校驗

校驗IP位置與GPS位置是否一緻。

Java微服務關于賬号安全的一些思考

(2)雲主機檢測

爬蟲、機器作弊、代理等大多數情況來自于資料中心(機房)。如阿裡雲、騰訊雲、美團雲、京東雲、微軟雲、亞馬遜雲等。(需要注意的是部分辦公網絡也會使用雲ip是以在政策應用時應該結合其他次元一起判斷)

Java微服務關于賬号安全的一些思考

(3)秒撥檢測

a)秒撥已經成為黑産IP層面的核心技術,也是目前業務安全的痛點之一;

b)秒撥IP數量巨大且與正常使用者共用IP池。

檢測技術:通過IP掃描端口、協定以及封包特征等方式,識别目前主機是否是正常使用者使用的主機。

Java微服務關于賬号安全的一些思考

(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、手機号資源介紹

Java微服務關于賬号安全的一些思考

(1)海外卡

Java微服務關于賬号安全的一些思考

(2)虛拟卡

Java微服務關于賬号安全的一些思考

(3)風險卡

Java微服務關于賬号安全的一些思考

2.2、攻擊方式

手機号購買的管道大緻有三類,第一類是購買現成曆史賬号,第二類是通過淘寶等第三方賣家,第三類是接碼平台。

(1)淘寶三方賣家

Java微服務關于賬号安全的一些思考

(2)接碼平台

Java微服務關于賬号安全的一些思考

(3)攻擊成本結論

a)成品号價格 > 資源價格

​ b)成品:手機号注冊号價格 > 郵箱注冊号價格

​ c)資源:電商平台三方賣家價格 > 接碼平台價格

​ d)資源:免費接碼平台資源被拉黑機率 > 收費接碼平台資源被拉黑機率

​ f)風險:國内資源 > 國外資源 (具體原因是國内安全廠商不具備識别國外風險手機号的能力)

2.3、防禦思路

(1)海外卡

國家号非86;常見香港卡、澳門卡擷取方式更為簡單,是以對于海外卡檢測時,要重點關注這兩地卡号。

(2)虛拟卡

162、165、167、170、171;

海外卡和虛拟卡本身存在正常使用者使用,隻能對其進行标記,作為因子結合其他政策一同進行檢測。

(3)風險卡檢測

在注冊、登入場景,面臨全新的手機号,必須依靠外部平台通過企業共享、打碼平台以及營運商等管道對風險手機号進行辨別。

3、驗證碼資源

3.1、驗證碼分代

(1)第一代:主要利用簡單知識建構驗證碼。如中文、英文、數字等。

Java微服務關于賬号安全的一些思考

(2)第二代:以第一代驗證碼為基礎,以創新互動方式的思想建構驗證碼。如看題選字、看圖選物等。

Java微服務關于賬号安全的一些思考

(3)第三代:多場景多元度收集資料資訊,為網站提供立體式安全防護。

Java微服務關于賬号安全的一些思考

3.2、攻擊方式

(1)圖檔識别

通過RNN、CNN進行圖像識别。

(2)自動化點選

Selenium + Headless或chrome插件進行模拟點選。

(3)打碼平台

若快、斐斐、超人等打碼平台進行人工打碼。

(4)協定破解

對第三代驗證碼進行協定破解。

作弊工具

4.1、作弊工具介紹

Java微服務關于賬号安全的一些思考

(1)篡改軟體

Java微服務關于賬号安全的一些思考

(2)群控軟體

Java微服務關于賬号安全的一些思考

(3)自動化軟體

Java微服務關于賬号安全的一些思考

4.2、攻擊方式

攻擊流程一般是:篡改 + 驅動。

(1)篡改軟體

常見HOOK工具包括Xposed、Frida等,常見成品改機工具有改機王、随心改等。通過篡改唯一辨別和相關環境檢測資訊,達到逃避檢測的目的,後續再配套上相關驅動代碼,可以作為黑盒調用,也可以配合自動化點選完成整改攻擊流程。

Java微服務關于賬号安全的一些思考
Java微服務關于賬号安全的一些思考

(2)自動化軟體

常見的行為模拟工具auto.js、腳本精靈。除開現成的行為模拟工具也可以通過監聽事件或坐辨別别的方式達到自動化(驅動)的目的。

Java微服務關于賬号安全的一些思考

4.3、防禦思路

(1)裝置指紋

基于裝置與運作環境,為每台裝置生成一個不可篡改的唯一辨別,這個辨別就是裝置指紋。

(2)環境檢測

針對市面逆向手段、逆向工具、作弊工具原理分析。對目前應用運作環境進行針對性風險檢測。

Java微服務關于賬号安全的一些思考

0x04-運維階段

1、賬号分級

将賬号評分作為風控體系與業務體系溝通的标準。

例如:對于資源投入高的活動,可以通過賬号評分的标準适當調整使用者的中獎機率,達到控制活動風險的目的。

2、黑白灰名單體系

(1)白名單

大機率為優質使用者,可以用于風控準确性判斷的依據。

例如:新應用的風控政策封禁的使用者中有20%為白名單使用者,那初步可以判斷該政策是不合理的。

(2)灰名單

需要監視其行為。

例如:監視期間存在高頻通路、頻繁更換機器、頻繁更換賬号等異常行為可以進行封禁。

(3)黑名單

曆史上封禁過的使用者,需要考慮封禁周期。

例如:使用者裝置、手機号轉讓給其他正常使用者是否可以解除封禁?

賬号安全運維階段所需要做的事,還沒有思考透徹,後續如果有機會實踐再來補充。

0x05-結尾

軟體工程沒有銀彈,逆向工程永遠勝利。

懂的不多,做的太少。歡迎批評、指正。