借貸平台產品被接口攻擊。
一。現象:管理系統后台不能訪問,請求超時,APP不能登錄,請求超時。
二。該接口被攻擊的原因:
1.權限檢查沒有做到位。權限檢查分為通行權限和數據權限。這次接口攻擊的操作者注冊APP后,登錄取得token,然后利用token獲取通行權限。但是在接口里面沒有對訪問接口的用戶做數據權限檢查,即沒有檢查是否有權限查看該數據。
2.自增Id問題。因為是系統重構,而舊系統中的數據庫表主鍵都是自增id。這個id就給攻擊者很輕松的拿到數據的主鍵,再模擬請求,獲取數據。自增id,優點是有,但是缺點也很多,尤其是2C的系統,流量較大,數據較重要,最后走向分庫分表,自增id就會有很大的 坑。以前的舊系統業務id關聯較多,又因為重構時間緊,就沒有對已有數據做修改。但是新產生的主鍵,我們都按照雪花算法生成的,方便以后維護。
三。接口被攻擊后怎么處理的:
1:對該接口的訪問頻次做了限定,如下圖
2:鎖定用戶IP,由於日志輸出較全,所以很快確定了被攻擊的接口和攻擊人的ip。馬上鎖定該ip,限制訪問。
3:修改接口。這個是后續處理,重新設計了接口的參數,增加了權限檢查,對出參做了脫敏處理。
四。如何確定自己的接口被攻擊?
這次的事故是因為攻擊人很猖狂,在下午工作時間發起攻擊,而且很暴力,不求隱蔽,導致系統出現網絡請求大量擁堵,系統卡頓,最后被發現。但是有很多攻擊都是很隱蔽,而且攻擊時段都是在凌晨時段發生的,用戶活躍性低,系統不會輕易發生較大穩定事故。攻擊者無聲無息的偷走你的數據。針對這種情況,就要根據你的日志輸出來確定了。要養成查看日志的習慣,統計前一天接口訪問頻次較多的ip和接口。根據實際情況確定是否被攻擊。這種統計是大概統計就可以發現,也可以寫系統功能,專門分析日志文件,精確統計分析接口攻擊的風險。
五。如何預防接口攻擊。
開發人員要在接口設計,實現的過程中把自己放在攻擊者的角度,設身處地的想想如果你想要通過這個接口獲取你的數據會怎么做。當然了,最基本的手段就是,ip訪問限制,權限檢查(包括通行證和數據權限),數據脫敏處理等。這些都要根據實際業務進行處理。