在所有惡意攻擊中,最為出名的就屬Distributed Denial-of-Service(DDoS),其目的在於使目標電腦的網路或系統資源耗盡,使服務暫時中斷或停止,導致其正常用戶無法存取。歷史上有許多有名的DDoS攻擊。其中最嚴重的屬於2018年GitHub遭遇的DDoS攻擊,其相關攻擊源自於橫跨數萬個端點的上千個不同的自治系統,每秒傳送約1.27億個封包,尖峰攻擊流量達到1.35Tbps。
Link-flooding attacks是一種不直接攻擊目標的DDoS攻擊,而是以大量低速流量壅塞目標link,並降低目標主機或服務器的連接性,因此很難被目標的入侵偵測系統或是防火牆所偵測到。
軟體定義網路(SDN)是一種新型網路架構,將control plane從data plane中分離,使管理集中化,定義可程式化的網路架構。透過SDN,雖然使網路架構更靈活、更好規劃以及管理,並可以利用其可程式化的特性杜絕掉在傳統網路架構上難以對抗的威脅,但是對於惡意攻擊者的預防依舊刻不容緩,甚至惡意攻擊者可以利用SDN的特性,衍生出只有SDN架構下才會出現的威脅。
我們將實作一個基於調整頻寬的系統用來有效偵測此種攻擊,此系統參考SPIFFY: Inducing Cost-Detectability Tradeoffs for Persistent Link-Flooding Attacks 這篇論文,為了解決頻寬調整的問題,系統會基於SDN技術虛擬化地將頻寬擴增,此外,還會搭配機器學習方法用來自動調整頻寬。先針對bot的判斷方法做一些研究,前面有提到,調整頻寬之後,會利用使用者發送流量變化來判斷是否是惡意使用者(Change Detection),這裡使用的方法是 Sketch-based Change Detection,藉此觀察使用者的rate-change。Sketch module部分會利用hash function更新 Sketch,Forecast module 會去估算及統計過去時間的Sketch並整合,再去和此時間段的Sketch去算誤差值,假如誤差值大於某個Threshold,則會alarm系統告知偵測到惡意使用者。
