<small id="ywpfw"><dl id="ywpfw"><dfn id="ywpfw"></dfn></dl></small>
  • <b id="ywpfw"><small id="ywpfw"><dl id="ywpfw"></dl></small></b>
    1. <input id="ywpfw"><big id="ywpfw"><i id="ywpfw"></i></big></input>

    2. <b id="ywpfw"><address id="ywpfw"></address></b>

      <wbr id="ywpfw"><ins id="ywpfw"></ins></wbr>

      En

      披荊斬棘:論百萬級服務器反入侵場景的混沌工程實踐

      作者:【騰訊反入侵團隊】jaylam公布時間:2019-05-15閱讀次數:16038評論:0

      分享

      在繁雜的業務和網絡環境下,在公司百萬級服務器面前,要做到入侵發生時的及時檢測,那么反入侵系統的有效性,即系統質量,是至關重要的。 


      洋蔥系統是騰訊公司級的主機反入侵安全檢測系統,它是實現了前端主機agent及后端分布式數據接入分析系統的一整套服務,覆蓋的系統模塊眾多,部署的服務節點超百萬,面臨的業務網絡環境區域復雜——洋蔥就是在這樣的環境下進行實時監測數據的采集、上報和分析。 


      然而我們發現,在實際的運營過程中總會出現組件異常、未部署、入侵漏水等一系列質量上的挑戰。 


      基于此,我們在對洋蔥系統進行實時質量建設和優化的同時,提出了引入混沌工程的解決思路,并介紹混沌工程在其中的初步實踐應用。即,建設整個系統實時質量的一個模型標準和穩態描述,結合實際入侵場景和服務異常的模擬進行混沌實驗,對系統的穩定性、可用性進行驗證,同時發現未知的質量問題,以此形成負反饋閉環,進一步推進反入侵質量建設和優化。 


      本文圍繞洋蔥系統的實時質量建設和優化,介紹混沌工程在其中的初步實踐應用。

      0x1 騰訊反入侵面臨的極大挑戰

      要說明反入侵具體的工作內容,則要先對“入侵”進行定義。 

      這里的入侵主要指“未經授權”的行為。一般來說入侵者實施入侵行為,主要目的有以下幾點: 

      1)獲取敏感數據,如關系鏈,用戶信息等;
      2)篡改數據,如惡意刪除,給自己賬戶充錢,篡改主頁(just for fun)等;
      3)控制個人資產,如將個人機器當肉雞,對外發起DDoS攻擊,或者當做滲透其他目標的跳板;
      4)挖礦行為。


      從路徑上看,黑客可以通過網站漏洞、對外高危第三方應用漏洞、供應鏈攻擊、網絡劫持、郵件釣魚、物理攻擊、零日漏洞攻擊等進入到公司服務器,從而到達內網,然后通過內外掃描爆破等形式進一步滲透,設置種馬反連,最終達到完全控制服務器的目的。 

      一般來說,從入侵動作基本能追溯到一條完整的行為鏈路。那么說到反入侵,能夠在鏈路中的關鍵路勁層層設防,就是反入侵的基本。 

      反入侵系統,目標是及時發現入侵行為,對入侵行為進行回溯,然后加固系統的薄弱點。這里我們提到騰訊公司級的反入侵系統——洋蔥。目前反入侵團隊在所有騰訊的服務器上均有部署,客戶端agent會實時采集機器上的痕跡信息(如命令執行,進程,網絡連接,掃描,系統日志,web文件,高危app漏洞等),然后后端是分布式的集群,對數據進行清洗和多維度數據聚合分析,最終輸出風險事件。 


      然而,目前騰訊反入侵工作也面臨著極大的困難。 

      首先,公司盤子越來越大,服務器已經突破百萬級別了;其次,公司業務眾多,現網各種應用/第三方軟件的使用,及員工安全意識薄弱等,都給反入侵工作帶來挑戰。另外,網絡環境復雜,基本上對外的每一個端口、每一個服務、每一個cgi、GitHub上托管的每一個密碼,都可以是黑客“入侵”的入口。 

      面對如此繁雜的業務和網絡環境、如此大量的服務器,要求系統及時感知、檢測到入侵,則反入侵系統的有效性,即系統質量則變得至關重要。

      0x2 復雜規模下的反入侵系統質量建設


      反入侵系統質量的好壞,已成反入侵體系是否有效的關鍵因素。然而,如何進行系統質量的有效建設,又是一個極大的工程。 

      指標化描述,是對質量建設和優化的基礎需求。對此我們提到了實時質量大盤的概念,用來實時表述整個系統有效覆蓋的健康度情況,以及異常分類的統計占比和詳情輸出,這樣更有助于進行系統迭代優化,進而了一個完整正向質量建設的閉環。 


      針對所有場景的開發,梳理出各個可能發生異常的點,形成指標,然后迭代開發,將指標埋點上報,后端建立一個指標綜合分析的模型,最后輸出一個完整實時質量大盤,開發、運維和策略同學根據實時質量大盤中反饋出來的異常場景再進行分析優化開發,形成一個正向閉環。 


      但是現網的各個模塊體系下,實際運營過程中還是出現了埋點指標外的相關異常情況,導致入侵漏水。那么,是否有辦法能夠將這些可能存在的異常,盡可能快地暴露出來,以便更好把控系統的質量,發現入侵?我們的回答是肯定的。 

      混沌工程就是一種應用于此類場景的技術方案。 

      首先說明的是,目前洋蔥反入侵系統已經在架構上實現了分布式,自動容災,路由負載均衡,客戶端也是agent加插件的形式存在,且實現了組件管理和心跳檢活邏輯——具備進行有意義的混沌實驗基礎。 


      關于混沌工程在反入侵場景下的結合和使用,我們的關注點集中在兩個層面,即系統有效覆蓋和入侵有效發現。 

      針對第一個層面,混沌實驗主要是對系統故障類的演習、驗證系統容錯能力;第二個層面,混沌實驗主要聚焦在入侵實驗上,從深度上我們分為模擬入侵撥測,和實際入侵對抗兩類。整個混沌實驗的結果,反饋回到正向系統質量建設中進行優化和監控,形成一個“負反饋”機制。從正反兩個面向,在流程上形成質量建設的閉環。 

      正向的質量建設,可以解決和閉環可預知的異常場景,針對未知場景,我們引入了混沌實驗來進行驗證,并形成一個負反饋機制,反哺到實時質量大盤的建設。這就是復雜規模下反入侵系統質量建設的整體思路。

      0x3 騰訊反入侵場景下的混沌實踐


      那么,反入侵場景下的混沌實驗,具體是如何進行的? 

      上面提到過,騰訊反入侵團隊主要關注兩個層面的系統能力,包括系統有效覆蓋,和入侵有效發現。在思路上,主要是通過“故障測試”驗證系統的有效覆蓋,通過“模擬入侵撥測”和“入侵對抗”驗證系統的有效發現能力。 


      1)故障測試


      故障注入實驗,是混沌工程實踐中常用的一種工程手段,通過引入可控的異常和故障,觀察系統的反應和容錯,是針對系統各個功能模塊有效覆蓋的驗證。
      通過設定的隨機方法,在分布式系統的客戶端和后臺,引入可能影響入侵發現能力的異常情況,如在客戶端agent中主動降版本、刪除組件,或者刻意限制iptables強制agent斷開連接,在后臺側通過工具讓后端隨機機器產生cpu高負載,或者流量暴漲,甚者通過主動kill進程,讓服務故障下線。 

      即,將所有引入故障的動作工具化,通過任務通道,根據預先設定的隨機選擇方法下發到主機上執行,從而達到故障注入的效果。針對后端的故障引入,設計上會隨機分散到不同的集群。然后,我們可以在前面建設好的實時質量大盤上,看對應指標是否產生質量波動。 


      2)模擬入侵撥測


      為了發現在入侵場景和系統完整鏈路上的未知異常場景,騰訊反入侵團隊還引入了“模擬入侵撥測”和“入侵對抗”。在具體操作上,反入侵團隊根據入侵的路徑、手段方法,將入侵分為不同的場景。針對每個場景,通過采集特定的信息,依據該場景行為特征進行建模和檢測。 

      具體的實施閉環流程如下圖所示。從中間“撥測系統”發起模擬入侵攻擊。在這個過程中,洋蔥系統會按照正常的運行邏輯進行數據采集和傳輸(這個過程中,數據會全鏈路旁路落地記錄),然后進行入侵行為檢測。 

      撥測系統會自動進行行為結果的驗證,輸出撥測結果。如果出現異常而系統未發現,策略和研發同學會根據撥測結果進行復盤跟進,然后反饋回到實時質量大盤,或者進行策略優化。同時,如果有新的入侵策略場景發布,會在發布后,將對應模擬入侵行為加入到撥測系統中。如此形成一個閉環。 


      該模擬撥測方案已經在洋蔥中穩定應用了2年。歷史上通過撥測,發現了現網環境中多起測試和監控未覆蓋到的策略和研發質量問題,從而挖出了不少引起“搏斗”的隱患因素。 

      3)入侵對抗


      模擬入侵是針對已知的入侵場景的。但同時黑客技術也在發展,甚至戰場也在發生轉移。從服務漏洞,到供應鏈攻擊,到服務器底層種馬(bios等)。所以引入入侵對抗實驗,也是為了反入侵系統能夠跟隨發展,走在前頭。 

      在實際的執行過程中,騰訊反入侵團隊通過兩個維度來進行入侵對抗的混沌實驗。 

      其一,內部建立藍軍機制。通過研究內外部情報,新的入侵工具技術和方法,隨時進行踩點滲透,以及控制服務器等入侵行為,進行內部攻防演習;其二,將白帽子在TSRC平臺提交的漏洞,和實際黑客入侵的案例都當作實驗的變量。通過上述兩方面建立起完整的入侵對抗閉環機制。 


      具體來看,模擬入侵的整個過程是如何閉環的呢? 

      藍軍一方面進行入侵,一方面自行記錄所有入侵過程中的行為;同時洋蔥系統在正常地執行檢測工作。如果產生了入侵告警,應急同事會緊急開展排查、定性、止損、定損、溯源等工作,并跟藍軍確認是否是藍軍演習;有時會當作真實入侵把藍軍清理出戰場。通過這樣的方式來持續對抗。 

      通過藍軍提供的完整入侵記錄,與實際入侵告警進行對賬,我們可以推演出哪些行為成功預警,哪些行為被繞過漏水了;或者確定部分行為的原始數據是否在當前有支持采集,等等,然后形成新的開發場景需求、策略優化需求,和質量優化點,反饋回到系統質量建設中。 

      0x4 后記


      本文介紹了反入侵工作的相關背景,以及反入侵洋蔥系統在質量建設方面的思路和推進方法。從反入侵場景下的質量建設出發,看待分布式系統的質量建設,需要從正反兩個方向入手,動態互補,才能不停推進系統的穩定和有效。 

      未來,騰訊反入侵團隊將持續細化、自動化故障注入驗證引入現網運營環境,演習常規化,同時將聚焦于IOT智能硬件,服務器底層(BIOS等)更高層次對抗能力和質量的建設。

      評論留言

      提交評論 您輸入的漏洞名稱有誤,請重新輸入
      放荡的寡妇