“你們安全不要阻礙業務發展”、“這個安全策略降低用戶體驗,影響轉化率”--這是甲方企業安全部門經常聽到合作團隊抱怨。但安全從業者加入公司的初衷絕對不是“阻礙業務發展”,那么安全解決方案能否成為“業務促進者”,而非“業務阻礙者”呢?答案是肯定。
在安全產品中,和業務解耦、對客戶透明的安全產品,如防火墻、IDS、WAF等就很少遭受到類似的吐槽。
但回歸到互聯網業務安全場景,業務安全防控常見場景往往如下:
場景一:
安全:”這個安全策略需要你們把用戶登錄的IP發給我。”
業務開發改造N天上線。
安全:“這里有一部分IP不對啊,是不是取的網關的內網IP。”
業務開發:。。。
場景二:
業務開發:”安全讓我們紀錄user-agent、瀏覽記錄,現在服務的性能都消耗在打日志上。做這些有業務價值嗎?”
安全:。。。
這些場景核心問題都在于業務安全解決方案通常嵌入業務邏輯中。那互聯網業務安全有沒有如同防火墻一樣通用的解決方案呢?要解答這個問題我們先探究業務安全的“通用安全風險”。
001 業務安全通用安全風險
要找到業務安全的通用風險,首先得定義什么狀態才算業務“安全”。當安全工程師被客戶問到“這個產品是否安全?”,他往往會考慮各種安全細節問題,業務類的是否會被撞庫、是否存在信息泄漏,系統類的是否有注入、水平權限控制等問題。但這些安全細節問題,往往并非問題“是否安全”的答案。
客戶所需要的“安全”是一個平衡狀態。沒有絕對安全的系統,再健壯的系統也有可能因為安全問題而遭受資損,同時為系統提高安全性也并非零成本。所以客戶需要的“安全”是安全成本和安全資損的平衡。為一個DMZ區的博客服務器配備一個專屬安全工程師保障不被入侵不是客戶需要的“安全”。節約安全成本卻導致大規模的撞庫事件也不是客戶希望的“安全”。
回歸到業務安全場景,會發現一個共同特征。只有達到一定規模,批量利用,業務安全漏洞才會造成業務影響,產生用戶無法承受的資損。一次Web攻擊可能就寫入webshell導致機器淪陷,但有限次的撞庫、垃圾注冊、垃圾消息、刷單造成的資損是企業可以承受的。而攻擊者要達到大規模,批量性的目的,都要通過機器來自動化實現。所以可以得出結論——大規模、批量性的機器風險是業務安全領域面臨的通用風險。
002 通用解決方案需求分析
上節已經得出大規模、批量性的機器風險是業務安全領域面臨的最大痛點,那么要實現通用的“解決機器風險方案”有哪些需求。針對機器風險業界防御手段已經很成熟--針對人類知識(驗證碼)、針對人類固有特征(行為識別)、消耗機器成本(POW)等。但業界仍無整合這些防御手段提供通用普適的業務安全解決方案,問題主要有兩點——無法做到業務透明和快速部署。
業務透明
現有的人機識別方案,客戶需要前端、后端的改造進行接入,甚至于業務需要配合安全方案進行業務邏輯的調整。安全侵入業務主邏輯,有時候安全甚至成為業務的負擔。
快速部署
機器風險防御手段過于復雜,無法快速部署,進而導致業務系統無法通過配置簡單的實現全站部署防控。而業務系統往往有無數的小流量入口,這些未進行部署的入口往往成為漏洞。
003 通用解決方案具體實現
如何實現“業務透明”、“快速部署”的通用機器風險解決方案呢?核心是能夠以中間人的方式介入瀏覽器和業務服務器之間,實現如下需求:
1、在頁面注入相應的Javascript腳本;
2、Javascript腳本采集數據并hook用戶所有觸發提交操作的事件,將數據在用戶發起請求時注入請求中;
3、能夠代理轉發瀏覽器與業務服務器的請求,并解析請求內容;
現在中間人攻擊工具(MITMf)已經相當成熟,而逆向應用中間人攻擊工具的思路似乎可以達成這些需求。在業務服務器與瀏覽器之間部署反向代理服務(通常為WAF),用戶在瀏覽網站時由WAF注入前端需要數據采集的JS,同時JS在前端hook用戶的請求事件,用戶發起請求時將采集的風險識別數據注入,請求再次到達反向代理時,由反向代理提取相應風險識別數據提交風控大腦進行綜合決策判斷是阻斷用戶請求還是發起二次校驗挑戰。
業務風險防火墻在業務服務器與瀏覽器之間的交互流程如下圖:
關鍵的業務風險防控采用三層漏斗模型進行層層過濾,達到透明阻斷業務風險的目標。這三層漏斗模型分別是:阻斷機器從而杜絕攻擊者批量攻擊的風險,異常流量分析識別部分漏網的機器行為及行為軌跡異常的不良用戶,征信模型基于對于用戶的信譽評分拒絕不良用戶,最終達到將服務推送給目標用戶的目的。
阻斷機器:
1. 針對人類固有特征進行機器識別,基于JS實現的可信前端采集用戶行為數據,通過線上實時模型來發現機器行為進行阻斷;
2. 消耗機器攻擊成本從而讓攻擊得不償失,基于POW(proof of work)原理,通過服務端下發問題消耗前端的計算量。對于有足夠空余CPU資源的普通用戶少量的計算并不消耗成本,而攻擊者需要達到批量攻擊的效果則會占用極大的計算資源,讓攻擊得不償失。
流量分析:
通過機器學習對網絡流量中的異常流量進行識別,從而攔截上一層漏過的行為軌跡異常的不良用戶,常見思路如下:
1. 瀏覽軌跡,比如在互聯網金融場景,正常用戶會在注冊后對比多款理財產品最后進行下單,而“羊毛黨”往往在群里得到活動信息就會直奔活動頁面薅羊毛;
2. URL聚類,在網絡購物場景,正常用戶購買某款商品之前一般會在同類目商品中進行選擇;
3. 瀏覽頻率,在UGC網站上,用戶瀏覽和評論的一般是有一定時間間隔,頻繁秒回的用戶極有可能是在發垃圾消息。
征信模型:
伴隨互聯網誕生有一句經典的論斷”在互聯網上,沒人知道你是一條狗”。然而業務安全場景,識別用戶身份、評估用戶信譽是業務風控的重要依據。
借鑒現實社會成熟的征信系統,且現在互聯網已經是一個成熟的生態閉環。通過設備指紋標示用戶,基于用戶在互聯網的活動記錄進行信譽評分,并輔以失信用戶名單,從而對bypass前兩層的高風險用戶進行攔截。
004 業務風險防火墻的價值
回歸到文章開始的問題,業務安全防控如何成為“業務促進者”,業務風險防火墻能否達成這個目標?答案是肯定的。
業務風險防火墻有兩大優勢,而這兩大優勢在保障企業業務安全同時也達到了促進業務發展提速的目標。
第一,業務透明,業務開發資源可以專注的投入在業務代碼上,降低企業達成安全需求的成本。
第二,快速部署,業務風險防火墻可以快速進行全站部署,快速實現對網站業務風險的保障。如同安全帶的發明保障駕駛員的安全性同時進而讓汽車能夠更安全的以更高的速度行駛,對全站進行業務風險防控后也可以讓企業真正把業務推送給目標用戶,從而讓企業的業務發展提速。