一、概述
女巫攻擊(Sybil Attack)是2002年由John R. Douceur在《the Sybil Attack》[1]文中提出的,它是作用于對等(Peer-to-Peer,簡稱P2P)網絡中的一種攻擊形式:攻擊者利用單個節點來僞造多個身份存在于P2P網絡中,進而達到削弱網絡的備援性,降低網絡健壯性,監視或幹擾網絡正常活動等目的。
在P2P網絡中,為了解決來自惡意節點或者節點失效帶來的安全威脅,通常會引入備援備份機制,将運算或存儲任務備份到多個節點上,或者将一個完整的任務分割存儲在多個節點上。正常情況下,一個裝置實體代表一個節點,一個節點由一個ID來辨別身份。然而,在缺少可信賴的節點身份認證機構的P2P網絡中,難以保證所備份的多個節點是不同的實體。攻擊者可以通過隻部署一個實體,向網絡中廣播多個身份ID,來充當多個不同的節點,這些僞造的身份一般被稱為Sybil節點[2,3]。Sybil節點為攻擊者争取了更多的網絡控制權,一旦使用者查詢資源的路徑經過這些Sybil節點,攻擊者可以幹擾查詢、傳回錯誤結果,甚至拒絕回複。
二、應用案例
Sybil Attack的思想被廣泛用于對抗P2P僵屍網絡。以知名P2P僵屍網絡Strom[2]為例,其采用了基于Kademlia的Overnet協定,正常節點的行為:
1、每個加入網絡中的節點會生成一個ID号用以辨別自身;
2、節點通過預設的算法每天生成32個不同key來查詢控制指令;
3、控制者會提前在網絡中釋出這32個key對應的指令<key,command>以供節點查詢;
4、根據Overnet協定,<key,command>會存放在K個與該key相鄰ID的節點中,并通過遞歸的方式進行查詢。
Sybil節點行為:
1、根據待攻擊的key空間生成相應的ID(接近key的哈希值),使得查詢請求能有較高機率被路由到Sybil節點;
2、主動向網絡中的其他節點廣播自己的ID,使其出現在其他節點的路由表中;
3、當查詢key的路徑經過Sybil節點時,Sybil節點傳回錯誤資訊,或者重路由到其他Sybil節點,使得正常節點無法進行C&C通信擷取控制指令。

如圖1所示,在僵屍網絡中部署一個惡意實體A,同時僞造出多個Sybil節點B、C、D,查詢路徑經過他們中任意一個,其實都是由惡意實體節點A所控制。Sybil節點應該根據P2P協定的特點進行針對性的部署,以實作最大機率的出現在查詢路徑中。防禦者通過部署Sybil節點不僅可以對P2P僵屍網絡的活動進行幹擾或阻斷,還能實施索引污染、規模測量、活動監視等多種打擊政策。
三、參考
[1] Douceur J R. The sybil attack[C]//International Workshop on Peer-to-Peer Systems. Springer, Berlin, Heidelberg, 2002: 251-260. [2] Davis C R, Fernandez J M, Neville S, et al. Sybil attacks as a mitigation strategy against the storm botnet[C]//Malicious and Unwanted Software, 2008. MALWARE 2008. 3rd International Conference on. IEEE, 2008: 32-40. [3] Newsome J, Shi E, Song D, et al. The Sybil attack in sensor networks: analysis & defenses[C]// International Symposium on Information Processing in Sensor Networks. IEEE, 2004:259-268.