使用 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,并进行漏洞扫描,确保你的项目依赖库的安全性。

相关推荐
要开心吖ZSH9 分钟前
MySQL 慢 SQL 排查操作手册-个人笔记版
java·笔记·sql·mysql·慢查询
Joy T1 小时前
Spring AI 接入已有 Java 项目的三种架构设计
java·人工智能·springai·ai入门·chatclient·ai service·ai能力接入
杨运交1 小时前
[076][核心模块]构建优雅的Java异常处理框架:从错误码到全局异常处理
java·开发语言
caoerzhong2 小时前
仓库数字化成熟度分级:JeeWMS 开源 Java 仓库管理系统如何支撑从可见到自治的四级跃迁
java·开源
MayBaymax2 小时前
RocketMQ 存储机制
java·rocketmq
程序猿_极客2 小时前
【免费】分享一套优质的基于SpringBoot的服装商城管理系统的设计与实现(带可视化图表、协同过滤功能),源码+文档+视频详解(讲解)
java·spring boot·后端·服装商城管理系统
用户3721574261352 小时前
Java 查找并高亮 Word 文字:精确查找及正则表达式模糊查找
java
zyseo83 小时前
谷歌SEO 站内搜索优化实战:把站内搜索词变成关键词金矿
java·服务器·数据库
bug菌3 小时前
🤔同事突然问我:Spring的注解 @Component 和 @Service 有何不同?
java·spring boot·后端
佳児素花痴╮3 小时前
线程知识点
java·开发语言·jvm