前言:做產品,安全問題是一個不能不考慮的問題,稍有不慎就會發生類似「薅羊毛」「資訊被盜」等問題。很多時候我們都在尋求技術方面的解決方案,但其實有一些簡單的產品策略,也可以從一定程度上減少安全問題的發生。今天會從之前遇到過的社群「垃圾帖」問題入手,探討產品設計層面上對於安全問題的緩解辦法。
問題
在做社群產品時,經常會遇到很多的垃圾內容,較為常見的是一類包含色情資訊、外鏈引流資訊的內容。這種內容很多都是大面積批量發出,單純靠人工刪除遠遠跟不上釋出的速度,導致整個社群中充斥著這類違規內容,不僅影響使用者體驗,還會存在法規上的風險。
分析
採集這些垃圾帖的內容和釋出使用者資訊後,發現這些垃圾內容有以下一些特徵:
- 釋出的內容大同小異,基本都附有手機、微信、外鏈等內容
- 內容的釋出者絕大部分為剛註冊的新使用者,極少數的為正常使用者
- 內容的釋出者 IP 地址和 MAC 地址均不一致
可以看出這些特徵中有如下一些共性:
- 釋出者的目的是希望把使用者向站外引流,但與社群本身不構成競爭關係
- 釋出者為惡意使用者批量註冊的賬號,且無法用禁用 IP 或 MAC 地址來遮蔽
解決方案
不難發現,整個垃圾內容釋出的流程中存在兩個重要節點:使用者賬號批量註冊和垃圾內容釋出,因此考慮從這兩個節點入手解決。
1. 針對賬號體系
- 註冊限制:
- 在新使用者註冊時,通過增加驗證碼(簡訊驗證碼、圖片驗證碼等)增加使用者註冊成本,抵禦部分惡意註冊的現象
- 收集註冊資料,對比正常使用者的行為,對非正常使用者進行賬戶凍結
- 登入限制:
- 在使用者登入時,增加圖片驗證、人機識別混合驗證
- 限制使用者的登入頻次
- 高危賬戶(多次異地登入等)進行校驗或強制要求修改密碼
2. 針對內容釋出
- 釋出限制
- 在使用者釋出內容時,增加圖片驗證、人機識別混合驗證
- 針對使用者釋出的內容,增加關鍵字校驗,觸及違規或敏感詞彙的內容不允許發出
- 限制新註冊使用者的日釋出內容的數量
這樣就可以了嗎?
增加了這些限制,上線之後,很多的問題暴露了出來:
- 由於增加了非常複雜的驗證機制,導致使用者的註冊、登入和內容釋出受阻,新增使用者、活躍使用者和內容生產量有明顯下降
- 違規釋出者為突破每日釋出限制,開始盜取老使用者的賬號資訊,進行垃圾帖釋出
- 增加遮蔽的關鍵詞永遠是滯後的,只能等新的垃圾帖內容發出后豐富關鍵詞庫,但這時垃圾帖已經產生
- 關鍵詞「一刀切」的遮蔽方式,很容易將正常內容也過濾掉,打擊使用者內容釋出的信心。可以猜一下下圖為什麼被遮蔽:
所以先前的策略起到了一定的效果,但是看起來「得不償失」。這種情況應該如何應對呢?細化規則。
解決方案 2.0
之前的策略之所以存在問題,是因為未能做到更細粒度的針對,「寧錯一千不漏一個」。因此要想解決這個問題,最好的辦法就是細化攔截規則。
1. 針對驗證碼:
- 增加每日免驗釋出閾值
- 增加免驗許可權使用者(高階別,安全風險低的使用者可以免驗,這部分使用者大多為活躍使用者,賬號被盜取可能性較低)
- 採用更簡單的驗證方式(比如從圖文式驗證碼改為行為式驗證碼)
2. 針對關鍵詞過濾:
- 將關鍵詞劃分安全等級,不同等級進行不同處理,如低等級關鍵詞用「**」代替,中等級關鍵詞僅對釋出者可見,其他使用者不可見,高等級關鍵詞直接禁止發出
- 建立內容過濾池,對已遮蔽的內容進行記錄,若出現正常內容被過濾的情況,則可以手動恢復
- 增加新關鍵詞後,支援將歷史內容重新過濾一次
一些疑問
疑問:為什麼要在不相關的社群釋出色情資訊呢?批量註冊新使用者是怎麼做到的,哪裡來的這麼多手機號?老使用者的賬號資訊是如何被盜取?……
- 出於 SEO 考慮,很多色情內容或者網站為了引流,會在高權重的網站內釋出相關內容,使用者在搜尋時相關的內容即會優先展示,所以有專門的工作室承接垃圾內容的推廣。
- 首先很多網站註冊時不要求使用者輸入手機號,因此可以通過序號產生器,直接通過 post 請求與伺服器互動,就可以完成批量註冊;如果是需要手機號的註冊,則可以通過灰色產業購入不帶有身份資訊的「黑卡」,成本低,投入產出可觀。
- 若本身站點使用者登入時密碼傳輸校驗正常、token 未被破解或劫持,則很大可能使用者資訊洩露為「撞庫」導致。所謂撞庫,簡單來說就是非法入侵者通過技術手段(漏洞注入、webshell,etc.)或者獲取已有社工庫,建立一個較為完整的資料庫後,嘗試用這些庫中的資訊去登入其他系統。一般由於前期資料採集較為詳實,撞庫所用的字典精度比暴力破解的高,因此成功率也會高。
一些思考
- 一些需要從技術角度的問題,從產品層面上也可以做一些優化
- 解決問題時需要找到問題的關鍵節點,學會提取共性和發現差異
- 資料監控很重要
- 問題的解決方案需要進行相應調整,直到找到最優解
- 嘗試去深入業務,分析業務,找到利益矛盾點,對解決問題大有裨益
Ps:一些實用的外接服務(非廣告):