CN115617379A - 基于JavaAgent的热更新修复Java应用漏洞的方法 - Google Patents

基于JavaAgent的热更新修复Java应用漏洞的方法 Download PDF

Info

Publication number
CN115617379A
CN115617379A CN202211633103.2A CN202211633103A CN115617379A CN 115617379 A CN115617379 A CN 115617379A CN 202211633103 A CN202211633103 A CN 202211633103A CN 115617379 A CN115617379 A CN 115617379A
Authority
CN
China
Prior art keywords
vulnerability
hot
patch
application
java
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
CN202211633103.2A
Other languages
English (en)
Other versions
CN115617379B (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.)
Chengdu Shumo Technology Co ltd
Original Assignee
Chengdu Shumo 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 Chengdu Shumo Technology Co ltd filed Critical Chengdu Shumo Technology Co ltd
Priority to CN202211633103.2A priority Critical patent/CN115617379B/zh
Publication of CN115617379A publication Critical patent/CN115617379A/zh
Application granted granted Critical
Publication of CN115617379B publication Critical patent/CN115617379B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

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

Abstract

本发明涉及计算机软件开发技术领域,公开了一种基于JavaAgent的热更新修复Java应用漏洞的方法,本发明通过构建漏洞补丁热修复应用程序,并将其事先部署至可能会存在安全漏洞需要进行修复的目标Java应用的服务器上,然后通过Web界面上传指定漏洞文件,进行漏洞热修复。本发明占用极少的带宽流量资源进行漏洞修复,并且能够在不中断用户业务的情况下,安全的完成漏洞修复。

Description

