CN110909345A - 一种Java系统开源软件防篡改方法及系统 - Google Patents

一种Java系统开源软件防篡改方法及系统 Download PDF

Info

Publication number
CN110909345A
CN110909345A CN201911214232.6A CN201911214232A CN110909345A CN 110909345 A CN110909345 A CN 110909345A CN 201911214232 A CN201911214232 A CN 201911214232A CN 110909345 A CN110909345 A CN 110909345A
Authority
CN
China
Prior art keywords
open source
source software
preset
verification
code
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
CN201911214232.6A
Other languages
English (en)
Other versions
CN110909345B (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.)
Bank of China Ltd
Original Assignee
Bank of China 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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN201911214232.6A priority Critical patent/CN110909345B/zh
Publication of CN110909345A publication Critical patent/CN110909345A/zh
Application granted granted Critical
Publication of CN110909345B publication Critical patent/CN110909345B/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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种Java系统开源软件防篡改方法及系统,所述方法包括:接收Java系统应用程序中Jvm模块传输的启动指令;通过基于JavaAgent形成的探针确定应用程序中的所有开源软件,根据预设校验规则对所述开源软件进行校验得到校验结果;根据所述校验结果确定开源软件是否被篡改,若被篡改,执行预警操作,本发明可通过在Java系统开源软件中设置探针,在每次开源软件启动时对开源软件进行校验,以确定开源软件是否被篡改。

Description

