專利名稱:一種軟件源代碼安全缺陷分析的方法和裝置的制作方法
技術領域:
本發(fā)明涉及源代碼檢測領域,更具體地說,涉及ー種軟件源代碼安全缺陷分析的方法和裝置。
背景技術:
隨著社會信息化的不斷加深,人們不得不開始面對日益突出的信息安全問題。研究表明,相當數(shù)量的安全問題是由于軟件自身的安全漏洞引起的。軟件開發(fā)過程中引入的大量缺陷,是產(chǎn)生軟件漏洞的重要原因之一。不同的軟件缺陷會產(chǎn)生不同的后果,必須區(qū)別對待各類缺陷,分析原因,研究其危 害程度,預防方法等。建立ー個比較完整的缺陷分類信息,對預防和修復軟件安全缺陷具有指導作用。軟件缺陷一般按性質分類,目前已有很多不同的軟件缺陷分類法,但在當前實際審查使用中,這些缺陷分類存在以下弊端(I)專門針對代碼審查階段發(fā)現(xiàn)缺陷的分類較少?,F(xiàn)有的分類法一般包括動態(tài)測試發(fā)現(xiàn)的缺陷類型和文檔缺陷等,而在代碼審查中這些缺陷類型并不是審查關注的重點。(2)有些代碼缺陷分類中的缺陷類型不適應當前代碼審查實情,而ー些新的代碼缺陷類型則沒有被包括。(3)目前源代碼缺陷分類種類繁多,標準不一,各有欠缺。沒有一個專門針對源代碼缺陷的,比較仔細,完善的分類。
發(fā)明內(nèi)容
本發(fā)明要解決的技術問題在于,提供ー種對不同工具檢測獲得的軟件源代碼的缺陷用統(tǒng)一的尺度描述的軟件源代碼安全缺陷分析的方法和裝置。本發(fā)明公開了ー種軟件源代碼安全缺陷分析的方法,包括SI.設定源代碼缺陷類型多個缺陷數(shù)據(jù)組,所述的缺陷數(shù)據(jù)組包括缺陷原因數(shù)據(jù)組、缺陷結果數(shù)據(jù)組、缺陷表現(xiàn)形式數(shù)據(jù)組;S2.調取源代碼并解析缺陷原因、結果、表現(xiàn)形式;S3.判斷所述的缺陷原因、結果、表現(xiàn)形式是否處于所述的缺陷數(shù)據(jù)組中,若是,進入步驟S4,若否,進入步驟S31,將所述的缺陷原因和/或結果和/或表現(xiàn)形式加入到所述的缺陷數(shù)據(jù)組中;S4.生成所述的源代碼原因、結果、表現(xiàn)形式并顯示。在本發(fā)明所述的軟件源代碼安全缺陷分析的方法中,所述的缺陷原因包括內(nèi)因、外因、主客觀原因。在本發(fā)明所述的軟件源代碼安全缺陷分析的方法中,所述的缺陷原因數(shù)據(jù)組,具體是注入缺陷及驗證、應用程序編程接ロ錯誤、訪問控制及密碼失效、資源共享與競爭、異常處理、不安全源碼質量、邊界處理、配置錯誤、惡意代碼。
在本發(fā)明所述的軟件源代碼安全缺陷分析的方法中,所述的缺陷結果數(shù)據(jù)組,具體是緩沖區(qū)溢出、整數(shù)溢出、命令注入、跨站腳本、拒絕服務、路徑操縱、進程控制、資源注入、配置操縱、SQL注入、內(nèi)存溢出。在本發(fā)明所述的軟件源代碼安全缺陷分析的方法中,所述的缺陷表現(xiàn)形式數(shù)據(jù)組,具體是格式化字符串、賦值的目標存儲空間不夠、未使用括號保證操作的優(yōu)先級、嘗試修改常量、引用未初始化的變量。本發(fā)明公開了ー種軟件源代碼安全缺陷分析的裝置,用于實現(xiàn)上述的方法,包括缺陷數(shù)據(jù)組設定單元設定源代碼缺陷類型多個缺陷數(shù)據(jù)組,所述的缺陷數(shù)據(jù)組包括缺陷原因數(shù)據(jù)組、缺陷結果數(shù)據(jù)組、缺陷表現(xiàn)形式數(shù)據(jù)組;
源代碼缺陷解析単元與所述的缺陷數(shù)據(jù)組設定単元相連,用于調取源代碼并解析缺陷原因、結果、表現(xiàn)形式;源代碼缺陷判斷単元與所述的源代碼缺陷解析単元相連,用于判斷所述的缺陷原因、結果、表現(xiàn)形式是否處于所述的缺陷數(shù)據(jù)組中;源代碼缺陷顯示單元與所述的源代碼缺陷判斷単元相連,用于生成所述的源代碼原因、結果、表現(xiàn)形式并顯示。在本發(fā)明所述的軟件源代碼安全缺陷分析的裝置中,所述的缺陷原因包括內(nèi)因、外因、主客觀原因。在本發(fā)明所述的軟件源代碼安全缺陷分析的裝置中,所述的缺陷原因數(shù)據(jù)組,具體是注入缺陷及驗證、應用程序編程接ロ錯誤、訪問控制及密碼失效、資源共享與競爭、異常處理、不安全源碼質量、邊界處理、配置錯誤、惡意代碼。在本發(fā)明所述的軟件源代碼安全缺陷分析的裝置中,所述的缺陷結果數(shù)據(jù)組,具體是緩沖區(qū)溢出、整數(shù)溢出、命令注入、跨站腳本、拒絕服務、路徑操縱、進程控制、資源注入、配置操縱、SQL注入、內(nèi)存溢出。在本發(fā)明所述的軟件源代碼安全缺陷分析的裝置中,所述的缺陷表現(xiàn)形式數(shù)據(jù)組,具體是格式化字符串、賦值的目標存儲空間不夠、未使用括號保證操作的優(yōu)先級、嘗試修改常量、引用未初始化的變量。實施本發(fā)明的一種軟件源代碼安全缺陷分析的方法和裝置,具有以下有益的技術效果I.不同工具檢測的缺陷用統(tǒng)ー的尺度描述,清楚具體,直觀性強;2.源代碼缺陷檢測工具檢測能力的測評標準一致,有利于源代碼缺陷檢測工具的開發(fā)。
圖I是本發(fā)明實施例一種軟件源代碼安全缺陷分析的方法流程圖;圖2為本發(fā)明實施例一種軟件源代碼安全缺陷分析的裝置模塊方框圖。
具體實施例方式為詳細說明本發(fā)明的技術內(nèi)容、構造特征、所實現(xiàn)目的及效果,以下結合實施方式并配合附圖詳予說明。源代碼,也可以稱作為源程序,是指未編譯的文本代碼。是ー系列人類可讀的計算機語目指令。我們可以把它理解成源文代碼,就拿我們當前看到的這個網(wǎng)頁來說吧,其實它是由一大堆的源代碼組成,通過我們的IE (Microsoft Internet Explorer)瀏覽器(或服務器)翻譯成現(xiàn)在我們所看到的這個樣子。源代碼就是用匯編語言和高級語言寫出來的代碼。主要對象是面向開發(fā)者;我們平常使用的應用程序都是經(jīng)過源碼編譯打包以后發(fā)布的,呈現(xiàn)的最后結果是面向使用者,最終客戶的。而隨著互聯(lián)網(wǎng)應用的不斷創(chuàng)新與發(fā)展,信息與網(wǎng)絡安全也面臨著前所未有的嚴峻問題,網(wǎng)絡安全領域所面臨的挑戰(zhàn)日益嚴峻,網(wǎng)絡安全問題也日益被人們重視。通常意義上的網(wǎng)絡安全的最大威脅是程序上的漏洞,程序漏洞檢測主要分為運行時檢測和靜態(tài)分析方 法。幾乎所有的源代碼程序都存在或大或小的缺陷,如何及早發(fā)現(xiàn)缺陷,成為人們經(jīng)常面臨的問題。請參閱圖1,本發(fā)明實施例一種軟件源代碼安全缺陷分析的方法,包括SI.設定源代碼缺陷類型多個缺陷數(shù)據(jù)組,所述的缺陷數(shù)據(jù)組包括缺陷原因數(shù)據(jù)組、缺陷結果數(shù)據(jù)組、缺陷表現(xiàn)形式數(shù)據(jù)組;S2.調取源代碼并解析缺陷原因、結果、表現(xiàn)形式;S3.判斷所述的缺陷原因、結果、表現(xiàn)形式是否處于所述的缺陷數(shù)據(jù)組中,若是,進入步驟S4,若否,進入步驟S31,將所述的缺陷原因和/或結果和/或表現(xiàn)形式加入到所述的缺陷數(shù)據(jù)組中;S4.生成所述的源代碼原因、結果、表現(xiàn)形式并顯示。本發(fā)明的方法中,我們將缺陷原因數(shù)據(jù)組、缺陷結果數(shù)據(jù)組、缺陷表現(xiàn)形式數(shù)據(jù)組看作是“三棵樹”,請參閱下表1,本發(fā)明提出的“三棵樹”缺陷分類法,從三個角度對軟件源代碼缺陷進行分類。第一棵樹缺陷產(chǎn)生的原因(兼顧內(nèi)因、外因和主客觀原因);第ニ棵樹缺陷造成的結果;第三棵樹缺陷的表現(xiàn)形式。其中,按缺陷產(chǎn)生的原因劃分有注入缺陷及驗證、應用程序編程接ロ錯誤、訪問控制及密碼失效、資源共享與競爭、異常處理、不安全源碼質量、邊界處理、配置錯誤、惡意代碼。按缺陷造成的結果分類緩沖區(qū)溢出、整數(shù)溢出、命令注入、跨站腳本、拒絕服務、路徑操縱、進程控制、資源注入、配置操縱、SQL注入、內(nèi)存溢出等。按照表現(xiàn)形式分類格式化字符串、賦值的目標存儲空間不夠、未使用括號保證操作的優(yōu)先級、嘗試修改常量、引用未初始化的變量、使用Class Loader、錯誤的clone()方法、Equals O方法錯誤、多次調用exit O函數(shù)等。表I 三棵樹”式缺陷信息
權利要求
1.一種軟件源代碼安全缺陷分析的方法,其特征在于,包括 51.設定源代碼缺陷類型多個缺陷數(shù)據(jù)組,所述的缺陷數(shù)據(jù)組包括缺陷原因數(shù)據(jù)組、缺陷結果數(shù)據(jù)組、缺陷表現(xiàn)形式數(shù)據(jù)組; 52.調取源代碼并解析缺陷原因、結果、表現(xiàn)形式; 53.判斷所述的缺陷原因、結果、表現(xiàn)形式是否處于所述的缺陷數(shù)據(jù)組中,若是,進入步驟S4,若否,進入步驟S31,將所述的缺陷原因和/或結果和/或表現(xiàn)形式加入到所述的缺陷數(shù)據(jù)組中; 54.生成所述的源代碼原因、結果、表現(xiàn)形式并顯示。
2.如權利要求I所述的軟件源代碼安全缺陷分析的方法,其特征在于,所述的缺陷原因包括內(nèi)因、外因、主客觀原因。
3.如權利要求I所述的軟件源代碼安全缺陷分析的方法,其特征在于,所述的缺陷原因數(shù)據(jù)組,具體是注入缺陷及驗證、應用程序編程接口錯誤、訪問控制及密碼失效、資源共享與競爭、異常處理、不安全源碼質量、邊界處理、配置錯誤、惡意代碼。
4.如權利要求I所述的軟件源代碼安全缺陷分析的方法,其特征在于,所述的缺陷結果數(shù)據(jù)組,具體是緩沖區(qū)溢出、整數(shù)溢出、命令注入、跨站腳本、拒絕服務、路徑操縱、進程控制、資源注入、配置操縱、SQL注入、內(nèi)存溢出。
5.如權利要求I所述的軟件源代碼安全缺陷分析的方法,其特征在于,所述的缺陷表現(xiàn)形式數(shù)據(jù)組,具體是格式化字符串、賦值的目標存儲空間不夠、未使用括號保證操作的優(yōu)先級、嘗試修改常量、引用未初始化的變量。
6.一種軟件源代碼安全缺陷分析的裝置,用于實現(xiàn)權利要求I所述的方法,其特征在于,包括 缺陷數(shù)據(jù)組設定單元設定源代碼缺陷類型多個缺陷數(shù)據(jù)組,所述的缺陷數(shù)據(jù)組包括缺陷原因數(shù)據(jù)組、缺陷結果數(shù)據(jù)組、缺陷表現(xiàn)形式數(shù)據(jù)組; 源代碼缺陷解析單元與所述的缺陷數(shù)據(jù)組設定單元相連,用于調取源代碼并解析缺陷原因、結果、表現(xiàn)形式; 源代碼缺陷判斷單元與所述的源代碼缺陷解析單元相連,用于判斷所述的缺陷原因、結果、表現(xiàn)形式是否處于所述的缺陷數(shù)據(jù)組中; 源代碼缺陷顯示單元與所述的源代碼缺陷判斷單元相連,用于生成所述的源代碼原因、結果、表現(xiàn)形式并顯示。
7.如權利要求6所述的軟件源代碼安全缺陷分析的裝置,其特征在于,所述的缺陷原因包括內(nèi)因、外因、主客觀原因。
8.如權利要求6所述的軟件源代碼安全缺陷分析的裝置,其特征在于,所述的缺陷原因數(shù)據(jù)組,具體是注入缺陷及驗證、應用程序編程接口錯誤、訪問控制及密碼失效、資源共享與競爭、異常處理、不安全源碼質量、邊界處理、配置錯誤、惡意代碼。
9.如權利要求6所述的軟件源代碼安全缺陷分析的裝置,其特征在于,所述的缺陷結果數(shù)據(jù)組,具體是緩沖區(qū)溢出、整數(shù)溢出、命令注入、跨站腳本、拒絕服務、路徑操縱、進程控制、資源注入、配置操縱、SQL注入、內(nèi)存溢出。
10.如權利要求6所述的軟件源代碼安全缺陷分析的裝置,其特征在于,所述的缺陷表現(xiàn)形式數(shù)據(jù)組,具體是格式化字符串、賦值的目標存儲空間不夠、未使用括號保證操作的優(yōu)先級、嘗試修改常量、引用未初始化的變量 。
全文摘要
本發(fā)明公開了一種軟件源代碼安全缺陷分析的方法,包括S1.設定源代碼缺陷類型多個缺陷數(shù)據(jù)組;S2.調取源代碼并解析缺陷原因、結果、表現(xiàn)形式;S3.判斷所述的缺陷原因、結果、表現(xiàn)形式是否處于所述的缺陷數(shù)據(jù)組中,若是,進入步驟S4,若否,進入步驟S31,將所述的缺陷原因和/或結果和/或表現(xiàn)形式加入到所述的缺陷數(shù)據(jù)組中;S4.生成所述的源代碼原因、結果、表現(xiàn)形式并顯示。本發(fā)明還公開了一種軟件源代碼安全缺陷分析的裝置。本發(fā)明使不同工具檢測的缺陷用統(tǒng)一的尺度描述,清楚具體,直觀性強。
文檔編號G06F11/36GK102750220SQ201110460378
公開日2012年10月24日 申請日期2011年12月31日 優(yōu)先權日2011年12月31日
發(fā)明者吳世忠, 張*, 王眉林, 童小剛, 郭恒, 郭濤 申請人:中國信息安全測評中心