Compare commits

...

531 Commits

Author SHA1 Message Date
simar7
600819248d chore(deps): Update defsec to v0.90.1 (#4739)
Fixes: https://github.com/aquasecurity/trivy/issues/4628

Signed-off-by: Simar <simar@linux.com>
2023-06-30 06:48:47 +00:00
Nikita Pivkin
73734eab21 feat(nodejs): support yarn workspaces (#4664)
* feat(nodejs): add the workspaces field to the package

* fix go.mod

* update go.mod

* compare workspaces by length
2023-06-30 06:40:28 +00:00
DmitriyLewen
22463ababd feat(cli): add include-dev-deps flag (#4700)
* add Dev field for Package

* fix integration test

* update docs

* feat(cli): add include-dev flag

* bump go-dep-parser

* update docs

* add integration test

* refactor

* refactor

* fix integration test

* refactor: rename flag to include-dev-deps

* update docs

* update docs

* filter dev deps when scanning packages

* add flag support for server mode

* refactor: remove comment that might confuse

* refactor: move --include-dev-deps to the scanner flag group

* refactor: not return apps

* docs: update

---------

Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-06-29 13:15:52 +00:00
Nikita Pivkin
790c8054ec fix(image): pass the secret scanner option to scan the img config (#4735) 2023-06-29 08:37:45 +00:00
chenk
86fec9c4a9 fix: scan job pod it not found on k8s-1.27.x (#4729)
Signed-off-by: chenk <hen.keinan@gmail.com>
2023-06-28 14:38:39 +00:00
Manveer Singh
26bc91160b feat(docker): add support for mTLS authentication when connecting to registry (#4649)
* feat: add support for mTLS authentication when connecting to registry

* feat: add support for mTLS authentication when connecting to registry - added error handling

* feat: add support for mTLS authentication when connecting to registry
- code quality improvements

* feat: add support for mTLS authentication when connecting to registry
- code quality improvements

* wrap errors

---------

Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-06-28 11:21:26 +00:00
simar7
d699e8c101 chore(deps): Update defsec to v0.90.0 (#4723)
Signed-off-by: Simar <simar@linux.com>
2023-06-28 08:34:56 +00:00
DmitriyLewen
1777878e83 fix: skip scanning the gpg-pubkey package (#4720) 2023-06-28 07:06:08 +00:00
Makhonin Alexey
9be08253a2 Fix http registry oci pull (#4701)
Signed-off-by: alexey.makhonin <alexey.makhonin@flant.com>
2023-06-26 12:40:40 +00:00
simar7
5d73b47dbc feat(misconf): Support skipping services (#4686)
* feat(misconf): Add support for `--skip-service` flag.

Fixes: https://github.com/aquasecurity/trivy/issues/4619
Signed-off-by: Simar <simar@linux.com>

* update docs

Signed-off-by: Simar <simar@linux.com>

* update go mod

* refactor processOptions to reduce cyclo complexity

Signed-off-by: Simar <simar@linux.com>

* fix a bug with multiple skip services

Signed-off-by: Simar <simar@linux.com>

* refactor tests

Signed-off-by: Simar <simar@linux.com>

* use x/slice and x/xerrors

Signed-off-by: Simar <simar@linux.com>

* go mod tidy

* lint

---------

Signed-off-by: Simar <simar@linux.com>
2023-06-26 11:11:59 +00:00
DmitriyLewen
46e784c8a9 docs: fix supported modes for pubspec.lock files (#4713) 2023-06-26 11:04:45 +00:00
Teppei Fukuda
0f61a84712 fix(misconf): disable the terraform plan analyzer for other scanners (#4714) 2023-06-26 11:03:25 +00:00
Anais Urlichs
8a1aa448a1 clarifying a dir path is required for custom policies (#4716)
Signed-off-by: AnaisUrlichs <urlichsanais@gmail.com>
2023-06-26 10:56:57 +00:00
Sandro
fbab9eea3a chore: update alpine base images (#4715) 2023-06-26 10:34:50 +00:00
AliDatadog
f84417bba0 fix last-history-created (#4697) 2023-06-26 03:57:54 +00:00
chenk
85c681d443 feat: kbom and cyclonedx v1.5 spec support (#4708)
* feat: kbom and cyclonedx v1.5 spec support

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: kbom and cyclonedx v1.5 spec support

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: kbom and cyclonedx v1.5 spec support

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: feat: kbom and cyclonedx 1.5 spec support

Signed-off-by: chenk <hen.keinan@gmail.com>

* fix: unmarshal bom on v1.5 return invalid specification version

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: cyclonedx-1.5 spec support

Signed-off-by: chenk <hen.keinan@gmail.com>

---------

Signed-off-by: chenk <hen.keinan@gmail.com>
2023-06-25 13:47:06 +00:00
Itay Shakury
46748ce6ea docs: add information about Aqua (#4590)
* docs: add information about Aqua

* update link
2023-06-25 10:40:45 +00:00
chenk
c6741bddff fix: k8s escape resource filename on windows os (#4693)
Signed-off-by: chenk <hen.keinan@gmail.com>
2023-06-22 11:16:24 +00:00
Teppei Fukuda
a21acc7e08 ci: ignore merge queue branches (#4696) 2023-06-22 11:02:22 +00:00
dependabot[bot]
32a3a3311c chore(deps): bump actions/checkout from 2.4.0 to 3.5.3 (#4695)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.4.0 to 3.5.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.4.0...v3.5.3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-22 10:56:11 +00:00
dependabot[bot]
cbb47dc7c4 chore(deps): bump aquaproj/aqua-installer from 2.1.1 to 2.1.2 (#4694)
Bumps [aquaproj/aqua-installer](https://github.com/aquaproj/aqua-installer) from 2.1.1 to 2.1.2.
- [Release notes](https://github.com/aquaproj/aqua-installer/releases)
- [Commits](https://github.com/aquaproj/aqua-installer/compare/v2.1.1...v2.1.2)

---
updated-dependencies:
- dependency-name: aquaproj/aqua-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-22 10:31:20 +00:00
chenk
e3d10d2512 feat: cyclondx sbom custom property support (#4688)
* feat: custom property support

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: custom property support

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: custom property support

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: custom property support

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: custom property support

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: custom property support

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: custom property support

Signed-off-by: chenk <hen.keinan@gmail.com>

---------

Signed-off-by: chenk <hen.keinan@gmail.com>
2023-06-22 08:33:27 +00:00
Teppei Fukuda
e1770e046c ci: do not trigger tests in main (#4692) 2023-06-22 08:25:58 +00:00
Dirk Mueller
337c0b70d5 add SUSE Linux Enterprise Server 15 SP5 and update SP4 eol date (#4690)
all dates are taken from https://www.suse.com/lifecycle#suse-linux-enterprise-server-15
2023-06-22 07:34:59 +00:00
DmitriyLewen
5ccee14304 use group field for jar in cyclonedx (#4674) 2023-06-22 07:19:38 +00:00
Nikita Pivkin
96db52c3f6 feat(java): capture licenses from pom.xml (#4681)
* feat(java): capture licenses from pom.xml

* update doc
2023-06-21 13:12:37 +00:00
Leroy Shirto
3e902a57a9 feat(helm): make sessionAffinity configurable (#4623)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-06-21 11:14:36 +00:00
Tung Bui (Leo)
904f1cf24e fix: Show the correct URL of the secret scanning (#4682) 2023-06-21 10:57:54 +00:00
Meisam
7d48c5d5d4 document expected file pattern definition format (#4654) 2023-06-20 14:02:55 +00:00
guangwu
dcc73e964a fix: format arg error (#4642)
* fix: format arg error

* fix: xerrors.Errorf
2023-06-19 10:52:38 +00:00
chenk
35c4262d0b feat(k8s): cyclonedx kbom support (#4557)
* feat: cyclonedx kbom support

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: cyclonedx kbom support

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: kubernetes bill of materials

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: kubernetes bill of materials

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: kubernetes bill of materials

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: kubernetes bill of materials

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: kubernetes bill of materials

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: kubernetes bill of materials

Signed-off-by: chenk <hen.keinan@gmail.com>

* chore: update sum db

Signed-off-by: chenk <hen.keinan@gmail.com>

* chore: update sum db

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: kubernetes bill of materials

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: kubernetes bill of materials

Signed-off-by: chenk <hen.keinan@gmail.com>

* chore: update sumdb

Signed-off-by: chenk <hen.keinan@gmail.com>

* chore: update sumdb

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: kubernetes bill of materials

Signed-off-by: chenk <hen.keinan@gmail.com>

* feat: kubernetes bill of materials

Signed-off-by: chenk <hen.keinan@gmail.com>

---------

Signed-off-by: chenk <hen.keinan@gmail.com>
2023-06-19 10:48:26 +00:00
Nikita Pivkin
0e01851e9e fix(nodejs): remove unused fields for the pnpm lockfile (#4630)
* refactor(nodejs): remove unused fields for the pnpm lockfile

* run go mod tidy

---------

Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-06-19 03:17:31 +00:00
Masahiro331
4d9b444499 fix(vm): update ext4-filesystem parser for parse multi block extents (#4616)
* chore(deps): update ext4-filesystem parser for parse multi block extents

* test(vm): update integration-vm test fixtures

* test(vm): add gzip decompresser for sparse file

* test(vm): add mage command update golden file for vm integration test

* chore(magefile): [WIP] change test repository

* Revert "chore(magefile): [WIP] change test repository"

This reverts commit c015c8892f.

* fix(test): update fixtures and golden file

* fix(test): revert fixVersion and PkgID
2023-06-18 16:41:55 +00:00
afdesk
c29197ab7d ci: update build IDs (#4641) 2023-06-18 11:24:29 +00:00
Chris Novakovic
d7637adc6b fix(debian): update EOL for Debian 12 (#4647)
* fix(debian): update EOL for Debian 12

Debian 12 was released on 2023-06-10 and will be supported for five
years - see https://www.debian.org/News/2023/20230610.

* Update docs
2023-06-16 04:18:55 +00:00
Teppei Fukuda
ef39eeedf3 chore(deps): bump go-containerregistry (#4639) 2023-06-15 09:44:24 +00:00
guangwu
1ce8bb535a chore: unnecessary use of fmt.Sprintf (S1039) (#4637) 2023-06-15 08:36:15 +00:00
Björn Wenzel
bc9513fc57 fix(db): change argument order in Exists query for JavaDB (#4595) 2023-06-14 02:26:10 +00:00
simar7
aecd2f0bf0 feat(aws): Add support to see successes in results (#4427)
Fixes: https://github.com/aquasecurity/trivy/discussions/4417

Signed-off-by: Simar <simar@linux.com>
2023-06-13 17:36:05 +00:00
dependabot[bot]
2cbf402b6a chore(deps): bump golangci/golangci-lint-action from 3.5.0 to 3.6.0 (#4613)
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v3.5.0...v3.6.0)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 13:52:43 +00:00
Teppei Fukuda
0099b20e31 ci: do not trigger tests in main (#4614) 2023-06-12 13:00:32 +00:00
dependabot[bot]
a597a54fb6 chore(deps): bump sigstore/cosign-installer (#4609)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 204a51a57a74d190b284a0ce69b44bc37201f343 to ef0e9691595ea19ec990a46b1a591dcafe568f34.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](204a51a57a...ef0e969159)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 12:16:20 +00:00
dependabot[bot]
b453fbec37 chore(deps): bump CycloneDX/gh-gomod-generate-sbom from 1 to 2 (#4608)
Bumps [CycloneDX/gh-gomod-generate-sbom](https://github.com/CycloneDX/gh-gomod-generate-sbom) from 1 to 2.
- [Release notes](https://github.com/CycloneDX/gh-gomod-generate-sbom/releases)
- [Commits](https://github.com/CycloneDX/gh-gomod-generate-sbom/compare/v1...v2)

---
updated-dependencies:
- dependency-name: CycloneDX/gh-gomod-generate-sbom
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-06-12 11:40:58 +00:00
Teppei Fukuda
0e876d5aa0 ci: bypass the required status checks (#4611) 2023-06-12 14:39:47 +03:00
Teppei Fukuda
a4f27d24a3 ci: support merge queue (#3652) 2023-06-12 11:39:08 +03:00
Teppei Fukuda
9e6411e9f5 ci: matrix build for testing (#4587) 2023-06-12 10:49:13 +03:00
chenk
ef6538a171 feat: trivy k8s private registry support (#4567)
Signed-off-by: chenk <hen.keinan@gmail.com>
2023-06-12 05:40:25 +03:00
Itay Shakury
139f3e1e32 docs: add general coverage page (#3859) 2023-06-11 08:49:29 +03:00
Itay Shakury
479cfdd40e chore: create SECURITY.md (#4601) 2023-06-11 06:16:42 +03:00
afdesk
9a279fa7bb ci: remove 32bit packages (#4585) 2023-06-08 16:52:37 +03:00
Teppei Fukuda
d52b0b7bc0 fix(misconf): deduplicate misconf results (#4588) 2023-06-08 15:15:21 +03:00
Amir Ben Nun
9b531fa27b fix(vm): support sector size of 4096 (#4564)
Co-authored-by: masahiro331 <m_fujimura@r.recruit.co.jp>
2023-06-08 11:31:13 +03:00
Teppei Fukuda
8ca1bfdd23 fix(misconf): terraform relative paths (#4571) 2023-06-08 11:24:52 +03:00
Nikita Pivkin
c20d466044 fix(purl): skip unsupported library type (#4577) 2023-06-08 08:45:32 +03:00
Jonathan Lassoff
52cbe79759 fix(terraform): recursively detect all Root Modules (#4457)
Signed-off-by: Simar <simar@linux.com>
Co-authored-by: Simar <simar@linux.com>
2023-06-08 07:06:00 +03:00
Masahiro331
4a5b915578 fix(vm): support post analyzer for vm command (#4544) 2023-06-07 16:16:27 +03:00
Nikita Pivkin
56cdc55f77 fix(nodejs): change the type of the devDependencies field (#4560) 2023-06-06 15:51:39 +03:00
Nikita Pivkin
17d753676b fix(sbom): export empty dependencies in CycloneDX (#4568) 2023-06-06 15:49:23 +03:00
Teppei Fukuda
2796abe1ed refactor: add composite fs for post-analyzers (#4556) 2023-06-06 08:19:15 +03:00
dependabot[bot]
22a1573807 chore(deps): bump golangci/golangci-lint-action from 3.4.0 to 3.5.0 (#4554) 2023-06-04 16:17:54 +03:00
dependabot[bot]
43586659a1 chore(deps): bump helm/kind-action from 1.5.0 to 1.7.0 (#4526) 2023-06-04 14:50:38 +03:00
dependabot[bot]
5081399659 chore(deps): bump github.com/BurntSushi/toml from 1.2.1 to 1.3.0 (#4528) 2023-06-04 14:48:41 +03:00
dependabot[bot]
e1a38128ab chore(deps): bump github.com/alicebob/miniredis/v2 from 2.30.2 to 2.30.3 (#4529) 2023-06-04 11:19:53 +03:00
dependabot[bot]
283eef6372 chore(deps): bump github.com/aws/aws-sdk-go-v2/service/ec2 (#4536) 2023-06-04 11:13:44 +03:00
dependabot[bot]
bbd7b98741 chore(deps): bump github.com/tetratelabs/wazero from 1.0.0 to 1.2.0 (#4549) 2023-06-04 11:12:49 +03:00
dependabot[bot]
11c81bf2f6 chore(deps): bump github.com/spf13/cast from 1.5.0 to 1.5.1 (#4532) 2023-06-04 11:11:32 +03:00
dependabot[bot]
2d8d63e61a chore(deps): bump github.com/testcontainers/testcontainers-go (#4537) 2023-06-04 09:27:43 +03:00
dependabot[bot]
a46839b1ce chore(deps): bump github.com/go-git/go-git/v5 from 5.6.1 to 5.7.0 (#4530) 2023-06-04 09:25:43 +03:00
dependabot[bot]
19715f5de8 chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#4534) 2023-06-04 09:25:04 +03:00
dependabot[bot]
854b63940a chore(deps): bump github.com/sigstore/rekor from 1.2.0 to 1.2.1 (#4533) 2023-06-02 09:36:08 +03:00
dependabot[bot]
59e1a86643 chore(deps): bump alpine from 3.17.3 to 3.18.0 (#4525) 2023-06-02 09:34:44 +03:00
Teppei Fukuda
9ef01133c8 feat: add SBOM analyzer (#4210)
Co-authored-by: DmitriyLewen <91113035+DmitriyLewen@users.noreply.github.com>
Co-authored-by: DmitriyLewen <dmitriy.lewen@smartforce.io>
2023-06-02 09:34:07 +03:00
DmitriyLewen
dadd1e10c2 fix(sbom): update logic for work with files in spdx format (#4513)
Co-authored-by: Teppei Fukuda <knqyf263@gmail.com>
2023-06-01 12:52:56 +03:00
chenk
1a658210a4 feat: azure workload identity support (#4489)
Signed-off-by: chenk <hen.keinan@gmail.com>
2023-06-01 10:16:23 +03:00
DmitriyLewen
411862c908 feat(ubuntu): add eol date for 18.04 ESM (#4524) 2023-06-01 09:48:33 +03:00
simar7
62a1aaf031 fix(misconf): Update required extensions for terraformplan (#4523)
Signed-off-by: Simar <simar@linux.com>
2023-06-01 07:23:37 +03:00
Teppei Fukuda
48b2e15c23 refactor(cyclonedx): add intermediate representation (#4490) 2023-06-01 05:50:47 +03:00
simar7
c15f269a99 fix(misconf): Remove debug print while scanning (#4521)
Signed-off-by: Simar <simar@linux.com>
2023-06-01 05:28:37 +03:00
DmitriyLewen
b6ee08e55d fix(java): remove duplicates of jar libs (#4515)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-05-31 15:09:18 +03:00
DmitriyLewen
d4740401a3 fix(java): fix overwriting project props in pom.xml (#4498) 2023-05-31 13:16:28 +03:00
Tung Bui (Leo)
4cf2f94d0d docs: Update compilation instructions (#4512) 2023-05-31 10:47:56 +03:00
DmitriyLewen
18ce1c3363 fix(nodejs): update logic for parsing pnpm lock files (#4502) 2023-05-31 08:41:08 +03:00
DmitriyLewen
87eed38c6c fix(secret): remove aws-account-id rule (#4494) 2023-05-31 07:00:20 +03:00
LaurentiuNiculae
b0c591ef66 feat(oci): add support for referencing an input image by digest (#4470)
Signed-off-by: Laurentiu Niculae <niculae.laurentiu1@gmail.com>
2023-05-31 06:39:42 +03:00
dependabot[bot]
b84b5ecfc2 chore(deps): bump github.com/cloudflare/circl from 1.1.0 to 1.3.3 (#4338) 2023-05-30 18:50:09 +03:00
Tej Singh Rana
305255a497 docs: fixed the format (#4503) 2023-05-30 16:37:06 +03:00
DmitriyLewen
d586de585e fix(java): add support of * for exclusions for pom.xml files (#4501) 2023-05-30 16:34:54 +03:00
Anais Urlichs
de6eef3b00 feat: adding issue template for documentation (#4453) 2023-05-30 12:23:05 +03:00
DmitriyLewen
83a9c4a4cf docs: switch glad to ghsa for Go (#4493) 2023-05-30 09:46:49 +03:00
simar7
537272257b chore(deps): Update defsec to v0.89.0 (#4474) 2023-05-30 06:06:46 +03:00
simar7
6fcd1538d9 feat(misconf): Add terraformplan support (#4342)
* feat(misconf): Add terraformplan support

Fixes: https://github.com/aquasecurity/trivy/issues/4341

Signed-off-by: Simar <simar@linux.com>

* update defsec

* fix lint

Signed-off-by: Simar <simar@linux.com>

* remove debug prints

Signed-off-by: Simar <simar@linux.com>

* update tests

Signed-off-by: Simar <simar@linux.com>

---------

Signed-off-by: Simar <simar@linux.com>
2023-05-29 14:48:26 -06:00
DmitriyLewen
72e302cf81 feat(debian): add digests for dpkg (#4445)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-05-28 10:30:58 +03:00
dependabot[bot]
7e99d08a13 chore(deps): bump github.com/sigstore/rekor from 1.1.1 to 1.2.0 (#4478) 2023-05-28 06:37:30 +03:00
chenk
12a1789be5 feat(k8s): exclude node scanning by node labels (#4459)
Signed-off-by: chenk <hen.keinan@gmail.com>
2023-05-25 14:52:28 +03:00
DmitriyLewen
919e8c92b2 docs: add info about multi-line mode for regexp from custom secret rules (#4159) 2023-05-24 14:59:50 +03:00
Teppei Fukuda
50fe43f14c feat(cli): convert JSON reports into a different format (#4452)
Co-authored-by: Aurelien LAJOIE <aurelien.lajoie@kili-technology.com>
2023-05-24 11:45:26 +03:00
DmitriyLewen
09db1d4389 feat(image): add logic to guess base layer for docker-cis scan (#4344) 2023-05-24 10:43:09 +03:00
afdesk
3f0721ff6e fix(cyclonedx): set original names for packages (#4306) 2023-05-23 12:35:52 +03:00
Teppei Fukuda
0ef0dadb16 feat: group subcommands (#4449) 2023-05-23 08:15:39 +03:00
rlubetkin
3a7717fdeb feat(cli): add retry to cache operations (#4189) 2023-05-22 16:56:18 +03:00
AliDatadog
63cfb2714a fix(vuln): report architecture for apk packages (#4247)
Co-authored-by: Sylvain Baubeau <lebauce@gmail.com>
2023-05-22 16:37:00 +03:00
Teppei Fukuda
e1361368a1 refactor: enable cases where return values are not needed in pipeline (#4443) 2023-05-22 08:11:24 +03:00
Mike Poindexter
29b5f7e8ec fix(image): resolve scan deadlock when error occurs in slow mode (#4336) 2023-05-21 10:48:06 +03:00
simar7
92ed344e8a docs(misconf): Update docs for kubernetes file patterns (#4435)
Signed-off-by: Simar <simar@linux.com>
2023-05-21 10:20:15 +03:00
chenk
16af41be15 test: k8s integration tests (#4423)
Signed-off-by: chenk <hen.keinan@gmail.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-05-18 22:41:22 +03:00
DmitriyLewen
cab8569cd7 feat(redhat): add package digest for rpm (#4410) 2023-05-18 14:30:00 +03:00
simar7
92f9e98d04 feat(misconf): Add --reset-policy-bundle for policy bundle (#4167) 2023-05-18 11:54:01 +03:00
guangwu
33fb04763d fix: typo (#4431) 2023-05-18 10:09:26 +03:00
DmitriyLewen
8b162f287f add user instruction to imgconf (#4429) 2023-05-18 08:53:34 +03:00
DmitriyLewen
3b7c9198dd fix(k8s): add image sources (#4411) 2023-05-17 07:01:58 +03:00
simar7
c75d35ff61 docs(scanning): Add versioning banner (#4415) 2023-05-17 06:32:17 +03:00
DmitriyLewen
d298415c09 feat(cli): add mage command to update golden integration test files (#4380) 2023-05-16 13:58:50 +03:00
chenk
1a56295ff8 feat: node-collector custom namespace support (#4407)
Signed-off-by: chenk <hen.keinan@gmail.com>
2023-05-16 13:41:01 +03:00
DmitriyLewen
864ad10a38 chore(deps): bump owenrumney/go-sarif from v2.1.3 to v2.2.0 (#4378) 2023-05-16 09:02:15 +03:00
DmitriyLewen
7a20d96227 refactor(sbom): use multiline json for spdx-json format (#4404) 2023-05-16 08:22:07 +03:00
Chris Novakovic
ea5fd75ffe fix(ubuntu): add EOL date for Ubuntu 23.04 (#4347) 2023-05-16 05:21:45 +03:00
guangwu
56a01ec6f7 refactor: code-optimization (#4214) 2023-05-15 14:48:09 +03:00
Peter Engelbert
6a0e152657 feat(image): Add image-src flag to specify which runtime(s) to use (#4047)
Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-05-15 14:42:42 +03:00
DmitriyLewen
50c8b418a9 test: skip wrong update of test golden files (#4379) 2023-05-15 11:35:50 +03:00
DmitriyLewen
51ca6536c3 refactor: don't return error for package.json without version/name (#4377) 2023-05-15 11:30:10 +03:00
guangwu
e5e7ebcdab docs: cmd error (#4376) 2023-05-15 08:58:32 +03:00
DmitriyLewen
6ee4960776 test(cli): add test for config file and env combination (#2666)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-05-15 08:56:56 +03:00
afdesk
c067b026e0 fix(report): set a correct file location for license scan output (#4326) 2023-05-14 15:27:13 +03:00
afdesk
ff6374829a ci: rpm repository for all versions and aarch64 (#4077)
Co-authored-by: Franco Gil <45880759+realFranco@users.noreply.github.com>
2023-05-14 14:53:25 +03:00
Eugene Bykov
0009b02bb8 chore(alpine): Update Alpine to 3.18 (#4351) 2023-05-14 14:37:35 +03:00
Chris Novakovic
d61ae8cc73 fix(alpine): add EOL date for Alpine 3.18 (#4308) 2023-05-12 13:30:11 +03:00
dependabot[bot]
636ce808fe chore(deps): bump github.com/docker/distribution (#4337) 2023-05-12 07:59:23 +03:00
Teppei Fukuda
e859d10eef feat: allow root break for mapfs (#4094) 2023-05-11 14:41:17 +03:00
simar7
a6ef37fa3d docs(misconf): Remove examples.md (#4256) 2023-05-10 20:41:18 +03:00
afdesk
dca8c039ed fix(ubuntu): update eol dates for Ubuntu (#4258) 2023-05-10 18:10:12 +03:00
DmitriyLewen
b003f58b2c feat(alpine): add digests for apk packages (#4168) 2023-05-10 16:37:50 +03:00
Teppei Fukuda
86f0016165 chore: add discussion templates (#4190) 2023-05-10 12:06:37 +03:00
simar7
2f318ce97d fix(terraform): Support tfvars (#4123) 2023-05-10 11:18:19 +03:00
Teppei Fukuda
ec3906c24e chore: separate docs:generate (#4242) 2023-05-10 09:08:31 +03:00
dependabot[bot]
37b25d28b2 chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#4246) 2023-05-10 09:06:23 +03:00
Teppei Fukuda
45d5edb0d7 refactor: define vulnerability scanner interfaces (#4117) 2023-05-09 22:25:08 +03:00
chenk
090a00e717 feat: unified k8s scan resources (#4188) 2023-05-09 16:52:02 +03:00
simar7
f2188eb56d chore(deps): Update defsec to v0.88.1 (#4178) 2023-05-09 16:34:29 +03:00
dependabot[bot]
b79850f416 chore(deps): bump github.com/alicebob/miniredis/v2 from 2.30.1 to 2.30.2 (#4141) 2023-05-09 16:01:12 +03:00
guangwu
36acdfa8db chore: trivy bin ignore (#4212) 2023-05-09 12:03:47 +03:00
Teppei Fukuda
55fb723a6e feat(image): enforce image platform (#4083) 2023-05-08 21:04:22 +03:00
dependabot[bot]
9c87cb2710 chore(deps): bump github.com/owenrumney/go-sarif/v2 from 2.1.2 to 2.1.3 (#4143) 2023-05-08 12:07:30 +03:00
dependabot[bot]
21cf179f6b chore(deps): bump github.com/docker/docker (#4144) 2023-05-07 21:56:16 +03:00
dependabot[bot]
fbf7a77aee chore(deps): bump github.com/hashicorp/golang-lru/v2 from 2.0.1 to 2.0.2 (#4146) 2023-05-07 21:55:24 +03:00
dependabot[bot]
547391c224 chore(deps): bump aquaproj/aqua-installer from 2.0.2 to 2.1.1 (#4140) 2023-05-05 12:59:49 +03:00
DmitriyLewen
882bfdd782 fix(ubuntu): fix version selection logic for ubuntu esm (#4171) 2023-05-05 12:59:02 +03:00
dependabot[bot]
949cd10c0c chore(deps): bump github.com/samber/lo from 1.37.0 to 1.38.1 (#4147) 2023-05-05 12:56:59 +03:00
dependabot[bot]
93bc162ca5 chore(deps): bump github.com/hashicorp/go-getter from 1.7.0 to 1.7.1 (#4145) 2023-05-04 15:06:52 +03:00
dependabot[bot]
57993ef673 chore(deps): bump sigstore/cosign-installer from 3.0.1 to 3.0.3 (#4138) 2023-05-04 13:55:10 +03:00
dependabot[bot]
dc4baeb359 chore(deps): bump github.com/testcontainers/testcontainers-go (#4150) 2023-05-04 13:53:27 +03:00
second-frank
25d0255dc3 chore: install.sh support for windows (#4155) 2023-05-04 13:48:58 +03:00
dependabot[bot]
73e54549f1 chore(deps): bump github.com/sigstore/rekor from 1.1.0 to 1.1.1 (#4166) 2023-05-04 13:44:02 +03:00
dependabot[bot]
08de7c613f chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.8.0 (#4149) 2023-05-03 12:23:58 +03:00
Anais Urlichs
ade4730fa7 docs: moving skipping files out of others (#4154)
Signed-off-by: AnaisUrlichs <urlichsanais@gmail.com>
2023-05-03 12:23:21 +03:00
Masahiro331
1be1e2e638 fix(spdx): add workaround for no src packages (#4118) 2023-04-28 07:16:21 +03:00
Teppei Fukuda
45bc9e0de4 test(golang): rename broken go.mod (#4129) 2023-04-28 07:02:59 +03:00
DmitriyLewen
3334e78fa3 feat(sbom): add supplier field (#4122)
Co-authored-by: Teppei Fukuda <knqyf263@gmail.com>
2023-04-27 14:31:49 +03:00
DmitriyLewen
27fb1bfdee test(misconf): skip downloading of policies for tests #4126 2023-04-27 14:25:31 +03:00
DmitriyLewen
845ae31e5d refactor: use debug message for post-analyze errors (#4037)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-04-27 12:07:35 +03:00
Teppei Fukuda
11a5b91a1a feat(sbom): add VEX support (#4053) 2023-04-27 10:21:06 +03:00
DmitriyLewen
5eab464987 feat(sbom): add primary package purpose field for SPDX (#4119) 2023-04-25 14:47:25 +03:00
chenk
a00d00eb94 fix(k8s): fix quiet flag (#4120)
Signed-off-by: chenk <hen.keinan@gmail.com>
2023-04-25 14:46:37 +03:00
DmitriyLewen
9bc326909f fix(python): parse of pip extras (#4103)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-04-24 21:17:56 +03:00
DmitriyLewen
8559841677 feat(java): use full path for nested jars (#3992) 2023-04-24 13:45:41 +03:00
Adarsh A
0650e0e1d5 feat(license): add new flag for classifier confidence level (#4073)
Co-authored-by: Aswath S <aswath.s@thoughtworks.com>
2023-04-24 13:41:08 +03:00
chenk
43b6496274 feat: config and fs compliance support (#4097) 2023-04-24 11:49:19 +03:00
dependabot[bot]
9181bc1f70 chore(deps): bump sigstore/cosign-installer from 2.8.1 to 3.0.1 (#3952)
Co-authored-by: DmitriyLewen <dmitriy.lewen@smartforce.io>
2023-04-24 08:43:07 +03:00
Idan Frimark
48e021ea6b feat(spdx): add support for SPDX 2.3 (#4058)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-04-23 23:36:04 +03:00
chenk
107752df65 fix: k8s all-namespaces support (#4096) 2023-04-23 20:08:37 +03:00
Teppei Fukuda
bd0c60364a perf(misconf): replace with post-analyzers (#4090)
Signed-off-by: Simar <simar@linux.com>
Co-authored-by: Simar <simar@linux.com>
2023-04-23 19:22:46 +03:00
bgoareguer
76662d5dd7 fix(helm): update networking API version detection (#4106) 2023-04-23 10:50:40 +03:00
aswath-s-tw
be47b688c7 feat(image): custom docker host option (#3599)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-04-20 22:10:51 +03:00
Chris Burns
cc18f92cf3 style: debug flag is incorrect and needs extra - (#4087) 2023-04-19 10:02:44 +03:00
Jonathan Lassoff
572a6193e7 docs(vuln): Document inline vulnerability filtering comments (#4024)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-04-18 12:02:14 +03:00
Teppei Fukuda
914c6f0921 feat(fs): customize error callback during fs walk (#4038) 2023-04-17 16:51:51 +03:00
DmitriyLewen
3f02feeff3 fix(ubuntu): skip copyright files from subfolders (#4076) 2023-04-17 14:07:58 +03:00
Teppei Fukuda
57bb77c060 docs: restructure scanners (#3977)
Co-authored-by: DmitriyLewen <dmitriy.lewen@smartforce.io>
2023-04-17 11:54:31 +03:00
DmitriyLewen
b19b56c341 fix: fix file does not exist error for post-analyzers (#4061)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-04-17 08:15:44 +03:00
simar7
b43b19ba54 feat(flag): Support globstar for --skip-files and --skip-directories (#4026)
Signed-off-by: Simar <simar@linux.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-04-16 13:48:20 +03:00
dependabot[bot]
14805002d3 chore(deps): bump actions/stale from 7 to 8 (#3955) 2023-04-16 13:40:12 +03:00
DmitriyLewen
83bb97ab13 fix: return insecure option to download javadb (#4064) 2023-04-15 08:26:50 +03:00
DmitriyLewen
79a1ba32d5 fix(nodejs): don't stop parsing when unsupported yarn.lock protocols are found (#4052) 2023-04-14 07:35:51 +03:00
afdesk
ff1c43a791 ci: add gpg signing for RPM packages (#4056) 2023-04-14 07:28:44 +03:00
chenk
b608b116cc fix(k8s): current context title (#4055)
Signed-off-by: chenk <hen.keinan@gmail.com>
2023-04-13 17:56:22 +03:00
chenk
2c3b60f4c9 fix(k8s): quit support on k8s progress bar (#4021)
Signed-off-by: chenk <hen.keinan@gmail.com>
2023-04-13 17:30:54 +03:00
afdesk
a6b8642134 chore: add a note about Dockerfile.canary (#4050)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-04-13 17:27:28 +03:00
afdesk
90b80662c6 ci: fix path to canary binaries (#4045) 2023-04-13 10:27:06 +03:00
AliDatadog
dcefc6bf3c fix(vuln): report architecture for debian packages (#4032) 2023-04-12 15:51:12 +03:00
Dan Luhring
601e25fb2f feat: add support for Chainguard's commercial distro (#3641) 2023-04-12 15:20:52 +03:00
afdesk
0bebec19f0 ci: bump goreleaser for Github Action from 1.4.1 to 1.16.2 (#3979) 2023-04-12 15:15:16 +03:00
AliDatadog
707ea94234 fix(vuln): fix error message for remote scanners (#4031) 2023-04-11 16:50:45 +03:00
Teppei Fukuda
8e1fe769e4 feat(report): add image metadata to SARIF (#4020)
* feat(report): add image metadata to SARIF

* test: fix sarif golden
2023-04-11 16:33:25 +03:00
DmitriyLewen
4b36e97dce docs: fix broken cache link on Installation page (#3999)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-04-10 15:38:03 +03:00
Teppei Fukuda
f0df725c5a fix: lock downloading policies and database (#4017) 2023-04-10 15:37:13 +03:00
Teppei Fukuda
009675c825 fix: avoid concurrent access to the global map (#4014) 2023-04-10 12:30:08 +03:00
DmitriyLewen
3ed86aa3d0 feat(rust): add Cargo.lock v3 support (#4012) 2023-04-10 11:46:43 +03:00
chenk
f31dea4bd6 feat: auth support oci download server subcommand (#4008) 2023-04-10 08:26:17 +03:00
dependabot[bot]
d37c50a2b3 chore(deps): bump github.com/docker/docker (#4009) 2023-04-09 22:29:13 +03:00
Yousaf Nabi
693d20516b chore: install.sh support for armv7 (#3985) 2023-04-09 22:18:13 +03:00
dependabot[bot]
65d89b99d1 chore(deps): bump github.com/Azure/go-autorest/autorest/adal (#3961) 2023-04-09 15:58:06 +03:00
DmitriyLewen
a119ef86ea fix(rust): fix panic when 'dependencies' field is not used in cargo.toml (#3997) 2023-04-09 11:06:57 +03:00
DmitriyLewen
c8283cebde fix(sbom): fix infinite loop for cyclonedx (#3998) 2023-04-09 09:10:02 +03:00
dependabot[bot]
6c8b042548 chore(deps): bump helm/chart-testing-action from 2.3.1 to 2.4.0 (#3954) 2023-04-04 16:15:26 +03:00
DmitriyLewen
c42f360f57 fix: use warning for errors from enrichment files for post-analyzers (#3972) 2023-04-04 16:11:07 +03:00
dependabot[bot]
20c21caccf chore(deps): bump github.com/docker/docker (#3963) 2023-04-04 14:06:41 +03:00
Rewanth Tammana
54388ffd16 fix(helm): added annotation to psp configurable from values (#3893)
Signed-off-by: Rewanth Tammana <22347290+rewanthtammana@users.noreply.github.com>
2023-04-03 11:24:43 +03:00
dependabot[bot]
99a2519816 chore(deps): bump github.com/go-git/go-git/v5 from 5.5.2 to 5.6.1 (#3962) 2023-04-03 11:23:30 +03:00
afdesk
d113b93139 fix(secret): update built-in rule tests (#3855)
Co-authored-by: Teppei Fukuda <knqyf263@gmail.com>
2023-04-03 10:37:08 +03:00
dependabot[bot]
5ab6d25880 chore(deps): bump github.com/alicebob/miniredis/v2 from 2.23.0 to 2.30.1 (#3957) 2023-04-03 10:32:13 +03:00
Teppei Fukuda
0767cb8443 test: rewrite scripts in Go (#3968) 2023-04-03 10:31:10 +03:00
simar7
428ee19cae docs(cli): Improve glob documentation (#3945)
Signed-off-by: Simar <simar@linux.com>
2023-04-03 07:59:02 +03:00
dependabot[bot]
3e00dc346f chore(deps): bump github.com/aws/aws-sdk-go-v2/service/sts (#3959) 2023-04-03 07:57:54 +03:00
Teppei Fukuda
cf2f0b2d1c ci: check CLI references (#3967) 2023-04-03 07:57:08 +03:00
dependabot[bot]
70f507e1af chore(deps): bump alpine from 3.17.2 to 3.17.3 (#3951) 2023-04-03 06:37:49 +03:00
dependabot[bot]
befabc6b99 chore(deps): bump github.com/aws/aws-sdk-go from 1.44.212 to 1.44.234 (#3956) 2023-04-03 06:36:35 +03:00
dependabot[bot]
ee69abb78f chore(deps): bump github.com/moby/buildkit from 0.11.4 to 0.11.5 (#3958) 2023-04-02 19:29:28 +03:00
dependabot[bot]
8901f7be62 chore(deps): bump actions/setup-go from 3 to 4 (#3953) 2023-04-02 19:28:40 +03:00
dependabot[bot]
4e6bbbc8cc chore(deps): bump actions/cache from 3.2.6 to 3.3.1 (#3950) 2023-04-02 19:28:10 +03:00
dependabot[bot]
d70f346f53 chore(deps): bump github.com/containerd/containerd from 1.6.19 to 1.7.0 (#3965) 2023-04-02 16:27:22 +03:00
dependabot[bot]
3efb2fdeda chore(deps): bump github.com/sigstore/rekor from 1.0.1 to 1.1.0 (#3964) 2023-04-02 10:49:41 +03:00
Krishna Dutt Panchagnula
ed590966a3 docs(cli): added makefile and go file to create docs (#3930)
Co-authored-by: Teppei Fukuda <knqyf263@gmail.com>
2023-04-01 08:43:21 +03:00
Teppei Fukuda
a2f39a34c5 chore: Revert "ci: add gpg signing for RPM packages (#3612)" (#3946)
This reverts commit 67572dff6d.
2023-04-01 08:39:22 +03:00
Teppei Fukuda
5a10631023 chore: ignore gpg key (#3943) 2023-04-01 06:39:31 +03:00
afdesk
4072115e5a feat(cyclonedx): support dependency graph (#3177)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-04-01 00:46:30 +03:00
simar7
7cad265b7a chore(deps): Bump defsec to v0.85.0 (#3940)
Signed-off-by: Simar <simar@linux.com>
2023-03-31 16:58:01 +03:00
DmitriyLewen
f8b5733112 feat(rust): remove dev deps and find direct deps for Cargo.lock (#3919)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-30 22:05:34 +03:00
Rо́man
10796a2910 feat(server): redis with public TLS certs support (#3783)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-30 15:53:21 +03:00
simar7
abff1398c2 feat(flag): Add glob support to --skip-dirs and --skip-files (#3866) 2023-03-30 10:48:56 +03:00
Teppei Fukuda
b40f60c405 chore: replace make with mage (#3932) 2023-03-30 10:40:24 +03:00
DmitriyLewen
67236f6aac fix(sbom): add checksum to files (#3888)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-30 09:24:27 +03:00
dependabot[bot]
00de24b16e chore(deps): bump github.com/opencontainers/runc from 1.1.4 to 1.1.5 (#3928)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-30 09:23:39 +03:00
chenk
5976d1fa07 chore: remove unused mount volumes (#3927)
Signed-off-by: chenk <hen.keinan@gmail.com>
2023-03-30 07:33:03 +03:00
Teppei Fukuda
f14bed4532 feat: add auth support for downloading OCI artifacts (#3915) 2023-03-30 05:53:24 +03:00
DmitriyLewen
1ee05189f0 refactor(purl): use epoch in qualifier (#3913) 2023-03-28 13:26:56 +03:00
dependabot[bot]
0000252ce4 chore(deps): bump github.com/in-toto/in-toto-golang from 0.5.0 to 0.7.0 (#3727)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-28 13:22:47 +03:00
Teppei Fukuda
ca0d972cdb feat(image): add registry options (#3906) 2023-03-28 07:00:04 +03:00
AndreyLevchenko
0336555773 feat(rust): dependency tree and line numbers support for cargo lock file (#3746)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-26 14:43:45 +03:00
dependabot[bot]
dd9cd9528f chore(deps): bump google.golang.org/protobuf from 1.29.0 to 1.29.1 (#3905)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-26 13:20:02 +03:00
DmitriyLewen
edb06826b4 feat(php): add support for location, licenses and graph for composer.lock files (#3873)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-26 12:02:53 +03:00
Crypt Keeper
c02b15b371 chore(deps): updates wazero to 1.0.0 (#3904)
Signed-off-by: Adrian Cole <adrian@tetrate.io>
2023-03-26 08:50:38 +03:00
Teppei Fukuda
63ef760c69 feat(image): discover SBOM in OCI referrers (#3768)
Co-authored-by: saso <sasoakira6114@gmail.com>
2023-03-26 08:27:10 +03:00
DmitriyLewen
3fa703c034 docs: change cache-dir key in config file (#3897) 2023-03-24 19:12:14 +03:00
DmitriyLewen
4d78747c40 fix(sbom): use release and epoch for SPDX package version (#3896) 2023-03-24 19:11:06 +03:00
afdesk
67572dff6d ci: add gpg signing for RPM packages (#3612) 2023-03-24 06:46:18 +03:00
adamcohen2
e76d5ff98a docs: Update incorrect comment for skip-update flag (#3878) 2023-03-23 07:25:01 +02:00
Teppei Fukuda
011ea60db4 refactor(misconf): simplify policy filesystem (#3875) 2023-03-23 06:27:29 +02:00
DmitriyLewen
6445309de4 feat(nodejs): parse package.json alongside yarn.lock (#3757)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-21 19:13:02 +02:00
DmitriyLewen
6e9c2c36da fix(spdx): add PkgDownloadLocation field (#3879) 2023-03-21 16:11:38 +02:00
DmitriyLewen
18eeea2f62 fix(report): try to guess direct deps for dependency tree (#3852)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-21 12:55:07 +02:00
DmitriyLewen
02b6914212 chore(amazon): update EOL (#3876) 2023-03-21 07:11:56 +02:00
DmitriyLewen
79096e1161 fix(nodejs): improvement logic for package-lock.json v2-v3 (#3877) 2023-03-21 07:06:34 +02:00
DmitriyLewen
fc2e80cfe0 feat(amazon): add al2023 support (#3854)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-20 15:56:16 +02:00
dependabot[bot]
5f8d69d72e chore(deps): bump github.com/cheggaaa/pb/v3 from 3.1.0 to 3.1.2 (#3736) 2023-03-20 14:13:30 +02:00
simar7
7916aafffb docs(misconf): Add information about selectors (#3703)
Signed-off-by: Simar <simar@linux.com>
2023-03-20 14:12:35 +02:00
Shubham Palriwala
1b1ed39c7d docs(cli): update CLI docs with cobra (#3815) 2023-03-20 13:48:58 +02:00
chenk
234a360a7a feat: k8s parallel processing (#3693)
Signed-off-by: chenk <hen.keinan@gmail.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-20 13:34:38 +02:00
bgoareguer
b864b3b926 docs: add DefectDojo in the Security Management section (#3871) 2023-03-20 11:38:26 +02:00
Crypt Keeper
ad34c989de chore(deps): updates wazero to 1.0.0-rc.2 (#3853)
Signed-off-by: Adrian Cole <adrian@tetrate.io>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-19 19:56:01 +02:00
Teppei Fukuda
7148de3252 refactor: add pipeline (#3868) 2023-03-19 19:55:36 +02:00
DmitriyLewen
927acf9579 feat(cli): add javadb metadata to version info (#3835) 2023-03-19 15:51:14 +02:00
simar7
33074cfab3 chore(deps): Move compliance types to defsec (#3842)
Signed-off-by: Simar <simar@linux.com>
2023-03-19 15:46:06 +02:00
saso
ba9b0410c9 feat(sbom): add support for CycloneDX JSON Attestation of the correct specification (#3849) 2023-03-19 15:40:58 +02:00
chenk
a754a04e2b feat: add node toleration option (#3823) 2023-03-19 14:05:57 +02:00
Teppei Fukuda
9e4b57fb43 fix: allow mapfs to open dirs (#3867) 2023-03-19 13:33:50 +02:00
DmitriyLewen
09fd299f96 fix(report): update uri only for os class targets (#3846) 2023-03-17 10:15:24 +02:00
DmitriyLewen
09e13022c2 feat(nodejs): Add v3 npm lock file support (#3826)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-15 21:54:59 +02:00
DmitriyLewen
52cbfebcdd feat(nodejs): parse package.json files alongside package-lock.json (#2916)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-15 21:54:01 +02:00
simar7
d6a2d6369a docs(misconf): Fix links to built in policies (#3841)
Signed-off-by: Simar <simar@linux.com>
2023-03-15 11:47:44 +02:00
dependabot[bot]
a12f58be57 chore(deps): bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.86.1 to 1.89.1 (#3827)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-14 11:17:36 +02:00
DmitriyLewen
ee518350c5 fix(java): skip empty files for jar post analyzer (#3832) 2023-03-14 11:15:31 +02:00
DmitriyLewen
3987a679f9 fix(docker): build healthcheck command for line without /bin/sh prefix (#3831) 2023-03-14 09:28:36 +02:00
Teppei Fukuda
2bb25e766b refactor(license): use goyacc for license parser (#3824) 2023-03-14 09:27:17 +02:00
dependabot[bot]
00c763bc10 chore(deps): bump github.com/docker/docker from 23.0.0-rc.1+incompatible to 23.0.1+incompatible (#3586)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-13 17:33:07 +02:00
chenk
cac5881bbb fix: populate timeout context to node-collector (#3766) 2023-03-13 13:10:37 +02:00
chenk
bd9c6e613e fix: exclude node collector scanning (#3771) 2023-03-13 11:40:23 +02:00
Ari Yonaty
20f10673b9 fix: display correct flag in error message when skipping java db update #3808 2023-03-13 00:39:17 +02:00
DmitriyLewen
1fac7bf1ba fix: disable jar analyzer for scanners other than vuln (#3810) 2023-03-13 00:11:25 +02:00
Masahiro331
aaf265881e fix(sbom): fix incompliant license format for spdx (#3335) 2023-03-12 17:21:25 +02:00
DmitriyLewen
f8307635ad fix(java): the project props take precedence over the parent's props (#3320)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-09 19:25:52 +02:00
DmitriyLewen
1aa3b7dc28 docs: add canary build info to README.md (#3799) 2023-03-09 13:36:04 +02:00
Anais Urlichs
57904c0f97 docs: adding link to gh token generation (#3784) 2023-03-08 14:24:02 +02:00
Anais Urlichs
bdccf72338 docs: changing docs in accordance with #3460 (#3787) 2023-03-08 14:23:17 +02:00
dependabot[bot]
800473a8bc chore(deps): bump github.com/moby/buildkit from 0.11.0 to 0.11.4 (#3789)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-08 11:51:16 +02:00
dependabot[bot]
e6ab389f9e chore(deps): bump actions/add-to-project from 0.4.0 to 0.4.1 (#3724) 2023-03-07 13:35:06 +02:00
DmitriyLewen
6614398ab4 fix(license): disable jar analyzer for licence scan only (#3780) 2023-03-07 13:22:23 +02:00
DmitriyLewen
1dc6fee781 bump trivy-issue-action to v0.0.0; skip pkg dir (#3781) 2023-03-07 11:52:32 +02:00
DmitriyLewen
3357ed096b fix: skip checking dirs for required post-analyzers (#3773) 2023-03-06 13:29:35 +02:00
afdesk
1064636b3d docs: add information about plugin format (#3749) 2023-03-06 11:27:30 +02:00
DmitriyLewen
60b7ef5a55 fix(sbom): add trivy version to spdx creators tool field (#3756)
* fix(sbom): add trivy version to spdx creators tool field

* refactor test
2023-03-03 10:41:39 +02:00
simar7
497c955a4b feat(misconf): Add support to show policy bundle version (#3743)
Fixes: https://github.com/aquasecurity/trivy/issues/3696

Signed-off-by: Simar <simar@linux.com>
2023-03-02 17:00:45 +02:00
Andrea Scarpino
5d54310d76 fix(python): fix error with optional dependencies in pyproject.toml (#3741) 2023-03-02 16:58:03 +02:00
dependabot[bot]
44cf1e2f57 chore(deps): bump github.com/aws/aws-sdk-go from 1.44.210 to 1.44.212 (#3740)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-02 15:18:51 +02:00
DmitriyLewen
743b4b0d97 add id for package.json files (#3750) 2023-03-02 14:25:56 +02:00
dependabot[bot]
6de43855f8 chore(deps): bump github.com/containerd/containerd from 1.6.18 to 1.6.19 (#3738)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-02 13:20:32 +02:00
dependabot[bot]
9a0ceef166 chore(deps): bump actions/cache from 3.2.4 to 3.2.6 (#3725) 2023-03-01 23:14:17 +02:00
dependabot[bot]
0501b46d48 chore(deps): bump github.com/google/go-containerregistry (#3731)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-01 23:13:31 +02:00
dependabot[bot]
ee3004d292 chore(deps): bump go.etcd.io/bbolt from 1.3.6 to 1.3.7 (#3732)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-01 20:53:53 +02:00
dependabot[bot]
5c8e604f56 chore(deps): bump alpine from 3.17.1 to 3.17.2 (#3723) 2023-03-01 20:53:30 +02:00
Teppei Fukuda
bc0836623c fix(cli): pass integer to exit-on-eol (#3716) 2023-03-01 12:18:11 +02:00
Itay Shakury
23cdac02ee feat: add kubernetes pss compliance (#3498)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-01 12:10:34 +02:00
Kalyana Krishna Varanasi
302c8ae24c feat: Adding --module-dir and --enable-modules (#3677)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-03-01 12:09:53 +02:00
Teppei Fukuda
34120f4201 feat: add special IDs for filtering secrets (#3702) 2023-03-01 09:51:11 +02:00
simar7
e399ed8439 chore(deps): Update defsec (#3713)
* chore(deps): Update defsec

* fix tests
2023-03-01 08:10:03 +02:00
simar7
ef7b762e48 docs(misconf): Add guide on input schema (#3692)
* docs(misconf): Add guide on input schema

* Update docs/docs/misconfiguration/custom/schema.md

Co-authored-by: Itay Shakury <itay@itaysk.com>

* make schema usage more descriptive

* docs: point to the full page

* update docs

Signed-off-by: Simar <simar@linux.com>

---------

Signed-off-by: Simar <simar@linux.com>
Co-authored-by: Itay Shakury <itay@itaysk.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-28 15:55:49 -08:00
Teppei Fukuda
00daebc161 feat(go): support dependency graph and show only direct dependencies in the tree (#3691) 2023-02-28 13:24:53 +02:00
chenk
98d1031552 feat: docker multi credential support (#3631)
Signed-off-by: chenk <hen.keinan@gmail.com>
2023-02-28 11:42:37 +02:00
Teppei Fukuda
b791362871 feat: summarize vulnerabilities in compliance reports (#3651) 2023-02-28 00:09:00 +02:00
Teppei Fukuda
719fdb1b11 feat(python): parse pyproject.toml alongside poetry.lock (#3695)
Co-authored-by: DmitriyLewen <dmitriy.lewen@smartforce.io>
2023-02-27 20:48:55 +02:00
DmitriyLewen
3ff5699b4b feat(python): add dependency tree for poetry lock file (#3665)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-26 16:15:00 +02:00
Masahiro331
33909d9df3 fix(cyclonedx): incompliant affect ref (#3679) 2023-02-26 16:04:29 +02:00
Manuel Morejón
d85a3e087b chore(helm): update skip-db-update environment variable (#3657)
Signed-off-by: Manuel Morejon <manuel@mmorejon.io>
2023-02-26 14:16:17 +02:00
Masahiro331
551899c24e fix(spdx): change CreationInfo timestamp format RFC3336Nano to RFC3336 (#3675) 2023-02-26 10:11:47 +02:00
Teppei Fukuda
3aaa2cfb75 fix(sbom): export empty dependencies in CycloneDX (#3664) 2023-02-25 18:33:59 +02:00
Dmitry Ivankov
9d1300c3e7 docs: java-db air-gap doc tweaks (#3561)
Downloaded file name is `javadb.tar.gz` rather than `db.tar.gz`.
Also `--skip-update` is deprecated in favor of `--skip-db-update` and `--skip-java-db-update`.
2023-02-24 17:54:29 +02:00
Teppei Fukuda
793cc43d4c feat(go): license support (#3683) 2023-02-24 17:52:35 +02:00
AndreyLevchenko
6a3294e476 feat(ruby): add dependency tree/location support for Gemfile.lock (#3669)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-23 23:47:28 +02:00
chenk
e9dc21d88a fix(k8s): k8s label size (#3678)
Signed-off-by: chenk <hen.keinan@gmail.com>
2023-02-23 15:09:27 +02:00
Masahiro331
12976d42df fix(cyclondx): fix array empty value, null to [] (#3676) 2023-02-23 13:35:59 +02:00
Teppei Fukuda
1dc2b349c6 refactor: rewrite gomod analyzer as post-analyzer (#3674) 2023-02-23 13:35:08 +02:00
chenk
92eaf636ca feat: config outdated-api result filtered by k8s version (#3578)
Signed-off-by: chenk <hen.keinan@gmail.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-22 15:41:37 +02:00
Alexander Lauster
9af436b999 fix: Update to Alpine 3.17.2 (#3655)
Fix CVE-2023-0286
2023-02-21 19:38:20 +02:00
Teppei Fukuda
88ee68d0c6 feat: add support for virtual files (#3654) 2023-02-20 17:20:57 +02:00
Teppei Fukuda
75c96bd968 feat: add post-analyzers (#3640)
Co-authored-by: DmitriyLewen <dmitriy.lewen@smartforce.io>
2023-02-20 13:08:26 +02:00
Edoardo Vacchi
baea3997d2 chore(deps): updates wazero to 1.0.0-pre.9 (#3653)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-02-20 13:03:28 +02:00
dependabot[bot]
7ca0db17ea chore(deps): bump github.com/go-openapi/runtime from 0.24.2 to 0.25.0 (#3528)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-20 13:01:33 +02:00
dependabot[bot]
866999e454 chore(deps): bump github.com/containerd/containerd from 1.6.15 to 1.6.18 (#3633)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-20 10:11:01 +02:00
DmitriyLewen
b7bfb9a207 feat(python): add dependency locations for Pipfile.lock (#3614) 2023-02-20 09:51:42 +02:00
dependabot[bot]
9badef27ac chore(deps): bump golang.org/x/net from 0.5.0 to 0.7.0 (#3648)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-19 15:51:12 +02:00
DmitriyLewen
d856595b8e fix(java): fix groupID selection by ArtifactID for jar files. (#3644) 2023-02-18 09:07:08 +02:00
dependabot[bot]
fe7c26a741 chore(deps): bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.63.1 to 1.85.0 (#3607)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-17 12:44:55 +02:00
Gio Rodriguez
f251dfc5ce fix(aws): Adding a fix for update-cache flag that is not applied on AWS scans. (#3619)
* adding a fix for update-cache that was not applied on AWS scans.

* removing unneeded code

---------

Co-authored-by: Gio Rodriguez <giovanni.rodriguez@aquasec.com>
2023-02-16 22:49:20 +02:00
didiermichel
9be8062c10 feat(cli): add command completion (#3061)
Co-authored-by: congbang-le <lecongbang314@gmail.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-15 13:29:03 +02:00
Duy Nguyen
370098dbf4 docs(misconf): update dockerfile link (#3627) 2023-02-15 11:54:56 +02:00
Jack Lin
32acd293fd feat(flag): add exit-on-eosl option (#3423)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-15 10:51:15 +02:00
dependabot[bot]
aa8e185e03 chore(deps): bump github.com/go-git/go-git/v5 from 5.4.2 to 5.5.2 (#3533)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-14 16:17:28 +02:00
Alexej Disterhoft
86603bb9c5 fix(cli): make java db repository configurable (#3595)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-14 15:01:15 +02:00
chenk
7b1e173f51 chore: bump trivy-kubernetes (#3613)
Signed-off-by: chenk <hen.keinan@gmail.com>
2023-02-14 13:23:45 +02:00
Helge Eichelberg
85d5d61bc7 chore(helm): update Trivy from v0.36.1 to v0.37.2 (#3574)
* chore(helm): update Trivy from v0.36.1 to v0.37.1

Signed-off-by: elchenberg <elchenberg@users.noreply.github.com>

* chore(helm): bump Trivy to v0.37.2

Signed-off-by: elchenberg <elchenberg@users.noreply.github.com>

---------

Signed-off-by: elchenberg <elchenberg@users.noreply.github.com>
2023-02-14 13:10:07 +02:00
dependabot[bot]
2c17260ba8 chore(deps): bump github.com/spf13/viper from 1.14.0 to 1.15.0 (#3536)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-14 13:09:43 +02:00
Teppei Fukuda
c54f1aa8f0 chore(deps): bump golang/x/mod to v0.8.0 (#3606) 2023-02-14 07:02:26 +02:00
dependabot[bot]
625ea58122 chore(deps): bump golang.org/x/crypto from 0.3.0 to 0.5.0 (#3529)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-13 16:15:12 +02:00
dependabot[bot]
623c7f9432 chore(deps): bump helm.sh/helm/v3 from 3.10.3 to 3.11.1 (#3580)
Co-authored-by: DmitriyLewen <dmitriy.lewen@smartforce.io>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-13 16:14:25 +02:00
DmitriyLewen
d291c34f51 ci: quote pros in c++ for semantic pr (#3605) 2023-02-13 14:05:35 +02:00
DmitriyLewen
6cac6c917f fix(image): check proxy settings from env for remote images (#3604) 2023-02-13 12:54:38 +02:00
DmitriyLewen
12b563b974 BREAKING: use normalized trivy-java-db (#3583)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-10 02:16:37 +02:00
DmitriyLewen
72a14c67af fix(image): add timeout for remote images (#3582)
* add timeout for remote image

* fix linter error
2023-02-09 14:19:17 +02:00
dependabot[bot]
4c01d73fb7 chore(deps): bump golang.org/x/mod from 0.6.0 to 0.7.0 (#3532)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-07 08:38:25 +02:00
dependabot[bot]
10dd5d1a95 chore(deps): bump golang.org/x/text from 0.5.0 to 0.6.0 (#3534)
Co-authored-by: Teppei Fukuda <knqyf263@gmail.com>
2023-02-07 06:51:49 +02:00
simar7
439c541fd3 fix(misconf): handle dot files better (#3550) 2023-02-05 09:10:10 +09:00
Teppei Fukuda
200e04a767 chore: bump Go to 1.19 (#3551) 2023-02-03 15:08:01 +09:00
dependabot[bot]
a533ca87e6 chore(deps): bump alpine from 3.17.0 to 3.17.1 (#3522) 2023-02-03 04:21:25 +02:00
dependabot[bot]
4bccbe6e1c chore(deps): bump docker/build-push-action from 3 to 4 (#3523) 2023-02-03 04:20:52 +02:00
dependabot[bot]
d0562085df chore(deps): bump actions/cache from 3.2.2 to 3.2.4 (#3524) 2023-02-03 04:20:15 +02:00
dependabot[bot]
f5e65749b4 chore(deps): bump golangci/golangci-lint-action from 3.3.0 to 3.4.0 (#3525) 2023-02-03 04:17:39 +02:00
dependabot[bot]
d3da459d45 chore(deps): bump aquaproj/aqua-installer from 1.2.0 to 2.0.2 (#3526) 2023-02-03 04:15:56 +02:00
Teppei Fukuda
7f8868b7d8 fix(sbom): download the Java DB when generating SBOM (#3539) 2023-02-01 17:33:09 +02:00
Teppei Fukuda
364379b7b2 fix: use cgo free sqlite driver (#3521)
* fix: use cgo free sqlite driver

* chore: add CGO_ENABLED=0

* chore(deps): bump go-rpmdb
2023-02-01 17:06:12 +02:00
afdesk
0205475fa9 ci: fix path to dist folder (#3527) 2023-02-01 16:44:01 +02:00
Teppei Fukuda
e9d2af9174 fix(image): close layers (#3517) 2023-02-01 13:36:48 +02:00
Naimuddin Shaik
b169424089 refactor: db client changed (#3515)
changed the constructor to accept interface.
2023-02-01 13:15:36 +02:00
DmitriyLewen
7bf1e192ec feat(java): use trivy-java-db to get GAV (#3484)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-01 11:48:05 +02:00
Batuhan Apaydın
023e45b896 docs: add note about the limitation in Rekor (#3494)
Signed-off-by: Batuhan Apaydın <batuhan.apaydin@trendyol.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-02-01 11:14:47 +02:00
Teppei Fukuda
0fe62a93df docs: aggregate targets (#3503) 2023-02-01 08:48:33 +02:00
Edoardo Vacchi
0373e0822d deps: updates wazero to 1.0.0-pre.8 (#3510)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-02-01 06:48:37 +02:00
DmitriyLewen
a2e21f9b5c docs: add alma 9 and rocky 9 to supported os (#3513) 2023-02-01 06:47:26 +02:00
simar7
7d778b75f7 chore(deps): bump defsec to v0.82.9 (#3512) 2023-02-01 04:14:25 +02:00
Itay Shakury
9e9dbea717 chore: add missing target labels (#3504) 2023-01-31 17:20:56 +02:00
DmitriyLewen
d99a7b82f7 docs: add java vulnerability page (#3429)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-01-31 08:10:24 +02:00
Teppei Fukuda
cb5af0b33b feat(image): add support for Docker CIS Benchmark (#3496)
Co-authored-by: chenk <hen.keinan@gmail.com>
2023-01-31 07:31:59 +02:00
Teppei Fukuda
6eec9ac0a4 feat(image): secret scanning on container image config (#3495) 2023-01-30 16:50:56 +02:00
simar7
1eca973cbf chore(deps): Upgrade defsec to v0.82.8 (#3488)
Signed-off-by: Simar <simar@linux.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-01-30 09:38:17 +02:00
Teppei Fukuda
fb0d8f3f30 feat(image): scan misconfigurations in image config (#3437) 2023-01-30 04:48:29 +02:00
Helge Eichelberg
501d424d1f chore(helm): update Trivy from v0.30.4 to v0.36.1 (#3489)
Signed-off-by: elchenberg <elchenberg@users.noreply.github.com>
2023-01-28 07:12:08 +02:00
chenk
475dc17bc8 feat(k8s): add node info resource (#3482)
Signed-off-by: chenk <hen.keinan@gmail.com>
2023-01-25 22:00:05 +02:00
kunlongli
ed173b8295 perf(secret): optimize secret scanning memory usage (#3453) 2023-01-25 11:45:09 +02:00
Teppei Fukuda
1b368be367 feat: support aliases in CLI flag, env and config (#3481) 2023-01-25 11:33:12 +02:00
chenk
66a83d5cdb fix(k8s): migrate rbac k8s (#3459) 2023-01-25 11:13:41 +02:00
DmitriyLewen
81bee0f11e feat(java): add implementationVendor and specificationVendor fields to detect GroupID from MANIFEST.MF (#3480) 2023-01-24 12:21:19 +02:00
Teppei Fukuda
e1076085d9 refactor: rename security-checks to scanners (#3467) 2023-01-23 16:53:06 +02:00
Teppei Fukuda
aaf845d02e chore: display the troubleshooting URL for the DB denial error (#3474) 2023-01-23 16:12:00 +02:00
Corey Wilson
ed5bb0ba92 docs: yaml tabs to spaces, auto create namespace (#3469) 2023-01-23 10:51:55 +02:00
Anais Urlichs
3158bfe605 docs: adding show-and-tell template to GH discussions (#3391) 2023-01-22 17:34:09 +02:00
Lénaïc Huard
85b6c4aa15 fix: Fix a temporary file leak in case of error (#3465)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-01-22 16:12:56 +02:00
Teppei Fukuda
60bddae64c fix(test): sort cyclonedx components (#3468) 2023-01-22 14:21:20 +02:00
Anais Urlichs
e0bb04c915 docs: fixing spelling mistakes (#3462) 2023-01-22 14:18:15 +02:00
Teppei Fukuda
c25e826bb5 ci: set paths triggering VM tests in PR (#3438) 2023-01-22 11:35:19 +02:00
Raz Cohen
07ddc85a46 docs: typo in --skip-files (#3454) 2023-01-18 14:23:56 +02:00
Srinivas Kandukuri
e88507c999 feat(custom-forward): Extended advisory data (#3444) 2023-01-17 16:06:27 +02:00
Carl Winbäck
e2dfee208f docs: fix spelling error (#3436) 2023-01-16 14:31:43 +00:00
Teppei Fukuda
c575d6f7de refactor(image): extend image config analyzer (#3434) 2023-01-16 13:48:26 +02:00
Lior Vaisman Argon
036d5a8233 fix(nodejs): add ignore protocols to yarn parser (#3433) 2023-01-16 11:27:20 +02:00
DmitriyLewen
e6d7f15762 fix(db): check proxy settings when using insecure flag (#3435) 2023-01-16 10:40:27 +02:00
simar7
a1d4427c8b feat(misconf): Fetch policies from OCI registry (#3015)
Signed-off-by: Simar <simar@linux.com>
2023-01-15 13:37:04 +02:00
DmitriyLewen
682351a131 ci: downgrade Go to 1.18 and use stable and oldstable go versions for unit tests (#3413)
* use stable and oldstable go versions for unit tests

* downgrade Go to 1.18
2023-01-15 12:03:15 +02:00
afdesk
ff0c4516db ci: store URLs to Github Releases in RPM repository (#3414) 2023-01-15 11:59:18 +02:00
DmitriyLewen
ee12442b8d feat(server): add support of skip-db-update flag for hot db update (#3416) 2023-01-15 10:28:50 +02:00
DmitriyLewen
2033e05b6b chore(deps): bump github.com/moby/buildkit from v0.10.6 to v0.11.0 (#3411) 2023-01-12 08:45:07 +02:00
Teppei Fukuda
6bc564e887 fix(image): handle wrong empty layer detection (#3375) 2023-01-11 20:17:12 +02:00
DmitriyLewen
b3b8d4dd6e test: fix integration tests for spdx and cycloneDX (#3412) 2023-01-11 14:02:10 +02:00
Matthieu Maitre
b88bccae6e feat(python): Include Conda packages in SBOMs (#3379)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-01-10 16:11:17 +02:00
DmitriyLewen
fbd8a13d54 feat: add support pubspec.lock files for dart (#3344)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-01-10 13:34:53 +02:00
Kalyana Krishna Varanasi
0f545cfa96 fix(image): parsePlatform is failing with UNAUTHORIZED error (#3326)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-01-10 13:26:57 +02:00
DmitriyLewen
76c883dc43 fix(license): change normalize for GPL-3+-WITH-BISON-EXCEPTION (#3405) 2023-01-10 09:24:11 +00:00
Jack Lin
a8b671bc29 feat(server): log errors on server side (#3397) 2023-01-10 10:21:31 +02:00
Teppei Fukuda
a5919ca363 chore(deps): bump defsec to address helm vulnerabilities (#3399) 2023-01-08 15:34:11 +02:00
Itay Shakury
89016da21e docs: rewrite installation docs and general improvements (#3368)
improve installation guide, improve overview pages, rename cli section to docs
2023-01-08 15:16:03 +02:00
Itay Shakury
c3759c6d83 chore: update code owners (#3393) 2023-01-08 15:14:10 +02:00
Itay Shakury
044fb9761e chore: test docs separately from code (#3392) 2023-01-08 11:10:31 +02:00
Teppei Fukuda
ad2e648b33 docs: use the formula maintained by Homebrew (#3389) 2023-01-05 16:25:57 +02:00
Max Usachev
ad25a776cc docs: add Security Management section with SonarQube plugin 2023-01-05 14:59:47 +02:00
jerbob92
9039df4993 fix(deps): fix errors on yarn.lock files that contain local file reference (#3384) 2023-01-05 12:17:11 +02:00
Jack Lin
60cf4fe49f feat(flag): early fail when the format is invalid (#3370) 2023-01-04 13:46:04 +02:00
dependabot[bot]
9470e3cd27 chore(deps): bump github.com/aws/aws-sdk-go from 1.44.136 to 1.44.171 (#3366)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-01-03 20:53:50 +02:00
Olivier Jacques
d274d1568a docs(aws): fix broken links (#3374) 2023-01-03 17:59:28 +02:00
dependabot[bot]
2a870f8a82 chore(deps): bump actions/stale from 6 to 7 (#3360) 2023-01-03 15:28:29 +02:00
dependabot[bot]
5974023b7f chore(deps): bump helm/kind-action from 1.4.0 to 1.5.0 (#3359) 2023-01-03 15:23:58 +02:00
dependabot[bot]
02aa8c2c50 chore(deps): bump github.com/CycloneDX/cyclonedx-go from 0.6.0 to 0.7.0 (#2974)
Co-authored-by: DmitriyLewen <dmitriy.lewen@smartforce.io>
Co-authored-by: masahiro331 <m_fujimura@r.recruit.co.jp>
2023-01-03 15:15:07 +02:00
dependabot[bot]
6e6171fead chore(deps): bump azure/setup-helm from 3.4 to 3.5 (#3358) 2023-01-03 15:04:29 +02:00
dependabot[bot]
066f27792f chore(deps): bump github.com/moby/buildkit from 0.10.4 to 0.10.6 (#3173) 2023-01-03 14:44:40 +02:00
dependabot[bot]
8cc3284106 chore(deps): bump goreleaser/goreleaser-action from 3 to 4 (#3357) 2023-01-03 14:19:00 +02:00
dependabot[bot]
8d71346143 chore(deps): bump github.com/containerd/containerd from 1.6.8 to 1.6.14 (#3367)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-01-03 12:01:45 +02:00
Crypt Keeper
5b944d20ac chore(go): updates wazero to v1.0.0-pre.7 (#3355)
Signed-off-by: Adrian Cole <adrian@tetrate.io>
2023-01-03 11:08:17 +02:00
dependabot[bot]
9c645b99e2 chore(deps): bump golang.org/x/text from 0.4.0 to 0.5.0 (#3362)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2023-01-03 08:45:14 +02:00
dependabot[bot]
e2cd782d3a chore(deps): bump actions/cache from 3.0.11 to 3.2.2 (#3356) 2023-01-02 15:59:36 +02:00
Itay Shakury
4813cf5cfd docs: improve compliance docs (#3340) 2022-12-30 13:55:18 +02:00
Lior Vaisman Argon
025e5099d2 feat(deps): add yarn lock dependency tree (#3348) 2022-12-29 19:45:18 +02:00
chenk
4d59a1ef9b fix: compliance change id and title naming (#3349)
Signed-off-by: chenk <hen.keinan@gmail.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-29 17:46:50 +02:00
DmitriyLewen
eaa5bcf7d2 feat: add support for mix.lock files for elixir language (#3328)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-29 15:18:51 +02:00
chenk
a888440922 feat: add k8s cis bench (#3315)
Signed-off-by: chenk <hen.keinan@gmail.com>
2022-12-28 20:38:48 +02:00
DmitriyLewen
62b369ee39 test: disable SearchLocalStoreByNameOrDigest test for non-amd64 arch (#3322)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-28 13:02:25 +02:00
behara
c110c4e028 revert: cache merged layers (#3334)
This reverts commit 6b4ddaaef2.
2022-12-28 10:01:01 +02:00
Masahiro331
bc759efdc3 feat(cyclonedx): add recommendation (#3336)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-27 15:25:27 +02:00
DmitriyLewen
fe3831e0fe feat(ubuntu): added support ubuntu ESM versions (#1893)
Signed-off-by: knqyf263 <knqyf263@gmail.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-27 10:24:28 +02:00
DmitriyLewen
b0cebec324 fix: change logic to build relative paths for skip-dirs and skip-files (#3331)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-26 17:38:31 +02:00
dependabot[bot]
a66d3fe3f0 chore(deps): bump github.com/hashicorp/golang-lru from 0.5.4 to 2.0.1 (#3265)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: masahiro331 <m_fujimura@r.recruit.co.jp>
2022-12-25 12:39:26 +02:00
Owen Rumney
5190f9566b feat: Adding support for Windows testing (#3037)
Signed-off-by: Owen Rumney <owen.rumney@aquasec.com>
Signed-off-by: knqyf263 <knqyf263@gmail.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-22 22:54:18 +02:00
gboer
b00f3c60f6 feat: add support for Alpine 3.17 (#3319) 2022-12-19 13:25:29 +02:00
Teppei Fukuda
a70f885113 docs: change PodFile.lock to Podfile.lock (#3318) 2022-12-19 13:24:26 +02:00
saso
1ec1fe64e8 fix(sbom): support for the detection of old CycloneDX predicate type (#3316) 2022-12-19 11:06:36 +02:00
lsoumille
68eda79357 feat(secret): Use .trivyignore for filtering secret scanning result (#3312) 2022-12-18 11:58:34 +02:00
Takeshi Yoneda
b95d435a6a chore(go): remove experimental FS API usage in Wasm (#3299)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2022-12-18 11:55:53 +02:00
DmitriyLewen
ac6b7c3354 ci: add workflow to add issues to roadmap project (#3292)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-18 10:32:39 +02:00
gmetaxo
cfabdf9138 fix(vuln): include duplicate vulnerabilities with different package paths in the final report (#3275)
* Add test for filter with both duplicates and different package paths

* Add package path in key of uniqVulns map

* Add package path to the sorting logic
2022-12-15 19:21:54 +02:00
dependabot[bot]
56e3d8de09 chore(deps): bump github.com/spf13/viper from 1.13.0 to 1.14.0 (#3250)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-15 16:29:58 +02:00
Masahiro331
bbccb4484a feat(sbom): better support for third-party SBOMs (#3262)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-15 16:20:21 +02:00
DmitriyLewen
e879b0697c docs: add information about languages with support for dependency locations (#3306)
Co-authored-by: Teppei Fukuda <knqyf263@gmail.com>
2022-12-15 15:25:40 +02:00
tockn
e92266f2c8 feat(vm): add region option to vm scan to be able to scan any region's ami and ebs snapshots (#3284)
Co-authored-by: Teppei Fukuda <knqyf263@gmail.com>
2022-12-15 12:21:05 +02:00
dependabot[bot]
01c7fb14bc chore(deps): bump github.com/Azure/azure-sdk-for-go from 66.0.0+incompatible to 67.1.0+incompatible (#3251)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-13 19:46:54 +02:00
DmitriyLewen
23d0613879 fix(vuln): change severity vendor priority for ghsa-ids and vulns from govuln (#3255) 2022-12-13 17:29:43 +02:00
Itay Shakury
407c2407d1 docs: remove comparisons (#3289) 2022-12-13 11:13:56 +02:00
Dan Luhring
93c5d2dc71 feat: add support for Wolfi Linux (#3215) 2022-12-12 22:43:44 +02:00
DmitriyLewen
2809794964 ci: add go.mod to canary workflow (#3288) 2022-12-12 22:40:14 +02:00
Catminusminus
08b55c3347 feat(python): skip dev dependencies (#3282)
This commit bumps the go-dep-parser version. This revents Trivy from detecting vulnerabilities in Poetry dev-dependency, so the document is also updated.

Co-authored-by: DmitriyLewen <dmitriy.lewen@smartforce.io>
2022-12-12 15:04:48 +02:00
afdesk
52300e6069 chore: update ubuntu version for Github action runnners (#3257)
* chore: update ubuntu version for Github action runnners

* update the ubuntu version for docs actions
2022-12-12 11:09:46 +02:00
DmitriyLewen
a7ac6acaa2 fix(go): skip dep without Path for go-binaries (#3254) 2022-12-12 11:04:57 +02:00
DmitriyLewen
4436a202ff feat(rust): add ID for cargo pgks (#3256) 2022-12-12 07:40:15 +02:00
dependabot[bot]
34d505ad14 chore(deps): bump github.com/samber/lo from 1.33.0 to 1.36.0 (#3263)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-11 19:21:31 +02:00
dependabot[bot]
ea956026c8 chore(deps): bump github.com/Masterminds/sprig/v3 from 3.2.2 to 3.2.3 (#3253)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-11 19:16:10 +02:00
DmitriyLewen
aea298b3dc feat: add support for swift cocoapods lock files (#2956)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-11 19:15:10 +02:00
Teppei Fukuda
c67fe17b4e fix(sbom): use proper constants (#3286) 2022-12-11 15:56:48 +02:00
dependabot[bot]
f907255672 chore(deps): bump golang.org/x/term from 0.1.0 to 0.3.0 (#3278)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-11 15:33:28 +02:00
Teppei Fukuda
8f95743502 test(vm): import relevant analyzers (#3285) 2022-12-11 15:02:43 +02:00
Pikaqiu
8744534c28 feat: support scan remote repository (#3131)
Co-authored-by: AMF <work@afdesk.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-11 11:57:04 +02:00
DmitriyLewen
c278d86614 docs: fix typo in fluxcd (#3268) 2022-12-08 10:55:14 +02:00
Ari Yonaty
fa2281f723 docs: fix broken "ecosystem" link in readme (#3280) 2022-12-08 10:43:23 +02:00
simar7
a3eece4fef feat(misconf): Add compliance check support (#3130)
Signed-off-by: Simar <simar@linux.com>
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-07 22:42:59 +02:00
hriprsd
7a6cf5a27c docs: Adding Concourse resource for trivy (#3224) 2022-12-04 16:22:10 +02:00
dependabot[bot]
dd26bd2306 chore(deps): change golang from 1.19.2 to 1.19 (#3249)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-12-04 11:03:02 +02:00
Masahiro331
cbba6d101a fix(sbom): duplicate dependson (#3261) 2022-12-04 10:48:02 +02:00
dependabot[bot]
fa2e3ac2c1 chore(deps): bump alpine from 3.16.2 to 3.17.0 (#3247) 2022-12-04 10:24:56 +02:00
Crypt Keeper
5c434753ce chore(go): updates wazero to 1.0.0-pre.4 (#3242)
Signed-off-by: Adrian Cole <adrian@tetrate.io>
2022-12-04 10:17:37 +02:00
DmitriyLewen
d29b0edcc7 feat(report): add dependency locations to sarif format (#3210) 2022-12-01 13:23:58 +02:00
Masahiro331
967e32f4a2 fix(rpm): add rocky to osVendors (#3241) 2022-12-01 12:44:21 +02:00
tsanva
947741660b docs: fix a typo (#3236) 2022-11-30 11:56:45 +02:00
DmitriyLewen
97ce61eef0 feat(dotnet): add dependency parsing for nuget lock files (#3222)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-11-29 16:15:46 +02:00
Max Fröhlich
17e13c4dbd docs: add pre-commit hook to community tools (#3203) 2022-11-29 16:15:17 +02:00
Cyril Jouve
b1a2c4e9c8 feat(helm): pass arbitrary env vars to trivy (#3208) 2022-11-29 11:36:45 +02:00
Masahiro331
bd30e983e3 chore(vm): update xfs filesystem parser for change log (#3230) 2022-11-27 18:04:10 +02:00
Masahiro331
22d92e4ad6 feat: add virtual machine scan command (#2910)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-11-27 11:45:00 +02:00
Itay Shakury
531eaa8f06 docs: reorganize index and readme (#3026) 2022-11-26 10:44:01 +02:00
afdesk
8569d43a7a fix: slowSizeThreshold should be less than defaultSizeThreshold (#3225) 2022-11-24 15:09:06 +02:00
Tamir Kiviti
604a73d325 feat: Export functions for trivy plugin (#3204) 2022-11-22 09:40:09 +02:00
Teppei Fukuda
7594b1f041 feat(image): add support wildcard for platform os (#3196)
Signed-off-by: knqyf263 <knqyf263@gmail.com>
2022-11-21 10:09:32 +02:00
chenk
fd5cafb26d fix: load compliance report from file system (#3161)
Signed-off-by: chenk <hen.keinan@gmail.com>
2022-11-20 15:15:03 +02:00
DmitriyLewen
6ab9380b29 fix(suse): use package name to get advisories (#3199) 2022-11-20 14:46:33 +02:00
Irum Malik
4a5d64355c docs(image): space issues during image scan (#3190) 2022-11-20 14:41:59 +02:00
Peter Engelbert
2206e008ea feat(containerd): scan image by digest (#3075) 2022-11-20 14:40:24 +02:00
AndrewCharlesHay
861bc03e2d fix(vuln): add package name to title (#3183) 2022-11-20 14:00:18 +02:00
chenk
f115895d30 fix: present control status instead of compliance percentage in compliance report (#3181)
Signed-off-by: chenk <hen.keinan@gmail.com>
2022-11-20 13:46:16 +02:00
afdesk
cc8cef1936 perf(license): remove go-enry/go-license-detector. (#3187)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-11-17 18:01:57 +02:00
Naimuddin Shaik
a0033f6b61 fix: workdir command as empty layer (#3087) 2022-11-17 09:43:01 +02:00
Itay Shakury
cb5744dcaf docs: reorganize ecosystem section (#3025) 2022-11-16 10:06:13 +02:00
DmitriyLewen
1ddd6d30b8 feat(dotnet): add support dependency location for dotnet-core files (#3095) 2022-11-16 09:46:28 +02:00
dependabot[bot]
30c8d75674 chore(deps): bump github.com/aws/aws-sdk-go from 1.44.114 to 1.44.136 (#3174)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-11-15 15:34:31 +02:00
dependabot[bot]
8e7b44f720 chore(deps): bump github.com/testcontainers/testcontainers-go from 0.13.0 to 0.15.0 (#3109)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
Co-authored-by: DmitriyLewen <dmitriy.lewen@smartforce.io>
2022-11-15 12:40:21 +02:00
DmitriyLewen
dfff371f84 feat(dotnet): add support dependency location for nuget lock files (#3032) 2022-11-15 12:38:31 +02:00
Teppei Fukuda
eb571fdc40 chore: update code owners for misconfigurations (#3176) 2022-11-14 23:06:36 +02:00
Teppei Fukuda
757178341d feat: add slow mode (#3084)
Co-authored-by: AMF <work@afdesk.com>
2022-11-14 15:49:02 +02:00
Chris Adams
01df475852 docs: fix typo in enable-builin-rules mentions (#3118) 2022-11-14 14:19:21 +02:00
Tal Kapon
6b3be150f1 feat: Add maintainer field to OS packages (#3149) 2022-11-14 14:16:12 +02:00
Nozomi Morimoto
9ebdc51d3a docs: fix some typo (#3171) 2022-11-14 14:15:31 +02:00
dependabot[bot]
42e81ad0a6 chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.17.8 to 1.18.0 (#3175)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-11-13 22:16:50 +02:00
dependabot[bot]
55ec898953 chore(deps): bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (#3112)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-11-13 18:27:38 +02:00
Emily Berk
0644ceba1b docs: fix links on Built-in Policies page (#3124) 2022-11-13 14:51:09 +02:00
dependabot[bot]
50af7a2f46 chore(deps): bump github.com/go-openapi/runtime from 0.24.1 to 0.24.2 (#3117)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-11-13 14:46:35 +02:00
dependabot[bot]
c455d14209 chore(deps): bump github.com/samber/lo from 1.28.2 to 1.33.0 (#3116)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
2022-11-13 14:46:14 +02:00
Serge Dubrovin
8fb9d31617 fix: Perform filepath.Clean first and then filepath.ToSlash for skipFile/skipDirs settings (#3144) 2022-11-13 14:22:00 +02:00
Teppei Fukuda
8562b8cf33 chore: use newline for semantic pr (#3172) 2022-11-13 13:35:50 +02:00
dependabot[bot]
aff9a3e0d9 chore(deps): bump azure/setup-helm from 3.3 to 3.4 (#3107) 2022-11-13 13:04:29 +02:00
dependabot[bot]
001671ed79 chore(deps): bump sigstore/cosign-installer from 2.7.0 to 2.8.1 (#3106) 2022-11-13 13:03:35 +02:00
dependabot[bot]
4e7ab4842c chore(deps): bump amannn/action-semantic-pull-request from 4 to 5 (#3105) 2022-11-13 13:03:07 +02:00
dependabot[bot]
a6091a7e43 chore(deps): bump golangci/golangci-lint-action from 3.2.0 to 3.3.0 (#3104) 2022-11-13 13:00:37 +02:00
DmitriyLewen
6da148cca8 fix(spdx): rename describes field in spdx (#3102) 2022-11-13 12:59:37 +02:00
didiermichel
df9cf88163 chore: handle GOPATH with several paths in make file (#3092) 2022-11-13 12:50:14 +02:00
Jonathan Ballet
32fe108c0a docs(flag): add "rego" configuration file options (#3165) 2022-11-13 10:04:20 +02:00
Crypt Keeper
8fcca9c8cf chore(go): updates wazero to 1.0.0-pre.3 (#3090)
Signed-off-by: Adrian Cole <adrian@tetrate.io>
2022-11-13 09:53:01 +02:00
dependabot[bot]
02f77bc120 chore(deps): bump actions/cache from 3.0.9 to 3.0.11 (#3108) 2022-11-13 09:50:21 +02:00
alfajorcito
aa3ff09ad9 docs(license): fix typo inside quick start (#3134) 2022-11-13 09:44:26 +02:00
Itay Shakury
f26b45294d chore: update codeowners for docs (#3135) 2022-11-13 09:42:58 +02:00
chenk
3b6d7d8cb1 fix(cli): exclude --compliance flag from non supported sub-commands (#3158) 2022-11-13 09:39:25 +02:00
DmitriyLewen
e9a2549955 fix: remove --security-checks none from image help (#3156) 2022-11-13 09:38:25 +02:00
chenk
3aa19122f4 fix: compliance flag description (#3160) 2022-11-13 09:30:21 +02:00
BeHe
fc820570b7 docs(k8s): fix a typo (#3163) 2022-11-13 09:29:29 +02:00
dependabot[bot]
3a1f05e331 chore(deps): bump golang from 1.19.1 to 1.19.2 (#3103) 2022-11-09 20:18:37 +01:00
Teppei Fukuda
7912f585a3 feat(vuln): support dependency graph for RHEL/CentOS (#3094)
Co-authored-by: DmitriyLewen <dmitriy.lewen@smartforce.io>
2022-10-31 11:07:41 +02:00
Teppei Fukuda
9468056c0f feat(vuln): support dependency graph for dpkg and apk (#3093)
Co-authored-by: Masahiro331 <m_fujimura@r.recruit.co.jp>
2022-10-31 08:54:42 +02:00
Teppei Fukuda
7cc83cc2f6 perf(license): enable license classifier only with "--license-full" (#3086) 2022-10-28 20:16:16 +03:00
AndrewCharlesHay
5b975de234 feat(report): add secret scanning to ASFF template (#2860)
Co-authored-by: AMF <work@afdesk.com>
2022-10-28 08:27:10 +03:00
Peter Engelbert
b6cef12534 feat: Allow override of containerd namespace (#3060)
Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>
2022-10-27 16:43:55 +03:00
behara
07651480fa fix(vuln): In alpine use Name as SrcName (#3079) 2022-10-27 12:59:28 +03:00
DmitriyLewen
9e649b87b5 fix(secret): Alibaba AccessKey ID (#3083) 2022-10-27 12:58:14 +03:00
1024 changed files with 54266 additions and 24394 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
* text=auto eol=lf

23
.github/CODEOWNERS vendored
View File

@@ -1,18 +1,23 @@
# Global
* @knqyf263
# Docs
/docs/** @knqyf263 @AnaisUrlichs @itaysk
/mkdocs.yml @knqyf263 @AnaisUrlichs @itaysk
/README.md @knqyf263 @AnaisUrlichs @itaysk
# Helm chart
helm/trivy/ @krol3
helm/trivy/ @chen-keinan
# Misconfiguration scanning
examples/misconf/ @owenrumney @liamg @knqyf263
docs/docs/misconfiguration @owenrumney @liamg @knqyf263
docs/docs/cloud @owenrumney @liamg @knqyf263
pkg/fanal/analyzer/config @owenrumney @liamg @knqyf263
pkg/fanal/handler/misconf @owenrumney @liamg @knqyf263
pkg/cloud @owenrumney @liamg @knqyf263
pkg/flag/aws_flags.go @owenrumney @liamg @knqyf263
pkg/flag/misconf_flags.go @owenrumney @liamg @knqyf263
examples/misconf/ @knqyf263
docs/docs/misconfiguration @knqyf263
docs/docs/cloud @knqyf263
pkg/fanal/analyzer/config @knqyf263
pkg/fanal/handler/misconf @knqyf263
pkg/cloud @knqyf263
pkg/flag/aws_flags.go @knqyf263
pkg/flag/misconf_flags.go @knqyf263
# Kubernetes scanning
pkg/k8s/ @josedonizetti @chen-keinan @knqyf263

122
.github/DISCUSSION_TEMPLATE/bugs.yml vendored Normal file
View File

@@ -0,0 +1,122 @@
labels: ["kind/bug"]
body:
- type: markdown
attributes:
value: |
#### Note
Feel free to raise a bug report if something doesn't work as expected.
Please ensure that you're not creating a duplicate report by searching the [issues](https://github.com/aquasecurity/trivy/issues)/[discussions](https://github.com/aquasecurity/trivy/discussions) beforehand.
If you see any false positives or false negatives, please file a ticket [here](https://github.com/aquasecurity/trivy/discussions/new?category=false-detection).
Please also check [our contribution guidelines](https://aquasecurity.github.io/trivy/latest/community/contribute/discussion/).
- type: textarea
attributes:
label: Description
description: Briefly describe the problem you are having in a few paragraphs.
validations:
required: true
- type: textarea
attributes:
label: Desired Behavior
description: What did you expect to happen?
validations:
required: true
- type: textarea
attributes:
label: Actual Behavior
description: What happened instead?
validations:
required: true
- type: textarea
attributes:
label: Reproduction Steps
description: How do you trigger this bug? Please walk us through it step by step.
value: |
1.
2.
3.
...
render: bash
validations:
required: true
- type: dropdown
attributes:
label: Target
description: Which target are you scanning? It is equal to which subcommand you are using.
options:
- Container Image
- Filesystem
- Git Repository
- Virtual Machine Image
- Kubernetes
- AWS
- SBOM
validations:
required: false
- type: dropdown
attributes:
label: Scanner
description: Which scanner are you using?
options:
- Vulnerability
- Misconfiguration
- Secret
- License
validations:
required: false
- type: dropdown
attributes:
label: Output Format
description: Which output format are you using?
options:
- Table
- JSON
- Template
- SARIF
- CycloneDX
- SPDX
validations:
required: false
- type: dropdown
attributes:
label: Mode
description: Which mode are you using? Specify "Standalone" if you are not using `trivy server`.
options:
- Standalone
- Client/Server
validations:
required: false
- type: textarea
attributes:
label: Debug Output
description: Output of run with `--debug`
placeholder: "$ trivy <target> <subject> --debug"
render: bash
validations:
required: true
- type: input
attributes:
label: Operating System
description: On what operating system are you running Trivy?
placeholder: "e.g. macOS Big Sur"
validations:
required: true
- type: textarea
attributes:
label: Version
description: Output of `trivy --version`
placeholder: "$ trivy --version"
render: bash
validations:
required: true
- type: checkboxes
attributes:
label: Checklist
description: Have you tried the following?
options:
- label: Run `trivy --reset`
- label: Read [the troubleshooting](https://aquasecurity.github.io/trivy/latest/docs/references/troubleshooting/)
- type: markdown
attributes:
value: |
We would be happy if you could share how you are using Trivy [here](https://github.com/aquasecurity/trivy/discussions/new?category=show-and-tell).

View File

@@ -0,0 +1,28 @@
labels: ["kind/documentation"]
body:
- type: markdown
attributes:
value: |
#### Note
Feel free to create a docs report if something doesn't work as expected or is unclear in the documentation.
Please ensure that you're not creating a duplicate report by searching the [issues](https://github.com/aquasecurity/trivy/issues)/[discussions](https://github.com/aquasecurity/trivy/discussions) beforehand.
Please also check [our contribution guidelines](https://aquasecurity.github.io/trivy/latest/community/contribute/discussion/).
- type: textarea
attributes:
label: Description
description: Briefly describe the what has been unclear in the existing documentation
validations:
required: true
- type: textarea
attributes:
label: Link
description: Please provide a link to the current documentation or where you thought to find the information you were looking for
validations:
required: false
- type: textarea
attributes:
label: Suggestions
description: What would you like to have added or changed in the documentation?
validations:
required: true

View File

@@ -0,0 +1,94 @@
body:
- type: markdown
attributes:
value: |
#### Note
Feel free to raise a bug report if something doesn't work as expected.
Please ensure that you're not creating a duplicate report by searching the [issues](https://github.com/aquasecurity/trivy/issues)/[discussions](https://github.com/aquasecurity/trivy/discussions) beforehand.
Please also check [our contribution guidelines](https://aquasecurity.github.io/trivy/latest/community/contribute/discussion/).
- type: input
attributes:
label: IDs
description: List the IDs of vulnerabilities, misconfigurations, secrets, or licenses that are either not detected or mistakenly detected.
placeholder: "e.g. CVE-2021-44228, CVE-2022-22965"
validations:
required: true
- type: textarea
attributes:
label: Description
description: Describe the false detection.
validations:
required: true
- type: textarea
attributes:
label: Reproduction Steps
description: How do you trigger this bug? Please walk us through it step by step.
value: |
1.
2.
3.
...
render: bash
validations:
required: true
- type: dropdown
attributes:
label: Target
description: Which target are you scanning? It is equal to which subcommand you are using.
options:
- Container Image
- Filesystem
- Git Repository
- Virtual Machine Image
- Kubernetes
- AWS
- SBOM
validations:
required: true
- type: dropdown
attributes:
label: Scanner
description: Which scanner are you using?
options:
- Vulnerability
- Misconfiguration
- Secret
- License
validations:
required: true
- type: input
attributes:
label: Target OS
description: What operating system are you scanning? Fill in this field if the scanning target is an operating system.
placeholder: "Example: Ubuntu 22.04"
validations:
required: false
- type: textarea
attributes:
label: Debug Output
description: Output of run with `--debug`
placeholder: "$ trivy <target> <subject> --debug"
render: bash
validations:
required: true
- type: textarea
attributes:
label: Version
description: Output of `trivy --version`
placeholder: "$ trivy --version"
render: bash
validations:
required: true
- type: checkboxes
attributes:
label: Checklist
options:
- label: Read [the documentation regarding wrong detection](https://aquasecurity.github.io/trivy/dev/community/contribute/discussion/#false-detection)
- label: Ran Trivy with `-f json` that shows data sources and confirmed that the security advisory in data sources was correct
validations:
required: true
- type: markdown
attributes:
value: |
We would be happy if you could share how you are using Trivy [here](https://github.com/aquasecurity/trivy/discussions/new?category=show-and-tell).

45
.github/DISCUSSION_TEMPLATE/ideas.yml vendored Normal file
View File

@@ -0,0 +1,45 @@
labels: ["kind/feature"]
body:
- type: markdown
attributes:
value: |
#### Note
Feel free to share your idea.
Please ensure that you're not creating a duplicate ticket by searching the [issues](https://github.com/aquasecurity/trivy/issues)/[discussions](https://github.com/aquasecurity/trivy/discussions) beforehand.
Please also check [our contribution guidelines](https://aquasecurity.github.io/trivy/latest/community/contribute/discussion/).
- type: textarea
attributes:
label: Description
description: Describe your idea.
validations:
required: true
- type: dropdown
attributes:
label: Target
description: Which target is your idea related to?
options:
- Container Image
- Filesystem
- Git Repository
- Virtual Machine Image
- Kubernetes
- AWS
- SBOM
validations:
required: false
- type: dropdown
attributes:
label: Scanner
description: Which scanner is your idea related to?
options:
- Vulnerability
- Misconfiguration
- Secret
- License
validations:
required: false
- type: markdown
attributes:
value: |
We would be happy if you could share how you are using Trivy [here](https://github.com/aquasecurity/trivy/discussions/new?category=show-and-tell).

82
.github/DISCUSSION_TEMPLATE/q-a.yml vendored Normal file
View File

@@ -0,0 +1,82 @@
labels: ["triage/support"]
body:
- type: markdown
attributes:
value: |
#### Note
If you have any troubles/questions, feel free to ask.
Please ensure that you're not asking a duplicate question by searching the [issues](https://github.com/aquasecurity/trivy/issues)/[discussions](https://github.com/aquasecurity/trivy/discussions) beforehand.
Please also check [our contribution guidelines](https://aquasecurity.github.io/trivy/latest/community/contribute/discussion/).
- type: textarea
attributes:
label: Question
description: What kind of problem are you facing? Or, what questions do you have?
validations:
required: true
- type: dropdown
attributes:
label: Target
description: Which target are you scanning? It is equal to which subcommand you are using.
options:
- Container Image
- Filesystem
- Git Repository
- Virtual Machine Image
- Kubernetes
- AWS
- SBOM
validations:
required: false
- type: dropdown
attributes:
label: Scanner
description: Which scanner are you using?
options:
- Vulnerability
- Misconfiguration
- Secret
- License
validations:
required: false
- type: dropdown
attributes:
label: Output Format
description: Which output format are you using?
options:
- Table
- JSON
- Template
- SARIF
- CycloneDX
- SPDX
validations:
required: false
- type: dropdown
attributes:
label: Mode
description: Which mode are you using? Specify "Standalone" if you are not using `trivy server`.
options:
- Standalone
- Client/Server
validations:
required: false
- type: input
attributes:
label: Operating System
description: What operating system are you using?
placeholder: "Example: macOS Big Sur"
validations:
required: false
- type: textarea
attributes:
label: Version
description: Output of `trivy --version`
placeholder: "$ trivy --version"
render: bash
validations:
required: false
- type: markdown
attributes:
value: |
We would be happy if you could share how you are using Trivy [here](https://github.com/aquasecurity/trivy/discussions/new?category=show-and-tell).

View File

@@ -0,0 +1,53 @@
title: "<company name> "
labels: ["adopters"]
body:
- type: textarea
id: links
attributes:
label: "Share Links"
description: "If you would like to share a link to your project or company, please paste it below 🌐"
value: |
...
validations:
required: false
- type: textarea
id: logo
attributes:
label: "Share Logo"
description: "If you have a link to your logo, please provide it in the following text-box 🌐"
value: |
...
validations:
required: false
- type: checkboxes
attributes:
label: Please select all the scan targets that you are using
options:
- label: Container Images
- label: Filesystem
- label: Git Repository
- label: Virtual Machine Images
- label: Kubernetes
- label: AWS
validations:
required: false
- type: checkboxes
attributes:
label: Which scanners are you using on those scan targets?
options:
- label: OS packages and software dependencies in use (SBOM)
- label: Known vulnerabilities (CVEs)
- label: IaC issues and misconfigurations
- label: Sensitive information and secrets
- label: Software licenses
validations:
required: false
- type: textarea
id: info
attributes:
label: "Additional Information"
description: "Please tell us more about your use case of Trivy -- anything that you would like to share 🎉"
value: |
...
validations:
required: false

View File

@@ -1,31 +0,0 @@
---
name: Bug Report
labels: kind/bug
about: If something isn't working as expected.
---
## Description
<!--
Briefly describe the problem you are having in a few paragraphs.
-->
## What did you expect to happen?
## What happened instead?
## Output of run with `-debug`:
```
(paste your output here)
```
## Output of `trivy -v`:
```
(paste your output here)
```
## Additional details (base image name, container registry info...):

View File

@@ -1,9 +0,0 @@
---
name: Feature Request
labels: kind/feature
about: I have a suggestion (and might want to implement myself)!
---
<!--
If this is a FEATURE REQUEST, request format does not matter!
-->

View File

@@ -1,10 +0,0 @@
---
name: Support Question
labels: triage/support
about: If you have a question about Trivy.
---
<!--
If you have a trouble, feel free to ask.
Make sure you're not asking duplicate question by searching on the issues lists.
-->

View File

@@ -1,33 +0,0 @@
---
name: Wrong Detection
labels: ["kind/bug"]
about: If Trivy doesn't detect something, or shows false positive detection
---
## Checklist
- [ ] I've read [the documentation regarding wrong detection](https://aquasecurity.github.io/trivy/latest/community/contribute/issue/#wrong-detection).
- [ ] I've confirmed that a security advisory in data sources was correct.
- Run Trivy with `-f json` that shows data sources and make sure that the security advisory is correct.
## Description
<!--
Briefly describe the CVE that aren't detected and information about artifacts with this CVE.
-->
## JSON Output of run with `-debug`:
```
(paste your output here)
```
## Output of `trivy -v`:
```
(paste your output here)
```
## Additional details (base image name, container registry info...):

17
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
blank_issues_enabled: false
contact_links:
- name: Report a false detection
url: https://github.com/aquasecurity/trivy/discussions/new?category=false-detection
about: Report false positives/negatives
- name: Report a bug
url: https://github.com/aquasecurity/trivy/discussions/new?category=bugs
about: Report bugs
- name: Enhance documentation
url: https://github.com/aquasecurity/trivy/discussions/new?category=documentation
about: Make suggestions to the documentation
- name: Request a feature enhancement
url: https://github.com/aquasecurity/trivy/discussions/new?category=ideas
about: Share ideas for new features
- name: Ask the community for help
url: https://github.com/aquasecurity/trivy/discussions/new?category=q-a
about: Ask questions and discuss with other community members

12
.github/workflows/bypass-cla.yaml vendored Normal file
View File

@@ -0,0 +1,12 @@
# This workflow is used to bypass the required status checks in merge queue.
# cf. https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/troubleshooting-required-status-checks
name: CLA
on:
merge_group:
jobs:
cla:
name: license/cla
runs-on: ubuntu-latest
steps:
- run: 'echo "No test required"'

31
.github/workflows/bypass-test.yaml vendored Normal file
View File

@@ -0,0 +1,31 @@
# This workflow is used to bypass the required status checks.
# cf. https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/troubleshooting-required-status-checks
name: Test
on:
push:
paths:
- '**.md'
- 'docs/**'
- 'mkdocs.yml'
- 'LICENSE'
pull_request:
paths:
- '**.md'
- 'docs/**'
- 'mkdocs.yml'
- 'LICENSE'
jobs:
test:
name: Test
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
operating-system: [ubuntu-latest, windows-latest, macos-latest]
steps:
- run: 'echo "No test required"'
integration:
name: Integration Test
runs-on: ubuntu-latest
steps:
- run: 'echo "No test required"'

View File

@@ -5,6 +5,7 @@ on:
- 'main'
paths:
- '**.go'
- 'go.mod'
- 'Dockerfile.canary'
- '.github/workflows/canary.yaml'
workflow_dispatch:
@@ -15,7 +16,7 @@ jobs:
uses: ./.github/workflows/reusable-release.yaml
with:
goreleaser_config: goreleaser-canary.yml
goreleaser_options: '--snapshot --rm-dist --timeout 60m' # will not release
goreleaser_options: '--snapshot --clean --timeout 60m' # will not release
secrets: inherit
upload-binaries:
@@ -24,7 +25,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Restore Trivy binaries from cache
uses: actions/cache@v3.0.9
uses: actions/cache@v3.3.1
with:
path: dist/
key: ${{ runner.os }}-bins-${{github.workflow}}-${{github.sha}}

View File

@@ -9,10 +9,10 @@ on:
jobs:
deploy:
name: Deploy the dev documentation
runs-on: ubuntu-18.04
runs-on: ubuntu-22.04
steps:
- name: Checkout main
uses: actions/checkout@v3
uses: actions/checkout@v3.5.3
with:
fetch-depth: 0
persist-credentials: true

View File

@@ -11,10 +11,10 @@ on:
jobs:
deploy:
name: Deploy the latest documentation
runs-on: ubuntu-18.04
runs-on: ubuntu-22.04
steps:
- name: Checkout main
uses: actions/checkout@v3
uses: actions/checkout@v3.5.3
with:
fetch-depth: 0
persist-credentials: true

View File

@@ -22,11 +22,11 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
uses: actions/checkout@v3.5.3
with:
fetch-depth: 0
- name: Install Helm
uses: azure/setup-helm@b5b231a831f96336bbfeccc1329990f0005c5bb1
uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78
with:
version: v3.5.0
- name: Set up python
@@ -35,9 +35,9 @@ jobs:
python-version: 3.7
- name: Setup Chart Linting
id: lint
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec
uses: helm/chart-testing-action@e8788873172cb653a90ca2e819d79d65a66d4e76
- name: Setup Kubernetes cluster (KIND)
uses: helm/kind-action@9e8295d178de23cbfbd8fa16cf844eec1d773a07
uses: helm/kind-action@fa81e57adff234b2908110485695db0f181f3c67
with:
version: ${{ env.KIND_VERSION }}
image: ${{ env.KIND_IMAGE }}
@@ -55,7 +55,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
uses: actions/checkout@v3.5.3
with:
fetch-depth: 0
- name: Install chart-releaser

View File

@@ -10,21 +10,21 @@ jobs:
uses: ./.github/workflows/reusable-release.yaml
with:
goreleaser_config: goreleaser.yml
goreleaser_options: '--rm-dist --timeout 90m'
goreleaser_options: '--clean --timeout 90m'
secrets: inherit
deploy-packages:
name: Deploy rpm/dep packages
needs: release # run this job after 'release' job completes
runs-on: ubuntu-18.04 # 20.04 doesn't provide createrepo for now
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v3.5.3
with:
fetch-depth: 0
- name: Restore Trivy binaries from cache
uses: actions/cache@v3.0.9
uses: actions/cache@v3.3.1
with:
path: dist/
key: ${{ runner.os }}-bins-${{github.workflow}}-${{github.sha}}
@@ -32,10 +32,10 @@ jobs:
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install rpm reprepro createrepo distro-info
sudo apt-get -y install rpm reprepro createrepo-c distro-info
- name: Checkout trivy-repo
uses: actions/checkout@v3
uses: actions/checkout@v3.5.3
with:
repository: ${{ github.repository_owner }}/trivy-repo
path: trivy-repo

View File

@@ -27,7 +27,7 @@ jobs:
contents: read # Not required for public repositories, but for clarity
steps:
- name: Cosign install
uses: sigstore/cosign-installer@ced07f21fb1da67979f539bbc6304c16c0677e76
uses: sigstore/cosign-installer@ef0e9691595ea19ec990a46b1a591dcafe568f34
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -60,34 +60,47 @@ jobs:
password: ${{ secrets.ECR_SECRET_ACCESS_KEY }}
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v3.5.3
with:
fetch-depth: 0
- name: Setup Go
uses: actions/setup-go@v3
uses: actions/setup-go@v4
with:
go-version-file: go.mod
- name: Generate SBOM
uses: CycloneDX/gh-gomod-generate-sbom@v1
uses: CycloneDX/gh-gomod-generate-sbom@v2
with:
args: mod -licenses -json -output bom.json
version: ^v1
- name: "save gpg key"
env:
GPG_KEY: ${{ secrets.GPG_KEY }}
run: |
echo "$GPG_KEY" > gpg.key
- name: GoReleaser
uses: goreleaser/goreleaser-action@v3
uses: goreleaser/goreleaser-action@v4
with:
version: v1.4.1
version: v1.16.2
args: release -f=${{ inputs.goreleaser_config}} ${{ inputs.goreleaser_options}}
env:
GITHUB_TOKEN: ${{ secrets.ORG_REPO_TOKEN }}
NFPM_DEFAULT_RPM_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_FILE: "gpg.key"
## push images to registries
## only for canary build
- name: "remove gpg key"
run: |
rm gpg.key
# Push images to registries (only for canary build)
# The custom Dockerfile.canary is necessary
# because GoReleaser Free doesn't support pushing images with the `--snapshot` flag.
- name: Build and push
if: ${{ inputs.goreleaser_config == 'goreleaser-canary.yml' }}
uses: docker/build-push-action@v3
uses: docker/build-push-action@v4
with:
platforms: linux/amd64, linux/arm64
file: ./Dockerfile.canary # path to Dockerfile
@@ -99,7 +112,7 @@ jobs:
public.ecr.aws/aquasecurity/trivy:canary
- name: Cache Trivy binaries
uses: actions/cache@v3.0.9
uses: actions/cache@v3.3.1
with:
path: dist/
# use 'github.sha' to create a unique cache folder for each run.

79
.github/workflows/roadmap.yaml vendored Normal file
View File

@@ -0,0 +1,79 @@
name: Add issues to the roadmap project
on:
issues:
types:
- labeled
jobs:
add-issue-to-roadmap-project:
name: Add issue to the roadmap project
runs-on: ubuntu-latest
steps:
# 'kind/feature' AND 'priority/backlog' labels -> 'Backlog' column
- uses: actions/add-to-project@v0.4.1 # add new issue to project
with:
project-url: https://github.com/orgs/aquasecurity/projects/25
github-token: ${{ secrets.ORG_PROJECT_TOKEN }}
labeled: kind/feature, priority/backlog
label-operator: AND
id: add-backlog-issue
- uses: titoportas/update-project-fields@v0.1.0 # change Priority(column) of added issue
if: ${{ steps.add-backlog-issue.outputs.itemId }}
with:
project-url: https://github.com/orgs/aquasecurity/projects/25
github-token: ${{ secrets.ORG_PROJECT_TOKEN }}
item-id: ${{ steps.add-backlog-issue.outputs.itemId }} # Use the item-id output of the previous step
field-keys: Priority
field-values: Backlog
# 'kind/feature' AND 'priority/important-longterm' labels -> 'Important (long-term)' column
- uses: actions/add-to-project@v0.4.1 # add new issue to project
with:
project-url: https://github.com/orgs/aquasecurity/projects/25
github-token: ${{ secrets.ORG_PROJECT_TOKEN }}
labeled: kind/feature, priority/important-longterm
label-operator: AND
id: add-longterm-issue
- uses: titoportas/update-project-fields@v0.1.0 # change Priority(column) of added issue
if: ${{ steps.add-longterm-issue.outputs.itemId }}
with:
project-url: https://github.com/orgs/aquasecurity/projects/25
github-token: ${{ secrets.ORG_PROJECT_TOKEN }}
item-id: ${{ steps.add-longterm-issue.outputs.itemId }} # Use the item-id output of the previous step
field-keys: Priority
field-values: Important (long-term)
# 'kind/feature' AND 'priority/important-soon' labels -> 'Important (soon)' column
- uses: actions/add-to-project@v0.4.1 # add new issue to project
with:
project-url: https://github.com/orgs/aquasecurity/projects/25
github-token: ${{ secrets.ORG_PROJECT_TOKEN }}
labeled: kind/feature, priority/important-soon
label-operator: AND
id: add-soon-issue
- uses: titoportas/update-project-fields@v0.1.0 # change Priority(column) of added issue
if: ${{ steps.add-soon-issue.outputs.itemId }}
with:
project-url: https://github.com/orgs/aquasecurity/projects/25
github-token: ${{ secrets.ORG_PROJECT_TOKEN }}
item-id: ${{ steps.add-soon-issue.outputs.itemId }} # Use the item-id output of the previous step
field-keys: Priority
field-values: Important (soon)
# 'kind/feature' AND 'priority/critical-urgent' labels -> 'Urgent' column
- uses: actions/add-to-project@v0.4.1 # add new issue to project
with:
project-url: https://github.com/orgs/aquasecurity/projects/25
github-token: ${{ secrets.ORG_PROJECT_TOKEN }}
labeled: kind/feature, priority/critical-urgent
label-operator: AND
id: add-urgent-issue
- uses: titoportas/update-project-fields@v0.1.0 # change Priority(column) of added issue
if: ${{ steps.add-urgent-issue.outputs.itemId }}
with:
project-url: https://github.com/orgs/aquasecurity/projects/25
github-token: ${{ secrets.ORG_PROJECT_TOKEN }}
item-id: ${{ steps.add-urgent-issue.outputs.itemId }} # Use the item-id output of the previous step
field-keys: Priority
field-values: Urgent

View File

@@ -10,14 +10,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v3.5.3
- name: Run Trivy vulnerability scanner and create GitHub issues
uses: knqyf263/trivy-issue-action@v0.0.4
uses: knqyf263/trivy-issue-action@v0.0.5
with:
assignee: knqyf263
severity: CRITICAL
skip-dirs: integration,examples
skip-dirs: integration,examples,pkg
label: kind/security
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -12,11 +12,11 @@ jobs:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v4
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
types:
types: |
feat
fix
docs
@@ -30,7 +30,7 @@ jobs:
revert
BREAKING
scopes:
scopes: |
vuln
misconf
secret
@@ -42,8 +42,12 @@ jobs:
sbom
server
k8s
aws
vm
alpine
wolfi
chainguard
redhat
alma
rocky
@@ -55,6 +59,7 @@ jobs:
suse
photon
distroless
windows
ruby
php
@@ -65,8 +70,10 @@ jobs:
java
go
c
c++
c\+\+
elixir
dart
os
lang
@@ -82,11 +89,12 @@ jobs:
cli
flag
cyclonedx
spdx
purl
helm
report
db
deps
deps

View File

@@ -7,7 +7,7 @@ jobs:
timeout-minutes: 1
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v6
- uses: actions/stale@v8
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: 'This issue is stale because it has been labeled with inactivity.'

28
.github/workflows/test-docs.yaml vendored Normal file
View File

@@ -0,0 +1,28 @@
name: Test docs
on:
pull_request:
paths:
- 'docs/**'
- 'mkdocs.yml'
jobs:
build-documents:
name: Documentation Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3.5.3
with:
fetch-depth: 0
persist-credentials: true
- uses: actions/setup-python@v4
with:
python-version: 3.x
- name: Install dependencies
run: |
pip install -r docs/build/requirements.txt
- name: Configure the git user
run: |
git config user.name "knqyf263"
git config user.email "knqyf263@gmail.com"
- name: Deploy the dev documents
run: mike deploy test

View File

@@ -1,27 +1,35 @@
name: Test
on:
push:
branches:
- main
branches-ignore:
- 'main'
- 'gh-readonly-queue/**'
paths-ignore:
- '*.md'
- '**.md'
- 'docs/**'
- 'mkdocs.yml'
- 'LICENSE'
pull_request:
env:
TINYGO_VERSION: "0.25.0"
paths-ignore:
- '**.md'
- 'docs/**'
- 'mkdocs.yml'
- 'LICENSE'
merge_group:
jobs:
test:
name: Test
runs-on: ubuntu-latest
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
operating-system: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v3.5.3
- name: Set up Go
uses: actions/setup-go@v3
uses: actions/setup-go@v4
with:
go-version-file: go.mod
go-version: oldstable
- name: go mod tidy
run: |
@@ -30,106 +38,146 @@ jobs:
echo "Run 'go mod tidy' and push it"
exit 1
fi
if: matrix.operating-system == 'ubuntu-latest'
- name: Lint
uses: golangci/golangci-lint-action@v3.2.0
uses: golangci/golangci-lint-action@v3.6.0
with:
version: v1.49
version: v1.52
args: --deadline=30m
skip-cache: true # https://github.com/golangci/golangci-lint-action/issues/244#issuecomment-1052197778
if: matrix.operating-system == 'ubuntu-latest'
- name: Install TinyGo
- name: Install tools
uses: aquaproj/aqua-installer@v2.1.2
with:
aqua_version: v1.25.0
aqua_opts: ""
- name: Check if CLI references are up-to-date
run: |
wget https://github.com/tinygo-org/tinygo/releases/download/v${TINYGO_VERSION}/tinygo_${TINYGO_VERSION}_amd64.deb
sudo dpkg -i tinygo_${TINYGO_VERSION}_amd64.deb
mage docs:generate
if [ -n "$(git status --porcelain)" ]; then
echo "Run 'mage docs:generate' and push it"
exit 1
fi
if: matrix.operating-system == 'ubuntu-latest'
- name: Run unit tests
run: make test
run: mage test:unit
integration:
name: Integration Test
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v3
uses: actions/checkout@v3.5.3
- name: Set up Go
uses: actions/setup-go@v3
uses: actions/setup-go@v4
with:
go-version-file: go.mod
- name: Install tools
uses: aquaproj/aqua-installer@v2.1.2
with:
aqua_version: v1.25.0
- name: Run integration tests
run: make test-integration
run: mage test:integration
k8s-integration:
name: K8s Integration Test
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v3.5.3
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version-file: go.mod
- name: Install tools
uses: aquaproj/aqua-installer@v2.1.2
with:
aqua_version: v1.25.0
- name: Run k8s integration tests
run: mage test:k8s
module-test:
name: Module Integration Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v3.5.3
- name: Set up Go
uses: actions/setup-go@v3
uses: actions/setup-go@v4
with:
go-version-file: go.mod
- name: Install TinyGo
run: |
wget https://github.com/tinygo-org/tinygo/releases/download/v${TINYGO_VERSION}/tinygo_${TINYGO_VERSION}_amd64.deb
sudo dpkg -i tinygo_${TINYGO_VERSION}_amd64.deb
- name: Install tools
uses: aquaproj/aqua-installer@v2.1.2
with:
aqua_version: v1.25.0
- name: Run module integration tests
shell: bash
run: |
make test-module-integration
mage test:module
vm-test:
name: VM Integration Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3.5.3
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version-file: go.mod
- name: Install tools
uses: aquaproj/aqua-installer@v2.1.2
with:
aqua_version: v1.25.0
- name: Run vm integration tests
run: |
mage test:vm
build-test:
name: Build Test
runs-on: ubuntu-latest
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
operating-system: [ubuntu-latest, windows-latest, macos-latest]
env:
DOCKER_CLI_EXPERIMENTAL: "enabled"
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
- name: Show available Docker Buildx platforms
run: echo ${{ steps.buildx.outputs.platforms }}
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v3.5.3
- name: Set up Go
uses: actions/setup-go@v3
uses: actions/setup-go@v4
with:
go-version-file: go.mod
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v3
with:
version: v1.4.1
args: release --skip-sign --snapshot --rm-dist --skip-publish --timeout 90m
- name: Determine GoReleaser ID
id: goreleaser_id
shell: bash
run: |
if [ "${{ matrix.operating-system }}" == "windows-latest" ]; then
echo "id=--id build-windows" >> $GITHUB_OUTPUT
elif [ "${{ matrix.operating-system }}" == "macos-latest" ]; then
echo "id=--id build-macos --id build-bsd" >> $GITHUB_OUTPUT
else
echo "id=--id build-linux" >> $GITHUB_OUTPUT
fi
build-documents:
name: Documentation Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v4
with:
fetch-depth: 0
persist-credentials: true
- uses: actions/setup-python@v4
with:
python-version: 3.x
- name: Install dependencies
run: |
pip install -r docs/build/requirements.txt
- name: Configure the git user
run: |
git config user.name "knqyf263"
git config user.email "knqyf263@gmail.com"
- name: Deploy the dev documents
run: mike deploy test
version: v1.16.2
args: build --snapshot --clean --timeout 90m ${{ steps.goreleaser_id.outputs.id }}

5
.gitignore vendored
View File

@@ -25,6 +25,7 @@ thumbs.db
# test fixtures
coverage.txt
integration/testdata/fixtures/images
integration/testdata/fixtures/vm-images
# SBOMs generated during CI
/bom.json
@@ -34,3 +35,7 @@ dist
# WebAssembly
*.wasm
# Signing
gpg.key
cmd/trivy/trivy

View File

@@ -21,6 +21,7 @@ linters-settings:
local-prefixes: github.com/aquasecurity
gosec:
excludes:
- G101
- G114
- G204
- G402

View File

@@ -1,4 +1,4 @@
FROM alpine:3.16.2
FROM alpine:3.18.2
RUN apk --no-cache add ca-certificates git
COPY trivy /usr/local/bin/trivy
COPY contrib/*.tpl contrib/

View File

@@ -1,10 +1,11 @@
FROM alpine:3.16.2
FROM alpine:3.18.0
RUN apk --no-cache add ca-certificates git
# binaries were created with GoReleaser
# need to copy binaries from folder with correct architecture
# example architecture folder: dist/trivy_canary_build_linux_arm64/trivy
# GoReleaser adds _v* to the folder name, but only when GOARCH is amd64
ARG TARGETARCH
COPY "dist/trivy_canary_build_linux_${TARGETARCH}/trivy" /usr/local/bin/trivy
COPY "dist/trivy_canary_build_linux_${TARGETARCH}*/trivy" /usr/local/bin/trivy
COPY contrib/*.tpl contrib/
ENTRYPOINT ["trivy"]

View File

@@ -1,4 +1,4 @@
FROM golang:1.19.1
FROM golang:1.19
# Install protoc (cf. http://google.github.io/proto-lens/installing-protoc.html)
ENV PROTOC_ZIP=protoc-3.19.4-linux-x86_64.zip
@@ -10,3 +10,6 @@ RUN curl --retry 5 -OL https://github.com/protocolbuffers/protobuf/releases/down
RUN go install github.com/twitchtv/twirp/protoc-gen-twirp@v8.1.0
RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.27.1
RUN go install github.com/magefile/mage@v1.14.0
ENV TRIVY_PROTOC_CONTAINER=true

124
Makefile
View File

@@ -1,124 +0,0 @@
VERSION := $(patsubst v%,%,$(shell git describe --tags --always)) #Strips the v prefix from the tag
LDFLAGS := -ldflags "-s -w -X=main.version=$(VERSION)"
GOPATH := $(shell go env GOPATH)
GOBIN := $(GOPATH)/bin
GOSRC := $(GOPATH)/src
TEST_MODULE_DIR := pkg/module/testdata
TEST_MODULE_SRCS := $(wildcard $(TEST_MODULE_DIR)/*/*.go)
TEST_MODULES := $(patsubst %.go,%.wasm,$(TEST_MODULE_SRCS))
EXAMPLE_MODULE_DIR := examples/module
EXAMPLE_MODULE_SRCS := $(wildcard $(EXAMPLE_MODULE_DIR)/*/*.go)
EXAMPLE_MODULES := $(patsubst %.go,%.wasm,$(EXAMPLE_MODULE_SRCS))
MKDOCS_IMAGE := aquasec/mkdocs-material:dev
MKDOCS_PORT := 8000
u := $(if $(update),-u)
# Tools
$(GOBIN)/wire:
go install github.com/google/wire/cmd/wire@v0.5.0
$(GOBIN)/crane:
go install github.com/google/go-containerregistry/cmd/crane@v0.9.0
$(GOBIN)/golangci-lint:
curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s -- -b $(GOBIN) v1.49.0
$(GOBIN)/labeler:
go install github.com/knqyf263/labeler@latest
$(GOBIN)/easyjson:
go install github.com/mailru/easyjson/...@v0.7.7
.PHONY: wire
wire: $(GOBIN)/wire
wire gen ./pkg/commands/... ./pkg/rpc/...
.PHONY: mock
mock: $(GOBIN)/mockery
mockery -all -inpkg -case=snake -dir $(DIR)
.PHONY: deps
deps:
go get ${u} -d
go mod tidy
.PHONY: generate-test-modules
generate-test-modules: $(TEST_MODULES)
# Compile WASM modules for unit and integration tests
%.wasm:%.go
@if !(type "tinygo" > /dev/null 2>&1); then \
echo "Need to install TinyGo. Follow https://tinygo.org/getting-started/install/"; \
exit 1; \
fi
go generate $<
# Run unit tests
.PHONY: test
test: $(TEST_MODULES)
go test -v -short -coverprofile=coverage.txt -covermode=atomic ./...
integration/testdata/fixtures/images/*.tar.gz: $(GOBIN)/crane
mkdir -p integration/testdata/fixtures/images/
integration/scripts/download-images.sh
# Run integration tests
.PHONY: test-integration
test-integration: integration/testdata/fixtures/images/*.tar.gz
go test -v -tags=integration ./integration/... ./pkg/fanal/test/integration/...
# Run WASM integration tests
.PHONY: test-module-integration
test-module-integration: integration/testdata/fixtures/images/*.tar.gz $(EXAMPLE_MODULES)
go test -v -tags=module_integration ./integration/...
.PHONY: lint
lint: $(GOBIN)/golangci-lint
$(GOBIN)/golangci-lint run --timeout 5m
.PHONY: fmt
fmt:
find ./ -name "*.proto" | xargs clang-format -i
.PHONY: build
build:
go build $(LDFLAGS) ./cmd/trivy
.PHONY: protoc
protoc:
docker build -t trivy-protoc - < Dockerfile.protoc
docker run --rm -it -v ${PWD}:/app -w /app trivy-protoc make _$@
_protoc:
for path in `find ./rpc/ -name "*.proto" -type f`; do \
protoc --twirp_out=. --twirp_opt=paths=source_relative --go_out=. --go_opt=paths=source_relative $${path} || exit; \
done
.PHONY: install
install:
go install $(LDFLAGS) ./cmd/trivy
.PHONY: clean
clean:
rm -rf integration/testdata/fixtures/images
# Create labels on GitHub
.PHONY: label
label: $(GOBIN)/labeler
labeler apply misc/triage/labels.yaml -r aquasecurity/trivy -l 5
# Run MkDocs development server to preview the documentation page
.PHONY: mkdocs-serve
mkdocs-serve:
docker build -t $(MKDOCS_IMAGE) -f docs/build/Dockerfile docs/build
docker run --name mkdocs-serve --rm -v $(PWD):/docs -p $(MKDOCS_PORT):8000 $(MKDOCS_IMAGE)
# Generate JSON marshaler/unmarshaler for TinyGo/WebAssembly as TinyGo doesn't support encoding/json.
.PHONY: easyjson
easyjson: $(GOBIN)/easyjson
easyjson pkg/module/serialize/types.go

114
README.md
View File

@@ -5,56 +5,69 @@
[![Test][test-img]][test]
[![Go Report Card][go-report-img]][go-report]
[![License: Apache-2.0][license-img]][license]
[![GitHub All Releases][github-all-releases-img]][release]
[![GitHub Downloads][github-downloads-img]][release]
![Docker Pulls][docker-pulls]
[📖 Documentation][docs]
</div>
Trivy (`tri` pronounced like **tri**gger, `vy` pronounced like en**vy**) is a comprehensive security scanner. It is reliable, fast, extremely easy to use, and it works wherever you need it.
Trivy ([pronunciation][pronunciation]) is a comprehensive and versatile security scanner.
Trivy has *scanners* that look for security issues, and *targets* where it can find those issues.
Trivy has different *scanners* that look for different security issues, and different *targets* where it can find those issues.
Targets (what Trivy can scan):
Targets:
- Container Image
- Filesystem
- Git repository (remote)
- Kubernetes cluster or resource
- Git Repository (remote)
- Virtual Machine Image
- Kubernetes
- AWS
Scanners (what Trivy can find there):
Scanners:
- OS packages and software dependencies in use (SBOM)
- Known vulnerabilities (CVEs)
- IaC misconfigurations
- IaC issues and misconfigurations
- Sensitive information and secrets
- Software licenses
Much more scanners and targets are coming up. Missing something? Let us know!
Trivy supports most popular programming languages, operating systems, and platforms. For a complete list, see the [Scanning Coverage] page.
Read more in the [Trivy Documentation][docs]
To learn more, go to the [Trivy homepage][homepage] for feature highlights, or to the [Documentation site][docs] for detailed information.
## Quick Start
### Get Trivy
Get Trivy by your favorite installation method. See [installation] section in the documentation for details. For example:
Trivy is available in most common distribution channels. The full list of installation options is available in the [Installation] page. Here are a few popular examples:
- `apt-get install trivy`
- `yum install trivy`
- `pacman -S trivy`
- `brew install aquasecurity/trivy/trivy`
- `sudo port install trivy`
- `brew install trivy`
- `docker run aquasec/trivy`
- Download binary from https://github.com/aquasecurity/trivy/releases/latest/
- Download binary from <https://github.com/aquasecurity/trivy/releases/latest/>
- See [Installation] for more
Trivy is integrated with many popular platforms and applications. The complete list of integrations is available in the [Ecosystem] page. Here are a few popular examples:
- [GitHub Actions](https://github.com/aquasecurity/trivy-action)
- [Kubernetes operator](https://github.com/aquasecurity/trivy-operator)
- [VS Code plugin](https://github.com/aquasecurity/trivy-vscode-extension)
- See [Ecosystem] for more
### Canary builds
There are canary builds ([Docker Hub](https://hub.docker.com/r/aquasec/trivy/tags?page=1&name=canary), [GitHub](https://github.com/aquasecurity/trivy/pkgs/container/trivy/75776514?tag=canary), [ECR](https://gallery.ecr.aws/aquasecurity/trivy#canary) images and [binaries](https://github.com/aquasecurity/trivy/actions/workflows/canary.yaml)) as generated every push to main branch.
Please be aware: canary builds might have critical bugs, it's not recommended for use in production.
### General usage
```bash
trivy <target> [--security-checks <scanner1,scanner2>] TARGET_NAME
trivy <target> [--scanners <scanner1,scanner2>] <subject>
```
Examples:
```bash
$ trivy image python:3.4-alpine
trivy image python:3.4-alpine
```
<details>
@@ -65,7 +78,7 @@ https://user-images.githubusercontent.com/1161307/171013513-95f18734-233d-45d3-a
</details>
```bash
$ trivy fs --security-checks vuln,secret,config myproject/
trivy fs --scanners vuln,secret,config myproject/
```
<details>
@@ -76,7 +89,7 @@ https://user-images.githubusercontent.com/1161307/171013917-b1f37810-f434-465c-b
</details>
```bash
$ trivy k8s --report summary cluster
trivy k8s --report summary cluster
```
<details>
@@ -86,43 +99,27 @@ $ trivy k8s --report summary cluster
</details>
Note that you can also receive a detailed scan, scan only a specific namespace, resource and more.
## FAQ
Find out more in the [Trivy Documentation][docs] - [Getting Started][getting-started]
### How to pronounce the name "Trivy"?
`tri` is pronounced like **tri**gger, `vy` is pronounced like en**vy**.
## Highlights
## Want more? Check out Aqua
- Comprehensive vulnerability detection
- OS packages (Alpine Linux, Red Hat Universal Base Image, Red Hat Enterprise Linux, CentOS, AlmaLinux, Rocky Linux, CBL-Mariner, Oracle Linux, Debian, Ubuntu, Amazon Linux, openSUSE Leap, SUSE Enterprise Linux, Photon OS and Distroless)
- **Language-specific packages** (Bundler, Composer, Pipenv, Poetry, npm, yarn, Cargo, NuGet, Maven, and Go)
- High accuracy, especially [Alpine Linux][alpine] and RHEL/CentOS
- Supply chain security (SBOM support)
- Support CycloneDX
- Support SPDX
- Misconfiguration detection (IaC scanning)
- Wide variety of security checks are provided **out of the box**
- Kubernetes, Docker, Terraform, and more
- User-defined policies using [OPA Rego][rego]
- Secret detection
- A wide variety of built-in rules are provided **out of the box**
- User-defined patterns
- Efficient scanning of container images
- Simple
- Available in apt, yum, brew, dockerhub
- **No pre-requisites** such as a database, system libraries, or eny environmental requirements. The binary runs anywhere.
- The first scan will finish within 10 seconds (depending on your network). Consequent scans will finish instantaneously.
- Fits your workflow
- **Great for CI** such as GitHub Actions, Jenkins, GitLab CI, etc.
- Available as extension for IDEs such as vscode, jetbrains, vim
- Available as extension for Docker Desktop, Rancher Desktop
- See [integrations] section in the documentation.
If you liked Trivy, you will love Aqua which builds on top of Trivy to provide even more enhanced capabilities for a complete security management offering.
You can find a high level comparison table specific to Trivy users [here](https://github.com/aquasecurity/resources/blob/main/trivy-aqua.md).
In addition check out the <https://aquasec.com> website for more information about our products and services.
If you'd like to contact Aqua or request a demo, please use this form: <https://www.aquasec.com/demo>
---
## Community
Trivy is an [Aqua Security][aquasec] open source project.
Learn about our open source work and portfolio [here][oss].
Contact us about any matter by opening a GitHub Discussion [here][discussions]
Join our [Slack community][slack] to stay up to date with community efforts.
Please ensure to abide by our [Code of Conduct][code-of-conduct] during all interactions.
[test]: https://github.com/aquasecurity/trivy/actions/workflows/test.yaml
[test-img]: https://github.com/aquasecurity/trivy/actions/workflows/test.yaml/badge.svg
@@ -130,19 +127,24 @@ Contact us about any matter by opening a GitHub Discussion [here][discussions]
[go-report-img]: https://goreportcard.com/badge/github.com/aquasecurity/trivy
[release]: https://github.com/aquasecurity/trivy/releases
[release-img]: https://img.shields.io/github/release/aquasecurity/trivy.svg?logo=github
[github-all-releases-img]: https://img.shields.io/github/downloads/aquasecurity/trivy/total?logo=github
[github-downloads-img]: https://img.shields.io/github/downloads/aquasecurity/trivy/total?logo=github
[docker-pulls]: https://img.shields.io/docker/pulls/aquasec/trivy?logo=docker&label=docker%20pulls%20%2F%20trivy
[license]: https://github.com/aquasecurity/trivy/blob/main/LICENSE
[license-img]: https://img.shields.io/badge/License-Apache%202.0-blue.svg
[getting-started]: https://aquasecurity.github.io/trivy/latest/getting-started/installation/
[homepage]: https://trivy.dev
[docs]: https://aquasecurity.github.io/trivy
[integrations]:https://aquasecurity.github.io/trivy/latest/tutorials/integrations/
[installation]:https://aquasecurity.github.io/trivy/latest/getting-started/installation/
[releases]: https://github.com/aquasecurity/trivy/releases
[pronunciation]: #how-to-pronounce-the-name-trivy
[slack]: https://slack.aquasec.com
[code-of-conduct]: https://github.com/aquasecurity/community/blob/main/CODE_OF_CONDUCT.md
[Installation]:https://aquasecurity.github.io/trivy/latest/getting-started/installation/
[Ecosystem]: https://aquasecurity.github.io/trivy/latest/ecosystem/
[Scanning Coverage]: https://aquasecurity.github.io/trivy/latest/getting-started/coverage/
[alpine]: https://ariadne.space/2021/06/08/the-vulnerability-remediation-lifecycle-of-alpine-containers/
[rego]: https://www.openpolicyagent.org/docs/latest/#rego
[sigstore]: https://www.sigstore.dev/
[aquasec]: https://aquasec.com
[oss]: https://www.aquasec.com/products/open-source-projects/
[discussions]: https://github.com/aquasecurity/trivy/discussions

10
SECURITY.md Normal file
View File

@@ -0,0 +1,10 @@
# Security Policy
## Supported Versions
This is an open source project that is provided as-is without warrenty or liability.
As such no supportability commitment. The maintainers will do the best they can to address any report promptly and responsibly.
## Reporting a Vulnerability
Please use the "Private vulnerability reporting" feature in the GitHub repository (under the "Security" tab).

10
aqua.yaml Normal file
View File

@@ -0,0 +1,10 @@
---
# aqua - Declarative CLI Version Manager
# https://aquaproj.github.io/
registries:
- type: standard
ref: v3.157.0 # renovate: depName=aquaproj/aqua-registry
packages:
- name: tinygo-org/tinygo@v0.27.0
- name: WebAssembly/binaryen@version_112
- name: magefile/mage@v1.14.0

View File

@@ -7,7 +7,6 @@ cd trivy-repo/deb
for release in ${DEBIAN_RELEASES[@]} ${UBUNTU_RELEASES[@]}; do
echo "Removing deb package of $release"
reprepro -A i386 remove $release trivy
reprepro -A amd64 remove $release trivy
reprepro -A arm64 remove $release trivy
done
@@ -15,7 +14,6 @@ done
for release in ${DEBIAN_RELEASES[@]} ${UBUNTU_RELEASES[@]}; do
echo "Adding deb package to $release"
reprepro includedeb $release ../../dist/*Linux-64bit.deb
reprepro includedeb $release ../../dist/*Linux-32bit.deb
reprepro includedeb $release ../../dist/*Linux-ARM64.deb
done

View File

@@ -1,20 +1,45 @@
#!/bin/bash
TRIVY_VERSION=$(find dist/ -type f -name "*64bit.rpm" -printf "%f\n" | head -n1 | sed -nre 's/^[^0-9]*(([0-9]+\.)*[0-9]+).*/\1/p')
function create_common_rpm_repo () {
rpm_path=$1
ARCHES=("x86_64" "aarch64")
for arch in ${ARCHES[@]}; do
prefix=$arch
if [ "$arch" == "x86_64" ]; then
prefix="64bit"
elif [ "$arch" == "aarch64" ]; then
prefix="ARM64"
fi
mkdir -p $rpm_path/$arch
cp ../dist/*${prefix}.rpm ${rpm_path}/$arch/
createrepo_c -u https://github.com/aquasecurity/trivy/releases/download/ --location-prefix="v"$TRIVY_VERSION --update $rpm_path/$arch
rm ${rpm_path}/$arch/*${prefix}.rpm
done
}
function create_rpm_repo () {
version=$1
rpm_path=rpm/releases/${version}/x86_64
RPM_EL=$(find ../dist/ -type f -name "*64bit.rpm" -printf "%f\n" | head -n1 | sed -e "s/_/-/g" -e "s/-Linux/.el$version/" -e "s/-64bit/.x86_64/")
echo $RPM_EL
mkdir -p $rpm_path
cp ../dist/*64bit.rpm ${rpm_path}/${RPM_EL}
cp ../dist/*64bit.rpm ${rpm_path}/
createrepo --update $rpm_path
createrepo_c -u https://github.com/aquasecurity/trivy/releases/download/ --location-prefix="v"$TRIVY_VERSION --update $rpm_path
rm ${rpm_path}/*64bit.rpm
}
echo "Create RPM releases for Trivy v$TRIVY_VERSION"
cd trivy-repo
echo "Processing common repository for RHEL/CentOS..."
create_common_rpm_repo rpm/releases
VERSIONS=(5 6 7 8 9)
for version in ${VERSIONS[@]}; do
echo "Processing RHEL/CentOS $version..."
@@ -22,6 +47,5 @@ for version in ${VERSIONS[@]}; do
done
git add .
git commit -m "Update rpm packages"
git commit -m "Update rpm packages for Trivy v$TRIVY_VERSION"
git push origin main

View File

@@ -9,6 +9,8 @@ import (
"github.com/aquasecurity/trivy/pkg/commands"
"github.com/aquasecurity/trivy/pkg/log"
"github.com/aquasecurity/trivy/pkg/plugin"
_ "modernc.org/sqlite" // sqlite driver for RPM DB and Java DB
)
var (

View File

@@ -33,7 +33,7 @@
"Severity": {
"Label": "{{ $severity }}"
},
"Title": "Trivy found a vulnerability to {{ .VulnerabilityID }} in container {{ $target }}",
"Title": "Trivy found a vulnerability to {{ .VulnerabilityID }} in container {{ $target }}, related to {{ .PkgName }}",
"Description": {{ escapeString $description | printf "%q" }},
{{ if not (empty .PrimaryURL) -}}
"Remediation": {
@@ -119,6 +119,43 @@
"RecordState": "ACTIVE"
}
{{- end -}}
{{- range .Secrets -}}
{{- if $t_first -}}{{- $t_first = false -}}{{- else -}},{{- end -}}
{{- $severity := .Severity -}}
{{- if eq $severity "UNKNOWN" -}}
{{- $severity = "INFORMATIONAL" -}}
{{- end -}}
{
"SchemaVersion": "2018-10-08",
"Id": "{{ $target }}",
"ProductArn": "arn:aws:securityhub:{{ env "AWS_DEFAULT_REGION" }}::product/aquasecurity/aquasecurity",
"GeneratorId": "Trivy",
"AwsAccountId": "{{ env "AWS_ACCOUNT_ID" }}",
"Types": [ "Sensitive Data Identifications" ],
"CreatedAt": "{{ now | date "2006-01-02T15:04:05.999999999Z07:00" }}",
"UpdatedAt": "{{ now | date "2006-01-02T15:04:05.999999999Z07:00" }}",
"Severity": {
"Label": "{{ $severity }}"
},
"Title": "Trivy found a secret in {{ $target }}: {{ .Title }}",
"Description": "Trivy found a secret in {{ $target }}: {{ .Title }}",
"ProductFields": { "Product Name": "Trivy" },
"Resources": [
{
"Type": "Other",
"Id": "{{ $target }}",
"Partition": "aws",
"Region": "{{ env "AWS_DEFAULT_REGION" }}",
"Details": {
"Other": {
"Filename": "{{ $target }}"
}
}
}
],
"RecordState": "ACTIVE"
}
{{- end -}}
{{- end }}
]
}

View File

@@ -79,6 +79,7 @@ get_binaries() {
openbsd/amd64) BINARIES="trivy" ;;
openbsd/arm64) BINARIES="trivy" ;;
openbsd/armv7) BINARIES="trivy" ;;
windows/amd64) BINARIES="trivy" ;;
*)
log_crit "platform $PLATFORM is not supported. Make sure this script is up-to-date and file request at https://github.com/${PREFIX}/issues/new"
exit 1
@@ -102,6 +103,9 @@ tag_to_version() {
}
adjust_format() {
# change format (tar.gz or zip) based on OS
case ${OS} in
windows) FORMAT=zip ;;
esac
true
}
adjust_os() {
@@ -127,6 +131,7 @@ adjust_arch() {
386) ARCH=32bit ;;
amd64) ARCH=64bit ;;
arm) ARCH=ARM ;;
armv7) ARCH=ARM ;;
arm64) ARCH=ARM64 ;;
ppc64le) OS=PPC64LE ;;
darwin) ARCH=macOS ;;

View File

@@ -0,0 +1,49 @@
# Discussions
Thank you for taking interest in contributing to Trivy!
Trivy uses [GitHub Discussion](https://github.com/aquasecurity/trivy/discussions) for bug reports, feature requests, and questions.
If maintainers decide to accept a new feature or confirm that it is a bug, they will close the discussion and create a [GitHub Issue](https://github.com/aquasecurity/trivy/issues) associated with that discussion.
- Feel free to open discussions for any reason. When you open a new discussion, you'll have to select a discussion category as described below.
- Please spend a small amount of time giving due diligence to the issue/discussion tracker. Your discussion might be a duplicate. If it is, please add your comment to the existing issue/discussion.
- Remember that users might search for your issue/discussion in the future, so please give it a meaningful title to help others.
- The issue should clearly explain the reason for opening, the proposal if you have any, and any relevant technical information.
There are 4 categories:
- 💡 [Ideas](https://github.com/aquasecurity/trivy/discussions/categories/ideas)
- Share ideas for new features
- 🔎 [False Detection](https://github.com/aquasecurity/trivy/discussions/categories/false-detection)
- Report false positives/negatives
- 🐛 [Bugs](https://github.com/aquasecurity/trivy/discussions/categories/bugs)
- Report something that is not working as expected
- 🙏 [Q&A](https://github.com/aquasecurity/trivy/discussions/categories/q-a)
- Ask the community for help
!!! note
If you find any false positives or false negatives, please make sure to report them under the "False Detection" category, not "Bugs".
## False detection
Trivy depends on [multiple data sources](https://aquasecurity.github.io/trivy/latest/docs/vulnerability/detection/data-source/).
Sometime these databases contain mistakes.
If Trivy can't detect any CVE-IDs or shows false positive result, at first please follow the next steps:
1. Run Trivy with `-f json` that shows data sources.
2. According to the shown data source, make sure that the security advisory in the data source is correct.
If the data source is correct and Trivy shows wrong results, please raise an issue on Trivy.
### GitHub Advisory Database
Visit [here](https://github.com/advisories) and search CVE-ID.
If you find a problem, it'll be nice to fix it: [How to contribute to a GitHub security advisory](https://github.blog/2022-02-22-github-advisory-database-now-open-to-community-contributions/)
### GitLab Advisory Database
Visit [here](https://advisories.gitlab.com/) and search CVE-ID.
If you find a problem, it'll be nice to fix it: [Create an issue to GitLab Advisory Database](https://gitlab.com/gitlab-org/security-products/gemnasium-db/-/issues/new)
### Red Hat CVE Database
Visit [here](https://access.redhat.com/security/security-updates/?cwe=476#/cve) and search CVE-ID.

View File

@@ -1,31 +1,4 @@
# Issues
Thank you for taking interest in contributing to Trivy!
- Feel free to open issues for any reason. When you open a new issue, you'll have to select an issue kind: bug/feature/support and fill the required information based on the selected template.
- Please spend a small amount of time giving due diligence to the issue tracker. Your issue might be a duplicate. If it is, please add your comment to the existing issue.
- Remember that users might search for your issue in the future, so please give it a meaningful title to help others.
- The issue should clearly explain the reason for opening, the proposal if you have any, and any relevant technical information.
## Wrong detection
Trivy depends on [multiple data sources](https://aquasecurity.github.io/trivy/latest/docs/vulnerability/detection/data-source/).
Sometime these databases contain mistakes.
If Trivy can't detect any CVE-IDs or shows false positive result, at first please follow the next steps:
1. Run Trivy with `-f json` that shows data sources.
2. According to the shown data source, make sure that the security advisory in the data source is correct.
If the data source is correct and Trivy shows wrong results, please raise an issue on Trivy.
### GitHub Advisory Database
Visit [here](https://github.com/advisories) and search CVE-ID.
If you find a problem, it'll be nice to fix it: [How to contribute to a GitHub security advisory](https://github.blog/2022-02-22-github-advisory-database-now-open-to-community-contributions/)
### GitLab Advisory Database
Visit [here](https://advisories.gitlab.com/) and search CVE-ID.
If you find a problem, it'll be nice to fix it: [Create an issue to GitLab Advisory Database](https://gitlab.com/gitlab-org/security-products/gemnasium-db/-/issues/new)
### Red Hat CVE Database
Visit [here](https://access.redhat.com/security/security-updates/?cwe=476#/cve) and search CVE-ID.
Trivy uses [GitHub Discussion](./discussion.md) for bug reports, feature requests, and questions.

View File

@@ -9,11 +9,66 @@ Thank you for taking interest in contributing to Trivy!
1. Your PR is more likely to be accepted if it includes tests (We have not historically been very strict about tests, but we would like to improve this!).
1. If your PR affects the user experience in some way, please update the README.md and the CLI help accordingly.
### Title
## Development
Install the necessary tools for development by following their respective installation instructions.
- [Go](https://go.dev/doc/install)
- [Mage](https://magefile.org/)
### Build
After making changes to the Go source code, build the project with the following command:
```shell
$ mage build
$ ./trivy -h
```
### Lint
You must pass the linter checks:
```shell
$ mage lint
```
Additionally, you need to have run `go mod tidy`, so execute the following command as well:
```shell
$ mage tidy
```
### Unit tests
Your PR must pass all the unit tests. You can test it as below.
```
$ mage test:unit
```
### Integration tests
Your PR must pass all the integration tests. You can test it as below.
```
$ mage test:integration
```
### Documentation
If you update CLI flags, you need to generate the CLI references.
The test will fail if they are not up-to-date.
```shell
$ mage docs:generate
```
You can build the documents as below and view it at http://localhost:8000.
```
$ mage docs:serve
```
## Title
It is not that strict, but we use the title conventions in this repository.
Each commit message doesn't have to follow the conventions as long as it is clear and descriptive since it will be squashed and merged.
#### Format of the title
### Format of the title
```
<type>(<scope>): <subject>
@@ -50,7 +105,10 @@ mode:
- fs
- repo
- sbom
- k8s
- server
- aws
- vm
os:
@@ -77,6 +135,8 @@ language:
- dotnet
- java
- go
- elixir
- dart
vuln:
@@ -102,6 +162,12 @@ cli:
- cli
- flag
SBOM:
- cyclonedx
- spdx
- purl
others:
- helm
@@ -111,7 +177,7 @@ others:
The `<scope>` can be empty (e.g. if the change is a global or difficult to assign to a single component), in which case the parentheses are omitted.
#### Example titles
### Example titles
```
feat(alma): add support for AlmaLinux
@@ -132,33 +198,15 @@ chore(deps): bump go.uber.org/zap from 1.19.1 to 1.20.0
**NOTE**: please do not use `chore(deps): update fanal` and something like that if you add new features or fix bugs in Trivy-related projects.
The PR title should describe what the PR adds or fixes even though it just updates the dependency in Trivy.
### Unit tests
Your PR must pass all the unit tests. You can test it as below.
## Commits
```
$ make test
```
### Integration tests
Your PR must pass all the integration tests. You can test it as below.
```
$ make test-integration
```
### Documentation
You can build the documents as below and view it at http://localhost:8000.
```
$ make mkdocs-serve
```
## Understand where your pull request belongs
Trivy is composed of several repositories that work together:
- [Trivy](https://github.com/aquasecurity/trivy) is the client-side, user-facing, command line tool.
- [vuln-list](https://github.com/aquasecurity/vuln-list) is a vulnerabilities database, aggregated from different sources, and normalized for easy consumption. Think of this as the "server" side of the trivy command line tool. **There should be no pull requests to this repo**
- [vuln-list](https://github.com/aquasecurity/vuln-list) is a vulnerability database, aggregated from different sources, and normalized for easy consumption. Think of this as the "server" side of the trivy command line tool. **There should be no pull requests to this repo**
- [vuln-list-update](https://github.com/aquasecurity/vuln-list-update) is the code that maintains the vuln-list database.
- [trivy-db](https://github.com/aquasecurity/trivy-db) maintains the vulnerability database pulled by Trivy CLI.
- [go-dep-parser](https://github.com/aquasecurity/go-dep-parser) is a library for parsing lock files such as package-lock.json and Gemfile.lock.

View File

@@ -5,6 +5,8 @@ Trivy can be used in air-gapped environments. Note that an allowlist is [here][a
## Air-Gapped Environment for vulnerabilities
### Download the vulnerability database
At first, you need to download the vulnerability database for use in air-gapped environments.
=== "Trivy"
```
@@ -15,7 +17,6 @@ Trivy can be used in air-gapped environments. Note that an allowlist is [here][a
```
=== "oras >= v0.13.0"
At first, you need to download the vulnerability database for use in air-gapped environments.
Please follow [oras installation instruction][oras].
Download `db.tar.gz`:
@@ -25,7 +26,6 @@ Trivy can be used in air-gapped environments. Note that an allowlist is [here][a
```
=== "oras < v0.13.0"
At first, you need to download the vulnerability database for use in air-gapped environments.
Please follow [oras installation instruction][oras].
Download `db.tar.gz`:
@@ -34,41 +34,95 @@ Trivy can be used in air-gapped environments. Note that an allowlist is [here][a
$ oras pull -a ghcr.io/aquasecurity/trivy-db:2
```
### Transfer the DB file into the air-gapped environment
### Download the Java index database[^1]
Java users also need to download the Java index database for use in air-gapped environments.
!!! note
You container image may contain JAR files even though you don't use Java directly.
In that case, you also need to download the Java index database.
=== "Trivy"
```
TRIVY_TEMP_DIR=$(mktemp -d)
trivy --cache-dir $TRIVY_TEMP_DIR image --download-java-db-only
tar -cf ./javadb.tar.gz -C $TRIVY_TEMP_DIR/java-db metadata.json trivy-java.db
rm -rf $TRIVY_TEMP_DIR
```
=== "oras >= v0.13.0"
Please follow [oras installation instruction][oras].
Download `javadb.tar.gz`:
```
$ oras pull ghcr.io/aquasecurity/trivy-java-db:1
```
=== "oras < v0.13.0"
Please follow [oras installation instruction][oras].
Download `javadb.tar.gz`:
```
$ oras pull -a ghcr.io/aquasecurity/trivy-java-db:1
```
### Transfer the DB files into the air-gapped environment
The way of transfer depends on the environment.
```
$ rsync -av -e ssh /path/to/db.tar.gz [user]@[host]:dst
```
=== "Vulnerability db"
```
$ rsync -av -e ssh /path/to/db.tar.gz [user]@[host]:dst
```
### Put the DB file in Trivy's cache directory
You have to know where to put the DB file. The following command shows the default cache directory.
=== "Java index db[^1]"
```
$ rsync -av -e ssh /path/to/javadb.tar.gz [user]@[host]:dst
```
### Put the DB files in Trivy's cache directory
You have to know where to put the DB files. The following command shows the default cache directory.
```
$ ssh user@host
$ trivy -h | grep cache
--cache-dir value cache directory (default: "/home/myuser/.cache/trivy") [$TRIVY_CACHE_DIR]
```
=== "Vulnerability db"
Put the DB file in the cache directory + `/db`.
```
$ mkdir -p /home/myuser/.cache/trivy/db
$ cd /home/myuser/.cache/trivy/db
$ tar xvf /path/to/db.tar.gz -C /home/myuser/.cache/trivy/db
x trivy.db
x metadata.json
$ rm /path/to/db.tar.gz
```
Put the DB file in the cache directory + `/db`.
=== "Java index db[^1]"
Put the DB file in the cache directory + `/java-db`.
```
$ mkdir -p /home/myuser/.cache/trivy/java-db
$ cd /home/myuser/.cache/trivy/java-db
$ tar xvf /path/to/javadb.tar.gz -C /home/myuser/.cache/trivy/java-db
x trivy-java.db
x metadata.json
$ rm /path/to/javadb.tar.gz
```
In an air-gapped environment it is your responsibility to update the Trivy databases on a regular basis, so that the scanner can detect recently-identified vulnerabilities.
### Run Trivy with the specific flags.
In an air-gapped environment, you have to specify `--skip-db-update` and `--skip-java-db-update`[^1] so that Trivy doesn't attempt to download the latest database files.
In addition, if you want to scan `pom.xml` dependencies, you need to specify `--offline-scan` since Trivy tries to issue API requests for scanning Java applications by default.
```
$ mkdir -p /home/myuser/.cache/trivy/db
$ cd /home/myuser/.cache/trivy/db
$ tar xvf /path/to/db.tar.gz -C /home/myuser/.cache/trivy/db
x trivy.db
x metadata.json
$ rm /path/to/db.tar.gz
```
In an air-gapped environment it is your responsibility to update the Trivy database on a regular basis, so that the scanner can detect recently-identified vulnerabilities.
### Run Trivy with `--skip-update` and `--offline-scan` option
In an air-gapped environment, specify `--skip-update` so that Trivy doesn't attempt to download the latest database file.
In addition, if you want to scan Java dependencies such as JAR and pom.xml, you need to specify `--offline-scan` since Trivy tries to issue API requests for scanning Java applications by default.
```
$ trivy image --skip-update --offline-scan alpine:3.12
$ trivy image --skip-db-update --skip-java-db-update --offline-scan alpine:3.12
```
## Air-Gapped Environment for misconfigurations
@@ -84,3 +138,5 @@ $ trivy conf --skip-policy-update /path/to/conf
[allowlist]: ../references/troubleshooting.md
[oras]: https://oras.land/cli/
[^1]: This is only required to scan `jar` files. More information about `Java index db` [here](../scanner/vulnerability/language/java.md)

View File

@@ -1,22 +0,0 @@
# containerd
!!! warning "EXPERIMENTAL"
This feature might change without preserving backwards compatibility.
Scan your image in [containerd][containerd] running locally.
```bash
$ nerdctl images
REPOSITORY TAG IMAGE ID CREATED PLATFORM SIZE BLOB SIZE
aquasec/nginx latest 2bcabc23b454 3 hours ago linux/amd64 149.1 MiB 54.1 MiB
$ trivy image aquasec/nginx
```
If your containerd socket is not the default path (`//run/containerd/containerd.sock`), you can override it via `CONTAINERD_ADDRESS`.
```bash
$ export CONTAINERD_ADDRESS=/run/k3s/containerd/containerd.sock
$ trivy image aquasec/nginx
```
[containerd]: https://containerd.io/

View File

@@ -1,17 +0,0 @@
# OCI Image Layout
An image directory compliant with [Open Container Image Layout Specification](https://github.com/opencontainers/image-spec/blob/master/spec.md).
Buildah:
```
$ buildah push docker.io/library/alpine:3.11 oci:/path/to/alpine
$ trivy image --input /path/to/alpine
```
Skopeo:
```
$ skopeo copy docker-daemon:alpine:3.11 oci:/path/to/alpine
$ trivy image --input /path/to/alpine
```

View File

@@ -1,28 +0,0 @@
# Podman
!!! warning "EXPERIMENTAL"
This feature might change without preserving backwards compatibility.
Scan your image in Podman (>=2.0) running locally. The remote Podman is not supported.
Before performing Trivy commands, you must enable the podman.sock systemd service on your machine.
For more details, see [here][sock].
```bash
$ systemctl --user enable --now podman.socket
```
Then, you can scan your image in Podman.
```bash
$ cat Dockerfile
FROM alpine:3.12
RUN apk add --no-cache bash
$ podman build -t test .
$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/test latest efc372d4e0de About a minute ago 7.94 MB
$ trivy image test
```
[sock]: https://github.com/containers/podman/blob/master/docs/tutorials/remote_client.md#enable-the-podman-service-on-the-server-machine

View File

@@ -42,6 +42,11 @@ For example, to download the Kubernetes Trivy plugin you can execute the followi
```bash
$ trivy plugin install github.com/aquasecurity/trivy-plugin-kubectl
```
Also, Trivy plugin can be installed from a local archive:
```bash
$ trivy plugin install myplugin.tar.gz
```
## Using Plugins
Once the plugin is installed, Trivy will load all available plugins in the cache on the start of the next Trivy execution.
A plugin will be made in the Trivy CLI based on the plugin name.
@@ -162,6 +167,21 @@ When the plugin is called via Trivy CLI, `bin` command will be executed.
The plugin is responsible for handling flags and arguments. Any arguments are passed to the plugin from the `trivy` command.
A plugin should be archived `*.tar.gz`.
```bash
$ tar -czvf myplugin.tar.gz plugin.yaml script.py
plugin.yaml
script.py
$ trivy plugin install myplugin.tar.gz
2023-03-03T19:04:42.026+0600 INFO Installing the plugin from myplugin.tar.gz...
2023-03-03T19:04:42.026+0600 INFO Loading the plugin metadata...
$ trivy myplugin
Hello from Trivy demo plugin!
```
## Example
https://github.com/aquasecurity/trivy-plugin-kubectl

View File

@@ -1,7 +1,2 @@
Docker Hub needs `TRIVY_USERNAME` and `TRIVY_PASSWORD`.
You don't need to set ENV vars when download from public repository.
```bash
export TRIVY_USERNAME={DOCKERHUB_USERNAME}
export TRIVY_PASSWORD={DOCKERHUB_PASSWORD}
```
See [here](./index.md) for the detail.
You don't need to provide a credential when download from public repository.

View File

@@ -2,3 +2,34 @@ Trivy uses AWS SDK. You don't need to install `aws` CLI tool.
You can use [AWS CLI's ENV Vars][env-var].
[env-var]: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html
### AWS private registry permissions
You may need to grant permissions to allow Trivy to pull images from private ECR.
It depends on how you want to provide AWS Role to trivy.
- [IAM Role Service account](https://github.com/aws/amazon-eks-pod-identity-webhook)
- [Kube2iam](https://github.com/jtblin/kube2iam) or [Kiam](https://github.com/uswitch/kiam)
#### IAM Role Service account
Add the AWS role in trivy's service account annotations:
```yaml
trivy:
serviceAccount:
annotations: {}
# eks.amazonaws.com/role-arn: arn:aws:iam::ACCOUNT_ID:role/IAM_ROLE_NAME
```
#### Kube2iam or Kiam
Add the AWS role to pod's annotations:
```yaml
podAnnotations: {}
## kube2iam/kiam annotation
# iam.amazonaws.com/role: arn:aws:iam::ACCOUNT_ID:role/IAM_ROLE_NAME
```

View File

@@ -1,4 +1,49 @@
Trivy can download images from a private registry, without installing `Docker` or any other 3rd party tools.
That's because it's easy to run in a CI process.
Trivy can download images from a private registry without the need for installing Docker or any other 3rd party tools.
This makes it easy to run within a CI process.
All you have to do is install `Trivy` and set ENV vars.
## Credential
To use Trivy with private images, simply install it and provide your credentials:
```shell
$ TRIVY_USERNAME=YOUR_USERNAME TRIVY_PASSWORD=YOUR_PASSWORD trivy image YOUR_PRIVATE_IMAGE
```
Trivy also supports providing credentials through CLI flags:
```shell
$ TRIVY_PASSWORD=YOUR_PASSWORD trivy image --username YOUR_USERNAME YOUR_PRIVATE_IMAGE
```
!!! warning
The CLI flag `--password` is available, but its use is not recommended for security reasons.
You can also store your credentials in `trivy.yaml`.
For more information, please refer to [the documentation](../../references/configuration/config-file.md).
It can handle multiple sets of credentials as well:
```shell
$ export TRIVY_USERNAME=USERNAME1,USERNAME2
$ export TRIVY_PASSWORD=PASSWORD1,PASSWORD2
$ trivy image YOUR_PRIVATE_IMAGE
```
In the example above, Trivy attempts to use two pairs of credentials:
- USERNAME1/PASSWORD1
- USERNAME2/PASSWORD2
Please note that the number of usernames and passwords must be the same.
## docker login
If you have Docker configured locally and have set up the credentials, Trivy can access them.
```shell
$ docker login ghcr.io
Username:
Password:
$ trivy image ghcr.io/your/private_image
```
!!! note
`docker login` can be used with any container runtime, such as Podman.

View File

@@ -1,59 +0,0 @@
# Amazon Web Services
!!! warning "EXPERIMENTAL"
This feature might change without preserving backwards compatibility.
The Trivy AWS CLI allows you to scan your AWS account for misconfigurations. You can either run the CLI locally or integrate it into your CI/CD pipeline.
Whilst you can already scan the infrastructure-as-code that defines your AWS resources with `trivy config`, you can now scan your live AWS account(s) directly too.
The included checks cover all of the aspects of the [AWS CIS 1.2](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-cis.html) automated benchmarks.
Trivy uses the same [authentication methods](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) as the AWS CLI to configure and authenticate your access to the AWS platform.
You will need permissions configured to read all AWS resources - we recommend using a group/role with the `ReadOnlyAccess` policy attached.
Once you've scanned your account, you can run additional commands to filter the results without having to run the entire scan again - infrastructure information is cached locally per AWS account/region.
## CLI Commands
Scan a full AWS account (all supported services):
```shell
trivy aws --region us-east-1
```
You can allow Trivy to determine the AWS region etc. by using the standard AWS configuration files and environment variables. The `--region` flag overrides these.
![AWS Summary Report](../../../imgs/trivy-aws.png)
The summary view is the default when scanning multiple services.
Scan a specific service:
```shell
trivy aws --service s3
```
Scan multiple services:
```shell
# --service s3,ec2 works too
trivy aws --service s3 --service ec2
```
Show results for a specific AWS resource:
```shell
trivy aws --service s3 --arn arn:aws:s3:::example-bucket
```
All ARNs with detected issues will be displayed when showing results for their associated service.
## Cached Results
By default, Trivy will cache a representation of each AWS service for 24 hours. This means you can filter and view results for a service without having to wait for the entire scan to run again. If you want to force the cache to be refreshed with the latest data, you can use `--update-cache`. Or if you'd like to use cached data for a different timeframe, you can specify `--max-cache-age` (e.g. `--max-cache-age 2h`.). Regardless of whether the cache is used or not, rules will be evaluated again with each run of `trivy aws`.
## Custom Policies
You can write custom policies for Trivy to evaluate against your AWS account. These policies are written in [Rego](https://www.openpolicyagent.org/docs/latest/policy-language/), the same language used by [Open Policy Agent](https://www.openpolicyagent.org/). See the [Custom Policies](../../misconfiguration/custom/index.md) page for more information.

View File

@@ -1,8 +1,70 @@
# Compliance Reports
Trivy support producing compliance reports.
!!! warning "EXPERIMENTAL"
This feature might change without preserving backwards compatibility.
## Supported reports
Trivys compliance flag lets you curate a specific set of checks into a report. In a typical Trivy scan, there are hundreds of different checks for many different components and configurations, but sometimes you already know which specific checks you are interested in. Often this would be an industry accepted set of checks such as CIS, or some vendor specific guideline, or your own organization policy that you want to comply with. These are all possible using the flexible compliance infrastructure that's built into Trivy. Compliance reports are defined as simple YAML documents that select checks to include in the report.
- [NSA, CISA Kubernetes Hardening Guidance v1.0](../kubernetes/cli/compliance.md)
## Usage
Compliance report is currently supported in the following targets (trivy sub-commands):
- `trivy image`
- `trivy aws`
- `trivy k8s`
Add the `--compliance` flag to the command line, and set it's value to desired report.
For example: `trivy k8s cluster --compliance k8s-nsa` (see below for built-in and custom reports)
### Options
The following flags are compatible with `--compliance` flag and allows customizing it's output:
| flag | effect |
|--------------------|--------------------------------------------------------------------------------------|
| `--report summary` | shows a summary of the results. for every control shows the number of failed checks. |
| `--report all` | shows fully detailed results. for every control shows where it failed and why. |
| `--format table` | shows results in textual table format (good for human readability). |
| `--format json` | shows results in json format (good for machine readability). |
## Built-in compliance
Trivy has a number of built-in compliance reports that you can asses right out of the box.
to specify a built-in compliance report, select it by ID like `trivy --compliance <compliance_id>`.
For the list of built-in compliance reports, please see the relevant section:
- [Docker compliance](../target/container_image.md#compliance)
- [Kubernetes compliance](../target/kubernetes.md#compliance)
- [AWS compliance](../target/aws.md#compliance)
## Custom compliance
You can create your own custom compliance report. A compliance report is a simple YAML document in the following format:
```yaml
spec:
id: "k8s-myreport" # report unique identifier. this should not container spaces.
title: "My custom Kubernetes report" # report title. Any one-line title.
description: "Describe your report" # description of the report. Any text.
relatedResources :
- https://some.url # useful references. URLs only.
version: "1.0" # spec version (string)
controls:
- name: "Non-root containers" # Name for the control (appears in the report as is). Any one-line name.
description: 'Check that container is not running as root' # Description (appears in the report as is). Any text.
id: "1.0" # control identifier (string)
checks: # list of existing Trivy checks that define the control
- id: AVD-KSV-0012 # check ID. Must start with `AVD-` or `CVE-`
severity: "MEDIUM" # Severity for the control (note that checks severity isn't used)
- name: "Immutable container file systems"
description: 'Check that container root file system is immutable'
id: "1.1"
checks:
- id: AVD-KSV-0014
severity: "LOW"
```
The check id field (`controls[].checks[].id`) is referring to existing check by it's "AVD ID". This AVD ID is easily located in the check's source code metadata header, or by browsing [Aqua vulnerability DB](https://avd.aquasec.com/), specifically in the [Misconfigurations](https://avd.aquasec.com/misconfig/) and [Vulnerabilities](https://avd.aquasec.com/nvd) sections.
Once you have a compliance spec, you can select it by file path: `trivy --compliance @</path/to/compliance.yaml>` (note the `@` indicating file path instead of report id).

View File

@@ -1,4 +1,12 @@
# Cache
The cache directory includes
- [Vulnerability Database][trivy-db][^1]
- [Java Index Database][trivy-java-db][^2]
- [Misconfiguration Policies][misconf-policies][^3]
- Cache of previous scans.
The cache option is common to all scanners.
## Clear Caches
The `--clear-cache` option removes caches.
@@ -44,7 +52,14 @@ Two options:
$ trivy server --cache-backend redis://localhost:6379
```
Trivy also support for connecting to Redis using TLS, you only need to specify `--redis-ca` , `--redis-cert` , and `--redis-key` option.
If you want to use TLS with Redis, you can enable it by specifying the `--redis-tls` flag.
```shell
$ trivy server --cache-backend redis://localhost:6379 --redis-tls
```
Trivy also supports for connecting to Redis with your certificates.
You need to specify `--redis-ca` , `--redis-cert` , and `--redis-key` options.
```
$ trivy server --cache-backend redis://localhost:6379 \
@@ -53,4 +68,10 @@ $ trivy server --cache-backend redis://localhost:6379 \
--redis-key /path/to/key.pem
```
TLS option for redis is hidden from Trivy command-line flag, but you still can use it.
[trivy-db]: ./db.md#vulnerability-database
[trivy-java-db]: ./db.md#java-index-database
[misconf-policies]: ../scanner/misconfiguration/policy/builtin.md
[^1]: Downloaded when scanning for vulnerabilities
[^2]: Downloaded when scanning `jar/war/par/ear` files
[^3]: Downloaded when scanning for misconfigurations

View File

@@ -1,9 +1,19 @@
# Vulnerability DB
# DB
## Skip update of vulnerability DB
`Trivy` downloads its vulnerability database every 12 hours when it starts operating.
This is usually fast, as the size of the DB is only 10~30MB.
But if you want to skip even that, use the `--skip-db-update` option.
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | |
| Secret | |
| License | |
The vulnerability database and the Java index database are needed only for vulnerability scanning.
See [here](../scanner/vulnerability/index.md) for the detail.
## Vulnerability Database
### Skip update of vulnerability DB
If you want to skip downloading the vulnerability database, use the `--skip-db-update` option.
```
$ trivy image --skip-db-update python:3.4-alpine3.9
@@ -29,7 +39,7 @@ Total: 1 (UNKNOWN: 0, LOW: 0, MEDIUM: 1, HIGH: 0, CRITICAL: 0)
</details>
## Only download vulnerability database
### Only download vulnerability database
You can also ask `Trivy` to simply retrieve the vulnerability database.
This is useful to initialize workers in Continuous Integration systems.
@@ -37,9 +47,26 @@ This is useful to initialize workers in Continuous Integration systems.
$ trivy image --download-db-only
```
## DB Repository
### DB Repository
`Trivy` could also download the vulnerability database from an external OCI registry by using `--db-repository` option.
```
$ trivy image --db-repository registry.gitlab.com/gitlab-org/security-products/dependencies/trivy-db
```
## Java Index Database
The same options are also available for the Java index DB, which is used for scanning Java applications.
Skipping an update can be done by using the `--skip-java-db-update` option, while `--download-java-db-only` can be used to only download the Java index DB.
Downloading the Java index DB from an external OCI registry can be done by using the `--java-db-repository` option.
```
$ trivy image --java-db-repository registry.gitlab.com/gitlab-org/security-products/dependencies/trivy-java-db --download-java-db-only
```
## Remove DBs
The `--reset` flag removes all caches and databases.
```
$ trivy image --reset
```

View File

@@ -1,8 +1,18 @@
# Filter Vulnerabilities
# Filtering
Trivy provides various methods for filtering the results.
## Hide Unfixed Vulnerabilities
By default, `Trivy` also detects unpatched/unfixed vulnerabilities. This means you can't fix these vulnerabilities even if you update all packages.
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | |
| Secret | |
| License | |
By default, `Trivy` also detects unpatched/unfixed vulnerabilities.
This means you can't fix these vulnerabilities even if you update all packages.
If you would like to ignore them, use the `--ignore-unfixed` option.
```bash
@@ -50,6 +60,13 @@ Total: 4730 (UNKNOWN: 1, LOW: 145, MEDIUM: 3487, HIGH: 1014, CRITICAL: 83)
## By Severity
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | ✓ |
| Secret | ✓ |
| License | ✓ |
Use `--severity` option.
```bash
@@ -113,7 +130,69 @@ Total: 1785 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 1680, CRITICAL: 105)
</details>
## By Vulnerability IDs
```bash
trivy conf --severity HIGH,CRITICAL examples/misconf/mixed
```
<details>
<summary>Result</summary>
```shell
2022-05-16T13:50:42.718+0100 INFO Detected config files: 3
Dockerfile (dockerfile)
=======================
Tests: 17 (SUCCESSES: 16, FAILURES: 1, EXCEPTIONS: 0)
Failures: 1 (HIGH: 1, CRITICAL: 0)
HIGH: Last USER command in Dockerfile should not be 'root'
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Running containers with 'root' user can lead to a container escape situation. It is a best practice to run containers as non-root users, which can be done by adding a 'USER' statement to the Dockerfile.
See https://avd.aquasec.com/misconfig/ds002
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Dockerfile:3
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
3 [ USER root
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
deployment.yaml (kubernetes)
============================
Tests: 8 (SUCCESSES: 8, FAILURES: 0, EXCEPTIONS: 0)
Failures: 0 (HIGH: 0, CRITICAL: 0)
main.tf (terraform)
===================
Tests: 1 (SUCCESSES: 0, FAILURES: 1, EXCEPTIONS: 0)
Failures: 1 (HIGH: 0, CRITICAL: 1)
CRITICAL: Classic resources should not be used.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
AWS Classic resources run in a shared environment with infrastructure owned by other AWS customers. You should run
resources in a VPC instead.
See https://avd.aquasec.com/misconfig/avd-aws-0081
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
main.tf:2-4
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2 ┌ resource "aws_db_security_group" "sg" {
3 │
4 └ }
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
```
</details>
## By Finding IDs
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | ✓ |
| Secret | ✓ |
| License | |
Use `.trivyignore`.
@@ -128,6 +207,15 @@ CVE-2019-14697 exp:2023-01-01
# No impact in our settings
CVE-2019-1543
# Ignore misconfigurations
AVD-DS-0002
# Ignore secrets
generic-unwanted-rule
aws-account-id
```
```bash
$ trivy image python:3.4-alpine3.9
```
@@ -146,7 +234,14 @@ Total: 0 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 0, CRITICAL: 0)
</details>
## By Type
## By Vulnerability Target
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | |
| Secret | |
| License | |
Use `--vuln-type` option.
```bash
@@ -154,6 +249,7 @@ $ trivy image --vuln-type os ruby:2.4.0
```
Available values:
- library
- os
@@ -169,7 +265,8 @@ Available values:
2019-05-22T19:36:53.406+0200 INFO Detecting pipenv vulnerabilities...
ruby:2.4.0 (debian 8.7)
Total: 4751 (UNKNOWN: 1, LOW: 150, MEDIUM: 3504, HIGH: 1013, CRITICAL: 83)
=======================
Total: 7 (UNKNOWN: 0, LOW: 1, MEDIUM: 1, HIGH: 3, CRITICAL: 2)
+---------+------------------+----------+-------------------+---------------+----------------------------------+
| LIBRARY | VULNERABILITY ID | SEVERITY | INSTALLED VERSION | FIXED VERSION | TITLE |
@@ -180,23 +277,6 @@ Total: 4751 (UNKNOWN: 1, LOW: 150, MEDIUM: 3504, HIGH: 1013, CRITICAL: 83)
| | CVE-2018-16839 | HIGH | | 7.61.1-r1 | curl: Integer overflow leading |
| | | | | | to heap-based buffer overflow in |
| | | | | | Curl_sasl_create_plain_message() |
+ +------------------+ + +---------------+----------------------------------+
| | CVE-2019-3822 | | | 7.61.1-r2 | curl: NTLMv2 type-3 header |
| | | | | | stack buffer overflow |
+ +------------------+ + +---------------+----------------------------------+
| | CVE-2018-16840 | | | 7.61.1-r1 | curl: Use-after-free when |
| | | | | | closing "easy" handle in |
| | | | | | Curl_close() |
+ +------------------+----------+ +---------------+----------------------------------+
| | CVE-2019-3823 | MEDIUM | | 7.61.1-r2 | curl: SMTP end-of-response |
| | | | | | out-of-bounds read |
+ +------------------+ + + +----------------------------------+
| | CVE-2018-16890 | | | | curl: NTLM type-2 heap |
| | | | | | out-of-bounds buffer read |
+ +------------------+ + +---------------+----------------------------------+
| | CVE-2018-16842 | | | 7.61.1-r1 | curl: Heap-based buffer |
| | | | | | over-read in the curl tool |
| | | | | | warning formatting |
+---------+------------------+----------+-------------------+---------------+----------------------------------+
| git | CVE-2018-17456 | HIGH | 2.15.2-r0 | 2.15.3-r0 | git: arbitrary code execution |
| | | | | | via .gitmodules |
@@ -208,67 +288,6 @@ Total: 4751 (UNKNOWN: 1, LOW: 150, MEDIUM: 3504, HIGH: 1013, CRITICAL: 83)
| libssh2 | CVE-2019-3855 | CRITICAL | 1.8.0-r2 | 1.8.1-r0 | libssh2: Integer overflow in |
| | | | | | transport read resulting in |
| | | | | | out of bounds write... |
+ +------------------+----------+ + +----------------------------------+
| | CVE-2019-3861 | MEDIUM | | | libssh2: Out-of-bounds reads |
| | | | | | with specially crafted SSH |
| | | | | | packets |
+ +------------------+ + + +----------------------------------+
| | CVE-2019-3857 | | | | libssh2: Integer overflow in |
| | | | | | SSH packet processing channel |
| | | | | | resulting in out of... |
+ +------------------+ + + +----------------------------------+
| | CVE-2019-3856 | | | | libssh2: Integer overflow in |
| | | | | | keyboard interactive handling |
| | | | | | resulting in out of bounds... |
+ +------------------+ + + +----------------------------------+
| | CVE-2019-3863 | | | | libssh2: Integer overflow |
| | | | | | in user authenticate |
| | | | | | keyboard interactive allows |
| | | | | | out-of-bounds writes |
+ +------------------+ + + +----------------------------------+
| | CVE-2019-3862 | | | | libssh2: Out-of-bounds memory |
| | | | | | comparison with specially |
| | | | | | crafted message channel |
| | | | | | request |
+ +------------------+ + + +----------------------------------+
| | CVE-2019-3860 | | | | libssh2: Out-of-bounds reads |
| | | | | | with specially crafted SFTP |
| | | | | | packets |
+ +------------------+ + + +----------------------------------+
| | CVE-2019-3858 | | | | libssh2: Zero-byte allocation |
| | | | | | with a specially crafted SFTP |
| | | | | | packed leading to an... |
+ +------------------+ + + +----------------------------------+
| | CVE-2019-3859 | | | | libssh2: Unchecked use of |
| | | | | | _libssh2_packet_require and |
| | | | | | _libssh2_packet_requirev |
| | | | | | resulting in out-of-bounds |
| | | | | | read |
+---------+------------------+ +-------------------+---------------+----------------------------------+
| libxml2 | CVE-2018-14404 | | 2.9.7-r0 | 2.9.8-r1 | libxml2: NULL pointer |
| | | | | | dereference in |
| | | | | | xpath.c:xmlXPathCompOpEval() |
| | | | | | can allow attackers to cause |
| | | | | | a... |
+ +------------------+ + + +----------------------------------+
| | CVE-2018-14567 | | | | libxml2: Infinite loop when |
| | | | | | --with-lzma is used allows for |
| | | | | | denial of service... |
+ +------------------+----------+ + +----------------------------------+
| | CVE-2018-9251 | LOW | | | libxml2: infinite loop in |
| | | | | | xz_decomp function in xzlib.c |
+---------+------------------+----------+-------------------+---------------+----------------------------------+
| openssh | CVE-2019-6109 | MEDIUM | 7.5_p1-r9 | 7.5_p1-r10 | openssh: Missing character |
| | | | | | encoding in progress display |
| | | | | | allows for spoofing of scp... |
+ +------------------+ + + +----------------------------------+
| | CVE-2019-6111 | | | | openssh: Improper validation |
| | | | | | of object names allows |
| | | | | | malicious server to overwrite |
| | | | | | files... |
+ +------------------+----------+ + +----------------------------------+
| | CVE-2018-20685 | LOW | | | openssh: scp client improper |
| | | | | | directory name validation |
+---------+------------------+----------+-------------------+---------------+----------------------------------+
| sqlite | CVE-2018-20346 | MEDIUM | 3.21.0-r1 | 3.25.3-r0 | CVE-2018-20505 CVE-2018-20506 |
| | | | | | sqlite: Multiple flaws in |
@@ -283,13 +302,20 @@ Total: 4751 (UNKNOWN: 1, LOW: 150, MEDIUM: 3504, HIGH: 1013, CRITICAL: 83)
</details>
## By Open Policy Agent
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | ✓ |
| Secret | |
| License | |
!!! warning "EXPERIMENTAL"
This feature might change without preserving backwards compatibility.
Trivy supports Open Policy Agent (OPA) to filter vulnerabilities. You can specify a Rego file with `--ignore-policy` option.
Trivy supports Open Policy Agent (OPA) to filter vulnerabilities.
You can specify a Rego file with `--ignore-policy` option.
The Rego package name must be `trivy` and it must include a rule called `ignore` which determines if each individual vulnerability should be excluded (ignore=true) or not (ignore=false). In the policy, each vulnerability will be available for inspection as the `input` variable. The structure of each vulnerability input is the same as for the Trivy JSON output.
There is a built-in Rego library with helper functions that you can import into your policy using: `import data.lib.trivy`. For more info about the helper functions, look at the library [here][helper]
@@ -357,3 +383,28 @@ Total: 9 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 4, CRITICAL: 5)
[helper]: https://github.com/aquasecurity/trivy/tree/{{ git.tag }}/pkg/result/module.go
[policy]: https://github.com/aquasecurity/trivy/tree/{{ git.tag }}/contrib/example_policy
## By Inline Comments
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | |
| Misconfiguration | ✓ |
| Secret | |
| License | |
Some configuration file formats (e.g. Terraform) support inline comments.
In cases where trivy can detect comments of a specific format immediately adjacent to resource definitions, it is possible to filter/ignore findings from a single point of resource definition (in contrast to `.trivyignore`, which has a directory-wide scope on all of the files scanned).
The format for these comments is `trivy:ignore:<Vulnerability ID>` immediately following the format-specific line-comment token.
For example, to filter a Vulnerability ID "AVD-GCP-0051" in a Terraform HCL file:
```terraform
#trivy:ignore:AVD-GCP-0051
resource "google_container_cluster" "one_off_test" {
name = var.cluster_name
location = var.region
}
```

View File

@@ -0,0 +1,31 @@
# Configuration
Trivy can be configured using the following ways. Each item takes precedence over the item below it:
- CLI flags
- Environment variables
- Configuration file
## CLI Flags
You can view the list of available flags using the `--help` option.
For more details, please refer to [the CLI reference](../references/configuration/cli/trivy.md).
## Environment Variables
Trivy can be customized by environment variables.
The environment variable key is the flag name converted by the following procedure.
- Add `TRIVY_` prefix
- Make it all uppercase
- Replace `-` with `_`
For example,
- `--debug` => `TRIVY_DEBUG`
- `--cache-dir` => `TRIVY_CACHE_DIR`
```
$ TRIVY_DEBUG=true TRIVY_SEVERITY=CRITICAL trivy image alpine:3.15
```
## Configuration File
By default, Trivy reads the `trivy.yaml` file.
For more details, please refer to [the page](../references/configuration/config-file.md).

View File

@@ -0,0 +1,119 @@
# Others
## Enable/Disable Scanners
You can enable/disable scanners with the `--scanners` flag.
Supported values:
- vuln
- config
- secret
- license
For example, container image scanning enables vulnerability and secret scanners by default.
If you don't need secret scanning, it can be disabled.
``` shell
$ trivy image --scanners vuln alpine:3.15
```
## Exit Code
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | ✓ |
| Secret | ✓ |
| License | ✓ |
By default, `Trivy` exits with code 0 even when security issues are detected.
Use the `--exit-code` option if you want to exit with a non-zero exit code.
```
$ trivy image --exit-code 1 python:3.4-alpine3.9
```
<details>
<summary>Result</summary>
```
2019-05-16T12:51:43.500+0900 INFO Updating vulnerability database...
2019-05-16T12:52:00.387+0900 INFO Detecting Alpine vulnerabilities...
python:3.4-alpine3.9 (alpine 3.9.2)
===================================
Total: 1 (UNKNOWN: 0, LOW: 0, MEDIUM: 1, HIGH: 0, CRITICAL: 0)
+---------+------------------+----------+-------------------+---------------+--------------------------------+
| LIBRARY | VULNERABILITY ID | SEVERITY | INSTALLED VERSION | FIXED VERSION | TITLE |
+---------+------------------+----------+-------------------+---------------+--------------------------------+
| openssl | CVE-2019-1543 | MEDIUM | 1.1.1a-r1 | 1.1.1b-r1 | openssl: ChaCha20-Poly1305 |
| | | | | | with long nonces |
+---------+------------------+----------+-------------------+---------------+--------------------------------+
```
</details>
This option is useful for CI/CD. In the following example, the test will fail only when a critical vulnerability is found.
```
$ trivy image --exit-code 0 --severity MEDIUM,HIGH ruby:2.4.0
$ trivy image --exit-code 1 --severity CRITICAL ruby:2.4.0
```
## Exit on EOL
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | |
| Secret | |
| License | |
Sometimes you may surprisingly get 0 vulnerabilities in an old image:
- Enabling `--ignore-unfixed` option while all packages have no fixed versions.
- Scanning a rather outdated OS (e.g. Ubuntu 10.04).
An OS at the end of service/life (EOL) usually gets into this situation, which is definitely full of vulnerabilities.
`--exit-on-eol` can fail scanning on EOL OS with a non-zero code.
This flag is available with the following targets.
- Container images (`trivy image`)
- Virtual machine images (`trivy vm`)
- SBOM (`trivy sbom`)
- Root filesystem (`trivy rootfs`)
```
$ trivy image --exit-on-eol 1 alpine:3.10
```
<details>
<summary>Result</summary>
```
2023-03-01T11:07:15.455+0200 INFO Vulnerability scanning is enabled
...
2023-03-01T11:07:17.938+0200 WARN This OS version is no longer supported by the distribution: alpine 3.10.9
2023-03-01T11:07:17.938+0200 WARN The vulnerability detection may be insufficient because security updates are not provided
alpine:3.10 (alpine 3.10.9)
===========================
Total: 1 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 0, CRITICAL: 1)
┌───────────┬────────────────┬──────────┬───────────────────┬───────────────┬─────────────────────────────────────────────────────────────┐
│ Library │ Vulnerability │ Severity │ Installed Version │ Fixed Version │ Title │
├───────────┼────────────────┼──────────┼───────────────────┼───────────────┼─────────────────────────────────────────────────────────────┤
│ apk-tools │ CVE-2021-36159 │ CRITICAL │ 2.10.6-r0 │ 2.10.7-r0 │ libfetch before 2021-07-26, as used in apk-tools, xbps, and │
│ │ │ │ │ │ other products, mishandles... │
│ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2021-36159 │
└───────────┴────────────────┴──────────┴───────────────────┴───────────────┴─────────────────────────────────────────────────────────────┘
2023-03-01T11:07:17.941+0200 ERROR Detected EOL OS: alpine 3.10.9
```
</details>
This option is useful for CI/CD.
The following example will fail when a critical vulnerability is found or the OS is EOSL:
```
$ trivy image --exit-code 1 --exit-on-eol 1 --severity CRITICAL alpine:3.16.3
```

View File

@@ -1,12 +1,35 @@
# Report Formats
# Reporting
## Table (Default)
## Supported Formats
Trivy supports the following formats:
- Table
- JSON
- [SARIF](https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning)
- Template
- SBOM
### Table (Default)
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | ✓ |
| Secret | ✓ |
| License | ✓ |
```
$ trivy image -f table golang:1.12-alpine
```
### Show origins of vulnerable dependencies
#### Show origins of vulnerable dependencies
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | |
| Secret | |
| License | |
!!! warning "EXPERIMENTAL"
This feature might change without preserving backwards compatibility.
@@ -17,8 +40,28 @@ In some cases, vulnerable dependencies are not linked directly, and it requires
To make this task simpler Trivy can show a dependency origin tree with the `--dependency-tree` flag.
This flag is only available with the `--format table` flag.
!!! note
Only Node.js (package-lock.json) and Rust Binaries built with [cargo-auditable][cargo-auditable] are supported at the moment.
The following packages/languages are currently supported:
- OS packages
- apk
- dpkg
- rpm
- Node.js
- npm: package-lock.json
- pnpm: pnpm-lock.yaml
- yarn: yarn.lock
- .NET
- NuGet: packages.lock.json
- Python
- Poetry: poetry.lock
- Ruby
- Bundler: Gemfile.lock
- Rust
- Binaries built with [cargo-auditable][cargo-auditable]
- Go
- Modules: go.mod
- PHP
- Composer
This tree is the reverse of the npm list command.
However, if you want to resolve a vulnerability in a particular indirect dependency, the reversed tree is useful to know where that dependency comes from and identify which package you actually need to update.
@@ -43,8 +86,8 @@ Total: 2 (HIGH: 1, CRITICAL: 1)
│ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2020-28469 │
└──────────────────┴────────────────┴──────────┴───────────────────┴───────────────┴────────────────────────────────────────────────────────────┘
Dependency Origin Tree
======================
Dependency Origin Tree (Reversed)
=================================
package-lock.json
├── follow-redirects@1.14.6, (HIGH: 1, CRITICAL: 0)
│ └── axios@0.21.4
@@ -63,15 +106,19 @@ Also, **glob-parent@3.1.0** with some vulnerabilities is included through chain
Then, you can try to update **axios@0.21.4** and **cra-append-sw@2.7.0** to resolve vulnerabilities in **follow-redirects@1.14.6** and **glob-parent@3.1.0**.
## JSON
### JSON
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | ✓ |
| Secret | ✓ |
| License | ✓ |
```
$ trivy image -f json -o results.json golang:1.12-alpine
```
!!! caution
v0.20.0 changes the JSON schema. For more details, see [here][new-json].
<details>
<summary>Result</summary>
@@ -193,8 +240,15 @@ $ trivy image -f json -o results.json golang:1.12-alpine
`VulnerabilityID`, `PkgName`, `InstalledVersion`, and `Severity` in `Vulnerabilities` are always filled with values, but other fields might be empty.
## SARIF
[Sarif][sarif] can be generated with the `--format sarif` option.
### SARIF
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | ✓ |
| Secret | ✓ |
| License | |
[SARIF][sarif] can be generated with the `--format sarif` flag.
```
$ trivy image --format sarif -o report.sarif golang:1.12-alpine
@@ -202,9 +256,16 @@ $ trivy image --format sarif -o report.sarif golang:1.12-alpine
This SARIF file can be uploaded to GitHub code scanning results, and there is a [Trivy GitHub Action][action] for automating this process.
## Template
### Template
### Custom Template
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | ✓ |
| Secret | ✓ |
| License | ✓ |
#### Custom Template
{% raw %}
```
@@ -241,27 +302,47 @@ Critical: 0, High: 2
For other features of sprig, see the official [sprig][sprig] documentation.
### Load templates from a file
#### Load templates from a file
You can load templates from a file prefixing the template path with an @.
```
$ trivy image --format template --template "@/path/to/template" golang:1.12-alpine
```
### Default Templates
#### Default Templates
If Trivy is installed using rpm then default templates can be found at `/usr/local/share/trivy/templates`.
#### XML
##### JUnit
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | ✓ |
| Secret | |
| License | |
In the following example using the template `junit.tpl` XML can be generated.
```
$ trivy image --format template --template "@contrib/junit.tpl" -o junit-report.xml golang:1.12-alpine
```
#### ASFF
##### ASFF
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | ✓ |
| Secret | ✓ |
| License | |
Trivy also supports an [ASFF template for reporting findings to AWS Security Hub][asff]
#### HTML
##### HTML
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | ✓ |
| Secret | |
| License | |
```
$ trivy image --format template --template "@contrib/html.tpl" -o report.html golang:1.12-alpine
@@ -273,9 +354,36 @@ The following example shows use of default HTML template when Trivy is installed
$ trivy image --format template --template "@/usr/local/share/trivy/templates/html.tpl" -o report.html golang:1.12-alpine
```
### SBOM
See [here](../supply-chain/sbom.md) for details.
## Converting
To generate multiple reports, you can generate the JSON report first and convert it to other formats with the `convert` subcommand.
```shell
$ trivy image --format json -o result.json --list-all-pkgs debian:11
$ trivy convert --format cyclonedx --output result.cdx result.json
```
!!! note
Please note that if you want to convert to a format that requires a list of packages,
such as SBOM, you need to add the `--list-all-pkgs` flag when outputting in JSON.
[Filtering options](./filtering.md) such as `--severity` are also available with `convert`.
```shell
# Output all severities in JSON
$ trivy image --format json -o result.json --list-all-pkgs debian:11
# Output only critical issues in table format
$ trivy convert --format table --severity CRITICAL result.json
```
!!! note
JSON reports from "trivy aws" and "trivy k8s" are not yet supported.
[cargo-auditable]: https://github.com/rust-secure-code/cargo-auditable/
[new-json]: https://github.com/aquasecurity/trivy/discussions/1050
[action]: https://github.com/aquasecurity/trivy-action
[asff]: https://github.com/aquasecurity/trivy/blob/main/docs/docs/integrations/aws-security-hub.md
[asff]: ../../tutorials/integrations/aws-security-hub.md
[sarif]: https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/managing-results-from-code-scanning
[sprig]: http://masterminds.github.io/sprig/

View File

@@ -0,0 +1,85 @@
# Skipping Files and Directories
This section details ways to specify the files and directories that Trivy should not scan.
## Skip Files
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | ✓ |
| Secret | ✓ |
| License | ✓ |
By default, Trivy traverses directories and searches for all necessary files for scanning.
You can skip files that you don't maintain using the `--skip-files` flag.
```
$ trivy image --skip-files "/Gemfile.lock" --skip-files "/var/lib/gems/2.5.0/gems/http_parser.rb-0.6.0/Gemfile.lock" quay.io/fluentd_elasticsearch/fluentd:v2.9.0
```
It's possible to specify globs as part of the value.
```bash
$ trivy image --skip-files "./testdata/*/bar" .
```
Will skip any file named `bar` in the subdirectories of testdata.
## Skip Directories
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | ✓ |
| Secret | ✓ |
| License | ✓ |
By default, Trivy traverses directories and searches for all necessary files for scanning.
You can skip directories that you don't maintain using the `--skip-dirs` flag.
```
$ trivy image --skip-dirs /var/lib/gems/2.5.0/gems/fluent-plugin-detect-exceptions-0.0.13 --skip-dirs "/var/lib/gems/2.5.0/gems/http_parser.rb-0.6.0" quay.io/fluentd_elasticsearch/fluentd:v2.9.0
```
It's possible to specify globs as part of the value.
```bash
$ trivy image --skip-dirs "./testdata/*" .
```
Will skip all subdirectories of the testdata directory.
!!! tip
Glob patterns work with any trivy subcommand (image, config, etc.) and can be specified to skip both directories (with `--skip-dirs`) and files (with `--skip-files`).
### Advanced globbing
Trivy also supports the [globstar](https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Pattern-Matching) pattern matching.
```bash
$ trivy image --skip-files "**/foo" image:tag
```
Will skip the file `foo` that happens to be nested under any parent(s).
## File patterns
| Scanner | Supported |
|:----------------:|:---------:|
| Vulnerability | ✓ |
| Misconfiguration | ✓ |
| Secret | |
| License | |
When a directory is given as an input, Trivy will recursively look for and test all files based on file patterns.
The default file patterns are [here](../scanner/misconfiguration/custom/index.md).
In addition to the default file patterns, the `--file-patterns` option takes regexp patterns to look for your files.
For example, it may be useful when your file name of Dockerfile doesn't match the default patterns.
This can be repeated for specifying multiple file patterns.
A file pattern contains the analyzer it is used for, and the pattern itself, joined by a semicolon. For example:
```
--file-patterns "dockerfile:.*.docker" --file-patterns "kubernetes:*.tpl" --file-patterns "pip:requirements-.*\.txt"
```
The prefixes are listed [here](https://github.com/aquasecurity/trivy/tree/{{ git.commit }}/pkg/fanal/analyzer/const.go)

View File

@@ -1,72 +1,5 @@
# Docs
This documentation details how to use Trivy to access the features listed below.
In this section you can find the complete reference documentation for all of the different features and settings that Trivy has to offer.
## Features
- Comprehensive vulnerability detection
- [OS packages][os] (Alpine, Red Hat Universal Base Image, Red Hat Enterprise Linux, CentOS, AlmaLinux, Rocky Linux, CBL-Mariner, Oracle Linux, Debian, Ubuntu, Amazon Linux, openSUSE Leap, SUSE Enterprise Linux, Photon OS and Distroless)
- [**Language-specific packages**][lang] (Bundler, Composer, Pipenv, Poetry, npm, yarn, pnpm, Cargo, NuGet, Maven, and Go)
- Detect IaC misconfigurations
- A wide variety of [built-in policies][builtin] are provided **out of the box**:
- Kubernetes
- Docker
- Terraform
- more coming soon
- Support custom policies
- Simple
- Specify only an image name, a directory containing IaC configs, or an artifact name
- See [Quick Start][quickstart]
- Fast
- The first scan will finish within 10 seconds (depending on your network). Consequent scans will finish in single seconds.
- Unlike other scanners that take long to fetch vulnerability information (~10 minutes) on the first run, and encourage you to maintain a durable vulnerability database, Trivy is stateless and requires no maintenance or preparation.
- Easy installation
- `apt-get install`, `yum install` and `brew install` is possible (See [Installation][installation])
- **No pre-requisites** such as installation of DB, libraries, etc.
- High accuracy
- **Especially Alpine Linux and RHEL/CentOS**
- Other OSes are also high
- DevSecOps
- **Suitable for CI** such as Travis CI, CircleCI, Jenkins, GitLab CI, etc.
- See [CI Example][integrations]
- Support multiple formats
- container image
- A local image in Docker Engine which is running as a daemon
- A local image in [Podman][podman] (>=2.0) which is exposing a socket
- A remote image in Docker Registry such as Docker Hub, ECR, GCR and ACR
- A tar archive stored in the `docker save` / `podman save` formatted file
- An image directory compliant with [OCI Image Format][oci]
- local filesystem and rootfs
- remote git repository
- [SBOM][sbom] (Software Bill of Materials) support
- CycloneDX
- SPDX
- GitHub Dependency Snapshots
Please see [LICENSE][license] for Trivy licensing information.
[installation]: ../index.md
[vuln]: ../docs/vulnerability/scanning/index.md
[misconf]: ../docs/misconfiguration/scanning.md
[kubernetesoperator]: ../docs/kubernetes/operator/index.md
[container]: ../docs/vulnerability/scanning/image.md
[rootfs]: ../docs/vulnerability/scanning/rootfs.md
[filesystem]: ../docs/vulnerability/scanning/filesystem.md
[repo]: ../docs/vulnerability/scanning/git-repository.md
[kubernetes]: ../docs/kubernetes/cli/scanning.md
[standalone]: ../docs/references/modes/standalone.md
[client-server]: ../docs/references/modes/client-server.md
[integrations]: ../tutorials/integrations/index.md
[os]: ../docs/vulnerability/detection/os.md
[lang]: ../docs/vulnerability/detection/language.md
[builtin]: ../docs/misconfiguration/policy/builtin.md
[quickstart]: ../getting-started/quickstart.md
[podman]: ../docs/advanced/container/podman.md
[sbom]: ../docs/sbom/index.md
[oci]: https://github.com/opencontainers/image-spec
[license]: https://github.com/aquasecurity/trivy/blob/main/LICENSE
👈 Please use the side-navigation on the left in order to browse the different topics.

View File

@@ -1,17 +0,0 @@
# Woodpecker CI
This is a simple example configuration `.woodpecker/trivy.yml` that shows how you could get started:
```yml
pipeline:
securitycheck:
image: aquasec/trivy:latest
commands:
# use any trivy command, if exit code is 0 woodpecker marks it as passed, else it assumes it failed
- trivy fs --exit-code 1 --skip-dirs web/ --skip-dirs docs/ --severity MEDIUM,HIGH,CRITICAL .
```
Woodpecker does use Trivy itself so you can see an [Example][example] run at its [Repository][repository] and how it was [added](https://github.com/woodpecker-ci/woodpecker/pull/1163).
[example]: https://ci.woodpecker-ci.org/woodpecker-ci/woodpecker/build/3520/37
[repository]: https://github.com/woodpecker-ci/woodpecker

View File

@@ -1,68 +0,0 @@
# Kubernetes Compliance
## NSA Complaince Report
!!! warning "EXPERIMENTAL"
This feature might change without preserving backwards compatibility.
The Trivy K8s CLI allows you to scan your Kubernetes cluster resources and generate the `NSA, CISA Kubernetes Hardening Guidance` report
[NSA, CISA Kubernetes Hardening Guidance v1.2](https://media.defense.gov/2022/Aug/29/2003066362/-1/-1/0/CTR_KUBERNETES_HARDENING_GUIDANCE_1.2_20220829.PDF) cybersecurity technical report is produced by trivy and validate the following control checks :
| NAME | DESCRIPTION | |
|----------------------------------------------------------|---------------------------------------------------------------------------------------------------------|---------------|
| Non-root containers | Check that container is not running as root |
| Immutable container file systems | Check that container root file system is immutable |
| Preventing privileged containers | Controls whether Pods can run privileged containers |
| Share containers process namespaces | Controls whether containers can share process namespaces |
| Share host process namespaces | Controls whether share host process namespaces |
| Use the host network | Controls whether containers can use the host network |
| Run with root privileges or with root group membership | Controls whether container applications can run with <br/>root privileges or with root group membership |
| Restricts escalation to root privileges | Control check restrictions escalation to root privileges |
| Sets the SELinux context of the container | Control checks if pod sets the SELinux context of the container |
| Restrict a container's access to resources with AppArmor | Control checks the restriction of containers access to resources with AppArmor |
| Sets the seccomp profile used to sandbox containers | Control checks the sets the seccomp profile used to sandbox containers |
| Protecting Pod service account tokens | Control check whether disable secret token been mount ,automountServiceAccountToken: false |
| Namespace kube-system should not be used by users | Control check whether Namespace kube-system is not be used by users |
| Pod and/or namespace Selectors usage | Control check validate the pod and/or namespace Selectors usage |
| Use CNI plugin that supports NetworkPolicy API | Control check whether check cni plugin installed |
| Use ResourceQuota policies to limit resources | Control check the use of ResourceQuota policy to limit aggregate resource usage within namespace |
| Use LimitRange policies to limit resources | Control check the use of LimitRange policy limit resource usage for namespaces or nodes |
| Control plan disable insecure port | Control check whether control plan disable insecure port |
| Encrypt etcd communication | Control check whether etcd communication is encrypted |
| Ensure kube config file permission | Control check whether kube config file permissions |
| Check that encryption resource has been set | Control checks whether encryption resource has been set |
| Check encryption provider | Control checks whether encryption provider has been set |
| Make sure anonymous-auth is unset | Control checks whether anonymous-auth is unset |
| Make sure -authorization-mode=RBAC | Control check whether RBAC permission is in use |
| Audit policy is configure | Control check whether audit policy is configure |
| Audit log path is configure | Control check whether audit log path is configure |
| Audit log aging | Control check whether audit log aging is configure |
## CLI Commands
Scan a full cluster and generate a complliance NSA summary report:
```
$ trivy k8s cluster --compliance=nsa --report summary
```
![k8s Summary Report](../../../imgs/trivy-nsa-summary.png)
***Note*** : The `compliance` column represent the calculation of all tests pass vs. fail for all resources per control check in percentage format.
Example: if I have two resources in cluster and one resource scan result show pass while the other one show fail for `1.0 Non-root Containers` then it compliance will show 50%
An additional report is supported to get all of the detail the output contains, use `--report all`
```
$ trivy k8s cluster --compliance=nsa --report all
```
Report also supported in json format examples :
```
$ trivy k8s cluster --compliance=nsa --report summary --format json
```
```
$ trivy k8s cluster --compliance=nsa --report all --format json
```

View File

@@ -1,14 +0,0 @@
# Trivy Operator
Trivy has a native [Kubernetes Operator][operator] which continuously scans your Kubernetes cluster for security issues, and generates security reports as Kubernetes [Custom Resources][crd]. It does it by watching Kubernetes for state changes and automatically triggering scans in response to changes, for example initiating a vulnerability scan when a new Pod is created.
> Kubernetes-native security toolkit. ([Documentation][trivy-operator]).
<figure>
<figcaption>Workload reconcilers discover K8s controllers, manage scan jobs, and create VulnerabilityReport and ConfigAuditReport objects.</figcaption>
</figure>
[operator]: https://kubernetes.io/docs/concepts/extend-kubernetes/operator/
[crd]: https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/
[trivy-operator]: https://aquasecurity.github.io/trivy-operator/latest

View File

@@ -1,24 +0,0 @@
# vs cfsec
[cfsec][cfsec] uses static analysis of your CloudFormation templates to spot potential security issues.
Trivy uses cfsec internally to scan both JSON and YAML configuration files, but Trivy doesn't support some features provided by cfsec.
This section describes the differences between Trivy and cfsec.
| Feature | Trivy | cfsec |
|-----------------------|--------------------------------------------------------|------------------------------|
| Built-in Policies | :material-check: | :material-check: |
| Custom Policies | :material-check: | :material-close: |
| Policy Metadata[^1] | :material-check: | :material-check: |
| Show Successes | :material-check: | :material-check: |
| Disable Policies | :material-check: | :material-check: |
| Show Issue Lines | :material-check: | :material-check: |
| View Statistics | :material-close: | :material-check: |
| Filtering by Severity | :material-check: | :material-close: |
| Supported Formats | Dockerfile, JSON, YAML, Terraform, CloudFormation etc. | CloudFormation JSON and YAML |
[^1]: To enrich the results such as ID, Title, Description, Severity, etc.
cfsec is designed for CloudFormation.
People who use only want to scan their CloudFormation templates should use cfsec.
People who want to scan a wide range of configuration files should use Trivy.
[cfsec]: https://github.com/aquasecurity/cfsec

View File

@@ -1,43 +0,0 @@
# vs Conftest
[Conftest][conftest] is a really nice tool to help you write tests against structured configuration data.
Misconfiguration detection in Trivy is heavily inspired by Conftest and provides similar features Conftest has.
This section describes the differences between Trivy and Conftest.
| Feature | Trivy | Conftest |
| --------------------------- | -------------------- | -------------------- |
| Support Rego Language | :material-check: | :material-check: |
| Built-in Policies | :material-check: | :material-close: |
| Custom Policies | :material-check: | :material-check: |
| Custom Data | :material-check: | :material-check: |
| Combine | :material-check: | :material-check: |
| Combine per Policy | :material-check: | :material-close: |
| Policy Input Selector[^1] | :material-check: | :material-close: |
| Policy Metadata[^2] | :material-check: | :material-close:[^3] |
| Filtering by Severity | :material-check: | :material-close: |
| Rule-based Exceptions | :material-check: | :material-check: |
| Namespace-based Exceptions | :material-check: | :material-close: |
| Sharing Policies | :material-close: | :material-check: |
| Show Successes | :material-check: | :material-close: |
| Flexible Exit Code | :material-check: | :material-close: |
| Rego Unit Tests | :material-close:[^4] | :material-check: |
| Go Testing | :material-check: | :material-close: |
| Verbose Trace | :material-check: | :material-check: |
| Supported Formats | 6 formats[^5] | 14 formats[^6] |
Trivy offers built-in policies and a variety of options, while Conftest only supports custom policies.
In other words, Conftest is simpler and lighter.
Conftest is a general testing tool for configuration files, and Trivy is more security-focused.
People who need an out-of-the-box misconfiguration scanner should use Trivy.
People who don't need built-in policies and write your policies should use Conftest.
[^1]: Pass only the types of configuration file as input, specified in selector
[^2]: To enrich the results such as ID, Title, Description, etc.
[^3]: Conftest supports [structured errors in rules][conftest-structured], but they are free format and not natively supported by Conftest.
[^4]: Trivy is not able to run `*_test.rego` like `conftest verify`.
[^5]: Dockerfile, HCL, HCL2, JSON, TOML, and YAML
[^6]: CUE, Dockerfile, EDN, HCL, HCL2, HOCON, Ignore files, INI, JSON, Jsonnet, TOML, VCL, XML, and YAML
[conftest-structured]: https://github.com/open-policy-agent/conftest/pull/243
[conftest]: https://github.com/open-policy-agent/conftest

View File

@@ -1,25 +0,0 @@
# vs tfsec
[tfsec][tfsec] uses static analysis of your Terraform templates to spot potential security issues.
Trivy uses tfsec internally to scan Terraform HCL files, but Trivy doesn't support some features provided by tfsec.
This section describes the differences between Trivy and tfsec.
| Feature | Trivy | tfsec |
|-----------------------|--------------------------------------------------------|----------------------|
| Built-in Policies | :material-check: | :material-check: |
| Custom Policies | Rego | Rego, JSON, and YAML |
| Policy Metadata[^1] | :material-check: | :material-check: |
| Show Successes | :material-check: | :material-check: |
| Disable Policies | :material-check: | :material-check: |
| Show Issue Lines | :material-check: | :material-check: |
| Support .tfvars | :material-close: | :material-check: |
| View Statistics | :material-close: | :material-check: |
| Filtering by Severity | :material-check: | :material-check: |
| Supported Formats | Dockerfile, JSON, YAML, Terraform, CloudFormation etc. | Terraform |
[^1]: To enrich the results such as ID, Title, Description, Severity, etc.
tfsec is designed for Terraform.
People who use only Terraform should use tfsec.
People who want to scan a wide range of configuration files should use Trivy.
[tfsec]: https://github.com/aquasecurity/tfsec

View File

@@ -1,296 +0,0 @@
# Examples
## Custom Policy
### Kubernetes
See [here][k8s].
The custom policy is defined in `user.kubernetes.ID001` package.
You need to pass the package prefix you want to evaluate through `--namespaces` option.
In this case, the package prefix should be `user`, `user.kubernetes`, or `user.kubernetes.ID001`.
### Dockerfile
See [here][dockerfile].
The input will be a dictionary of stages.
#### Single Stage
??? example
Dockerfile
```dockerfile
FROM foo
COPY . /
RUN echo hello
```
Rego Input
```json
{
"stages": {
"foo": [
{
"Cmd": "from",
"EndLine": 1,
"Flags": [],
"JSON": false,
"Original": "FROM foo",
"Stage": 0,
"StartLine": 1,
"SubCmd": "",
"Value": [
"foo"
]
},
{
"Cmd": "copy",
"EndLine": 2,
"Flags": [],
"JSON": false,
"Original": "COPY . /",
"Stage": 0,
"StartLine": 2,
"SubCmd": "",
"Value": [
".",
"/"
]
},
{
"Cmd": "run",
"EndLine": 3,
"Flags": [],
"JSON": false,
"Original": "RUN echo hello",
"Stage": 0,
"StartLine": 3,
"SubCmd": "",
"Value": [
"echo hello"
]
}
]
}
}
```
#### Multi Stage
??? example
Dockerfile
```dockerfile
FROM golang:1.16 AS builder
WORKDIR /go/src/github.com/alexellis/href-counter/
RUN go get -d -v golang.org/x/net/html
COPY app.go .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
FROM alpine:latest
RUN apk --no-cache add ca-certificates \
&& apk add --no-cache bash
WORKDIR /root/
COPY --from=builder /go/src/github.com/alexellis/href-counter/app .
CMD ["./app"]
```
Rego Input
```json
{
"stages": {
"alpine:latest": [
{
"Cmd": "from",
"EndLine": 7,
"Flags": [],
"JSON": false,
"Original": "FROM alpine:latest",
"Stage": 1,
"StartLine": 7,
"SubCmd": "",
"Value": [
"alpine:latest"
]
},
{
"Cmd": "run",
"EndLine": 9,
"Flags": [],
"JSON": false,
"Original": "RUN apk --no-cache add ca-certificates \u0026\u0026 apk add --no-cache bash",
"Stage": 1,
"StartLine": 8,
"SubCmd": "",
"Value": [
"apk --no-cache add ca-certificates \u0026\u0026 apk add --no-cache bash"
]
},
{
"Cmd": "workdir",
"EndLine": 10,
"Flags": [],
"JSON": false,
"Original": "WORKDIR /root/",
"Stage": 1,
"StartLine": 10,
"SubCmd": "",
"Value": [
"/root/"
]
},
{
"Cmd": "copy",
"EndLine": 11,
"Flags": [
"--from=builder"
],
"JSON": false,
"Original": "COPY --from=builder /go/src/github.com/alexellis/href-counter/app .",
"Stage": 1,
"StartLine": 11,
"SubCmd": "",
"Value": [
"/go/src/github.com/alexellis/href-counter/app",
"."
]
},
{
"Cmd": "cmd",
"EndLine": 12,
"Flags": [],
"JSON": true,
"Original": "CMD [\"./app\"]",
"Stage": 1,
"StartLine": 12,
"SubCmd": "",
"Value": [
"./app"
]
}
],
"golang:1.16 AS builder": [
{
"Cmd": "from",
"EndLine": 1,
"Flags": [],
"JSON": false,
"Original": "FROM golang:1.16 AS builder",
"Stage": 0,
"StartLine": 1,
"SubCmd": "",
"Value": [
"golang:1.16",
"AS",
"builder"
]
},
{
"Cmd": "workdir",
"EndLine": 2,
"Flags": [],
"JSON": false,
"Original": "WORKDIR /go/src/github.com/alexellis/href-counter/",
"Stage": 0,
"StartLine": 2,
"SubCmd": "",
"Value": [
"/go/src/github.com/alexellis/href-counter/"
]
},
{
"Cmd": "run",
"EndLine": 3,
"Flags": [],
"JSON": false,
"Original": "RUN go get -d -v golang.org/x/net/html",
"Stage": 0,
"StartLine": 3,
"SubCmd": "",
"Value": [
"go get -d -v golang.org/x/net/html"
]
},
{
"Cmd": "copy",
"EndLine": 4,
"Flags": [],
"JSON": false,
"Original": "COPY app.go .",
"Stage": 0,
"StartLine": 4,
"SubCmd": "",
"Value": [
"app.go",
"."
]
},
{
"Cmd": "run",
"EndLine": 5,
"Flags": [],
"JSON": false,
"Original": "RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .",
"Stage": 0,
"StartLine": 5,
"SubCmd": "",
"Value": [
"CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app ."
]
}
]
}
}
```
### Docker Compose
See [here][compose].
Docker Compose uses YAML format for configurations. You can apply your Rego policies to `docker-compose.yml`.
### HCL
See [here][hcl].
Trivy parses HCL files and converts into structured data.
!!! warning
Terraform HCL files are not supported yet.
### Terraform Plan
See [here][tfplan].
Use the command [terraform show][terraform-show] to convert the Terraform plan into JSON so that OPA can read the plan.
```bash
$ terraform init
$ terraform plan --out tfplan.binary
$ terraform show -json tfplan.binary > tfplan.json
```
For more details, see also [OPA document][opa-terraform].
### Serverless Framework
See [here][serverless].
Server Framework uses YAML format for configurations. You can apply your Rego policies to `serverless.yaml`.
## Custom Data
See [here][data].
## Combined Input
See [here][combine].
## Go Testing
See [here][go-testing].
[k8s]:https://github.com/aquasecurity/trivy/tree/{{ git.commit }}/examples/misconf/custom-policy/kubernetes/
[dockerfile]:https://github.com/aquasecurity/trivy/tree/{{ git.commit }}/examples/misconf/custom-policy/dockerfile/
[compose]:https://github.com/aquasecurity/trivy/tree/{{ git.commit }}/examples/misconf/custom-policy/docker-compose/
[hcl]:https://github.com/aquasecurity/trivy/tree/{{ git.commit }}/examples/misconf/custom-policy/hcl/
[serverless]:https://github.com/aquasecurity/trivy/tree/{{ git.commit }}/examples/misconf/custom-policy/serverless/
[tfplan]:https://github.com/aquasecurity/trivy/tree/{{ git.commit }}/examples/misconf/custom-policy/terraform-plan/
[terraform-show]: https://www.terraform.io/docs/cli/commands/show.html
[opa-terraform]: https://www.openpolicyagent.org/docs/latest/terraform/
[custom]: https://github.com/aquasecurity/trivy/tree/{{ git.commit }}/examples/misconf/custom-policy
[data]: https://github.com/aquasecurity/trivy/tree/{{ git.commit }}/examples/misconf/custom-data
[combine]: https://github.com/aquasecurity/trivy/tree/{{ git.commit }}/examples/misconf/combine
[go-testing]: https://github.com/aquasecurity/trivy/tree/{{ git.commit }}/examples/misconf/go-testing

View File

@@ -1,60 +0,0 @@
# Filter Misconfigurations
## By Severity
Use `--severity` option.
```bash
trivy conf --severity HIGH,CRITICAL examples/misconf/mixed
```
<details>
<summary>Result</summary>
```shell
2022-05-16T13:50:42.718+0100 INFO Detected config files: 3
Dockerfile (dockerfile)
=======================
Tests: 17 (SUCCESSES: 16, FAILURES: 1, EXCEPTIONS: 0)
Failures: 1 (HIGH: 1, CRITICAL: 0)
HIGH: Last USER command in Dockerfile should not be 'root'
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Running containers with 'root' user can lead to a container escape situation. It is a best practice to run containers as non-root users, which can be done by adding a 'USER' statement to the Dockerfile.
See https://avd.aquasec.com/misconfig/ds002
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Dockerfile:3
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
3 [ USER root
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
deployment.yaml (kubernetes)
============================
Tests: 8 (SUCCESSES: 8, FAILURES: 0, EXCEPTIONS: 0)
Failures: 0 (HIGH: 0, CRITICAL: 0)
main.tf (terraform)
===================
Tests: 1 (SUCCESSES: 0, FAILURES: 1, EXCEPTIONS: 0)
Failures: 1 (HIGH: 0, CRITICAL: 1)
CRITICAL: Classic resources should not be used.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
AWS Classic resources run in a shared environment with infrastructure owned by other AWS customers. You should run
resources in a VPC instead.
See https://avd.aquasec.com/misconfig/avd-aws-0081
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
main.tf:2-4
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2 ┌ resource "aws_db_security_group" "sg" {
3
4}
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
```
</details>

View File

@@ -1,4 +0,0 @@
# Others
!!! hint
See also [Others](../../vulnerability/examples/others.md) in Vulnerability section.

View File

@@ -1,35 +0,0 @@
# Policy
## Pass custom policies
You can pass directories including your custom policies through `--policy` option.
This can be repeated for specifying multiple directories.
```bash
cd examplex/misconf/
trivy conf --policy custom-policy/policy --policy combine/policy --namespaces user misconf/mixed
```
For more details, see [Custom Policies](../custom/index.md).
!!! tip
You also need to specify `--namespaces` option.
## Pass custom data
You can pass directories including your custom data through `--data` option.
This can be repeated for specifying multiple directories.
```bash
cd examples/misconf/custom-data
trivy conf --policy ./policy --data ./data --namespaces user ./configs
```
For more details, see [Custom Data](../custom/data.md).
## Pass namespaces
By default, Trivy evaluates policies defined in `builtin.*`.
If you want to evaluate custom policies in other packages, you have to specify package prefixes through `--namespaces` option.
This can be repeated for specifying multiple packages.
``` bash
trivy conf --policy ./policy --namespaces main --namespaces user ./configs
```

View File

@@ -1,6 +0,0 @@
# Report Formats
See [Reports Formats](../../vulnerability/examples/report.md) in Vulnerability section.
!!! caution
Misconfiguration scanning doesn't support default templates such as XML for now.

View File

@@ -1,48 +0,0 @@
# Value Overrides
Value files can be passed for supported scannable config files.
## Terraform value overrides
You can pass `tf-vars` files to Trivy to override default values found in the Terraform HCL code.
```bash
trivy conf --tf-vars dev.terraform.tfvars ./infrastructure/tf
```
## Helm value overrides
There are a number of options for overriding values in Helm charts. When override values are passed to the Helm scanner, the values will be used during the Manifest rendering process and will become part of the scanned artifact.
### Setting inline value overrides
Overrides can be set inline on the command line
```bash
trivy conf --helm-set securityContext.runAsUser=0 ./charts/mySql
```
### Setting value file overrides
Overrides can be in a file that has the key=value set.
```yaml
# Example override file (overrides.yaml)
securityContext:
runAsUser: 0
```
```bash
trivy conf --helm-values overrides.yaml ./charts/mySql
```
### Setting value as explicit string
the `--helm-set-string` is the same as `--helm-set` but explicitly retains the value as a string
```bash
trivy config --helm-set-string name=false ./infrastructure/tf
```
### Setting specific values from files
Specific override values can come from specific files
```bash
trivy conf --helm-set-file environment=dev.values.yaml ./charts/mySql
```

View File

@@ -1,70 +0,0 @@
# Client
```bash
Usage:
trivy client [flags] IMAGE_NAME
Aliases:
client, c
Scan Flags
--offline-scan do not issue API requests to identify dependencies
--security-checks string comma-separated list of what security issues to detect (vuln,config,secret) (default "vuln,secret")
--skip-dirs strings specify the directories where the traversal is skipped
--skip-files strings specify the file paths to skip traversal
Report Flags
--dependency-tree show dependency origin tree (EXPERIMENTAL)
--exit-code int specify exit code when any security issues are found
-f, --format string format (table, json, sarif, template, cyclonedx, spdx, spdx-json, github, cosign-vuln) (default "table")
--ignore-policy string specify the Rego file path to evaluate each vulnerability
--ignorefile string specify .trivyignore file (default ".trivyignore")
--list-all-pkgs enabling the option will output all packages regardless of vulnerability
-o, --output string output file name
--report string specify a report format for the output. (all,summary) (default "all")
-s, --severity string severities of security issues to be displayed (comma separated) (default "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL")
-t, --template string output template
Cache Flags
--cache-backend string cache backend (e.g. redis://localhost:6379) (default "fs")
--cache-ttl duration cache TTL when using redis as cache backend
--clear-cache clear image caches without scanning
--redis-ca string redis ca file location, if using redis as cache backend
--redis-cert string redis certificate file location, if using redis as cache backend
--redis-key string redis key file location, if using redis as cache backend
DB Flags
--db-repository string OCI repository to retrieve trivy-db from (default "ghcr.io/aquasecurity/trivy-db")
--download-db-only download/update vulnerability database but don't run a scan
--no-progress suppress progress bar
--reset remove all caches and database
--skip-db-update skip updating vulnerability database
Vulnerability Flags
--ignore-unfixed display only fixed vulnerabilities
--vuln-type string comma-separated list of vulnerability types (os,library) (default "os,library")
Misconfiguration Flags
--config-data strings specify paths from which data for the Rego policies will be recursively loaded
--config-policy strings specify paths to the Rego policy files directory, applying config files
--file-patterns strings specify config file patterns, available with '--security-checks config'
--include-non-failures include successes and exceptions, available with '--security-checks config'
--policy-namespaces strings Rego namespaces
--trace enable more verbose trace output for custom queries
Client/Server Flags
--custom-headers strings custom headers in client mode
--remote string server address (default "http://localhost:4954")
--token string for authentication in client/server mode
--token-header string specify a header name for token in client/server mode (default "Trivy-Token")
Global Flags:
--cache-dir string cache directory (default "/Users/teppei/Library/Caches/trivy")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections when using TLS
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```

View File

@@ -1,49 +0,0 @@
# Config
``` bash
Scan config files for misconfigurations
Usage:
trivy config [flags] DIR
Aliases:
config, conf
Scan Flags
--skip-dirs strings specify the directories where the traversal is skipped
--skip-files strings specify the file paths to skip traversal
Report Flags
--exit-code int specify exit code when any security issues are found
-f, --format string format (table, json, sarif, template, cyclonedx, spdx, spdx-json, github, cosign-vuln) (default "table")
--ignorefile string specify .trivyignore file (default ".trivyignore")
-o, --output string output file name
-s, --severity string severities of security issues to be displayed (comma separated) (default "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL")
-t, --template string output template
Cache Flags
--cache-backend string cache backend (e.g. redis://localhost:6379) (default "fs")
--cache-ttl duration cache TTL when using redis as cache backend
--clear-cache clear image caches without scanning
--redis-ca string redis ca file location, if using redis as cache backend
--redis-cert string redis certificate file location, if using redis as cache backend
--redis-key string redis key file location, if using redis as cache backend
Misconfiguration Flags
--config-data strings specify paths from which data for the Rego policies will be recursively loaded
--config-policy strings specify paths to the Rego policy files directory, applying config files
--file-patterns strings specify config file patterns, available with '--security-checks config'
--include-non-failures include successes and exceptions, available with '--security-checks config'
--policy-namespaces strings Rego namespaces
--trace enable more verbose trace output for custom queries
Global Flags:
--cache-dir string cache directory (default "/Users/teppei/Library/Caches/trivy")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections when using TLS
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```

View File

@@ -1,85 +0,0 @@
# Filesystem
```bash
Scan local filesystem
Usage:
trivy filesystem [flags] PATH
Aliases:
filesystem, fs
Examples:
# Scan a local project including language-specific files
$ trivy fs /path/to/your_project
# Scan a single file
$ trivy fs ./trivy-ci-test/Pipfile.lock
Scan Flags
--offline-scan do not issue API requests to identify dependencies
--security-checks string comma-separated list of what security issues to detect (vuln,config,secret) (default "vuln,secret")
--skip-dirs strings specify the directories where the traversal is skipped
--skip-files strings specify the file paths to skip traversal
Report Flags
--dependency-tree show dependency origin tree (EXPERIMENTAL)
--exit-code int specify exit code when any security issues are found
-f, --format string format (table, json, sarif, template, cyclonedx, spdx, spdx-json, github, cosign-vuln) (default "table")
--ignore-policy string specify the Rego file path to evaluate each vulnerability
--ignorefile string specify .trivyignore file (default ".trivyignore")
--list-all-pkgs enabling the option will output all packages regardless of vulnerability
-o, --output string output file name
-s, --severity string severities of security issues to be displayed (comma separated) (default "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL")
-t, --template string output template
Cache Flags
--cache-backend string cache backend (e.g. redis://localhost:6379) (default "fs")
--cache-ttl duration cache TTL when using redis as cache backend
--clear-cache clear image caches without scanning
--redis-ca string redis ca file location, if using redis as cache backend
--redis-cert string redis certificate file location, if using redis as cache backend
--redis-key string redis key file location, if using redis as cache backend
DB Flags
--db-repository string OCI repository to retrieve trivy-db from (default "ghcr.io/aquasecurity/trivy-db")
--download-db-only download/update vulnerability database but don't run a scan
--no-progress suppress progress bar
--reset remove all caches and database
--skip-db-update skip updating vulnerability database
Vulnerability Flags
--ignore-unfixed display only fixed vulnerabilities
--vuln-type string comma-separated list of vulnerability types (os,library) (default "os,library")
Misconfiguration Flags
--config-data strings specify paths from which data for the Rego policies will be recursively loaded
--config-policy strings specify paths to the Rego policy files directory, applying config files
--file-patterns strings specify config file patterns, available with '--security-checks config'
--include-non-failures include successes and exceptions, available with '--security-checks config'
--policy-namespaces strings Rego namespaces
--trace enable more verbose trace output for custom queries
Secret Flags
--secret-config string specify a path to config file for secret scanning (default "trivy-secret.yaml")
License Flags
--ignored-licenses strings specify a list of license to ignore
--license-full eagerly look for licenses in source code headers and license files
Client/Server Flags
--custom-headers strings custom headers in client mode
--server string server address in client mode
--token string for authentication in client/server mode
--token-header string specify a header name for token in client/server mode (default "Trivy-Token")
Global Flags:
--cache-dir string cache directory (default "/Users/teppei/Library/Caches/trivy")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections when using TLS
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```

View File

@@ -1,103 +0,0 @@
# Image
```bash
Scan a container image
Usage:
trivy image [flags] IMAGE_NAME
Aliases:
image, i
Examples:
# Scan a container image
$ trivy image python:3.4-alpine
# Scan a container image from a tar archive
$ trivy image --input ruby-3.1.tar
# Filter by severities
$ trivy image --severity HIGH,CRITICAL alpine:3.15
# Ignore unfixed/unpatched vulnerabilities
$ trivy image --ignore-unfixed alpine:3.15
# Scan a container image in client mode
$ trivy image --server http://127.0.0.1:4954 alpine:latest
# Generate json result
$ trivy image --format json --output result.json alpine:3.15
# Generate a report in the CycloneDX format
$ trivy image --format cyclonedx --output result.cdx alpine:3.15
Scan Flags
--offline-scan do not issue API requests to identify dependencies
--security-checks string comma-separated list of what security issues to detect (vuln,config,secret) (default "vuln,secret")
--skip-dirs strings specify the directories where the traversal is skipped
--skip-files strings specify the file paths to skip traversal
Report Flags
--exit-code int specify exit code when any security issues are found
-f, --format string format (table, json, sarif, template, cyclonedx, spdx, spdx-json, github, cosign-vuln) (default "table")
--ignore-policy string specify the Rego file path to evaluate each vulnerability
--ignorefile string specify .trivyignore file (default ".trivyignore")
--list-all-pkgs enabling the option will output all packages regardless of vulnerability
-o, --output string output file name
-s, --severity string severities of security issues to be displayed (comma separated) (default "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL")
-t, --template string output template
Cache Flags
--cache-backend string cache backend (e.g. redis://localhost:6379) (default "fs")
--cache-ttl duration cache TTL when using redis as cache backend
--clear-cache clear image caches without scanning
--redis-ca string redis ca file location, if using redis as cache backend
--redis-cert string redis certificate file location, if using redis as cache backend
--redis-key string redis key file location, if using redis as cache backend
DB Flags
--db-repository string OCI repository to retrieve trivy-db from (default "ghcr.io/aquasecurity/trivy-db")
--download-db-only download/update vulnerability database but don't run a scan
--no-progress suppress progress bar
--reset remove all caches and database
--skip-db-update skip updating vulnerability database
Image Flags
--input string input file path instead of image name
--removed-pkgs detect vulnerabilities of removed packages (only for Alpine)
Vulnerability Flags
--ignore-unfixed display only fixed vulnerabilities
--vuln-type string comma-separated list of vulnerability types (os,library) (default "os,library")
Misconfiguration Flags
--config-data strings specify paths from which data for the Rego policies will be recursively loaded
--config-policy strings specify paths to the Rego policy files directory, applying config files
--file-patterns strings specify config file patterns, available with '--security-checks config'
--include-non-failures include successes and exceptions, available with '--security-checks config'
--policy-namespaces strings Rego namespaces
--trace enable more verbose trace output for custom queries
Secret Flags
--secret-config string specify a path to config file for secret scanning (default "trivy-secret.yaml")
License Flags
--ignored-licenses strings specify a list of license to ignore
--license-full eagerly look for licenses in source code headers and license files
Client/Server Flags
--custom-headers strings custom headers in client mode
--server string server address in client mode
--token string for authentication in client/server mode
--token-header string specify a header name for token in client/server mode (default "Trivy-Token")
Global Flags:
--cache-dir string cache directory (default "/Users/teppei/Library/Caches/trivy")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections when using TLS
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```

View File

@@ -1,50 +0,0 @@
Trivy has several sub commands, image, fs, repo, client and server.
``` bash
Scanner for vulnerabilities in container images, file systems, and Git repositories, as well as for configuration issues and hard-coded secrets
Usage:
trivy [global flags] command [flags] target
trivy [command]
Examples:
# Scan a container image
$ trivy image python:3.4-alpine
# Scan a container image from a tar archive
$ trivy image --input ruby-3.1.tar
# Scan local filesystem
$ trivy fs .
# Run in server mode
$ trivy server
Available Commands:
config Scan config files for misconfigurations
filesystem Scan local filesystem
help Help about any command
image Scan a container image
kubernetes scan kubernetes cluster
module Manage modules
plugin Manage plugins
repository Scan a remote repository
rootfs Scan rootfs
sbom Scan SBOM for vulnerabilities
server Server mode
version Print the version
Flags:
--cache-dir string cache directory (default "/Users/teppei/Library/Caches/trivy")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
-f, --format string version format (json)
--generate-default-config write the default config to trivy-default.yaml
-h, --help help for trivy
--insecure allow insecure server connections when using TLS
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
Use "trivy [command] --help" for more information about a command.
```

View File

@@ -1,34 +0,0 @@
# Plugin
```bash
Manage plugins
Usage:
trivy plugin [command]
Aliases:
plugin, p
Available Commands:
info Show information about the specified plugin
install Install a plugin
list List installed plugin
run Run a plugin on the fly
uninstall Uninstall a plugin
update Update an existing plugin
Flags:
-h, --help help for plugin
Global Flags:
--cache-dir string cache directory (default "/Users/teppei/Library/Caches/trivy")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections when using TLS
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
Use "trivy plugin [command] --help" for more information about a command.
```

View File

@@ -1,87 +0,0 @@
# Repository
```bash
Scan a remote repository
Usage:
trivy repository [flags] REPO_URL
Aliases:
repository, repo
Examples:
# Scan your remote git repository
$ trivy repo https://github.com/knqyf263/trivy-ci-test
Scan Flags
--offline-scan do not issue API requests to identify dependencies
--security-checks string comma-separated list of what security issues to detect (vuln,config,secret) (default "vuln,secret")
--skip-dirs strings specify the directories where the traversal is skipped
--skip-files strings specify the file paths to skip traversal
Report Flags
--dependency-tree show dependency origin tree (EXPERIMENTAL)
--exit-code int specify exit code when any security issues are found
-f, --format string format (table, json, sarif, template, cyclonedx, spdx, spdx-json, github, cosign-vuln) (default "table")
--ignore-policy string specify the Rego file path to evaluate each vulnerability
--ignorefile string specify .trivyignore file (default ".trivyignore")
--list-all-pkgs enabling the option will output all packages regardless of vulnerability
-o, --output string output file name
-s, --severity string severities of security issues to be displayed (comma separated) (default "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL")
-t, --template string output template
Cache Flags
--cache-backend string cache backend (e.g. redis://localhost:6379) (default "fs")
--cache-ttl duration cache TTL when using redis as cache backend
--clear-cache clear image caches without scanning
--redis-ca string redis ca file location, if using redis as cache backend
--redis-cert string redis certificate file location, if using redis as cache backend
--redis-key string redis key file location, if using redis as cache backend
DB Flags
--db-repository string OCI repository to retrieve trivy-db from (default "ghcr.io/aquasecurity/trivy-db")
--download-db-only download/update vulnerability database but don't run a scan
--no-progress suppress progress bar
--reset remove all caches and database
--skip-db-update skip updating vulnerability database
Vulnerability Flags
--ignore-unfixed display only fixed vulnerabilities
--vuln-type string comma-separated list of vulnerability types (os,library) (default "os,library")
Misconfiguration Flags
--config-data strings specify paths from which data for the Rego policies will be recursively loaded
--config-policy strings specify paths to the Rego policy files directory, applying config files
--file-patterns strings specify config file patterns, available with '--security-checks config'
--include-non-failures include successes and exceptions, available with '--security-checks config'
--policy-namespaces strings Rego namespaces
--trace enable more verbose trace output for custom queries
Secret Flags
--secret-config string specify a path to config file for secret scanning (default "trivy-secret.yaml")
License Flags
--ignored-licenses strings specify a list of license to ignore
--license-full eagerly look for licenses in source code headers and license files
Client/Server Flags
--custom-headers strings custom headers in client mode
--server string server address in client mode
--token string for authentication in client/server mode
--token-header string specify a header name for token in client/server mode (default "Trivy-Token")
Repository Flags
--branch string pass the branch name to be scanned
--commit string pass the commit hash to be scanned
--tag string pass the tag name to be scanned
Global Flags:
--cache-dir string cache directory (default "/Users/teppei/Library/Caches/trivy")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections when using TLS
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```

View File

@@ -1,94 +0,0 @@
# Rootfs
```bash
Scan rootfs
Usage:
trivy rootfs [flags] ROOTDIR
Examples:
# Scan unpacked filesystem
$ docker export $(docker create alpine:3.10.2) | tar -C /tmp/rootfs -xvf -
$ trivy rootfs /tmp/rootfs
# Scan from inside a container
$ docker run --rm -it alpine:3.11
/ # curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin
/ # trivy rootfs /
Scan Flags
--file-patterns strings specify config file patterns
--offline-scan do not issue API requests to identify dependencies
--rekor-url string [EXPERIMENTAL] address of rekor STL server (default "https://rekor.sigstore.dev")
--sbom-sources strings [EXPERIMENTAL] try to retrieve SBOM from the specified sources (rekor)
--security-checks strings comma-separated list of what security issues to detect (vuln,config,secret,license) (default [vuln,secret])
--skip-dirs strings specify the directories where the traversal is skipped
--skip-files strings specify the file paths to skip traversal
Report Flags
--dependency-tree show dependency origin tree (EXPERIMENTAL)
--exit-code int specify exit code when any security issues are found
-f, --format string format (table, json, sarif, template, cyclonedx, spdx, spdx-json, github, cosign-vuln) (default "table")
--ignore-policy string specify the Rego file path to evaluate each vulnerability
--ignorefile string specify .trivyignore file (default ".trivyignore")
--list-all-pkgs enabling the option will output all packages regardless of vulnerability
-o, --output string output file name
-s, --severity string severities of security issues to be displayed (comma separated) (default "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL")
-t, --template string output template
Cache Flags
--cache-backend string cache backend (e.g. redis://localhost:6379) (default "fs")
--cache-ttl duration cache TTL when using redis as cache backend
--clear-cache clear image caches without scanning
--redis-ca string redis ca file location, if using redis as cache backend
--redis-cert string redis certificate file location, if using redis as cache backend
--redis-key string redis key file location, if using redis as cache backend
DB Flags
--db-repository string OCI repository to retrieve trivy-db from (default "ghcr.io/aquasecurity/trivy-db")
--download-db-only download/update vulnerability database but don't run a scan
--no-progress suppress progress bar
--reset remove all caches and database
--skip-db-update skip updating vulnerability database
Vulnerability Flags
--ignore-unfixed display only fixed vulnerabilities
--vuln-type string comma-separated list of vulnerability types (os,library) (default "os,library")
Misconfiguration Flags
--helm-set strings specify Helm values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--helm-set-file strings specify Helm values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
--helm-set-string strings specify Helm string values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--helm-values strings specify paths to override the Helm values.yaml files
--include-non-failures include successes and exceptions, available with '--security-checks config'
--tf-vars strings specify paths to override the Terraform tfvars files
Secret Flags
--secret-config string specify a path to config file for secret scanning (default "trivy-secret.yaml")
License Flags
--ignored-licenses strings specify a list of license to ignore
--license-full eagerly look for licenses in source code headers and license files
Rego Flags
--config-data strings specify paths from which data for the Rego policies will be recursively loaded
--config-policy strings specify paths to the Rego policy files directory, applying config files
--policy-namespaces strings Rego namespaces
--trace enable more verbose trace output for custom queries
Client/Server Flags
--custom-headers strings custom headers in client mode
--server string server address in client mode
--token string for authentication in client/server mode
--token-header string specify a header name for token in client/server mode (default "Trivy-Token")
Global Flags:
--cache-dir string cache directory (default "/Users/teppei/Library/Caches/trivy")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections when using TLS
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```

View File

@@ -1,70 +0,0 @@
# SBOM
```bash
Scan SBOM for vulnerabilities
Usage:
trivy sbom [flags] SBOM_PATH
Examples:
# Scan CycloneDX and show the result in tables
$ trivy sbom /path/to/report.cdx
# Scan CycloneDX and generate a CycloneDX report
$ trivy sbom --format cyclonedx /path/to/report.cdx
# Scan CycloneDX-type attestation and show the result in tables
$ trivy sbom /path/to/report.cdx.intoto.jsonl
Scan Flags
--offline-scan do not issue API requests to identify dependencies
--security-checks string comma-separated list of what security issues to detect (vuln,config,secret) (default "vuln,secret")
--skip-dirs strings specify the directories where the traversal is skipped
--skip-files strings specify the file paths to skip traversal
Report Flags
--exit-code int specify exit code when any security issues are found
-f, --format string format (table, json, sarif, template, cyclonedx, spdx, spdx-json, github, cosign-vuln) (default "table")
--ignore-policy string specify the Rego file path to evaluate each vulnerability
--ignorefile string specify .trivyignore file (default ".trivyignore")
--list-all-pkgs enabling the option will output all packages regardless of vulnerability
-o, --output string output file name
-s, --severity string severities of security issues to be displayed (comma separated) (default "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL")
-t, --template string output template
Cache Flags
--cache-backend string cache backend (e.g. redis://localhost:6379) (default "fs")
--cache-ttl duration cache TTL when using redis as cache backend
--clear-cache clear image caches without scanning
--redis-ca string redis ca file location, if using redis as cache backend
--redis-cert string redis certificate file location, if using redis as cache backend
--redis-key string redis key file location, if using redis as cache backend
DB Flags
--db-repository string OCI repository to retrieve trivy-db from (default "ghcr.io/aquasecurity/trivy-db")
--download-db-only download/update vulnerability database but don't run a scan
--no-progress suppress progress bar
--reset remove all caches and database
--skip-db-update skip updating vulnerability database
Vulnerability Flags
--ignore-unfixed display only fixed vulnerabilities
--vuln-type string comma-separated list of vulnerability types (os,library) (default "os,library")
Client/Server Flags
--custom-headers strings custom headers in client mode
--server string server address in client mode
--token string for authentication in client/server mode
--token-header string specify a header name for token in client/server mode (default "Trivy-Token")
Global Flags:
--cache-dir string cache directory (default "/Users/teppei/Library/Caches/trivy")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections when using TLS
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```

View File

@@ -1,49 +0,0 @@
# Server
```bash
Server mode
Usage:
trivy server [flags]
Aliases:
server, s
Examples:
# Run a server
$ trivy server
# Listen on 0.0.0.0:10000
$ trivy server --listen 0.0.0.0:10000
Cache Flags
--cache-backend string cache backend (e.g. redis://localhost:6379) (default "fs")
--cache-ttl duration cache TTL when using redis as cache backend
--clear-cache clear image caches without scanning
--redis-ca string redis ca file location, if using redis as cache backend
--redis-cert string redis certificate file location, if using redis as cache backend
--redis-key string redis key file location, if using redis as cache backend
DB Flags
--db-repository string OCI repository to retrieve trivy-db from (default "ghcr.io/aquasecurity/trivy-db")
--download-db-only download/update vulnerability database but don't run a scan
--no-progress suppress progress bar
--reset remove all caches and database
--skip-db-update skip updating vulnerability database
Client/Server Flags
--listen string listen address in server mode (default "localhost:4954")
--token string for authentication in client/server mode
--token-header string specify a header name for token in client/server mode (default "Trivy-Token")
Global Flags:
--cache-dir string cache directory (default "/Users/teppei/Library/Caches/trivy")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections when using TLS
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```

View File

@@ -0,0 +1,60 @@
## trivy
Unified security scanner
### Synopsis
Scanner for vulnerabilities in container images, file systems, and Git repositories, as well as for configuration issues and hard-coded secrets
```
trivy [global flags] command [flags] target
```
### Examples
```
# Scan a container image
$ trivy image python:3.4-alpine
# Scan a container image from a tar archive
$ trivy image --input ruby-3.1.tar
# Scan local filesystem
$ trivy fs .
# Run in server mode
$ trivy server
```
### Options
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
-f, --format string version format (json)
--generate-default-config write the default config to trivy-default.yaml
-h, --help help for trivy
--insecure allow insecure server connections
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy aws](trivy_aws.md) - [EXPERIMENTAL] Scan AWS account
* [trivy config](trivy_config.md) - Scan config files for misconfigurations
* [trivy convert](trivy_convert.md) - Convert Trivy JSON report into a different format
* [trivy filesystem](trivy_filesystem.md) - Scan local filesystem
* [trivy image](trivy_image.md) - Scan a container image
* [trivy kubernetes](trivy_kubernetes.md) - [EXPERIMENTAL] Scan kubernetes cluster
* [trivy module](trivy_module.md) - Manage modules
* [trivy plugin](trivy_plugin.md) - Manage plugins
* [trivy repository](trivy_repository.md) - Scan a remote repository
* [trivy rootfs](trivy_rootfs.md) - Scan rootfs
* [trivy sbom](trivy_sbom.md) - Scan SBOM for vulnerabilities
* [trivy server](trivy_server.md) - Server mode
* [trivy version](trivy_version.md) - Print the version
* [trivy vm](trivy_vm.md) - [EXPERIMENTAL] Scan a virtual machine image

View File

@@ -0,0 +1,118 @@
## trivy aws
[EXPERIMENTAL] Scan AWS account
### Synopsis
Scan an AWS account for misconfigurations. Trivy uses the same authentication methods as the AWS CLI. See https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html
The following services are supported:
- accessanalyzer
- api-gateway
- athena
- cloudfront
- cloudtrail
- cloudwatch
- codebuild
- documentdb
- dynamodb
- ec2
- ecr
- ecs
- efs
- eks
- elasticache
- elasticsearch
- elb
- emr
- iam
- kinesis
- kms
- lambda
- mq
- msk
- neptune
- rds
- redshift
- s3
- sns
- sqs
- ssm
- workspaces
```
trivy aws [flags]
```
### Examples
```
# basic scanning
$ trivy aws --region us-east-1
# limit scan to a single service:
$ trivy aws --region us-east-1 --service s3
# limit scan to multiple services:
$ trivy aws --region us-east-1 --service s3 --service ec2
# force refresh of cache for fresh results
$ trivy aws --region us-east-1 --update-cache
```
### Options
```
--account string The AWS account to scan. It's useful to specify this when reviewing cached results for multiple accounts.
--arn string The AWS ARN to show results for. Useful to filter results once a scan is cached.
--compliance string compliance report to generate (aws-cis-1.2, aws-cis-1.4)
--config-data strings specify paths from which data for the Rego policies will be recursively loaded
--config-policy strings specify paths to the Rego policy files directory, applying config files
--dependency-tree [EXPERIMENTAL] show dependency origin tree of vulnerable packages
--endpoint string AWS Endpoint override
--exit-code int specify exit code when any security issues are found
-f, --format string format (table, json, template, sarif, cyclonedx, spdx, spdx-json, github, cosign-vuln) (default "table")
--helm-set strings specify Helm values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--helm-set-file strings specify Helm values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
--helm-set-string strings specify Helm string values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--helm-values strings specify paths to override the Helm values.yaml files
-h, --help help for aws
--ignore-policy string specify the Rego file path to evaluate each vulnerability
--ignorefile string specify .trivyignore file (default ".trivyignore")
--include-non-failures include successes and exceptions, available with '--scanners config'
--list-all-pkgs enabling the option will output all packages regardless of vulnerability
--max-cache-age duration The maximum age of the cloud cache. Cached data will be requeried from the cloud provider if it is older than this. (default 24h0m0s)
-o, --output string output file name
--policy-namespaces strings Rego namespaces
--region string AWS Region to scan
--report string specify a report format for the output. (all,summary) (default "all")
--reset-policy-bundle remove policy bundle
--service strings Only scan AWS Service(s) specified with this flag. Can specify multiple services using --service A --service B etc.
-s, --severity string severities of security issues to be displayed (comma separated) (default "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL")
--skip-policy-update skip fetching rego policy updates
--skip-service strings Skip selected AWS Service(s) specified with this flag. Can specify multiple services using --skip-service A --skip-service B etc.
-t, --template string output template
--tf-vars strings specify paths to override the Terraform tfvars files
--trace enable more verbose trace output for custom queries
--update-cache Update the cache for the applicable cloud provider instead of using cached results.
```
### Options inherited from parent commands
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy](trivy.md) - Unified security scanner

View File

@@ -0,0 +1,67 @@
## trivy config
Scan config files for misconfigurations
```
trivy config [flags] DIR
```
### Options
```
--cache-backend string cache backend (e.g. redis://localhost:6379) (default "fs")
--cache-ttl duration cache TTL when using redis as cache backend
--clear-cache clear image caches without scanning
--compliance string compliance report to generate
--config-data strings specify paths from which data for the Rego policies will be recursively loaded
--config-policy strings specify paths to the Rego policy files directory, applying config files
--enable-modules strings [EXPERIMENTAL] module names to enable
--exit-code int specify exit code when any security issues are found
--file-patterns strings specify config file patterns
-f, --format string format (table, json, template, sarif, cyclonedx, spdx, spdx-json, github, cosign-vuln) (default "table")
--helm-set strings specify Helm values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--helm-set-file strings specify Helm values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
--helm-set-string strings specify Helm string values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--helm-values strings specify paths to override the Helm values.yaml files
-h, --help help for config
--ignorefile string specify .trivyignore file (default ".trivyignore")
--include-non-failures include successes and exceptions, available with '--scanners config'
--k8s-version string specify k8s version to validate outdated api by it (example: 1.21.0)
--module-dir string specify directory to the wasm modules that will be loaded (default "$HOME/.trivy/modules")
-o, --output string output file name
--password strings password. Comma-separated passwords allowed. TRIVY_PASSWORD should be used for security reasons.
--policy-namespaces strings Rego namespaces
--redis-ca string redis ca file location, if using redis as cache backend
--redis-cert string redis certificate file location, if using redis as cache backend
--redis-key string redis key file location, if using redis as cache backend
--redis-tls enable redis TLS with public certificates, if using redis as cache backend
--registry-token string registry token
--report string specify a compliance report format for the output. (all,summary) (default "all")
--reset-policy-bundle remove policy bundle
-s, --severity string severities of security issues to be displayed (comma separated) (default "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL")
--skip-dirs strings specify the directories where the traversal is skipped
--skip-files strings specify the file paths to skip traversal
--skip-policy-update skip fetching rego policy updates
-t, --template string output template
--tf-vars strings specify paths to override the Terraform tfvars files
--trace enable more verbose trace output for custom queries
--username strings username. Comma-separated usernames allowed.
```
### Options inherited from parent commands
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy](trivy.md) - Unified security scanner

View File

@@ -0,0 +1,52 @@
## trivy convert
Convert Trivy JSON report into a different format
```
trivy convert [flags] RESULT_JSON
```
### Examples
```
# report conversion
$ trivy image --format json --output result.json --list-all-pkgs debian:11
$ trivy convert --format cyclonedx --output result.cdx result.json
```
### Options
```
--compliance string compliance report to generate
--dependency-tree [EXPERIMENTAL] show dependency origin tree of vulnerable packages
--exit-code int specify exit code when any security issues are found
--exit-on-eol int exit with the specified code when the OS reaches end of service/life
-f, --format string format (table, json, template, sarif, cyclonedx, spdx, spdx-json, github, cosign-vuln) (default "table")
-h, --help help for convert
--ignore-policy string specify the Rego file path to evaluate each vulnerability
--ignorefile string specify .trivyignore file (default ".trivyignore")
--list-all-pkgs enabling the option will output all packages regardless of vulnerability
-o, --output string output file name
--report string specify a report format for the output. (all,summary) (default "all")
-s, --severity string severities of security issues to be displayed (comma separated) (default "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL")
-t, --template string output template
```
### Options inherited from parent commands
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy](trivy.md) - Unified security scanner

View File

@@ -0,0 +1,103 @@
## trivy filesystem
Scan local filesystem
```
trivy filesystem [flags] PATH
```
### Examples
```
# Scan a local project including language-specific files
$ trivy fs /path/to/your_project
# Scan a single file
$ trivy fs ./trivy-ci-test/Pipfile.lock
```
### Options
```
--cache-backend string cache backend (e.g. redis://localhost:6379) (default "fs")
--cache-ttl duration cache TTL when using redis as cache backend
--clear-cache clear image caches without scanning
--compliance string compliance report to generate
--config-data strings specify paths from which data for the Rego policies will be recursively loaded
--config-policy strings specify paths to the Rego policy files directory, applying config files
--custom-headers strings custom headers in client mode
--db-repository string OCI repository to retrieve trivy-db from (default "ghcr.io/aquasecurity/trivy-db")
--dependency-tree [EXPERIMENTAL] show dependency origin tree of vulnerable packages
--download-db-only download/update vulnerability database but don't run a scan
--download-java-db-only download/update Java index database but don't run a scan
--enable-modules strings [EXPERIMENTAL] module names to enable
--exit-code int specify exit code when any security issues are found
--file-patterns strings specify config file patterns
-f, --format string format (table, json, template, sarif, cyclonedx, spdx, spdx-json, github, cosign-vuln) (default "table")
--helm-set strings specify Helm values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--helm-set-file strings specify Helm values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
--helm-set-string strings specify Helm string values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--helm-values strings specify paths to override the Helm values.yaml files
-h, --help help for filesystem
--ignore-policy string specify the Rego file path to evaluate each vulnerability
--ignore-unfixed display only fixed vulnerabilities
--ignored-licenses strings specify a list of license to ignore
--ignorefile string specify .trivyignore file (default ".trivyignore")
--include-dev-deps include development dependencies in the report (supported: npm)
--include-non-failures include successes and exceptions, available with '--scanners config'
--java-db-repository string OCI repository to retrieve trivy-java-db from (default "ghcr.io/aquasecurity/trivy-java-db")
--license-confidence-level float specify license classifier's confidence level (default 0.9)
--license-full eagerly look for licenses in source code headers and license files
--list-all-pkgs enabling the option will output all packages regardless of vulnerability
--module-dir string specify directory to the wasm modules that will be loaded (default "$HOME/.trivy/modules")
--no-progress suppress progress bar
--offline-scan do not issue API requests to identify dependencies
-o, --output string output file name
--password strings password. Comma-separated passwords allowed. TRIVY_PASSWORD should be used for security reasons.
--policy-namespaces strings Rego namespaces
--redis-ca string redis ca file location, if using redis as cache backend
--redis-cert string redis certificate file location, if using redis as cache backend
--redis-key string redis key file location, if using redis as cache backend
--redis-tls enable redis TLS with public certificates, if using redis as cache backend
--registry-token string registry token
--rekor-url string [EXPERIMENTAL] address of rekor STL server (default "https://rekor.sigstore.dev")
--report string specify a compliance report format for the output. (all,summary) (default "all")
--reset remove all caches and database
--reset-policy-bundle remove policy bundle
--sbom-sources strings [EXPERIMENTAL] try to retrieve SBOM from the specified sources (oci,rekor)
--scanners strings comma-separated list of what security issues to detect (vuln,config,secret,license) (default [vuln,secret])
--secret-config string specify a path to config file for secret scanning (default "trivy-secret.yaml")
--server string server address in client mode
-s, --severity string severities of security issues to be displayed (comma separated) (default "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL")
--skip-db-update skip updating vulnerability database
--skip-dirs strings specify the directories where the traversal is skipped
--skip-files strings specify the file paths to skip traversal
--skip-java-db-update skip updating Java index database
--skip-policy-update skip fetching rego policy updates
--slow scan over time with lower CPU and memory utilization
-t, --template string output template
--tf-vars strings specify paths to override the Terraform tfvars files
--token string for authentication in client/server mode
--token-header string specify a header name for token in client/server mode (default "Trivy-Token")
--trace enable more verbose trace output for custom queries
--username strings username. Comma-separated usernames allowed.
--vuln-type strings comma-separated list of vulnerability types (os,library) (default [os,library])
```
### Options inherited from parent commands
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy](trivy.md) - Unified security scanner

View File

@@ -0,0 +1,124 @@
## trivy image
Scan a container image
```
trivy image [flags] IMAGE_NAME
```
### Examples
```
# Scan a container image
$ trivy image python:3.4-alpine
# Scan a container image from a tar archive
$ trivy image --input ruby-3.1.tar
# Filter by severities
$ trivy image --severity HIGH,CRITICAL alpine:3.15
# Ignore unfixed/unpatched vulnerabilities
$ trivy image --ignore-unfixed alpine:3.15
# Scan a container image in client mode
$ trivy image --server http://127.0.0.1:4954 alpine:latest
# Generate json result
$ trivy image --format json --output result.json alpine:3.15
# Generate a report in the CycloneDX format
$ trivy image --format cyclonedx --output result.cdx alpine:3.15
```
### Options
```
--cache-backend string cache backend (e.g. redis://localhost:6379) (default "fs")
--cache-ttl duration cache TTL when using redis as cache backend
--clear-cache clear image caches without scanning
--compliance string compliance report to generate (docker-cis)
--config-data strings specify paths from which data for the Rego policies will be recursively loaded
--config-policy strings specify paths to the Rego policy files directory, applying config files
--custom-headers strings custom headers in client mode
--db-repository string OCI repository to retrieve trivy-db from (default "ghcr.io/aquasecurity/trivy-db")
--dependency-tree [EXPERIMENTAL] show dependency origin tree of vulnerable packages
--docker-host string unix domain socket path to use for docker scanning
--download-db-only download/update vulnerability database but don't run a scan
--download-java-db-only download/update Java index database but don't run a scan
--enable-modules strings [EXPERIMENTAL] module names to enable
--exit-code int specify exit code when any security issues are found
--exit-on-eol int exit with the specified code when the OS reaches end of service/life
--file-patterns strings specify config file patterns
-f, --format string format (table, json, template, sarif, cyclonedx, spdx, spdx-json, github, cosign-vuln) (default "table")
--helm-set strings specify Helm values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--helm-set-file strings specify Helm values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
--helm-set-string strings specify Helm string values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--helm-values strings specify paths to override the Helm values.yaml files
-h, --help help for image
--ignore-policy string specify the Rego file path to evaluate each vulnerability
--ignore-unfixed display only fixed vulnerabilities
--ignored-licenses strings specify a list of license to ignore
--ignorefile string specify .trivyignore file (default ".trivyignore")
--image-config-scanners string comma-separated list of what security issues to detect on container image configurations (config,secret)
--image-src strings image source(s) to use, in priority order (docker,containerd,podman,remote) (default [docker,containerd,podman,remote])
--include-non-failures include successes and exceptions, available with '--scanners config'
--input string input file path instead of image name
--java-db-repository string OCI repository to retrieve trivy-java-db from (default "ghcr.io/aquasecurity/trivy-java-db")
--license-confidence-level float specify license classifier's confidence level (default 0.9)
--license-full eagerly look for licenses in source code headers and license files
--list-all-pkgs enabling the option will output all packages regardless of vulnerability
--module-dir string specify directory to the wasm modules that will be loaded (default "$HOME/.trivy/modules")
--no-progress suppress progress bar
--offline-scan do not issue API requests to identify dependencies
-o, --output string output file name
--password strings password. Comma-separated passwords allowed. TRIVY_PASSWORD should be used for security reasons.
--platform string set platform in the form os/arch if image is multi-platform capable
--policy-namespaces strings Rego namespaces
--redis-ca string redis ca file location, if using redis as cache backend
--redis-cert string redis certificate file location, if using redis as cache backend
--redis-key string redis key file location, if using redis as cache backend
--redis-tls enable redis TLS with public certificates, if using redis as cache backend
--registry-token string registry token
--rekor-url string [EXPERIMENTAL] address of rekor STL server (default "https://rekor.sigstore.dev")
--removed-pkgs detect vulnerabilities of removed packages (only for Alpine)
--report string specify a format for the compliance report. (default "summary")
--reset remove all caches and database
--reset-policy-bundle remove policy bundle
--sbom-sources strings [EXPERIMENTAL] try to retrieve SBOM from the specified sources (oci,rekor)
--scanners strings comma-separated list of what security issues to detect (vuln,config,secret,license) (default [vuln,secret])
--secret-config string specify a path to config file for secret scanning (default "trivy-secret.yaml")
--server string server address in client mode
-s, --severity string severities of security issues to be displayed (comma separated) (default "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL")
--skip-db-update skip updating vulnerability database
--skip-dirs strings specify the directories where the traversal is skipped
--skip-files strings specify the file paths to skip traversal
--skip-java-db-update skip updating Java index database
--skip-policy-update skip fetching rego policy updates
--slow scan over time with lower CPU and memory utilization
-t, --template string output template
--tf-vars strings specify paths to override the Terraform tfvars files
--token string for authentication in client/server mode
--token-header string specify a header name for token in client/server mode (default "Trivy-Token")
--trace enable more verbose trace output for custom queries
--username strings username. Comma-separated usernames allowed.
--vuln-type strings comma-separated list of vulnerability types (os,library) (default [os,library])
```
### Options inherited from parent commands
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy](trivy.md) - Unified security scanner

View File

@@ -0,0 +1,112 @@
## trivy kubernetes
[EXPERIMENTAL] Scan kubernetes cluster
```
trivy kubernetes [flags] { cluster | all | specific resources like kubectl. eg: pods, pod/NAME }
```
### Examples
```
# cluster scanning
$ trivy k8s --report summary cluster
# namespace scanning:
$ trivy k8s -n kube-system --report summary all
# resources scanning:
$ trivy k8s --report=summary deploy
$ trivy k8s --namespace=kube-system --report=summary deploy,configmaps
# resource scanning:
$ trivy k8s deployment/orion
```
### Options
```
-A, --all-namespaces fetch resources from all cluster namespaces
--cache-backend string cache backend (e.g. redis://localhost:6379) (default "fs")
--cache-ttl duration cache TTL when using redis as cache backend
--clear-cache clear image caches without scanning
--compliance string compliance report to generate (k8s-nsa,k8s-cis, k8s-pss-baseline, k8s-pss-restricted)
--components strings specify which components to scan (default [workload,infra])
--config-data strings specify paths from which data for the Rego policies will be recursively loaded
--config-policy strings specify paths to the Rego policy files directory, applying config files
--context string specify a context to scan
--db-repository string OCI repository to retrieve trivy-db from (default "ghcr.io/aquasecurity/trivy-db")
--dependency-tree [EXPERIMENTAL] show dependency origin tree of vulnerable packages
--download-db-only download/update vulnerability database but don't run a scan
--download-java-db-only download/update Java index database but don't run a scan
--exclude-nodes strings indicate the node labels that the node-collector job should exclude from scanning (example: kubernetes.io/arch:arm64,team:dev)
--exit-code int specify exit code when any security issues are found
--file-patterns strings specify config file patterns
-f, --format string format (table, json, cyclonedx) (default "table")
--helm-set strings specify Helm values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--helm-set-file strings specify Helm values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
--helm-set-string strings specify Helm string values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--helm-values strings specify paths to override the Helm values.yaml files
-h, --help help for kubernetes
--ignore-policy string specify the Rego file path to evaluate each vulnerability
--ignore-unfixed display only fixed vulnerabilities
--ignorefile string specify .trivyignore file (default ".trivyignore")
--image-src strings image source(s) to use, in priority order (docker,containerd,podman,remote) (default [docker,containerd,podman,remote])
--include-non-failures include successes and exceptions, available with '--scanners config'
--java-db-repository string OCI repository to retrieve trivy-java-db from (default "ghcr.io/aquasecurity/trivy-java-db")
--k8s-version string specify k8s version to validate outdated api by it (example: 1.21.0)
--kubeconfig string specify the kubeconfig file path to use
--list-all-pkgs enabling the option will output all packages regardless of vulnerability
-n, --namespace string specify a namespace to scan
--no-progress suppress progress bar
--node-collector-namespace string specify the namespace in which the node-collector job should be deployed (default "trivy-temp")
--offline-scan do not issue API requests to identify dependencies
-o, --output string output file name
--parallel int number (between 1-20) of goroutines enabled for parallel scanning (default 5)
--password strings password. Comma-separated passwords allowed. TRIVY_PASSWORD should be used for security reasons.
--policy-namespaces strings Rego namespaces
--redis-ca string redis ca file location, if using redis as cache backend
--redis-cert string redis certificate file location, if using redis as cache backend
--redis-key string redis key file location, if using redis as cache backend
--redis-tls enable redis TLS with public certificates, if using redis as cache backend
--registry-token string registry token
--rekor-url string [EXPERIMENTAL] address of rekor STL server (default "https://rekor.sigstore.dev")
--report string specify a report format for the output. (all,summary) (default "all")
--reset remove all caches and database
--reset-policy-bundle remove policy bundle
--sbom-sources strings [EXPERIMENTAL] try to retrieve SBOM from the specified sources (oci,rekor)
--scanners string comma-separated list of what security issues to detect (vuln,config,secret,license) (default "vuln,config,secret,rbac")
--secret-config string specify a path to config file for secret scanning (default "trivy-secret.yaml")
-s, --severity string severities of security issues to be displayed (comma separated) (default "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL")
--skip-db-update skip updating vulnerability database
--skip-dirs strings specify the directories where the traversal is skipped
--skip-files strings specify the file paths to skip traversal
--skip-java-db-update skip updating Java index database
--skip-policy-update skip fetching rego policy updates
--slow scan over time with lower CPU and memory utilization
-t, --template string output template
--tf-vars strings specify paths to override the Terraform tfvars files
--tolerations strings specify node-collector job tolerations (example: key1=value1:NoExecute,key2=value2:NoSchedule)
--trace enable more verbose trace output for custom queries
--username strings username. Comma-separated usernames allowed.
--vuln-type strings comma-separated list of vulnerability types (os,library) (default [os,library])
```
### Options inherited from parent commands
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy](trivy.md) - Unified security scanner

View File

@@ -0,0 +1,31 @@
## trivy module
Manage modules
### Options
```
--enable-modules strings [EXPERIMENTAL] module names to enable
-h, --help help for module
--module-dir string specify directory to the wasm modules that will be loaded (default "$HOME/.trivy/modules")
```
### Options inherited from parent commands
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy](trivy.md) - Unified security scanner
* [trivy module install](trivy_module_install.md) - Install a module
* [trivy module uninstall](trivy_module_uninstall.md) - Uninstall a module

View File

@@ -0,0 +1,33 @@
## trivy module install
Install a module
```
trivy module install [flags] REPOSITORY
```
### Options
```
-h, --help help for install
```
### Options inherited from parent commands
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--enable-modules strings [EXPERIMENTAL] module names to enable
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections
--module-dir string specify directory to the wasm modules that will be loaded (default "$HOME/.trivy/modules")
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy module](trivy_module.md) - Manage modules

View File

@@ -0,0 +1,33 @@
## trivy module uninstall
Uninstall a module
```
trivy module uninstall [flags] REPOSITORY
```
### Options
```
-h, --help help for uninstall
```
### Options inherited from parent commands
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--enable-modules strings [EXPERIMENTAL] module names to enable
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections
--module-dir string specify directory to the wasm modules that will be loaded (default "$HOME/.trivy/modules")
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy module](trivy_module.md) - Manage modules

View File

@@ -0,0 +1,33 @@
## trivy plugin
Manage plugins
### Options
```
-h, --help help for plugin
```
### Options inherited from parent commands
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy](trivy.md) - Unified security scanner
* [trivy plugin info](trivy_plugin_info.md) - Show information about the specified plugin
* [trivy plugin install](trivy_plugin_install.md) - Install a plugin
* [trivy plugin list](trivy_plugin_list.md) - List installed plugin
* [trivy plugin run](trivy_plugin_run.md) - Run a plugin on the fly
* [trivy plugin uninstall](trivy_plugin_uninstall.md) - Uninstall a plugin
* [trivy plugin update](trivy_plugin_update.md) - Update an existing plugin

View File

@@ -1,30 +1,31 @@
# Module
## trivy plugin info
```bash
Manage modules
Show information about the specified plugin
Usage:
trivy module [command]
```
trivy plugin info PLUGIN_NAME
```
Aliases:
module, m
### Options
Available Commands:
install Install a module
uninstall Uninstall a module
```
-h, --help help for info
```
Flags:
-h, --help help for module
### Options inherited from parent commands
Global Flags:
--cache-dir string cache directory (default "/Users/teppei/Library/Caches/trivy")
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections when using TLS
--insecure allow insecure server connections
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy plugin](trivy_plugin.md) - Manage plugins
Use "trivy module [command] --help" for more information about a command.
```

View File

@@ -0,0 +1,31 @@
## trivy plugin install
Install a plugin
```
trivy plugin install URL | FILE_PATH
```
### Options
```
-h, --help help for install
```
### Options inherited from parent commands
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy plugin](trivy_plugin.md) - Manage plugins

View File

@@ -0,0 +1,31 @@
## trivy plugin list
List installed plugin
```
trivy plugin list
```
### Options
```
-h, --help help for list
```
### Options inherited from parent commands
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy plugin](trivy_plugin.md) - Manage plugins

View File

@@ -0,0 +1,31 @@
## trivy plugin run
Run a plugin on the fly
```
trivy plugin run URL | FILE_PATH
```
### Options
```
-h, --help help for run
```
### Options inherited from parent commands
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy plugin](trivy_plugin.md) - Manage plugins

View File

@@ -0,0 +1,31 @@
## trivy plugin uninstall
Uninstall a plugin
```
trivy plugin uninstall PLUGIN_NAME
```
### Options
```
-h, --help help for uninstall
```
### Options inherited from parent commands
```
--cache-dir string cache directory (default "/path/to/cache")
-c, --config string config path (default "trivy.yaml")
-d, --debug debug mode
--generate-default-config write the default config to trivy-default.yaml
--insecure allow insecure server connections
-q, --quiet suppress progress bar and log output
--timeout duration timeout (default 5m0s)
-v, --version show version
```
### SEE ALSO
* [trivy plugin](trivy_plugin.md) - Manage plugins

Some files were not shown because too many files have changed in this diff Show More