可识别镜像文件软件-(可识别镜像文件软件有哪些)
来源:191路由网 2022-12-09 19:39:03
在云和容器流行的今天,每个企业都在使用容器(云)来构建自己的基础架构。容器技术给我们带来了极大的方便,一键拉个镜像,一键启动就可以部署成功应用。然而,由此却带来了一些安全风险,基于镜像、基础库和源码仓库都有可能成为潜在的漏洞点(甚至可能被投毒),为了避免相关风险,对其进行安全扫描必不可少,今天虫虫就给大家介绍一个这样的专门开源免费扫描工具——Trivy。
Trivy是一个简单而全面的扫描器,用于检测容器镜像、文件系统和Git存储库中的漏洞以及配置问题。Trivy检测操作系统包(Alpine、RHEL、CentOS 等)和特定编程语言包(Bundler、Composer、npm、yarn 等)的漏洞。 此外,Trivy扫描基础设施即代码 (IaC) 文件,例如 Terraform、Dockerfile 和Kubernetes,从中发现部署中面临攻击风险和潜在配置问题的等。
Trivy易于使用。基于Golang语言开发,只需下载对应平台的二进制文件,就可以进行扫描了。
安装Trivy安装非常简单,如果有Golang环境的可以Clone源码仓自己编译构建。或者使用发行版的包安装器安装,比如CentOS:
sudo apt-get install wget apt-transport-https gnupg lsb-releasewget -qO - aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -echo deb aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.listsudo apt-get updatesudo apt-get install trivy
Ubuntu安装:
sudo apt-get install wget apt-transport-https gnupg lsb-releasewget -qO - aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -echo deb aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.listsudo apt-get updatesudo apt-get install trivy
Trivy也支持容器方式部署:
docker pull aquasec/trivy:0.20.2
然后直接启动容器:
docker run --rm -v [YOUR_CACHE_DIR]:/root/.cache/ aquasec/trivy:0.20.2 [YOUR_IMAGE_NAME]
如果想要扫主机上的镜像,可能需要挂载docker.sock,例如:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \-v $HOME/Library/Caches:/root/.cache/ aquasec/trivy:0.20.2 python:3.4-alpine
使用
镜像的扫描非常简单,其基本格式为“trivy 命令 参数”的方式:
体育镜像的扫描非常简单只需指定镜像名称即可(和标签)。
trivy image [YOUR_IMAGE_NAME]
例如:
trivy image python:3.4-alpine
结果
相关包的漏洞
只需指定要扫描的目录。
trivy fs --security-checks vuln,config [YOUR_PROJECT_DIR]
例如,我们指定一个tidb的源码目录扫描下:
trivy fs --security-checks vuln,config tidb/
结果
体育只需指定一个包IaC文件的目录就行,例Terraform和Dockerfile。
trivy config [YOUR_IAC_DIR]
例如,我们还是指定tidb源码的当前目录扫描
trivy config ./
结果
作为一个容器扫描的工具,当然其最大的用武之处就是,继承到cicd或者DevSecOps中,对项目自动化持续扫描,下面是给出一个gitlab-ci的例子()
stages:- testtrivy:stage: testimage: docker:stableservices:- name: docker:dindentrypoint: ["env", "-u", "DOCKER_HOST"]command: ["dockerd-entrypoint.sh"]variables:DOCKER_HOST: tcp://docker:2375/DOCKER_DRIVER: overlay2DOCKER_体育TLS_CERTDIR: ""IMAGE: trivy-ci-test:$CI_COMMIT_SHAbefore_script:- export TRIVY_VERSION=$(wget -qO - " api.github /repos/aquasecurity/trivy/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')- echo $TRIVY_VERSION- wget --no-verbose githubaquasecurity/trivy/releases/download/v${TRIVY_VERSION}/trivy_${TRIVY_VERSION}_Linux-64bit.tar.gz -O - | tar -zxvf -allow_failure: truescript:# Build image- docker build -t $IMAGE .# Build report- ./trivy --exit-code 0 --cache-dir .trivycache/ --no-progress --format template --template "@contrib/gitlab.tpl" -o gl-container-scanning-report.json $IMAGE# Print report- ./trivy --exit-code 0 --cache-dir .trivycache/ --no-progress --severity HIGH $IMAGE# Fail on severe vulnerabilities- ./trivy --exit-code 1 --cache-dir .trivycache/ --severity CRITICAL --no-progress $IMAGEcache:paths:- .trivycache/# Enables gitlab/ee/user/application_security/container_scanning/ (Container Scanning report is available on GitLab EE Ultimate or GitLab.com Gold)artifacts:reports:container_scanning: gl-container-scanning-report.json
结合gitlab-ci进行容器扫描的例子:
image:name: docker.io/aquasec/trivy:latestentrypoint: [""]variables:# No need to clone the repo, we exclusively work on artifacts.GIT_STRATEGY: noneTRIVY_USERNAME: "$CI_REGISTRY_USER"TRIVY_PASSWORD: "$CI_REGISTRY_PASSWORD"TRIVY_AUTH_URL: "$CI_REGISTRY"FULL_IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUGscript:- trivy --version# cache cleanup is needed when scanning images with the same tags, it does not remove the database- time trivy image --clear-cache# update vulnerabilities db- time trivy --download-db-only --no-progress --cache-dir .trivycache/# Builds report and puts it in the default workdir $CI_PROJECT_DIR, so `artifacts:` can take it from there- time trivy --exit-code 0 --cache-dir .trivycache/ --no-progress --format template --template "@/contrib/gitlab.tpl"--output "$CI_PROJECT_DIR/gl-container-scanning-report.json" "$FULL_IMAGE_NAME"# Prints full report- time trivy --exit-code 0 --cache-dir .trivycache/ --no-progress "$FULL_IMAGE_NAME"# Fail on critical vulnerabilities- time trivy --exit-code 1 --cache-dir .trivycache/ --severity CRITICAL --no-progress "$FULL_IMAGE_NAME"cache:paths:- .trivycache/# Enables gitlab/user/application_security/container_scanning/artifacts:when: alwaysreports:container_scanning: gl-container-scanning-report.jsontags:- docker-runner
当然Trivy也支持GitHub Actions,CircleCI,Travis CI,AWS CodePipeline,AWS Security Hub等CI流程的持续集成,可以参见官方网站Advanced文档部分。
总结Trivy是一个简单、全面、云原生的开源免费安全扫描器,可以让我们的容器云基础设施更加安全合规,每个企业都应该值得关注和使用。
平台
相关阅读
-
-
电脑系统引导工具-()
电脑系统引导工具()u盘启动工具哪个好用?目前市面上有许多的U盘启动盘制作工具,拥有各自不同的侧重点。而大多数的U盘启动盘,都可以重装系统,而且还具有系统修复,硬件检测等功能,可以说是十分实用了,那么u盘启动工具哪个好用u深度是一款非常实用的u盘重装系统工具,制作好的启动u盘不仅可用于引导电脑开机启动,同时还能用于存储日常文件u启动是针对...
2022-12-09
-
-
可识别镜像文件软件-(可识别镜像文件软件有哪些)
可识别镜像文件软件(可识别镜像文件软件有哪些)在云和容器流行的今天,每个企业都在使用容器(云)来构建自己的基础架构。容器技术给我们带来了极大的方便,一键拉个镜像,一键启动就可以部署成功应用。然而,由此却带来了一些安全风险,基于镜像、基础库和源码仓库都有可能成为潜在的漏洞点(甚至可能被投毒),为了避免相关风险,对其进行...
2022-12-09
-
-
u盘启动重装后找不到硬盘-(u盘启动重装后找不到硬盘了)
u盘启动重装后找不到硬盘(u盘启动重装后找不到硬盘了)u盘给戴尔笔记本重装系统时,有网友反映进入pe系统后找不到硬盘安装,不知道戴尔笔记本重装系统找不到硬盘怎么办?导致这个原因多种,下面解答下戴尔笔记本重装系统无法识别硬盘的解决方法...
2022-12-09
-
-
电脑插u盘死机有静电-(电脑插u盘死机有静电吗)
电脑插u盘死机有静电(电脑插u盘死机有静电吗)说起USB,想必有很多人都还记得2014年爆出的BadUSB重大安全漏洞,黑客利用这个bug往设备上传输恶意软件,还不会被发现,导致所有USB设备都非常危险。BadUSB最可怕的一点是恶意代码存在于U盘的固件中,由于PC上的杀毒软件无法访问到U盘存放固件的区域,因此也就意味着杀毒软件和U盘格式化都无法应对BadUSB进行...
2022-12-09
-
-
惠普笔记本重装win10-(惠普笔记本重装win10系统教程)
惠普笔记本重装win10(惠普笔记本重装win10系统教程)大家都知道,惠普电脑可以使用u盘启动盘来重装系统,但前提是需要进入bios设置u盘启动。昨天小编想要通过惠普的bios快捷键F10进入设置界面,让电脑第一启动项为u盘,却出现了无法进入的情况。没事,这时候我们可以选择使用u盘启动快捷键来设置,最后就可以进入winpe系统重装了。下面就一起来看看惠普台式电脑安装系统的...
2022-12-09
191路由网 - 192.168.1.1,192.168.0.1无线路由器设置教程
版权声明:本站的文章和图片来自互联网收集,仅做分享之用如有侵权请联系站长,我们将在24小时内删除