当前位置: 首页 > news >正文

使用 Grype 检查 .jar 包中的漏洞

在开发和部署 Java 应用时,确保依赖库和项目文件中的安全性至关重要。Grype 是一款强大的开源工具,用于扫描项目文件(如 .jar 包)中的已知漏洞。本篇博客将介绍如何手动安装 Grype 并使用它检测 .jar 包中的安全漏洞。

一、手动安装 Grype

Grype 提供了一个简单的命令行工具来检测软件依赖项中的漏洞,支持包括 .jar 在内的多种文件格式。以下是如何在 Linux 系统上手动安装 Grype 的步骤。

1. 前往 下载 Grype

首先,前往使用 Grype 检查 .jar 包中的漏洞,下载适合你的操作系统的 Grype 版本。

2. 下载适合你的 Linux 版本

在页面中找到最新的发布版本,并下载与系统匹配的二进制文件。对于 Linux 用户,可以选择 grype_0.80.0_linux_amd64.tar.gz 这样的文件。

3. 上传到linux上

如: /www/wwwroot/grype

4. 解压文件

下载完成后,使用 tar 命令解压缩文件:

tar -xzf grype_0.80.0_linux_amd64.tar.gz

5. 将 Grype 移动到系统路径

将解压出来的 grype 二进制文件移动到 /usr/local/bin/,这样系统会自动识别该命令。

sudo mv grype /usr/local/bin/

6. 检查 Grype 是否安装成功

执行以下命令,检查 Grype 是否已成功安装并可用:

grype version

如果安装成功,终端将显示 Grype 的版本信息,如:

Application: grype
Version: 0.80.0
BuildDate: 2024-01-01
...

二、检测 .jar 包中的漏洞

Grype 安装成功后,就可以开始扫描 .jar 文件中的安全漏洞了。Grype 支持扫描多种文件格式(如 .jar.tar.tgz 等),并会根据已知漏洞数据库提供详细的安全报告。

1. 使用 Grype 检查 .jar 包中的漏洞

假设我们已经生成了一个 .jar 包并希望检测其中的漏洞,可以使用以下命令:

grype path/to/your/file.jar

 例如,如果你的 .jar 文件名为 app.jar,并且位于当前目录下,可以运行:

grype ./app.jar

Grype 将自动分析 .jar 文件的依赖项,并匹配公开的漏洞数据库(如 NVD、GitHub Advisories)中的信息,生成详细的安全扫描结果。

2. 输出信息

扫描完成后,Grype 会输出漏洞检测报告,包括以下内容:

  • 漏洞 ID: 表示漏洞的唯一标识符(例如,CVE-编号)。
  • 漏洞严重性: 表示该漏洞的严重性等级(低、中、高、关键)。
  • 修复建议: 包含可能的修复方案或版本建议。
  • 受影响的组件: 展示受影响的库或依赖项的版本信息。

输出示例如下:

