虛擬機檢測與蜜罐檢測技術_第1頁
虛擬機檢測與蜜罐檢測技術_第2頁
虛擬機檢測與蜜罐檢測技術_第3頁
虛擬機檢測與蜜罐檢測技術_第4頁
虛擬機檢測與蜜罐檢測技術_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

虛擬機檢測與蜜罐檢測對于虛擬機與蜜罐的檢測,首先我們要了解什么是虛擬機,什么是蜜罐。首先虛擬機是指通過軟件模擬的具有完整硬件系統(tǒng)功能的、運行在一個完全隔離環(huán)境中的完整計算機系統(tǒng)。而蜜罐好比是情報收集系統(tǒng)。蜜罐好像是故意讓人攻擊的目標,引誘黑客前來攻擊。所以攻擊者入侵后,你就可以知道他是如何得逞的,隨時了解針對公司服務器發(fā)動的最新的攻擊和漏洞。還可以通過竊聽黑客之間的聯(lián)系,收集黑客所用的種種工具,并且掌握他們的社交網絡。作為信息安全方向的學員,了解虛擬機與蜜罐的檢測技術,對于網絡安全的研究有著重要的意義。一、對于虛擬機的檢測對虛擬機主要有以下四種方向的檢測方法:利用內存差異的檢測方法;利用相對性能的檢測方法;利用虛擬處理器的異常行為的檢測方法;其他檢測方法;利用內存的差異性檢測,主要有IDT(InterruptDescriptorTable)或LDT(LocalDescriptorTable)的檢測方法。該方法利用了虛擬機和真實主機中重要的操作系統(tǒng)的某些關鍵數(shù)據結構的不同位置來判斷執(zhí)行環(huán)境是否是虛擬機。這類方法對VMware、VirtualPC都比較有效。x86的ISA中存在17條敏感非特權指令,其中包括SIDT、SLDT和SGDT,它們可以在用戶態(tài)使用。使用它們可以獲取IDT、LDT和GDT(GlobalDescriptorTable)的信息。因為只有一個IDTR寄存器、一個GDTR寄存器和一個LDTR寄存器,但是有兩類操作系統(tǒng)在運行:虛擬機系統(tǒng)和真實主機系統(tǒng)。為了能夠正確地虛擬化,每個虛擬機都應該維持這幾個描述表的“影子”拷貝,虛擬機監(jiān)控器必須改變虛擬機中描述表的位置。這樣就會使虛擬機和真實主機產生一個不一致,使用這個不一致可以用來判斷虛擬機的存在。其中利用IDT基址檢測虛擬機的具體實現(xiàn)如下:中斷描述符表IDT(InterruptDescriptorTable)用于查找處理中斷時所用的軟件函數(shù),它是一個由256項組成的數(shù)據,其中每一中斷對應一項函數(shù)。為了讀取IDT基址,我們需要通過SIDT指令來讀取IDTR(中斷描述符表寄存器,用于IDT在內存中的基址),SIDT指令是以如下格式來存儲IDTR的內容:typedefstruct{WORDIDTLimit;//IDT的大小WORDLowIDTbase;//IDT的低位地址WORDHiIDTbase;//IDT的高位地址}IDTINFO;由于只存在一個IDTR,但又存在兩個操作系統(tǒng),即虛擬機系統(tǒng)和真主機系統(tǒng)。為了防止發(fā)生沖突,VMM(虛擬機監(jiān)控器)必須更改虛擬機中的IDT地址,利用真主機與虛擬機環(huán)境中執(zhí)行sidt指令的差異即可用于檢測虛擬機是否存在。#include<stdio.h>intmain(){unsignedcharm[2+4],rpill[]="\x0f\x01\x0d\x00\x00\x00\x00\xc3";//相當于SIDT[adrr],其中addr用于保存IDT地址*((unsigned*)&rpill[3])=(unsigned)m;〃將sidt[addr]中的addr設為m的地址((void(*)())&rpill)();//執(zhí)行SIDT指令,并將讀取后IDT地址保存在數(shù)組m中printf("idtbase:%#x\n",*((unsigned*)&m[2]));〃由于前2字節(jié)為IDT大小,因此從m[2]開始即為IDT地址if(m[5]>0xd0)printf("InsideMatrix!\n”,m[5]);//當IDT基址大于0xd0xxxxxx時則說明程序處于VMware中elseprintf("NotinMatrix.\n");return0;}但是,IDT檢測方法有一個缺點,它在有多個CPU的機器上誤警率太高。因為多個CPU的機器上,每個處理器有不同的IDT,IDT的基地址在不同時刻所取得的值并不相同。為此,DannyQuist和ValSmith提出了使用LDT的檢測方法。LDT檢測方法和IDT的方法類似但是它在具有多個CPU的環(huán)境時檢測的表現(xiàn)非常好。總的來說,這類方法簡單有效,通用性強,虛擬機實現(xiàn)不能避免此類差異。其次是利用相對性能的檢測方法。主要介紹基于時間差的檢測方式。通過選擇一段經過精心設計的代碼,通過比較該代碼在真實物理主機和目標主機上運行的相對時間來判斷是否存在虛擬機。這類方法是一種通用的方法,不依賴于具體的軟件虛擬機的實現(xiàn)方法。這種方法的缺點是需要知道目標主機的硬件配置信息。但是,這個前提通常很容易得到滿足。如在進行惡意軟件分析時,惡意軟件很容易探測出目標主機的配置信息。JasonFranklin等人就使用了這種思想,他們提出的方法不需要獲得目標主機的精確配置,因此,JasonFranklin稱他們所使用的方法為FuzzyBenchmake方法。實驗證明,該方法能夠檢測出VMware、VirtualPC、Xen等的存在。2.L杓:州U怵工戡圖2FuzzyBenchmarking檢測框架第三是利用虛擬處理器的異常行為的檢測方法。該方法主要通過利用虛擬處理器的異常行為來判斷虛擬機是否存在。為了處理如客戶機和宿主機進行通信等有關問題,一些虛擬機引入了一些“額外”的非標準x86指令集的指令。主要有以下三種:通過執(zhí)行特權指令來檢測虛擬機。Vmware為真主機與虛擬機之間提供了相互溝通的通訊機制,它使用“IN”指令來讀取特定端口的數(shù)據以進行兩機通訊,但由于IN指令屬于特權指令,在處于保護模式下的真機上執(zhí)行此指令時,除非權限允許,否則將會觸發(fā)類型為“EXCEPTION_PRIV_INSTRUCTION”的異常,而在虛擬機中并不會發(fā)生異常,在指定功能號0A(獲取VMware版本)的情況下,它會在EBX中返回其版本號“VMXH”;而當功能號為0x14時,可用于獲取VMware內存大小,當大于0時則說明處于虛擬機中?;赟TR的檢測方法。在保護模式下運行的所有程序在切換任務時,對于當前任務中指向TSS的段選擇器將會被存儲在任務寄存器中,TSS中包含有當前任務的可執(zhí)行環(huán)境狀態(tài),包括通用寄存器狀態(tài),段寄存器狀態(tài),標志寄存器狀態(tài),EIP寄存器狀態(tài)等等,當此項任務再次被執(zhí)行時,處理器就會其原先保存的任務狀態(tài)。每項任務均有其自己的TSS,而我們可

以通過STR指令來獲取指向當前任務中TSS的段選擇器。這里STR(Storetaskregister)指令是用于將任務寄存器(TR)中的段選擇器存儲到目標操作數(shù),目標操作數(shù)可以是通用寄存器或內存位置,使用此指令存儲的段選擇器指向當前正在運行的任務的任務狀態(tài)段(TSS)。在虛擬機和真實主機之中,通過STR讀取的地址是不同的,當?shù)刂返扔?x0040xxxx時,說明處于虛擬機中,否則為真實主機。基于注冊表檢測虛擬機。在windows虛擬機中常常安裝有VMwareTools以及其它的虛擬硬件(如網絡適配器、虛擬打印機,USB集線器……),它們都會創(chuàng)建任何程序都可以讀取的windows注冊表項,因此我們可以通過檢測注冊表中的一些關鍵字符來判斷程序是否處于虛擬機之中。最后是其他檢測方法。主要是利用虛擬硬件指紋檢測虛擬機。利用虛擬硬件指紋也可用于檢測虛擬機的存在,比如VMware默認的網卡MAC地址前綴為“00-05-69,00-0C-29或者00-50-56”,這前3節(jié)是由VMware分配的唯一標識符OUI,以供它的虛擬化適配器使用。但由于這些可經過修改配置文件來繞過檢測。另外,還可通過檢測特定的硬件控制器,BIOS,USB控制器,顯卡,網卡等特征字符串進行檢測。由于目前虛擬機技術的發(fā)展,經過測試,目前這些技術許多已經失效,無法進行具體演示,新的虛擬機檢測技術有待我們去探索發(fā)現(xiàn)。W[R-unning]-Ora-deVMVirtual&o>cM-achineDevi-cesHelp?jc-Microsoft?jc-MicrosoftVisualC++-[jc,cpp]團文件(E犒舊查看①?Adi工程凹蛆建四工具口窗口也幫助凹'E:\MicrosoftVisualStudio-\MyPr0jects\jc\IDebu]g^c.exe 曾|洛口尋|將電電|二『以~|匝同舀輛|FindFileData^'E:\MicrosoftVisualStudio-\MyPr0jects\jc\IDebu]g^c.exe +尊+尊Ijccla請按任意鍵繼續(xù)???