一种Java系统开源软件防篡改方法及系统
技术领域
本发明涉及计算机软件开发技术领域,尤其涉及一种Java系统开源软件防篡改方法及系统。
背景技术
基于Java开发的系统,会引入大量开源软件。但是,若是从不安全的渠道而不是合法的制品库获取开源软件,这些开源软件中可能存在恶意代码,这样就会对生产环境造成很大的威胁。目前的一般做法是建立一套完整、严格的管理制度、流程、角色,从而将上述提到的风险降到最低,例如投产前由专门人员对开源软件进行校验,这在一定程度上降低了风险的注入。但该方法还是依赖于管理制度,并未落实到技术/工具上,所以存在人为操作的风险,并且系统投产前校验和真实投产存在时间和空间的空隙,依然存在被篡改的风险。
发明内容
本发明的一个目的在于提供一种Java系统开源软件防篡改方法,通过在Java系统开源软件中设置探针,在每次开源软件启动时对开源软件进行校验,以确定开源软件是否被篡改。本发明的另一个目的在于提供一种Java系统开源软件防篡改系统。本发明的再一个目的在于提供一种计算机设备。本发明的还一个目的在于提供一种可读介质。
为了达到以上目的,本发明一方面公开了一种Java系统开源软件防篡改方法,包括:
接收Java系统应用程序中Jvm模块传输的启动指令;
通过基于JavaAgent形成的探针确定应用程序中的所有开源软件,根据预设校验规则对所述开源软件进行校验得到校验结果;
根据所述校验结果确定开源软件是否被篡改,若被篡改,执行预警操作。
优选的,所述方法进一步包括在启动Java系统应用程序之前:
根据预设校验规则采用预设编码算法对所述开源软件进行编码运算得到每个开源软件对应的编码并存储。
优选的,所述预设编码算法为哈希算法。
优选的,所述根据预设校验规则采用预设编码算法对所述开源软件进行编码运算得到每个开源软件对应的编码并存储具体包括:
读取开源软件的Jar文件至字节数组;
根据字节数组的字节数,采用md5或sha1编码得到编码后的字节数组;
将编码后的字节数组进行base64编码,得到开源软件对应的编码并存储。
优选的,所述根据预设校验规则对所述开源软件进行校验得到校验结果具体包括:
采用预设编码算法对所有开源软件进行编码运算得到每个开源软件对应的校验码;
将所述校验码与存储的编码进行比对得到校验结果。
本发明还公开了一种Java系统开源软件防篡改系统,包括:
指令接收单元,用于接收Java系统应用程序中Jvm模块传输的启动指令;
开源软件校验单元,用于通过基于JavaAgent形成的探针确定应用程序中的所有开源软件,根据预设校验规则对所述开源软件进行校验得到校验结果;
预警反馈单元,用于根据所述校验结果确定开源软件是否被篡改,若被篡改,执行预警操作。
优选的,所述系统进一步包括预设置单元,用于在启动Java系统应用程序之前,根据预设校验规则采用预设编码算法对所述开源软件进行编码运算得到每个开源软件对应的编码并存储。
优选的,所述预设编码算法为哈希算法。
优选的,所述预设置单元具体用于读取开源软件的Jar文件至字节数组,根据字节数组的字节数,采用md5或sha1编码得到编码后的字节数组,将编码后的字节数组进行base64编码,得到开源软件对应的编码并存储。
优选的,所述开源软件校验单元具体用于采用预设编码算法对所有开源软件进行编码运算得到每个开源软件对应的校验码,将所述校验码与存储的编码进行比对得到校验结果。本发明还公开了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,
所述处理器执行所述程序时实现如上所述方法。
本发明还公开了一种计算机可读介质,其上存储有计算机程序,
该程序被处理器执行时实现如上所述方法。
本发明通过在Java系统应用程序中设置基于JavaAgent形成的探针,当应用程序启动时,Jvm模块启动之后,应用程序主体启动之前,通过探针对应用程序中的开源软件进行扫描,根据预设校验规则校验扫描得到的开源软件,从而确定应用程序中的开源软件是否被篡改,若被篡改,则执行对应的预警操作,降低系统安全风险。应用程序每次启动时均对开源软件进行校验,无法逾越,避免了Java在投产运行之前或过程中开源软件被篡改,极大的提高了系统的安全性,也避免了人工检查的工作量,提高了校验效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明一种Java系统开源软件防篡改方法一个具体实施例的流程图之一;
图2示出本发明一种Java系统开源软件防篡改方法一个具体实施例的流程图之二;
图3示出本发明一种Java系统开源软件防篡改方法一个具体实施例的流程图之三;
图4示出本发明一种Java系统开源软件防篡改方法一个具体实施例的流程图之四;
图5示出本发明一种Java系统开源软件防篡改系统一个具体实施例的结构图之一;
图6示出本发明一种Java系统开源软件防篡改系统一个具体实施例的结构图之二;
图7示出适于用来实现本发明实施例的计算机设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
在本申请的一个或多个实施例中,Java是指一门编程语言、平台、工具集。
在本申请的一个或多个实施例中,JavaAgent是指一种java技术,在jvm启动之后,运行main方法之前运行Premain-class里指定得那个类,可以理解成运行java程序的一个前置处理。
在本申请的一个或多个实施例中,开源软件是指开源社区提供的免费/自由软件,一个java应用包含若干个开源软件。这些软件开源为程序开发节省大量成本(复用),因为开源软件众多,下载渠道不一,安全漏洞不一,开源协议不一,因此也会带来诸如安全问题等。
在本申请的一个或多个实施例中,篡改是指软件工程阶各阶段,包括从软件编写到软件交付直到正式投产、运行阶段,一些开源软件容易可能被别有用心的人注入恶意代码,从而破坏生产环境。
在本申请的一个或多个实施例中,制品库是指统一存放开源软件文件(jar)的地方。
在本申请的一个或多个实施例中,md5/sha1码是根据文件内容生成一个固定长的字符串,文件不同,生成的定长字符串就会不同,是一种哈希编码技术。
根据本发明的一个方面,本实施例公开了一种Java系统开源软件防篡改方法。如图1所示,本实施例中,所述方法包括:
S100:接收Java系统应用程序中Jvm模块传输的启动指令。
S200:通过基于JavaAgent形成的探针确定应用程序中的所有开源软件,根据预设校验规则对所述开源软件进行校验得到校验结果。
S300:根据所述校验结果确定开源软件是否被篡改,若被篡改,执行预警操作。
本发明通过在Java系统应用程序中设置基于JavaAgent形成的探针,当应用程序启动时,Jvm模块启动之后,应用程序主体启动之前,通过探针对应用程序中的开源软件进行扫描,根据预设校验规则校验扫描得到的开源软件,从而确定应用程序中的开源软件是否被篡改,若被篡改,则执行对应的预警操作,降低系统安全风险。提高了人工检查的效率,既安全又高效。
在优选的实施方式中,如图2所示,所述方法进一步包括在启动Java系统应用程序之前:
S000:根据预设校验规则采用预设编码算法对所述开源软件进行编码运算得到每个开源软件对应的编码并存储。优选的,所述预设编码算法可选用哈希算法。
在优选的实施方式中,如图3所示,所述S000具体可包括:
S010:读取开源软件的Jar文件至字节数组。
S020:根据字节数组的字节数,采用md5或sha1编码得到编码后的字节数组。
S030:将编码后的字节数组进行base64编码,得到开源软件对应的编码并存储。
可以理解的是,可预先设置一个Web服务,将开源软件的编码存储在Web服务中,例如,在一个具体例子中,开源软件的编码以标准基线文件形式存储,标准基线文件的格式可为baseline.ini,开源软件的编码可存储在baseline.ini文件中,编码可以key-value结构进行存储,包含了开源软件的名称和对应的编码等信息,key-value结构存储的编码信息可为“开源软件英文名称-编码”,例如,在一个具体例子中,key-value编码信息如表1所示。
表1
Figure BDA0002299045200000061
进一步的,Web服务还可提供外部访问功能,以便于探针在对开源软件进行校验时,访问Web服务得到编码,并将编码与应用程序运行时检验开源软件得到的校验对比,确定开源软件是否被篡改。
在优选的实施方式中,Web服务还可提供日志存储功能,在校验得到的校验结果之后可根据本次开源软件校验过程和结果形成校验日志,将得到的校验日志存储至Web服务中,可便于用户检查。
在优选的实施方式中,如图4所示,所述S200中根据预设校验规则对所述开源软件进行校验得到校验结果具体包括:
S210:采用预设编码算法对所有开源软件进行编码运算得到每个开源软件对应的校验码;
S220:将所述校验码与所述存储的编码进行比对得到校验结果。
可以理解的是,本发明在应用程序启动Jvm模块之后,运行main程序之前设置JavaAgent探针,通过探针实现应用程序中开源软件的校验,这样应用程序每次启动时均会检验一遍开源软件是否被篡改,避免了Java在投产运行之前或过程中开源软件被篡改,极大的提高了系统的安全性,也避免了人工检查的工作量,提高了校验效率。
探针可包括JavaAgent启动符号和待校验的开源软件信息。在一个具体例子中,探针可通过以下程序实现:javaagent:E:/gcs-widget-check-1.0.0.jar。其中,“javaagent:”表示通过JavaAgent技术启动开源软件的校验,E:/gcs-widget-check-1.0.0.jar为预先设置的需要扫描的开源软件的存储地址和名称,通过存储地址和名称读取对应的开源软件后方可进行编码。
探针遍历应用程序中的开源软件,即扫描所有的Jar文件,通过预设编码算法对开源软件进行编码运算得到开源软件的编码,例如,当采用md5或sha1编码技术时,计算得到所有开源软件的md5或sha1编码,进一步的可预先设置jarscode列表,将开源软件信息和对应的md5或sha1编码存储在jarscode列表中,例如表2所示。
表2
Jar名称 code(md5/sha1)
gcs-widget-batch-0.0.1.jar r20El5YE9LW6XiKDJ7Ks8Q==10
spring-core-3.2.0.RELEASE.jar nx2kw2SfIhN+edc88LeYyw==
在优选的实施方式中,对于S300中根据所述校验结果确定开源软件是否被篡改,若被篡改,执行预警操作。在一个具体例子中,校验结果可包括成功、失败和基线不存在等结果,根据不同的结果可以预先设置对应的预警操作,在一个可选的实施方式中,对于成功的校验结果,可以继续执行main程序,对于失败的校验结果,可以不再执行main程序,中断应用程序的启动,对于基线不存在的校验结果,可以继续执行并向用户反馈该校验结果,在另一个可选的实施方式中,也可以直接继续执行main程序,不中断应用程序的启动,将校验结果以校验日志的形式存储供用户查看或者根据校验结果向用户反馈预警信息,在实际应用中,也可以采用其他的预警操作,本发明对此并不作限定。
基于相同原理,本实施例还公开了一种Java系统开源软件防篡改系统。如图5所示,本实施例中,所述系统包括指令接收单元11、开源软件校验单元12和预警反馈单元13。
指令接收单元11用于接收Java系统应用程序中Jvm模块传输的启动指令。
开源软件校验单元12用于通过基于JavaAgent形成的探针确定应用程序中的所有开源软件,根据预设校验规则对所述开源软件进行校验得到校验结果。
预警反馈单元13用于根据所述校验结果确定开源软件是否被篡改,若被篡改,执行预警操作。
在优选的实施方式中,如图6所示,所述系统进一步包括预设置单元10。所述预设置单元10用于在启动Java系统应用程序之前,根据预设校验规则采用预设编码算法对所述开源软件进行编码运算得到每个开源软件对应的编码并存储。优选的,所述预设编码算法为哈希算法。
在优选的实施方式中,所述预设置单元10具体用于读取开源软件的Jar文件至字节数组,根据字节数组的字节数,采用md5或sha1编码得到编码后的字节数组,将编码后的字节数组进行base64编码,得到开源软件对应的编码并存储。
在优选的实施方式中,所述开源软件校验单元12具体用于采用预设编码算法对所有开源软件进行编码运算得到每个开源软件对应的校验码,将所述校验码与所述存储的编码进行比对得到校验结果。
由于该系统解决问题的原理与以上方法类似,因此本系统的实施可以参见方法的实施,在此不再赘述。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的由客户端执行的方法,或者,所述处理器执行所述程序时实现如上所述的由服务器执行的方法。
下面参考图7,其示出了适于用来实现本申请实施例的计算机设备600的结构示意图。
如图7所示,计算机设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有系统600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶反馈器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口606。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (12)

