虛擬蜜罐是由一台計算機模擬的系統,但是可以響應發送給虛擬蜜罐的網絡流量,今天我們來淺析一下虛擬蜜罐。
蜜罐可以運行任何操作系統和任意數量的服務。蜜罐根據交互程度(Level ofInvolvement)的不同可以分為高交互蜜罐和低交互蜜罐。蜜罐的交互程度是指攻擊者與蜜罐相互作用的程度,高交互蜜罐提供給入侵者一個真實的可進行交互的系統,相反,低交互蜜罐只可以模擬部分系統的功能。高交互蜜罐和真實係統一樣可以被完全攻陷,允許入侵者獲得系統完全的訪問權限,並可以以此為跳板實施進一步的網絡攻擊。相反的,低交互蜜罐只能模擬部分服務、端口、響應,入侵者不能通過攻擊這些服務獲得完全的訪問權限。
蜜罐分為高交互蜜罐、低交互蜜罐、物理蜜罐、虛擬蜜罐。從實現方法上來分,蜜罐可分為物理蜜罐和虛擬蜜罐。物理蜜罐是網絡上一台真實的完整計算機,虛擬蜜罐是由一台計算機模擬的系統,但是可以響應發送給虛擬蜜罐的網絡流量。今天我們來淺析一下虛擬蜜罐。
對比物理蜜罐而言,虛擬蜜罐要容易得多。可以在一台計算機上部署數千個蜜罐,代價低廉,幾乎所有人都可以很容易地使用它們,並且使得其更加容易維護以及較低的物理需求。很多時候我們會使用VMware或者用戶模式的Linux (UML)等來建立虛擬蜜罐,這些虛擬系統工具可以在一台物理計算機上運行多個蜜罐系統及應用程序來收集數據。
虛擬蜜罐通常會模擬出真實的操作系統,並將其部屬在一台宿主主機上。在虛擬系統中虛擬出漏洞,產生虛假的流量,偽裝不存在的文件地址,存儲真實但無意義的文件,對網絡中的各種信息進行模擬等,來更好的吸引入侵者的攻擊虛擬蜜罐。
一是IP地址的空間欺騙。用一台主機就可以完成,利用在一個網卡來分配複數個IP地址,並對每一個IP地址配置單獨的MAC地址,可以完成多個主機的虛擬。
第二個是仿真網絡流量。因為虛擬蜜罐在一般情況下不會與其他主機主動進行交互,也就沒有任何的網絡流量,容易被入侵者根據這一點識破虛擬蜜罐。所以產生方針流量以後,可以欺騙入侵者,使入侵者無法通過對流量的觀察來判斷虛擬蜜罐的存在。
第三個是系統的動態配置。在正常狀態下,一個虛擬蜜罐的狀態是靜態的,沒有交互和網絡流量,一些有經驗的入侵者可以通過觀察系統的狀態來判斷是否是虛擬蜜罐。而係統的動態配置正是針對這一點,虛擬蜜罐的系統狀態會不斷的發生變化,會盡可能的模擬一個真實係統的行為,防止入侵者輕易的就發現虛擬蜜罐,導致其失去作用。
第四個是組織信息欺騙。可以在虛擬蜜罐裡設置一些個人信息,或者存儲一些沒有意義的虛假信息、文件等,可以讓虛擬蜜罐看起來更像是一個有人使用的真實係統,增加對入侵者的迷惑性。
第五個是端口重定向技術。這種技術可以對地址進行數次轉換,區別真實和虛擬網絡,也可以對常用端口進行重定向,達到隱藏這些端口的目的。
當多個蜜罐組成網絡時稱為密網,而一個密網的核心是蜜牆,也就是密網網關。蜜牆主要功能:
數據捕捉:可以在不被入侵者察覺的情況下,對密網內所有的活動和網絡數據信息進行捕捉。
數據控制:對進出密網的數據進行流量控制。這樣可以在內部蜜罐被攻破以後,確保其所有的活動依然被限制在蜜網之內。
數據分析:幫助密網管理者簡化捕捉數據分析,並可以幫助計算機和網絡取證。
常用的實現虛擬蜜罐的技術主要有VMware、用戶模式Linux、Argos、LaBrea、Honeyd等。
(1)VMware技術VMware公司是老牌的虛擬化軟件公司之一,其提供了多種虛擬化軟件應對不同的狀況。虛擬化軟件表示軟件可以模擬一個完整的計算機系統,並且可以在同一個虛擬機上可能運行多個不同的操作系統。下面介紹VMware公司的一些產品,這些VMware產品相互之間的不同點。
實際安裝VMware 的物理機器,執行VMware進程的計算機和操作系統實例稱為主機(或宿主主機)。運行在虛擬機內部的操作系統被稱為客戶系統或客戶虛擬機。兩種系統之間的交互是完全透明的,例如在主機和客戶系統之間,使用VMware可以共享文件夾、複製粘貼各種文件。
虛擬系統起到一個類似於模擬器的作用,主機的物理CPU和內存資源可以被主機與客戶虛擬機共享,但同時客戶操作系統也可以從VMware中分配到一套完整的虛擬硬件資源。例如,在多個客戶系統中,一套相同的虛擬硬件資源可以被所有的客戶系統所使用,就像同一配置的多台計算機安裝不同的操作系統,而且這些虛擬硬件可以在不超過客戶虛擬機配置的情況下任意的進行設置,不需要考慮真實物理硬件資源,這些硬件資源都可以連至主機系統。
(2)用戶模式Linux用戶模式Linux 是另一種可以用來創建虛擬蜜罐的系統,用法十分簡單,但是與VMware相比,主要缺點就是它只能模擬Linux系統。
UML是一個Linux內核的體系結構端口,系統內稱為接口。 Linux內核本身可以作為一個用戶進程來運行,實際的Linux內核(主機系統〉執行另外一個Linux(客戶系統)實例,把它作為一個進程。這個過程與VMware 中的虛擬機類似,每一個UML實例都是一個完整的虛擬機,與一個真實的計算機幾乎沒什麼區別。於是就有了一個簡單的方法來實現虛擬機,直接使用UML建立一個虛擬蜜罐,獲得一個虛擬系統提供的所有優點。在配置或穩定性上,客戶系統不會影響到主機系統。UML的塊設備,也稱為磁盤,通常是主機文件系統上的文件,不會影響存儲正常數據的本地塊設備。
UML作為一個操作系統只能運行在Linux上,所以如果運行Windows 或其他系統的時候,不能使用這種方式創建蜜罐。看起來只能選擇Linux系統缺點很嚴重,但也並非沒有好處,使用UML可以方便的創建許多不同的運行Linux的蜜罐。由於UML的塊設備是正常的文件,客戶系統使用這一文件(通常稱為根文件系統)作為一個完整的文件系統,可以很容易的把一個UML實例從一台機器上移植到另一台機器上。 UML 的另一個選項實用性也很強,能夠在寫時復制(copy-on-write,COW)模式下使用文件,UML實例在只讀模式下使用跟文件系統,把所有的更改寫入到一個單獨的文件中-COw文件,使得幾個蜜罐可以同時使用一個根文件系統,即可以節省磁盤空間,又可以便於維護管理。
(3)ARGOS荷蘭阿姆斯特丹自由大學的研究人員開發了一種新型的虛擬高交互蜜罐,該工具被稱為Argos,能夠自動檢測零天(zero-day)攻擊,也就是尚無補丁的攻擊。他們使用一種名為動態污點分析的技術來監測蜜罐:第一步,標記所有通過網絡接收到的數據,通過內存追踪這些標記數據,一旦這些標記數據被使用,影響了執行流程,Argos檢測到這些並產生一個攻擊的內存痕跡。相對於其他虛擬蜜罐解決方案,Argos不只是執行客戶虛擬機,同時還密切監測蜜罐,試圖及時發現攻擊者成功攻陷蜜罐的切入點。
動態污點分析是Argos技術的核心,這種技術根本在於觀察,一個攻擊者控制一個給定程序的執行流程,他一定會是使用某種方式影響它,但不論是何種方式,攻擊者都必須向程序發送一個不正常的輸入,這樣的數據必定會影響執行流,例如,跳轉到攻擊者提供的數據。
在這一過程中,動態污點分析發揮作用,一個程序的所有外部輸入都被當作污點被標記。在分析過程中,密切監視和檢查所有污染變量的使用,當一個污染變量通過其他操作得到的結果也被認為受到污染:但如果一個污染變量被賦予一個固定值,則認為該變量不再是受污染變量。這樣就可以跟踪外部輸入的使用,一旦這種污染輸入用於改變執行流,就可以被檢測出來。對Argos 來說,它產生的信息轉儲包含引起正常執行流偏離的相關信息。這個方法對檢測網絡攻擊靈敏度很高,而且我們檢測攻擊無需任何先驗知識。當一個攻擊發生時,我們可以精確地檢測到,通過分析確定導致該事件的原因。
(4)LaBrea由Tom Liston 創作的LaBrea,因引入了一個tarpit概念而聞名。 tarpit是一種服務,作用是通過使TCP連接非常緩慢或完全停止它們的進程,試圖減緩垃圾郵件發送者發送速度甚至是蠕蟲的傳播速度,雖然tarpit並不能減緩更高級的蠕蟲傳播,然而,對於順序操作的簡單蠕蟲tarpit具有良好的作用。
在網絡上運行LaBrea時,它會發現空閒的IP地址,並代替它們應答連接。一旦連接被建立起來,LaBrea會通過在TCP協議中採用技巧而盡可能長時間地黏住發送者,這樣建立的連接會進入到一種不能再取得任何進展的狀態。拖延連接的原因很簡單,垃圾郵件或病毒發送者在服務器上每多維持一個連接,就減少了向真正的主機發送垃圾郵件的可用資源。
為了檢測一個IP地址是否可用,LaBrea利用ARP協議。每當路由器試圖向一個IP地址交付一個數據包時,它首先需要找到相應的MAC地址,如果沒有主機監聽這一IP地址,ARP不會獲得應答。
例如:12:20:40.439476 arp who-has 192.168.1.123 tell 192.168.1.2
由於ARP在整個網絡上進行廣播,LaBrca 監視來自路由器的ARP請求,如果網絡中沒有主機相應IP地址192.168.1.123,LaBrea就會發送自己的應答:
12:20:42.356431 arp reply 192.168.1.123 is-at 00:3c:2f:1e:52:7a
現在路由器收到了一個MAC地址,就會把這個數據包以及後去的數據包發送給LaBrea 主機。但當一個主機重新啟動,它可能會使用一個已經被LaBrea佔用的IP地址,不過重啟的主機會發送一個無需應答的ARP請求,通知網絡上的所有人新的IP地址和MAC的綁定,那麼LaBrea將會放棄該IP地址。 LaBrea接受網絡上所有空閒的IP地址的TCP連接,當它收到一個SYN包,它就會通過完成TCP 三次握於建立一個連接,然後拖延這個連接。 LaBrea支持兩種放慢連接傳輸速度的方法:
窗口調節:LaBrea接受一個新的連接,但會公佈一個非常小的接收窗口。接收窗口指示發送者,每個數據包不能發送大於窗口允許長度的數據。當採用窗口調節時,連接仍然在繼續,但當一個1000字節長度的包被要求以10個字節長度位單位進行傳輸,顯然傳輸時間會變得非常漫長,速率會變的非常緩慢。
持久捕捉:LaBrea 公佈一個TCP接收窗口的大小為0,指示發送者在繼續發送數據前等待。發送者周期地回訪,發送窗口探測數據包,以確定接收窗口是否再次打開,這種狀態可以一直持續下去。
當垃圾郵件發送者試圖通過一個La Brea 蜜罐發送電子郵件時,SMTP事務將不產生或者產生很小的進程,一個啞垃圾郵件發送者將保持該連接,浪費網絡資源。最終,垃圾郵件發送者一旦發現和La Brea會話沒有取得進展,它可能走掉。
當我們使用DHCP用於IP地址動態分配,LaBrea將接管DHCP地址範圍內目前尚未使用的地址。 DHCP服務器在分發一個IP地址前,往往首先ping該地址,但是LaBrea對ping 的響應會干擾DHCP服務器的判斷。隨著時間的推移,用戶歸還了他們租用的IP地址,最後LaBrea將接管整個DHCP地址空間。所以一個用戶需要知道哪些地址是被他的DHCP服務器使用,並在配置文件中排除它們。
(5)HoneydHoneyd是一種框架,可以把數千個虛擬蜜罐及對應的網絡集成到一起。通常我們使用Honeyd集成現有網絡上所有未分配的IP地址,對每一個IP地址,都可以設置Honeyd模擬不同的計算機行為。
一般的來說,當一個蜜罐只使用一個IP地址時,可能需要相當長的一段時間才可以探測到攻擊,但當你擁有的IP地址多達成百上千時,可以大大加快被攻擊的速度,這就是Honeyd的作用,以一個低交互虛擬蜜罐的框架,在一個網絡或者Internet 上建立數千個虛擬蜜罐,充分的利用未分配的網絡地址,來更多的觀察攻擊行為,或者用來阻止入侵者攻擊真實係統。
Honeyd通過路由器或代理ARP為其虛擬蜜罐接受流量,對於每一個蜜罐,Honeyd可以模擬不同的操作系統的網絡棧行為。
Honeyd的特性Honcyd可以同時模擬數幾千個不同的虛擬主機:入侵者可以通過網絡與每一個單獨的主機進行交互。可以通過配置Honeyd得到每個主機的不同行為。
通過配置文件可以配置任意服務:當入侵者與虛擬主機進行交互時,Honeyd可以提供與對手交互的任意程序,這些程序服務都可以使用配置文件進行配置。無論何時Honeyd收到一個新的網絡連接,都可以及時啟動事先配置好的服務或者程序,回應入侵者。即使不運行相應的程序,Honeyd也可以作為代理將連接轉接到其他主機上,或者採用類似於被動指紋識別的功能,識別遠程主機和負載的隨即採樣。
在TCP/IP協議棧層次模擬操作系統:這一特性允許Honeyd 欺騙Nmap和Xprobe,讓他們相信一個虛擬蜜罐上正運行著各種配置的操作系統。組建自由路由拓撲:路由拓撲可以任意複雜,可以配置延遲、丟包和帶寬等特徵。 Honeyd支持非對稱路由、物理機器集成到一個虛擬拓撲中,以及通過GRE隧道的分佈式操作。
子系統虛擬化:利用子系統,Honeyd可以在一個蜜罐的虛擬空間下執行真正的UNIX應用,如Web服務器、Ftp服務器等等。這一特徵也允許虛擬地址空間內進行動態端口綁定和網絡連接的後台初始化。
Honeyd的體系結構Honeyd使用一個簡單的體系結構,一個中央包分發器接受所有入侵者的網絡流量,基於實現確定好的配置,對收到的數據流量來創建不同的服務進程處理,為了匹配所配置操作系統的特徵,使用個性引擎所修改發送出去的網絡數據包。
雖然通過對Honeyd 的配置可以控制它的每一個方面,但是三個重要特徵決定了Honeyd的整體行為:
一是入侵者只能從網絡中與Honeyd進行交互,我們的基本假設是入侵者不能走近計算機或者鍵盤進行登錄,因為任何一個Honeyd模擬的蜜罐沒有與之對應的物理計算機,Honeyd不是模擬操作系統的每一個方面,只有模擬其網絡堆棧所以入侵者永遠無法獲得對一個完整系統的訪問,但是可以通過與虛擬機如VMware相結合,減小Honeyd的這一問題。
二是Honeyd 可以在網絡上佈置大量的虛擬蜜罐,即使分配大量的IP地址Honeyd也都能模擬出,可以具有不同的操作系統和服務,也可以模擬任意的網絡拓撲結構,並支持網絡隧道。
三是可以欺騙指紋識別工具,Honeyd可以反轉指紋識別工具的數據庫,找到數據庫中指紋識別的特徵,當一個蜜罐需要發送一個網絡數據包時,可以通過查找數據庫,改變所有的數出數據包內容,使它們與配置的操作系統特徵相匹配。
結語虛擬蜜罐技術具有物理蜜罐技術的諸多特性,並可以在單一的系統中運行成百上千個虛擬蜜罐,還可以添加諸多應用程序,如網絡誘餌、蠕蟲探測、垃圾郵件阻止、網絡模擬等。相對於物理蜜罐複雜的部署、高額的費用、超長的耗時,虛擬蜜罐技術作為蜜罐技術的突破性解決方案讓網絡安全防護成本降低、效率增加,在網絡安全技術方面也同樣有著重要的作用。
Recommended Comments