From dc2b961f9135d948ae83933953b665e0bbf3f38f Mon Sep 17 00:00:00 2001 From: Nikolas Falco Date: Sun, 25 Feb 2024 17:09:58 +0100 Subject: [PATCH] [JENKINS-72557] Add ability to configure NVD API Key for OWSP dependency-check library --- README.md | 4 + docs/images/builder-config.png | Bin 90011 -> 22780 bytes pom.xml | 4 + .../DependencyCheckToolBuilder.java | 96 +++++++++++++++++- .../DependencyCheckToolBuilder/config.jelly | 6 +- .../config.properties | 3 +- .../help-nvdCredentialsId.html | 13 +++ .../DependencyCheck/Messages.properties | 2 + 8 files changed, 124 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder/help-nvdCredentialsId.html diff --git a/README.md b/README.md index 3871a509..29bf45c8 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,10 @@ The builder performs an analysis using one of the pre-defined Dependency-Check C ![builder configuration](https://raw.githubusercontent.com/jenkinsci/dependency-check-plugin/master/docs/images/builder-config.png) +With 9.0.0 dependency-check has moved from using the NVD data-feed to the NVD API. Users of dependency-check are highly encouraged to obtain an NVD API Key; see https://nvd.nist.gov/developers/request-an-api-key Without an NVD API Key dependency-check's updates will be extremely slow. Please see the documentation for the cli, maven, gradle, or ant integrations on how to set the NVD API key. + +The NVD API has enforced rate limits. If you are using a single API KEY and multiple builds occur you could hit the rate limit and receive 403 errors. In a CI environment one must use a caching strategy or an external database updated with a scheduled weekly job + #### Publisher The publisher works independently of the tool configuration or builder and is responsible for reading dependency-check-report.xml and generating metrics, trends, findings, and optionally failing the build or putting it into a warning state based on configurable thresholds. diff --git a/docs/images/builder-config.png b/docs/images/builder-config.png index 326f0628b75864062557587ee8d508c335a4ccf7..32fcec79d4b30266e8a30d583c8775d8e172cdd2 100644 GIT binary patch literal 22780 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 T-q{5{8)A0U@<`sHi{bwQ(s5;k literal 90011 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

VJJPv@W_(~VGxwdm~tuPGR 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 Ik~RzYA4#hVcK`qY diff --git a/pom.xml b/pom.xml index 8052a90e..f291a1d8 100644 --- a/pom.xml +++ b/pom.xml @@ -113,6 +113,10 @@ io.jenkins.plugins commons-lang3-api + + org.jenkins-ci.plugins + plain-credentials + org.apache.commons commons-digester3 diff --git a/src/main/java/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder.java b/src/main/java/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder.java index a0a0bbc3..1b821f2a 100644 --- a/src/main/java/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder.java +++ b/src/main/java/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder.java @@ -18,9 +18,11 @@ import static hudson.Util.fixEmptyAndTrim; import static hudson.Util.replaceMacro; import static hudson.util.QuotedStringTokenizer.tokenize; +import static org.apache.commons.lang3.StringUtils.trimToEmpty; import java.io.IOException; import java.io.Serializable; +import java.util.Collections; import java.util.List; import org.apache.commons.io.FileUtils; @@ -29,28 +31,51 @@ import org.jenkinsci.plugins.DependencyCheck.tools.DependencyCheckInstallation; import org.jenkinsci.plugins.DependencyCheck.tools.DependencyCheckInstaller; import org.jenkinsci.plugins.DependencyCheck.tools.Version; +import org.jenkinsci.plugins.plaincredentials.StringCredentials; +import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; +import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.verb.POST; +import org.springframework.security.core.Authentication; +import com.cloudbees.plugins.credentials.CredentialsMatcher; +import com.cloudbees.plugins.credentials.CredentialsMatchers; +import com.cloudbees.plugins.credentials.CredentialsProvider; +import com.cloudbees.plugins.credentials.common.StandardListBoxModel; +import com.cloudbees.plugins.credentials.common.StandardUsernameListBoxModel; + +import edu.umd.cs.findbugs.annotations.CheckForNull; import edu.umd.cs.findbugs.annotations.NonNull; import hudson.AbortException; import hudson.EnvVars; import hudson.Extension; import hudson.FilePath; import hudson.Launcher; +import hudson.Util; import hudson.XmlFile; import hudson.model.AbstractProject; import hudson.model.Cause; import hudson.model.Computer; +import hudson.model.Item; +import hudson.model.ItemGroup; import hudson.model.Node; +import hudson.model.Queue; import hudson.model.Result; import hudson.model.Run; import hudson.model.TaskListener; +import hudson.model.queue.Tasks; +import hudson.security.ACL; +import hudson.security.AccessControlled; +import hudson.security.Permission; import hudson.tasks.BuildStepDescriptor; import hudson.tasks.Builder; import hudson.tools.InstallSourceProperty; import hudson.triggers.SCMTrigger; import hudson.util.ArgumentListBuilder; +import hudson.util.FormValidation; +import hudson.util.ListBoxModel; +import jenkins.model.Jenkins; import jenkins.tasks.SimpleBuildStep; /** @@ -65,6 +90,7 @@ public class DependencyCheckToolBuilder extends Builder implements SimpleBuildSt private final String odcInstallation; private String additionalArguments; + private String nvdCredentialsId; private boolean skipOnScmChange; private boolean skipOnUpstreamChange; private boolean stopBuild = false; @@ -192,8 +218,10 @@ private DependencyCheckInstallation getDependencyCheck() { return DependencyCheckUtil.getDependencyCheck(odcInstallation); } - protected ArgumentListBuilder buildArgumentList(@NonNull final String odcScript, @NonNull final Run build, - @NonNull final FilePath workspace, @NonNull final EnvVars env) { + protected ArgumentListBuilder buildArgumentList(@NonNull final String odcScript, + @NonNull final Run build, + @NonNull final FilePath workspace, + @NonNull final EnvVars env) throws AbortException { final ArgumentListBuilder cliArguments = new ArgumentListBuilder(odcScript); if (!StringUtils.contains(additionalArguments, "--project")) { cliArguments.add("--project", build.getFullDisplayName()); @@ -211,6 +239,13 @@ protected ArgumentListBuilder buildArgumentList(@NonNull final String odcScript, } } } + if (nvdCredentialsId != null) { + StringCredentials c = CredentialsProvider.findCredentialById(nvdCredentialsId, StringCredentials.class, build); + if (c == null) { + throw new AbortException(Messages.Builder_DescriptorImpl_invalidCredentialsId()); + } + cliArguments.add("--nvdApiKey").addMasked(c.getSecret()); + } return cliArguments; } @@ -244,6 +279,15 @@ private boolean isSkip(final Run build, final TaskListener listener) { return skip; } + public String getNvdCredentialsId() { + return nvdCredentialsId; + } + + @DataBoundSetter + public void setNvdCredentialsId(String nvdCredentialsId) { + this.nvdCredentialsId = Util.fixEmpty(nvdCredentialsId); + } + @Extension @Symbol({"dependencyCheck", "dependencycheck"}) public static class DependencyCheckToolBuilderDescriptor extends BuildStepDescriptor { @@ -260,6 +304,54 @@ public void purge() { FileUtils.deleteQuietly(globalConfig.getFile()); } + @POST + public FormValidation doCheckdoNvdCredentialsId(@CheckForNull @AncestorInPath Item projectOrFolder, + @QueryParameter String nvdCredentialsId) { + if ((projectOrFolder == null && !Jenkins.get().hasPermission(Jenkins.ADMINISTER)) || + (projectOrFolder != null && !projectOrFolder.hasPermission(Item.EXTENDED_READ) && !projectOrFolder.hasPermission(CredentialsProvider.USE_ITEM))) { + return FormValidation.ok(); + } + if (StringUtils.isBlank(nvdCredentialsId)) { + return FormValidation.warning(Messages.Builder_DescriptorImpl_emptyCredentialsId()); + } + + Authentication authentication = getAuthentication(projectOrFolder); + CredentialsMatcher matcher = CredentialsMatchers.withId(nvdCredentialsId); + if (CredentialsProvider.listCredentialsInItem(StringCredentials.class, projectOrFolder, authentication, null, matcher).isEmpty()) { + return FormValidation.error(Messages.Builder_DescriptorImpl_invalidCredentialsId()); + } + return FormValidation.ok(); + } + + @POST + public ListBoxModel doFillNvdCredentialsIdItems(final @CheckForNull @AncestorInPath ItemGroup context, + final @CheckForNull @AncestorInPath Item projectOrFolder, + @QueryParameter String nvdCredentialsId) { + Permission permToCheck = projectOrFolder == null ? Jenkins.ADMINISTER : Item.CONFIGURE; + AccessControlled contextToCheck = projectOrFolder == null ? Jenkins.get() : projectOrFolder; + + // If we're on the global page and we don't have administer + // permission or if we're in a project or folder + // and we don't have configure permission there + if (!contextToCheck.hasPermission(permToCheck)) { + return new StandardUsernameListBoxModel().includeCurrentValue(trimToEmpty(nvdCredentialsId)); + } + + Authentication authentication = getAuthentication(projectOrFolder); + CredentialsMatcher matcher = CredentialsMatchers.instanceOf(StringCredentials.class); + Class type = StringCredentials.class; + ItemGroup credentialsContext = context == null ? Jenkins.get() : context; + + return new StandardListBoxModel() // + .includeMatchingAs(authentication, credentialsContext, type, Collections.emptyList(), matcher) // + .includeEmptyValue(); + } + + @NonNull + protected Authentication getAuthentication(AccessControlled item) { + return item instanceof Queue.Task ? Tasks.getAuthenticationOf2((Queue.Task) item) : ACL.SYSTEM2; + } + @NonNull @Override public String getDisplayName() { diff --git a/src/main/resources/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder/config.jelly b/src/main/resources/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder/config.jelly index f4349d9b..c5e055b2 100644 --- a/src/main/resources/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder/config.jelly +++ b/src/main/resources/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder/config.jelly @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. --> - + + + + + diff --git a/src/main/resources/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder/config.properties b/src/main/resources/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder/config.properties index d21748d8..c26c49d7 100644 --- a/src/main/resources/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder/config.properties +++ b/src/main/resources/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder/config.properties @@ -19,4 +19,5 @@ installation.notspecified=Please define a Dependency-Check installation in the J arguments=Arguments scm.skip=Skip if triggered by SCM changes upstream.skip=Skip if triggered by upstream changes -stopBuild.title=Stop current build when scanner return exception \ No newline at end of file +stopBuild.title=Stop current build when scanner return exception +nvdCredentialsId.title=NVD API Key (version 9 or later) \ No newline at end of file diff --git a/src/main/resources/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder/help-nvdCredentialsId.html b/src/main/resources/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder/help-nvdCredentialsId.html new file mode 100644 index 00000000..2c49cc38 --- /dev/null +++ b/src/main/resources/org/jenkinsci/plugins/DependencyCheck/DependencyCheckToolBuilder/help-nvdCredentialsId.html @@ -0,0 +1,13 @@ +

+

+ With 9.0.0 dependency-check has moved from using the NVD data-feed to the NVD API.
+ Users of dependency-check are highly encouraged to obtain an NVD API Key; + see https://nvd.nist.gov/developers/request-an-api-key
+ Without an NVD API Key dependency-check's updates will be extremely slow. +

+

+ The NVD API Key, CI, and Rate Limiting
+ The NVD API has enforced rate limits. If you are using a single API KEY and multiple builds occur you could hit the rate limit and receive 403 errors.
+ In a CI environment one must use a caching strategy or use a set API KEY to use for different jobs. +

+
\ No newline at end of file diff --git a/src/main/resources/org/jenkinsci/plugins/DependencyCheck/Messages.properties b/src/main/resources/org/jenkinsci/plugins/DependencyCheck/Messages.properties index 745d2d02..2bd566b0 100755 --- a/src/main/resources/org/jenkinsci/plugins/DependencyCheck/Messages.properties +++ b/src/main/resources/org/jenkinsci/plugins/DependencyCheck/Messages.properties @@ -28,6 +28,8 @@ Builder.noExecutableFound=Couldn\u2019t find any executable in "{0}" Builder.Skip=Skipping Dependency-Check analysis Builder.noInstallationFound=No installation {0} found. Please define one in manager Jenkins. Builder.nodeOffline=Cannot get installation for node, since it is not online +Builder.DescriptorImpl.emptyCredentialsId=Credentials is required +Builder.DescriptorImpl.invalidCredentialsId=Current credentials does not exists Platform.unknown=Unknown OS name: {0} SystemTools.nodeNotAvailable=Node could be offline or there are no executor defined for Node {0}