專利名稱:一種基于動態污點分析進行消息語義解析的方法
一種基于動態污點分析進行消息語義解析的方法技術領域
本發明針對網絡交互產生的消息進行語義解析,通過分析軟件執行過程中的函數調用以及污點在軟件執行過程中的傳播過程,獲取用于描述消息語義的信息,可以應用于軟件的網絡交互信息提取和分析。
背景技術:
隨著互聯網的日益推廣和廣泛應用,計算機用戶通過互聯網進行數據交互愈加頻繁。互聯網在便利用戶進行數據交互的同時,也承擔著交互數據帶來的潛在的威脅。目前, 互聯網已經成為了黑客進行病毒傳播的主要途徑。在數據交互的同時植入病毒信息成為了當前黑客進行病毒擴散的重要手段。軟件通過互聯網進行數據交互時,可能攜帶了一定量的病毒信息,而這些信息對于用戶而言是隱性的。病毒就是通過這些隱性的方法,進入用戶計算機系統從而對計算機造成破壞。因此,對于消息語義進行解析以獲取消息語義格式成為了分析互聯網環境,保障主機安全的一種重要方法。在軍事應用方面,解析網絡消息語義成為了保護軍事信息安全,分析對方信息系統的關鍵技術之一。
動態污點分析(Dynamic Taint Analysis, DTA)是動態分析中一個細化的技術。 動態污點分析是指在軟件運行時,跟蹤軟件對數據的處理,并記錄處理過程中數據在內存中的傳播。目前,動態污點分析已經廣泛地應用于軟件未知漏洞檢測,惡意軟件分析,測試用例生成等。污點分析的目標主要是跟蹤目標數據同源數據的關系,分析并判斷目標數據是否同源數據有相關。動態污點分析主要由污點源引入、污點源傳播以及污點源確認三個部分組成。每一個部分的具體內容如下。
污點源引入定義了需要跟蹤并分析的輸入數據,即源數據。物理內存,CPU寄存器,硬盤以及網絡接口緩沖區等屬于內部空間,其中的任何區域都可以被設置成為污點源。 鍵盤輸入、鼠標點擊等屬于外部輸入,這些輸入也可以被設置為污點源。對于被設置為污點源的區域,DTA將會給污點源一個特定的標識,用來表征這塊區域已經被污染(tainted)。
污點傳播過程在污點源引入之后,隨著程序執行的不斷深入,污點數據作為輸入參數將會參與各種運算,此時運算得到的輸出結果就會同輸入參數產生依賴關系,這種依賴關系就被認為是污點的傳播。被污點傳播到的輸出參數被認為是新的污點,其污點標識同輸入參數的污點標識相同。
污點確認主要針對目標數據進行,用于分析目標數據同源數據的關系。隨著程序的運行,污點傳播逐漸深入,污點數據不斷增多。此時,對于目標數據的污點確認成為了動態污點分析的最后一個流程。污點確認的范圍很廣,任何一個內存變量或者寄存器都可以進行污點確認。
目前對于消息格式的解析技術也是互聯網中的研究熱點。但是目前的消息解析重點對于消息的內容進行提取,而不是對消息中每一個字段的語義進行分析。僅獲取消息的內容是不夠的,例如,病毒通過互聯網進行傳播時,會將自身可執行文件嵌入發送消息中, 對于消息內容的提取而言,僅僅知道了發送消息中每一個字節的內容,但是并不知道這塊內容的具體含義。因此,在對于消息進行解析時,對于消息每一個字段的語義提取是分析消息構成,甚至分析軟件網絡交互動機的關鍵。發明內容
本發明的目的在于利用動態污點分析的技術方法,對軟件在網絡交互中產生的消息進行語義提取,提高對于軟件的分析能力。本發明分別于發送消息和接收消息的語義解析采用不同方法加以實現。
為實現本發明的目的,采用的技術方案包括以下步驟
第一步,設置隔離環境。隔離環境由虛擬操作系統,虛擬機監視器以及必要的網絡環境組成。虛擬操作系統為軟件提供了運行的平臺,虛擬機監視器用于監視虛擬操作系統中的軟件,并完成同外部分析的交互。必要的網絡環境用于觸發軟件的網絡行為,保證在分析過程中軟件能夠正確產生消息。隔離環境的設置方法是
1. 1在宿主操作系統中安裝虛擬機監視器。虛擬機監視器必須具備對整個虛擬環境的監控能力。目前常用的虛擬機監視器由QEMU,TEMU等,這些工具提供了基于硬件層的虛擬環境模擬,能搭載多種虛擬操作系統。在正確安裝虛擬機監視器后,利用虛擬機監視器開啟虛擬操作系統,開啟的虛擬操作系統必須滿足軟件對于操作系統的要求。
1.2在隔離環境中建立網絡互聯。建立虛擬操作系統同外部的網絡互聯,保證雙方可以通過網絡進行通信。
第二步,利用動態分析,監控軟件的函數調用行為。監控方法如下
2. 1在隔離環境中運行軟件,利用虛擬機監視器監視軟件執行的每一條指令,利用指令提供的信息獲取軟件的函數調用行為。獲取函數調用行為的具體過程為
2. 1. 1虛擬機監視器監聽軟件運行過程中執行的call指令;
2. 1. 2提取call指令的參數,將call指令的參數同API函數或者系統函數在內存中的入口地址進行匹配;
2. 1.3根據匹配結果判斷軟件時候調用了某個外部函數,如果匹配結果相同,則說明軟件通過call指令調用了相應的外部函數。
2. 2利用劫持機制在軟件調用外部函數的時刻植入監控代碼。其中監控代碼是利用虛擬機監視器提供的編程接口編寫的用于完成監控功能的代碼。通常開源的虛擬機監視器提供了一定的編程接口,用戶可以利用接口選擇暫停虛擬操作系統,轉而執行自身代碼。 監控代碼用于獲取函數的參數和返回值信息。監控代碼的植入具體分為下面兩個部分
2. 2. 1在確認軟件利用call指令調用外部函數時,虛擬機監視器暫停虛擬操作系統,轉而執行獲取輸入參數的監控代碼。暫停的虛擬操作系統中的所有狀態都可以通過虛擬機監視器獲取。監控代碼利用CPU中的寄存器信息和內存信息獲取函數的輸入參數。在 32位x86處理器下,虛擬操作系統利用ESP寄存器指向的棧空間存儲當前函數的參數信息。 在輸入參數獲取完畢后,恢復虛擬操作系統,虛擬操作系統開始執行函數;
2. 2. 2在虛擬操作系統函數執行完畢后,虛擬機監視器暫停虛擬操作系統,開始執行獲取輸出參數和返回值的監控代碼。輸入參數的獲取同2. 2. 1中的輸入參數獲取方法一致。在32位x86處理器下,返回值可以通過EAX寄存器正確獲取。返回值可用于判斷軟件對函數的調用行為是否成功。
第三步,利用動態污點分析進行污點源設置,明確污點分析的源數據。在虛擬機監視器對運行中的軟件進行監控的同時,還要利用動態污點分析技術觀察污點源在內存中的流動。污點源的選取具體包括
3. 1對于接收消息而言,在軟件完成消息接收后,將整個接收緩沖區設置為污點源,對于接收緩沖區的設置如下
3. 1. 1在軟件執行完接收函數后,利用監控代碼,提取接收函數的參數,通過參數獲取接收緩沖區在內存中的位置和區間;
3. 1. 2將接收緩沖區的每一個字節都賦予一個確定的標識,這些標識用于區分不同的源數據。根據不同的虛擬機監視器實現的標識是不相同的,在TEMU虛擬機監視器中, 利用其提供的編程接口,使用32位二進制用于表征標識。
3. 2對于發送消息而言,污點源的選取在軟件調用發送函數之前就必須完成。對于發送消息相關污點源的選取如下
3. 2. 1選定函數中具有確定語義的參數,參數的語義由參數本身所包含的內容決定。許多函數的參數具有明確的語義,可以用于表征某一塊數據的語義信息,因此需要從函數中挑選出具有明確語義的參數;
3. 2. 2當軟件調用函數時,分析函數的參數是否攜帶確定語義;
3. 2. 3若參數語義明確,則將參數在內存或者寄存器中的數據設置為污點源,具體的設置方法同3. 1.2相同;
3. 2. 4所有的輸入參數、輸出參數以及返回值均可作為污點源被成功設置。
第四步,觀察并記錄污點傳播過程。對于接收消息和發送消息而言,觀察并記錄污點傳播過程的方法是相同的。方法如下
4. 1動態污點分析通過分析轉移指令,DMA操作,算術操作以及查表指令等完成對污點的傳播。對于污點傳播到的區域,動態污點分析賦予該區域污點標識,污點標識同污點源的標識相同;
4. 2軟件在執行過程中伴隨著多次的函數調用,在每次函數調用時,判斷函數的參數是否已經被污染;
4. 3對于未被污染的參數,不做任何操作;
4. 4對于被污染的參數,利用污點標識,查找到對應污點源,并將被污染的參數信息,函數信息及其對應的污點標識信息做成結點;
4. 5將具有相同污點標識的結點根據函數的調用順序記錄下來,對于有多個污點標識的結點而言,在記錄時需要將結點按照污點標識分裂成多個具有單一標識的結點;
4. 6被污染的參數,將作為新的污點源參與到動態污點分析中。
第五步,對目標數據進行污點確認。具體包括
5. 1對于接收消息而言,在將接收緩沖區設置污點源并觀察污點在內存中的傳播后,查看每一個字節的污點源對應的結點,如果某一個結點具有足夠的語義來表征污點源, 則將結點的賦予該污點源;
5. 2對于發送消息而言,目標數據為發送緩沖區的數據。發送消息的污點確認具體如下
5. 2. 1在軟件調用發送函數之前,污點源設置和污點傳播過程必須執行完畢;
5. 2. 2當軟件調用發送函數后,利用監控代碼獲取函數的參數,并根據參數鎖定發送緩沖區的位置和區間;
5. 2. 3判斷發送緩沖區中每一個字節是否被污染;
5. 2. 4利用發送消息語義解析算法進行污點確認。發送消息語義解析算法對發送緩沖區的每一個字節進行掃描,分別對未污染字節、單污源字節以及多污源字節提出了語義確認方法。對于未污染的字節,算法暫時無法對其進行語義解析。對于僅有一個污點源標識的字節,即單污源字節,利用該標識找到污點源,再用污點源所攜帶的語義信息來表征該字節。對于含有多個污點源標識的字節,首先提取該字節的所有污點源以及對應的2級鏈表,對所有包含的污點源以及2級鏈表中的每一個結點的語義進行提取,將擁有相同語義的結點歸為一類。歸類完畢后,提取擁有最多結點數的類所攜帶的語義信息,將該語義賦給被污染的字節,作為該字節的語義。如果有若干語義擁有相同的最多結點數,則利用就近原則來確定被污染字節的語義。即從這些結點中找出離sendO函數調用時刻最接近的函數,將該函數擁有的參數語義賦給被污染字節,作為該字節的語義。
與現有技術相比,本發明可以達到的技術效果是
本發明通過分析軟件執行過程中的函數調用行為,利用動態污點分析,監控函數參數在內存中的流動情況。利用函數中參數攜帶的語義,對消息的語義進行解析,從而了解消息每一個字段的語義。
圖1是本發明的總體流程圖2是接收消息語義解析圖3是發送消息語義解析圖4是發送消息語義解析算法描述圖5是監控代碼植入圖6是FTP示例實驗環境圖。
具體實施方式
圖1是本發明的總體流程圖;本發明的總體流程分為設置隔離環境、監控函數調用行為以及對于消息的語義解析。設置隔離環境還具體分為選擇隔離環境、選取虛擬機監視器以及搭載虛擬操作系統3個方面。監控函數調用行為分為監控call指令、獲取函數調用行為以及利用劫持機制獲取函數參數;在流程的最后過程則是根據接收消息和發送消息進行消息語義解析。
圖2是接收消息語義解析圖;接收消息將接收緩沖區設置為污點源并觀察這些污點源在內存中流動情況。在軟件執行的過程中,判斷某些函數的參數是否被污點源污染,若被污點源污染,則作為中間結點記錄下來。最后記錄的結點作為檢查點,分析中間結點以及檢查點是否具有足夠的語義來表征污點源,若有,則將污點源賦予相應語義。
圖3是發送消息語義解析圖;發送消息語義解析將函數的參數設置為污點源,觀察參數在內存中的流動,記錄下流動過程中到達的中間結點,并在軟件調用發送函數后,將發送緩沖區設置為檢查點。利用發送消息語義解析算法將中間結點和污點源的語義信息賦予對應的發送緩沖區數據。
圖4是發送消息語義解析算法描述圖;該算法明確了發送消息語義解析的具體方法。方法步驟如下
(1)掃描發送緩沖區的每一個字節;
(2)判斷字節是否被污點源污染;
(3)若字節被污點源污染且僅含有一個污點標識,則利用該污點標識找到對應的污點源,將污點源的語義賦予該字節;
(4)若字節被多個污點源污染,則將這些污點源記錄下來,組成一個集合;
(5)將污點源傳播過程中記錄的所有的中間結點也添入集合中;
(6)利用語義的不同將集合劃分成多個子集合;
(7)選取子集合中擁有最多元素的集合,將該集合的語義賦予字節;
(8)若同時擁有多個具有最多元素的子集合,則從這些集合中找到軟件最晚調用的結點(結點中具有函數信息,最晚調用指離發送函數調用時間最接近),將結點的語義賦予字節。
圖5是監控代碼植入圖。圖5分別描繪了獲取輸入參數的劫持機制和獲取輸出參數的劫持機制。劫持機制利用虛擬機監視器暫停虛擬操作系統,從而執行監控代碼。根據參數類型的不同,劫持機制的實現具體如下
(1)對于輸入參數而言,監控代碼在call指令和調用函數之間進行。當虛擬機監視器監測到軟件執行call指令調用函數的時候,系統將call指令所要調用的函數的入口地址Al修改為監控代碼的入口地址A3,而把原先函數的入口地址A3作為監控代碼執行完畢后的下一條指令地址。整個過程類似一個自陷過程。在執行監控代碼的過程中,虛擬操作系統處于暫停的狀態;
(2)對于輸出參數而言,當函數執行完畢返回時,將下一條指令的入口地址A2修改為監控代碼的入口地址A4,將地址A2作為監控代碼執行完畢后的后續指令。在監控代碼中,獲取輸出參數的方法同輸入參數的一樣,均是通過ESP寄存器和一定偏移量得到。當函數執行完畢時,函數的返回值是暫存在EAX寄存器中的,因此返回值的獲取相對簡單,只通過訪問EAX寄存器就可以獲取當前函數的返回值。
圖6是FTP示例實驗環境圖。
下面結合上述附圖,利用FTP程序更詳細地介紹本發明的實施。
第一步,設置隔離環境。圖6為整個示例環境。隔離環境由一個宿主操作系統、虛擬機監視器和虛擬操作系統組成。宿主機為HP服務器GG內存,單核主頻2. 8GHz的4核處理器),宿主操作系統為Wxmtu 9. 04。宿主操作系統使用bftp-2. 9軟件開啟FTP服務。 虛擬機監視器選取TEMU,在TEMU虛擬環境中搭載Windows Xp sp3操作系統作為虛擬操作系統,TEMU提供的虛擬硬件環境為512M內存,x86系列CPU。虛擬操作系統同宿主操作系統具備基本的網絡交互能力。
第二步,利用動態分析,監控軟件的函數調用行為。
(1)利用TEMU虛擬環境提供的編程接口完成對監控代碼的編寫,監控代碼主要功能是利用CPU提供的寄存器對函數的參數信息進行提取。在虛擬操作系統中運行FTP軟件, 并開啟虛擬機監視器的監聽功能;
(2)虛擬機監視器監聽軟件執行的每一條指令,當軟件執行call指令時,記錄下 call指令攜帶的參數。將call指令攜帶的參數同API函數的入口地址進行比較,若相同則表明軟件調用了 API函數;
(3)植入監控代碼。即在函數的入口處和返回處,虛擬機監視器暫停虛擬機,執行監控代碼,獲取函數的參數,實現方法如圖5 ;
第三步,利用動態污點分析進行污點源設置,明確污點分析的源數據。
(1)對于接收消息而言,污點源為接收緩沖區,緩沖區的每一個字節都有唯一的污點標識。接收緩沖區的內存地址以及緩沖區大小可以利用recvO函數的參數2和參數3 獲得。對于面向UDP的連接而言,軟件調用的是recvfromO函數。FTP程序利用recvO函數接收從FTP服務器發送過來的數據;
(2)對于發送消息而言,污點源為函數的參數,被設置為污點源的參數必須具備足夠的語義,為每一個字節的污點源都賦予唯一的污點標識。例如getsocknameO函數的第二個參數是一個結構指針,指向了一個sockaddr結構,sockaddr結構中存放的是主機的IP 地址和為指定的套接字開放的端口號,具備足夠的語義。FTP程序利用sendO函數將消息發送給FTP服務器;
(3)在監控代碼中將需要的數據設置為污點源,污點源的位置均可以通過函數的參數獲取。將每一個字節的污點源做成結點保存在鏈表Taint_SoUrce中,鏈表中的每一個結點包含了污點源在內存中的地址,污點標識等信息。污點源的每一個結點還包含一個 2級鏈表TairHRecord,用于保存該污點字節污點傳播過程,2級鏈表的每一個結點記錄的被污點源污染的函數信息以及具體的參數信息。
第四步,觀察并記錄污點源傳播過程。
TEMU虛擬環境提供了在指令層面進行動態污點分析的傳播保障,因此只需要觀察調用函數的參數是否被污染。在監控代碼中添入對函數每一個參數的觀察過程,判斷監控代碼獲取的參數是否被污點源污染。若判斷出某一個參數被污染時,則根據參數的污點標識,找到相應的污點源,在污點源的2級鏈表中添入相應的結點用于表示污點源傳播的途徑。
第五步,對目標數據進行污點確認。
(1)對于接收消息而言,當FTP程序接收完數據后,系統開始觀察污點源(即接收緩沖區)在軟件執行過程中的傳播。利用監控代碼對函數的參數進行分析,判斷參數是否被這些污點源污染,如果被污點源污染且該參數具備足夠的語義,則利用該參數的語義來表征污點源字節;
(2)對于發送消息而言,在軟件執行過程中將函數的參數設置為污點源,判斷污點源在軟件執行過程中的傳播。當FTP程序調用sendO函數發送消息時,利用監控代碼對發送緩沖區中的每一個字節進行確認根據圖4的算法對字節進行確認;
(3)通過上述確認過程,可以描繪接收緩沖區和發送緩沖區中字節的語義信息。
權利要求
1.一種基于動態污點分析進行消息語義解析的方法,其特征在于,包括以下步驟1)設置隔離環境;2)利用動態分析,監控軟件的函數調用行為;3)利用動態污點分析進行污點源設置,明確污點分析的源數據;4)觀察并記錄污點傳播過程;5)對目標數據進行污點確認。
2.2、根據權利要求1所述的一種基于動態污點分析進行消息語義解析的方法,其特征在于,隔離環境的設置方法是(1. 1)在宿主操作系統中安裝虛擬機監視器; (1.2)在隔離環境中建立網絡互聯。
3.根據權利要求1所述的一種基于動態污點分析進行消息語義解析的方法,其特征在于,監控方法如下(2. 1)在隔離環境中運行軟件,利用虛擬機監視器監視軟件執行的每一條指令,利用指令提供的信息獲取軟件的函數調用行為; 獲取函數調用行為的具體過程為(2. 1. 1)虛擬機監視器監聽軟件運行過程中執行的call指令; (2. 1. 2)提取call指令的參數,將call指令的參數同API函數或者系統函數在內存中的入口地址進行匹配;(2. 1.3)根據匹配結果判斷軟件時候調用了某個外部函數,如果匹配結果相同,則說明軟件通過call指令調用了相應的外部函數;(2. 2)利用劫持機制在軟件調用外部函數的時刻植入監控代碼,其中監控代碼是利用虛擬機監視器提供的編程接口編寫的用于完成監控功能的代碼; 監控代碼的植入具體分為下面兩個部分(2. 2. 1)在確認軟件利用call指令調用外部函數時,虛擬機監視器暫停虛擬操作系統,轉而執行獲取輸入參數的監控代碼;(2. 2. 2)在虛擬操作系統函數執行完畢后,虛擬機監視器暫停虛擬操作系統,開始執行獲取輸出參數和返回值的監控代碼。
4.根據權利要求1所述的一種基于動態污點分析進行消息語義解析的方法,其特征在于,污點源的選取具體包括(3. 1)對于接收消息而言,在軟件完成消息接收后,將整個接收緩沖區設置為污點源; 對于接收緩沖區的設置如下(3. 1. 1)在軟件執行完接收函數后,利用監控代碼,提取接收函數的參數,通過參數獲取接收緩沖區在內存中的位置和區間;(3. 1. 2)將接收緩沖區的每一個字節都賦予一個確定的標識,這些標識用于區分不同的源數據;(3. 2)對于發送消息而言,污點源的選取在軟件調用發送函數之前就必須完成; 對于發送消息相關污點源的選取如下(3. 2. 1)選定函數中具有確定語義的參數;許多函數的參數具有明確的語義,可以用于表征某一塊數據的語義信息,因此需要從函數中挑選出具有明確語義的參數;(3. 2. 2)當軟件調用函數時,分析函數的參數是否攜帶確定語義;(3. 2. 3)若參數語義明確,則將參數在內存或者寄存器中的數據設置為污點源;(3. 2. 4)所有的輸入參數、輸出參數以及返回值均可作為污點源被成功設置。
5.根據權利要求1所述的一種基于動態污點分析進行消息語義解析的方法,其特征在于,觀察并記錄污點傳播過程的方法如下(4. 1)動態污點分析通過分析轉移指令,DMA操作,算術操作以及查表指令完成對污點的傳播;(4. 2)軟件在執行過程中伴隨著多次的函數調用,在每次函數調用時,判斷函數的參數是否已經被污染;(4. 3)對于未被污染的參數,不做任何操作;(4. 4)對于被污染的參數,利用污點標識,查找到對應污點源,并將被污染的參數信息, 函數信息及其對應的污點標識信息做成結點;(4. 5)將具有相同污點標識的結點根據函數的調用順序記錄下來,對于有多個污點標識的結點而言,在記錄時需要將結點按照污點標識分裂成多個具有單一標識的結點; (4. 6)被污染的參數,將作為新的污點源參與到動態污點分析中。
6.根據權利要求1所述的一種基于動態污點分析進行消息語義解析的方法,其特征在于,對目標數據進行污點確認,具體包括(5. 1)對于接收消息而言,在將接收緩沖區設置污點源并觀察污點在內存中的傳播后, 查看每一個字節的污點源對應的結點,如果某一個結點具有足夠的語義來表征污點源,則將結點的賦予該污點源;(5. 2)對于發送消息而言,目標數據為發送緩沖區的數據; 發送消息的污點確認具體如下(5. 2. 1)在軟件調用發送函數之前,污點源設置和污點傳播過程必須執行完畢; (5. 2. 2)當軟件調用發送函數后,利用監控代碼獲取函數的參數,并根據參數鎖定發送緩沖區的位置和區間;(5. 2. 3)判斷發送緩沖區中每一個字節是否被污染; (5. 2. 4)利用發送消息語義解析算法進行污點確認。
7.根據權利要求1所述的一種基于動態污點分析進行消息語義解析的方法,其特征在于,發送消息語義解析的具體方法步驟如下(1)掃描發送緩沖區的每一個字節;(2)判斷字節是否被污點源污染;(3)若字節被污點源污染且僅含有一個污點標識,則利用該污點標識找到對應的污點源,將污點源的語義賦予該字節;(4)若字節被多個污點源污染,則將這些污點源記錄下來,組成一個集合;(5)將污點源傳播過程中記錄的所有的中間結點也添入集合中;(6)利用語義的不同將集合劃分成多個子集合;(7)選取子集合中擁有最多元素的集合,將該集合的語義賦予字節;(8)若同時擁有多個具有最多元素的子集合,則從這些集合中找到軟件最晚調用的結點,將結點的語義賦予字節。
全文摘要
本發明公開了一種基于動態污點分析進行消息語義解析的方法。其步驟包括1)設置隔離環境;2)利用動態分析,監控軟件的函數調用行為;3)利用動態污點分析進行污點源設置,明確污點分析的源數據;4)觀察并記錄污點傳播過程;5)對目標數據進行污點確認。本發明方法基于隔離機制,通過動態分析監控軟件的函數調用行為,并在動態分析中進行動態污點分析,觀察污點在軟件調用序列中的傳播過程,利用污點的傳播和函數參數的語義對網絡交互中產生的消息進行語義解析,明確消息中每一個字段的語義。
文檔編號H04L29/06GK102521543SQ20111043700
公開日2012年6月27日 申請日期2011年12月23日 優先權日2011年12月23日
發明者喬林波, 吳逸倫, 唐勇, 張博鋒, 張怡, 賴志權 申請人:中國人民解放軍國防科學技術大學