開放平臺:搭建API安全預(yù)警平臺
編輯導(dǎo)語:現(xiàn)如今互聯(lián)網(wǎng)普及率很高,大家都會在網(wǎng)上的各種平臺進行注冊,這時候有一定的信息泄露風(fēng)險,所以在前期開發(fā)時會設(shè)置一些防范策略;本文作者分享了關(guān)于搭建API安全預(yù)警平臺的方法,我們一起來看一下。
認(rèn)證服務(wù)應(yīng)用的越來越廣泛,比如:驗證碼等這些都是通過接口能力服務(wù)完成;之前負(fù)責(zé)過的高安全級別的認(rèn)證平臺在建設(shè)的時候,整理了一些安全防范策略。
如下是一些工作的總結(jié):
一般來說,大公司都會有專門負(fù)責(zé)數(shù)據(jù)安全的部門或團隊對安全問題進行排查,亦或者有經(jīng)驗的研發(fā)會在開發(fā)時考慮到,然后主動提出并解決。
對于某些風(fēng)險其風(fēng)控策略還是需要產(chǎn)品經(jīng)理提出的。
一、為什么要防范風(fēng)險?
對于用戶:
- 用戶頻繁騷擾:接口被頻繁調(diào)用,信息不斷下發(fā)到用戶;比如:短信下發(fā)類接口(驗證碼、營銷等)。
- 用戶敏感信息被盜:第一種方式:某些數(shù)據(jù)在未授權(quán)的情況下被獲??;第二種方式:代碼泄露后,敏感信息泄露,個人信息、實名信息、賬號密碼等。
- 用戶無法正常訪問:接口被頻繁請求,網(wǎng)絡(luò)請求堵塞。
- 用戶訪問數(shù)據(jù)顯示異常:接口參數(shù)遭攻擊者篡改。
對于公司:
- 用戶投訴:用戶的風(fēng)險問題很容易導(dǎo)致用戶投訴。
- 大量費用:頻繁調(diào)用接口導(dǎo)致大量接口請求,刷量導(dǎo)致高額的費用,有些接口的調(diào)用還是非常昂貴的。
- 公司業(yè)務(wù)受損:服務(wù)器被攻擊,客戶端會有風(fēng)險導(dǎo)致癱瘓。
- 服務(wù)器資源消耗:大量調(diào)用接口及接口傳輸上限,加大服務(wù)器性能消耗。
二、風(fēng)險防范方式
api安全問題主要有數(shù)據(jù)的傳輸安全問題、數(shù)據(jù)安全問題、服務(wù)器安全問題。
1. 傳輸安全
接口傳輸風(fēng)險可能會導(dǎo)致接口被隨意調(diào)取、傳輸劫持等。
為應(yīng)對傳輸風(fēng)險,可以做如下防范:
1)授權(quán)訪問(未授權(quán)、越權(quán))
- 平臺之間的接口:需要使用一些身份認(rèn)證機制,比如:APPID或APPKey和APPSecret、token。
- 前后端接口調(diào)用:不要全部按前端傳入的次數(shù)進行處理,要由后端做二次校驗,嚴(yán)格對權(quán)限進行控制;后端需要自動二次獲取用戶的相關(guān)權(quán)限信息。以此減少驗證權(quán)限環(huán)節(jié)存在的缺陷。
2)數(shù)據(jù)截取被黑:
- 在安全的網(wǎng)絡(luò)環(huán)境下進行傳輸:內(nèi)網(wǎng)、專線
- HTTPS都懂的。
- 數(shù)據(jù)加密,比如敏感信息加密脫敏。
3)傳輸頻次(重放攻擊)
- 一次性token機制,token使用一次后就失效。
- 對接口調(diào)用頻率和次數(shù)限制:比如驗證碼60s內(nèi)只能下發(fā)一次。
4)DDOS攻擊指:處于不同位置的多個攻擊者同時向一個或數(shù)個目標(biāo)發(fā)動攻擊,或者一個攻擊者控制了位于不同位置的多臺機器并利用這些機器對受害者同時實施攻擊。
- 建立IP白名單;
- 流量清洗:將正常流量和惡意流量區(qū)分開,正常的流量則回注客戶網(wǎng)站。
5)數(shù)據(jù)篡改:篡改接口報文內(nèi)容,再次請求接口。
通過簽名的方法防治數(shù)據(jù)篡改:請求/響應(yīng)報文簽名,對應(yīng)端內(nèi)進行驗簽。簽名算法有哈希算法、MD5。
2. 數(shù)據(jù)安全問題
主要是敏感信息泄漏:對于敏感信息需要進行脫敏,且不能依賴前端脫敏,需要由后端對數(shù)據(jù)進行脫敏。
3. 服務(wù)器安全問題:
主要是服務(wù)器資源消耗問題:通過接口對大文件處理消耗服務(wù)器資源。
- 對上傳的文件大小、格式限制。
- 接口頻率、次數(shù)限制。
- 限制接口響應(yīng)內(nèi)容大小。
三、產(chǎn)品經(jīng)理搭建安全預(yù)警平臺
為保障平臺和終端用戶的正常運行,可以通過監(jiān)控預(yù)警平臺,對接口管控,防止業(yè)務(wù)遭受攻擊導(dǎo)致平臺能力短時間資源消耗過高,導(dǎo)致能力故障。
平臺可以通過對如下指標(biāo)進行監(jiān)控:接口調(diào)用頻率、接口調(diào)用準(zhǔn)確率。
1. 接口調(diào)用頻率和準(zhǔn)確率預(yù)警
判斷標(biāo)準(zhǔn)假設(shè):
- 假設(shè)1:TPS調(diào)用頻率可取近7天平均的請求的數(shù)量作為正常數(shù)量的基準(zhǔn)線。
- 假設(shè)2:接口每天的調(diào)用頻率都是有規(guī)律的,可分為:早中晚,早(0點-8點:低頻)、中(8點-18點:高頻)、晚(18點-24點:高頻)
- 假設(shè)3:正確率低于某一值時,可直接識別為高危問題:被攻擊,直接將接口停用,對應(yīng)業(yè)務(wù)方設(shè)為黑名單;正確率在某一區(qū)間時,識別為:可能被攻擊,則需預(yù)警。
通過如上假設(shè),可判斷出頻率和準(zhǔn)確率的數(shù)據(jù)對應(yīng)反映的接口調(diào)用情況。因此基于如上假設(shè)可建設(shè)一套預(yù)計平臺。
核心功能邏輯:
1)后臺可配置發(fā)生預(yù)警的限制:
- TPS按基準(zhǔn)線的某些倍數(shù)/某一定值,則發(fā)生預(yù)警/接口調(diào)用拉黑,可設(shè)置拉黑定時器。(拉黑某一時間段)
- 準(zhǔn)確率可設(shè)置某一百分百,發(fā)送預(yù)警/接口調(diào)用拉黑,可設(shè)置拉黑定時器。(拉黑某一時間段)
2)黑白名單:對于某些業(yè)務(wù)線放入黑名單,則無法使用接口,放入白名單則可無視預(yù)警,正常調(diào)用。
3)其他基礎(chǔ)數(shù)據(jù):
TPS總數(shù)、篩選器、可視化插件(餅圖/線形圖):
2. 通過賬號、IP控制頻率
通過用戶賬號、IP控制頻率,可以控制每分鐘調(diào)用次數(shù)、每小時調(diào)用次數(shù)等。根據(jù)具體場景確定策略。
本文由 @?liyo龍 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議。
專業(yè),不體系