@@ -20,7 +20,7 @@ vulnerability report.
2020
2121** IMPORTANT:**
2222<br >Currently, Dependency Analytics only supports projects that use Maven (` mvn ` ), Node (` npm ` ), Golang (` go mod ` ) and
23- Python (` pip ` ) ecosystems.
23+ Python (` pip ` ) ecosystems, and base images in ` Dockerfile ` .
2424In future releases, Red Hat plans to support other programming languages.
2525
2626##### Table of Contents
@@ -45,6 +45,10 @@ In future releases, Red Hat plans to support other programming languages.
4545- For Golang projects, analyzing a ` go.mod ` file, you must have the ` go ` binary in your IDE's ` PATH ` environment.
4646- For Python projects, analyzing a ` requirements.txt ` file, you must have the ` python3 ` and ` pip3 ` binaries in your
4747 IDE's ` PATH ` environment.
48+ - For base images, analyzing a ` Dockerfile ` , you must have
49+ the [ ` syft ` ] ( https://github.com/anchore/syft?tab=readme-ov-file#installation )
50+ and [ ` skopeo ` ] ( https://github.com/containers/skopeo/blob/main/install.md ) binaries in your IDE's ` PATH `
51+ environment.
4852
4953** Procedure**
5054
@@ -77,36 +81,57 @@ according to your preferences.
7781- ** Maven** :
7882 <br >Set the full path of the Maven executable, which allows Exhort to locate and execute the ` mvn ` command to resolve
7983 dependencies for Maven projects.
80- Path of the ` JAVA_HOME ` directory is required by the ` mvn ` executable.
81- If the paths are not provided, your IDE's ` PATH ` and ` JAVA_HONE ` environments will be used to locate the executables.
84+ <br >Path of the ` JAVA_HOME ` directory is required by the ` mvn ` executable.
85+ <br >If the paths are not provided, your IDE's ` PATH ` and ` JAVA_HONE ` environments will be used to locate the
86+ executables.
8287
8388- ** Node** :
8489 <br >Set the full path of the Node executable, which allows Exhort to locate and execute the ` npm ` command to resolve
8590 dependencies for Node projects.
86- Path of the directory containing the ` node ` executable is required by the ` npm ` executable.
87- If the paths are not provided, your IDE's ` PATH ` environment will be used to locate the executables.
91+ < br > Path of the directory containing the ` node ` executable is required by the ` npm ` executable.
92+ < br > If the paths are not provided, your IDE's ` PATH ` environment will be used to locate the executables.
8893
8994- ** Golang** :
9095 <br >Set the full path of the Go executable, which allows Exhort to locate and execute the ` go ` command to resolve
9196 dependencies for Go projects.
92- If the path is not provided, your IDE's ` PATH ` environment will be used to locate the executable.
93- When option ` Strictly match package version ` is selected, the resolved dependency versions will be compared to the
94- versions specified in the manifest file, and users will be alerted if any mismatch is detected.
97+ < br > If the path is not provided, your IDE's ` PATH ` environment will be used to locate the executable.
98+ < br > When option ` Strictly match package version ` is selected, the resolved dependency versions will be compared to
99+ the versions specified in the manifest file, and users will be alerted if any mismatch is detected.
95100
96101- ** Python** :
97102 <br >Set the full paths of the Python and the package installer for Python executables, which allows Exhort to locate
98103 and execute the ` pip3 ` commands to resolve dependencies for Python projects.
99- Python 2 executables ` python ` and ` pip ` can be used instead, if the ` Use python 2.x ` option is selected.
100- If the paths are not provided, your IDE's ` PATH ` environment will be used to locate the executables.
101- When option ` Strictly match package version ` is selected, the resolved dependency versions will be compared to the
102- versions specified in the manifest file, and users will be alerted if any mismatch is detected.
103- Python virtual environment can be applied, when selecting the ` Use python virtual environment ` option.
104- If selecting option ` Allow alternate package version ` while using virtual environment, the dependency versions
104+ < br > Python 2 executables ` python ` and ` pip ` can be used instead, if the ` Use python 2.x ` option is selected.
105+ < br > If the paths are not provided, your IDE's ` PATH ` environment will be used to locate the executables.
106+ < br > When option ` Strictly match package version ` is selected, the resolved dependency versions will be compared to
107+ the versions specified in the manifest file, and users will be alerted if any mismatch is detected.
108+ < br > Python virtual environment can be applied, when selecting the ` Use python virtual environment ` option.
109+ < br > If selecting option ` Allow alternate package version ` while using virtual environment, the dependency versions
105110 specified in the manifest file will be ignored, and dependency versions will be resolved dynamically instead (this
106111 feature cannot be enabled when ` Strictly match package version ` is selected).
107112
113+ - ** Image** :
114+ <br >Set the full path of the Syft executable, which allows Exhort to locate and execute the ` syft ` command to
115+ generate Software Bill of Materials for the base images.
116+ <br >Optionally, set the full path of the Docker or Podman executable. Syft will attempt to find the images in the
117+ Docker or Podman daemon with the executable. Otherwise, Syft will try direct remote registry access.
118+ <br >Set the full path of the Skopeo executable, which allows Exhort to locate and execute the ` skopeo ` command to
119+ determine the image digests.
120+ <br >If the paths are not provided, your IDE's ` PATH ` environment will be used to locate the executables.
121+ <br >If a Syft configuration file is used and not at the
122+ default [ paths] ( https://github.com/anchore/syft/blob/469b4c13bbc52c43bc5216924b6ffd9d6d47bbd6/README.md#configuration ) ,
123+ set the full path to the configuration file in configuration.
124+ <br >If
125+ an [ authentication file] ( https://github.com/containers/skopeo/blob/3eacbe5ae2fe859f872a02bf28c16371fb1de7b8/docs/skopeo-inspect.1.md#options )
126+ is applied for ` skopeo inspect ` , set the full path to the file in configuration.
127+ <br >If platform is not specified in the ` Dockerfile ` for multi-platform images and a default platform should be
128+ applied, set the default platform in the configuration. Otherwise, set the full path of the Docker or Podman
129+ executable, then Exhort will use the executable to determine the image platform based on the OS and architecture of
130+ the container runtime.
131+
108132- ** Inline Vulnerability Severity Alerts** :
109- <br >You can set the vulnerability severity alert level to ` Error ` or ` Warning ` for inline notifications of detected vulnerabilities.
133+ <br >You can set the vulnerability severity alert level to ` Error ` or ` Warning ` for inline notifications of detected
134+ vulnerabilities.
110135
111136## Features
112137
@@ -121,6 +146,28 @@ according to your preferences.
121146
122147 ![ Animated screenshot showing the inline reporting feature of Dependency Analytics ] ( src/main/resources/images/component-analysis.gif )
123148
149+ - ** Docker scanning**
150+ <br >Upon opening a Dockerfile, a vulnerability scan starts analyzing the images within the Dockerfile.
151+ After the analysis finishes, you can view any recommendations and remediation by clicking the _ More actions..._ menu
152+ from the highlighted image name.
153+ Any recommendations for an alternative image does not replace the current image.
154+ By clicking _ Switch to..._ , you go to Red Hat's Ecosystem Catalog for the recommended image.
155+
156+ <br >You must have the [ ` syft ` ] ( https://github.com/anchore/syft#installation )
157+ and [ ` skopeo ` ] ( https://www.redhat.com/en/topics/containers/what-is-skopeo ) binaries installed on your workstation to
158+ use the Docker scanning feature.
159+ You can specify a specific path to these binaries, and others by settings the following parameters:
160+
161+ * ` syft.executable.path ` : Specify the absolute path of ` syft ` executable.
162+ * ` syft.config.path ` : Specify the absolute path to the Syft configuration file.
163+ * ` skopeo.executable.path ` : Specify the absolute path of ` skopeo ` executable.
164+ * ` skopeo.config.path ` : Specify the absolute path to the authentication file used by the ` skopeo inspect ` command.
165+ * ` docker.executable.path ` : Specify the absolute path of ` docker ` executable.
166+ * ` podman.executable.path ` : Specify the absolute path of ` podman ` executable.
167+ * ` image.platform ` : Specify the platform used for multi-arch images.
168+
169+ ![ Animated screenshot showing the inline reporting feature of Image Analysis ] ( src/main/resources/images/image-analysis.gif )
170+
124171- ** Excluding dependencies with ` exhortignore ` **
125172 <br >You can exclude a package from analysis by marking the package for exclusion.
126173 If you want to ignore vulnerabilities for a dependency in a ` pom.xml ` file, you must add ` exhortignore ` as a comment
0 commit comments