Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
This repository was archived by the owner on Sep 20, 2024. It is now read-only.

Use Trivy as a plug-in vulnerability scanner in the Harbor registry

License

NotificationsYou must be signed in to change notification settings

aquasecurity/harbor-scanner-trivy

Repository files navigation

GitHub ReleaseGitHub Build ActionsGo Report CardLicenseDocker Pulls / AquaDocker Pulls / Harbor

IMPORTANT: This repository is no longer maintained. Future development in this project will happen in the repository:https://github.com/goharbor/harbor-scanner-trivy

Harbor Scanner Adapter for Trivy

The HarborScanner Adapter forTrivy is a service that translates theHarbor scanningAPI into Trivy commands and allows Harbor to use Trivy for providing vulnerability reports on images stored in Harborregistry as part of its vulnerability scan feature.

Harbor Scanner Adapter for Trivy is the default static vulnerability scanner in Harbor >= 2.2.

Vulnerabilities

For compliance with core components Harbor builds the adapter service binaries into Docker images based on Photos OS(goharbor/trivy-adapter-photon), whereas in this repository we build Docker images based on Alpine(aquasec/harbor-scanner-trivy). There is no difference in functionality though.

TOC

Version Matrix

The following matrix indicates the version of Trivy and Trivy adapter installed in each Harborrelease.

HarborTrivy AdapterTrivy
-v0.31.4[trivy v0.54.1]
-v0.31.3[trivy v0.52.2]
-v0.31.2[trivy v0.51.2]
-v0.31.1[trivy v0.50.4]
-v0.31.0[trivy v0.50.1]
-v0.30.23[trivy v0.50.1]
-v0.30.22[trivy v0.49.1]
-v0.30.21[trivy v0.48.3]
-v0.30.20trivy v0.48.1
-v0.30.19trivy v0.47.0
-v0.30.18trivy v0.46.1
-v0.30.17trivy v0.46.0
-v0.30.16trivy v0.45.0
-v0.30.15trivy v0.44.0
-v0.30.14trivy v0.43.0
-v0.30.13trivy v0.43.0
-v0.30.12trivy v0.42.0
-v0.30.11trivy v0.40.0
-v0.30.10trivy v0.39.0
-v0.30.9trivy v0.38.2
-v0.30.8trivy v0.38.2
-v0.30.7trivy v0.37.2
-v0.30.6trivy v0.35.0
-v0.30.5trivy v0.35.0
-v0.30.4trivy v0.35.0
-v0.30.3trivy v0.35.0
-v0.30.2trivy v0.32.1
-v0.30.0trivy v0.29.2
-v0.29.0trivy v0.28.1
harbor v2.5.1v0.28.0trivy v0.26.0
-v0.27.0trivy v0.25.0
harbor v2.5.0v0.26.0trivy v0.24.2
-v0.25.0trivy v0.22.0
harbor v2.4.1v0.24.0trivy v0.20.1
harbor v2.4.0v0.24.0trivy v0.20.1
-v0.23.0trivy v0.20.0
-v0.22.0trivy v0.19.2
-v0.21.0trivy v0.19.2
-v0.20.0trivy v0.18.3
harbor v2.3.3v0.19.0trivy v0.17.2
harbor v2.3.0v0.19.0trivy v0.17.2
harbor v2.2.3v0.18.0trivy v0.16.0
harbor v2.2.0v0.18.0trivy v0.16.0
harbor v2.1.6v0.14.1trivy v0.9.2
harbor v2.1.0v0.14.1trivy v0.9.2

Deployment

Harbor >= 2.0 on Kubernetes

In Harbor >= 2.0 Trivy can be configured as the default vulnerability scanner, therefore you can install it with theofficialHarbor Helm chart, whereHARBOR_CHART_VERSION >= 1.4:

helm repo add harbor https://helm.goharbor.io
helm install harbor harbor/harbor \  --create-namespace \  --namespace harbor

The adapter service is automatically registered under theInterrogation Service in the Harbor interface anddesignated as the default scanner.

Harbor 1.10 on Kubernetes

  1. Install theharbor-scanner-trivy chart:

    helm repo add aqua https://aquasecurity.github.io/helm-charts
    helm install harbor-scanner-trivy aqua/harbor-scanner-trivy \  --namespace harbor --create-namespace
  2. Configure the scanner adapter in the Harbor interface.

    1. Navigate toInterrogation Services and click+ NEW SCANNER.Interrogation Services
    2. Enterhttp://harbor-scanner-trivy.harbor:8080 as theEndpoint URL and clickTEST CONNECTION.Add scanner
    3. If everything is fine clickADD to save the configuration.
  3. Select theTrivy scanner and set it as default by clickingSET AS DEFAULT.Set Trivy as default scannerMake sure theDefault label is displayed next to theTrivy scanner's name.

Configuration

Configuration of the adapter is done via environment variables at startup.

