Golang代码漏洞扫描工具介绍——trivy

Golang代码漏洞扫描工具介绍——trivy

Golang作为一款近年来最火热的服务端语言之一,深受广大程序员的喜爱,笔者最近也在用,特别是高并发的场景下,golang易用性的优势十分明显,但笔者这次想要介绍的并不是golang本身,而且golang代码的漏洞扫描工具,毕竟作为服务端的程序,安全性一直是一个不同忽视的地方

Trivy

Trivy介绍

Trivy是不是是一款功能强大的漏洞扫描工具,它的应用场景不仅仅在代码层面,还有镜像层面,而且不仅仅能够扫描Golang,还能扫描Bundler、Composer、Pipenv、Poetry、npm、yarn、Cargo、NuGet、Maven等语言。事实上,Trivy主要是检测:

操作系统包(Alpine、Red Hat Universal Base Image、Red Hat Enterprise Linux、CentOS、Oracle Linux、Debian、Ubuntu、Amazon Linux、openSUSE Leap、SUSE Enterprise Linux、Photon OS 和 Distroless等)和应用程序依赖(Bundler、Composer、Pipenv、Poetry、npm、yarn、Cargo、NuGet、Maven 和 Go等)的漏洞以及配置错误。

Trivy使用场景

事实上,Trivy 很容易使用,只要安装了二进制文件,就可以扫描了。所以一般建议使用在CI的流水线上,而且,由于具有代码扫描和镜像扫描两个能力,所以可以分别在代码合入发起时和接口用例测试前两个步骤进行添加

关于安装:

推荐一个万能的安装方式

1.在https://> github.com/aquasecurity/trivy/releases

找到最新的release包,并下载

2.解压:tar -xzf ./trivy.tar.gz

3.给可执行文件增加权限:chmod +x ./trivy

4.放入Path:mv ./trivy /usr/local/bin/

5.将其他的文件放到一个固定的地方:

在这里插入图片描述

后面会讲到为什么这么做

其他在linux各个版本、mac等环境安装,docker启动等方式参考:

1.https://github.com/aquasecurity/trivy

2.https://aquasecurity.github.io/trivy/v0.45/getting-started/installation/

关于使用:

trivy能够扫描的对象包括

  • Container Image
  • Filesystem
  • Git Repository (remote)
  • Virtual Machine Image
  • Kubernetes
  • AWS

trivy能够发现的问题包括

  • OS packages and software dependencies in use (SBOM)
  • Known vulnerabilities (CVEs)
  • IaC issues and misconfigurations
  • Sensitive information and secrets
  • Software licenses

这次主要介绍的是SBOM。也就是依赖包的漏洞情况

1.基本命令使用:

trivy -h

得到下图:
在这里插入图片描述

具体的介绍可以参考:

https://aquasecurity.github.io/trivy/v0.37/docs/references/cli/sbom/

代码扫描使用

扫描镜像示例:

trivy image 8bcba6ed2605

结果如下:

在这里插入图片描述

因为参数都是默认的,所以用控制台图表的形式展示

扫描文件系统示例:

trivy fs ./

结果如下:

在这里插入图片描述

例如主机、虚拟机映像或解压缩的容器映像文件系统

Git 存储库漏洞扫描示例:

trivy repo https://github.com/test/text.git

结果如下:

在这里插入图片描述

这里可以根据需要增加参数,比如:

只希望扫出来已修复的漏洞:

trivy repo https://github.com/test/text.git --ignore-unfixed

希望扫出来的结果以json形式展示:

trivy repo https://github.com/test/text.git -f json

希望扫出来的结果以网页的形式展示:

trivy repo https://github.com/test/text.git --format template --template "@./trivy/contrib/html.tpl" -o qapm_report.html

这里用到模版,也就前面讲到除了可执行文件之外要保存的文件夹,里面的–template 后面的地址就是官方的模版,这里用到的就是网页模版
在这里插入图片描述

参考资料:

https://www.cnblogs.com/layzer/articles/trivy.html

https://cloud.tencent.com/developer/article/1814500

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/139913.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

华为云云耀云服务器L实例评测|netdata的部署与应用

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂 看这里 前言何为netdata安装 前言 前两天,给大家介绍了下关于使用华为云云耀云服务器L实例做了几个案例应用,分别为: 华为云云耀云服务器L实例评测|一个…

mysql集群使用nginx配置负载均衡

参考链接:https://mu-sl.com//archives/mysql%E9%9B%86%E7%BE%A4%E4%BD%BF%E7%94%A8nginx%E9%85%8D%E7%BD%AE%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1 配置文件nginx_tcp.conf 示例 load_module modules/ngx_stream_module.so;stream{upstream tcpssh{hash $remote_…

Intel酷睿和AMD锐龙

Intel酷睿系列,主要分i3、i5、i7、i9 如:Intel 酷睿i5 10210U i5:品牌修饰符。 10:代次指示符。 210:sku编号。 常见后缀: G1-G7:集显等级。 U:低功耗。 H:标压版…

Unity制作旋转光束

Unity制作旋转光束 大家好,我是阿赵。 这是一个在很多游戏里面可能都看到过的效果,在传送门、魔法阵、角色等脚底下往上散发出一束拉丝形状的光,然后在不停的旋转。 这次来在Unity引擎里面做一下这种效果。 一、准备材料 需要准备的素材很简…

14:00面试,14:06就出来了,问的问题过于变态了。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到5月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

