一种Java卡越界访问静态变量漏洞的检测方法和装置的制造方法

文档序号:10725512阅读:210来源:国知局
一种Java卡越界访问静态变量漏洞的检测方法和装置的制造方法
【专利摘要】本发明提供了一种Java卡越界访问静态变量的漏洞的检测方法和装置。解决方案包括:构造Java卡字节码文件,使卡上常量池中的任意索引位置的静态变量都可以尝试被读取。当发现可以非法读取静态变量时,则判定当前Java卡存在越界访问静态变量的漏洞。
【专利说明】
一种J a V a卡越界访问静态变量漏洞的检测方法和装置
技术领域
[0001]本发明涉及智能卡领域,尤其涉及智能卡领域中的一种Java卡越界访问静态变量的漏洞的检测方法和装置。
【背景技术】
[0002]Java智能卡是一种新型的智能卡。它基于Java虚拟机原理,应用程序与硬件无关。它采用高级语言开发,应用程序可升级,有着广泛的应用前景。Java智能卡技术是Java技术在智能卡领域的扩展,既有灵活性又具备安全性,给传统的智能卡技术和应用领域带来了变革,提高了发卡商或服务提供商选择智能卡的自主性,能动态地调整卡的应用程序,具有较低的开发成本和更短的发行周期。获得Java智能卡授权的厂商代表着世界超过90%的智能卡生产能力。
[0003]安全性是Java卡应用的一个重要环节,它为Java卡的真正广泛应用提供了前提。只有在平台安全性的基础上,充分考虑各个环节的安全,才能保证其上的应用系统安全高效地运行。这种开放性平台的安全性是由多方面来保证的,它的安全策略由虚拟机和运行时环境共同实现,并提供了应用防火墙和事务管理等多重安全机制。
[0004]针对Java卡的一些专用攻击技术在不断发展,Java卡也随之呈现出了安全漏洞,从而导致整个Java卡系统安全性降低。因此,对Java卡的安全性检测也就刻不容缓。而越界访问静态变量的漏洞就是Java卡的一种常见漏洞。攻击者利用此漏洞非法读取卡上的数据,引起卡上私密数据的泄露。目前,主要是通过一系列规范来避免Java卡越界访问静态变量的漏洞,然而对于Java卡上可能出现的越界访问静态变量的漏洞,还缺乏行之有效的检测手段。
[0005]因此,如何改善现阶段缺乏有效检测Java卡越界访问静态变量的漏洞的手段的现状,以防范Java卡上的应用程序利用越界访问静态变量的漏洞非法读取数据所带来的安全隐患,已成为了人们亟待解决的问题。

【发明内容】