1.一种Java系统开源软件防篡改方法,其特征在于,包括:
接收Java系统应用程序中Jvm模块传输的启动指令;
通过基于JavaAgent形成的探针确定应用程序中的所有开源软件,根据预设校验规则对所述开源软件进行校验得到校验结果;
根据所述校验结果确定开源软件是否被篡改,若被篡改,执行预警操作。
2.根据权利要求1所述的Java系统开源软件防篡改方法,其特征在于,所述方法进一步包括在启动Java系统应用程序之前:
根据预设校验规则采用预设编码算法对所述开源软件进行编码运算得到每个开源软件对应的编码并存储。
3.根据权利要求2所述的Java系统开源软件防篡改方法,其特征在于,所述预设编码算法为哈希算法。
4.根据权利要求2所述的Java系统开源软件防篡改方法,其特征在于,所述根据预设校验规则采用预设编码算法对所述开源软件进行编码运算得到每个开源软件对应的编码并存储具体包括:
读取开源软件的Jar文件至字节数组;
根据字节数组的字节数,采用md5或sha1编码得到编码后的字节数组;
将编码后的字节数组进行base64编码,得到开源软件对应的编码并存储。
5.根据权利要求1所述的Java系统开源软件防篡改方法,其特征在于,所述根据预设校验规则对所述开源软件进行校验得到校验结果具体包括:
采用预设编码算法对所有开源软件进行编码运算得到每个开源软件对应的校验码;
将所述校验码与存储的编码进行比对得到校验结果。
6.一种Java系统开源软件防篡改系统,其特征在于,包括:
指令接收单元,用于接收Java系统应用程序中Jvm模块传输的启动指令;
开源软件校验单元,用于通过基于JavaAgent形成的探针确定应用程序中的所有开源软件,根据预设校验规则对所述开源软件进行校验得到校验结果;
预警反馈单元,用于根据所述校验结果确定开源软件是否被篡改,若被篡改,执行预警操作。
7.根据权利要求6所述的Java系统开源软件防篡改系统,其特征在于,所述系统进一步包括预设置单元,用于在启动Java系统应用程序之前,根据预设校验规则采用预设编码算法对所述开源软件进行编码运算得到每个开源软件对应的编码并存储。
8.根据权利要求7所述的Java系统开源软件防篡改系统,其特征在于,所述预设编码算法为哈希算法。
9.根据权利要求7所述的Java系统开源软件防篡改系统,其特征在于,所述预设置单元具体用于读取开源软件的Jar文件至字节数组,根据字节数组的字节数,采用md5或sha1编码得到编码后的字节数组,将编码后的字节数组进行base64编码,得到开源软件对应的编码并存储。
10.根据权利要求6所述的Java系统开源软件防篡改系统,其特征在于,所述开源软件校验单元具体用于采用预设编码算法对所有开源软件进行编码运算得到每个开源软件对应的校验码,将所述校验码与存储的编码进行比对得到校验结果。
11.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,
所述处理器执行所述程序时实现如权利要求1-5任一项所述方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,
该程序被处理器执行时实现如权利要求1-5任一项所述方法。
CN201911214232.6A 2019-12-02 2019-12-02 一种Java系统开源软件防篡改方法及系统 Active CN110909345B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911214232.6A CN110909345B (zh) 2019-12-02 2019-12-02 一种Java系统开源软件防篡改方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911214232.6A CN110909345B (zh) 2019-12-02 2019-12-02 一种Java系统开源软件防篡改方法及系统