基于JavaAgent的热更新修复Java应用漏洞的方法
技术领域
本发明涉及计算机软件开发技术领域,具体涉及一种基于JavaAgent的热更新修复Java应用漏洞的方法。
背景技术
随着信息技术飞速发展,各个应用安全漏洞的发现更加常见且传播速度也更快、范围更广,因此对于快速响应,修复安全漏洞提出了更高的要求。
目前,针对Java应用漏洞的修复,通常采用直接本地修复漏洞后,再上传至服务器,然后停服重启应用的方式对漏洞进行修复。上述修复方式由于需要上传全部的应用包,因此存在浪费带宽流量资源的问题,并且由于需要访问服务器后台,还存在一定的安全风险以及操作繁琐的问题。
公开号为CN112416395A,公开日为2021年02月26日的发明专利公开了一种热修复更新方法和装置,其具体的技术方案为:本发明公开了一种热修复更新方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收终端上传的终端信息;根据所述终端信息在漏洞库中匹配目标漏洞,从而在补丁库中匹配所述目标漏洞对应的目标补丁包;对所述目标补丁包进行加密,并将加密后的所述目标补丁包下发至所述终端,以使所述终端加载所述目标补丁包,从而进行热修复。该实施方式能够解决纯原生开发的APP存在热修复局限性或者无法直接通过加载第三方Framework的方式对主程序进行修改的技术问题。
上述现有技术主要存在以下问题:1、需要应用本身上传终端信息,存在终端信息泄漏风险;2、对于漏洞修复而言,由应用本身上传终端信息,不够灵活,若APP无法上传终端信息,那么该漏洞就一直会存在;3、该现有技术主要解决纯原生开发的APP,对于JavaWeb应用方面并不适用。
发明内容
为了解决上述现有技术存在的问题和缺陷,本发明提出了一种基于JavaAgent的热更新修复Java应用漏洞的方法,通过事先部署漏洞补丁热修复应用程序到可能会存在安全漏洞需要进行修复的目标Java应用的服务器上,然后通过Web界面上传指定漏洞文件,进行漏洞热修复。本发明占用极少的带宽流量资源进行漏洞修复,并且能够在不终端用户业务的情况下,安全的完成漏洞修复。
为了实现上述发明目的,本发明的技术方案如下:
一种基于JavaAgent的热更新修复Java应用漏洞的方法,具体包括以下步骤:
步骤S1.构建漏洞补丁热修复应用程序;
步骤S2.部署漏洞补丁热修复应用程序至当前或未来需要解决安全漏洞问题的目标Java应用的服务器上;
步骤S3.漏洞补丁热修复应用程序对存在安全漏洞问题的目标Java应用中的代码进行本地修改,并将修改的后的文件编译为class文件;
步骤S4.漏洞补丁热修复应用程序对编译后的class文件进行加密,得到加密后的class文件以及密钥;
步骤S5.登录漏洞补丁热修复应用程序Web界面,查看并选择待修复漏洞的目标Java应用,然后上传加密后的class文件以及对应的密钥;
步骤S6.漏洞补丁热修复应用程序根据Web界面选择的待修复漏洞的目标Java应用,获取该目标Java应用对应的进程编码,然后通过上传的密钥将加密后的class文件进行解密,生成补丁class文件,通过JavaAgent进程间通信机制,将补丁class文件,传入目标Java应用进程中,对正在运行且存在安全漏洞问题的目标Java应用进行动态文件替换,执行热修复操作,实现目标Java应用不停机漏洞修复。
作为优选地,所述步骤S3还包括,漏洞补丁热修复应用程序将class文件存储至指定的磁盘中。
作为优选地,所述步骤S4还包括,漏洞补丁热修复应用程序将加密后的class文件以及密钥存储至指定的磁盘中。
作为优选地,所述步骤S4中,漏洞补丁热修复应用程序通过SM2算法,利用私钥对class文件进行加密。
作为优选地,所述漏洞补丁热修复应用程序通过JavaAgent技术的JavaAttach进程间通信机制将补丁文件传入目标Java应用进程中。
作为优选地,所述漏洞补丁热修复应用程序包括Web界面登录认证模块、加密算法模块、Web界面文件上传模块以及JavaAttach进程通信模块。
本发明的有益效果:
(1)本发明在漏洞修复过程中,由漏洞补丁服务器动态链接进行漏洞热更新,主动性和灵活性好,并且修复时只针对性的上传少量修补漏洞文件,能够节约网络带宽资源;进一步地,本发明在修复过程中不用中断用户的业务进程,也无需访问服务器后台,对应用系统的性能和使用体验影响不大,也提高了修复效率。
(2)本发明在热更新修复过程中,上传提供加密的class文件,从而提高了热更新修复的安全性。
(3)本发明通过Web界面上传指定漏洞文件,具有灵活方便的特点。
附图说明
本发明的前述和下文具体描述在结合以下附图阅读时变得更清楚,附图中:
图1为本发明方法流程图。
具体实施方式
为了使本领域的技术人员更好地理解本发明中的技术方案,下面将通过几个具体的实施例来进一步说明实现本发明发明目的的技术方案,需要说明的是,本发明要求保护的技术方案包括但不限于以下实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
目前,针对Java应用漏洞的修复,通常采用直接本地修复漏洞后,再上传至服务器,然后停服重启应用的方式对漏洞进行修复。而上述修复方式由于需要上传全部的应用包,因此存在浪费带宽流量资源的问题,并且由于需要访问服务器后台,还存在一定的安全风险以及操作繁琐的问题。
基于此,本发明的实施例提出了一种基于JavaAgent的热更新修复Java应用漏洞的方法,通过事先构建漏洞补丁热修复应用程序,然后将该漏洞补丁热修复应用程序部署至可能会存在安全漏洞需要进行修复的Java应用目标服务器上,通过漏洞补丁热修复应用程序的Web界面上传指定漏洞文件,最终进行漏洞热修复。本发明在修复漏洞时占用极少的带宽流量资源,并且能够在不终端用户业务的情况下,安全的完成漏洞修复。 为了便于对本发明的技术方案进行理解,首先对本发明所涉及的专业术语进行解释说明。
SM2算法为非对称加密算法,公钥与私钥是通过非对称加密算法得到的一个密钥对,使用密钥对的时候,如果用其中一个密钥加密一段数据,只能使用密钥对中的另一个密钥才能解密数据。
Java Attach机制简单理解就是Java提供的一种Java应用间通信的能力,能让一个Java应用传输命令或数据给另外一个目标Java应用,进而让目标Java应用执行一些操作或替换一些文件。
本发明的实施例公开了一种基于JavaAgent的热更新修复Java应用漏洞的方法,说明书附图1为本发明的方法流程图,参照说明书附图1所示,本发明方法主要包括以下步骤。
步骤S1.构建独立运行的漏洞补丁热修复应用程序,该漏洞补丁热修复应用程序用于在不停机运行的状态下,对存在安全漏洞的目标Java应用进行漏洞热更新修复。
在本实施例中,需要说明的是,漏洞补丁热修复应用程序基于JavaAgent技术实现目标Java应用漏洞的热更新修复。
在本实施例中,还需要说明的是,漏洞补丁热修复应用程序可以是Java应用的开发人员进行构建;进一步地,当软件应用的开发方提供相应的技术支持与指导,该漏洞补丁热修复应用程序也可以是Java应用的用户自己进行搭建。
步骤S2.将构建的独立运行的漏洞补丁热修复应用程序部署至当前或未来需要解决安全漏洞问题的目标Java应用的服务器上。
在本实施例中,需要说明的是,当前需要解决安全漏洞问题的目标Java应用是指现在已知应用存在了安全漏洞,比如在应用部署后,自测过程中发现还存在安全漏洞,或者应用使用到的开源jar包版本,在网上披露了新的安全漏洞。
在本实施例中,还需要说明的是,未来需要解决安全漏洞问题的目标Java应用是指现阶段还未发现安全漏洞,但后续通过测试或者网上披露信息发现有安全漏洞问题的Java应用。
步骤S3.漏洞补丁热修复应用程序对存在安全漏洞问题的目标Java应用中的代码进行本地修改,并将修改的后的文件编译为class文件。
在本实施例中,需要说明的是,目标Java应用中的代码进行本地修改是指先在本地开发环境进行漏洞修改,并进行验证通过,然后在将修改后的文件编译为class文件。本地修改包括但不限于对代码的逻辑、变量值等进行修改,修改操作一般由软件开发人员进行操作。
在本实施例中,还需要说明的是,编译后生成的class文件,漏洞补丁热修复应用程序可以调用内部相应的模块,将其存储至本地指定的磁盘中。
步骤S4.漏洞补丁热修复应用程序对编译后的class文件进行加密,得到加密后的class文件以及密钥。
在本实施例中,需要说明的是,漏洞补丁热修复应用程序通过调用内部的模块,采用SM2加密算法,利用私钥对编译后的class文件进行加密,最终会得到加密后的class文件以及用于解密的公钥。
在本实施例中,还需要说明的是,漏洞补丁热修复应用程序还可以使用RSA、哈希等方式进行加密。
在本实施例中,还需要进一步说明的是,漏洞补丁热修复应用程序可以根据需要,调用内部模块将加密后的class文件以及公钥存储至本地指定的磁盘中。
在本实施例中,最终生成的加密class文件以及公钥,软件开发人员会将其传输给用户,传输的方式可以是通过网络进行传输、例如邮件等,也可以通过U盘等将以上文件传输给软件用户。
步骤S5.用户登录漏洞补丁热修复应用程序Web界面,Web界面会展示所有存在安全漏洞待热更新修复的Java应用信息,然后用户自主选择需要热更新修复的目标Java应用,然后在Web界面上传接受的加密class文件以及对应的公钥。
在本实施例中,需要说明的是,应用信息由漏洞补丁热修复应用程序调用shell脚本获取,应用信息包括应用名以及对应的PID进程号。
步骤S6.漏洞补丁热修复应用程序根据用户在Web界面选择的待修复漏洞的目标Java应用,获取该目标Java应用对应的进程编码,然后通过用户上传的公钥将加密后的class文件进行解密,生成相应的补丁class文件,然后利用JavaAgent技术的JavaAttach进程间通信机制,将补丁class文件,传入目标Java应用进程中,对正在运行且存在安全漏洞问题的目标Java应用进行动态文件替换,将存在漏洞的class文件覆盖掉,最终实现目标Java应用不停机漏洞修复的效果。
在本实施例中,JavaAgent技术中,实现agentmain()方法的Java文件并在jar包中,MANIFEST.MF配置文件指定Agent-Class等于Java文件名,结合JavaAttach机制获取目标Java应用的class文件流。
在本实施例中,具体的热更新方法为漏洞补丁热修复应用程序实现Instrumentation接口的retransformClasses()方法,将对应上传的文件进行公钥解密后生成补丁class文件二进制流,然后通过Attach机制传入目标Java应用程序中进行覆盖更新。
更进一步地,在本实施例中,所述漏洞补丁热修复应用程序包括Web界面登录认证模块、加密算法模块、Web界面文件上传模块以及JavaAttach进程通信模块,其中:
所述Web界面登录认证模块,被配置为用于通过Web界面使用账户密码登录漏洞补丁热修复应用程序;
所述加密算法模块,被配置为用于对编译后的class文件进行加密处理。具体的加密算法可以是SM2加密算法、RSA加密算法、哈希加密等;
所述Web界面文件上传模块,被配置为用于通过Web界面上传加密后的class文件以及解密的密钥;
所述JavaAttach进程通信模块,被配置为用于实现漏洞补丁热修复应用程序与目标Java应用之间的通信。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

