程式作為一項工程,在上線之時也是經歷廣大人民群眾的考驗之時,如何保障程式順利、平穩、有效運行歷來是各個專案的重點方向,本人僅以測驗人員角度去分析如何確保安全生產,
在我們看來,專案采用的常規方法有以下:
1、生產隔離,將測驗環境、生產環境進行隔離,避免人為導致誤操作,
2、生產權限最小化,將服務器、相關配置等環境資訊僅僅釋放給有權限的人,
3、生產密碼安全管理,密碼復雜,密文,不唯一等,
4、代碼權限管理,合并分支專人專責處理,
5、程式熱備、主從等功能均有,
測驗需要側重點:
1、程式是否有漏洞、是否存在盜刷可能,比如不登錄就能查詢到用戶個人資訊,
2、重點介面校驗機制,比如涉及到錢、積分相關的引入token等校驗,
3、程式是否有明顯邏輯問題,是否可以通過多個介面組合來達到非法下單目的,
4、介面出入參是否遵循操作類介面嚴入;查詢類介面嚴入嚴出等規則,
5、程式是否有快取機制,
6、程式是否有防并發等功能,
7、程式是否有Nginx、kong等負載機制,
8、程式是否有放穿透等功能,
9、程式是否支持高并發壓測,
10、程式是否支持穩定性壓測,
11、程式是否支持灰度升級、部署等功能,
12、程式中間件、連接數、是否使用合理,
13、程式日志級別、日志列印是否列印完善,
14、程式是否有完善監控機制,
以上關注點任何一點拿出來都是一項復雜作業,作為測驗,應該對以上都有涉獵,并且在實際作業中用經驗去完善產品,
記一次生產問題疑似攻擊分析:
生產問題背景:
1、周四早上九點我方中心A接收到大量請求來自于介面a,每分鐘10W+,觸發程式預警值,于是登錄生產環境巡檢日志,發現針對同一入參在呼叫a介面時存在,重復呼叫情況(判斷重復呼叫是根據業務場景,a介面僅需在登錄和下單時呼叫,但日志中a介面在1min內呼叫數十次),
于是初步判斷:
1、疑似攻擊,
2、呼叫方邏輯問題,
因a介面提供給多個友商,且友商服務部署在同一服務器網段內,因此只能協調友商排查來源,
不幸的是
10點,我方中心日志不在列印,因業務量大,出現日志積壓,導致日志采集出現問題,日志采集程式down掉,
萬幸的是
程式正常,僅僅不打日志而已,但作為多方協同的專案,日志就是自證清白的保命符,
因此
我方運維人員介入解決日志采集慢問題,本人繼續排查請求來源,
首先為了排查業務來源是否為攻擊,采用如下辦法:
1、檢查請求發起方,發現所有請求均來自于友商服務器號段,因此,排除黑客直接呼叫我方中心介面情況,
2、根據日志關鍵字協調友商進行友商一側日志排查,未發現呼叫日志,于是乎問題有點僵局,
3、繼續分析我方日志,檢查所有業務日志,排查10W+每分鐘的請求集中在哪幾個介面,并且此介面業務是否均成功,最后排查到a介面呼叫量大,但是成功率在99%(此處1%失敗主要是我方a介面依賴外部三方系統進行查詢,三方系統有自己的風控限制,因請求量大,觸發三方規則),
4、于是從a介面日志中抽查,發現多個請求均有短時間密集呼叫情況,
5、從服務來源為友商來看,結合友商提供日志、及前期友商的表現大膽猜測友商日志列印不對,需要排查代碼,
6、通知友商測驗負責人應從代碼角度排查、且提供呼叫我方a介面的業務場景,
7、友商測驗負責人沒有接觸過代碼,需要借助開發人員,因此時間校久,
8、于當日下午2點,在友商不能排查到為何重復呼叫情況下,開辟其他方向,使用自己手機號在友商業務頁面進行操作,
9、憑著敏感度,在10min 后,在友商的一個頁面進行查詢業務后會短時間多次呼叫我方a,
10、到此石錘,非黑客攻擊,為業務邏輯問題,于是升級問題到我方專案經理處,并通知對方專案經理,
11、至此,排除攻擊后,需要等友商優化,分析事情首站結束,
補救措施
1、我方于當日下午對a及a周邊介面進行優化上線,保留必須的呼叫三方日志,其余日志改為error級別,
2、排查問題程序中發現其他介面例外列印日志輸出不完美,不利于排查問題,一并優化,
3、運維團隊擴容日志采集程式,
后續
友商在次日被客戶投訴,瀏覽頁面22S被無故下單27筆,
后記
本周六,寫下此文章,僅做紀念那些需要大海撈針進行分析程序的美好經歷,
另,從本人角度如何避免上述問題再次發生,
1、首先壓測不充分,因上線前測驗環境多人在用不具備穩定性壓測條件,只能在晚上進行壓測,一般只能連續壓測五六個小時,最長一次穩定性測驗60小時,屬于專案初期版本壓測,歷經多個迭代后,不能完美模擬真實生產,
2、壓測程序中出現過日志積壓現象,雖然有進行多次日志優化,但是積壓問題沒有引起重視,因為實際生產中,多個中心共用的情況下,日志采集程式的資源是大大不夠的,后續穩定性測驗,
3、需要等比例進行壓測,實際生產中會擴容,而且服務器性能等指標均不同,需要仔細設計等比例壓測分析,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/232923.html
標籤:其他
下一篇:5個新自動化測驗框架,你值得了解
