一個(gè)CPO的心得分享:搭建風(fēng)控系統(tǒng)道路上踩過(guò)的坑
從業(yè)近10年,大大小小參與了3家公司不同領(lǐng)域的風(fēng)控系統(tǒng)的設(shè)計(jì),從前到后把風(fēng)控系統(tǒng)所有環(huán)節(jié)都細(xì)細(xì)的琢磨過(guò),然而至今仍然感覺(jué)剛剛一只腳踏進(jìn)門(mén)而已。
大多數(shù)人做的產(chǎn)品都是目的明確的,比如訂單支付、賬戶體系要做什么一開(kāi)始就知道了,而且也有很多的競(jìng)品可以去參考;風(fēng)控系統(tǒng)卻完全不一樣——未來(lái)要面對(duì)什么問(wèn)題不可能完全了解,做每個(gè)功能都謹(jǐn)小慎微,因?yàn)橐粋€(gè)不注意走錯(cuò)了方向,可能就會(huì)在未來(lái)的某個(gè)階段要全盤(pán)推翻。
而對(duì)于研發(fā)資源緊缺的安全需求來(lái)看,往往會(huì)在某個(gè)時(shí)間把自己擺到一個(gè)非常尷尬的境地,問(wèn)題解決不了,改造又面臨大量的時(shí)間和溝通成本。
所以,把本人踩過(guò)的一些坑在這里分享出來(lái),讓準(zhǔn)備搭建風(fēng)控的人心里有個(gè)數(shù)。
業(yè)務(wù)安全風(fēng)控設(shè)計(jì)101-信息采集
業(yè)務(wù)風(fēng)控主要做四件事:
- 拿到足夠多的數(shù)據(jù)
- 做足夠靈活的分析平臺(tái)去分析數(shù)據(jù)
- 產(chǎn)出風(fēng)險(xiǎn)事件進(jìn)行阻攔風(fēng)險(xiǎn)
- 量化風(fēng)險(xiǎn)攔截的價(jià)值和不斷分析案例進(jìn)行策略優(yōu)化
拿數(shù)據(jù)這件事幾乎是決定風(fēng)控系統(tǒng)成敗的核心,由于篇幅問(wèn)題我們先主要說(shuō)這點(diǎn),主要有三件事要考慮:
1?拿到的數(shù)據(jù)越詳細(xì)越好
拿賬號(hào)安全這件事來(lái)舉例子,如果能拿到基礎(chǔ)的登陸注冊(cè)數(shù)據(jù),就可以從頻率、登陸注冊(cè)特征來(lái)進(jìn)行分析;
如果可以進(jìn)一步拿到登陸注冊(cè)行為的上下文,比如登陸前訪問(wèn)了哪些頁(yè)面,登陸后去訪問(wèn)了什么,就可以從訪問(wèn)行為軌跡來(lái)增加更多的分析維度,例如頁(yè)面停留時(shí)間,是否有訪問(wèn)到必訪問(wèn)的頁(yè)面等;
如果還可以拿到用戶的操作行為數(shù)據(jù),比如鼠標(biāo)移動(dòng)的軌跡,鍵盤(pán)輸入,那么可以進(jìn)一步的從操作過(guò)程來(lái)增加分析維度,比如是不是輸入密碼的時(shí)候有過(guò)多次輸入刪除?是不是直接復(fù)制粘貼的賬號(hào)密碼?
2建立標(biāo)準(zhǔn)的日志格式
確認(rèn)好能拿到哪些數(shù)據(jù)以后,就要開(kāi)始建立標(biāo)準(zhǔn)的日志格式。
常見(jiàn)的登陸、注冊(cè)、下單、密碼修改、綁定憑證修改等等都要給出一個(gè)標(biāo)準(zhǔn)的日志格式,而且要充分考慮到字段命名的統(tǒng)一,比如密碼、用戶名字段的名稱如果在不同的日志中叫法不統(tǒng)一,在后續(xù)分析和指定策略的時(shí)候都會(huì)遇到不小的麻煩。
3拿到的數(shù)據(jù)質(zhì)量
必要的字段是否都能拿到?
往往風(fēng)控關(guān)心的信息比如IP地址、UserAgent、referer這些信息業(yè)務(wù)都是不關(guān)心的,但這些信息的缺失可能造成很多策略沒(méi)法做,所以在采集信息開(kāi)始的時(shí)候就要有個(gè)明確的信息列表,一旦妥協(xié)了后面再去返工讓研發(fā)加是會(huì)遭白眼的。
數(shù)據(jù)信息拿的是否準(zhǔn)確?
比較常見(jiàn)的是需要用戶的訪問(wèn)IP,結(jié)果拿到的IP地址是內(nèi)網(wǎng)的服務(wù)器IP;或者是想要用戶名,結(jié)果傳遞過(guò)來(lái)的是UID。這點(diǎn)需要大量的前期溝通確認(rèn)工作,一旦上線了以后發(fā)現(xiàn)數(shù)據(jù)不對(duì)再改也同樣要遭白眼。
拿數(shù)據(jù)有主動(dòng)方式和被動(dòng)方式兩種:
1主動(dòng)方式方式
主動(dòng)方式是自己去數(shù)據(jù)庫(kù)、日志里面去讀。
這種方式實(shí)時(shí)性比較差,而且基本有什么拿什么,想加信息是比較難的,但不需要研發(fā)配合太多事情,適合喜歡自己動(dòng)手豐衣足食的場(chǎng)景。
當(dāng)然有些比較成熟的公司有自己的消息總線,風(fēng)控可以去實(shí)時(shí)的訂閱信息然后作為數(shù)據(jù)源進(jìn)行分析,但這種通常為少數(shù);
2 被動(dòng)方式方式
被動(dòng)方式就是提供接口給研發(fā),讓業(yè)務(wù)把消息按格式標(biāo)準(zhǔn)噴過(guò)來(lái)。
這種配合周期非常長(zhǎng),但可以按照標(biāo)準(zhǔn)來(lái)拿到高質(zhì)量的信息,所以是比較常見(jiàn)的風(fēng)控系統(tǒng)搭建方式。
踩坑記
1號(hào)坑:
如果拿消息是多數(shù)據(jù)源的時(shí)候,必須要考慮到消息的時(shí)間序問(wèn)題:
比如登陸日志是公共服務(wù)發(fā)過(guò)來(lái)的,網(wǎng)頁(yè)訪問(wèn)是拿的access_log,用戶操作行為數(shù)據(jù)是頁(yè)面JS或者SDK發(fā)過(guò)來(lái)的,那么這三者的時(shí)間是不一致的。
這就必須要在確認(rèn)所有的消息到位之后再進(jìn)行分析判斷。否則,如果實(shí)時(shí)策略考慮了登陸的時(shí)候必須有頁(yè)面鍵盤(pán)點(diǎn)擊,而兩個(gè)數(shù)據(jù)到位的時(shí)間不一致,就可能出現(xiàn)大量的誤封造成事故。
2號(hào)坑:
對(duì)采集回來(lái)的數(shù)據(jù)必須定期的對(duì)數(shù)據(jù)質(zhì)量進(jìn)行監(jiān)控——
已經(jīng)采集到的數(shù)據(jù)可能因?yàn)榧夹g(shù)架構(gòu)調(diào)整,代碼更新等各類奇葩原因造成采集回來(lái)的數(shù)據(jù)不準(zhǔn)了,如果無(wú)法及時(shí)發(fā)現(xiàn)可能造成后面一系列分析過(guò)程都出現(xiàn)錯(cuò)誤。
3號(hào)坑:
采集點(diǎn)盡量選擇穩(wěn)定的業(yè)務(wù)點(diǎn),比如采集登陸日志,一次性在公共服務(wù)采集好,后面出現(xiàn)問(wèn)題只要找一個(gè)點(diǎn)。
如果是去前端從WEB、移動(dòng)端等各個(gè)調(diào)用登陸服務(wù)的點(diǎn)去采集,出了問(wèn)題要改動(dòng)的工作就會(huì)成倍增加,還有可能出現(xiàn)新業(yè)務(wù)點(diǎn)的日志無(wú)法覆蓋的情況。
4號(hào)坑:
關(guān)于技術(shù)選型:
消息隊(duì)列是必須的,用restful只能處理業(yè)務(wù)日志比如登陸這種1秒最多幾次的類型,如果后期要去采集頁(yè)面訪問(wèn)行為這種一秒上千的消息就必須要用到隊(duì)列.
開(kāi)源的可以考慮RabbitMQ或者Kafka,穩(wěn)定性都還不錯(cuò)。
5號(hào)坑:
關(guān)于日志存儲(chǔ):
ELK是不錯(cuò)的選擇,為后續(xù)的分析平臺(tái)提供基本的查詢功能。
101 信息采集 結(jié)語(yǔ)
信息采集往往是實(shí)施風(fēng)控的最難的一個(gè)環(huán)節(jié),但也是最重要的環(huán)節(jié),覆蓋、質(zhì)量、時(shí)效都決定了項(xiàng)目的成敗。
因?yàn)槌鲇跍贤ǖ膲毫?,往往?huì)有比較多的妥協(xié),也就為后期風(fēng)控系統(tǒng)的搭建埋下了隱患,其實(shí)也很難一篇文章把細(xì)節(jié)描述詳盡。
業(yè)務(wù)安全風(fēng)控設(shè)計(jì)102-風(fēng)險(xiǎn)分析
上一章介紹了第一點(diǎn),如何去獲取足夠多的數(shù)據(jù),而接下來(lái)的事情就是要?jiǎng)?chuàng)建一個(gè)機(jī)制去靈活的處理這些信息,為自動(dòng)分析捕捉風(fēng)險(xiǎn)事件提供基礎(chǔ)原料,進(jìn)而借助規(guī)則引擎從中分析出風(fēng)險(xiǎn)事件。
在開(kāi)始前,我們還是回顧下業(yè)務(wù)風(fēng)控主要做四件事:
- 拿到足夠多的數(shù)據(jù)
- 做足夠靈活的分析平臺(tái)去分析數(shù)據(jù)
- 產(chǎn)出風(fēng)險(xiǎn)事件進(jìn)行阻攔風(fēng)險(xiǎn)
- 量化風(fēng)險(xiǎn)攔截的價(jià)值和不斷分析案例進(jìn)行策略優(yōu)化
接下來(lái),同樣的有三件事情需要考慮:
1.讓分析人員可以快速的查詢?cè)既罩?/strong>
日志并不是簡(jiǎn)單的存下來(lái),從風(fēng)控分析的需求來(lái)看,通過(guò)IP、用戶名、設(shè)備等維度在一個(gè)較長(zhǎng)的跨度中搜索信息是非常高頻的行為,同時(shí)還存在在特定類型日志,比如在訂單日志或者支付日志中按特定條件搜索的需求。
而這些主要是為了能夠讓分析人員可以快速的還原風(fēng)險(xiǎn)CASE,例如從客服那邊得到了一個(gè)被盜的案例,那么現(xiàn)在需要從日志中查詢被盜時(shí)間段內(nèi)這個(gè)用戶做了什么,這個(gè)過(guò)程如果有一個(gè)界面可以去做查詢,顯然比讓分析人員用grep在一大堆文件中查詢要快的多,并且學(xué)習(xí)門(mén)檻也要低得多。
如果在日志做過(guò)標(biāo)準(zhǔn)化的前提下,也可以進(jìn)行后續(xù)的業(yè)務(wù)語(yǔ)言轉(zhuǎn)譯,將晦澀難懂的日志字段轉(zhuǎn)化為普通員工都能看得懂的業(yè)務(wù)語(yǔ)言,也能極大的提升分析師在還原CASE時(shí)閱讀日志的速度。
2. 實(shí)時(shí)或定時(shí)的計(jì)算加工消息成變量&檔案
例如在分析某個(gè)帳號(hào)被盜CASE的時(shí)候,往往需要把被盜期間登錄的IP地址和用戶歷史常用的IP地址進(jìn)行比對(duì),即使我們現(xiàn)在可以快速的對(duì)原始日志進(jìn)行查詢,篩選一個(gè)用戶的所有歷史登錄IP并察看被盜IP在歷史中出現(xiàn)的比例也是一個(gè)非常耗時(shí)的工作。
再比如我們的風(fēng)控引擎在自動(dòng)判斷用戶當(dāng)前登錄IP是否為常用IP時(shí),如果每次都去原始日志里面查詢聚合做計(jì)算也是一個(gè)非?!百F”的行為。
那么,如果能預(yù)定義這些變量并提前計(jì)算好,就能為規(guī)則引擎和人工節(jié)省大量的時(shí)間了,而根據(jù)這些變量性質(zhì)的不同,采取的計(jì)算方式也是不同的。不過(guò)還好我們有一個(gè)標(biāo)準(zhǔn)可以去辨別:頻繁、對(duì)時(shí)效敏感的利用實(shí)時(shí)計(jì)算(比如訪問(wèn)頻率、時(shí)間間隔);而相對(duì)不頻繁、對(duì)時(shí)效不敏感的利用定時(shí)計(jì)算(比如用戶的常用IP、設(shè)備,即使少算短期內(nèi)的登錄記錄,也不會(huì)受到太大影響)。
3. 選擇規(guī)則引擎將人工策略自動(dòng)運(yùn)行
一個(gè)設(shè)計(jì)優(yōu)雅的規(guī)則引擎是把分析師的經(jīng)驗(yàn)決策和數(shù)據(jù)最終轉(zhuǎn)化為風(fēng)險(xiǎn)輸出的核心模塊,首先說(shuō)為什么需要規(guī)則引擎而不是選擇硬編碼邏輯——
筆者無(wú)數(shù)次遇到過(guò)這種場(chǎng)景,一個(gè)上午剛剛上線的策略,沒(méi)過(guò)1個(gè)小時(shí),攻擊者或者欺詐者就已經(jīng)試出繞過(guò)策略的方法了,如果你的風(fēng)險(xiǎn)控制邏輯是硬編碼,那么恭喜你,再走一遍開(kāi)發(fā)測(cè)試發(fā)布流程。
快速響應(yīng)是安全的生命線,無(wú)法想象還有比被攻擊者胖揍48小時(shí)然后才反應(yīng)過(guò)來(lái)去擋臉更讓人沮喪的事情了。
所以策略引擎必須能把策略邏輯從業(yè)務(wù)邏輯中解藕出來(lái),讓防御者可以靈活配置規(guī)則在靜默模式下驗(yàn)證和實(shí)時(shí)上線生效,并可以去隨時(shí)調(diào)整。
類似的開(kāi)源框架有很多,各有優(yōu)劣,但如果需要降低學(xué)習(xí)曲線,必須進(jìn)行一層包裝(這里又是一個(gè)比較大的話題,就先略過(guò)了)。
坑位標(biāo)注:
1、Sharding會(huì)影響到你的策略
為了支持并發(fā)和性能,通常在利用集群計(jì)算變量的時(shí)候我們會(huì)用到sharding。
sharding方式會(huì)按IP把數(shù)據(jù)分配到不同的運(yùn)算單元中去處理,在讀取結(jié)果的時(shí)候按IP去集群中的某臺(tái)機(jī)器中去拿數(shù)據(jù),以大幅提升并發(fā)處理讀取計(jì)算結(jié)果的能力。
那么,現(xiàn)在如果我想去按某個(gè)USER去拿數(shù)據(jù)的時(shí)候,就會(huì)發(fā)現(xiàn)一個(gè)用戶在不同IP下的信息被保存在不同的服務(wù)器上了,所以單一的Sharding分配肯定是不合理的,這點(diǎn)必須要注意。
2、策略中用到的變量,能不用現(xiàn)場(chǎng)算的就不用
有些簡(jiǎn)易的策略引擎設(shè)計(jì)中用到的變量都是到數(shù)據(jù)庫(kù)里現(xiàn)場(chǎng)算的,雖然可以極大的提升靈活性(新的變量不需要考慮歷史數(shù)據(jù)回補(bǔ)),但會(huì)極大的影響穩(wěn)定性和響應(yīng)時(shí)長(zhǎng),尤其在業(yè)務(wù)請(qǐng)求爆發(fā)的時(shí)候幾乎都會(huì)出現(xiàn)宕機(jī)無(wú)響應(yīng)的問(wèn)題。
要知道業(yè)務(wù)研發(fā)對(duì)安全的結(jié)果并不是那么敏感,但如果出現(xiàn)了問(wèn)題導(dǎo)致應(yīng)用不穩(wěn)定給人添麻煩,被拋棄可能就是早晚的事情,所以變量一定要盡量做到提前計(jì)算,并且設(shè)立緩存機(jī)制。
3、對(duì)風(fēng)險(xiǎn)分析要用到的計(jì)算資源有充分的認(rèn)識(shí)
毫不夸張的說(shuō),合格的風(fēng)險(xiǎn)分析要做的實(shí)時(shí)、準(zhǔn)實(shí)時(shí)計(jì)算量要大過(guò)應(yīng)用內(nèi)所有計(jì)算的總和甚至超過(guò)幾倍。
其實(shí)這也很好理解,比如一個(gè)典型登錄場(chǎng)景,業(yè)務(wù)要做的邏輯最主要的就是檢查密碼和帳號(hào)的身份是否吻合,而風(fēng)控要把這登錄用戶的歷史檔案全部拉出來(lái)看個(gè)遍,然后根據(jù)風(fēng)控策略來(lái)決定是否放行。所以在規(guī)劃風(fēng)險(xiǎn)分析要用到的資源時(shí)請(qǐng)不要吝嗇,按業(yè)務(wù)5X甚至10X的標(biāo)準(zhǔn)來(lái)評(píng)估風(fēng)險(xiǎn)分析的資源需求。
如果說(shuō)信息采集主要看的是安全產(chǎn)品經(jīng)理的溝通協(xié)調(diào)能力,設(shè)計(jì)風(fēng)險(xiǎn)分析功能更多的就是考驗(yàn)安全產(chǎn)品經(jīng)理的邏輯思維能力。
到了這樣一個(gè)階段,外部冗雜的溝通協(xié)調(diào)已經(jīng)結(jié)束,但如何最大化利用前期打下的基礎(chǔ),需要對(duì)風(fēng)險(xiǎn)問(wèn)題的分析、決策過(guò)程有一個(gè)非常清晰的認(rèn)識(shí),這里也有一個(gè)比較好的標(biāo)準(zhǔn)來(lái)去檢驗(yàn):
- 分析平臺(tái)設(shè)計(jì)的差,那么就只有設(shè)計(jì)者自己會(huì)用;
- 設(shè)計(jì)的好,你會(huì)發(fā)現(xiàn)處理投訴的客服、分析師都會(huì)很樂(lè)意來(lái)用你的分析平臺(tái)為他們解決問(wèn)題。
業(yè)務(wù)安全風(fēng)控設(shè)計(jì)103-阻斷風(fēng)險(xiǎn)
本系列的上一篇文章介紹了在采集信息后如何去分析這些數(shù)據(jù)產(chǎn)出風(fēng)險(xiǎn)事件,而產(chǎn)出的報(bào)警已經(jīng)脫離了業(yè)務(wù)系統(tǒng)并不能被采用的。說(shuō)白了:
分析出來(lái)的東西不能光自己看著High,還得去阻攔這些風(fēng)險(xiǎn)才能真正產(chǎn)生業(yè)務(wù)價(jià)值。
在開(kāi)始前,我們還是回顧下業(yè)務(wù)風(fēng)控主要做的四件事:
- 拿到足夠多的數(shù)據(jù)
- 做足夠靈活的分析平臺(tái)去分析數(shù)據(jù)
- 產(chǎn)出風(fēng)險(xiǎn)事件進(jìn)行阻攔風(fēng)險(xiǎn)
- 量化風(fēng)險(xiǎn)攔截的價(jià)值和不斷分析案例進(jìn)行策略優(yōu)化
到了第三步我們離整個(gè)系統(tǒng)核心框架的搭建就只剩一步之遙了,那么讓我們看看這個(gè)環(huán)節(jié)要考慮什么:
1、最終呈現(xiàn)給業(yè)務(wù)研發(fā)直白的判定結(jié)果
我們最終從數(shù)據(jù)中發(fā)現(xiàn)的報(bào)警和問(wèn)題最終是要在業(yè)務(wù)邏輯中去阻攔的,在接入這些結(jié)果的時(shí)候,往往分析師覺(jué)得可以提供的信息有很多,比如命中了什么規(guī)則、這些規(guī)則是什么、什么時(shí)候命中的、什么時(shí)候過(guò)期,其中最讓接入方心煩的當(dāng)屬風(fēng)險(xiǎn)分值當(dāng)仁不讓了,很多接入風(fēng)控的研發(fā)看到這些分值就一腦袋包:
你到底想讓我做什么,攔還是不攔?這時(shí)候如果你喏喏的再丟出個(gè)多少分值以上要攔,研發(fā)多半都會(huì)跟你說(shuō)直接給我結(jié)果就好了。
是的,很多風(fēng)控接口設(shè)計(jì)的都十分累贅,無(wú)用信息多到研發(fā)會(huì)覺(jué)得你在故意浪費(fèi)帶寬,其實(shí)一個(gè)code list給他們說(shuō)明對(duì)應(yīng)希望做的操作就好,一定把你覺(jué)得那些很牛逼的中間結(jié)果等等包裝成最終結(jié)果再給出去。
2、T+0還是T+1
舉個(gè)例子來(lái)解釋實(shí)時(shí)(T+0)和異步(T+1)風(fēng)險(xiǎn)判斷的區(qū)別。
T+1
你在打拳擊比賽,選手A只會(huì)打臉,上來(lái)就照著你臉來(lái)了一拳,你分析了一下打臉很疼而且不科學(xué),在第二拳往臉揮過(guò)來(lái)時(shí)你突然告知對(duì)方不可打臉,對(duì)方就成功的被你克制住了。這就是T+1的特點(diǎn),至少要在第二次風(fēng)險(xiǎn)攻擊才可以生效;
T+0
拳擊比賽第二場(chǎng)對(duì)陣選手B,同樣被打臉后你說(shuō)不可打臉,對(duì)方說(shuō)好,結(jié)果沖著肚子就來(lái)了一拳。你說(shuō)禁止打肚子,對(duì)方又一拳打腋下。這時(shí)你發(fā)現(xiàn)要在對(duì)方揮拳馬上打到你之前就要禁止。
這就是T+0了。
因?yàn)門(mén)+0在接入的時(shí)候要額外承擔(dān)很多計(jì)算成本,結(jié)果要現(xiàn)場(chǎng)算出來(lái)而延時(shí)要求又很高,所以一般都只在攻擊者得手關(guān)鍵步驟采取實(shí)時(shí)判斷(比如訂單支付或者提現(xiàn)請(qǐng)求)。而對(duì)于其他場(chǎng)景可以選擇T+1方式,比如登錄或者提交訂單等。
3、阻斷邏輯到阻斷產(chǎn)品
這一點(diǎn)我們豈安在對(duì)外演講的時(shí)候介紹過(guò)很多,在阻斷風(fēng)險(xiǎn)的時(shí)候事件發(fā)生的點(diǎn)是不同的,但短期又不可能讓業(yè)務(wù)研發(fā)在所有的地方接入風(fēng)險(xiǎn)阻斷怎么辦?
所以我們需要考慮幾個(gè)基本的保底措施,比如統(tǒng)一的驗(yàn)證碼驗(yàn)證頁(yè)面在IP層全局防止任何爬蟲(chóng)腳本行為,在賬號(hào)層通過(guò)登錄態(tài)管理統(tǒng)一攔截單個(gè)賬號(hào)在登錄后任何風(fēng)險(xiǎn)行為(全局強(qiáng)制登出)。
可能這些措施在體驗(yàn)上不是最好的,但是在發(fā)生特殊問(wèn)題的時(shí)候要等研發(fā)給你臨時(shí)加阻斷邏輯這個(gè)時(shí)間就沒(méi)法控制了。
坑位
1、接入風(fēng)控阻斷的邏輯位置
登錄的時(shí)候賬號(hào)輸入框鼠標(biāo)失焦就要去走風(fēng)控了,登錄結(jié)果出來(lái)之后再去判斷就沒(méi)意義,而資金相關(guān)的一般是在跳轉(zhuǎn)去收銀臺(tái)之前,你會(huì)發(fā)現(xiàn)一般風(fēng)險(xiǎn)判斷都是在結(jié)果出來(lái)之前(收集本次行為完整日志之前),所以如果你要做T+0判斷,就要求研發(fā)在進(jìn)行風(fēng)險(xiǎn)判斷的時(shí)候要提供更完整的信息,而不是只給個(gè)IP或者賬號(hào)名就行了(往往T+1就之要這些就夠)。
2、對(duì)業(yè)務(wù)流量充分調(diào)研并關(guān)注
平時(shí)可能流量很小的業(yè)務(wù),突然因?yàn)槟硞€(gè)活動(dòng)(比如秒殺)流量大增,除了在接入之初要對(duì)風(fēng)險(xiǎn)判斷請(qǐng)求有了解,對(duì)后續(xù)的活動(dòng)也要提前準(zhǔn)備,否則如果資源預(yù)估不足,突然又趕上這個(gè)點(diǎn)接了T+0接口有很多要現(xiàn)場(chǎng)計(jì)算的邏輯,陡增的業(yè)務(wù)流量分分鐘教你做人。
3、bypass ! bypass ! bypass
風(fēng)控風(fēng)險(xiǎn)判斷的最基本原則就是要不影響業(yè)務(wù)邏輯,所以超時(shí)機(jī)制在一開(kāi)始就要嚴(yán)格約定并執(zhí)行,一旦發(fā)現(xiàn)風(fēng)控接口超過(guò)預(yù)計(jì)響應(yīng)時(shí)間立馬放行業(yè)務(wù)請(qǐng)求。
4、讓一線同事們知道你在做什么
任何風(fēng)控準(zhǔn)確率都不是100%的,所以在和研發(fā)溝通好接入后一定要告訴一線同事們風(fēng)控阻斷可能出現(xiàn)的表象,以及大致的原因,以避免一線客服們對(duì)風(fēng)險(xiǎn)攔截的投訴不知道如何解釋,并給出具體的阻斷回復(fù)措施(加白名單、刪除黑名單等等,上帝們?cè)谀承┤兆颖热?15維權(quán)意識(shí)是非常強(qiáng)的)。
103 阻斷風(fēng)險(xiǎn) 結(jié)語(yǔ)
阻斷是最終產(chǎn)生真實(shí)價(jià)值的環(huán)節(jié),另外也是關(guān)聯(lián)部門(mén)最敏感的環(huán)節(jié)(嚇唬我半天逼著我把風(fēng)控接了,結(jié)果一天到晚給我出毛???生產(chǎn)環(huán)境是給你們玩的??。?qǐng)保護(hù)這至關(guān)重要的信任,你后面會(huì)越做越順的。
業(yè)務(wù)安全風(fēng)控設(shè)計(jì)104-風(fēng)險(xiǎn)分析
風(fēng)控系統(tǒng)和大部分的產(chǎn)品項(xiàng)目一樣,最終需要對(duì)領(lǐng)導(dǎo)層匯報(bào)這個(gè)項(xiàng)目為公司帶來(lái)了什么價(jià)值,這是評(píng)估項(xiàng)目成功與否的要素;另外是哪里做的不夠好,如果改善了能帶來(lái)更多的價(jià)值,給出了預(yù)期才有后續(xù)資源的補(bǔ)充,整個(gè)項(xiàng)目才能轉(zhuǎn)起來(lái)形成一個(gè)良性循環(huán)。
而這個(gè)系列的最后一話:我們來(lái)講講如何對(duì)風(fēng)控系統(tǒng)進(jìn)行效果評(píng)估與優(yōu)化。與之前三期的文章一樣,我們?cè)賮?lái)洗一次腦業(yè)務(wù)風(fēng)控要做的四件事:
- 拿到足夠多的數(shù)據(jù)
- 做足夠靈活的分析平臺(tái)去分析風(fēng)險(xiǎn)
- 產(chǎn)出風(fēng)險(xiǎn)事件進(jìn)行阻攔風(fēng)險(xiǎn)
- 量化風(fēng)險(xiǎn)攔截的價(jià)值和不斷分析案例進(jìn)行策略優(yōu)化
讓我們看一下這個(gè)環(huán)節(jié)要考慮的:
1.找到錢(qián)在哪里
風(fēng)控項(xiàng)目的基本價(jià)值在于省錢(qián),而省錢(qián)的思路基本有三種:
- 直接攔截風(fēng)險(xiǎn)帶來(lái)的止損(比如提前阻止了一筆欺詐交易所挽回的損失)
- 提升服務(wù)穩(wěn)定性所帶來(lái)的業(yè)務(wù)基本指標(biāo)提升(比如因阻止風(fēng)險(xiǎn)事件所降低的服務(wù)響應(yīng)延時(shí)而提升的業(yè)務(wù)轉(zhuǎn)化)
- 降低服務(wù)不可用概率事件所帶來(lái)的直接業(yè)務(wù)損失(比如降低了風(fēng)險(xiǎn)事件導(dǎo)致服務(wù)宕機(jī)所帶來(lái)的營(yíng)收損失)
可以看出這三點(diǎn)是按風(fēng)險(xiǎn)事件的暴力程度做出的簡(jiǎn)單劃分,其實(shí)也還有很多其他不同的視角來(lái)分類,很大程度上和對(duì)應(yīng)企業(yè)的互聯(lián)網(wǎng)業(yè)務(wù)形態(tài)有關(guān)。
而我們做這樣劃分的目的是為了在一開(kāi)始就明確風(fēng)控項(xiàng)目從哪里可以挖掘效益,很多情況下風(fēng)險(xiǎn)事件不是一個(gè)獨(dú)立的問(wèn)題,而是一個(gè)鏈條,由一些看起來(lái)影響不大的問(wèn)題逐層深入的。
比如,交易欺詐并不是一個(gè)獨(dú)立的問(wèn)題,而是因?yàn)樽?cè)環(huán)節(jié)發(fā)生的垃圾注冊(cè)問(wèn)題攻擊者手里有了大量的賬號(hào)所導(dǎo)致的,所以任何一個(gè)風(fēng)險(xiǎn)問(wèn)題都是有價(jià)值的,無(wú)利不起早,但作為風(fēng)險(xiǎn)分析者應(yīng)當(dāng)有能力找到其中的關(guān)聯(lián)轉(zhuǎn)化關(guān)系,并預(yù)測(cè)對(duì)方的得手點(diǎn)進(jìn)行效果評(píng)估會(huì)有更好的效果。
2.有效利用預(yù)期價(jià)值的力量
天下沒(méi)有100%準(zhǔn)確的風(fēng)控策略,所以在接入攔截的過(guò)程中業(yè)務(wù)方可能存在種種阻力,往往的一個(gè)誤區(qū)是沒(méi)有攔截就認(rèn)為風(fēng)控沒(méi)有效果,其實(shí)效果評(píng)估不只是在最后項(xiàng)目落地評(píng)估價(jià)值所用,在推行項(xiàng)目中間也有很好的效果,雖然沒(méi)有攔截,但預(yù)期效果放在那里,這對(duì)決策者平衡業(yè)務(wù)影響有著重要的價(jià)值。
3.學(xué)會(huì)考慮企業(yè)財(cái)務(wù)目標(biāo)
風(fēng)控系統(tǒng)并不是一個(gè)可有可無(wú)的東西,其實(shí)大部分企業(yè)中安全已經(jīng)是業(yè)務(wù)的必要組成部分了,那么我們知道在資源有限、而業(yè)務(wù)風(fēng)險(xiǎn)問(wèn)題無(wú)限的情況下,所有的資源投入都必然有一個(gè)優(yōu)先級(jí),而這個(gè)優(yōu)先級(jí)與整個(gè)企業(yè)發(fā)展的現(xiàn)狀必須是牢牢捆綁在一起的,講簡(jiǎn)單些:風(fēng)控系統(tǒng)解決什么問(wèn)題,評(píng)估出的效果與企業(yè)目前業(yè)務(wù)關(guān)心的問(wèn)題息息相關(guān),如果企業(yè)目前的業(yè)務(wù)重點(diǎn)在一次年度促銷活動(dòng),那么風(fēng)控的重點(diǎn)就應(yīng)當(dāng)在促銷羊毛黨;如果企業(yè)目前面臨嚴(yán)重的賬戶盜用投訴問(wèn)題,那么重點(diǎn)就應(yīng)在賬號(hào)安全。
尤其在風(fēng)控系統(tǒng)啟動(dòng)之初,配合系統(tǒng)的需求交付時(shí)間選擇對(duì)應(yīng)的重點(diǎn)問(wèn)題,對(duì)于項(xiàng)目效果的評(píng)估是一個(gè)巨大的加分項(xiàng),切記一開(kāi)始就貪大貪全。
4.策略的生命周期和健康度
風(fēng)控系統(tǒng)的規(guī)則有多少?哪些已經(jīng)很久沒(méi)有觸發(fā)了?產(chǎn)生誤判投訴的對(duì)應(yīng)規(guī)則有哪些?
一個(gè)新規(guī)則在建立起初的效果肯定是最有效的(因?yàn)檫@時(shí)風(fēng)險(xiǎn)問(wèn)題正在發(fā)生,而規(guī)則正好對(duì)應(yīng)了風(fēng)險(xiǎn)),但隨著時(shí)間其有效性是快速下降的,比如攻擊者都知道網(wǎng)站三次輸入密碼錯(cuò)誤觸發(fā)驗(yàn)證碼,那么他們會(huì)傻傻的嘗試第三次猜測(cè)密碼的概率有多大?那么是否有人在定期的去統(tǒng)計(jì)分析這些規(guī)則的效率就是風(fēng)控產(chǎn)品的重要運(yùn)營(yíng)環(huán)節(jié)了,而運(yùn)營(yíng)風(fēng)控產(chǎn)品所要付出的代價(jià)是往往大于常規(guī)互聯(lián)網(wǎng)業(yè)務(wù)產(chǎn)品的,并且是保證項(xiàng)目能夠持續(xù)產(chǎn)出價(jià)值并不斷迭代進(jìn)化的一個(gè)前提。
寫(xiě)在最后
業(yè)務(wù)風(fēng)控是一個(gè)非常具有挑戰(zhàn)性的項(xiàng)目,我一直把它比作一種競(jìng)技游戲,而這種攻防不同于傳統(tǒng)安全(在傳統(tǒng)安全你并不能有足夠的技術(shù)能力預(yù)測(cè)所有人的攻擊方法),它更強(qiáng)調(diào)邏輯和預(yù)測(cè),攻守雙方在一個(gè)雙方充分了解的環(huán)境下(業(yè)務(wù)邏輯簡(jiǎn)單到任何人都可以理解,但又可以產(chǎn)生無(wú)數(shù)的變化和組合)不斷的博弈,而這正是業(yè)務(wù)風(fēng)控系統(tǒng)的樂(lè)趣所在。
業(yè)務(wù)風(fēng)險(xiǎn)問(wèn)題足夠簡(jiǎn)單而又足夠復(fù)雜,正是這樣的原因其參與攻擊者并沒(méi)有太高的門(mén)檻限制。處于國(guó)內(nèi)互聯(lián)網(wǎng)的環(huán)境下,任何一家企業(yè)都不可能逃開(kāi)業(yè)務(wù)風(fēng)險(xiǎn)問(wèn)題的影響。
作一個(gè)比喻,這片土壤是有著自己的一些特質(zhì)的,而企業(yè)如果是生長(zhǎng)在這片土壤中的一顆樹(shù),投入足夠的養(yǎng)分才能快速生長(zhǎng),而業(yè)務(wù)風(fēng)險(xiǎn)則是寄生于樹(shù)木竊取養(yǎng)分的角色,只有能夠充分抵御這種風(fēng)險(xiǎn)的才能成長(zhǎng)為參天大樹(shù)。
作者:劉明,豈安科技聯(lián)合創(chuàng)始人,首席產(chǎn)品技術(shù)官。超過(guò)6年的風(fēng)控和產(chǎn)品相關(guān)經(jīng)驗(yàn),曾就職網(wǎng)易,負(fù)責(zé)《魔獸世界》中國(guó)區(qū)賬戶體系安全。現(xiàn)帶領(lǐng)豈安科技互聯(lián)網(wǎng)業(yè)務(wù)風(fēng)控團(tuán)隊(duì)為客戶提供風(fēng)控服務(wù)。
本文由 @劉明 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
66666
辛苦
詳盡且貼近互聯(lián)網(wǎng)金融的實(shí)際~感謝分享!
樓主文筆真好 好幽默