雖然無法檢測,但我們仍能看出虛擬機與真機的差別,也為我們今后的探索提供了一些思路。二、蜜罐的檢測技術目前,蜜罐技術已由單一的蜜罐發(fā)展到現(xiàn)在的第三代蜜網,還出現(xiàn)了動態(tài)蜜罐(ActivateHoneypots)、蜜場(Honeyfarm)、Honeytoken、應用層蜜罐(Honeyapp)、同步/異步交互蜜罐(Active/PassiveHoneyclient)等新概念、新技術。但是其核心技術如數(shù)據控制、數(shù)據捕獲、數(shù)據分析、重定向等是不會變的。在計算機應用領域,無論蜜罐作為一個系統(tǒng)還是一個軟件甚至是網絡,都會存在這樣那樣的弱點,而蜜罐識別技術就是利用這些弱點來對蜜罐進行識別。首先是基于蜜罐個性特征的識別技術。在實際的應用中,由于Honeypot產品和技術的不同,針對特定的Honeypot進行識別的技術也是多種多樣。主要方法有虛擬機檢測和Uml檢測。虛擬機檢測上面已近有了較詳細的介紹,這里主要講uml檢測。UML(User—modeLinux)允許在一個Linux系統(tǒng)(主機)上運行另外一個Linux系統(tǒng)(客戶機),客戶機可以作為蜜罐使用,和VMware類似,它同樣是虛擬的系統(tǒng),并沒有使用實際的硬盤,而是使用一個叫UDB的虛擬IDE設備。通過查看關于UML的系統(tǒng)配置文件,例如檢查一下/etc/fstab和目錄/dev/ubd,或者運行mount你就會發(fā)現(xiàn)運行在一個,UMLsystem內,當然這些信息可以被偽裝。其次是基于蜜罐共性特征的識別技術,主要分為基于TCP/IP協(xié)議棧的識別和基于網絡特征的識別?;赥CP/IP協(xié)議棧的操作系統(tǒng)識別是比較成熟的技術,這方面的常用工具有Nmap,Queso等。在比較簡單的低交互度的一些Honeypot中,僅僅在應用程序級別模擬操作系統(tǒng),并沒有對協(xié)議棧進行模擬,如Specter假如模擬的操作系統(tǒng)和本機的操作系統(tǒng)不相同,攻擊者利用協(xié)議棧的指紋識別可以發(fā)現(xiàn)正在攻擊的操作系統(tǒng)和識別出的操作系統(tǒng)類型不符,從而判斷蜜罐的存在?;诰W絡特征的識別,網絡特征主要包括連接數(shù)目、網絡流量、數(shù)據包內容、TCP/IP值、網絡延遲和路由以及重定向等。利用網絡連接識別,例如對Honeywall的檢測就用到了該方法。Honeywall作為一個蜜網網關,是第二代蜜網方案整體架構中最重要的核心部件之一。作為蜜網與其他網絡的惟一連接點,所有流入、流出蜜網的網絡流量都將通過Honeywall,并受其控制和審計。同時由于其是一個工作在鏈路層的橋接設備,不會對網絡數(shù)據包進行TTL遞減和網絡路由,也不會提供本身的MAC地址,因此對黑客而言,Honeywall是完全不可見的。由于Honeywall的存在出境的通信將被嚴格限制,比如每天只允許15個出境TCP連接。只需要啟動大量的出境連接,然后觀察如果在一定數(shù)量的連接之后連接是否受到了阻止,即可判斷Honeywall的存在。第二種方法是利用Snortinline軟件,它檢測出從Honeypot向外發(fā)出的含有的攻擊特征的攻擊數(shù)據包,發(fā)出報警信息并對攻擊數(shù)據包加以拋棄或修改,使其不能對第三方網絡構成危害。通過建立一些包含匹配Snortinline的數(shù)據庫的字串的網絡通信,然后檢查是否收到目的包或者檢查收到的通信是否是原來的格式,從而識別出Honeywall的存在口。對于蜜罐識

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論