淺談互聯(lián)網(wǎng)公司業(yè)務(wù)安全
0x00 我理解的業(yè)務(wù)安全
業(yè)務(wù)安全,按照百度百科的解釋:業(yè)務(wù)安全是指保護(hù)業(yè)務(wù)系統(tǒng)免受安全威脅的措施或手段。廣義的業(yè)務(wù)安全應(yīng)包括業(yè)務(wù)運(yùn)行的軟硬件平臺(tái)(操作系統(tǒng)、數(shù)據(jù)庫(kù)等)、業(yè)務(wù)系統(tǒng)自身(軟件或設(shè)備)、業(yè)務(wù)所提供的服務(wù)的安全;狹義的業(yè)務(wù)安全指業(yè)務(wù)系統(tǒng)自有的軟件與服務(wù)的安全。
我的理解:某個(gè)平臺(tái)上的業(yè)務(wù)是指該平臺(tái)用戶在使用過程中涉及到的一系列流程,而業(yè)務(wù)安全就是保證這些流程按照預(yù)定的規(guī)則運(yùn)行。
0x01 通用業(yè)務(wù)及威脅
由于互聯(lián)網(wǎng)企業(yè)的特性,其主要業(yè)務(wù)直接體現(xiàn)在其平臺(tái)上。其中有不少通用的業(yè)務(wù)流程:
1.賬號(hào)體系
A.注冊(cè)
B.登錄
C.密碼找回
D.用戶信息存儲(chǔ)
2.其他具體業(yè)務(wù)
A.購(gòu)買/支付
B.優(yōu)惠活動(dòng)
C.搶購(gòu)活動(dòng)
D.…
來看看分別有哪些威脅:
1.對(duì)于賬號(hào)體系:
A.惡意用戶批量注冊(cè)賬號(hào)
B.撞庫(kù)(賬號(hào)安全)
C.批量重置用戶賬號(hào),威脅其他用戶賬號(hào)
2.其他具體業(yè)務(wù)
A.惡意訂單(下單未支付)
B.低價(jià)購(gòu)買
C.批量刷優(yōu)惠券&其他獎(jiǎng)勵(lì)
D.搶購(gòu)
E.竊取其他用戶優(yōu)惠券
F.購(gòu)買限制(購(gòu)買數(shù)量限制/未開放購(gòu)買商品限制/特殊用戶商品限制)
G.價(jià)格爬蟲
H.作弊
I.黃牛限制
J.垃圾信息(用戶欺詐)
K.交易風(fēng)控(交易限額/交易信息/用戶支付信息)
L.信息泄露(未開放業(yè)務(wù)上線)
M.黑色產(chǎn)業(yè)
N.虛假交易(刷信用/套現(xiàn))
O.…
從上面的一些威脅可以看出,賬號(hào)體系安全是其他業(yè)務(wù)的基礎(chǔ),與許多業(yè)務(wù)直接相關(guān)。
0x02 部分威脅解決方案
可以從兩個(gè)方面尋找不同的解決方案:
1.從技術(shù)上看
A.賬號(hào)體系
a.注冊(cè)限制:
通過圖片驗(yàn)證碼、短信驗(yàn)證碼、郵件驗(yàn)證碼等增加批量注冊(cè)的成本
收集注冊(cè)用戶數(shù)據(jù),分析注冊(cè)后用戶的行為。通過對(duì)比正常用戶與馬甲用戶的行為、指紋等,標(biāo)識(shí)馬甲用戶。或凍結(jié)沒有行為的賬戶
b.登錄:
將分散的登錄入口統(tǒng)一,防止由于遺漏而造成撞庫(kù)
增加圖片驗(yàn)證碼等人機(jī)識(shí)別方式,防止登錄撞庫(kù)
限制賬號(hào)登錄頻率以及次數(shù)
通過數(shù)據(jù)分析用戶登錄趨勢(shì)圖,區(qū)分不用時(shí)間用戶嘗試登陸曲線、用戶登錄失敗曲線、用戶登錄成功曲線,可以在發(fā)生撞庫(kù)行為時(shí)做到及時(shí)響應(yīng)
提示高危賬號(hào)進(jìn)行密碼修改(登錄后推送)
建立用戶價(jià)值體系,通過用戶記錄、信用、行為等不同維度數(shù)據(jù)建立用戶價(jià)值體系
c.密碼找回
優(yōu)化密碼找回邏輯,防止邏輯錯(cuò)誤
對(duì)返回用戶信息進(jìn)行脫敏處理
通過數(shù)據(jù)分析用戶重置密碼趨勢(shì)圖,可以在發(fā)生批量用戶密碼重置時(shí)做到及時(shí)響應(yīng)
d.用戶信息存儲(chǔ)
例子: WooYun: 高德某站嚴(yán)重用戶信息泄漏(包含明文密碼)
對(duì)用戶信息進(jìn)行加鹽哈希等處理
B.其他具體業(yè)務(wù)
a.惡意訂單
通過用戶成功下單、支付等建立維度,凍結(jié)不符合規(guī)范的賬號(hào),或在某段時(shí)間內(nèi)限制其下單
b.低價(jià)購(gòu)買&購(gòu)買限制
驗(yàn)證購(gòu)買/支付流程,后臺(tái)增加校驗(yàn)機(jī)制
c.批量刷優(yōu)惠券&其他獎(jiǎng)勵(lì)&其他用戶優(yōu)惠券
例子: WooYun: 餓了么邏輯漏洞之免費(fèi)吃喝不是夢(mèng)
綁定優(yōu)惠券與賬號(hào),限制單個(gè)號(hào)碼/賬號(hào)獲取的優(yōu)惠券數(shù)量
對(duì)于批量注冊(cè)馬甲賬號(hào)的行為可以通過賬號(hào)體系進(jìn)行限制
調(diào)整獎(jiǎng)勵(lì)規(guī)則(現(xiàn)金變成券),增加使用成本(綁定身份證、銀行卡)
d.搶購(gòu)&黃牛
縱深防御,從賬號(hào)體系開始
購(gòu)買過程中,增加人機(jī)識(shí)別,加大惡意搶購(gòu)成本
增加黃牛檢測(cè)機(jī)制,通過收貨地址、賬號(hào)、訂單數(shù)量、手機(jī)號(hào)碼、收貨人等不同維度檢測(cè)黃牛賬號(hào)
過濾從其他維度獲取的黃牛賬號(hào)
白名單用戶直接通過黃牛驗(yàn)證
將付款后異常退款加入加入黑名單,標(biāo)識(shí)賬號(hào)、收貨地址為黃牛賬號(hào)
e.價(jià)格爬蟲&信息泄露
規(guī)范業(yè)務(wù)上線流程,防止未開放業(yè)務(wù)上線
增加反爬蟲機(jī)制,對(duì)訪問來源進(jìn)行限制
f.垃圾信息(用戶欺詐)
例子: http://tech.qq.com/a/20150820/051352.htm
處理這類風(fēng)險(xiǎn)較復(fù)雜,可以從用戶行為特征、用戶賬號(hào)信任評(píng)級(jí)加以區(qū)分
同時(shí)開啟用戶舉報(bào)功能
g.交易風(fēng)控
例子:
WooYun: 攜程安全支付日志可遍歷下載 導(dǎo)致大量用戶銀行卡信息泄露(包含持卡人姓名身份證、銀行卡號(hào)、卡CVV碼、6位卡Bin)
WooYun: 騰邦國(guó)際某重要系統(tǒng)SQL注入24個(gè)庫(kù)DBA權(quán)限(涉及百萬酒店訂單信息+八萬信用卡信息+信用卡明文CVV碼)
合規(guī)性檢查,符合《銀聯(lián)卡收單機(jī)構(gòu)賬戶信息安全管理標(biāo)準(zhǔn)》
h.黑色產(chǎn)業(yè)
分析具體業(yè)務(wù),找出攻擊者獲利點(diǎn)
建立黑名單共享聯(lián)盟,將惡意的IP、用戶ID、郵箱地址、手機(jī)號(hào)碼等列入黑名單
在上面的部分中,可以對(duì)用戶行為進(jìn)行分析、建模,例如:
A.正常用戶的流程/記錄為:注冊(cè)—>登錄—>查詢—>下單—>支付—>查看訂單—>收貨
B.異常用戶的流程/記錄為:注冊(cè)—>登錄—>領(lǐng)取優(yōu)惠券
還可以對(duì)日志進(jìn)行實(shí)時(shí)分析:
A.url深度(單斜桿出現(xiàn)次數(shù))
B.訪問離散度(頁面數(shù)/訪問次數(shù))
C.200響應(yīng)比例
D.用戶訪問入口
2.從流程上看
A.項(xiàng)目立項(xiàng)風(fēng)控、安全測(cè)試介入
業(yè)務(wù)評(píng)審、評(píng)估業(yè)務(wù)風(fēng)險(xiǎn)點(diǎn)
業(yè)務(wù)上線前經(jīng)過安全測(cè)試,包括傳統(tǒng)安全、業(yè)務(wù)接口、業(yè)務(wù)邏輯、黑白盒測(cè)試
B.業(yè)務(wù)數(shù)據(jù)實(shí)時(shí)監(jiān)控
C.異常事件介入分析
通過數(shù)據(jù)實(shí)時(shí)分析,確定當(dāng)前數(shù)據(jù)是否符合預(yù)期
D.業(yè)務(wù)規(guī)則動(dòng)態(tài)調(diào)整
當(dāng)出現(xiàn)非預(yù)期的狀況時(shí),適當(dāng)調(diào)整、優(yōu)化規(guī)則
E.止損控制
當(dāng)業(yè)務(wù)從需求上無法控制時(shí),就要降低損失比例,減少業(yè)務(wù)損失
F.業(yè)務(wù)隔離
隔離重要業(yè)務(wù)與風(fēng)險(xiǎn)業(yè)務(wù),使其單獨(dú)運(yùn)行
0x03 業(yè)務(wù)安全挖掘思路
要挖掘業(yè)務(wù)漏洞,需要先了解業(yè)務(wù)邏輯(業(yè)務(wù)類型/流程),評(píng)估風(fēng)險(xiǎn)點(diǎn)。在業(yè)務(wù)流程中列出正常訪問與異常訪問區(qū)別,分析攻擊者的目的及獲利方式,對(duì)癥下藥,同時(shí)還要排除傳統(tǒng)安全威脅。