CN113672907A - 基于JVM沙箱与黑白名单的Java安全防范方法、装置及介质 - Google Patents

基于JVM沙箱与黑白名单的Java安全防范方法、装置及介质 Download PDF

Info

Publication number
CN113672907A
CN113672907A CN202110864280.0A CN202110864280A CN113672907A CN 113672907 A CN113672907 A CN 113672907A CN 202110864280 A CN202110864280 A CN 202110864280A CN 113672907 A CN113672907 A CN 113672907A
Authority
CN
China
Prior art keywords
java
white list
java application
jvm
sandbox
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110864280.0A
Other languages
English (en)
Other versions
CN113672907B (zh
Inventor
陈文�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinan Inspur Data Technology Co Ltd
Original Assignee
Jinan Inspur Data Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jinan Inspur Data Technology Co Ltd filed Critical Jinan Inspur Data Technology Co Ltd
Priority to CN202110864280.0A priority Critical patent/CN113672907B/zh
Publication of CN113672907A publication Critical patent/CN113672907A/zh
Application granted granted Critical
Publication of CN113672907B publication Critical patent/CN113672907B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及基于JVM沙箱与黑白名单的Java安全防范方法、装置及介质。其中方法,包括:在JVM沙箱中自动反复启动Java应用以根据每次启动遇到的异常确定第一策略,将第一策略加入策略文件,直至Java应用启动成功;根据策略文件配置白名单;通过策略管理接口根据已知存在安全漏洞的路径配置第二策略以形成黑名单,通过黑名单限制存在安全漏洞的路径下的API执行Java反射;按照所述白名单和所述黑名单运行Java应用、管理Java应用所能访问的硬件和网络资源。本申请利用白名单和黑名单的配合限定未知Java应用运行的边界,通过黑名单来避免Java应用通过反射绕过白名单造成安全隐患,弥补现有技术中的不足,加强Java应用的安全防范。

Description

基于JVM沙箱与黑白名单的Java安全防范方法、装置及介质
技术领域
本申请涉及Java安全防范领域,尤其涉及基于JVM沙箱与黑白名单的Java安全防范方法、装置及介质。
背景技术
Java是目前市场上主流的企业级应用解决方案,也是PHP等web开发语言转型的趋势和潮流。
Java应用由JVM虚拟机来运行,JVM自身拥有一套沙箱机制,为运行的Java应用提供隔离的环境。但是JVM的沙箱机制是基于白名单实现的,需要针对每个Java应用配置相应的白名单,不具有通用性,使用起来灵活性较差。而且由于Java语言支持反射机制,允许Java应用在执行期借助于反射接口取得任何类的內部信息,并能直接操作任意对象的内部属性及方法。即Java应用可以通过反射机制在运行时构造任意一个类的对象,在运行时获取任意一个类所包含的成员变量和方法,在运行时调用任意一个对象的方法和属性,生成动态代理。也就是说反射行为是普遍预先不可知的,只有在Java应用使用过程中才能体;因此,对采用反射机制Java应用,无法预先编写相应的白名单保证其安全运行。因此对于现有的JVM沙箱安全模式,Java应用可以通过反射绕过白名单,导致在JVM沙箱中的Java应用的安全性不能得到保障。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供一种基于JVM沙箱与黑白名单的Java安全防范方法、装置及介质。
第一方面,本申请提供一种基于JVM沙箱与黑白名单的Java安全防范方法,包括:
在JVM沙箱中自动反复启动Java应用以根据每次启动遇到的异常确定第一策略,将第一策略加入策略文件,直至Java应用启动成功;
根据策略文件配置白名单;
通过策略管理接口根据已知存在安全漏洞的路径配置第二策略以形成黑名单,通过黑名单限制存在安全漏洞的路径下的API执行Java反射;
按照所述白名单和所述黑名单运行Java应用、管理Java应用所能访问的硬件和网络资源。
更进一步地,所述在JVM沙箱中自动反复启动Java应用以根据每次启动遇到的异常确定第一策略,将第一策略加入策略文件,直至Java应用启动成功包括:
启用JVM沙箱,在JVM沙箱启动默认的安全模式;
在JVM沙箱中按策略文件启动Java应用,Java应用遇到异常终止启动,
根据Java应用遇到的异常获取影响Java应用启动的第一策略,并将第一策略加入JVM沙箱的策略文件;
判断Java应用是否启动成功,否则重新启动Java应用,根据异常采集其余第一策略加入所述策略文件。
更进一步地,所述判断Java应用是否启动成功包括:
若Java应用为web应用,判断默认的8080端口是否访问成功,是则Java应用启动成功;
若Java应用为非web应用,根据Java应用的进程的存活时间确定Java应用启动成功。
更进一步地,所述按照所述白名单和所述黑名单运行Java应用包括:
同时启用所述白名单和所述黑名单控制Java应用运行,
对于Java应用所执行的需判断边界的活动,判断是否在所述白名单中有对应的第一策略,是则允许执行,
否则,继续判断活动是否在所述黑名单中有对应的第二策略,是则阻止执行;否则允许执行。
更进一步地,为策略配置优先级标记,所述优先级标记包括第一优先级标记和第二优先级标记;
当任意一个策略被白名单允许且被黑名单禁止时,判断该策略优先级标记类型,若为第一优先级标记则优先按白名单对该活动进行安全控制,若为第二优先级标记则优先按黑名单对该活动进行安全控制。
更进一步地,基于JVM沙箱与黑白名单的Java安全防范方法包括按照所述白名单运行Java应用:
配置启用所述白名单,停用所述黑名单;
对于Java应用所执行的需判断边界的活动,判断是否在所述白名单中存在对应的第一策略,是则允许,否则禁止。
更进一步地,基于JVM沙箱与黑白名单的Java安全防范方法包括按照所述黑名单运行Java应用:
配置启用所述黑名单,停用所述白名单;
对于Java应用所执行的需判断边界的活动,判断是否在所述黑名单中有对应的第二策略,是则禁止,否则允许。
更进一步地,按照所述白名单、所述黑名单或所述白名单和黑名单的组合为Java应用提供隔离的硬件和网络资源;将所述白名单和所述黑名单针对不同用户配置,使Java应用为不同用户提供定制化服务。
第二方面,本申请提供一种基于JVM沙箱与黑白名单实现Java安全防范的装置,包括:
策略提取模块,所述策略提取模块用于控制Java应用在JVM沙箱中反复自动重启,并根据每次启动所遇到的异常获取影响Java应用启动的第一策略,将所述第一策略加入策略文件;
白名单配置模块,所述白名单配置模块根据所述策略文件配置相应的白名单;
黑名单配置模块,所述黑名单配置模块提供策略管理接口,根据已知存在安全漏洞的路径配置第二策略,通过所述黑名单限制存在安全漏洞的路径下的API执行Java反射;
安全管理模块,所述安全管理模块配置白名单和黑名单的启用与停用;并按照启用的黑名单或白名单控制Java应用运行;
资源管理模块,所述资源管理模块按照启用的黑名单或白名单控制Java应用所能访问的硬件和网络资源。
第三方面,本申请提供一种实现基于JVM沙箱与黑白名单的Java安全防范方法的存储介质,所述实现基于JVM沙箱与黑白名单的Java安全防范方法的存储介质存储至少一条指令,执行所述指令实现所述的基于JVM沙箱与黑白名单的Java安全防范方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请通过反复在JVM安全沙箱中启动Java应用直至Java应用启动成功,以遍历获取影响Java应用启动的全部异常,确定处理异常的第一策略添加到策略文件,根据策略文件配置白名单,实现白名单的自动定制。
本申请利用形成的白名单组合自定义的黑名单来灵活地针对Java应用制定安全策略,利用所述黑名单能够有效的限制Java应用运行中不安全反射行为的执行,避免Java应用利用反射绕过白名单。对Java应用进行全面的安全加固、实现Java应用硬件和网络资源隔离,保证Java应用运行过程的安全。
本申请针对不同的用户配置白名单和黑名单,在保证Java应用安全运行的同时能够为不同用户提供Java应用的定制服务。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的基于JVM沙箱与黑白名单的Java安全防范方法的流程图;
图2为本申请实施例提供的在JVM沙箱中自动反复启动Java应用以根据每次启动遇到的异常确定第一策略,将第一策略加入策略文件流程图;
图3为本申请实施例提供判断Java应用是否启动成功的流程图;
图4为本申请实施例提供的一种按照所述白名单运行Java应用的流程图;
图5为本申请实施例提供的另一种按照所述白名单和黑名单运行Java应用的流程图;
图6为本申请实施例提供的按照所述白名单运行Java应用的流程图;
图7为本申请实施例提供的按照所述黑名单运行Java应用的流程图;
图8为本申请实施例提供的实现基于JVM沙箱与黑白名单的Java安全防范方法的装置的示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在运行未知的Java应用时,该Java应用可能包含恶意代码或者存在重大漏洞,为了防止运行恶意代码或者重大漏洞对系统安全产生影响,需要对Java应用所运行的代码进行限制。在现有的JVM默认安全模式可以通过策略文件对Java应用的代码进行权限控制,通过策略文件构建Java应用运行的边界,Java应用可以在边界内做任何事,但不能进行任何跨越边界的举动,限制的活动包括对硬件资源和网络资源的限制、创建新进程的限制和装载新动态连接库的限制。
JVM默认安全模式遵循的原则如下:策略未配置的权限表示没有;只能通过策略配置权限,无法禁止策略的权限;从原则可以看出目前JVM安全模式对Java应用采用白名单的机制进行安全控制。
JVM沙箱包括类装载器、class文件检查器、JVM沙箱内置的安全特性、Java API以及安全管理器。通过策略文件对类装载器和安全管理器进行定制使得类装载器和安全管理器防止恶意代码干涉安全代码,守护被信任类库的边界,将代码归入设定的保护域以确认代码可以进行的操作。Class文件检查器检查Java应用的class文件的结构、class文件中类型数据的语义,验证字节码、验证符号引用。通过JVM沙箱内置的安全特性实现类型安全的引用转换、结构化的内存访问、自动垃圾收集、数组边界的检查、空引用的检查。通过上述手段,JVM沙箱未Java应用提供安全的运行环境。
然而,Java语言支持反射机制,允许Java应用在执行期借助于反射接口取得任何类的內部信息,并能直接操作任意对象的内部属性及方法。即Java应用可以通过反射机制在运行时构造任意一个类的对象,在运行时获取任意一个类所包含的成员变量和方法,在运行时调用任意一个对象的方法和属性,生成动态代理。也就是说反射行为是普遍预先不可知的,只有在Java应用使用过程中才能体;因此,对采用反射机制Java应用,无法预先编写相应的白名单保证其安全运行。
本身申请针对目前JVM安全模式的弱点进行优化,提供基于JVM沙箱与黑白名单的Java安全防范方法、装置及介质。
实施例1
参阅图1所示,本申请实施例提供一种基于JVM沙箱与黑白名单的Java安全防范方法,包括:
S100,在JVM沙箱中自动反复启动Java应用以根据每次启动遇到的异常确定第一策略,将第一策略加入策略文件,直至Java应用启动成功;具体实施过程中,参阅图2所示,具体过程包括:
S101,启用JVM沙箱,在JVM沙箱启动默认的安全模式;默认的安全模式策略文件中并未配置参数,内容为空。
S102,在JVM沙箱中按策略文件启动Java应用;由于初始阶段策略文件中并未提供相关第一策略,即JVM的类装载器和安全管理器未进行配置,因此Java应用必然启动失败并抛出相应的异常。而反复启动过程中,策略文件中的第一策略还未齐全,Java应用同样会遇到异常而终止启动。根据Java应用启动遇到的异常而反馈相应的异常提示。
S103,根据Java应用遇到的异常获取影响Java应用启动的第一策略,并将第一策略加入JVM沙箱的策略文件;具体的,根据遇到的异常提取代码所遇到的权限制约,通过grant指令等手段生成对应的第一策略,所述第一策略给JVM的类装载器和安全管理器进行配置,使得Java应用能获取权限克服相应的异常而继续启动。
S104,判断Java应用是否启动成功,否则循环执行步骤S102和S103继续获取其他的第一策略。
具体实施过程中,参阅图3所示,所述判断Java应用是否启动成功包括:
确定Java应用的类型。具体的,为Java应用配置类型标记,类型标记包括表示Java应用为web应用的第一类型标记和表示Java应用为非web应用的第二类型标记。判断Java应用的类型标记确定Java应用的类型。
若Java应用为web应用,即Java应用的类型标记为第一类型标记,则判断默认的8080端口是否访问成功,是则Java应用启动成功。
若Java应用为非web应用,即Java应用的类型标记为第二类型标记,则根据Java应用的进程的存活时间确定Java应用启动成功,具体的,采集Java应用的进程的存活时间,若进程的存活时间非零或者大于设定时长,则判断Java应用启动成功。
S200,根据策略文件配置白名单。
S300,通过策略管理接口根据已知存在安全漏洞的路径配置第二策略以形成黑名单,通过黑名单添加相应的第二策略以限制存在安全漏洞的路径下的API执行Java反射;具体的,通过以下策略管理接口java.security.manager配置第二策略形成黑名单,所述第二策略包括限制存在安全漏洞的路径下的API执行Java反射的内容。具体实施过程中,所述第二策略还包括禁止Java应用实施其他已知风险的活动的内容。
S400,按照所述白名单和所述黑名单运行Java应用、管理Java应用所能访问的硬件和网络资源。
具体实施过程中,参阅图4所示,一种可行的所述按照所述白名单和所述黑名单运行Java应用包括:
S401,同时启用所述白名单和所述黑名单控制Java应用运行;
S402,对于Java应用所执行的需判断边界的活动,判断是否在所述白名单中有对应的第一策略,是则允许执行,否则执行S403;
S403,继续判断活动是否在所述黑名单中有对应的第二策略,是则阻止执行;否则允许执行。
具体实施过程中,参阅图5所示,另一种可行的方式需要为策略配置优先级标记,所述优先级标记包括第一优先级标记和第二优先级标记;当任意一个策略被白名单允许且被黑名单禁止时,判断该策略优先级标记类型,若为第一优先级标记则优先按白名单对该活动进行安全控制,若为第二优先级标记则优先按黑名单对该活动进行安全控制。另一种可行的所述按照所述白名单和所述黑名单运行Java应用具体过程包括:
S410,同时启用所述白名单和所述黑名单控制Java应用运行;
S420,对于Java所执行的需要确定边界的活动,判断是否在所述白名单中是否有对应的第一策略且在所述黑名单中有对应的第二策略,是则执行步骤S430,否则执行步骤S402和S403;
S430,检查Java应用的优先级标记是否为第一优先级标记;是则执行步骤S440,否则执行步骤S450;
S440,优先按白名单对该活动进行安全控制;
S450,优先按黑名单对该活动进行安全控制。
具体实施过程中,所述基于JVM沙箱与黑白名单的Java安全防范方法包括按照所述白名单运行Java应用,参阅图6所示,具体过程如下:
配置启用所述白名单,停用所述黑名单;
对于Java应用所执行的需判断边界的活动,判断是否在所述白名单中存在对应的第一策略,是则允许,否则禁止。
具体实施过程中,所述基于JVM沙箱与黑白名单的Java安全防范方法包括按照所述黑名单运行Java应用,参阅图7所示,具体过程如下:
配置启用所述黑名单,停用所述白名单;
对于Java应用所执行的需判断边界的活动,判断是否在所述黑名单中有对应的第二策略,是则禁止,否则允许。
具体实施过程中,按照所述白名单、所述黑名单或所述白名单和黑名单的组合为Java应用提供隔离的硬件和网络资源;在启用所述白名单和所述黑名单时,按照所述白名单和黑名单的组合为Java应用提供隔离的硬件和网络资源,在启用所述白名单停用所述黑名单时,按照所述白名单为Java应用提供隔离的硬件和网络资源,在启用所述黑名单停用所述白名单时,按照所述黑名单为Java应用提供隔离的硬件和网络资源。
具体实施过程中,将所述白名单和所述黑名单针对不同用户配置,使Java应用为不同用户提供定制化服务。
实施例2
本申请实施例提供一种基于JVM沙箱与黑白名单实现Java安全防范的装置,参阅图8所示,所述基于JVM沙箱与黑白名单实现Java安全防范的装置包括:
策略提取模块,所述策略提取模块用于控制Java应用在JVM沙箱中反复自动重启,并根据每次启动所遇到的异常获取影响Java应用启动的第一策略,将所述第一策略加入策略文件;
白名单配置模块,所述白名单配置模块根据所述策略文件配置相应的白名单;
黑名单配置模块,所述黑名单配置模块提供策略管理接口,管理员根据已知存在安全漏洞的路径配置第二策略以形成黑名单,通过在所述黑名单中设置相应的第二策略限制存在安全漏洞的路径下的API执行Java反射;
安全管理模块,所述安全管理模块配置白名单和黑名单的启用与停用;并按照启用的黑名单或白名单控制Java应用运行;
资源管理模块,所述资源管理模块按照启用的黑名单或白名单控制Java应用所能访问的硬件和网络资源。
用户管理模块,所述用户管理模块管理用户和所述黑名单之间的第一对应关系,所述用户管理模块管理用户和所述白名单之间的第二对应关系。通过第一对应关系和第二对应关系实现针对不同用户配置所述白名单和黑名单,使Java应用为不同用户提供定制化的服务。
实施例3
本申请实施例提供一种实现基于JVM沙箱与黑白名单的Java安全防范方法的存储介质,所述实现基于JVM沙箱与黑白名单的Java安全防范方法的存储介质存储至少一条指令,执行所述指令实现所述的基于JVM沙箱与黑白名单的Java安全防范方法。
本申请通过反复在JVM安全沙箱中启动Java应用直至Java应用启动成功,以遍历获取影响Java应用启动的全部异常,确定处理异常的第一策略添加到策略文件,根据策略文件配置白名单,实现白名单的自动定制。
本申请利用形成的白名单组合自定义的黑名单来灵活地针对Java应用制定安全策略,利用所述黑名单能够有效的限制Java应用运行中不安全反射行为的执行,避免Java应用利用反射绕过白名单。对Java应用进行全面的安全加固、实现Java应用硬件和网络资源隔离,保证Java应用运行过程的安全。
本申请针对不同的用户配置白名单和黑名单,在保证Java应用安全运行的同时能够为不同用户提供Java应用的定制服务。
在本发明所提供的实施例中,涉及到的词语“JVM”表示Java虚拟机,Java虚拟机是由一组规范所定义的抽象的计算机,所有的Java应用都运行子Java虚拟机内,具体的,Java虚拟机将Java应用的字节码装载到其内部,解释编译对对应平台上的机器指令执行。是Java应用跨平台的关键。在本发明所提供实施例中,涉及到的词语“API”表示应用程序变成接口,是一些预先定义的接口,目的是提供给应用程序与开发人员访问一组例程的能力,应用程序无需配置例程的源码,开发人员无需知晓例程内部工作机制的细节。Java API中其实包含的就是Java的基础类库集合,它提供一套访问主机系统资源的标准方法。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种基于JVM沙箱与黑白名单的Java安全防范方法,其特征在于,包括:
在JVM沙箱中自动反复启动Java应用以根据每次启动遇到的异常确定第一策略,将第一策略加入策略文件,直至Java应用启动成功;
根据策略文件配置白名单;
通过策略管理接口根据已知存在安全漏洞的路径配置第二策略以形成黑名单,通过黑名单限制存在安全漏洞的路径下的API执行Java反射;
按照所述白名单和所述黑名单运行Java应用、管理Java应用所能访问的硬件和网络资源。
2.根据权利要求1所述基于JVM沙箱与黑白名单的Java安全防范方法,其特征在于,所述在JVM沙箱中自动反复启动Java应用以根据每次启动遇到的异常确定第一策略,将第一策略加入策略文件,直至Java应用启动成功包括:
启用JVM沙箱,在JVM沙箱启动默认的安全模式;
在JVM沙箱中按策略文件启动Java应用,Java应用遇到异常终止启动,
根据Java应用遇到的异常获取影响Java应用启动的第一策略,并将第一策略加入JVM沙箱的策略文件;
判断Java应用是否启动成功,否则重新启动Java应用,根据异常采集其余第一策略加入所述策略文件。
3.根据权利要求2所述基于JVM沙箱与黑白名单的Java安全防范方法,其特征在于,所述判断Java应用是否启动成功包括:
若Java应用为web应用,判断默认的8080端口是否访问成功,是则Java应用启动成功;
若Java应用为非web应用,根据Java应用的进程的存活时间确定Java应用启动成功。
4.根据权利要求1所述基于JVM沙箱与黑白名单的Java安全防范方法,其特征在于,所述按照所述白名单和所述黑名单运行Java应用包括:
同时启用所述白名单和所述黑名单控制Java应用运行,
对于Java应用所执行的需判断边界的活动,判断是否在所述白名单中有对应的第一策略,是则允许执行,
否则,继续判断活动是否在所述黑名单中有对应的第二策略,是则阻止执行;否则允许执行。
5.根据权利要求4所述基于JVM沙箱与黑白名单的Java安全防范方法,其特征在于,为策略配置优先级标记,所述优先级标记包括第一优先级标记和第二优先级标记;
当任意一个策略被白名单允许且被黑名单禁止时,判断该策略优先级标记类型,若为第一优先级标记则优先按白名单对该活动进行安全控制,若为第二优先级标记则优先按黑名单对该活动进行安全控制。
6.根据权利要求1所述基于JVM沙箱与黑白名单的Java安全防范方法,其特征在于,按照所述白名单运行Java应用:
配置启用所述白名单,停用所述黑名单;
对于Java应用所执行的需判断边界的活动,判断是否在所述白名单中存在对应的第一策略,是则允许,否则禁止。
7.根据权利要求1所述基于JVM沙箱与黑白名单的Java安全防范方法,其特征在于,按照所述黑名单运行Java应用:
配置启用所述黑名单,停用所述白名单;
对于Java应用所执行的需判断边界的活动,判断是否在所述黑名单中有对应的第二策略,是则禁止,否则允许。
8.根据权利要求1所述基于JVM沙箱与黑白名单的Java安全防范方法,其特征在于,按照所述白名单、所述黑名单或所述白名单和黑名单的组合为Java应用提供隔离的硬件和网络资源;将所述白名单和所述黑名单针对不同用户配置,使Java应用为不同用户提供定制化服务。
9.一种基于JVM沙箱与黑白名单实现Java安全防范的装置,其特征在于,包括:
策略提取模块,所述策略提取模块用于控制Java应用在JVM沙箱中反复自动重启,并根据每次启动所遇到的异常获取影响Java应用启动的第一策略,将所述第一策略加入策略文件;
白名单配置模块,所述白名单配置模块根据所述策略文件配置相应的白名单;
黑名单配置模块,所述黑名单配置模块提供策略管理接口,管理员根据已知存在安全漏洞的路径配置第二策略以形成黑名单,通过在所述黑名单中设置相应的第二策略限制存在安全漏洞的路径下的API执行Java反射;
安全管理模块,所述安全管理模块配置白名单和黑名单的启用与停用;并按照启用的黑名单或白名单控制Java应用运行;
资源管理模块,所述资源管理模块按照启用的黑名单或白名单控制Java应用所能访问的硬件和网络资源。
10.一种实现基于JVM沙箱与黑白名单的Java安全防范方法的存储介质,其特征在于,实现基于JVM沙箱与黑白名单的Java安全防范方法的存储介质存储至少一条指令,执行所述指令实现如权利要求1-8任一所述的基于JVM沙箱与黑白名单的Java安全防范方法。
CN202110864280.0A 2021-07-29 2021-07-29 基于JVM沙箱与黑白名单的Java安全防范方法、装置及介质 Active CN113672907B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110864280.0A CN113672907B (zh) 2021-07-29 2021-07-29 基于JVM沙箱与黑白名单的Java安全防范方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110864280.0A CN113672907B (zh) 2021-07-29 2021-07-29 基于JVM沙箱与黑白名单的Java安全防范方法、装置及介质

Publications (2)

Publication Number Publication Date
CN113672907A true CN113672907A (zh) 2021-11-19
CN113672907B CN113672907B (zh) 2023-12-22

Family

ID=78540647

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110864280.0A Active CN113672907B (zh) 2021-07-29 2021-07-29 基于JVM沙箱与黑白名单的Java安全防范方法、装置及介质

Country Status (1)

Country Link
CN (1) CN113672907B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114706662A (zh) * 2022-06-08 2022-07-05 杭州比智科技有限公司 基于jvm沙箱实现动态模拟业务操作和数据的方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691230B1 (en) * 1998-10-15 2004-02-10 International Business Machines Corporation Method and system for extending Java applets sand box with public client storage
CN1859203A (zh) * 2006-03-15 2006-11-08 华为技术有限公司 系统反复启动故障的定位方法及其装置
CN101587456A (zh) * 2009-07-08 2009-11-25 腾讯科技(深圳)有限公司 一种对软件运行的保护处理方法及装置
CN102955915A (zh) * 2011-08-23 2013-03-06 中国移动通信集团公司 一种Java应用安全访问控制方法及其装置
CN106650427A (zh) * 2016-12-28 2017-05-10 北京奇虎科技有限公司 沙箱运行环境的检测方法及检测装置
WO2019100897A1 (zh) * 2017-11-24 2019-05-31 南昌黑鲨科技有限公司 一种应用程序启动方法、启动装置及计算机可读存储介质
CN110929259A (zh) * 2019-11-14 2020-03-27 腾讯科技(深圳)有限公司 进程安全验证白名单生成方法、装置
CN111880804A (zh) * 2020-07-13 2020-11-03 腾讯科技(深圳)有限公司 应用程序代码的处理方法及装置
CN112685737A (zh) * 2020-12-24 2021-04-20 恒安嘉新(北京)科技股份公司 一种app的检测方法、装置、设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691230B1 (en) * 1998-10-15 2004-02-10 International Business Machines Corporation Method and system for extending Java applets sand box with public client storage
CN1859203A (zh) * 2006-03-15 2006-11-08 华为技术有限公司 系统反复启动故障的定位方法及其装置
CN101587456A (zh) * 2009-07-08 2009-11-25 腾讯科技(深圳)有限公司 一种对软件运行的保护处理方法及装置
CN102955915A (zh) * 2011-08-23 2013-03-06 中国移动通信集团公司 一种Java应用安全访问控制方法及其装置
CN106650427A (zh) * 2016-12-28 2017-05-10 北京奇虎科技有限公司 沙箱运行环境的检测方法及检测装置
WO2019100897A1 (zh) * 2017-11-24 2019-05-31 南昌黑鲨科技有限公司 一种应用程序启动方法、启动装置及计算机可读存储介质
CN110929259A (zh) * 2019-11-14 2020-03-27 腾讯科技(深圳)有限公司 进程安全验证白名单生成方法、装置
CN111880804A (zh) * 2020-07-13 2020-11-03 腾讯科技(深圳)有限公司 应用程序代码的处理方法及装置
CN112685737A (zh) * 2020-12-24 2021-04-20 恒安嘉新(北京)科技股份公司 一种app的检测方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
许艳萍;马兆丰;王中华;钮心忻;杨义先;: "Android智能终端安全综述", 通信学报, no. 06 *
赵锋;: "基于JSP技术的Web应用程序开发的安全策略", 电脑知识与技术(学术交流), no. 12 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114706662A (zh) * 2022-06-08 2022-07-05 杭州比智科技有限公司 基于jvm沙箱实现动态模拟业务操作和数据的方法及系统
CN114706662B (zh) * 2022-06-08 2022-09-02 杭州比智科技有限公司 基于jvm沙箱实现动态模拟业务操作和数据的方法及系统

Also Published As

Publication number Publication date
CN113672907B (zh) 2023-12-22

Similar Documents

Publication Publication Date Title
US10949247B2 (en) Systems and methods for auditing a virtual machine
Backes et al. Artist: The android runtime instrumentation and security toolkit
US10379888B2 (en) Adaptive integrity verification of software and authorization of memory access
CN102799817B (zh) 用于使用虚拟化技术进行恶意软件保护的系统和方法
US8336095B2 (en) User space virtualization system
US8555061B2 (en) Transparent code
RU2679175C1 (ru) Способ поведенческого обнаружения вредоносных программ с использованием виртуальной машины-интерпретатора
US9027075B2 (en) Enforcing security rules at runtime
CN104700026A (zh) 基于java字节码插桩和java方法挂钩检测java沙箱逃逸攻击
Burns Developing secure mobile applications for android
KR101453742B1 (ko) 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법
Armando et al. Breaking and fixing the android launching flow
Zhou et al. Hybrid user-level sandboxing of third-party android apps
Rossi et al. {SEApp}: Bringing mandatory access control to Android apps
CN113672907A (zh) 基于JVM沙箱与黑白名单的Java安全防范方法、装置及介质
Chan et al. A privilege escalation vulnerability checking system for android applications
KR101013419B1 (ko) 시스템 보호 장치 및 방법
CN113168320A (zh) 用类选择性替换遗留加载模块程序以在java虚拟机中执行
US20100218261A1 (en) Isolating processes using aspects
CN114462024A (zh) 容器安全防护方法、装置、设备及存储介质
JP4638505B2 (ja) 電子デバイス内の安全なプログラム解釈方法
Hu et al. Hacksaw: Hardware-Centric Kernel Debloating via Device Inventory and Dependency Analysis
KR20220103518A (ko) 스마트 컨트랙트 재작성기
Cuadros Casta Android rooting: methods, detection, and evasion
Wang et al. Teaching software reuse with JavaBeans

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant