From 98e45c13c2f5d97a6d734fa608029f0826a6ed8e Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Tue, 7 May 2024 12:10:54 -0700 Subject: [PATCH 01/16] - New guide on container security best practices - MDX plugin to show snippets of code from external files --- .../container-security/.pre-commit-config.yml | 7 ++ .../security/container-security/README.mdx | 100 ++++++++++++++++++ .../container-security/dependabot.yml | 8 ++ package.json | 1 + static/img/container-security-screen.png | Bin 0 -> 61142 bytes yarn.lock | 8 ++ 6 files changed, 124 insertions(+) create mode 100644 docs/guides/software-lifecycle/security/container-security/.pre-commit-config.yml create mode 100644 docs/guides/software-lifecycle/security/container-security/README.mdx create mode 100644 docs/guides/software-lifecycle/security/container-security/dependabot.yml create mode 100644 static/img/container-security-screen.png diff --git a/docs/guides/software-lifecycle/security/container-security/.pre-commit-config.yml b/docs/guides/software-lifecycle/security/container-security/.pre-commit-config.yml new file mode 100644 index 000000000..3dee1b4e3 --- /dev/null +++ b/docs/guides/software-lifecycle/security/container-security/.pre-commit-config.yml @@ -0,0 +1,7 @@ +repos: + - repo: local + hooks: + - id: docker-scout-cve-scan + name: Docker Scout CVE Scan + entry: docker scout cves fs://. + language: system \ No newline at end of file diff --git a/docs/guides/software-lifecycle/security/container-security/README.mdx b/docs/guides/software-lifecycle/security/container-security/README.mdx new file mode 100644 index 000000000..a7e104ef3 --- /dev/null +++ b/docs/guides/software-lifecycle/security/container-security/README.mdx @@ -0,0 +1,100 @@ +import CodeBlock from '@theme/CodeBlock'; +import PreCommitConfigSource from '!!raw-loader!./.pre-commit-config.yml'; +import DependabotSource from '!!raw-loader!./dependabot.yml'; + +# Container Security + +
Comprehensive guide to scanning container images for security vulnerabilities using pre-commit hooks and automated repository scanning tools.
+ +![banner-image](/img/container-security-screen.png) + +## Introduction + +**Background**: Container security is crucial for ensuring that your applications and services run in a secure environment. Containers encapsulate software and dependencies, providing consistency across environments. However, they also carry the risk of vulnerabilities within the base images or dependencies. This guide will help you establish a secure environment by implementing proactive vulnerability scanning. By using pre-commit hooks and repository-level automated scanning, you'll be able to identify security issues early, before they impact production. + +**Use Cases**: +- Running vulnerability scans for all containers at the development stage +- Ensuring that base images used in CI/CD pipelines are free from known vulnerabilities +- Automating container vulnerability scans in repositories hosting container images + +--- + +## Prerequisites +**Software:** +- Docker containers +- `pre-commit` framework +- Docker Hub or GitHub Dependabot + +**Skills:** +- Basic understanding of Git hooks and Docker commands +- Familiarity with YAML files for pre-commit configuration + +--- + +## Quick Start +**⬇️ [.pre-commit-config.yml](.pre-commit-config.yml)** + +Download the file above to access the pre-commit configuration file, which includes an example hook for Docker Scout vulnerability scanning. The file should be placed within your local Git repository. You'll want to ensure you have the [pre-commit](https://pre-commit.com) framework installed. + +**⬇️ [dependabot.yml](dependabot.yml)** + +Download the file above to access the recommended `dependabot.yml` file, which configures a GitHub dependabot deployment to perform Docker vulnerability scanning. The file should be placed within `.github/dependabot.yml`. You'll want to ensure you have dependabot configured - see our [GitHub Security Best Practices](/docs/guides/software-lifecycle/security/github-security/README.md) guide for details. + +--- + +## Step-by-Step Guide + +### Step 1: Setup Automated Local Scanning of Container Vulnerabilities +1. Install the pre-commit framework via Python: + ```bash + pip install pre-commit + ``` +2. Initialize pre-commit in your repository: + ```bash + pre-commit install + ``` +3. Create a `.pre-commit-config.yaml` file in the root directory of your Git repository with the following content: + {PreCommitConfigSource} + + NOTE: you'll need a DockerHub account to run the `docker scout` tool. Note that this command will compare a local scan's results with Docker's database. See more information [here](https://docs.docker.com/scout/quickstart/). + +### Step 2: Set Up Automated Repository Scanning +- **Docker Hub**: + - Push your images to Docker Hub, where automatic scans are enabled by default. + +- **GitHub**: + - Leverage Dependabot to perform automated scans of containers (Docker) at a prescribed schedule. + - Example `.github/dependabot.yml` file contents: + {DependabotSource} + +--- + +## Frequently Asked Questions (FAQ) + +**Q: What happens if the pre-commit scan finds vulnerabilities?** + +A: The pre-commit hook will prevent you from committing your changes until vulnerabilities are resolved. It's your responsibility to resolve the issue given the recommendations. + +**Q: What if I want to skip the pre-commit scan temporarily?** + +A: Use the `--no-verify` flag with the `git commit` command to bypass the hook, though this is not recommended. + +**Q: Is it possible to run vulnerability scans without pre-commit hooks?** + +A: Yes, you can incorporate scans into your CI/CD pipeline or use repository scanning tools like Docker Hub or Dependabot, though this poses the risk of having code pushed to other developers that may be vulnerable. + +--- + +## Credits + +**Authorship**: +- [Rishi Verma](https://www.github.com/riverma) + +**Acknowledgements**: +* OPERA SDS Project for implementation guidance + +--- + +## Feedback and Contributions + +We welcome feedback and contributions to help improve and grow this guide. Please see our [contribution guidelines](https://nasa-ammos.github.io/slim/docs/contribute/contributing/). diff --git a/docs/guides/software-lifecycle/security/container-security/dependabot.yml b/docs/guides/software-lifecycle/security/container-security/dependabot.yml new file mode 100644 index 000000000..a6ca8775f --- /dev/null +++ b/docs/guides/software-lifecycle/security/container-security/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: + - package-ecosystem: "docker" + directory: "/" + schedule: + interval: 'daily' + labels: + - 'dependencies' \ No newline at end of file diff --git a/package.json b/package.json index 1f50eb317..0a9ce1076 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "bootstrap": "^5.3.0", "clsx": "^1.2.1", "prism-react-renderer": "^1.3.5", + "raw-loader": "^4.0.2", "react": "^17.0.2", "react-bootstrap": "^2.8.0", "react-dom": "^17.0.2" diff --git a/static/img/container-security-screen.png b/static/img/container-security-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..24de5920ea65d5cd6be65bd2cd7e762dca48d3f7 GIT binary patch literal 61142 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 L2AbI#*0=u$#<|=U literal 0 HcmV?d00001 diff --git a/yarn.lock b/yarn.lock index b5b06eac2..05ced5e7f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6525,6 +6525,14 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" +raw-loader@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" + integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + rc@1.2.8, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" From 5242e10afab511ce43bbb4d5860f754307e81958 Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Tue, 7 May 2024 17:13:06 -0700 Subject: [PATCH 02/16] Addressed some feedback: added filtering levels for CVEs --- .../container-security/.pre-commit-config.yml | 13 ++++--- .../security/container-security/README.mdx | 36 +++++++++++++++++-- 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/docs/guides/software-lifecycle/security/container-security/.pre-commit-config.yml b/docs/guides/software-lifecycle/security/container-security/.pre-commit-config.yml index 3dee1b4e3..397d5f960 100644 --- a/docs/guides/software-lifecycle/security/container-security/.pre-commit-config.yml +++ b/docs/guides/software-lifecycle/security/container-security/.pre-commit-config.yml @@ -1,7 +1,6 @@ -repos: - - repo: local - hooks: - - id: docker-scout-cve-scan - name: Docker Scout CVE Scan - entry: docker scout cves fs://. - language: system \ No newline at end of file +- repo: local + hooks: + - id: docker-scout-cve-scan + name: Docker Scout CVE Scan + entry: python -c "import subprocess; import sys; result=subprocess.run(['docker', 'scout', 'cves', 'fs://.', '--only-severity', 'critical', '--exit-code']); sys.exit(result.returncode)" + language: system \ No newline at end of file diff --git a/docs/guides/software-lifecycle/security/container-security/README.mdx b/docs/guides/software-lifecycle/security/container-security/README.mdx index a7e104ef3..b0b2d1219 100644 --- a/docs/guides/software-lifecycle/security/container-security/README.mdx +++ b/docs/guides/software-lifecycle/security/container-security/README.mdx @@ -32,6 +32,13 @@ import DependabotSource from '!!raw-loader!./dependabot.yml'; --- ## Quick Start + +**Run a local scan of your container's repository (folder containing the Dockerfile)** + +``` +docker scout cves fs://. +``` + **⬇️ [.pre-commit-config.yml](.pre-commit-config.yml)** Download the file above to access the pre-commit configuration file, which includes an example hook for Docker Scout vulnerability scanning. The file should be placed within your local Git repository. You'll want to ensure you have the [pre-commit](https://pre-commit.com) framework installed. @@ -45,6 +52,29 @@ Download the file above to access the recommended `dependabot.yml` file, which c ## Step-by-Step Guide ### Step 1: Setup Automated Local Scanning of Container Vulnerabilities + +1. Ensure you have `docker` installed and the `scout` plugin. See [this quickstart](https://docs.docker.com/scout/quickstart/#step-2-enable-docker-scout) from Docker's documentation. + + `docker scout` + +2. Login to DockerHub to enable scout (required) + + ``` + docker login + ``` + +3. Perform a scan of the local repository for CVES (vulnerabilities) + + ``` + docker scout cves fs://. + ``` + + NOTE: you can use the `--only-severity critical` to limit scanning to just specific criticality levels. See documentation [here](https://docs.docker.com/reference/cli/docker/scout/cves/#options). + +### Step 2: Setup Automated Local Scanning of Container Vulnerabilities + +⚠️ NOTE: we only recommend installing this pre-commit hook if you've already scanned your repository and eliminated vulnerabilities first. See Step 1. + 1. Install the pre-commit framework via Python: ```bash pip install pre-commit @@ -53,12 +83,12 @@ Download the file above to access the recommended `dependabot.yml` file, which c ```bash pre-commit install ``` -3. Create a `.pre-commit-config.yaml` file in the root directory of your Git repository with the following content: +3. Create a `.pre-commit-config.yaml` file in the root directory of your Git repository with the following content (note we suggest only scanning for critical vulnerabilities to reduce developer overhead): {PreCommitConfigSource} NOTE: you'll need a DockerHub account to run the `docker scout` tool. Note that this command will compare a local scan's results with Docker's database. See more information [here](https://docs.docker.com/scout/quickstart/). -### Step 2: Set Up Automated Repository Scanning +### Step 3: Set Up Automated Repository Scanning - **Docker Hub**: - Push your images to Docker Hub, where automatic scans are enabled by default. @@ -73,7 +103,7 @@ Download the file above to access the recommended `dependabot.yml` file, which c **Q: What happens if the pre-commit scan finds vulnerabilities?** -A: The pre-commit hook will prevent you from committing your changes until vulnerabilities are resolved. It's your responsibility to resolve the issue given the recommendations. +A: The pre-commit hook will prevent you from committing your changes until vulnerabilities are resolved. The scan is configured to only alert for `critical` vulnerabilities by default to be less obtrusive. You can disable the plugin via `SKIP=docker-scout-cve-scan git commit ...` **Q: What if I want to skip the pre-commit scan temporarily?** From 7a7ef1e55795607a7de418c770f0365317de4bf3 Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Tue, 7 May 2024 17:16:08 -0700 Subject: [PATCH 03/16] Feedback incorporated --- .../software-lifecycle/security/container-security/README.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/software-lifecycle/security/container-security/README.mdx b/docs/guides/software-lifecycle/security/container-security/README.mdx index b0b2d1219..2bd1850ba 100644 --- a/docs/guides/software-lifecycle/security/container-security/README.mdx +++ b/docs/guides/software-lifecycle/security/container-security/README.mdx @@ -69,7 +69,7 @@ Download the file above to access the recommended `dependabot.yml` file, which c docker scout cves fs://. ``` - NOTE: you can use the `--only-severity critical` to limit scanning to just specific criticality levels. See documentation [here](https://docs.docker.com/reference/cli/docker/scout/cves/#options). + NOTE: you can use the `--only-severity critical` to limit scanning to just specific criticality levels. [See options documentation here](https://docs.docker.com/reference/cli/docker/scout/cves/#options). ### Step 2: Setup Automated Local Scanning of Container Vulnerabilities @@ -86,7 +86,7 @@ Download the file above to access the recommended `dependabot.yml` file, which c 3. Create a `.pre-commit-config.yaml` file in the root directory of your Git repository with the following content (note we suggest only scanning for critical vulnerabilities to reduce developer overhead): {PreCommitConfigSource} - NOTE: you'll need a DockerHub account to run the `docker scout` tool. Note that this command will compare a local scan's results with Docker's database. See more information [here](https://docs.docker.com/scout/quickstart/). + NOTE: you'll need a DockerHub account to run the `docker scout` tool. Note that this command will compare a local scan's results with Docker's database. [More information about Docker Scout is available here](https://docs.docker.com/scout/quickstart/). ### Step 3: Set Up Automated Repository Scanning - **Docker Hub**: From 7903d1dbe9ed41c6cac5b9fccafd1b46d925b1ef Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Tue, 2 Jul 2024 17:52:06 -0700 Subject: [PATCH 04/16] Recommending grype instead of docker scout --- .../container-security/.pre-commit-config.yml | 14 +-- .../security/container-security/README.mdx | 84 ++++++++---------- .../container-security/dependabot.yml | 8 -- static/img/container-security-screen.png | Bin 61142 -> 0 bytes static/img/vulnerability-scanning-screen.png | Bin 0 -> 86151 bytes 5 files changed, 47 insertions(+), 59 deletions(-) delete mode 100644 docs/guides/software-lifecycle/security/container-security/dependabot.yml delete mode 100644 static/img/container-security-screen.png create mode 100644 static/img/vulnerability-scanning-screen.png diff --git a/docs/guides/software-lifecycle/security/container-security/.pre-commit-config.yml b/docs/guides/software-lifecycle/security/container-security/.pre-commit-config.yml index 397d5f960..b029bf2b9 100644 --- a/docs/guides/software-lifecycle/security/container-security/.pre-commit-config.yml +++ b/docs/guides/software-lifecycle/security/container-security/.pre-commit-config.yml @@ -1,6 +1,8 @@ -- repo: local - hooks: - - id: docker-scout-cve-scan - name: Docker Scout CVE Scan - entry: python -c "import subprocess; import sys; result=subprocess.run(['docker', 'scout', 'cves', 'fs://.', '--only-severity', 'critical', '--exit-code']); sys.exit(result.returncode)" - language: system \ No newline at end of file +repos: + - repo: local + hooks: + - id: grype-cve-scan + name: Grype Vulnerability Scan + description: Scans for dependency vulnerabilities. Fails if CRITICAL vulnerabilities detected. + entry: python -c "import subprocess; import sys; result=subprocess.run(['grype', 'dir:.', '--fail-on', 'critical'], capture_output=True); print(result.stdout.decode()); print('CRITICAL vulnerabilities deteced. Please run scan, address issues via `grype dir:.` and `git add` then `git commit` your fix or ignore via `git commit --no-verify`'); sys.exit(result.returncode)" + language: system \ No newline at end of file diff --git a/docs/guides/software-lifecycle/security/container-security/README.mdx b/docs/guides/software-lifecycle/security/container-security/README.mdx index 2bd1850ba..d65fb50de 100644 --- a/docs/guides/software-lifecycle/security/container-security/README.mdx +++ b/docs/guides/software-lifecycle/security/container-security/README.mdx @@ -1,33 +1,33 @@ + import CodeBlock from '@theme/CodeBlock'; import PreCommitConfigSource from '!!raw-loader!./.pre-commit-config.yml'; -import DependabotSource from '!!raw-loader!./dependabot.yml'; -# Container Security +# Dependency Vulnerability Scanning -
Comprehensive guide to scanning container images for security vulnerabilities using pre-commit hooks and automated repository scanning tools.
+
A guide to scanning packaged software dependencies and container images for security vulnerabilities both manually and automatically.
-![banner-image](/img/container-security-screen.png) +![banner-image](/img/vulnerability-scanning-screen.png) ## Introduction -**Background**: Container security is crucial for ensuring that your applications and services run in a secure environment. Containers encapsulate software and dependencies, providing consistency across environments. However, they also carry the risk of vulnerabilities within the base images or dependencies. This guide will help you establish a secure environment by implementing proactive vulnerability scanning. By using pre-commit hooks and repository-level automated scanning, you'll be able to identify security issues early, before they impact production. +**Background**: To maintain the integrity and security of your applications in production environments, it's essential to monitor dependency vulnerabilities. Third-party software dependencies can harbor security vulnerabilities. This guide focuses on utilizing Grype, an open source vulnerability scanner, to proactively detect vulnerabilities in dependencies defined within packages and container images. **Use Cases**: -- Running vulnerability scans for all containers at the development stage -- Ensuring that base images used in CI/CD pipelines are free from known vulnerabilities -- Automating container vulnerability scans in repositories hosting container images +- Scanning container images for vulnerabilities during the development phase +- Ensuring base images in CI/CD pipelines are vulnerability-free +- Scanning package-manager defined software dependencies (e.g. NPM, YARN, Maven, etc.) for vulnerabilities during the development phase +- Automating vulnerability detection in repositories --- ## Prerequisites **Software:** -- Docker containers +- OGC compliant containers (e.g. Docker) or other package-manager software dependencies - `pre-commit` framework -- Docker Hub or GitHub Dependabot **Skills:** -- Basic understanding of Git hooks and Docker commands -- Familiarity with YAML files for pre-commit configuration +- Basic knowledge of Git hooks and Docker commands +- Understanding of YAML for pre-commit configuration --- @@ -35,17 +35,13 @@ import DependabotSource from '!!raw-loader!./dependabot.yml'; **Run a local scan of your container's repository (folder containing the Dockerfile)** -``` -docker scout cves fs://. +```bash +grype dir:. ``` **⬇️ [.pre-commit-config.yml](.pre-commit-config.yml)** -Download the file above to access the pre-commit configuration file, which includes an example hook for Docker Scout vulnerability scanning. The file should be placed within your local Git repository. You'll want to ensure you have the [pre-commit](https://pre-commit.com) framework installed. - -**⬇️ [dependabot.yml](dependabot.yml)** - -Download the file above to access the recommended `dependabot.yml` file, which configures a GitHub dependabot deployment to perform Docker vulnerability scanning. The file should be placed within `.github/dependabot.yml`. You'll want to ensure you have dependabot configured - see our [GitHub Security Best Practices](/docs/guides/software-lifecycle/security/github-security/README.md) guide for details. +Download the file above to access the pre-commit configuration file, which includes an example hook for Grype vulnerability scanning. This file should be placed within your local Git repository after installing the pre-commit framework. --- @@ -53,49 +49,42 @@ Download the file above to access the recommended `dependabot.yml` file, which c ### Step 1: Setup Automated Local Scanning of Container Vulnerabilities -1. Ensure you have `docker` installed and the `scout` plugin. See [this quickstart](https://docs.docker.com/scout/quickstart/#step-2-enable-docker-scout) from Docker's documentation. - - `docker scout` - -2. Login to DockerHub to enable scout (required) +1. Ensure Grype is installed on your system. You can install Grype from [the official repository](https://github.com/anchore/grype). - ``` - docker login + ```bash + grype version ``` -3. Perform a scan of the local repository for CVES (vulnerabilities) +2. Perform a scan of the local repository for vulnerabilities: - ``` - docker scout cves fs://. + ```bash + grype dir:. ``` - NOTE: you can use the `--only-severity critical` to limit scanning to just specific criticality levels. [See options documentation here](https://docs.docker.com/reference/cli/docker/scout/cves/#options). +3. If you find vulnerabilities, fix them via your package manager. ### Step 2: Setup Automated Local Scanning of Container Vulnerabilities -⚠️ NOTE: we only recommend installing this pre-commit hook if you've already scanned your repository and eliminated vulnerabilities first. See Step 1. +⚠️ NOTE: We recommend installing this pre-commit hook only if you have already scanned your repository and addressed any vulnerabilities. 1. Install the pre-commit framework via Python: ```bash pip install pre-commit ``` -2. Initialize pre-commit in your repository: +2. Create a `.pre-commit-config.yaml` file in the root directory of your Git repository with the following content for Grype scanning: + {PreCommitConfigSource} + +3. Initialize pre-commit in your repository with the new configuration: ```bash pre-commit install ``` -3. Create a `.pre-commit-config.yaml` file in the root directory of your Git repository with the following content (note we suggest only scanning for critical vulnerabilities to reduce developer overhead): - {PreCommitConfigSource} - NOTE: you'll need a DockerHub account to run the `docker scout` tool. Note that this command will compare a local scan's results with Docker's database. [More information about Docker Scout is available here](https://docs.docker.com/scout/quickstart/). +4. Grype-based vulnerability scanning should run every time a `git commit` is invoked. ### Step 3: Set Up Automated Repository Scanning -- **Docker Hub**: - - Push your images to Docker Hub, where automatic scans are enabled by default. - - **GitHub**: - - Leverage Dependabot to perform automated scans of containers (Docker) at a prescribed schedule. - - Example `.github/dependabot.yml` file contents: - {DependabotSource} + - We recommend installing the official Grype GitHub action to set up automated dependency vulnerability scanning. Available [at this link](https://github.com/marketplace/actions/anchore-container-scan). + - We also recommend setting up GitHub's official Dependabot action to also look for vulnerabilities. See our [GitHub Security Guide](/docs/guides/software-lifecycle/security/github-security) on this. --- @@ -103,15 +92,20 @@ Download the file above to access the recommended `dependabot.yml` file, which c **Q: What happens if the pre-commit scan finds vulnerabilities?** -A: The pre-commit hook will prevent you from committing your changes until vulnerabilities are resolved. The scan is configured to only alert for `critical` vulnerabilities by default to be less obtrusive. You can disable the plugin via `SKIP=docker-scout-cve-scan git commit ...` +A: The pre-commit hook will prevent you from committing changes until the vulnerabilities are resolved. The scan is set to alert only for `critical` vulnerabilities by default to minimize disruption. **Q: What if I want to skip the pre-commit scan temporarily?** -A: Use the `--no-verify` flag with the `git commit` command to bypass the hook, though this is not recommended. +A: You can bypass the hook by using the `--no-verify` flag with the `git commit` command, though this is generally not recommended. **Q: Is it possible to run vulnerability scans without pre-commit hooks?** -A: Yes, you can incorporate scans into your CI/CD pipeline or use repository scanning tools like Docker Hub or Dependabot, though this poses the risk of having code pushed to other developers that may be vulnerable. +A: Yes, you can incorporate scans into your CI/CD pipeline or utilize other repository scanning tools, which can prevent pushing vulnerable code. + +**Q: What's the difference between Grype and GitHub's Dependabot? Why do I need both?** + +A: Grype relies on free and open software vulnerability databases whereas GitHub's Dependabot may be using proprietary methods. In our testing, we've found some non-overlapping vulnerabilities that are sometimes found in one tool but not the other. + --- @@ -127,4 +121,4 @@ A: Yes, you can incorporate scans into your CI/CD pipeline or use repository sca ## Feedback and Contributions -We welcome feedback and contributions to help improve and grow this guide. Please see our [contribution guidelines](https://nasa-ammos.github.io/slim/docs/contribute/contributing/). +We welcome feedback and contributions to enhance this guide further. Please refer to our [contribution guidelines](https://nasa-ammos.github.io/slim/docs/contribute/contributing/). diff --git a/docs/guides/software-lifecycle/security/container-security/dependabot.yml b/docs/guides/software-lifecycle/security/container-security/dependabot.yml deleted file mode 100644 index a6ca8775f..000000000 --- a/docs/guides/software-lifecycle/security/container-security/dependabot.yml +++ /dev/null @@ -1,8 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "docker" - directory: "/" - schedule: - interval: 'daily' - labels: - - 'dependencies' \ No newline at end of file diff --git a/static/img/container-security-screen.png b/static/img/container-security-screen.png deleted file mode 100644 index 24de5920ea65d5cd6be65bd2cd7e762dca48d3f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61142 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 L2AbI#*0=u$#<|=U diff --git a/static/img/vulnerability-scanning-screen.png b/static/img/vulnerability-scanning-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c7eda8dcc11c629f42a00d37c919c5586f8b87 GIT binary patch literal 86151 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
hg@((C)Mh(XOpD@7}aqm}IGP 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 Date: Tue, 2 Jul 2024 18:07:48 -0700 Subject: [PATCH 05/16] Better explanations --- .../software-lifecycle/security/container-security/README.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/guides/software-lifecycle/security/container-security/README.mdx b/docs/guides/software-lifecycle/security/container-security/README.mdx index d65fb50de..78895262d 100644 --- a/docs/guides/software-lifecycle/security/container-security/README.mdx +++ b/docs/guides/software-lifecycle/security/container-security/README.mdx @@ -67,6 +67,8 @@ Download the file above to access the pre-commit configuration file, which inclu ⚠️ NOTE: We recommend installing this pre-commit hook only if you have already scanned your repository and addressed any vulnerabilities. +The below steps, once enacted, will ensure that any local `git commit` actions taken will be followed by an automated vulnerability scan. If vulnerabilities at the CRITICAL level are found, the commit will be blocked by default. + 1. Install the pre-commit framework via Python: ```bash pip install pre-commit @@ -79,7 +81,7 @@ Download the file above to access the pre-commit configuration file, which inclu pre-commit install ``` -4. Grype-based vulnerability scanning should run every time a `git commit` is invoked. +4. Grype-based vulnerability scanning should run every time a `git commit` is invoked. The commit will be blocked if CRITICAL level vulnerabilities are found and will ask the developer to fix them prior to committing. ### Step 3: Set Up Automated Repository Scanning - **GitHub**: From 05b82fb918952f6f8734e4f3cda2278dabe840f4 Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Tue, 2 Jul 2024 18:10:22 -0700 Subject: [PATCH 06/16] Less controversial language --- .../software-lifecycle/security/container-security/README.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/software-lifecycle/security/container-security/README.mdx b/docs/guides/software-lifecycle/security/container-security/README.mdx index 78895262d..750bb71c5 100644 --- a/docs/guides/software-lifecycle/security/container-security/README.mdx +++ b/docs/guides/software-lifecycle/security/container-security/README.mdx @@ -14,7 +14,7 @@ import PreCommitConfigSource from '!!raw-loader!./.pre-commit-config.yml'; **Use Cases**: - Scanning container images for vulnerabilities during the development phase -- Ensuring base images in CI/CD pipelines are vulnerability-free +- Ensuring base container images are as vulnerability-free as possible - Scanning package-manager defined software dependencies (e.g. NPM, YARN, Maven, etc.) for vulnerabilities during the development phase - Automating vulnerability detection in repositories From 45ac6d5aef5d53b6e155a2fd31707cf71a559f09 Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Tue, 2 Jul 2024 18:11:19 -0700 Subject: [PATCH 07/16] OGC to OCI --- .../software-lifecycle/security/container-security/README.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/software-lifecycle/security/container-security/README.mdx b/docs/guides/software-lifecycle/security/container-security/README.mdx index 750bb71c5..bc53c785a 100644 --- a/docs/guides/software-lifecycle/security/container-security/README.mdx +++ b/docs/guides/software-lifecycle/security/container-security/README.mdx @@ -22,7 +22,7 @@ import PreCommitConfigSource from '!!raw-loader!./.pre-commit-config.yml'; ## Prerequisites **Software:** -- OGC compliant containers (e.g. Docker) or other package-manager software dependencies +- OCI compliant containers (e.g. Docker, Podman) or other package-manager software dependencies - `pre-commit` framework **Skills:** From e8223886f3c351087b3ee955d3c13bf86d68c9a7 Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Tue, 2 Jul 2024 18:15:38 -0700 Subject: [PATCH 08/16] Acknowledgements --- .../software-lifecycle/security/container-security/README.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/guides/software-lifecycle/security/container-security/README.mdx b/docs/guides/software-lifecycle/security/container-security/README.mdx index bc53c785a..28235fb7d 100644 --- a/docs/guides/software-lifecycle/security/container-security/README.mdx +++ b/docs/guides/software-lifecycle/security/container-security/README.mdx @@ -118,6 +118,7 @@ A: Grype relies on free and open software vulnerability databases whereas GitHub **Acknowledgements**: * OPERA SDS Project for implementation guidance +* [@ddalton-swe](https://github.com/ddalton-swe) for tool suggestions --- From ae2c38a5e8b75cfa14a78c9302d2d7a9e670eb45 Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Wed, 3 Jul 2024 10:10:44 -0700 Subject: [PATCH 09/16] Renamed best practice directory --- .../.pre-commit-config.yml | 0 .../README.mdx | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename docs/guides/software-lifecycle/security/{container-security => dependency-vulnerability-scanning}/.pre-commit-config.yml (100%) rename docs/guides/software-lifecycle/security/{container-security => dependency-vulnerability-scanning}/README.mdx (100%) diff --git a/docs/guides/software-lifecycle/security/container-security/.pre-commit-config.yml b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/.pre-commit-config.yml similarity index 100% rename from docs/guides/software-lifecycle/security/container-security/.pre-commit-config.yml rename to docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/.pre-commit-config.yml diff --git a/docs/guides/software-lifecycle/security/container-security/README.mdx b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx similarity index 100% rename from docs/guides/software-lifecycle/security/container-security/README.mdx rename to docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx From 2687593b141c61f8408a8a6a1cf6ccdf416aab7f Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Wed, 3 Jul 2024 10:48:25 -0700 Subject: [PATCH 10/16] Added link to grype page --- .../security/dependency-vulnerability-scanning/README.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx index 28235fb7d..256001067 100644 --- a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx +++ b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx @@ -33,7 +33,7 @@ import PreCommitConfigSource from '!!raw-loader!./.pre-commit-config.yml'; ## Quick Start -**Run a local scan of your container's repository (folder containing the Dockerfile)** +**Run a local scan of your container's repository (folder containing the Dockerfile) using [Grype](https://github.com/anchore/grype)** ```bash grype dir:. From 9004fa5687b572229bb995136a3b3b824d2e7a19 Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Wed, 3 Jul 2024 17:35:31 -0700 Subject: [PATCH 11/16] Wording updates from PR review --- .../security/dependency-vulnerability-scanning/README.mdx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx index 256001067..2637c8555 100644 --- a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx +++ b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx @@ -84,9 +84,10 @@ The below steps, once enacted, will ensure that any local `git commit` actions t 4. Grype-based vulnerability scanning should run every time a `git commit` is invoked. The commit will be blocked if CRITICAL level vulnerabilities are found and will ask the developer to fix them prior to committing. ### Step 3: Set Up Automated Repository Scanning -- **GitHub**: - - We recommend installing the official Grype GitHub action to set up automated dependency vulnerability scanning. Available [at this link](https://github.com/marketplace/actions/anchore-container-scan). - - We also recommend setting up GitHub's official Dependabot action to also look for vulnerabilities. See our [GitHub Security Guide](/docs/guides/software-lifecycle/security/github-security) on this. + +For GitHub users, we recommend: + - Installing the official Grype GitHub action to set up automated dependency vulnerability scanning. The tool is available [at this link](https://github.com/marketplace/actions/anchore-container-scan). + - Setting up GitHub's official Dependabot action to also look for vulnerabilities. See our [GitHub Security Guide](/docs/guides/software-lifecycle/security/github-security) on this. --- From a08d08a0a5923b74b34a93b0477861b4dffd6805 Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Wed, 3 Jul 2024 17:40:12 -0700 Subject: [PATCH 12/16] Fixed typo in pre-commit message --- .../dependency-vulnerability-scanning/.pre-commit-config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/.pre-commit-config.yml b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/.pre-commit-config.yml index b029bf2b9..46bbf6498 100644 --- a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/.pre-commit-config.yml +++ b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/.pre-commit-config.yml @@ -4,5 +4,5 @@ repos: - id: grype-cve-scan name: Grype Vulnerability Scan description: Scans for dependency vulnerabilities. Fails if CRITICAL vulnerabilities detected. - entry: python -c "import subprocess; import sys; result=subprocess.run(['grype', 'dir:.', '--fail-on', 'critical'], capture_output=True); print(result.stdout.decode()); print('CRITICAL vulnerabilities deteced. Please run scan, address issues via `grype dir:.` and `git add` then `git commit` your fix or ignore via `git commit --no-verify`'); sys.exit(result.returncode)" + entry: python -c "import subprocess; import sys; result=subprocess.run(['grype', 'dir:.', '--fail-on', 'critical'], capture_output=True); print(result.stdout.decode()); print('CRITICAL vulnerabilities detected. Please run scan, address issues via `grype dir:.` and `git add` then `git commit` your fix or ignore via `git commit --no-verify`'); sys.exit(result.returncode)" language: system \ No newline at end of file From 427bdcc53e281ce6ad757801e635a193a31f95f2 Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Mon, 29 Jul 2024 18:07:28 -0700 Subject: [PATCH 13/16] Not checking DB updates for speed and better info for developer running precommit check --- .../dependency-vulnerability-scanning/.pre-commit-config.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/.pre-commit-config.yml b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/.pre-commit-config.yml index 46bbf6498..0fa879bb5 100644 --- a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/.pre-commit-config.yml +++ b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/.pre-commit-config.yml @@ -4,5 +4,6 @@ repos: - id: grype-cve-scan name: Grype Vulnerability Scan description: Scans for dependency vulnerabilities. Fails if CRITICAL vulnerabilities detected. - entry: python -c "import subprocess; import sys; result=subprocess.run(['grype', 'dir:.', '--fail-on', 'critical'], capture_output=True); print(result.stdout.decode()); print('CRITICAL vulnerabilities detected. Please run scan, address issues via `grype dir:.` and `git add` then `git commit` your fix or ignore via `git commit --no-verify`'); sys.exit(result.returncode)" - language: system \ No newline at end of file + entry: python -c "import os; import subprocess; import sys; os.environ['GRYPE_DB_AUTO_UPDATE'] = 'false'; result=subprocess.run(['grype', 'dir:.', '--fail-on', 'critical'], capture_output=True); print(result.stdout.decode()); print('CRITICAL level vulnerabilities found. To address issues, run scan via `grype dir:.`, then `git add` followed by `git commit` your fix or ignore via `git commit --no-verify`') if result.returncode != 0 else print('No CRITICAL level vulnerabilities found.'); sys.exit(result.returncode)" + language: system + verbose: true \ No newline at end of file From 0be593d3dfff73498dd3592feb03456c2cf58a39 Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Mon, 29 Jul 2024 18:09:19 -0700 Subject: [PATCH 14/16] Better language --- .../security/dependency-vulnerability-scanning/README.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx index 2637c8555..221c6a68c 100644 --- a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx +++ b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx @@ -65,7 +65,7 @@ Download the file above to access the pre-commit configuration file, which inclu ### Step 2: Setup Automated Local Scanning of Container Vulnerabilities -⚠️ NOTE: We recommend installing this pre-commit hook only if you have already scanned your repository and addressed any vulnerabilities. +⚠️ NOTE: We recommend installing this pre-commit hook only if you have downloaded grype, already scanned your repository and addressed any vulnerabilities. The below steps, once enacted, will ensure that any local `git commit` actions taken will be followed by an automated vulnerability scan. If vulnerabilities at the CRITICAL level are found, the commit will be blocked by default. From 20ab0004df660a3bc8350b565ad007e6df407f4e Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Fri, 2 Aug 2024 13:57:40 -0700 Subject: [PATCH 15/16] Reworded to be container-centric; running scan at push stage --- .../.pre-commit-config.yml | 3 +- .../README.mdx | 43 +++++++++++++++---- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/.pre-commit-config.yml b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/.pre-commit-config.yml index 0fa879bb5..4d3227e6c 100644 --- a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/.pre-commit-config.yml +++ b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/.pre-commit-config.yml @@ -6,4 +6,5 @@ repos: description: Scans for dependency vulnerabilities. Fails if CRITICAL vulnerabilities detected. entry: python -c "import os; import subprocess; import sys; os.environ['GRYPE_DB_AUTO_UPDATE'] = 'false'; result=subprocess.run(['grype', 'dir:.', '--fail-on', 'critical'], capture_output=True); print(result.stdout.decode()); print('CRITICAL level vulnerabilities found. To address issues, run scan via `grype dir:.`, then `git add` followed by `git commit` your fix or ignore via `git commit --no-verify`') if result.returncode != 0 else print('No CRITICAL level vulnerabilities found.'); sys.exit(result.returncode)" language: system - verbose: true \ No newline at end of file + verbose: true + stages: [pre-push] \ No newline at end of file diff --git a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx index 221c6a68c..4d2be82a3 100644 --- a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx +++ b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx @@ -2,15 +2,15 @@ import CodeBlock from '@theme/CodeBlock'; import PreCommitConfigSource from '!!raw-loader!./.pre-commit-config.yml'; -# Dependency Vulnerability Scanning +# Container Vulnerability Scanning -
A guide to scanning packaged software dependencies and container images for security vulnerabilities both manually and automatically.
+
A guide to scanning containers and container repositories for security vulnerabilities both manually and automatically.
![banner-image](/img/vulnerability-scanning-screen.png) ## Introduction -**Background**: To maintain the integrity and security of your applications in production environments, it's essential to monitor dependency vulnerabilities. Third-party software dependencies can harbor security vulnerabilities. This guide focuses on utilizing Grype, an open source vulnerability scanner, to proactively detect vulnerabilities in dependencies defined within packages and container images. +**Background**: To maintain the integrity and security of your containers in production environments, it's essential to monitor dependency vulnerabilities. Third-party software dependencies can harbor security vulnerabilities. This guide focuses on utilizing Grype, an open source vulnerability scanner, to proactively detect vulnerabilities in dependencies defined within container images as well as generally within repositories that use package managers. **Use Cases**: - Scanning container images for vulnerabilities during the development phase @@ -39,15 +39,31 @@ import PreCommitConfigSource from '!!raw-loader!./.pre-commit-config.yml'; grype dir:. ``` -**⬇️ [.pre-commit-config.yml](.pre-commit-config.yml)** +**Run a local scan of a Docker image using Grype** + +First, build the Docker image: +```bash +docker build -t my-app:latest . +``` + +Then, scan the built Docker image: +```bash +grype my-app:latest +``` + +**⬇️ [Grype Scanning .pre-commit-config.yml](.pre-commit-config.yml)** Download the file above to access the pre-commit configuration file, which includes an example hook for Grype vulnerability scanning. This file should be placed within your local Git repository after installing the pre-commit framework. +**⬇️ [Grype GitHub Action](https://github.com/marketplace/actions/anchore-container-scan)** + +GitHub Action for Grype vulnerability scanning. + --- ## Step-by-Step Guide -### Step 1: Setup Automated Local Scanning of Container Vulnerabilities +### Step 1: Scan Locally for Container Vulnerabilities 1. Ensure Grype is installed on your system. You can install Grype from [the official repository](https://github.com/anchore/grype). @@ -61,7 +77,19 @@ Download the file above to access the pre-commit configuration file, which inclu grype dir:. ``` -3. If you find vulnerabilities, fix them via your package manager. +3. To scan a Docker image, first build the Docker image: + + ```bash + docker build -t my-app:latest . + ``` + +4. Then, perform a scan of the built Docker image: + + ```bash + grype my-app:latest + ``` + +5. If you find vulnerabilities, fix them via your package manager. ### Step 2: Setup Automated Local Scanning of Container Vulnerabilities @@ -81,7 +109,7 @@ The below steps, once enacted, will ensure that any local `git commit` actions t pre-commit install ``` -4. Grype-based vulnerability scanning should run every time a `git commit` is invoked. The commit will be blocked if CRITICAL level vulnerabilities are found and will ask the developer to fix them prior to committing. +4. Grype-based vulnerability scanning should run every time a `git push` is invoked. The push will be blocked if CRITICAL level vulnerabilities are found and will ask the developer to fix them prior to committing. Otherwise a report will be provided for reference. ### Step 3: Set Up Automated Repository Scanning @@ -109,7 +137,6 @@ A: Yes, you can incorporate scans into your CI/CD pipeline or utilize other repo A: Grype relies on free and open software vulnerability databases whereas GitHub's Dependabot may be using proprietary methods. In our testing, we've found some non-overlapping vulnerabilities that are sometimes found in one tool but not the other. - --- ## Credits From 93199f34d88943989aebb63c421a66fcb362fc3d Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Thu, 29 Aug 2024 21:16:58 -0700 Subject: [PATCH 16/16] Clarified local dir scan and ensure pre-commit scans only upon push --- .../security/dependency-vulnerability-scanning/README.mdx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx index 4d2be82a3..2ce60499e 100644 --- a/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx +++ b/docs/guides/software-lifecycle/security/dependency-vulnerability-scanning/README.mdx @@ -71,7 +71,7 @@ GitHub Action for Grype vulnerability scanning. grype version ``` -2. Perform a scan of the local repository for vulnerabilities: +2. Perform a scan of the local repository for vulnerabilities. The below checks for vulnerabilities via any common package managers that are detected in your repository. See [Grype supported sources](https://github.com/anchore/grype?tab=readme-ov-file#supported-sources) for more information. ```bash grype dir:. @@ -95,7 +95,9 @@ GitHub Action for Grype vulnerability scanning. ⚠️ NOTE: We recommend installing this pre-commit hook only if you have downloaded grype, already scanned your repository and addressed any vulnerabilities. -The below steps, once enacted, will ensure that any local `git commit` actions taken will be followed by an automated vulnerability scan. If vulnerabilities at the CRITICAL level are found, the commit will be blocked by default. +⚠️ NOTE: The automated scan described below will NOT check for image vulnerabilities, rather, it uses the package dependency capability of Grype to look for third-party dependencies via `grype dir:.` + +The below steps, once enacted, will ensure that any local `git push` actions taken will be followed by an automated vulnerability scan. If vulnerabilities at the CRITICAL level are found, the push will be blocked by default. 1. Install the pre-commit framework via Python: ```bash