一、安全是產品的一個特性,在設計之初就應該考慮安全隱患。
開發者眼中一個項目影響因素優先級排序:
1、功能實現
2、性能
3、可用性
4、如期上線
5、可維護性
6、安全
搜索引擎:釣魚網站、欺詐網站、掛馬網站
郵箱垃圾:AD、釣魚、欺詐
一個成熟的互聯網產品必然會存在安全性方面的競爭,安全性做好了,產品最終才能真正成熟。
好的安全方案:
1、良好的用戶體驗
2、優秀的性能
eg:
WEB登錄入口的保護:
基本:用戶名+密碼
雙因素,提高安全性,但降低用戶體驗
U盾、動態口令卡、令牌:成本
客戶端證書:瀏覽器及系統兼容性、證書過期與更新
短信驗證碼:達到率、國外用戶
複雜密碼,一種糟糕的體驗,本質需求爲:
對抗暴力破解
防止密碼中包含個人信息
防暴力破解的嘗試:驗證碼
一個賬號一段時間內的登錄失敗次數
一個IP一段時間內的登錄行爲次數
腳本或掃描器特徵
防止密碼包含個人信息:
結合用戶註冊信息,當密碼設置包含有相關信息時進行告警提示,引導用戶設置安全的密碼
二、業務邏輯安全
1、當一個系統存在多套用戶體系時,需要考慮體系間的相互影響;
2、頁面不能顯示其他用戶的用戶名或id,以避免惡意鎖定或暴力攻擊;
一個好的防暴力破解方案,需要做到僅僅把壞人關在門外,不對正常的用戶登錄造成影響:
首先判定是否具備暴力破解特徵,然後針對特定賬號、特定IP進行驗證碼校驗。
密碼取回流程:
1、修改密碼需要驗證當前密碼,因爲黑客可以盜取用戶賬戶而不需要知道其當前密碼;
2、自助取回密碼的三種方式:安全問題、安全郵箱、短信驗證碼
這裏要考慮這幾類驗證方式是否能不通過驗證而直接被黑客修改;如果這幾類方法都不保險,還可以考慮一個較好的方法:使用用戶在網站上留下過的一些私有信息,與用戶逐一覈對,以驗證用戶身份,如:曾使用過的密碼、曾登錄過的時間、地點、曾發表過又刪除了的文章等用戶“基因”。
三、賬戶被盜
被盜途徑
1、登錄過程無https,被嗅探截獲密碼;
2、用戶電腦中木馬,被獲取鍵盤記錄;
3、用戶被釣魚網站騙取密碼;
4、網站登錄入口被暴力破解;
5、網站密碼取回流程存在邏輯漏洞;
6、網站存在XSS等客戶端腳本漏洞,用戶賬戶被間接獲取;
7、網站存在SQL注入等服務器端漏洞,網站被黑客入侵。
上述威脅,除了2、3點是用戶原因導致,其他均可以從服務端進行控制,需要網站對安全負責。
根據微軟提出的安全風險評估模型DREAD模型(危害性、可重複性、難度係數、影響用戶數、暴露係數),可得出如下風險嚴重程度排序:
1、網站被暴力破解;
2、密碼取回流程存在邏輯漏洞;
3、密碼被嗅探;
4、網站存在SQL注入漏洞;
5、用戶被釣魚
6、網站存在XSS,賬戶被間接獲取;
7、用戶中木馬
所以,安全工作的優先級:用戶登錄安全>網站實現上的安全漏洞>用戶使用環境安全
四、互聯網的垃圾
垃圾註冊幾乎成爲一切業務安全問題的源頭。
垃圾行爲特徵:
內容:以自然語言分析、關鍵詞匹配等判斷
行爲:以業務邏輯規則判斷
客戶端:人機識別,如驗證碼、讓客戶端解析javascript等
三種規則結合,建立一套風險控制系統,以判斷出非法用戶和非法行爲;同時在攔截上也要講求策略,避免規則見光死。
五、釣魚網站
釣魚網站的防控
1、控制傳播途徑 建立反釣魚的統一戰線,瀏覽器、殺毒軟件攔截
2、直接打擊釣魚網站
3、用戶教育
4、自動化識別釣魚網站
六、用戶隱私保護
1、用戶應該擁有知情權和選擇權
2、網站應該妥善保管收集到的用戶數據,控制使用範圍;
限制員工接觸到用戶原始數據,個人數據應該只能由算法或程序來計算,工作人員不宜看到完整的用戶信息,適當使用掩碼xxxx。
3、Do-Not-Track
美國提出的立法確保用戶有權拒絕網上追蹤用戶的行爲。
非英語國家的用戶行爲收集器:輸入法。