Publications (2)

Publication Number Publication Date
CN110909345A true CN110909345A (zh) 2020-03-24
CN110909345B CN110909345B (zh) 2022-03-22

Family

ID=69821176

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911214232.6A Active CN110909345B (zh) 2019-12-02 2019-12-02 一种Java系统开源软件防篡改方法及系统

Country Status (1)

Country Link
CN (1) CN110909345B (zh)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102122263A (zh) * 2011-03-23 2011-07-13 成都勤智数码科技有限公司 一种java应用系统运行时监控方法和装置
CN102622289A (zh) * 2011-01-26 2012-08-01 阿里巴巴集团控股有限公司 程序设置方法、程序监控方法与装置、系统
US20150205949A1 (en) * 2014-01-17 2015-07-23 Microsoft Corporation Runtime application integrity protection
CN104834590A (zh) * 2014-02-11 2015-08-12 腾讯科技(深圳)有限公司 软件测试方法和系统
CN105094919A (zh) * 2015-08-13 2015-11-25 海信集团有限公司 一种应用程序启动方法
CN105260654A (zh) * 2015-11-13 2016-01-20 浪潮电子信息产业股份有限公司 一种软件系统自身完整性的验证方法
CN106355081A (zh) * 2016-09-07 2017-01-25 深圳市新国都支付技术有限公司 一种安卓程序启动校验方法和装置
CN107092824A (zh) * 2017-04-13 2017-08-25 北京洋浦伟业科技发展有限公司 一种应用程序的运行方法及装置
CN108776764A (zh) * 2018-06-26 2018-11-09 南通森雅商务服务有限公司 一种交通安全管理与监管系统及其使用方法
CN108898007A (zh) * 2018-06-26 2018-11-27 焦点科技股份有限公司 一种基于JavaAgent和dll增强Java分发软件的安全方法
CN109460656A (zh) * 2018-11-06 2019-03-12 深圳市风云实业有限公司 应用程序启动控制方法及计算机终端
CN110262955A (zh) * 2019-06-25 2019-09-20 四川长虹电器股份有限公司 基于pinpoint的应用性能监控工具
CN110348180A (zh) * 2019-06-20 2019-10-18 苏州浪潮智能科技有限公司 一种应用程序启动控制方法和装置
CN110515806A (zh) * 2019-08-30 2019-11-29 北京博睿宏远数据科技股份有限公司 探针配置方法、装置、计算机设备及存储介质

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622289A (zh) * 2011-01-26 2012-08-01 阿里巴巴集团控股有限公司 程序设置方法、程序监控方法与装置、系统
CN102122263A (zh) * 2011-03-23 2011-07-13 成都勤智数码科技有限公司 一种java应用系统运行时监控方法和装置
US20150205949A1 (en) * 2014-01-17 2015-07-23 Microsoft Corporation Runtime application integrity protection
CN104834590A (zh) * 2014-02-11 2015-08-12 腾讯科技(深圳)有限公司 软件测试方法和系统
CN105094919A (zh) * 2015-08-13 2015-11-25 海信集团有限公司 一种应用程序启动方法
CN105260654A (zh) * 2015-11-13 2016-01-20 浪潮电子信息产业股份有限公司 一种软件系统自身完整性的验证方法
CN106355081A (zh) * 2016-09-07 2017-01-25 深圳市新国都支付技术有限公司 一种安卓程序启动校验方法和装置
CN107092824A (zh) * 2017-04-13 2017-08-25 北京洋浦伟业科技发展有限公司 一种应用程序的运行方法及装置
CN108776764A (zh) * 2018-06-26 2018-11-09 南通森雅商务服务有限公司 一种交通安全管理与监管系统及其使用方法
CN108898007A (zh) * 2018-06-26 2018-11-27 焦点科技股份有限公司 一种基于JavaAgent和dll增强Java分发软件的安全方法
CN109460656A (zh) * 2018-11-06 2019-03-12 深圳市风云实业有限公司 应用程序启动控制方法及计算机终端
CN110348180A (zh) * 2019-06-20 2019-10-18 苏州浪潮智能科技有限公司 一种应用程序启动控制方法和装置
CN110262955A (zh) * 2019-06-25 2019-09-20 四川长虹电器股份有限公司 基于pinpoint的应用性能监控工具
CN110515806A (zh) * 2019-08-30 2019-11-29 北京博睿宏远数据科技股份有限公司 探针配置方法、装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李玮: "《Java程序防篡改器设计方案研究》", 《读书文摘》 *

