騰訊防水牆團隊:淺談業務安全前端對抗

隨着互聯網的發達,各種Web端的應用功能越來越多,架構設計也變得越來越複雜。爲了搶佔流量,所以應用會滿足使用者各種各樣的需求。但是隨着應用功能越來越多的同時,隨之而來的就是各種網絡安全的問題。如何保護自家產品不被黑客攻擊?用戶信息不被黑客獲取?作爲前端開發行業的我們也逃不開這個問題。所以今天我們就簡單聊一聊Web前端安全以及如何防範。

“安全”是個很大的話題,各種安全問題的類型也是種類繁多。如果我們把安全問題按照所發生的區域來進行分類的話,那麼所有發生在後端服務器、應用、服務當中的安全問題就是“後端安全問題”,所有發生在瀏覽器、單頁面應用、Web頁面當中的安全問題則算是“前端安全問題”。當我們下面在談論“前端安全問題”的時候,我們說的是發生在瀏覽器、前端應用當中,或者通常由前端開發工程師來對其進行修復的安全問題。

國內很多互聯網公司都有自己的安全團隊,特別是像騰訊這樣的大廠來說,每天面對以億計算的用戶數據,更需要一個強大而精密的技術團隊來保證自家的應用安全、穩定的運行。騰訊有一支專門對抗黑產的神祕隊伍,叫“騰訊防水牆”。爲什麼叫“防水牆”?因爲這樣一聽,就知道和“防火牆”是兩兄弟啊,而且他們打的就是各種流量水軍。

拿騰訊防水牆的日常來看,這支神祕隊伍每天在5000+企業和業務上和黑產分子過招,日均常規風險判斷500億+次,識別風險佔比高達30%,平均每10次請求就有3次爲風險請求。現在,騰訊防水牆不但在保護騰訊3000多個業務,還爲京東618、雙11大促保駕護航;爲永輝、蒙牛、快手、B站等提供註冊和營銷保護。

在今年的GMTC全球大前端技術大會上,我們邀請到了騰訊防水牆團隊的前端負責人劉忠正老師,來談談從代碼保護的角度出發,業務安全前端對抗應該如何進行。下面是InfoQ對於劉老師做的一個簡單的採訪:

InfoQ:劉老師您好,請您先簡單介紹一下您自己和您目前從事的工作?

劉忠正:首先感謝GMTC組委會願意引入前端安全領域相關的話題,讓我有機會給大家分享業務安全前端相關的內容。我是2015年畢業的,畢業後效力於阿里巴巴安全部,而後從阿里離職去51信用卡管家做過一段時間的前端架構,2017年加入騰訊,在騰訊防水牆團隊負責業務安全的前端。研究如何保護前端數據,增加前端代碼逆向的難度,以及對惡意的執行環境進行檢測,最終形成一個立體化的業務安全防禦體系。

InfoQ:可否簡單的介紹一下騰訊防水牆團隊,它對於騰訊各業務線有着什麼樣的作用?

劉忠正:防水牆團隊來自騰訊TEG安全平臺部,團隊積累了十餘年的業務安全數據和風控經驗,在金融、營銷、帳號、內容等場景爲騰訊各個業務提供業務安全基礎能力,保障微信、QQ、騰訊視頻、微衆銀行等產品的業務安全。

InfoQ:從業務安全角度出發,前端安全主要會面臨哪些問題?又有什麼樣的技術手段進行對抗呢?

劉忠正:衆所周知通用前端會面臨諸如XSS、CSRF這樣的安全風險,這種安全問題通常危害很大,需要研發同學有一些安全意識去防範。當然很多流程上的缺陷也會帶來業務安全問題,但這不屬於前端需要重點關注的領域。在業務安全前端領域,爬蟲、腳本批量操作纔是我們面臨最大的問題,我們需要去識別當前操作是正常人還是機器行爲。常規的方式是用圖形驗證碼,也就是做圖靈測試,但在機器學習盛行的大背景下,圖形驗證碼簡直不堪一擊,現階段主流的方案是通過收集用戶行爲和環境信息構建出多維模型對用戶進行精準識別,具體到前端則是採集各種模型需要的數據,並通過加密、混淆、虛擬機等方式保護前端代碼不被逆向或篡改。

