大家好,今天小编来为大家解答源码分享后门扫描网站这个问题,在线网站后门检测很多人还不知道,现在让我们一起来看看吧!
在云和容器流行的今天,每个企业都在使用容器(云)来构建自己的基础架构。容器技术给我们带来了极大的方便,一键拉个镜像,一键启动就可以部署成功应用。然而,由此却带来了一些安全风险,基于镜像、基础库和源码仓库都有可能成为潜在的漏洞点(甚至可能被投毒),为了避免相关风险,对其进行安全扫描必不可少,今天虫虫就给大家介绍一个这样的专门开源免费扫描工具——Trivy。
概述
Trivy是一个简单而全面的扫描器,用于检测容器镜像、文件系统和Git存储库中的漏洞以及配置问题。Trivy检测操作系统包(Alpine、RHEL、CentOS等)和特定编程语言包(Bundler、Composer、npm、yarn等)的漏洞。此外,Trivy扫描基础设施即代码(IaC)文件,例如Terraform、Dockerfile和Kubernetes,从中发现部署中面临攻击风险和潜在配置问题的等。
Trivy易于使用。基于Golang语言开发,只需下载对应平台的二进制文件,就可以进行扫描了。
安装
Trivy安装非常简单,如果有Golang环境的可以Clone源码仓自己编译构建。或者使用发行版的包安装器安装,比如CentOS:
sudoapt-getinstallwgetapt-transport-httpsgnupglsb-release\nwget-qO-aquasecurity.github.io/trivy-repo/deb/public.key|sudoapt-keyadd-\nechodebaquasecurity.github.io/trivy-repo/deb$(lsb_release-sc)main|sudotee-a/etc/apt/sources.list.d/trivy.list\nsudoapt-getupdate\nsudoapt-getinstalltrivy
Ubuntu安装:
sudoapt-getinstallwgetapt-transport-httpsgnupglsb-release\nwget-qO-aquasecurity.github.io/trivy-repo/deb/public.key|sudoapt-keyadd-\nechodebaquasecurity.github.io/trivy-repo/deb$(lsb_release-sc)main|sudotee-a/etc/apt/sources.list.d/trivy.list\nsudoapt-getupdate\nsudoapt-getinstalltrivy
Trivy也支持容器方式部署:
dockerpullaquasec/trivy:0.20.2
然后直接启动容器:
dockerrun–rm-v[YOUR_CACHE_DIR]:/root/.cache/aquasec/trivy:0.20.2[YOUR_IMAGE_NAME]
如果想要扫主机上的镜像,可能需要挂载docker.sock,例如:
dockerrun–rm-v/var/run/docker.sock:/var/run/docker.sock\\\n-v$HOME/Library/Caches:/root/.cache/aquasec/trivy:0.20.2python:3.4-alpine
使用
镜像的扫描非常简单,其基本格式为“trivy命令参数”的方式:
扫描镜像漏洞
镜像的扫描非常简单只需指定镜像名称即可(和标签)。
trivyimage[YOUR_IMAGE_NAME]
例如:
trivyimagepython:3.4-alpine
结果
相关包的漏洞
扫描文件系统中的漏洞和错误配置
只需指定要扫描的目录。
trivyfs–security-checksvuln,config[YOUR_PROJECT_DIR]
例如,我们指定一个tidb的源码目录扫描下:
trivyfs–security-checksvuln,configtidb/
结果
扫描目录中的错误配置
只需指定一个包IaC文件的目录就行,例Terraform和Dockerfile。
trivyconfig[YOUR_IAC_DIR]
例如,我们还是指定tidb源码的当前目录扫描
trivyconfig./
结果
集成
作为一个容器扫描的工具,当然其最大的用武之处就是,继承到cicd或者DevSecOps中,对项目自动化持续扫描,下面是给出一个gitlab-ci的例子()
stages:\n-test\ntrivy:\nstage:test\nimage:docker:stable\nservices:\n-name:docker:dind\nentrypoint:[&34;,&34;,&34;]\ncommand:[&34;]\nvariables:\nDOCKER_HOST:tcp://docker:2375/\nDOCKER_DRIVER:overlay2\nDOCKER_TLS_CERTDIR:&34;\nIMAGE:trivy-ci-test:$CI_COMMIT_SHA\nbefore_script:\n-exportTRIVY_VERSION=$(wget-qO-&34;|grep&34;tag_name&39;|sed-E&34;v([^&34;.*/\\1/&Buildimage\n-dockerbuild-t$IMAGE.\n34;@contrib/gitlab.tpl&Printreport\n-./trivy–exit-code0–cache-dir.trivycache/–no-progress–severityHIGH$IMAGE\nEnablesgitlab/ee/user/application_security/container_scanning/(ContainerScanningreportisavailableonGitLabEEUltimateorGitLab.comGold)\nartifacts:\nreports:\ncontainer_scanning:gl-container-scanning-report.json
结合gitlab-ci进行容器扫描的例子:
image:\nname:docker.io/aquasec/trivy:latest\nentrypoint:[&34;]\nvariables:\n34;$CI_REGISTRY_USER&34;$CI_REGISTRY_PASSWORD&34;$CI_REGISTRY&cachecleanupisneededwhenscanningimageswiththesametags,itdoesnotremovethedatabase\n-timetrivyimage–clear-cache\nBuildsreportandputsitinthedefaultworkdir$CI_PROJECT_DIR,so`artifacts:`cantakeitfromthere\n-timetrivy–exit-code0–cache-dir.trivycache/–no-progress–formattemplate–template&34;\n–output&34;&34;\n34;$FULL_IMAGE_NAME&Failoncriticalvulnerabilities\n-timetrivy–exit-code1–cache-dir.trivycache/–severityCRITICAL–no-progress&34;\ncache:\npaths:\n-.trivycache/\n#Enablesgitlab/user/application_security/container_scanning/\nartifacts:\nwhen:always\nreports:\ncontainer_scanning:gl-container-scanning-report.json\ntags:\n-docker-runner
当然Trivy也支持GitHubActions,CircleCI,TravisCI,AWSCodePipeline,AWSSecurityHub等CI流程的持续集成,可以参见官方网站Advanced文档部分。
总结
Trivy是一个简单、全面、云原生的开源免费安全扫描器,可以让我们的容器云基础设施更加安全合规,每个企业都应该值得关注和使用。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!