Claims (6)

1.一种基于JavaAgent的热更新修复Java应用漏洞的方法,其特征在于,具体包括以下步骤:
步骤S1.构建漏洞补丁热修复应用程序;
步骤S2.部署漏洞补丁热修复应用程序至当前或未来需要解决安全漏洞问题的目标Java应用的服务器上;
步骤S3.漏洞补丁热修复应用程序对存在安全漏洞问题的目标Java应用中的代码进行本地修改,并将修改的后的文件编译为class文件;
步骤S4.漏洞补丁热修复应用程序对编译后的class文件进行加密,得到加密后的class文件以及密钥;
步骤S5.登录漏洞补丁热修复应用程序Web界面,查看并选择待修复漏洞的目标Java应用,然后上传加密后的class文件以及对应的密钥;
步骤S6.漏洞补丁热修复应用程序根据Web界面选择的待修复漏洞的目标Java应用,获取该目标Java应用对应的进程编码,然后通过上传的密钥将加密后的class文件进行解密,生成补丁class文件,通过JavaAgent进程间通信机制,将补丁class文件,传入目标Java应用进程中,对正在运行且存在安全漏洞问题的目标Java应用进行动态文件替换,执行热修复操作,实现目标Java应用不停机漏洞修复。
2.根据权利要求1所述的基于JavaAgent的热更新修复Java应用漏洞的方法,其特征在于,所述步骤S3还包括,漏洞补丁热修复应用程序将class文件存储至指定的磁盘中。
3.根据权利要求1所述的基于JavaAgent的热更新修复Java应用漏洞的方法,其特征在于,所述步骤S4还包括,漏洞补丁热修复应用程序将加密后的class文件以及密钥存储至指定的磁盘中。
4.根据权利要求1所述的基于JavaAgent的热更新修复Java应用漏洞的方法,其特征在于,所述步骤S4中,漏洞补丁热修复应用程序通过SM2算法,利用私钥对class文件进行加密。
5.根据权利要求1所述的基于JavaAgent的热更新修复Java应用漏洞的方法,其特征在于,所述漏洞补丁热修复应用程序通过JavaAgent技术的JavaAttach进程间通信机制将补丁文件传入目标Java应用进程中。
6.根据权利要求1所述的基于JavaAgent的热更新修复Java应用漏洞的方法,其特征在于,所述漏洞补丁热修复应用程序包括Web界面登录认证模块、加密算法模块、Web界面文件上传模块以及JavaAttach进程通信模块。
CN202211633103.2A 2022-12-19 2022-12-19 基于JavaAgent的热更新修复Java应用漏洞的方法 Active CN115617379B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211633103.2A CN115617379B (zh) 2022-12-19 2022-12-19 基于JavaAgent的热更新修复Java应用漏洞的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211633103.2A CN115617379B (zh) 2022-12-19 2022-12-19 基于JavaAgent的热更新修复Java应用漏洞的方法