[0006]本发明的目的在于解决上述技术问题,提供一种有效检测Java卡越界访问静态变量的漏洞的方法和装置。
[0007]为了实现上述目的,本发明提供了一种检测Java卡越界访问静态变量的漏洞的方法,其特征在于包括以下步骤:
构造Java卡字节码文件,使卡上常量池中任意索引位置的静态变量都可以尝试被读取;
当发现可以非法读取静态变量时,则判定当前Java卡存在越界访问静态变量的漏洞。
[0008]本发明还提供了一种检测Java卡越界访问静态变量的漏洞的装置,所述装置包括:
卡上模块,用于尝试访问卡上常量池中的任意索引位置的静态变量; 读卡器模块,用于发送攻击命令,即带有索引值的请求,并根据卡上模块返回的响应判断是否存在越界访问静态变量的漏洞。
[0009]根据本发明的Java卡越界访问静态变量的漏洞的检测方法和装置,能够解决无法有效检测Java卡上是否存在越界访问静态变量的漏洞的问题,避免Java卡上应用程序利用越界访问静态变量的漏洞读取合法地址以外的数据所带来的安全隐患。
[0010]结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。
【附图说明】
[0011]图1为本发明提供的越界访问静态变量的漏洞的检测方法的较佳实施例的卡端执行流程示意图。
[0012]图2为本发明提供的越界访问静态变量的漏洞的检测方法的较佳实施例的读卡器端执行流程示意图。
[0013]图3为本发明提供的越界访问静态变量的漏洞的检测装置的结构示意图。
【具体实施方式】
[0014]下面结合附图详细描述本发明的【具体实施方式】。
[0015]图1是本发明提供的越界访问静态变量的漏洞检测方法的较佳实施例的卡端执行流程示意图。如图1所示,在步骤SlOl中,定义I个short类型的静态变量。
[0016]在步骤S102中,定义I个short类型的局部变量。
[0017]在步骤S103中,读取步骤SlOl中定义的静态变量的值。
[0018]在步骤S104中,将步骤S103中读取到的静态变量的值赋给局部变量。
[0019]在步骤S105中,返回成功响应,其中带有局部变量的值。
[0020]在步骤S106中,修改读取静态变量值的指令,使其读取常量池中其他索引位置的静态变量值。
[0021]在步骤S107中,判断是否读到数据,若读到,则执行步骤S104;若没有读到,则执行步骤S108。
[0022]在步骤S108中,返回读取非法数据失败的响应。
[0023]图2是本发明提供的越界访问静态变量的漏洞检测方法的较佳实施例的读卡器端执行流程示意图。如图2所示,在步骤S201中,读卡器将当前的攻击命令(包含静态变量的索引值)置于请求的数据域中,并发送该请求至Java卡。
[0024]在步骤S202中,读卡器接收从Java卡返回的响应,并判断是否从Java卡中读到数据。若读到数据,表示该Java卡存在越界访问静态变量的漏洞,则进行步骤S203;否则进行步骤S204。
[0025]在步骤S203中,记录攻击成功时的静态变量在常量池中的索引值。
[0026]在步骤S204中,判断攻击请求是否发完,若没发完,则执行步骤S205。否则执行步骤S206。
[0027]在步骤S205中,读卡器切换至下一个攻击命令,尝试读取不同索引位置的静态变量值。
[0028]在步骤S206中,攻击失败,Java卡中不存在越界访问静态变量的漏洞,检测结束。
[0029]图3是本发明提供的越界访问静态变量的漏洞检测装置的结构示意图。如图3所示,S301代表读卡器模块,S302代表卡上模块,S303代表读卡器,S304代表Java卡。读卡器模块位于读卡器中,卡上模块位于Java卡中。
[0030]读卡器模块向卡上模块发送攻击请求,尝试访问卡上常量池中任意索引位置的静态变量,并根据卡上模块返回的响应判断是否存在越界访问静态变量的漏洞。
[0031]卡上模块,在修改内部结构或运行流程后,可以尝试访问卡上常量池中任意索引位置的静态变量。
[0032]以上虽然结合附图描述了本发明的实施方式,但是本领域内熟练的技术人员可以在所附权利要求的范围内做出各种变形或修改。
【主权项】
1.一种Java卡越界访问静态变量的漏洞的检测方法,其特征在于,包括以下步骤: 构造Java卡字节码文件,使卡上常量池中的任意索引位置的静态变量都可以尝试被读取; 当发现可以非法读取静态变量时,则判定当前Java卡存在越界访问静态变量的漏洞。2.根据权利要求1所述的Java卡越界访问静态变量的漏洞的检测方法,其特征在于构造Java卡字节码文件时,按以下步骤: 定义I个short类型的静态变量和I个short类型的局部变量; 将静态变量修改为常量池中指定索引位置的静态变量; 尝试读取指定索引位置的静态变量的值。3.根据权利要求2所述的Java卡越界访问静态变量的漏洞的检测方法,其特征在于构造Java卡字节码文件之后,所述方法还包括以下步骤: 读卡器将攻击命令(包含静态变量的索引值)置于请求的数据域中,并发送该请求至Java 卡; 读卡器接收从Java卡返回的响应,并判断是否可以读取非法索引位置的静态变量,若可以访问,则判定攻击成功,当前Java卡存在越界访问静态变量的漏洞;否则判断攻击命令是否取完,若没有取完,重新发送新的攻击命令(含有不同的索引值)至Java卡;若攻击命令取完,表明攻击失败,该Java卡中不存在越界访问静态变量的漏洞。4.一种Java卡越界访问静态变量的漏洞的检测装置,其特征在于包括: 卡上模块,用于尝试访问卡上常量池中的任意索引位置的静态变量; 读卡器模块,用于发送攻击命令,即带有索引值的请求,并根据卡上模块返回的响应判断是否存在越界访问静态变量的漏洞。5.根据权利要求4所述的Java卡越界访问静态变量的漏洞的检测装置,其特征在于: 所述卡上模块,还用于将定义的静态变量修改为常量池中指定索引位置的静态变量,然后尝试读取指定索引位置的静态变量的值。6.根据权利要求5所述的Java卡越界访问静态变量的漏洞的检测装置,其特征在于: 所述读卡器装置,还用于尝试依次发送不同的攻击命令,即依次发送带有不同索引值的请求,直到发现Java卡越界访问静态变量的漏洞为止。7.根据权利要求6所述的Java卡越界访问静态变量的漏洞的检测装置,其特征在于: 所述读卡器装置,还用于接收从Java卡返回的响应,并判断是否从Java卡中读取到非法索引位置的静态变量,若读到非法数据,则判定攻击成功,该Java卡存在越界访问静态变量的漏洞;否则继续判断攻击命令是否取完,若没有取完,重新发送新的攻击命令(含有不同的索引值)至Java卡;若攻击命令取完,表明攻击失败,该Java卡中不存在越界访问静态变量的漏洞。
【文档编号】G06F21/56GK106096408SQ201610386159
【公开日】2016年11月9日
【申请日】2016年6月3日 公开号201610386159.0, CN 106096408 A, CN 106096408A, CN 201610386159, CN-A-106096408, CN106096408 A, CN106096408A, CN201610386159, CN201610386159.0
【发明人】熊熙, 吴震, 王敏, 饶金涛, 杜之波, 兰天, 姚艳丽
【申请人】成都信息工程大学, 成都芯安尤里卡信息科技有限公司, 北京中电华大电子设计有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1