• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Windows棧緩沖區(qū)溢出攻擊原理及其防范

      2017-10-28 21:43李云飛陳洪相
      軟件工程 2017年9期
      關(guān)鍵詞:堆棧安全漏洞內(nèi)存

      李云飛 陳洪相

      摘 要:計(jì)算機(jī)網(wǎng)絡(luò)安全漏洞和網(wǎng)絡(luò)攻擊伴隨著網(wǎng)絡(luò)的存在會(huì)隨時(shí)發(fā)生,棧緩沖區(qū)溢出漏洞攻擊是網(wǎng)絡(luò)攻擊中最常見的一種攻擊技術(shù)。文章剖析了Windows棧工作原理,以及棧溢出漏洞攻擊技術(shù)方法,針對(duì)常見的棧溢出漏洞攻擊提出了幾種防御措施,能預(yù)防大部分針對(duì)棧溢出漏洞的攻擊。

      關(guān)鍵詞:網(wǎng)絡(luò)安全;內(nèi)存;安全漏洞;堆棧;緩沖區(qū)溢出

      中圖分類號(hào):TP309.1 文獻(xiàn)標(biāo)識(shí)碼:A

      Abstract:Computer network security vulnerabilities and cyber attacks may occur at any time on the Internet,and the stack buffer overflow attack is the most common network attack technology.This paper analyzes the operating principle of the stack in Windows and the techniques of stack overflow attacks.Then,several prevention measures are proposed for common stack buffer overflow attacks,which can prevent most stack overflow attacks.

      Keywords:network security;memory;security vulnerabilities;stack,buffer overflow

      1 引言(Introduction)

      緩沖區(qū)是已分配的一段大小確定的用于臨時(shí)存放數(shù)據(jù)的內(nèi)存存儲(chǔ)區(qū)。當(dāng)向一個(gè)已經(jīng)分配了確定內(nèi)存空間的緩沖區(qū)內(nèi)寫入超出該緩沖區(qū)處理能力的數(shù)據(jù)時(shí),將發(fā)生緩沖區(qū)溢出[1]。

      近十年,以緩沖區(qū)溢出為類型的安全漏洞攻擊是最為常見的一種形式,在網(wǎng)絡(luò)與分布式系統(tǒng)安全中,50%以上的漏洞攻擊都是基于緩沖區(qū)溢出技術(shù)的,尤其在不進(jìn)行邊界檢查的C/C++程序中仍然是軟件可靠性和安全性的主要威脅之一[2]。

      利用緩沖區(qū)溢出攻擊,可以導(dǎo)致程序運(yùn)行失敗、重新啟動(dòng)、執(zhí)行惡意代碼等后果。緩沖區(qū)溢出中最危險(xiǎn)的是棧溢出,因?yàn)槿肭终呖梢岳枚褩R绯?,在函?shù)返回時(shí)改變返回程序的地址,讓其跳轉(zhuǎn)到任意地址,更為嚴(yán)重的是,它可被利用來執(zhí)行非授權(quán)指令,甚至可以取得系統(tǒng)特權(quán),進(jìn)而進(jìn)行各種非法操作[3]。

      2 Windows棧緩沖區(qū)溢出原理(The principle of

      stack buffer overflow in Windows)

      2.1 Windows內(nèi)存程序結(jié)構(gòu)

      計(jì)算機(jī)運(yùn)行時(shí),必須首先把程序從外存裝載到內(nèi)存,然后由CPU從內(nèi)存中依次讀取執(zhí)行指令。正在運(yùn)行的程序叫進(jìn)程,每個(gè)進(jìn)程都有自己的獨(dú)立內(nèi)存空間,它被分成幾個(gè)段(Segment),分別是代碼段(text)、數(shù)據(jù)段(data,bss)、堆(heap)、棧(stack)等,如圖1所示。用戶進(jìn)程的內(nèi)存空間,也是系統(tǒng)內(nèi)核分配給該進(jìn)程的虛擬內(nèi)存。內(nèi)存總是被進(jìn)程占用,但并不表示這個(gè)進(jìn)程占用了這么多的物理內(nèi)存,Windows將虛擬內(nèi)存地址映射到各進(jìn)程的物理內(nèi)存地址上,進(jìn)程內(nèi)存空間隨著程序的執(zhí)行會(huì)增大或者縮小[4]。

      堆和棧都是一種數(shù)據(jù)項(xiàng)按序排列的數(shù)據(jù)結(jié)構(gòu)。

      棧是一種先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),是自動(dòng)開辟空間,用來分配局部變量、類的引用(指向堆空間段),棧使用的是一級(jí)緩存,通常在被調(diào)用時(shí)處于存儲(chǔ)空間中,調(diào)用完畢立即釋放。

      堆是一種經(jīng)過排序的數(shù)據(jù)結(jié)構(gòu),每個(gè)結(jié)點(diǎn)都有一個(gè)值,可以被看成是一棵樹,堆的存取是隨意的,堆是存放在二級(jí)緩存中,生命周期由虛擬機(jī)的垃圾回收算法來決定。堆的特點(diǎn)是根結(jié)點(diǎn)的值最?。ɑ蜃畲螅腋Y(jié)點(diǎn)的兩個(gè)子樹也是一個(gè)堆。由于堆的這個(gè)特性,常用來實(shí)現(xiàn)優(yōu)先隊(duì)列。

      bss段(Block Started by Symbol segment)通常是指用來存放程序中未初始化的全局變量的一塊內(nèi)存區(qū)域,屬于靜態(tài)內(nèi)存分配,程序一開始就將其清零了。

      對(duì)于一個(gè)進(jìn)程的內(nèi)存空間而言,可以在邏輯上分成三個(gè)部分:代碼區(qū)、靜態(tài)數(shù)據(jù)區(qū)和動(dòng)態(tài)數(shù)據(jù)區(qū)。動(dòng)態(tài)數(shù)據(jù)區(qū)一般就是堆棧。進(jìn)程的每個(gè)線程都有私有的棧,所以每個(gè)線程雖然代碼一樣,但本地變量的數(shù)據(jù)都是互不干擾。全局變量和靜態(tài)變量分配在靜態(tài)數(shù)據(jù)區(qū),本地變量分配在動(dòng)態(tài)數(shù)據(jù)區(qū),即堆棧中。程序通過堆棧的基地址和偏移量來訪問本地變量[5]。

      32位系統(tǒng)中經(jīng)典的內(nèi)存布局是:程序起始1GB地址為內(nèi)核空間,接下來是向下增長(zhǎng)的棧空間和由0×40000000向上增長(zhǎng)的內(nèi)存映射地址。而堆地址是從底部開始,去除ELF(Executable and Linking Format)、代碼段、數(shù)據(jù)段、常量段之后的地址并向上增長(zhǎng),這種布局導(dǎo)致了緩沖區(qū)容易遭受溢出攻擊[6]。

      2.2 Windows棧緩沖區(qū)溢出原理

      Windows程序的執(zhí)行流程由代碼段ECS和指令指針EIP控制,EIP始終指向下一條要執(zhí)行指令的地址。當(dāng)發(fā)生中斷或要調(diào)用子程序時(shí),需要將當(dāng)前斷點(diǎn)信息入棧保存,然后轉(zhuǎn)去執(zhí)行中斷子程序,執(zhí)行完中斷子程序后返回指令將棧頂內(nèi)容出?;謴?fù)斷點(diǎn)ECS和EIP。

      這種控制流程看似簡(jiǎn)單,只需將指令地址按序給ECS和EIP即可,但就是因?yàn)檫@簡(jiǎn)單的控制而不容許有任何地址計(jì)算差錯(cuò)。如果其他緩沖區(qū)溢出會(huì)導(dǎo)致多余的數(shù)據(jù)覆蓋其他有用內(nèi)存空間,其中如果將棧內(nèi)數(shù)據(jù)覆蓋就可能導(dǎo)致修改入棧保存的ECS和EIP,從而使得程序返回時(shí)跑飛。

      當(dāng)一個(gè)函數(shù)被調(diào)用時(shí),函數(shù)參數(shù)、EIP、ECS(段間調(diào)用時(shí))、EBP和函數(shù)局部變量會(huì)依次壓棧保存,如圖2所示。endprint

      定義變量和正常調(diào)用時(shí)如圖3(a)和圖3(b)所示,但當(dāng)把遠(yuǎn)大于10個(gè)字符的內(nèi)容(如字符"B")拷貝到為緩沖區(qū)分配的10個(gè)字符空間時(shí),多于10個(gè)字符的內(nèi)容就會(huì)覆蓋掉EBP和ECS:EIP,如圖3(c),函數(shù)執(zhí)行完畢后返回的地址就已經(jīng)不是原來保存的正確地址了。

      如果溢出部分的數(shù)據(jù)量足夠大或經(jīng)過攻擊者的精心設(shè)計(jì),就可能覆蓋返回地址,從而改變程序的執(zhí)行流程,將程序的返回地址修改成其想執(zhí)行的代碼地址,達(dá)到攻擊目的。

      出現(xiàn)緩沖區(qū)溢出的情況主要包括三種:

      (1)使用非類型安全的語(yǔ)言。緩沖區(qū)溢出主要出現(xiàn)在C和C++語(yǔ)言中,雖然C/C++語(yǔ)言可以允許程序員直接訪問內(nèi)存和CPU的寄存器,從而創(chuàng)建非常接近硬件運(yùn)行的性能優(yōu)異、運(yùn)行速度快程序,但C/C++語(yǔ)言不執(zhí)行數(shù)組邊界檢測(cè)和類型安全檢查,所以在進(jìn)行數(shù)組、字符串操作時(shí)容易造成緩沖區(qū)溢出[7]。

      (2)以不安全的方式訪問或操作緩沖區(qū)。如果應(yīng)用程序需要獲得數(shù)據(jù),當(dāng)用戶將數(shù)據(jù)復(fù)制到應(yīng)用程序所指定的緩沖區(qū)而未考慮目標(biāo)緩沖區(qū)的大小時(shí),就可能造成緩沖區(qū)溢出。

      (3)編譯器將緩沖區(qū)放在內(nèi)存中關(guān)鍵數(shù)據(jù)結(jié)構(gòu)旁邊或鄰近的位置。

      3 Windows棧緩沖區(qū)溢出攻擊防范(The prevention

      methods of stack buffer overflow attacks

      Windows)

      在棧溢出的檢查與防范方面,許多軟硬件廠商已經(jīng)做了大量工作,如微軟在Visual Studio中增加編譯選項(xiàng)來檢測(cè)棧的溢出,在Windows系列操作系統(tǒng)中增加了SEHOP (Structured Exception Handling Overwrite Protection),阻止修改SEH增強(qiáng)系統(tǒng)的安全性,硬件方面,64位CPU引入了NX(No-eXecute)機(jī)制,在內(nèi)存中區(qū)分?jǐn)?shù)據(jù)區(qū)與代碼區(qū),當(dāng)攻擊者利用溢出使CPU跳轉(zhuǎn)到數(shù)據(jù)區(qū)去執(zhí)行時(shí),就會(huì)異常終止等[8]。

      但對(duì)大量現(xiàn)有軟硬件資源,若要都升級(jí)或更新到最新的軟硬系統(tǒng)是一件很困難的事,而且不斷有繞過防御機(jī)制的新漏洞產(chǎn)生,攻擊方法也在不斷地發(fā)展變化。所以日常工作中的防御措施相當(dāng)必要,針對(duì)不同的攻擊原理和方法,也可以靈活采用各種技術(shù)進(jìn)行針對(duì)性的防御。

      緩沖區(qū)溢出攻擊防范是和整個(gè)系統(tǒng)的安全性分不開的。除了系統(tǒng)管理上采用諸如關(guān)閉危險(xiǎn)的特權(quán)程序,及時(shí)下載系統(tǒng)或軟件的最新補(bǔ)丁,使用安全產(chǎn)品等措施之外,軟件開發(fā)過程中的防范才是從根源上解決問題的渠道,常用的方法主要有幾種[9]。

      3.1 GS編譯選項(xiàng)

      Windows在Visual Studio 7.0(Visual Studio 2003)及以后版本中添加了一個(gè)針對(duì)函數(shù)的棧緩存溢出安全編譯選項(xiàng)——GS,來增加棧溢出的難度。

      GS編譯選項(xiàng)的原理就是在堆棧上插入一個(gè)安全cookie,以測(cè)試堆棧上的返回地址是否被修改過。安全cookie為四個(gè)字節(jié),在堆棧上的位置如圖4和圖2的傳統(tǒng)內(nèi)存結(jié)構(gòu)相比,GS編譯選項(xiàng)會(huì)增加四個(gè)字節(jié)的堆??臻g。

      如果是堆棧的局部變量發(fā)生緩存溢出的錯(cuò)誤而導(dǎo)致返回地址被覆蓋的話,由于安全cookie所在的位置,它也一定會(huì)被覆蓋。GS編譯選項(xiàng)在函數(shù)的入口和出口添加了針對(duì)安全cookie操作的指令,如果發(fā)現(xiàn)安全cookie的值被改動(dòng)就會(huì)轉(zhuǎn)入異常處理終止程序運(yùn)行。

      如果堆棧上的安全cookie的值和security_cookie的值一致的話,那么函數(shù)正常退出,否則就會(huì)執(zhí)行錯(cuò)誤處理程序。

      3.2 軟件開發(fā)過程防范

      發(fā)生棧緩沖區(qū)溢出的主要原因是軟件程序中使用了不規(guī)范的數(shù)據(jù)操作或惡意代碼攻擊,所以在軟件的編寫過程中注意規(guī)范的代碼審查,是杜絕緩沖區(qū)溢出的最直接因素。

      (1)規(guī)范代碼編寫規(guī)則

      C和C++開發(fā)工具不是為安全而設(shè)計(jì)的,屬于非類型安全語(yǔ)言,為了保證編程的靈活性,C/C++的一些庫(kù)函數(shù)(如strcpy(、gets()等))缺乏邊界檢測(cè),如果調(diào)用時(shí)輸入的參數(shù)過長(zhǎng),就會(huì)導(dǎo)致緩沖區(qū)溢出。所以在使用C/C++開發(fā)工具編程時(shí),都應(yīng)該有針對(duì)性地進(jìn)行安全性測(cè)試和代碼審查。

      ①數(shù)組邊界檢測(cè)。C語(yǔ)言不進(jìn)行數(shù)組邊界檢測(cè),容易產(chǎn)生超長(zhǎng)數(shù)據(jù)操作植入代碼,導(dǎo)致緩沖區(qū)溢出。當(dāng)在編譯時(shí)檢查所有的數(shù)組讀寫操作,確保對(duì)數(shù)組的操作都在有效范圍內(nèi)。

      目前的C程序編譯調(diào)試檢測(cè)提供了許多檢測(cè)工具,主要對(duì)存儲(chǔ)器存取檢測(cè)、數(shù)組邊界檢查。譬如Purify使用目標(biāo)插入代碼技術(shù)檢查可執(zhí)行代碼在執(zhí)行時(shí)數(shù)組的所有應(yīng)用來保障數(shù)組的合法使用,但程序的性能不可避免地要受到影響。

      但由于所有的C數(shù)組在傳送時(shí)是按指針傳送的,所以傳遞給調(diào)用函數(shù)的數(shù)組不會(huì)被檢查。例如庫(kù)函數(shù)strcpy()、strcat()、gets()等函數(shù),在編譯時(shí)不會(huì)進(jìn)行邊界檢查。

      ②指針完整性檢查。程序的指針完整性檢查在程序指針被引用之前檢查其是否被改變,即使攻擊者成功改變了程序指針,由于系統(tǒng)提前檢測(cè)到了該改變而不執(zhí)行該指針,所以該方法在防范緩沖區(qū)溢出方面性能比較好。

      程序指針完整性檢查是在函數(shù)返回地址或者其他的關(guān)鍵數(shù)據(jù)、指針之前插入防范值,或者存儲(chǔ)一個(gè)返回地址、關(guān)鍵數(shù)據(jù)或指針的備份,在函數(shù)返回時(shí)進(jìn)行比較。

      ③改進(jìn)C庫(kù)函數(shù)。C語(yǔ)言產(chǎn)生緩沖區(qū)溢出的根本是調(diào)用一些庫(kù)函數(shù)時(shí)不對(duì)數(shù)據(jù)進(jìn)行邊界檢測(cè),比如strcpy()gets()、strcat()、scanf()、printf()等,所以在用到該類型的庫(kù)函數(shù)時(shí),可以開發(fā)更安全的替代函數(shù)實(shí)現(xiàn)該部分功能,并對(duì)其進(jìn)行安全檢查調(diào)用,防范緩沖區(qū)溢出。

      (2)棧的不可執(zhí)行技術(shù)

      Windows系統(tǒng)為了實(shí)現(xiàn)更好的性能和功能,往往在數(shù)據(jù)段中動(dòng)態(tài)地插入可執(zhí)行的代碼,這樣當(dāng)緩沖區(qū)發(fā)生數(shù)據(jù)溢出時(shí)就會(huì)覆蓋數(shù)據(jù)段,從而可能導(dǎo)致數(shù)據(jù)段中的可執(zhí)行代碼被修改。所以為了防止這種緩沖區(qū)溢出產(chǎn)生攻擊,可以使被攻擊程序的數(shù)據(jù)段地址空間不可執(zhí)行,從而使得攻擊者不可能執(zhí)行被植入攻擊程序的緩沖區(qū)代碼。endprint

      為了保持程序的兼容性不可能將所有程序的數(shù)據(jù)段設(shè)為不可執(zhí)行,但可以在必要的時(shí)候?qū)⒍褩?shù)據(jù)段設(shè)為不可執(zhí)行,因?yàn)閹缀鯖]有程序會(huì)在堆棧中存放代碼,所以這樣既可以最大限度地保證程序的兼容性,也可以有效地保證棧緩沖區(qū)溢出攻擊。

      (3)備份關(guān)鍵控制信息

      棧溢出攻擊程序最致命的攻擊就是將程序流程的EIP和ECS內(nèi)容修改,導(dǎo)致原程序流程不能正常執(zhí)行。如果在調(diào)用程序或入棧時(shí),將斷點(diǎn)的EIP和ECS自動(dòng)入棧的同時(shí),用另外申請(qǐng)的靜態(tài)或動(dòng)態(tài)數(shù)組將程序流的關(guān)鍵信息如EIP和ECS備份保存,當(dāng)出棧返回程序斷點(diǎn)時(shí),用備份的信息和棧中的信息進(jìn)行比對(duì),如果發(fā)現(xiàn)不一致則認(rèn)為棧內(nèi)容被修改,這時(shí)可以做出中斷檢測(cè)處理,防止進(jìn)入攻擊代碼。

      3.3 棧溢出檢測(cè)防范技術(shù)

      (1)漏洞特征檢測(cè)

      漏洞都有一定的觸發(fā)條件,其攻擊過程就是構(gòu)造外部輸入使之滿足觸發(fā)條件,針對(duì)棧溢出漏洞的攻擊觸發(fā)條件就是要注入超過系統(tǒng)邏輯計(jì)劃存儲(chǔ)的數(shù)據(jù)長(zhǎng)度。根據(jù)漏洞的攻擊特性系統(tǒng)會(huì)建立一個(gè)特征信息庫(kù)并動(dòng)態(tài)更新,當(dāng)程序執(zhí)行過程中系統(tǒng)會(huì)針對(duì)該信息庫(kù)進(jìn)行網(wǎng)絡(luò)流量檢測(cè),當(dāng)發(fā)現(xiàn)有類似特征代碼就會(huì)及時(shí)采取有效措施或阻止,避免發(fā)生棧溢出漏洞攻擊。

      (2)攻擊特征檢測(cè)

      漏洞需要被攻擊者發(fā)現(xiàn)并利用才能被安全機(jī)構(gòu)通過特征進(jìn)行檢測(cè),這需要觸發(fā)條件或可能經(jīng)過很長(zhǎng)時(shí)間才能被發(fā)現(xiàn)。為了及時(shí)防御該類溢出攻擊,可以根據(jù)攻擊的特點(diǎn)進(jìn)行有針對(duì)性的防御。

      棧溢出注入數(shù)據(jù)的長(zhǎng)度與內(nèi)容隨著漏洞的不同而有所差異,但攻擊者攻擊時(shí)所使用的跳轉(zhuǎn)地址卻是常用或者比較固定易用的一些地址。由于不同平臺(tái)下的shellcode一般都會(huì)重復(fù)利用。所以棧溢出攻擊手法會(huì)具有一定的特征,通過提取這些頻繁出現(xiàn)的特征對(duì)防御設(shè)備的攻擊特征庫(kù)及時(shí)更新,可以有效阻止棧溢出攻擊發(fā)生。

      (3)虛擬檢測(cè)技術(shù)

      防御設(shè)備最理想的情況是可以虛擬出一個(gè)除了數(shù)據(jù)不同其他均相同的虛擬機(jī),通過在虛擬系統(tǒng)中插入檢測(cè)點(diǎn),檢測(cè)系統(tǒng)某一進(jìn)程完成后的現(xiàn)場(chǎng)跟蹤進(jìn)程的運(yùn)行狀態(tài)。如果進(jìn)程的操作沒有異常,后臺(tái)再把操作重定向到真實(shí)的進(jìn)程去處理,把真實(shí)數(shù)據(jù)返回給用戶,否則可以阻止其對(duì)真實(shí)系統(tǒng)的訪問。

      4 結(jié)論(Conclusion)

      計(jì)算機(jī)網(wǎng)絡(luò)攻擊幾乎每時(shí)每刻都會(huì)發(fā)生,攻擊的方式變化多樣且會(huì)隨著防御技術(shù)的變化而不斷變化,所以對(duì)網(wǎng)絡(luò)攻擊的防御是個(gè)長(zhǎng)期的持久戰(zhàn)。本文提出的攻擊原理和防御技術(shù)能有效地阻止大部分棧溢出攻擊,但攻擊技術(shù)在不斷地發(fā)展,我們還需要根據(jù)新的攻擊技術(shù)研究設(shè)計(jì)更有效的防御技術(shù)。

      參考文獻(xiàn)(References)

      [1] Nashimoto S,et al.Buffer overflow attack with multiple fault injection and a proven countermeasure[J].Journal of Cryptographic Engineering,2016,7(1):1-12.

      [2] Sui Y,et al.Eliminating Redundant Bounds Checks in Dynamic Buffer Overflow Detection Using Weakest Preconditions[J].IEEE Transactions on Reliability,2016,65(4):1682-1699.

      [3] Wang X,et al.A Differential Approach to Undefined Behavior Detection[J].Acm Transactions on Computer Systems,2015,

      33(1):1.

      [4] 肖蕾,劉克江.一種微型嵌入式系統(tǒng)動(dòng)態(tài)內(nèi)存分區(qū)管理機(jī)制的研究[J].軟件工程,2016,19(4):59-60.

      [5] 崔寶江,等.基于污點(diǎn)信息的函數(shù)內(nèi)存模糊測(cè)試技術(shù)研究[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2016(1):7-13.

      [6] 彭建山,等.基于指針時(shí)空分析的軟件異??衫眯耘卸╗J].計(jì)算機(jī)應(yīng)用研究,2016,33(5):1504-1508.

      [7] 謝汶兵,等.基于備份控制流信息的緩沖區(qū)溢出監(jiān)測(cè)技術(shù)[J].計(jì)算機(jī)工程與應(yīng)用,2016,52(11):101-107.

      [8] Jaiswal S,Gupta D.Security engineering methods-in-depth analysis[J].International Journal of Information & Computer Security,2017,9(3):180.

      [9] Howard M,Lipner S.The security development lifecycle:SDL,a process for developing demonstrably more secure software[J].Datenschutz und Datensicherheit-DuD,2015,34(3):135-137.

      作者簡(jiǎn)介:

      李云飛(1974-),男,博士,副教授.研究領(lǐng)域:信息安全,嵌入式系統(tǒng),模式識(shí)別.

      陳洪相(1974-),男,本科,高級(jí)教師.研究領(lǐng)域:計(jì)算機(jī)應(yīng)用,軟件開發(fā).endprint

      猜你喜歡
      堆棧安全漏洞內(nèi)存
      外部高速緩存與非易失內(nèi)存結(jié)合的混合內(nèi)存體系結(jié)構(gòu)特性評(píng)測(cè)
      “春夏秋冬”的內(nèi)存
      安全漏洞太大亞馬遜、沃爾瑪和Target緊急下架這種玩具
      嵌入式軟件堆棧溢出的動(dòng)態(tài)檢測(cè)方案設(shè)計(jì)*
      基于堆棧自編碼降維的武器裝備體系效能預(yù)測(cè)
      基于安全漏洞掃描的校園網(wǎng)告警系統(tǒng)的開發(fā)與設(shè)計(jì)
      安全漏洞Shellshock簡(jiǎn)介
      基于內(nèi)存的地理信息訪問技術(shù)
      一種用于分析MCS-51目標(biāo)碼堆棧深度的方法
      NSFOCUS 2010年2月之十大安全漏洞
      特克斯县| 汽车| 江孜县| 宿迁市| 吐鲁番市| 涟水县| 交城县| 双鸭山市| 囊谦县| 疏勒县| 资溪县| 甘泉县| 寻乌县| 叶城县| 扬州市| 延川县| 报价| 扶风县| 麻栗坡县| 庆安县| 四平市| 天等县| 墨竹工卡县| 和田县| 贵港市| 武穴市| 元阳县| 如皋市| 新邵县| 长治市| 余庆县| 云阳县| 曲阜市| 开远市| 阿拉善右旗| 屯昌县| 普安县| 浦东新区| 莎车县| 公安县| 建平县|