InfoQ:前端代碼保護有哪些方式?(可簡單描述技術原理和達到的效果)

劉忠正:首先需要給大家一個客觀的認識,類似Uglify的代碼壓縮並不是很好的代碼保護手段,因此普遍認爲代碼壓縮不屬於代碼保護的一部分,代碼壓縮只是一種代碼優化。前端代碼保護大致有兩個流派,一個是以語法樹變換爲基礎的混淆保護,一個是以構建私有執行環境爲思路的虛擬機保護,谷歌則屬於後者。代碼混淆的效果因混淆器的負責程度而不同,基礎級別的混淆器混淆出來的代碼也很容易被逆向,而虛擬機保護的抗逆向效果好,其原理是在JavaScript的執行環境之上再設計構建一個虛擬機,所有原有業務邏輯的JavaScript代碼均轉換爲該虛擬機可識別的字節碼,複雜度較高效果好。

InfoQ:對於一般公司來講,前端安全是個老生常談的話題,很多情況下只有等出現問題才動手去解決,對於這樣的情況你有什麼“防範於未然”的建議嗎?

劉忠正:前端安全確實是老生常談的話題,其實很多時候出了問題再挽救往往就晚了,不管是敏感數據被盜還是代金券被薅,一旦薅完,損失就已經無法挽回,未雨綢繆非常重要。安全從業人員有個普遍的共識,就是不出安全問題往往很難去描述自己的工作價值,但出了問題安全人員肯定要背一部分鍋,吃力不討好。那麼對於一般公司來說,我個人有兩個方面的建議:

  • 不斷提升研發人員的安全意識
  • 使用現代前端框架

並不是這麼做就不會出問題,但出問題的概率會小一些,每個研發人員都多一點安全意識,很多漏洞就可以避免了。

InfoQ:在您看來,前端安全領域未來會是一個怎麼樣的發展趨勢?

劉忠正:我認爲前端安全領域未來的趨勢很有可能會是瀏覽器幫我們做越來越的事,最終安全問題均交給瀏覽器來解決。從歷史趨勢看,安全領域的門檻一定是越來越低的,對於從業人員是如此,對於攻擊者也是如此。

傳統前端安全現階段已經慢慢形成了一些通用的防禦方案,一方面,W3C制定了CSP標準用於提供更通用的XSS防禦手段,另一方面,現代前端框架React等天生就具備一定的防禦XSS能力,通過標準+框架+意識的提升,傳統前端安全問題將越來越少。

而業務安全前端解決的最根本問題是人與機器的問題,那麼爲何不能由瀏覽器提供一個統一的生物認證接口,讓瀏覽器告訴站點操作者是人還是機器,比如指紋、FaceID,這類生物特徵都是很難被僞造的,瀏覽器提供統一的接口進行認真,這對於惡意用戶來說幾乎是降維打擊。

那麼最終業務安全的問題可能就回歸到流程的問題了,業務邏輯是否存在被繞過的漏洞,前端不再那麼棘手。

通過劉老師的介紹,我們簡單的瞭解了一下前端安全的重要性和它對於業務的意義,在GMTC全球大前端技術大會上劉老師將會帶來《從代碼保護出發詳談業務安全前端對抗》的詳細技術演講,下面是演講提綱:

  1. 業務安全對抗背景
    (1) 業務安全背景
    (2)惡意分類
    (3)圖像對抗的脆弱性

  2. 前端解決方案
    (1)前端數據保護
    (2)前端代碼保護
    (3)字面量混淆
    (4)流程混淆
    (5)調試檢測

  3. 執行環境檢測
    (1)Node.js環境檢測

  4. 模擬器環境檢測
    (1)動態混淆技術

  5. 小結及效果

對於劉老師的演講或者前端安全領域感興趣的小夥伴歡迎來現場聆聽詳細的技術演講細節。在GMTC全球大前端技術大會上我們還設置了小程序、性能優化、前端框架、Node、移動AI、圖形渲染、前端團隊管理等熱門技術專場,可點擊”這裏“瞭解大會詳情。購票諮詢:18514549229(同微信)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章