DEV Community

Prashant Lakhera
Prashant Lakhera

Posted on

🤖 End to end LLMOps Pipeline - Part 4 - Trivy 🤖

In part 3 of this series, we built the Docker image. However, before pushing the image to a container registry, it's crucial to scan it for vulnerabilities. This is where tools like Trivy come in handy.

What is Trivy
Trivy is an open-source vulnerability scanner from Aqua Security that excels in identifying vulnerabilities in containers and other system components. It's designed to be comprehensive, easy to integrate, and fast, with a high level of accuracy. Whether you're a developer or part of a DevOps team, Trivy helps you secure your software by detecting vulnerabilities in operating system packages (such as RHEL, CentOS, Alpine, etc) and application dependencies (like npm, yarn, etc).

Key Features of Trivy

  1. Open Source Trivy is freely available to anyone. The open-source nature of Trivy means that it benefits from community contributions and widespread adoption, which in turn enhances the tool's capabilities and reliability.
  2. Vulnerability Scanning Trivy specializes in scanning containers, code repositories, and other artifacts for vulnerabilities. It quickly identifies known issues, enabling developers to secure their projects more effectively.
  3. Easy Integration Designed with simplicity in mind, Trivy integrates seamlessly into CI/CD pipelines. It is user-friendly and can be deployed swiftly within any project, making it ideal for continuous security checks during the development process.
  4. Comprehensive Reports Trivy provides detailed, understandable reports about vulnerabilities, including severity levels and potential fixes. This information is crucial for prioritizing security issues and addressing risks effectively in the software development lifecycle.
  5. Frequent Updates To maintain its effectiveness, Trivy's vulnerability database is regularly updated. This ensures that new vulnerabilities are quickly detected and addressed, keeping your systems secure.
  6. Wide Compatibility

Trivy supports a wide array of programming languages and packaging formats, ensuring broad compatibility across different environments. It's designed to scan a variety of operating systems and environments, providing developers with the flexibility they need to maintain comprehensive coverage.

Installing Trivy
Installing Trivy is straightforward, especially on systems that support Docker. Below are the steps to get Trivy up and running:

Prerequisites
Docker installed on your local machine.

Installation
You can install Trivy directly on your local machine using the following command:

curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b /usr/local/bin
Enter fullscreen mode Exit fullscreen mode

This command downloads and installs Trivy, placing the executable in /usr/local/bin.

Alternatively, you can use Docker to run Trivy:

docker pull aquasec/trivy:latest
Enter fullscreen mode Exit fullscreen mode

Scanning a Docker Image
Once Trivy is installed, scanning a Docker image for vulnerabilities is simple. Use the following command:

trivy image --severity HIGH,CRITICAL <image_name>
Enter fullscreen mode Exit fullscreen mode

This command scans the specified image and reports only the vulnerabilities with HIGH and CRITICAL severities.

Interpreting the Scan Results
After scanning, Trivy outputs a list of vulnerabilities categorized by severity (LOW, MEDIUM, HIGH, CRITICAL). Each entry in the report includes:
Vulnerability ID: The unique identifier of the vulnerability.
Package Name: The affected package or dependency.
Installed Version: The version of the package currently installed in the image.
Fixed Version: The version in which the vulnerability has been fixed.
Severity: The level of threat posed by the vulnerability.

Example Output:
fastapi-app (alpine 3.13.5) ============================ Total: 3 (UNKNOWN: 0, LOW: 1, MEDIUM: 1, HIGH: 1, CRITICAL: 0) +---------------+------------------+----------+-------------------+---------------+--------------------------------+ | VULNERABILITY | PACKAGE | SEVERITY | INSTALLED VERSION | FIXED VERSION | DESCRIPTION | +---------------+------------------+----------+-------------------+---------------+--------------------------------+ | CVE-2021-1234 | alpine-foo | HIGH | 1.2.3 | 1.2.4 | Description of the vulnerability| +---------------+------------------+----------+-------------------+---------------+--------------------------------+ | CVE-2021-5678 | alpine-bar | MEDIUM | 4.5.6 | 4.5.7 | Description of the vulnerability| +---------------+------------------+----------+-------------------+---------------+--------------------------------+ | CVE-2021-9101 | alpine-baz | LOW | 7.8.9 | 7.8.10 | Description of the vulnerability| +---------------+------------------+----------+-------------------+---------------+--------------------------------+
Enter fullscreen mode Exit fullscreen mode

Conclusion
Trivy is a versatile tool that fits seamlessly into the security practices of modern development workflows. Its comprehensive scanning capabilities, ease of integration, and detailed reporting make it an invaluable tool for developers and security professionals alike. By incorporating Trivy into your CI/CD pipelines, you can ensure that vulnerabilities are detected and addressed before they become a problem.

Image description

📚 If you'd like to learn more about this topic, please check out my book. Building an LLMOps Pipeline Using Hugging Face
https://pratimuniyal.gumroad.com/l/BuildinganLLMOpsPipelineUsingHuggingFace

Top comments (0)