馮運仿
(湖北理工學院計算機學院 湖北 435003)
蜜罐(Honey pot)以及蜜罐延伸技術是一種當前十分流行的網絡安全策略。蜜罐技術能夠監視、記錄甚至追蹤攻擊者的行為,從而對其行為進行分析和取證。由于蜜罐不對外提供有價值的服務,所以一切對蜜罐的訪問都被視為攻擊行為。蜜罐的核心技術一般包括數據捕獲技術、數據控制技術、數據分析技術等[1]。蜜罐較IDS和防火墻而言,具有收集數據價值高、搭建系統所需資源少等優點。
單一網絡部署蜜罐系統比較容易實現,但在一個由多個子網組成的分布式網絡中則需要在各個子網中分別部署蜜罐系統。由于子網地理位置不同,相互之間遙遠的空間距離使大量部署分布式蜜罐系統需要耗費大量的人力、物力,也使統一管理變得困難。于是蜜場(honey farm)思想應運而生。蜜場是通過在安全操作中心集中式地部署蜜罐系統,構建蜜場環境,同時在分布式網絡的各個子網中分別部署攻擊檢測器和網絡流重定向器,將攻擊或者廢棄流量重定向到蜜場的安全操作中心,安全操作中心利用負載均衡(load balancer)策略將流量分發到各個的蜜罐系統上[2]。如圖1所示。

圖1 蜜場系統結構示意圖
由此可見,蜜場系統的分發流量來自重定向器。重定向流量的大與小取決于是否受到了網絡攻擊。特別是當受到大規模掃描或者蠕蟲病毒等網絡攻擊時,重定向流量將會在短時間內突發性地大幅度增加。這不僅對現有的網絡攻擊檢測與網絡流重定向機制是一個挑戰,也對實現蜜場的流量分發的負載均衡提出了要求。
建立在現有網絡結構之上的負載均衡具有兩個方面的含義。通過多臺節點設備,一是分擔處理數據流量,二是分擔并行處理單個重負載的運算,達到減少用戶等待相應的時間、大幅提高系統處理能力的目的。
從調節策略而言,當前討論及研究的負載均衡算法可以分為靜態負載均衡和動態負載均衡兩類:
靜態負載均衡根據預先已知負載的情況對用戶任務請求進行分配,不考慮服務器在實際運行過程中的負載情況,也不會產生額外的系統開銷。靜態負載均衡算法包括輪詢(Round Robin)、比率(Ratio)、優先權(Priority)。輪詢算法是將請求一次順序循環地連接每個服務器;比率算法給每個服務器分配一個加權值為比例,椐此把用戶的請求分配到每個服務器;優先權算法則是通過定義優先權,采用輪詢或比率算法,給優先級最高的服務器組分配用戶的請求。
動態負載均衡以各服務器當前的負載情況作為分配任務的依據,能夠充分利用各服務器的處理能力來減小其對用戶服務的響應速度,但在動態調度時對任務的分配管理會造成額外的系統開銷。動態負載均衡算法包括最少連接數(Least Connection)、最快響應速度(Fastest)、觀察方法(Observed)、預測法(Predictive)、動態性能分配(Dynamic Ratio-APM)、動態服務器補充(Dynamic Server Act.)、服務質量(QoS)、服務類型(ToS)、規則模式。最少的連接方式是傳遞新的連接給那些進行最少連接處理的服務器;最快模式是傳遞連接給那些響應最快的服務器;觀察模式是連接數目和響應時間以這兩項的最佳平衡為依據為新的請求選擇服務器;預測模式是根據預測分析服務器當前性能指標選擇下一個時間片內性能將達到最佳的服務器;動態性能分配是根據應用程序和應用服務器的各項性能參數動態調整流量分配;動態服務器補充動態地將備份服務器補充至主服務器群;服務質量是按不同的優先級對數據流進行分配;服務類型:是按不同的服務類型對數據流進行分配;規則模式是針對不同的數據流設置導向規則。
負載均衡算法的選擇要結合實際的需求。既可獨立使用,也可組合使用。一個好的負載均衡算法一般只在某些特殊的應用環境下才能發揮最大效用。由此可見,選擇負載均衡算法,既要考慮其適用面,也要結合集群自身特點,把不同的算法和技術結合起來使用。
但是,靜態負載均衡只利用了一些靜態的信息,不能有效的解決運行時集群個服務器間的動態負載變化,自適應能力差;動態負載均衡通過流量分發器不斷地查詢收集節點負載信息,調整流量分配權值,其頻繁地查詢采集服務器的負載信息會增加大量額外的系統開銷。針對蜜場環境下的分發流量突發性強、流量大的特點,如果采集頻率降低,安全操作中心難以及時獲取實時的負載信息,而導致流量分配不合理,致使負載失衡。
改進算法采取了預警收斂流量分配策略、主動搶占式反饋策略、基于排隊模型的等待隊列動態調整策略。
算法具體流程見圖2。

