校園網中蜜罐技術應用方案 續(xù)
2捕獲加密會話數據
為了觀察入侵者使用加密的會話,就必須找到破解加密會話的方法,不過許多組織已經證明這是非常困難的。強攻不行就只能智取,加密的信息如果要使用就肯定會在某些地方不是被加密的,繞過加密進程就可以捕獲未加密的數據。這是解密工作的基本機制,然后獲得訪問未保護的數據。
使用二進制木馬程序是對付加密的一種辦法。當入侵者攻破蜜罐,他可能會使用如SSH的加密工具來登陸被攻陷的主機,登陸的時候肯定要輸入命令,這時木馬shell程序會記錄他們的動作。不過二進制木馬程序隱蔽性不高,而且入侵者可能會安裝他們自己的二進制程序。
從操作系統(tǒng)內核訪問數據將是一個很好的捕獲方法。不管入侵者使用什么二進制程序,都可以從內核捕獲數據并且可以記錄它們的行為。而且,由于用戶空間和內核空間是分開的,所以在技術上還可以實現對所有包括root在內的用戶隱藏自己的動作。
數據捕獲是由內核模塊來完成的,所以要使用這個模塊獲得蜜罐機操作系統(tǒng)內核空間的訪問,從而捕獲所有read()和write()的數據。捕獲模塊通過替換系統(tǒng)調用表的read()和write()函數來實現這個功能,這個替換的新函數只是簡單的調用老read()和write()函數,并且把內容拷貝到一個數據包緩存。
3數據傳輸隱蔽通道的建立
當蜜罐捕獲到數據后,那么它需要在入侵者沒有察覺的情況下把數據發(fā)送到蜜網網關服務端。蜜罐通常都是布置在局域網內,如果捕獲模塊只是簡單使用UDP流來給服務端發(fā)送數據,入侵者只需監(jiān)聽網絡上的數據傳輸就可以判斷是否有蜜罐系統(tǒng)的存在了。不過捕獲模塊還是可以使用UDP來給服務端發(fā)送數據,只不過它需要修改內核使用戶無法看到這些數據包,包括其它主機發(fā)送的該類型使用相同配置的數據包。當捕獲模塊把這些數據發(fā)送到網絡的時候,操作系統(tǒng)也無法阻止這些數據包的傳輸。
如果一個局域網上每個蜜罐安裝了按照以上方法改進后的數據捕獲模塊,入侵者將不能發(fā)現任何捕獲模塊的數據,然而服務端能夠完全訪問這些由蜜罐客戶端捕獲的數據。每個read()或write()調用請求都會產生一個或多個日志數據包,每個數據包都包含了一點關于這個調用內容的信息和這個調用訪問的數據。每個包還包含了一個記錄,這個記錄包含一些產生調用的進程描述、調用產生的時間和記錄數據的大小。
這些包完全由捕獲模塊產生,而不是使用TCP/IP協(xié)議棧來產生或發(fā)送數據包,所以系統(tǒng)無法看到或阻斷這些數據包。當數據包創(chuàng)建好的時候就直接發(fā)送給驅動設備,這就繞過了原始套接字代碼和包過濾代碼。由于嗅探器通常都是基于libpcap的,而libpcap使用原始套接字接口來收集數據包,所以嗅探器不能看到運行在蜜罐主機上由捕獲模塊產生的數據包。
同時還有一個要解決的問題,就是要阻止蜜罐A檢測到蜜罐B的捕獲到的數據包。使用以太交換不能解決這個問題,因為數據包不是通過ARP獲取目標IP地址對應的目標MAC地址,所以它對ARP欺騙有自然免疫能力。但是在有些情況下,A可以看到B的數據包,這樣入侵者就可以在蜜罐A運行嗅探器來看到局域網上來自蜜罐B的捕獲到的數據包。
為了解決這個問題,捕獲模塊的包產生機制應該實現自己獨特的原始套接字實現,從而實現安靜地忽略來自局域網中的其他蜜罐發(fā)送出數據包。在發(fā)送的數據包頭定義了預先設定的目標UDP端口和固有的特定數字,如果這兩個值都匹配了,那么這個數據包就會被忽略。這樣蜜罐A在收到蜜罐B的數據包時就會丟棄它們并且移到隊列里的下一個數據包,這使得入侵者用嗅探器也無法捕獲數據包。
校園網中蜜罐技術應用方案結論
針對傳統(tǒng)的蜜罐的局限性和缺點,出現了蜜網技術,蜜網是由許多用來與攻擊者進行交互的蜜罐組成的網絡。本文針對蜜網中蜜罐所面臨的問題:隱藏自身、加密會話數據捕獲以及和蜜網網關建立隱蔽數據傳輸通道,給出了詳細的解決方案。但同時也存在著一些不足,比如本文中所提到的隱藏蜜罐數據捕獲模塊和進程的方法,雖然達到了保護自身的目的,但也帶來了一些負面問題:
捕獲模塊被加載就再也無法卸載,root用戶再也無法找到它,一旦捕獲模塊中出現bug,由于無法管理,可能會引起內核的不穩(wěn)定甚至系統(tǒng)崩潰等,這將會影響到蜜罐的正常工作,從而影響整個蜜網的性能。這些問題都有待進一步的。
【編輯推薦】