2023-2024年最新大数据学习路线

文章目录 2023-2024年最新大数据学习路线大数据开发入门*01*阶段案例实战 大数据核心基础*02*阶段案例实战 千亿级数仓技术*03*阶段项目实战 PB级内存计算04阶段项目实战 亚秒级实时计算*05*阶段项目实战 大厂面试*06* 2023-2024年最新大数据学习路线 新路线图在Spark一章不再…

SpringBoot 员工管理---通用模板 ---苍穹外卖day2

感谢点击 希望你有所收获! 目录 1.新增员工 需求分析:根据页面原型进行业务分析 接口设计 数据库设计 代码开发 功能测试 如何在接口文档中统一添加JWT令牌 ​ 获取当前登录员工的ID 2.员工分页查询 需求分析 代码开发 如何将日期格式化 ​3.启用禁用员工 1.新…

Spring | 事件监听器应用与最佳实践

引言 在复杂的软件开发环境中,组件之间的通信和信息交流显得尤为重要。Spring框架,作为Java世界中最受欢迎的开发框架之一,提供了一种强大的事件监听器模型,使得组件间的通信变得更加灵活和解耦。本文主要探讨Spring事件监听器的…

设备巡检电力水利物业巡检小程序开源版开发

设备巡检电力水利物业巡检小程序开源版开发 以下是设备巡检电力水利物业巡检小程序开源版的可能功能列表: 用户登录/注册:用户可以通过手机号或其他方式进行登录和注册。 首页展示:展示设备巡检电力水利物业巡检小程序的基本信息和操作指南…

Linux内核源码分析 (B.2)深入理解 Linux 物理内存管理

Linux内核源码分析 (B.2)深入理解 Linux 物理内存管理 文章目录 Linux内核源码分析 (B.2)深入理解 Linux 物理内存管理[TOC] 1\. 前文回顾2\. 从 CPU 角度看物理内存模型2.1 FLATMEM 平坦内存模型2.2 DISCONTIGMEM 非连续内存模型2.3 SPARSEMEM 稀疏内存模型2.3.1 物理内存热插…

瑞芯微RK3568:Debian系统如何安装Docker

本文基于HD-RK3568-IOT评估板演示Debian系统安装Docker,该方法适用于RK356X全系产品。 HD-RK3568-IOT评估板基于HD-RK3568-CORE 工业级核心板设计(双网口、双CAN、5路串口),接口丰富,适用于工业现场应用需求&#xff…

每日一题 1993. 树上的操作

难度:中等 思路: 首先为了更好的访问每个节点的子节点,我们创建一个字典来表示key节点下的所有子节点,其次上锁,解锁不用多说升级过程,对于条件一和三可以理解为同一个,即包括它本身在内的所有…

电路的基本定律——基尔霍夫定律

基尔霍夫定律 🎑预备知识🎑基尔霍夫电流定律(KCL)🎃基尔霍夫电流定律的本质:节点上电荷具有连续性(不会突变)🎃基尔霍夫电流定律的推广: 🎑基尔霍夫的电压定律(KVL)🎃基尔霍夫电压定…

CSS 选择器的几种方法

CSS 选择器的几种方法 业余选手爱记笔记示例代码用否定伪类伪元素用代数式法同胞选择符 ~相邻同胞选择符 业余选手爱记笔记 CSS权威指南(第四版)是一本好书,看了一遍第二章的选择符有些受益,记录一点读后感和练习。我已将该书电…

软件定义世界,工程引领未来——中山大学软件工程学院 软件工程导论大作业

目录 软件工程,理解加深 个人困惑 软件与软件工程的定义 学习思路的启发 软件危机的认识及思考 软件测试的初步认识 科技前沿,守正创新 代码有智能,教育有情怀 深入浅出,引人入胜 再接再厉,未来可期 “软件…

创建表

MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 创建表 语法格式: create table 表名(列名1 数据类型,列名2 数据类型,... ,列名n, 数据类型 ); 练习:在czwbkl库中,创建一格test01表 跟大家说…

用flask框架flask-sock和websocket创建一个自己的聊天界面

WebSocket 协议在10年前就已经标准化了(在2011年,你能相信吗?)所以我相信你不需要介绍。但是如果你不熟悉它,WebSocket 是 HTTP 协议的一个扩展,它在客户端和服务器之间提供了一个永久的、双向的通信通道,在这里双方可以实时地发…

Docker实战技巧(二):Kubernetes基础操作实战

Kubernetes定位在Saas层,重点解决了微服务大规模部署时的服务编排问题 1、关闭防火墙并设置开机禁用   systemctl stop firewalld   systemctl disable firewalld 2、配置repo   cd /etc/yum.repos.d/   下载Docker repo   wget https://mirrors.aliyun.com/docker-…

安装gpu版本的paddle和paddleclas

安装gpu版本的paddle python -m pip install paddlepaddle-gpu2.3.2.post111 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html以上支持cuda11.1版本 其他需求可查阅文档在这里 安装paddleclas 1 在虚拟环境中安装所需的Python库: pip inst…

分布式多级缓存SDK设计的思考

分布式多级缓存SDK设计的思考 背景整体架构多层级组装回调埋点分区处理一致性问题缓存与数据库之间的一致性问题不同层级缓存之间的一致性问题不同微服务实例上,非共享缓存之间的一致性问题 小结 之前实习期间编写过一个简单的多级缓存SDK,后面了解到一些…