僵尸網絡的工作原理與防御
起源及演化過程
Botnet是隨著自動智能程序的應用而逐漸發展起來的。在早期的 IRC聊天網絡中,有一些服務是重復出現的,如防止頻道被濫用、管理權限、記錄頻道事件等一系列功能都可以由管理者編寫的智能程序所完成。于是在1993 年,在IRC 聊天網絡中出現了Bot工具——Eggdrop,這是第一個Bot程序,能夠幫助用戶方便地使用IRC 聊天網絡。這種bot的功能是良性的,是出于服務的目的,然而這個設計思路卻為黑客所利用,他們編寫出了帶有惡意的Bot 工具,開始對大量的受害主機進行控制,利用他們的資源以達到惡意目標。
日期 Bot名稱 制作者(姓名或綽號) 描述
1993.12 Eggdrop Robey Pointer Jeff Fisher 第一個非惡意IRC 機器人程序
1999.6 PrettyPark 匿名 第一個惡意的使用IRC 作為控制協議的Bot
2000 GT-Bot Sony,mSg 和DeadKode 第一個廣泛傳播的基于mIRC 可執行腳本的IRC Bot,
2002.2 SDbot SD 第一個基于代碼的單獨的IRC Bot
2002.9 Slapper 匿名 第一個使用P2P協議通訊的Bot
2002.10 Agobot Ago 不可思議的強壯、靈活和模塊化的設計
2003.9 Sinit 匿名 使用隨機掃描發現對端的P2P Bot
2004.3 Phatbot 匿名 基于WASTE 協議的P2P Ago
2004 Rbot/rxbot Nils RacerX90等 SDbot的后代,
2004 Gaobot 匿名 第一類Bot,使用多種手段傳播
2004.5 Bobax 匿名 使用HTTP 協議做命令和控制機制。
20世紀90年代末,隨著分布式拒絕服務攻擊概念的成熟,出現了大量分布式拒絕服務攻擊工具如TFN、TFN2K和Trinoo,攻擊者利用這些工具控制大量的被感染主機,發動分布式拒絕服務攻擊。而這些被控主機從一定意義上來說已經具有了Botnet的雛形。
1999 年,在第八屆DEFCON 年會上發布的SubSeven 2.1 版開始使用IRC 協議構建攻擊者對僵尸主機的控制信道,也成為第一個真正意義上的bot程序。隨后基于IRC協議的bot程序的大量出現,如GTBot、Sdbot 等,使得基于IRC協議的Botnet成為主流。
2003 年之后,隨著蠕蟲技術的不斷成熟,bot的傳播開始使用蠕蟲的主動傳播技術,從而能夠快速構建大規模的Botnet。著名的有2004年爆發的 Agobot/Gaobot 和rBot/Spybot。同年出現的Phatbot 則在Agobot 的基礎上,開始獨立使用P2P 結構構建控制信道。
2004 年5 月出現的基于HTTP 協議構建控制信道的Bobax。
從良性Bot的出現到惡意Bot的實現,從被動傳播到利用蠕蟲技術主動傳播,從使用簡單的IRC協議構成控制信道到構建復雜多變P2P結構的控制模式,再到基于HTTP及DNS的控制模式,Botnet逐漸發展成規模龐大、功能多樣、不易檢測的惡意網絡,給當前的網絡安全帶來了不容忽視的威脅。
定義
僵尸網絡是在網絡蠕蟲、特洛伊木馬、后門工具等傳統惡意代碼形態的基礎上發展、融合而產生的一種新型攻擊方式。從1999 年第一個具有僵尸網絡特性的惡意代碼PrettyPark 現身互聯網,到2002 年因SDbot 和Agobot 源碼的發布和廣泛流傳,僵尸網絡快速地成為了互聯網的嚴重安全威脅。第一線的反病毒廠商一直沒有給出僵尸程序(bot)和僵尸網絡的準確定義,而仍將其歸入網絡蠕蟲或后門工具的范疇。從2003 年前后,學術界開始關注這一新興的安全威脅,為區分僵尸程序、僵尸網絡與傳統惡意代碼形態,Puri及McCarty均定義“僵尸程序為連接攻擊者所控制IRC 信道的客戶端程序,而僵尸網絡是由這些受控僵尸程序通過IRC 協議所組成的網絡”。為適應之后出現的使用HTTP 或P2P 協議構建命令與控制信道的僵尸網絡,Bacher 等人給出了一個更具通用性的定義:僵尸網絡是可被攻擊者遠程控制的被攻陷主機所組成的網絡。僵尸網絡與其他攻擊方式最大的區別特性在于攻擊者和僵尸程序之間存在一對多的控制關系。Rajab 等人在文獻中也指出,雖然僵尸網絡使用了其他形態惡意代碼所利用的方法進行傳播,如遠程攻擊軟件漏洞、社會工程學方法等,但其定義特性在于對控制與命令通道的使用。
綜合上述分析,僵尸網絡是控制者(稱為Botmaster)出于惡意目的,傳播僵尸程序控制大量主機,并通過一對多的命令與控制信道所組成的網絡。