定義
在網絡中,存在著大量針對CPU(Central Processing Unit)的惡意攻擊報文以及需要正常上送CPU的各類報文。針對CPU的惡意攻擊報文會導致CPU長時間繁忙的處理攻擊報文,從而引發其他業務的中斷甚至系統的中斷;大量正常的報文也會導致CPU占用率過高,性能下降,從而影響正常的業務。
為了保護CPU,保證CPU對正常業務的處理和響應,設備提供了本機防攻擊功能。本機防攻擊針對的是上送CPU的報文,主要用于保護設備自身安全,保證已有業務在發生攻擊時的正常運轉,避免設備遭受攻擊時各業務的相互影響。
功能簡介
本機防攻擊包括CPU防攻擊、攻擊溯源、端口防攻擊和用戶級限速四部分功能。各個功能從不同維度,通過不同方式實現對CPU的保護,如表1所示。
CPU防攻擊
CPU防攻擊的核心部分是CPCAR(Control Plane Committed Access Rate)功能。此外,CPU防攻擊還提供了動態鏈路保護功能、黑名單功能。
-
CPCAR
CPCAR通過對上送控制平面的不同業務的協議報文分別進行限速,來保護控制平面的安全。報文限速主要分為如下幾類:基于每個協議的限速、基于隊列的調度和限速和所有報文統一限速。如圖1所示。
- 基于協議報文的限速:是指CPCAR中可以針對每種協議單獨設置承諾信息速率CIR(Committed Information Rate)和承諾突發尺寸CBS(Committed Burst Size),對于超過該速率值的協議報文,設備直接予以丟棄,從而可以保證每種協議對應的業務能夠得到正常處理,同時可以保證協議之間不會相互影響,避免因為某種協議的流量過大導致其它協議報文得不到處理的情況發生。
- 基于隊列的調度和限速:協議限速之后,設備可對一類協議再分配一個隊列,比如Telnet、SSH等管理類協議分為一個隊列,路由協議分為一個隊列,各個隊列之間按照權重或優先級方式調度,保證各類業務的優先級,優先級高的業務被CPU調度的幾率更大,在有沖突的情況下保證高優先級業務優先處理。同時,可以針對每個隊列進行限速,限制各個隊列向CPU上送報文的最大速率。對于超過最大速率的協議報文,設備會直接丟棄。
- 所有報文統一限速:所有報文統一限速是為了限制CPU處理的報文總數,保證CPU在其正常處理能力范圍內盡可能多的處理報文,而不會造成CPU異常,保證了設備CPU的正常運行。
- 當三種限速方式同時生效時,設備以最小限速值進行限速。
- 以上所有CPU防攻擊功能對設備的管理網口不起作用。針對設備管理網口下的網絡存在的攻擊,一旦攻擊較為嚴重,可能會導致用戶無法從管理網口登錄并管理設備,此時建議用戶對該網絡上的PC(Personal Computer)進行殺毒或者重新規劃組網。
- 多協議并行時,上送CPU的協議報文可能會由于超出CIR/CBS、隊列上送CPU報文的最大速率、或者CPU處理的報文總數被丟棄,出現協議震蕩。
為了解決固定的默認CPCAR值無法滿足實際應用中協議報文上送速度的動態需求,設備還提供了根據業務規模、報文的丟包行為以及CPU占用率自動調整協議報文的默認CPCAR值的功能。
-
動態鏈路保護功能
動態鏈路保護功能,是指設備針對基于會話的應用層數據的保護,例如FTP Session數據、BGP Session數據和OSPF Session數據等,它可以保證已有業務受到攻擊時仍能夠正常運行。當協議連接建立后,基于協議的限速就不再起作用,設備以動態鏈路保護功能設定的限速值對匹配相應Session的報文進行限速,由此保證此Session相關業務運行的可靠性和穩定性。
-
黑名單功能
CPU防攻擊提供的黑名單功能,是指通過定義ACL來設置黑名單,設備會將后續匹配黑名單特征的報文全部丟棄,因此可以將已確定為攻擊者的非法用戶設置到黑名單中。
-
用戶自定義流功能
CPU防攻擊提供的用戶自定義流功能,是指通過定義ACL來設置用戶自定義流,限制匹配符合用戶自定義流特征的報文上送CPU。由于ACL規則中可以靈活指明攻擊流數據的特征,因此用戶自定義流能夠應用于網絡中出現不明攻擊的場景。
攻擊溯源
如圖2所示,攻擊溯源包括報文解析、流量分析、攻擊源識別和發送日志告警通知管理員以及實施懲罰四個過程。
- 從IP地址、MAC地址以及端口三個維度進行報文解析,其中端口通過“物理端口+VLAN”標識。
- 根據IP地址、MAC地址或者端口信息統計接收到的滿足攻擊溯源防范報文類型的協議報文數量。
- 當單位時間上送CPU的報文數量超過了閾值時,就認為是攻擊。
- 當檢測到攻擊后,會發送日志、告警通知管理員或者直接實施懲罰,如丟棄攻擊報文。
此外,攻擊溯源還提供了白名單功能。通過定義ACL或者直接將端口設置為攻擊溯源白名單,使設備不對白名單用戶的報文進行溯源,從而可以保證確定為合法用戶的報文能夠正常上送CPU處理。因此可以將已確定的合法用戶或者端口設置到白名單中。
端口防攻擊
端口防攻擊的處理流程如下:
- 基于端口維度進行報文解析,并統計收到的端口防攻擊所防范的協議報文的數量。
- 當單位時間上送CPU的報文數量超過了端口防攻擊檢查閾值時,就認為該端口存在攻擊。
-
檢測到攻擊后,設備會發送日志,并將產生攻擊端口的未超出協議限速值數量的報文移入低優先級隊列后再上送CPU處理,其中,S5735S-H、S5736-S、S5720I-SI不支持將未超出協議限速值數量的報文移入低優先級隊列,保持原隊列上送CPU處理。超出限速值數量的報文,則直接丟棄。關于“協議限速”和“優先級隊列”的概念,請參見“CPU防攻擊”中的說明。
端口防攻擊的限速處理方式,相比較攻擊溯源的懲罰措施,對設備正常業務造成的影響更小。
此外,端口防攻擊還提供了白名單功能。通過定義ACL或者直接將端口設置為端口防攻擊白名單,使設備不對白名單用戶的報文進行溯源和限速處理,從而可以保證確定為合法用戶的報文能夠正常上送CPU處理。因此可以將已確定的合法用戶或者端口設置到白名單中。
用戶級限速
用戶級限速的處理流程如下:
- 設備對收到的用戶的特定協議報文的源MAC地址進行哈希計算,將收到的不同源MAC地址的報文放到不同的限速桶中。
- 當單位時間限速桶內的報文超過了限速值時,該限速桶會丟棄收到的報文,并且每隔10分鐘對限速桶內的丟包數目進行統計。如果10分鐘內限速桶丟棄的報文數目超過2000個,設備會發送該限速桶的丟包日志。如果同時存在多個限速桶丟包數目超過2000個,設備只發送丟包數目最多的10個限速桶的丟包日志。