NameDefaultDescription
SCANNER_LOG_LEVELinfoThe log level oftrace,debug,info,warn,warning,error,fatal orpanic. The standard logger logs entries with that level or anything above it.
SCANNER_API_SERVER_ADDR:8080Binding address for the API server
SCANNER_API_SERVER_TLS_CERTIFICATEN/AThe absolute path to the x509 certificate file
SCANNER_API_SERVER_TLS_KEYN/AThe absolute path to the x509 private key file
SCANNER_API_SERVER_CLIENT_CASN/AA list of absolute paths to x509 root certificate authorities that the api use if required to verify a client certificate
SCANNER_API_SERVER_READ_TIMEOUT15sThe maximum duration for reading the entire request, including the body
SCANNER_API_SERVER_WRITE_TIMEOUT15sThe maximum duration before timing out writes of the response
SCANNER_API_SERVER_IDLE_TIMEOUT60sThe maximum amount of time to wait for the next request when keep-alives are enabled
SCANNER_API_SERVER_METRICS_ENABLEDtrueWhether to enable metrics
SCANNER_TRIVY_CACHE_DIR/home/scanner/.cache/trivyTrivy cache directory
SCANNER_TRIVY_REPORTS_DIR/home/scanner/.cache/reportsTrivy reports directory
SCANNER_TRIVY_DEBUG_MODEfalseThe flag to enable or disable Trivy debug mode
SCANNER_TRIVY_VULN_TYPEos,libraryComma-separated list of vulnerability types. Possible values areos andlibrary.
SCANNER_TRIVY_SECURITY_CHECKSvuln,config,secretcomma-separated list of what security issues to detect. Possible values arevuln,config andsecret. Defaults tovuln.
SCANNER_TRIVY_SEVERITYUNKNOWN,LOW,MEDIUM,HIGH,CRITICALComma-separated list of vulnerabilities severities to be displayed
SCANNER_TRIVY_IGNORE_UNFIXEDfalseThe flag to display only fixed vulnerabilities
SCANNER_TRIVY_IGNORE_POLICY``The path for the Trivy ignore policy OPA Rego file
SCANNER_TRIVY_SKIP_UPDATEfalseThe flag to disableTrivy DB downloads.
SCANNER_TRIVY_SKIP_JAVA_DB_UPDATEfalseThe flag to disable [Trivy JAVA DB] downloads.
SCANNER_TRIVY_OFFLINE_SCANfalseThe flag to disable external API requests to identify dependencies.
SCANNER_TRIVY_GITHUB_TOKENN/AThe GitHub access token to downloadTrivy DB (seeGitHub rate limiting)
SCANNER_TRIVY_INSECUREfalseThe flag to skip verifying registry certificate
SCANNER_TRIVY_TIMEOUT5m0sThe duration to wait for scan completion
SCANNER_STORE_REDIS_NAMESPACEharbor.scanner.trivy:storeThe namespace for keys in the Redis store
SCANNER_STORE_REDIS_SCAN_JOB_TTL1hThe time to live for persisting scan jobs and associated scan reports
SCANNER_JOB_QUEUE_REDIS_NAMESPACEharbor.scanner.trivy:job-queueThe namespace for keys in the scan jobs queue backed by Redis
SCANNER_JOB_QUEUE_WORKER_CONCURRENCY1The number of workers to spin-up for the scan jobs queue
SCANNER_REDIS_URLredis://harbor-harbor-redis:6379The Redis server URI. The URI supports schemas to connect to a standalone Redis server, i.e.redis://:password@standalone_host:port/db-number and Redis Sentinel deployment, i.e.redis+sentinel://:password@sentinel_host1:port1,sentinel_host2:port2/monitor-name/db-number.
SCANNER_REDIS_POOL_MAX_ACTIVE5The max number of connections allocated by the Redis connection pool
SCANNER_REDIS_POOL_MAX_IDLE5The max number of idle connections in the Redis connection pool
SCANNER_REDIS_POOL_IDLE_TIMEOUT5mThe duration after which idle connections to the Redis server are closed. If the value is zero, then idle connections are not closed.
SCANNER_REDIS_POOL_CONNECTION_TIMEOUT1sThe timeout for connecting to the Redis server
SCANNER_REDIS_POOL_READ_TIMEOUT1sThe timeout for reading a single Redis command reply
SCANNER_REDIS_POOL_WRITE_TIMEOUT1sThe timeout for writing a single Redis command.
HTTP_PROXYN/AThe URL of the HTTP proxy server
HTTPS_PROXYN/AThe URL of the HTTPS proxy server
NO_PROXYN/AThe URLs that the proxy settings do not apply to

Documentation

  • Architecture - architectural decisions behind designing harbor-scanner-trivy.
  • Releases - how to release a new version of harbor-scanner-trivy.

Troubleshooting

Error: database error: --skip-db-update cannot be specified on the first run

If you set the value of theSCANNER_TRIVY_SKIP_UPDATE totrue, make sure that you download theTrivy DBand mount it in the/home/scanner/.cache/trivy/db/trivy.db path.

Error: failed to list releases: Gethttps://api.github.com/repos/aquasecurity/trivy-db/releases: dial tcp: lookup api.github.com on 127.0.0.11:53: read udp 127.0.0.1:39070->127.0.0.11:53: i/o timeout

Most likely it's a Docker DNS server or network firewall configuration issue. Trivy requires internet connection toperiodically download vulnerability database from GitHub to show up-to-date risks.

Try adding a DNS server todocker-compose.yml created by Harbor installer.

version:2services:trivy-adapter:# NOTE Adjust IPs to your environment.dns:      -8.8.8.8      -192.168.1.1

Alternatively, configure Docker daemon to use the same DNS server as host operating system. SeeDNS servicessection in the Docker container networking documentation for more details.

Error: failed to list releases: GEThttps://api.github.com/repos/aquasecurity/trivy-db/releases: 403 API rate limit exceeded

Trivy DB downloads from GitHub are subject torate limiting. Make sure that the Trivy DB is mountedand cached in the/home/scanner/.cache/trivy/db/trivy.db path. If, for any reason, it's not enough you can set thevalue of theSCANNER_TRIVY_GITHUB_TOKEN environment variable (authenticated requests get a higher rate limit).

Contributing

Please readCONTRIBUTING.md for details on our code of conduct, and the process for submitting pullrequests.


Harbor Scanner Adapter for Trivy is anAqua Security open source project.
Learn about our open source work and portfoliohere.


[8]ページ先頭

©2009-2025 Movatter.jp