NAME                       INSTALLED     FIXED-IN      TYPE          VULNERABILITY        SEVERITY 
Java-WebSocket             1.3.7         1.5.0         java-archive  GHSA-gw55-jm4h-x339  High      
bcprov-jdk15on             1.65          1.67          java-archive  GHSA-73xv-w5gp-frxh  High      
bcprov-jdk15on             1.65                        java-archive  GHSA-wjxj-5m7g-mg7q  Medium    
bcprov-jdk15on             1.65          1.78          java-archive  GHSA-v435-xc8x-wvr9  Medium    
bcprov-jdk15on             1.65          1.78          java-archive  GHSA-m44j-cfrm-g8qc  Medium    
bcprov-jdk15on             1.65                        java-archive  GHSA-hr8g-6v94-x4m9  Medium    
bcprov-jdk15on             1.65          1.78          java-archive  GHSA-8xfc-gm6g-vgpv  Medium    
bcprov-jdk15on             1.65          1.66          java-archive  GHSA-6xx3-rg99-gc3p  Medium    
classgraph                 4.8.83        4.8.112       java-archive  GHSA-v2xm-76pq-phcf  Medium    
commons-compress           1.19          1.21          java-archive  GHSA-xqfj-vm6h-2x34  High      
commons-compress           1.19          1.21          java-archive  GHSA-mc84-pj99-q6hh  High      
commons-compress           1.19          1.21          java-archive  GHSA-crv7-7245-f45f  High      
commons-compress           1.19          1.21          java-archive  GHSA-7hfm-57qf-j43q  High      
commons-compress           1.19          1.26.0        java-archive  GHSA-4g9r-vxhx-9pgx  High      
commons-fileupload         1.4           1.5           java-archive  GHSA-hfrx-6qgj-fp6c  High      
jackson-databind           2.12.6.1      2.12.7.1      java-archive  GHSA-rgv9-q543-rqg4  High      
jackson-databind           2.12.6.1      2.12.7.1      java-archive  GHSA-jjjh-jjxp-wpff  High      
jdom                       1.1                         java-archive  GHSA-2363-cqg2-863c  High      
jettison                   1.1           1.5.2         java-archive  GHSA-x27m-9w8j-5vcw  High      
jettison                   1.1           1.5.4         java-archive  GHSA-q6g2-g7f3-rr83  High      
jettison                   1.1           1.5.2         java-archive  GHSA-grr4-wv38-f68w  High      
jettison                   1.1           1.5.2         java-archive  GHSA-7rf3-mqpx-h7xg  High      
jettison                   1.1           1.5.1         java-archive  GHSA-56h3-78gp-v83r  Medium    
logback-classic            1.2.11        1.2.13        java-archive  GHSA-vmq6-5m68-f53m  High      
logback-core               1.2.11        1.2.13        java-archive  GHSA-vmq6-5m68-f53m  High      
mysql-connector-java       8.0.28        8.2.0         java-archive  GHSA-m6vm-37g8-gqvh  High      
netty-handler              4.1.75.Final  4.1.94.Final  java-archive  GHSA-6mjq-h674-j845  Medium    
okio                       3.2.0         3.4.0         java-archive  GHSA-w33c-445m-f8w7  Medium    
okio-jvm                   3.2.0         3.4.0         java-archive  GHSA-w33c-445m-f8w7  Medium    
pagehelper                 5.3.0         5.3.1         java-archive  GHSA-w559-623p-vfg8  Critical  
ruoyi-common               3.8.2                       java-archive  GHSA-vp22-232w-h9x8  Medium    
snakeyaml                  1.28          2.0           java-archive  GHSA-mjmj-j48q-9wg2  High      
snakeyaml                  1.28          1.31          java-archive  GHSA-3mc7-4q67-w48m  High      
snakeyaml                  1.28          1.32          java-archive  GHSA-w37g-rhq8-7m4j  Medium 

在报告中,Grype 会显示受影响的依赖项、受影响的版本、修复后的版本(如果存在)、漏洞 ID 和严重性等信息。通过这些信息,可以判断 .jar 文件中的潜在安全风险,并采取相应的修复措施。

总结

使用 Grype 可以轻松扫描 Java .jar 包中的安全漏洞,帮助开发者及安全工程师及时发现项目中的已知漏洞并尽快修复。通过本教程的手动安装和使用指南,你可以快速在 Linux 系统上部署 Grype,并进行漏洞扫描,确保你的项目依赖库的安全性。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python 调用手机摄像头
  • Flask 第二课 -- 安装
  • 常见文档工具对比和选择
  • 解锁SQL基础应用新境界:从入门到精通的扩展实践指南(SQL扩展)
  • 1765asp.net古镇旅游网站VS开发sqlserver数据库web结构c#编程web网页设计
  • 华为OD机试真题 - 抢7游戏(Python/JS/C/C++ 2024 D卷 100分)
  • 小琳AI课堂:Nezha模型:基于Transformer的中文预训练语言模型优化与进展
  • ​数据链路层——流量控制可靠传输机制 ​
  • 高职人工智能训练师边缘计算实训室解决方案
  • 【Unity3D】如何用MMD4Mecanim插件将pmx格式模型转换为fbx格式模型
  • jEasyUI 创建带复选框的树形菜单
  • 《高校教育管理》
  • 兔英语语法体系——观后笔记
  • goby/xray批量导入自定义poc(附2024红队POC)
  • 线程实现的几种方式
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • angular2 简述
  • css属性的继承、初识值、计算值、当前值、应用值
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • dva中组件的懒加载
  • JAVA SE 6 GC调优笔记
  • Javascript基础之Array数组API
  • JS学习笔记——闭包
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • Protobuf3语言指南
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • uva 10370 Above Average
  • 动态魔术使用DBMS_SQL
  • - 概述 - 《设计模式(极简c++版)》
  • 京东美团研发面经
  • 前嗅ForeSpider教程:创建模板
  • 实现简单的正则表达式引擎
  • 我的业余项目总结
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 《天龙八部3D》Unity技术方案揭秘
  • "无招胜有招"nbsp;史上最全的互…
  • #14vue3生成表单并跳转到外部地址的方式
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (4)(4.6) Triducer
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (第27天)Oracle 数据泵转换分区表
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (第二周)效能测试
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (论文阅读30/100)Convolutional Pose Machines
  • (南京观海微电子)——I3C协议介绍
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .Net多线程Threading相关详解
  • .so文件(linux系统)
  • @property python知乎_Python3基础之:property