You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+35-1Lines changed: 35 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,7 @@ EPS DEV CONTAINERS
10
10
-[Using local or pull request images in Visual Studio Code and GitHub Actions](#using-local-or-pull-request-images-in-visual-studio-code-and-github-actions)
-[Pull requests and merge to main process](#pull-requests-and-merge-to-main-process)
@@ -177,7 +178,18 @@ Check targets (`check.mk`)
177
178
-`actionlint` - runs actionlint against GitHub Actions
178
179
-`secret-scan` - runs git-secrets (including scanning history) against the repository
179
180
-`guard-<ENVIRONMENT_VARIABLE>` - checks if an environment variable is set and errors if it is not
180
-
-`zizmor` runs [zizmor](https://github.com/zizmorcore/zizmor) in the local directory to check github workflows and actions
181
+
-`zizmor` - runs [zizmor](https://github.com/zizmorcore/zizmor) in the local directory to check github workflows and actions
182
+
-`syft-generate-sbom` - uses syft to generate an sbom in cyclonedx-json format. This *does not* include dev dependencies. Outputs file to .sbom/sbom.cdx.json.
183
+
-`syft-generate-sbom-dev-dependencies`- uses syft to generate an sbom in cyclonedx-json format. This *DOES* include dev dependencies. Outputs file to .sbom/sbom.dev.cdx.json.
184
+
-`grype-scan` - Uses grype to scan for vulnerabilities. Uses an sbom generated by `syft-generate-sbom` target to find dependencies.
185
+
-`grype-scan-dev-dependencies` - Uses grype to scan for vulnerabilities. Uses an sbom generated by `syft-generate-sbom-dev-dependencies` target to find dependencies.
186
+
-`grype-scan-json` - Uses grype to scan for vulnerabilities. Uses an sbom generated by `syft-generate-sbom` target to find dependencies. Outputs file to .sbom/grype_analysis.json
187
+
-`grype-scan-json-dev-dependencies` - Uses grype to scan for vulnerabilities. Uses an sbom generated by `syft-generate-sbom-dev-dependencies` target to find dependencies. Outputs file to .sbom/grype_analysis.dev.json
188
+
-`grype-scan-local` - Uses grype to scan local folders for vulnerabilities. This is installed as a pre-commit hook in each project.
189
+
-`grant-scan` - Uses scan to check for possible incompatible licenses. Uses an sbom generated by `syft-generate-sbom` target to find dependencies.
190
+
-`grant-scan-dev-dependencies` - Uses scan to check for possible incompatible licenses. Uses an sbom generated by `syft-generate-sbom-dev-dependencies` target to find dependencies.
191
+
-`grant-scan-json` - Uses scan to check for possible incompatible licenses. Uses an sbom generated by `syft-generate-sbom` target to find dependencies. Outputs file to .sbom/grant_analysis.json
192
+
-`grant-scan-json-dev-dependencies` - Uses scan to check for possible incompatible licenses. Uses an sbom generated by `syft-generate-sbom-dev-dependencies` target to find dependencies. Outputs file to .sbom/grant_analysis.dev.json
181
193
182
194
Credentials targets (`credentials.mk`)
183
195
-`aws-configure` - configures an AWS SSO session
@@ -195,6 +207,28 @@ These are all changed to not run anything and will be removed in a future releas
195
207
-`trivy-scan-java`
196
208
-`trivy-scan-docker`
197
209
210
+
# Anchore tools (syft, grype, grant)
211
+
We use tools from [anchore](https://oss.anchore.com/docs/projects/) for various analysis. The tools we use are
212
+
- syft to generate SBOM
213
+
- grype to scan for vulnerabilities
214
+
- grant to check for incompatible licenses
215
+
216
+
## syft
217
+
This is used to generate SBOM (software bill of materials) for dependencies.
218
+
There are makefile targets defined that run with most common settings we need. There should be no need to modify any configuration files for use
219
+
220
+
# grype
221
+
This scans for known vulnerabilities.
222
+
There are several makefile targets defined that can be used to run this - either outputting to console, or to a json file. It can also run for just runtime dependencies or include dev dependencies.
223
+
You may need to create a `.grype.yaml` with known accepted vulnerabilities in a project while we are waiting for downstream dependencies to update. Details of how to do this are documented at https://oss.anchore.com/docs/guides/vulnerability/filter-results/#ignore-specific-vulnerabilities-or-packages
224
+
225
+
# grant
226
+
This scans for incompatible licenses in dependencies.
227
+
There are several makefile targets defined that can be used to run this - either outputting to console, or to a json file. It can also run for just runtime dependencies or include dev dependencies.
228
+
There is a default .grant.yaml file placed in home directories of devcontainers that lists acceptable licenses and known packages where the scanner incorrectly identified a license for a dependency.
229
+
If you need to modify this for a specific project, you must copy this to the root folder of the project and then modify it - eg `cp $HOME/.grant.yaml .`.
230
+
See https://oss.anchore.com/docs/guides/license/policies/ for details of what to put in the file.
231
+
198
232
# Project structure
199
233
We have 5 types of dev container. These are defined under src
0 commit comments