Publications (2)

Publication Number Publication Date
CN115617379A true CN115617379A (zh) 2023-01-17
CN115617379B CN115617379B (zh) 2023-03-10

Family

ID=84880396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211633103.2A Active CN115617379B (zh) 2022-12-19 2022-12-19 基于JavaAgent的热更新修复Java应用漏洞的方法

Country Status (1)

Country Link
CN (1) CN115617379B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951279A (zh) * 2017-02-27 2017-07-14 努比亚技术有限公司 应用的热修复装置及方法
CN107908402A (zh) * 2017-08-15 2018-04-13 口碑(上海)信息技术有限公司 Java服务端热修复方法和系统
CN109726052A (zh) * 2018-12-29 2019-05-07 北京金山安全软件有限公司 服务器热修复的实现方法、装置及电子设备
CN110187910A (zh) * 2019-05-30 2019-08-30 腾讯科技(上海)有限公司 一种热更新方法、装置、设备及计算机可读存储介质
US20200264863A1 (en) * 2019-02-19 2020-08-20 Baidu Online Network Technology (Beijing) Co., Ltd. Hot update method, operating system, terminal device, and storage medium
CN115080098A (zh) * 2022-06-14 2022-09-20 平安付科技服务有限公司 基于JavaScript的Flutter热更新方法、装置、设备及介质
CN115291923A (zh) * 2022-08-04 2022-11-04 平安银行股份有限公司 应用程序的热修复方法、系统、设备及可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951279A (zh) * 2017-02-27 2017-07-14 努比亚技术有限公司 应用的热修复装置及方法
CN107908402A (zh) * 2017-08-15 2018-04-13 口碑(上海)信息技术有限公司 Java服务端热修复方法和系统
CN109726052A (zh) * 2018-12-29 2019-05-07 北京金山安全软件有限公司 服务器热修复的实现方法、装置及电子设备
US20200264863A1 (en) * 2019-02-19 2020-08-20 Baidu Online Network Technology (Beijing) Co., Ltd. Hot update method, operating system, terminal device, and storage medium
CN110187910A (zh) * 2019-05-30 2019-08-30 腾讯科技(上海)有限公司 一种热更新方法、装置、设备及计算机可读存储介质
CN115080098A (zh) * 2022-06-14 2022-09-20 平安付科技服务有限公司 基于JavaScript的Flutter热更新方法、装置、设备及介质
CN115291923A (zh) * 2022-08-04 2022-11-04 平安银行股份有限公司 应用程序的热修复方法、系统、设备及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ERWANN WERNLI等: "Theseus: Whole updates of java server applications" *
张鑫: "Android热更新管理系统的研究与设计" *

