Skip to content

CheckmarxDev/containers-resolver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

containers-resolver

This Go module simplifies the process of analyzing images by providing tools to extract images from various file formats and resolve the software packages within them. It enables users to gain insights into the contents of Docker images, facilitating tasks such as vulnerability assessments and software inventory management. With support for debugging and flexible extraction methods, it's a valuable resource for developers, DevOps engineers, and security professionals working with containerized environments.

Supported File Types for Package Analysis

This module supports scanning and analyzing the following types of files to extract Docker images and resolve their associated packages:

  • Dockerfile: Dockerfiles are text documents that contain all the commands a user could call on the command line to assemble an image. This module can parse Dockerfiles to identify image dependencies and extract Docker images specified within them.

  • Docker Compose Files: Docker Compose is a tool used to define and run multi-container Docker applications. This module can process Docker Compose YAML files to extract Docker images referenced within them, enabling analysis of the entire application stack.

  • Helm Charts: Helm is a package manager for Kubernetes that provides a way to define, install, and manage Kubernetes applications. Helm charts, which are YAML files, define the structure and configuration of Kubernetes resources. This module can parse Helm charts to extract Docker images used in deploying Kubernetes applications.

By supporting these file types, this module offers versatility in scanning and analyzing various sources of Docker images, catering to different deployment scenarios and containerization strategies.

Installation

You can install this module using Go modules.

go get github.com/CheckmarxDev/containers-resolver

Usage

To use this module, import it in your Go code and call the Resolve function with appropriate parameters:

import (
    "fmt"
    "github.com/your-username/your-repo/module"
)

func main() {
    err := module.Resolve(scanPath, resolutionFolderPath, images, isDebug)
    if err != nil {
        fmt.Printf("Error occurred: %v\n", err)
        // Handle error
        return
    }
    fmt.Println("Resolution successful!")
}

Functionality Overview

Resolve The Resolve function scans Docker images and extracts their SBOMs.

func Resolve(scanPath string, resolutionFolderPath string, images []string, isDebug bool) error

Parameters

  • scanPath: Path to the directory containing source code (can be a folder path or a path to zipped files).
  • resolutionFolderPath: Path to the folder where resolution results will be saved.
  • images: List of image names to scan besids what is found in the scanPath folder.
  • isDebug: Boolean flag indicating whether logging debug mode is enabled.

Returns

error: Returns an error if any operation fails.

License

This module is distributed under the MIT License.

Contributing

Contributions are welcome! Please follow the guidelines outlined in the CONTRIBUTING.md file.

Additional Information

  • Requires Go version 1.21.8 or later.
  • Compatible with Linux, macOS, and Windows.