表讀卡器模塊,S302代表卡上模塊,S303代表讀卡器,S304代表Java卡。讀卡器模塊位于讀卡器中,卡上模塊位于Java卡中。
[0035]讀卡器模塊向卡上模塊發(fā)送攻擊請求,使卡上模塊嘗試訪問卡上任意內(nèi)存區(qū)域,并根據(jù)卡上裝置返回的響應(yīng)判斷是否存在防火墻漏洞,并且針對卡上某對象ID,查找卡上可以非法訪問數(shù)據(jù)的范圍,以確定漏洞大小。
[0036]卡上模塊,通過反匯編的方式修改結(jié)構(gòu)或運行流程后,以嘗試訪問卡上任意內(nèi)存。
[0037]圖4是本發(fā)明提供的漏洞檢測裝置的較佳實施例的卡端模塊生成示意圖。如圖4所示,在步驟S401中,生成class文件。class文件中的裝置按步驟S101-S106運行。
[0038]在步驟S402中,反編譯步驟S401中生成的class文件,生成對應(yīng)的jca匯編文件。
[0039]在步驟S403中,修改步驟S402中生成的jca文件。修改方法為:在步驟S102和步驟S103之間,插入步驟S108。步驟S108,即將步驟SlOl中得到的對象ID賦給數(shù)組對象。
[0040]在步驟S404中,重新編譯步驟S403中修改后的jca文件,生成對應(yīng)的cap文件。
[0041]在步驟S405中,在卡端模塊中安裝并選擇步驟S404中生成的cap文件。
[0042]在步驟S406中,開始檢測。
[0043]以上雖然結(jié)合附圖描述了本發(fā)明的實施方式,但是本領(lǐng)域內(nèi)熟練的技術(shù)人員可以在所附權(quán)利要求的范圍內(nèi)做出各種變形或修改。
【主權(quán)項】
1.一種Java卡防火墻漏洞的檢測方法,其特征在于,包括以下步驟: 通過反匯編的方式,修改Java卡的結(jié)構(gòu)或運行流程,使卡上任意內(nèi)存都可以嘗試被訪問; 當發(fā)現(xiàn)可以訪問Java卡中的非法數(shù)據(jù)的話,則判定當前卡存在防火墻漏洞; 針對卡上某對象ID,若發(fā)現(xiàn)存在防火墻漏洞,則繼續(xù)查找卡上可以非法訪問數(shù)據(jù)的范圍,以確定漏洞大小。2.根據(jù)權(quán)利要求1所述的Java卡防火墻漏洞的檢測方法,其特征在于通過反匯編的方式修改jca文件,將讀卡器請求的對象ID賦值給數(shù)組對象,以達到修改Java卡的結(jié)構(gòu)或運行流程的目的。3.根據(jù)權(quán)利要求2所述的Java卡防火墻漏洞的檢測方法,其特征在于在修改Java卡的結(jié)構(gòu)或運行流程之后,所述方法還包括以下步驟: 將當前的對象ID設(shè)置為起始的對象ID ;讀卡器將當前的對象ID和數(shù)據(jù)長度L置于請求的數(shù)據(jù)域中,并發(fā)送該請求至Java卡;讀卡器接收從Java卡返回的響應(yīng),并判斷是否從Java卡中讀取到非法數(shù)據(jù),若讀取到非法數(shù)據(jù),則判定攻擊成功,該Java卡存在防火墻漏洞;否則繼續(xù)判斷對象ID是否讀取完,若沒有讀取完,則對象ID增加1,重新發(fā)送請求至Java卡;若對象ID讀取完,表明攻擊失敗,該Java卡不存在防火墻漏洞。4.根據(jù)權(quán)利要求3所述的Java卡防火墻漏洞的檢測方法,其特征在于如果該Java卡在某對象ID下存在防火墻漏洞,則增加數(shù)據(jù)長度,繼續(xù)判斷是否能攻擊成功,并記錄能攻擊成功的最大數(shù)據(jù)長度值,以表示該對象ID下的漏洞大小。5.根據(jù)權(quán)利要求4所述的Java卡防火墻漏洞的檢測方法,其特征在于在修改Java卡的結(jié)構(gòu)或運行流程之前,所述方法還包括以下步驟: Java卡接收讀卡器發(fā)來的請求,讀取請求數(shù)據(jù)中的對象ID (short類型)和數(shù)據(jù)長度L ; 初始化一個byte類型的數(shù)組; 判斷該數(shù)組對象是否擁有合法的對象ID,若擁有合法的對象ID,則向讀卡器返回讀取非法數(shù)據(jù)失敗的響應(yīng);否則嘗試讀取數(shù)組對象中長度為L的數(shù)據(jù); 如果讀取成功,則向讀卡器返回讀到的長度為L的數(shù)據(jù);否則向讀卡器返回讀取非法數(shù)據(jù)失敗的響應(yīng),并且讀卡器記錄在該對象ID下,漏洞的大小為L-1 byte。6.一種Java卡防火墻漏洞的檢測裝置,其特征在于包括: 卡上模塊,通過反匯編的方式修改其結(jié)構(gòu)或運行流程后,用于嘗試讀取Java卡上任意內(nèi)存區(qū)域; 讀卡器模塊,用于發(fā)送讀取卡上任意內(nèi)存區(qū)域的請求,并根據(jù)卡上模塊返回的響應(yīng)來判斷是否存在防火墻漏洞。7.根據(jù)權(quán)利要求6所述的Java卡防火墻漏洞的檢測裝置,其特征在于所述卡上模塊,還用于通過反匯編的方式修改jca文件,將讀卡器模塊請求的對象ID賦值給數(shù)組對象,以達到修改卡上模塊的結(jié)構(gòu)或運行流程的目的。8.根據(jù)權(quán)利要求7所述的Java卡防火墻漏洞的檢測裝置,其特征在于: 所述卡上模塊,還用于接收讀卡器模塊發(fā)來的請求,請求數(shù)據(jù)域中包含對象ID (short類型)和數(shù)據(jù)長度L ; 若數(shù)組對象擁有合法的對象ID,則向讀卡器模塊返回讀取非法數(shù)據(jù)失敗的響應(yīng);否則嘗試讀取數(shù)組對象中長度為L的數(shù)據(jù); 若卡上模塊讀取長度為L的數(shù)據(jù)成功,則向讀卡器模塊返回讀到的數(shù)據(jù);否則向讀卡器模塊返回讀取非法數(shù)據(jù)失敗的響應(yīng)。9.根據(jù)權(quán)利要求6所述的Java卡防火墻漏洞的檢測裝置,其特征在于: 所述讀卡器模塊,還用于嘗試依次發(fā)送帶有不同對象ID和不同數(shù)據(jù)長度的請求,并且這些對象ID從起始對象ID開始依次取值,直到發(fā)現(xiàn)Java卡防火墻漏洞為止; 所述讀卡器模塊,還用于接收從卡上模塊返回的響應(yīng),并判斷是否從Java卡中讀取到非法數(shù)據(jù),若讀到非法數(shù)據(jù),則判定攻擊成功,該Java卡存在防火墻漏洞;否則繼續(xù)判斷對象ID是否讀取完,若沒有讀取完,則對象ID增加I,重新發(fā)送請求至卡上模塊;若對象ID讀取完,則表明攻擊失敗,該Java卡不存在防火墻漏洞。10.根據(jù)權(quán)利要求9所述的Java卡防火墻漏洞的檢測裝置,其特征在于如果在某對象ID下存在防火墻漏洞,則增加數(shù)據(jù)長度,繼續(xù)判斷是否能攻擊成功,并記錄能攻擊成功的最大數(shù)據(jù)長度,以表示該對象ID下的漏洞大小。
【專利摘要】本發(fā)明提供了一種Java卡防火墻漏洞的檢測方法和裝置。解決方案包括:通過反匯編的方式,修改Java卡的結(jié)構(gòu)或運行流程,使卡上任意內(nèi)存都可以嘗試被訪問。當發(fā)現(xiàn)可以訪問Java卡中的非法數(shù)據(jù)的話,則判定當前卡存在防火墻漏洞;若發(fā)現(xiàn)存在防火墻漏洞,則繼續(xù)查找卡上可以非法訪問數(shù)據(jù)的范圍,以確定漏洞大小。
【IPC分類】H04L29/06
【公開號】CN105282156
【申請?zhí)枴緾N201510686816
【發(fā)明人】熊熙, 吳震, 王敏, 饒金濤, 杜之波, 田衡
【申請人】成都芯安尤里卡信息科技有限公司
【公開日】2016年1月27日
【申請日】2015年10月22日