Also Published As

Publication number Publication date
CN115617379B (zh) 2023-03-10

Similar Documents

Publication Publication Date Title
CN109214168B (zh) 固件升级方法及装置
KR101393307B1 (ko) 보안 부팅 방법 및 그 방법을 사용하는 반도체 메모리시스템
US8230222B2 (en) Method, system and computer program for deploying software packages with increased security
US8458480B2 (en) Method and apparatus for binding TPM keys to execution entities
US8254568B2 (en) Secure booting a computing device
US8150039B2 (en) Single security model in booting a computing device
US20090259855A1 (en) Code Image Personalization For A Computing Device
JP2015532054A (ja) 企業情報管理方針に従ったキー及びデータ交換を伴うセキュアアプリエコシステム
CN108140092B (zh) 具有多个可信根的设备
US9524394B2 (en) Method and apparatus for providing provably secure user input/output
US20140059341A1 (en) Creating and accessing encrypted web based content in hybrid applications
KR20170089352A (ko) 가상화 시스템에서 수행하는 무결성 검증 방법
CN115580413B (zh) 一种零信任的多方数据融合计算方法和装置
CN107995230B (zh) 一种下载方法及终端
CN115617379B (zh) 基于JavaAgent的热更新修复Java应用漏洞的方法
CN112115430A (zh) 一种apk的加固方法、电子设备及存储介质
JP2013045277A (ja) プログラム難読化方法およびリモートデバッグシステム
WO2020199177A1 (zh) 运行智能合约的方法和装置
Klingsheim et al. Challenges in securing networked J2ME applications
CN115391750A (zh) 一种算法授权方法、装置、电子设备和存储介质
US10554629B2 (en) Push based encryption
KR102387685B1 (ko) 보안 부트 검증 방법 및 이를 위한 보안 칩
US20240205224A1 (en) Methods for constructing trusted grid, trusted grids, and application interaction methods thereon
CN118260774B (zh) 服务器的启动方法及装置、存储介质及电子设备
US20240179006A1 (en) Performing verified restore of data assets in a cryptographic device

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