圖2 算法流程示意圖
2.2.1 預警收斂流量分配策略
該策略的重點在于預先設定預警區間和危險區間。從理論上加速了系統整體負載的收斂和均衡,能夠有效應付突發流量情況。具體而言,當某臺蜜罐系統上的流量正常,系統負載沒有進入預警區間,安全操作中心主動調整其負載率,并在實際負載的基礎上減少一個預警因子,以使流量分配時加速增加流量分配;當某臺蜜罐系統上的流量爆發性增加,系統負載進入預警區間,安全操作中心也會主動調整其負載率,并在實際負載的基礎上增加一個預警因子,加速減少負載分配;當某臺蜜罐系統上的流量爆發性增加導致系統負載進入危險區間,安全操作中心將不再分配負載。安全操作中心根據流量增減預警因子促使算法收斂。
2.2.2 主動搶占式反饋策略
該策略類似于進程的搶占式調度算法,主動向安全操作中心申請任務。策略中服務器周期性、主動向服務器反饋自身負載信息,一旦自身負載達到一定限度時就不再向安全操作中心反饋自身信息;安全操作中心不斷收集來自服務器的負載信息,動態調整各個負載權值,分配負載任務。一旦安全操作中心沒有收到某個服務器的負載信息,則不再向它分配任務,直到再次接收到它的負載信息。主動搶占式反饋策略改善了現有的動態負載均衡策略在采集服務器負載時采用查詢反饋模式導致服務器一直處于被動地位的狀況,當服務器某項參數值超過一定限度時,便停止采集獲取信息,停止向安全操作中心發送其負載信息;安全操作中心不需要頻繁向服務器發送查詢信息,服務器也不 需要實時監聽。這樣既節省了系統資源,也從一定程度上節省了網絡帶寬資源,減輕了系統負載。
該策略通過建立M/M/S/k排隊模型,較好地解決了服務器短時間難以完全處理蜜場環境下流量容易爆發增長的問題。蜜場系統中重定向器將網絡流量發送給安全操作中心,再經安全操作中心分發到各個不同的蜜罐系統。蜜場系統的重定向的網絡流量、安全操作中心的等待隊列、蜜罐系統相對應于排隊論中的輸入過程、排隊規則、服務機構等三個要素。可以認為網絡流量的到達服從泊松分布。而各個不同的蜜罐系統相互獨立,其平均響應速率與它處理過的網絡流量的數目沒有關系,所以蜜罐系統的服務時間服從負指數分布。網絡流量在等待隊列中滿足先來先服務(FCFS)的規則。當安全操作中心等待隊列已滿時,新重定向來的流量就會丟失。蜜場系統滿足M/M/S/k排隊模型。通過建立M/M/S/k排隊模型,動態調整隊列長度,從而使得平均等待時間較短,同時使得流量丟失率較低。
前述改進后的面向密場系統的動態負載均衡算法能夠很好地應對蜜場環境下的流量特點,在突發大量流量時,能夠保持相對穩定的負載均衡,而且具有較短的響應時間。但是有少量的數據丟失。雖然這些少量的數據丟失在蜜場環境下是可以忍受的,但仍然說明針對具體的應用環境,負載均衡算法的進一步研究還是很有必要的。
[1]程仁杰,殷建平,劉運等.蜜罐及蜜網技術研究進展[J].計算機研究與發展.2008.45:375-378.
[2]陸騰飛,陳志杰,諸葛建偉等.面向蜜場環境的網絡攻擊流重定向機制的研究與實現[J].南京郵電大學學報.2009.3:14-20.
[3]羅擁軍,李曉樂,孫如祥.負載均衡綜述[就].科技情報開發與經濟.2008.23:134-136.