一种面向容器管理平台的JAR漏洞检测方法、系统、储存介质以及计算机技术方案

技术编号:38319158 阅读:11 留言:0更新日期:2023-07-29 09:01
本发明专利技术涉及计算机技术领域,具体涉及一种面向容器管理平台的JAR漏洞检测方法、系统、储存介质以及计算机,所述方法包括编译打包JAVA服务、构建镜像、监听容器创建事件、监听容器变更事件、监听容器停止事件以及定位JAR,所述定位JAR包括遍历运行时容器集合,针对每一容器ID,查看其镜像版本,由其镜像查看JAR依赖;本申请维护镜像版本与JAR依赖、运行时容器ID情况,能够实时查询当前运行所有容器JAR依赖情况,方便迅速定位每个JAR所关联的容器集合,以非侵入的模式,提供迅速、准确定位含有特定JAR的容器集合,方便在安全漏洞等场景发生时,尽快干预。快干预。

【技术实现步骤摘要】
一种面向容器管理平台的JAR漏洞检测方法、系统、储存介质以及计算机


[0001]本专利技术涉及计算机
,具体涉及一种面向容器管理平台的JAR漏洞检测方法、系统、储存介质以及计算机。

技术介绍

[0002]容器:容器是一种虚拟化技术,基于服务器资源共享与隔离机制实现,方便应用部署,利于弹性伸缩,提升运维效率。常见容器技术如Docker,以不同编程语言开发的应用都可容器化部署。
[0003]镜像:如Docker Image,镜像是容器运行的模板。镜像是构建产物,容器是运行时体现,不同的容器可加载同一个镜像。
[0004]容器管理平台:支持镜像与容器的生命周期管理。一般应用方式包括基于代码仓库构建镜像、基于镜像创建并启动容器、管理容器运行时状态。
[0005]JAR:一种软件包文件格式,用于聚合大量Java类文件。JAVA程序开发一般依赖若干开源或自主开发的JAR。
[0006]MAVEN:JAVA工程管理及构建工具,用于管理JAVA工程依赖的JAR文件及版本,提供编译、打包等构建工具。
[0007]应用部署方式:常见服务器部署与容器部署,服务器部署指应用直接部署于服务器宿主的操作系统之上,可能独占资源,也可能与其他服务共享资源。容器部署指基于服务构建镜像,以容器方式加载运行。容器部署方式有利于资源共享与隔离,方便服务能力弹性扩展与运维管理。容器部署方式常见于公有云、私有云、混合云等不同PaaS平台,是云服务主要服务模式之一。
[0008]JAVA程序开发模式:JAVA服务开发广泛依赖开源JAR,常见包括Spring、Hibernate、iBatis等应用与数据库框架,log4j、logback等日志框架,redis、ElasticSearch等中间件客户端,网络、文件、字符串等处理工具等。一般而言,一个JAVA服务依赖的jar往往几十个。
[0009]JAR依赖检测:JAR依赖是树状结构,一个JAVA服务依赖多个一级JAR,每个一级JAR又依赖多个二级JAR,不同一级JAR可依赖相同的二级JAR,一级JAR包也可作为其他一级JAR包的依赖,MAVEN为避免对同一JAR引入不同版本提供解决方案。
[0010]依赖检测有多重应用场景,如静态检查,用于检查JAR冲突版本引入问题。本申请讨论面向容器管理平台的JAR依赖检测方法,强调运行时检查,主要用于漏洞检测等场景。2021年12月log4j漏洞爆发影响了整个JAVA生态系统,据统计,MavenCentral(https://view.inews.qq.com/a/20211221A03X7N00)超过8%的软件至少有一个版本受漏洞影响。容器化作为当前最流行的部署方式,提供一种方法检测当前容器平台上服务是否有漏洞尤为必要。
[0011]现有技术中通过以下方案检测当前容器上服务是否有JAR漏洞:
[0012]方案一:多数公司有内部Maven仓库,可维护本公司已有的JAVA服务版本。可根据每个JAVA服务历史版本排查依赖情况。
[0013]方案二:利用网络安全或漏洞检测工具,设置漏洞攻击方式,针对容器平台上所有服务检查。
[0014]但是现有技术中存在缺点如下:
[0015]方案一:Maven仓库未记录当前所有服务的运行版本,历史版本漏洞并不影响实际服务运行。如管理规范或实际执行不标准,线上运行服务可能并未在Maven仓库中发布。
[0016]方案二:需专业安全人员与技术支持,每种漏洞发现时需维护或新增攻击方式,且攻击在线服务可能对生产环境产生不利影响。

技术实现思路

[0017]本专利技术所要解决的技术问题是:提供一种针对运行于容器管理平台的JAVA服务,维护运行时JAVA服务JAR依赖信息,提供检测方法快速定位依赖具体JAR版本的服务集合面向容器管理平台的JAR漏洞检测方法、系统、储存介质以及计算机。
[0018]为了解决上述技术问题,本专利技术采用的第一种技术方案为:
[0019]一种面向容器管理平台的JAR漏洞检测方法,包括
[0020]编译打包JAVA服务,获取当前JAVA服务的JAR依赖信息;
[0021]构建镜像,将对此镜像生成唯一标识;
[0022]监听容器创建事件,容器创建时指定镜像版本,根据镜像版本查询当前运行态容器所关联的JAR依赖信息,记录当前容器ID与镜像版本的关系,将当前容器ID维护入运行时容器集合;
[0023]监听容器变更事件,仅当镜像版本变化时,记录容器ID与镜像版本关系,取消与原镜像版本关系,将当前容器ID维护入运行时容器集合;
[0024]监听容器停止事件,将当前容器ID从运行时容器集合删除;
[0025]定位JAR,遍历运行时容器集合,针对每一容器ID,查看其镜像版本,由其镜像查看JAR依赖。
[0026]优选地,获取当前JAVA服务的JAR依赖信息包括
[0027]Maven命令查看或等待JAVA工程编译打包完毕,查看lib目录中JAR列表。
[0028]优选地,构建镜像时记录和维护镜像标识与JAR依赖信息的关联,可持久化存储于数据库中。
[0029]优选地,所述JAR信息包括名称、版本。
[0030]优选地,定位JAR进一步包括
[0031]遍历运行时容器集合,针对每一容器ID,查看其镜像版本,由其镜像查看JAR依赖,若存在目标版本JAR则将当前容器ID、镜像版本记入返回值。
[0032]优选地,构建JAVA服务采用Maven、Ant、Gradle中的一种。
[0033]优选地,若容器管理平台可直接查询当前运行容器集合,则无需监听容器创建事件、监听容器变更事件、监听容器停止事件。
[0034]为了解决上述技术问题,本专利技术采用的第二种技术方案为:
[0035]一种面向容器管理平台的JAR漏洞检测系统,包括控制器所述控制器根据上述的
面向容器管理平台的JAR漏洞检测方法的运行。
[0036]为了解决上述技术问题,本专利技术采用的第三种技术方案为:
[0037]一种存储介质,所述存储介质存储有执行上述的面向容器管理平台的JAR漏洞检测方法的计算机程序。
[0038]为了解决上述技术问题,本专利技术采用的第四种技术方案为:
[0039]一种计算机,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的面向容器管理平台的JAR漏洞检测方法。
[0040]本专利技术的有益效果在于:本申请维护镜像版本与JAR依赖、运行时容器ID情况,能够实时查询当前运行所有容器的JAR依赖情况,方便迅速定位每个JAR所关联的容器集合,以非侵入的模式,提供迅速、准确定位含有特定JAR的容器集合,方便在安全漏洞等场景发生时,尽快干预。
具体实施方式
[0041]为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式予以说明。
...

【技术保护点】

【技术特征摘要】
1.一种面向容器管理平台的JAR漏洞检测方法,其特征在于,包括编译打包JAVA服务,获取当前JAVA服务的JAR依赖信息;构建镜像,将对此镜像生成唯一标识;监听容器创建事件,容器创建时指定镜像版本,根据镜像版本查询当前运行态容器所关联的JAR依赖信息,记录当前容器ID与镜像版本的关系,将当前容器ID维护入运行时容器集合;监听容器变更事件,仅当镜像版本变化时,记录容器ID与镜像版本关系,取消与原镜像版本关系,将当前容器ID维护入运行时容器集合;监听容器停止事件,将当前容器ID从运行时容器集合删除;定位JAR,遍历运行时容器集合,针对每一容器ID,查看其镜像版本,由其镜像查看JAR依赖。2.根据权利要求1所述的面向容器管理平台的JAR漏洞检测方法,其特征在于,获取当前JAVA服务的JAR依赖信息包括Maven命令或等待JAVA工程编译完毕,查看lib目录中JAR列表。3.根据权利要求1所述的面向容器管理平台的JAR漏洞检测方法,其特征在于,构建镜像时记录和维护镜像标识与JAR依赖信息的关联,可持久化存储于数据库中。4.根据权利要求1所述的面向容器管理平台的JAR漏洞检测方法,其特征在于,所述JAR信息包括名称、版本。5.根据权利要求1所述的面向容器管理平台的JA...

【专利技术属性】
技术研发人员:赵鑫
申请(专利权)人:中国人寿资产管理有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1