安全運營紅藍對抗探索與實踐
一、紅藍對抗起源
紅藍對抗作為一個軍事概念,近年來被廣泛應用到網絡信息安全領域。藍軍采用模擬真實網絡攻擊來評估企業的現有防守體系的安全能力,而紅軍則會對發現的問題進行相應的優化整改。通過這種周期性的紅藍對抗攻防演習,企業可以持續性地提高在攻擊防護、威脅檢測、應急響應等能力。G行正是借用這一模擬實戰、攻防對抗理念,通過建立應用系統故障紅藍對抗體系,來提升管理員在突發事件中的處理能力和效率,保障好業務連續和安全運營工作。
二、紅藍對抗目標
在G行安全生產運營體系中,應用管理員作為系統第一負責人,對應用系統安全運營至關重要。隨著G行業務連續性管理水平的持續提升,每年發生較大生產事件的概率逐步降低,大多數應用管理員沒有處置重大事件的經驗。而每一次生產事件的發生都是一場遭遇戰,讓每個應用管理員經歷“炮聲”,讓遭遇戰變成有準備之戰,打贏沒有硝煙的安全運營之戰是紅藍對抗的首要目標,具體有以下三個方面:
1. 真演實練,提升技術能力和效率:通過多次參加真實故障模擬演練,讓管理員親身體驗故障處置的緊迫感,培養管理員故障處置的套路,形成“肌肉記憶”,從而提升故障處置效率。
2. 身臨其境,培養主動防范的意識:讓管理員處置同業或者是其他系統發生的事件,深刻體會故障危害,確保同類型故障在其他人和其他系統上“不二過”。
3. 以練促治,消除系統潛在的風險:通過演練中的故障注入,查找當前系統潛在問題和不足,并進行針對性的優化和整改,提升系統健壯性。
三、紅藍對抗環境的建設
為真實模擬生產環境故障,紅藍對抗環境對照生產環境進行建設,具體包含:應用系統環境、業務背景壓力測試模擬環境、監控報警體系、混沌平臺等。基于降本增效原則,主要資源投入采用環境復用方式,具體如下:
應用系統環境:復用我行投產驗證環境,系統架構和生產環境基本一致,關鍵數據與生產環境相當,系統數量覆蓋我行大部分的重要系統。
業務背景壓力測試模擬環境:主要復用G行非功能測試環境,另外包含部分生產環境交易回放環境和第三方擋板服務器。
監控報警體系:搭建統一監控告警平臺驗證環境,對接驗證環境中應用系統所有主機。監控告警策略與生產保持一致,當應用系統產生告警時,可實時查看。
混沌平臺:使用行內混沌平臺做故障注入。在主機安裝混沌平臺探針,通過平臺自動注入經典故障,模擬演練場景。
四、紅藍對抗組織形式
G行紅藍對抗演練的人員包含紅方、藍方、組織方、評價方。
演練方式既可以針對單個重要系統,也可以多個系統同時參與。藍方人員主要負責在應用系統中進行故障注入。紅方人員為本次演練應用系統的應用管理員和專業領域人員。評價方人員一般為科技運營中心領導和專家人員,有豐富的生產事件處置經驗,可對演練中紅方人員在處置過程中的不足進行評價和針對性的指導。組織方負責演練的人員召集,保證演練順利開展。
一次紅藍對抗演練實踐包括:環境準備,故障場景設計、正式演練開展、演練總結等4部分。
圖片
1.環境準備
演練環境在架構上與生產環境基本保持一致,其背景測試交易主要來自生產上的高頻交易。
圖片
2.故障場景設計
正式演練開始前,需要提前針對演練的應用系統進行故障設計。故障場景設計尤為重要,有效而真實的故障設計不僅可以有效考察到紅方的應急處置能力,也可以發現應用系統弱點。故障場景設計主要來源于以下3個方面:
- 歷史事件中的典型場景或該場景的延伸和變體,一些應用系統生產事件場景具備通用性,可以移植于其他應用系統復現事件場景,增加其他應用系統管理員該類事件處置經驗。
- 基于對系統架構的理解,針對某個組件或模塊人為制造故障,此類故障場景未曾發生過。故障設計需要基于架構的理解,分析該系統所涉及的基礎設施、云平臺、數據庫、中間件以及應用配置信息等,在這些組件中注入故障。通過此類故障,讓管理員加深對系統架構的整體理解。
- 利用混沌平臺隨機進行故障注入,例如網絡持續抖動、磁盤性能下降、MEM故障。對JAVA類應用還可以注入堆內存故障等。此類故障可考察應用管理員對未知故障的處置能力。
3.正式演練開展
演練開始前,組織方確定演練具體時間,提前通知紅方和藍方預留時間做好準備。演練開始后,組織方召集人員到指定現場地點,請藍方在驗證環境中注入故障,確定引發交易失敗,服務異常等告警。然后紅方開始真正的事件處置,根據告警描述信息,執行對應的工具箱,初步定位到問題所在應用服務器,登錄服務器,檢查系統狀態、服務狀態是否正常。找到日志文件,對日志中錯誤信息進行解讀,定位到引發錯誤的原因,制定故障修復方案后,應用管理員申請授權進行處置后,檢查業務恢復情況,最終在組織方確認修復成功后,演練結束。
4.演練總結
在演練結束后的復盤和總結中,紅方會介紹在本次演練中故障處置步驟以及思路,并分享演練后感想。演練評價方會針對演練中應用管理員處置事件時,暴露出的問題進行總結,并給出指導意見,分享事件處置過程中的經驗,并針對演練中所涉及到的技術問題擴展延伸。通過演練,管理員既能加強對系統的熟悉程度,增加事件處置經驗;也能發掘應用系統存在的薄弱點,并做好風險規避措施和推進優化整改。
五、紅藍對抗演練特點
紅藍對抗和傳統演練有著本質區別:傳統演練方式一般不制造真實故障,是按照設定的場景和流程進行的桌面推演,目的在于檢驗流程和應急預案。而紅藍對抗的特點是真實性、挑戰性和不確定性:
1. 真實性:紅藍對抗是需要在環境中注入真實故障,并需要雙方進行對抗。通過注入真實故障,引發服務和交易失敗,直接體現在告警和日志中,讓紅方按照線索進行排查。
2. 挑戰性:紅藍對抗的開展不會事先透漏故障,只有在演練開始的前一刻,才會進行故障注入,故障需要等待紅方人員通過層層分析才能定位,具有一定的挑戰性。
3. 不確定性:部分故障是隨機注入,紅方不能依賴已有預案進行處置,需要具體問題具體分析,有較大不確定性,能夠暴露系統未被發現的潛在隱患。
總結與展望
通過持續的探索和實踐,G行的紅藍對抗體系已初步建立,主要三個目標也在逐步實現過程當中。展望未來,也存在一些需要持續提升之處:
1. 環境覆蓋度不夠全面:演練環境系統數量未覆蓋全部重要系統,背景交易壓力未能覆蓋全部交易。
2. 故障設計局限性和注入故障繁瑣:當前故障場景主要集中在已知的各專業領域發生的故障,具有一定的局限性;此外,故障注入采用手動注入為主,效率較低。
3. 演練環境中的運營配套體系與生產環境尚有差距:演練環境中的業務監控、處置工具箱以及日志中心等配套環境還需補充建設。
在接下來的工作中,我們將重點在三個方面進行推進:一是在資源投入方面,我們將充分利用我行全棧云彈性能力,讓演練環境覆蓋全部重要系統,并盡量補齊運營配套體系建設;二是在場景設計方面,計劃成立紅藍對抗演練專家組,集眾智之力豐富演練場景設計,加強與混沌平臺的結合,借力混沌平臺,讓故障注入和演練更加高效;最后是在演練場景方面,將以多系統協同對抗為主,重點是提升各領域管理員在應對復雜故障場景時的分析、溝通、協同和處置能力。
圖片
作者:孫曉玉
功夫不負有心人,星光不負趕路人。畢業十年,在不同的工作崗位中堅持學習,不斷進步,只要堅持不懈的努力朝目標前行,就一定會有收獲。工作之余喜歡游泳,瑜伽,乒乓球。