Also Published As

Publication number Publication date
CN110909345B (zh) 2022-03-22

Similar Documents

Publication Publication Date Title
CN117278224A (zh) 用于验证身份属性信息的方法和系统
US9632765B1 (en) Customized application package with context specific token
CN112801663B (zh) 区块链存证方法、装置、系统、设备和介质
CN110555293A (zh) 用于保护数据的方法、装置、电子设备和计算机可读介质
CN109347865B (zh) 一种基于区块链技术的用户数据鉴权存证的方法及系统
CN105260654A (zh) 一种软件系统自身完整性的验证方法
CN112231702A (zh) 应用保护方法、装置、设备及介质
CN110990798B (zh) 应用程序权限配置方法、装置、电子设备及存储介质
CN106709281A (zh) 补丁发放和获取方法、装置
CN111585995A (zh) 安全风控信息传输、处理方法、装置、计算机设备及存储介质
CN109522683B (zh) 软件溯源方法、系统、计算机设备及存储介质
CN111045722A (zh) 智能合约打包方法、装置、系统、计算机设备及存储介质
CN111224826B (zh) 基于分布式系统的配置更新方法、设备、系统及介质
CN110909345B (zh) 一种Java系统开源软件防篡改方法及系统
CN109635558B (zh) 访问控制方法、装置和系统
CN117556455A (zh) 一种数据脱敏安全性检查方法
CN108052842B (zh) 签名数据的存储、验证方法及装置
CN110890979A (zh) 堡垒机自动部署方法、装置、设备及介质
CN111698227B (zh) 信息同步管理方法、装置、计算机系统及可读存储介质
CN114491661A (zh) 基于区块链的日志防篡改方法及系统
CN115509556A (zh) 一种应用管理方法、装置、设备及介质
CN111752600B (zh) 代码异常检测方法、装置、计算机设备及存储介质
CN106485104B (zh) 终端安全策略的自动修复方法和装置、系统
CN110298146B (zh) 一种应用程序的处理、运行方法及装置
CN113360172A (zh) 应用部署方法、装置、计算机设备及存储介质

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