I want to share my experience using vulnerability scannersandother open-source projects for security. First, we need container scanning to make our app and solution secure and safe. The central concept of container scanning is to scan OS packages and programming language dependencies. Security scanning helps to detect common vulnerabilities and exposures (CVE). The modern proactive security approach provides integration container scanning in CI/CD pipelines.This approach helps detect and fix vulnerabilities in code, containers, andInfrastructure-as-code (IaC)conf files before release or deployment.
Scanners pull the image from the Docker registry and try to analyze each layer. After the first running, scanners will download their vulnerability database. | | | Then, after each running, the community -security specialist, vendors, etc. -identifies, defines, and adds publicly disclosed cybersecurity vulnerabilities to the catalog. (Remember to keep in mind that when you run some scanners on your server or laptop, they can take some time to update their database.)
Usually, scanners and other security tools use multiple resources for their database:
As a result, we see the output with a list of vulnerabilities -e.g., name of components or libraries, vulnerability ID, severity level (unknown, negligible, low, medium, high), and Software Bill of Materials (SBOM) format. Using output, we can see or write in a file in which package version vulnerabilities were fixed. This information can help change/update packages or base the image on the secure one.
I chose to compare two differentopen sourcevulnerability scanners.Trivy and Grypeare comprehensive scanners for vulnerabilities in container images, file systems, and GIT repositories. For the scanning and analytics,I chose the Debian image, as it's more stable for production (greetings to alpine).
Part of the Grype output
Part of the Trivy output
Using Trivy offers a couple advantages:
Both projects can write output in JSON and XML using templates. This is beneficial when integrating scanners in CI/CD, or using the report for another custom workflow. However, information from Trivy looks more informative due to the vulnerability abstract and extra links with descriptions.
Part of Trivy output in JSON
There is a tool for detection and management of Software Bill Of Materials (SBOM) vulnerabilities called KubeClarity. It scans both runtime K8s clusters and CI/CD pipelines for enhanced software supply chain security.
The KubeClarity vulnerability scanner integrates with the scanners Grype (that we observed above) and Dependency-Track.
KubeClarity Dashboard
KubeClarity Dashboard
Based on my experience, I saw these advantages in KubeClarity:
If you are new to this, let me suggest the DevNet learning track Container Introduction to containers and container management. If you already work with containers and open-source projects, choose a related scanner and use it for your project. If you already have a Kubernetes cluster, you can easily install KubeClarity in a K8s cluster using Helm, and make the KubeClarity UI visible using port-forward and LoadBalancer for the kubeclarity-kubeclarity service.
I hope this helps. Here are some resources where you can learn more:
We'd love to hear what you think. Ask a question or leave a comment below.
And stay connected with Cisco DevNet on social!
LinkedIn | Twitter @CiscoDevNet | Facebook | Developer Video Channel