Documentation
¶
Overview ¶
Package scalibr provides an interface for running software inventory extraction and security finding detection on a machine.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CmpPackages ¶ added in v0.2.0
CmpPackages is a comparison helper fun to be used for sorting Package structs.
Types ¶
type ScanConfig ¶
type ScanConfig struct { Plugins []plugin.Plugin // Capabilities that the scanning environment satisfies, e.g. whether there's // network access. Some plugins can only run if certain requirements are met. Capabilities *plugin.Capabilities // ScanRoots contain the list of root dir used by file walking during extraction. // All extractors and detectors will assume files are relative to these dirs. // Example use case: Scanning a container image or source code repo that is // mounted to a local dir. ScanRoots []*scalibrfs.ScanRoot // Optional: Individual file or dir paths to extract inventory from. If specified, // the extractors will only look at the specified files or at the contents of the // specified directories during the filesystem traversal. // Note that on real filesystems these are not relative to the ScanRoots and // thus need to be in sub-directories of one of the ScanRoots. PathsToExtract []string // Optional: If true, only the files in the top-level directories in PathsToExtract are // extracted and sub-directories are ignored. IgnoreSubDirs bool // Optional: Directories that the file system walk should ignore. // Note that on real filesystems these are not relative to the ScanRoots and // thus need to be in sub-directories of one of the ScanRoots. // TODO(b/279413691): Also skip local paths, e.g. "Skip all .git dirs" DirsToSkip []string // Optional: If the regex matches a directory, it will be skipped. SkipDirRegex *regexp.Regexp // Optional: If the glob matches a directory, it will be skipped. SkipDirGlob glob.Glob // Optional: Files larger than this size in bytes are skipped. If 0, no limit is applied. MaxFileSize int // Optional: Skip files declared in .gitignore files in source repos. UseGitignore bool // Optional: stats allows to enter a metric hook. If left nil, no metrics will be recorded. Stats stats.Collector // Optional: Whether to read symlinks. ReadSymlinks bool // Optional: Limit for visited inodes. If 0, no limit is applied. MaxInodes int // Optional: By default, inventories stores a path relative to the scan root. If StoreAbsolutePath // is set, the absolute path is stored instead. StoreAbsolutePath bool // Optional: If true, print a detailed analysis of the duration of each extractor. PrintDurationAnalysis bool // Optional: If true, fail the scan if any permission errors are encountered. ErrorOnFSErrors bool }
ScanConfig stores the config settings of a scan run such as the plugins to use and the dir to consider the root of the scanned system.
func (*ScanConfig) EnableRequiredPlugins ¶ added in v0.3.1
func (cfg *ScanConfig) EnableRequiredPlugins() error
EnableRequiredPlugins adds those plugins to the config that are required by enabled plugins (such as Detectors or Enrichers) but have not been explicitly enabled.
func (*ScanConfig) ValidatePluginRequirements ¶ added in v0.1.3
func (cfg *ScanConfig) ValidatePluginRequirements() error
ValidatePluginRequirements checks that the scanning environment's capabilities satisfy the requirements of all enabled plugin.
type ScanResult ¶
type ScanResult = result.ScanResult
ScanResult stores the results of a scan incl. scan status and inventory found. TODO: b/425645186 - Remove this alias once all callers are migrated to the result package.
type Scanner ¶
type Scanner struct{}
Scanner is the main entry point of the scanner.
func (Scanner) Scan ¶
func (Scanner) Scan(ctx context.Context, config *ScanConfig) (sr *ScanResult)
Scan executes the extraction/detection/annotation/etc. plugins using the provided scan config.
func (Scanner) ScanContainer ¶ added in v0.1.6
func (s Scanner) ScanContainer(ctx context.Context, img image.Image, config *ScanConfig) (sr *ScanResult, err error)
ScanContainer scans the provided container image for packages and security findings using the provided scan config. It populates the LayerDetails field of the packages with the origin layer details. Functions to create an Image from a tarball, remote name, or v1.Image are available in the artifact/image/layerscanning/image package.
Directories
¶
Path | Synopsis |
---|---|
Package annotator provides the interface for annotation plugins.
|
Package annotator provides the interface for annotation plugins. |
cachedir
Package cachedir implements an annotator for packages that are in cache directories.
|
Package cachedir implements an annotator for packages that are in cache directories. |
ffa/unknownbinariesanno
Package unknownbinariesanno removes all packages extracted by unknown binaries filters out the known binaries, and records the remaining as a finding.
|
Package unknownbinariesanno removes all packages extracted by unknown binaries filters out the known binaries, and records the remaining as a finding. |
ffa/unknownbinariesanno/internal/apkfilter
Package apkfilter filters out binaries that are part of an apk package.
|
Package apkfilter filters out binaries that are part of an apk package. |
ffa/unknownbinariesanno/internal/dpkgfilter
Package dpkgfilter filters out binaries that are part of a dpkg package
|
Package dpkgfilter filters out binaries that are part of a dpkg package |
ffa/unknownbinariesanno/internal/filter
Package filter defines the interface to implement a unknown binary filter.
|
Package filter defines the interface to implement a unknown binary filter. |
list
Package list provides a list of annotation plugins.
|
Package list provides a list of annotation plugins. |
misc/fromnpm
Package fromnpm implements an annotator for packages that were installed from the NPM repositories.
|
Package fromnpm implements an annotator for packages that were installed from the NPM repositories. |
noexecutable/dpkg
Package dpkg implements an annotator for DPKG packages that don't contain any executables.
|
Package dpkg implements an annotator for DPKG packages that don't contain any executables. |
osduplicate
Package osduplicate implements utility functions for identifying inventory duplicates found in OS packages.
|
Package osduplicate implements utility functions for identifying inventory duplicates found in OS packages. |
osduplicate/apk
Package apk implements an annotator for language packages that have already been found in APK OS packages.
|
Package apk implements an annotator for language packages that have already been found in APK OS packages. |
osduplicate/cos
Package cos implements an annotator for language packages that have already been found in COS OS packages.
|
Package cos implements an annotator for language packages that have already been found in COS OS packages. |
osduplicate/dpkg
Package dpkg implements an annotator for language packages that have already been found in DPKG OS packages.
|
Package dpkg implements an annotator for language packages that have already been found in DPKG OS packages. |
osduplicate/rpm
Package rpm implements an annotator for language packages that have already been found in RPM OS packages.
|
Package rpm implements an annotator for language packages that have already been found in RPM OS packages. |
testing/dpkgutil
Package dpkgutil provides test utilities for DPKG annotators.
|
Package dpkgutil provides test utilities for DPKG annotators. |
artifact
|
|
image
Package image provides functionality to scan a container image by layers for software inventory.
|
Package image provides functionality to scan a container image by layers for software inventory. |
image/layerscanning/image
Package image provides functionality to scan a linux container image by layers for software inventory.
|
Package image provides functionality to scan a linux container image by layers for software inventory. |
image/layerscanning/testing/fakechainlayer
Package fakechainlayer provides a fake implementation of the image.ChainLayer and scalibrfs.FS interface for testing purposes.
|
Package fakechainlayer provides a fake implementation of the image.ChainLayer and scalibrfs.FS interface for testing purposes. |
image/layerscanning/testing/fakeimage
Package fakeimage provides a fake implementation of the image.Image interface for testing purposes.
|
Package fakeimage provides a fake implementation of the image.Image interface for testing purposes. |
image/layerscanning/testing/fakelayer
Package fakelayer provides a fake implementation of the image.Layer interface for testing purposes.
|
Package fakelayer provides a fake implementation of the image.Layer interface for testing purposes. |
image/layerscanning/testing/fakelayerbuilder
Package fakelayerbuilder uses a yaml file with custom syntax to build up fake layers for testing
|
Package fakelayerbuilder uses a yaml file with custom syntax to build up fake layers for testing |
image/layerscanning/testing/fakev1layer
Package fakev1layer provides a fake implementation of the v1.Layer interface for testing purposes.
|
Package fakev1layer provides a fake implementation of the v1.Layer interface for testing purposes. |
image/layerscanning/trace
Package trace provides functionality to trace the origin of an inventory in a container image.
|
Package trace provides functionality to trace the origin of an inventory in a container image. |
image/require
Package require provides an interface for specifying which files we are interested in during a container image extraction.
|
Package require provides an interface for specifying which files we are interested in during a container image extraction. |
image/symlink
Package symlink provides symlink-related util functions for container extraction.
|
Package symlink provides symlink-related util functions for container extraction. |
image/tar
Package tar provides functionality for saving a container image to a tarball.
|
Package tar provides functionality for saving a container image to a tarball. |
image/unpack
Package unpack contains functions to unpack an image.
|
Package unpack contains functions to unpack an image. |
image/whiteout
Package whiteout defines and implements whiteout related functions to be used in the layer scanning methods and functions.
|
Package whiteout defines and implements whiteout related functions to be used in the layer scanning methods and functions. |
binary
|
|
cdx
Package cdx provides utilities for writing CycloneDX documents to the filesystem.
|
Package cdx provides utilities for writing CycloneDX documents to the filesystem. |
cli
Package cli defines the structures to store the CLI flags used by the scanner binary.
|
Package cli defines the structures to store the CLI flags used by the scanner binary. |
platform
Package platform provides platform-specific functionality.
|
Package platform provides platform-specific functionality. |
proto
Package proto provides protobuf related utilities for the SCALIBR binary.
|
Package proto provides protobuf related utilities for the SCALIBR binary. |
scalibr
command
The scalibr command wraps around the SCALIBR library to create a standalone CLI for extraction + detection with direct access to the local machine's filesystem.
|
The scalibr command wraps around the SCALIBR library to create a standalone CLI for extraction + detection with direct access to the local machine's filesystem. |
scanrunner
Package scanrunner provides the main function for running a scan with the SCALIBR binary.
|
Package scanrunner provides the main function for running a scan with the SCALIBR binary. |
spdx
Package spdx provides utilities for writing SPDX documents to the filesystem.
|
Package spdx provides utilities for writing SPDX documents to the filesystem. |
clients
|
|
clienttest
Package clienttest provides mock servers for testing.
|
Package clienttest provides mock servers for testing. |
datasource
Package datasource provides clients to fetch data from different APIs.
|
Package datasource provides clients to fetch data from different APIs. |
depsdev/v1alpha1/grpcclient
Package grpcclient provides a GRPC client for the deps.dev API.
|
Package grpcclient provides a GRPC client for the deps.dev API. |
internal/pypi
Package pypi defines the structures to parse PyPI JSON API response.
|
Package pypi defines the structures to parse PyPI JSON API response. |
resolution
Package resolution provides clients required by dependency resolution.
|
Package resolution provides clients required by dependency resolution. |
common
|
|
linux/proc
Package proc provides utilities to parse /proc files.
|
Package proc provides utilities to parse /proc files. |
windows/registry
Package registry provides an interface to abstract the Windows registry libraries away.
|
Package registry provides an interface to abstract the Windows registry libraries away. |
Package converter provides utility functions for converting SCALIBR's scan results to standardized inventory formats.
|
Package converter provides utility functions for converting SCALIBR's scan results to standardized inventory formats. |
Package depsdev contains constants and mappings for the deps.dev API.
|
Package depsdev contains constants and mappings for the deps.dev API. |
Package detector provides the interface for security-related detection plugins.
|
Package detector provides the interface for security-related detection plugins. |
cis/generic_linux/etcpasswdpermissions
Package etcpasswdpermissions implements a detector for the "Ensure permissions on /etc/passwd- are configured" CIS check.
|
Package etcpasswdpermissions implements a detector for the "Ensure permissions on /etc/passwd- are configured" CIS check. |
cve/untested/cve202011978
Package cve202011978 implements a detector for CVE-2020-11978.
|
Package cve202011978 implements a detector for CVE-2020-11978. |
cve/untested/cve202016846
Package cve202016846 implements a detector for CVE-2020-16846.
|
Package cve202016846 implements a detector for CVE-2020-16846. |
cve/untested/cve202233891
Package cve202233891 implements a detector for CVE-2022-33891.
|
Package cve202233891 implements a detector for CVE-2022-33891. |
cve/untested/cve202338408
Package cve202338408 implements a detector for CVE-2023-38408.
|
Package cve202338408 implements a detector for CVE-2023-38408. |
cve/untested/cve20236019
Package cve20236019 implements a SCALIBR Detector for CVE-2023-6019 To test, install a vulnerable Ray version: python3 -m pip install ray==2.6.3 Start the Ray dashboard: python3 -c "import ray; context = ray.init(); print(context)" Run the detector
|
Package cve20236019 implements a SCALIBR Detector for CVE-2023-6019 To test, install a vulnerable Ray version: python3 -m pip install ray==2.6.3 Start the Ray dashboard: python3 -c "import ray; context = ray.init(); print(context)" Run the detector |
cve/untested/cve20242912
Package cve20242912 implements a detector for CVE-2024-2912.
|
Package cve20242912 implements a detector for CVE-2024-2912. |
detectorrunner
Package detectorrunner provides a Run function to help with running detectors
|
Package detectorrunner provides a Run function to help with running detectors |
endoflife/linuxdistro
Package linuxdistro implements a detector for End-of-Life Linux distributions
|
Package linuxdistro implements a detector for End-of-Life Linux distributions |
govulncheck/binary
Package binary implements a detector that uses govulncheck to scan for vulns on Go binaries found on the filesystem.
|
Package binary implements a detector that uses govulncheck to scan for vulns on Go binaries found on the filesystem. |
list
Package list provides a public list of SCALIBR-internal detection plugins.
|
Package list provides a public list of SCALIBR-internal detection plugins. |
misc/dockersocket
Package dockersocket implements a detector for Docker socket exposure vulnerabilities.
|
Package dockersocket implements a detector for Docker socket exposure vulnerabilities. |
weakcredentials/codeserver
Package codeserver contains a detector for weak credentials in Code-Server https://github.com/coder/code-server/.
|
Package codeserver contains a detector for weak credentials in Code-Server https://github.com/coder/code-server/. |
weakcredentials/etcshadow
Package etcshadow implements a detector for weak/guessable passwords stored in /etc/shadow.
|
Package etcshadow implements a detector for weak/guessable passwords stored in /etc/shadow. |
weakcredentials/filebrowser
Package filebrowser implements a detector for weak/guessable passwords on a filebrowser instance.
|
Package filebrowser implements a detector for weak/guessable passwords on a filebrowser instance. |
weakcredentials/winlocal
Package winlocal implements a weak passwords detector for local accounts on Windows.
|
Package winlocal implements a weak passwords detector for local accounts on Windows. |
weakcredentials/winlocal/samreg
Package samreg provides a wrapper around the SAM registry.
|
Package samreg provides a wrapper around the SAM registry. |
weakcredentials/winlocal/systemreg
Package systemreg provides a wrapper around the SYSTEM registry.
|
Package systemreg provides a wrapper around the SYSTEM registry. |
Package enricher provides the interface for enrichment plugins.
|
Package enricher provides the interface for enrichment plugins. |
baseimage
Package baseimage enriches inventory layer details with potential base images from deps.dev.
|
Package baseimage enriches inventory layer details with potential base images from deps.dev. |
enricherlist
Package enricherlist provides methods to initialize enrichers from attributes like names or capabilities.
|
Package enricherlist provides methods to initialize enrichers from attributes like names or capabilities. |
huggingfacemeta
Package huggingfacemeta contains an Enricher that adds additional metadata to each Huggingface keys based on the API response
|
Package huggingfacemeta contains an Enricher that adds additional metadata to each Huggingface keys based on the API response |
license
Package license contains an Enricher that adds license data to software packages by querying deps.dev
|
Package license contains an Enricher that adds license data to software packages by querying deps.dev |
license/fakeclient
Package fakeclient contains a fake implementation of the deps.dev client for testing purposes.
|
Package fakeclient contains a fake implementation of the deps.dev client for testing purposes. |
reachability/java
Package java provides an Enricher to add reachability annotations for Java Packages.
|
Package java provides an Enricher to add reachability annotations for Java Packages. |
secrets
Package secrets contains an Enricher that uses Veles Validators to validate Secrets found by the Veles Extractor.
|
Package secrets contains an Enricher that uses Veles Validators to validate Secrets found by the Veles Extractor. |
secrets/convert
Package convert provides a utility function for converting Veles plugins (Detectors and Validators) to SCALIBR core plugins (FilesystemExtractors and Enrichers)
|
Package convert provides a utility function for converting Veles plugins (Detectors and Validators) to SCALIBR core plugins (FilesystemExtractors and Enrichers) |
transitivedependency/requirements
Package requirements implements an enricher to perform dependency resolution for Python requirements.txt.
|
Package requirements implements an enricher to perform dependency resolution for Python requirements.txt. |
vex/filter
Package filter defines an enricher that filters out vulns with VEX signals.
|
Package filter defines an enricher that filters out vulns with VEX signals. |
vulnmatch/osvdev
Package osvdev queries the OSV.dev API to find vulnerabilities in the inventory packages
|
Package osvdev queries the OSV.dev API to find vulnerabilities in the inventory packages |
vulnmatch/osvdev/fakeclient
Package fakeclient contains a mock implementation of the OSV.dev client for testing purposes.
|
Package fakeclient contains a mock implementation of the OSV.dev client for testing purposes. |
Package extractor provides the common interface for standalone and filesystem extractors.
|
Package extractor provides the common interface for standalone and filesystem extractors. |
filesystem
Package filesystem provides the interface for inventory extraction plugins.
|
Package filesystem provides the interface for inventory extraction plugins. |
filesystem/containers/containerd
Package containerd extracts container package from containerd metadb database.
|
Package containerd extracts container package from containerd metadb database. |
filesystem/containers/dockerbaseimage
Package dockerbaseimage extracts base image urls from Dockerfiles.
|
Package dockerbaseimage extracts base image urls from Dockerfiles. |
filesystem/containers/podman
Package podman extracts container inventory from podman database.
|
Package podman extracts container inventory from podman database. |
filesystem/ffa/unknownbinariesextr
Package unknownbinariesextr identifies binary files on the filesystem and adds them as packages.
|
Package unknownbinariesextr identifies binary files on the filesystem and adds them as packages. |
filesystem/internal
Package internal contains miscellaneous functions and objects useful within Scalibr
|
Package internal contains miscellaneous functions and objects useful within Scalibr |
filesystem/internal/units
Package units provides constants for common units.
|
Package units provides constants for common units. |
filesystem/language/asdf
Package asdf extracts the installed language runtime names and versions from asdf .tool-version files.
|
Package asdf extracts the installed language runtime names and versions from asdf .tool-version files. |
filesystem/language/asdf/metadata
Package metadata defines a metadata struct for Asdf Tools.
|
Package metadata defines a metadata struct for Asdf Tools. |
filesystem/language/cpp/conanlock
Package conanlock extracts conan.lock files.
|
Package conanlock extracts conan.lock files. |
filesystem/language/dart/pubspec
Package pubspec extracts Dart pubspec.lock files.
|
Package pubspec extracts Dart pubspec.lock files. |
filesystem/language/dotnet/depsjson
Package depsjson extracts packages from .NET deps.json files.
|
Package depsjson extracts packages from .NET deps.json files. |
filesystem/language/dotnet/dotnetpe
Package dotnetpe extracts packages from .NET PE files.
|
Package dotnetpe extracts packages from .NET PE files. |
filesystem/language/dotnet/packagesconfig
Package packagesconfig extracts packages from .NET packages.config files.
|
Package packagesconfig extracts packages from .NET packages.config files. |
filesystem/language/dotnet/packageslockjson
Package packageslockjson extracts packages.lock.json files.
|
Package packageslockjson extracts packages.lock.json files. |
filesystem/language/elixir/mixlock
Package mixlock extracts elixir mix.lock files.
|
Package mixlock extracts elixir mix.lock files. |
filesystem/language/erlang/mixlock
Package mixlock extracts erlang mix.lock files.
|
Package mixlock extracts erlang mix.lock files. |
filesystem/language/erlang/mixlock/mixlockutils
Package mixlockutils provides common functions for parsing Mix.lock lockfiles.
|
Package mixlockutils provides common functions for parsing Mix.lock lockfiles. |
filesystem/language/erlang/mixlock/purl
Package purl converts mixlock package details into a mixlock PackageURL.
|
Package purl converts mixlock package details into a mixlock PackageURL. |
filesystem/language/golang/gobinary
Package gobinary extracts packages from buildinfo inside go binaries files.
|
Package gobinary extracts packages from buildinfo inside go binaries files. |
filesystem/language/golang/gomod
Package gomod extracts go.mod files.
|
Package gomod extracts go.mod files. |
filesystem/language/golang/purl
Package purl converts Go package details into a Go PackageURL.
|
Package purl converts Go package details into a Go PackageURL. |
filesystem/language/haskell/cabal
Package cabal extracts cabal.project.freeze files from haskell projects.
|
Package cabal extracts cabal.project.freeze files from haskell projects. |
filesystem/language/haskell/stacklock
Package stacklock extracts stack.yaml.lock files from haskell projects.
|
Package stacklock extracts stack.yaml.lock files from haskell projects. |
filesystem/language/java/archive
Package archive extracts Java archive files.
|
Package archive extracts Java archive files. |
filesystem/language/java/archive/metadata
Package metadata defines a Metadata struct for Java archives.
|
Package metadata defines a Metadata struct for Java archives. |
filesystem/language/java/gradlelockfile
Package gradlelockfile extracts pom.xml files.
|
Package gradlelockfile extracts pom.xml files. |
filesystem/language/java/gradleverificationmetadataxml
Package gradleverificationmetadataxml extracts Gradle files.
|
Package gradleverificationmetadataxml extracts Gradle files. |
filesystem/language/java/groupid
Package groupid provides functionality for retrieving the group ID of a Java package.
|
Package groupid provides functionality for retrieving the group ID of a Java package. |
filesystem/language/java/javalockfile
Package javalockfile provides shared structures for Java extractors.
|
Package javalockfile provides shared structures for Java extractors. |
filesystem/language/java/pomxml
Package pomxml extracts pom.xml files.
|
Package pomxml extracts pom.xml files. |
filesystem/language/java/pomxmlnet
Package pomxmlnet extracts Maven's pom.xml format with transitive dependency resolution.
|
Package pomxmlnet extracts Maven's pom.xml format with transitive dependency resolution. |
filesystem/language/java/purl
Package purl converts a package to a Maven type PackageURL.
|
Package purl converts a package to a Maven type PackageURL. |
filesystem/language/javascript/bunlock
Package bunlock extracts bun.lock files
|
Package bunlock extracts bun.lock files |
filesystem/language/javascript/internal/commitextractor
Package commitextractor provides a function to extract commit hash from the full git URL
|
Package commitextractor provides a function to extract commit hash from the full git URL |
filesystem/language/javascript/packagejson
Package packagejson extracts package.json files.
|
Package packagejson extracts package.json files. |
filesystem/language/javascript/packagejson/metadata
Package metadata defines a metadata struct for Javascript packages.
|
Package metadata defines a metadata struct for Javascript packages. |
filesystem/language/javascript/packagelockjson
Package packagelockjson extracts package-lock.json files.
|
Package packagelockjson extracts package-lock.json files. |
filesystem/language/javascript/pnpmlock
Package pnpmlock extracts pnpm-lock.yaml files.
|
Package pnpmlock extracts pnpm-lock.yaml files. |
filesystem/language/javascript/purl
Package purl converts NPM package details into an NPM PackageURL.
|
Package purl converts NPM package details into an NPM PackageURL. |
filesystem/language/javascript/yarnlock
Package yarnlock extracts NPC yarn.lock files.
|
Package yarnlock extracts NPC yarn.lock files. |
filesystem/language/lua/luarocks
Package luarocks extracts .rockspec files from Lua modules.
|
Package luarocks extracts .rockspec files from Lua modules. |
filesystem/language/nim/nimble
Package nimble extracts .nimble files from installed nimble packages.
|
Package nimble extracts .nimble files from installed nimble packages. |
filesystem/language/php/composerlock
Package composerlock extracts composer.lock files.
|
Package composerlock extracts composer.lock files. |
filesystem/language/python/condameta
Package condameta extracts Conda package metadata from conda-meta JSON files.
|
Package condameta extracts Conda package metadata from conda-meta JSON files. |
filesystem/language/python/pdmlock
Package pdmlock extracts pdm.lock files.
|
Package pdmlock extracts pdm.lock files. |
filesystem/language/python/pipfilelock
Package pipfilelock extracts Pipfile.lock files.
|
Package pipfilelock extracts Pipfile.lock files. |
filesystem/language/python/poetrylock
Package poetrylock extracts poetry.lock files.
|
Package poetrylock extracts poetry.lock files. |
filesystem/language/python/pypipurl
Package pypipurl converts a package to a PyPI type PackageURL.
|
Package pypipurl converts a package to a PyPI type PackageURL. |
filesystem/language/python/requirements
Package requirements extracts requirements files.
|
Package requirements extracts requirements files. |
filesystem/language/python/requirementsnet
Package requirementsnet extracts requirements files with .
|
Package requirementsnet extracts requirements files with . |
filesystem/language/python/setup
Package setup extracts packages from setup.py.
|
Package setup extracts packages from setup.py. |
filesystem/language/python/uvlock
Package uvlock extracts uv.lock files.
|
Package uvlock extracts uv.lock files. |
filesystem/language/python/wheelegg
Package wheelegg extracts wheel and egg files.
|
Package wheelegg extracts wheel and egg files. |
filesystem/language/r/renvlock
Package renvlock extracts renv.lock files.
|
Package renvlock extracts renv.lock files. |
filesystem/language/ruby/gemfilelock
Package gemfilelock extracts Gemfile.lock files.
|
Package gemfilelock extracts Gemfile.lock files. |
filesystem/language/ruby/gemspec
Package gemspec extracts *.gemspec files.
|
Package gemspec extracts *.gemspec files. |
filesystem/language/rust/cargoauditable
Package cargoauditable extracts dependencies from cargo auditable inside rust binaries.
|
Package cargoauditable extracts dependencies from cargo auditable inside rust binaries. |
filesystem/language/rust/cargolock
Package cargolock extracts Cargo.lock files for rust projects
|
Package cargolock extracts Cargo.lock files for rust projects |
filesystem/language/rust/cargotoml
Package cargotoml extracts Cargo.toml files for rust projects
|
Package cargotoml extracts Cargo.toml files for rust projects |
filesystem/language/swift/packageresolved
Package packageresolved extracts Package.resolved files
|
Package packageresolved extracts Package.resolved files |
filesystem/language/swift/podfilelock
Package podfilelock extracts dependencies from Podfile.lock files.
|
Package podfilelock extracts dependencies from Podfile.lock files. |
filesystem/language/swift/swiftutils
Package swiftutils provides utilities for parsing Swift podfiles.
|
Package swiftutils provides utilities for parsing Swift podfiles. |
filesystem/list
Package list provides a public list of SCALIBR-internal extraction plugins.
|
Package list provides a public list of SCALIBR-internal extraction plugins. |
filesystem/misc/chrome/extensions
Package extensions extracts chrome extensions.
|
Package extensions extracts chrome extensions. |
filesystem/misc/vscodeextensions
Package vscodeextensions extracts vscode extensions.
|
Package vscodeextensions extracts vscode extensions. |
filesystem/misc/wordpress/plugins
Package plugins extracts packages from installed Wordpress plugins.
|
Package plugins extracts packages from installed Wordpress plugins. |
filesystem/os/apk
Package apk extracts packages from the APK database.
|
Package apk extracts packages from the APK database. |
filesystem/os/apk/apkutil
Package apkutil provides utilities for reading APK package records.
|
Package apkutil provides utilities for reading APK package records. |
filesystem/os/apk/metadata
Package metadata defines a Metadata struct for apk packages.
|
Package metadata defines a Metadata struct for apk packages. |
filesystem/os/cos
Package cos extracts OS packages from Container Optimized OSes (go/cos).
|
Package cos extracts OS packages from Container Optimized OSes (go/cos). |
filesystem/os/cos/metadata
Package metadata defines a metadata struct for COS packages.
|
Package metadata defines a metadata struct for COS packages. |
filesystem/os/dpkg
Package dpkg extracts packages from dpkg database.
|
Package dpkg extracts packages from dpkg database. |
filesystem/os/dpkg/metadata
Package metadata defined a Metadata struct for DPKG packages.
|
Package metadata defined a Metadata struct for DPKG packages. |
filesystem/os/ecosystem
Package ecosystem converts OS package details into PackageURLs.
|
Package ecosystem converts OS package details into PackageURLs. |
filesystem/os/flatpak
Package flatpak extracts packages from flatpak metainfo files.
|
Package flatpak extracts packages from flatpak metainfo files. |
filesystem/os/flatpak/metadata
Package metadata defines a Metadata struct for flatpak packages.
|
Package metadata defines a Metadata struct for flatpak packages. |
filesystem/os/homebrew
Package homebrew extracts package information from OSX homebrew INSTALL_RECEIPT.json files.
|
Package homebrew extracts package information from OSX homebrew INSTALL_RECEIPT.json files. |
filesystem/os/kernel/module
Package module extracts .ko files from kernel modules.
|
Package module extracts .ko files from kernel modules. |
filesystem/os/kernel/module/metadata
Package metadata defines a metadata struct for kernel modules.
|
Package metadata defines a metadata struct for kernel modules. |
filesystem/os/kernel/vmlinuz
Package vmlinuz extracts information about vmlinuz compressed kernel images.
|
Package vmlinuz extracts information about vmlinuz compressed kernel images. |
filesystem/os/kernel/vmlinuz/metadata
Package metadata defines a metadata struct for kernel vmlinuz files.
|
Package metadata defines a metadata struct for kernel vmlinuz files. |
filesystem/os/macapps
Package macapps extracts applications data from Info.plist files of OS X devices.
|
Package macapps extracts applications data from Info.plist files of OS X devices. |
filesystem/os/macports
Package macports extracts package information from OSX macports Portfile files.
|
Package macports extracts package information from OSX macports Portfile files. |
filesystem/os/macports/metadata
Package metadata defines a metadata struct for Macports packages.
|
Package metadata defines a metadata struct for Macports packages. |
filesystem/os/nix
Package nix extracts packages from the Nix store directory.
|
Package nix extracts packages from the Nix store directory. |
filesystem/os/nix/metadata
Package metadata defines a metadata struct for nix packages.
|
Package metadata defines a metadata struct for nix packages. |
filesystem/os/osrelease
Package osrelease parses the os-release file.
|
Package osrelease parses the os-release file. |
filesystem/os/pacman
Package pacman extracts packages from archlinux desc file.
|
Package pacman extracts packages from archlinux desc file. |
filesystem/os/pacman/metadata
Package metadata defines a metadata struct for arch packages.
|
Package metadata defines a metadata struct for arch packages. |
filesystem/os/portage
Package portage extracts packages from portage database.
|
Package portage extracts packages from portage database. |
filesystem/os/portage/metadata
Package metadata defines a metadata struct for portage packages.
|
Package metadata defines a metadata struct for portage packages. |
filesystem/os/purl
Package purl converts OS package details into PackageURLs.
|
Package purl converts OS package details into PackageURLs. |
filesystem/os/rpm
Package rpm extracts packages from rpm database.
|
Package rpm extracts packages from rpm database. |
filesystem/os/rpm/metadata
Package metadata defines a metadata struct for rpm packages.
|
Package metadata defines a metadata struct for rpm packages. |
filesystem/os/snap
Package snap extracts snap packages
|
Package snap extracts snap packages |
filesystem/os/snap/metadata
Package metadata defines a metadata struct for SNAP packages.
|
Package metadata defines a metadata struct for SNAP packages. |
filesystem/os/winget
Package winget extracts installed packages from Windows Package Manager (Winget) database.
|
Package winget extracts installed packages from Windows Package Manager (Winget) database. |
filesystem/os/winget/metadata
Package metadata defines a Metadata struct for winget packages.
|
Package metadata defines a Metadata struct for winget packages. |
filesystem/osv
Package osv defines OSV-specific fields for parsed source packages.
|
Package osv defines OSV-specific fields for parsed source packages. |
filesystem/sbom/cdx
Package cdx extracts software dependencies from an CycloneDX SBOM.
|
Package cdx extracts software dependencies from an CycloneDX SBOM. |
filesystem/sbom/cdx/metadata
Package metadata defines a Metadata struct for CDX packages.
|
Package metadata defines a Metadata struct for CDX packages. |
filesystem/sbom/cdx/purl
Package purl extracts the PURL from a CDX package.
|
Package purl extracts the PURL from a CDX package. |
filesystem/sbom/spdx
Package spdx extracts software dependencies from an SPDX SBOM.
|
Package spdx extracts software dependencies from an SPDX SBOM. |
filesystem/sbom/spdx/metadata
Package metadata defines a Metadata struct for SPDX packages.
|
Package metadata defines a Metadata struct for SPDX packages. |
filesystem/sbom/spdx/purl
Package purl extracts the PURL from an SPDX package.
|
Package purl extracts the PURL from an SPDX package. |
filesystem/secrets
Package secrets contains a Scalibr filesystem Extractor that wraps the Veles secret scanning library to find secrets (i.e.
|
Package secrets contains a Scalibr filesystem Extractor that wraps the Veles secret scanning library to find secrets (i.e. |
filesystem/secrets/convert
Package convert provides a utility function for converting Veles plugins (Detectors and Validators) to SCALIBR core plugins (FilesystemExtractors and Enrichers)
|
Package convert provides a utility function for converting Veles plugins (Detectors and Validators) to SCALIBR core plugins (FilesystemExtractors and Enrichers) |
filesystem/simplefileapi
Package simplefileapi provides a fake implementation of the filesystem.FileAPI interface.
|
Package simplefileapi provides a fake implementation of the filesystem.FileAPI interface. |
standalone
Package standalone provides a way to extract in a standalone mode (e.g.
|
Package standalone provides a way to extract in a standalone mode (e.g. |
standalone/containers/containerd
Package containerd extracts container inventory from containerd API.
|
Package containerd extracts container inventory from containerd API. |
standalone/containers/containerd/containerdmetadata
Package containerdmetadata defines the metadata for the containerd standalone extractor.
|
Package containerdmetadata defines the metadata for the containerd standalone extractor. |
standalone/containers/containerd/fakeclient
Package fakeclient contains a fake implementation of the containerd client for testing purposes.
|
Package fakeclient contains a fake implementation of the containerd client for testing purposes. |
standalone/containers/docker
Package docker extracts container inventory from docker API.
|
Package docker extracts container inventory from docker API. |
standalone/containers/docker/fakeclient
Package fakeclient contains a fake implementation of the docker client for testing purposes.
|
Package fakeclient contains a fake implementation of the docker client for testing purposes. |
standalone/list
Package list contains the list of all standalone extractors.
|
Package list contains the list of all standalone extractors. |
standalone/os/netports
Package netports extracts open ports on the system and maps them to running processes when possible.
|
Package netports extracts open ports on the system and maps them to running processes when possible. |
standalone/windows/common/metadata
Package metadata provides metadata structures to annotate Windows packages.
|
Package metadata provides metadata structures to annotate Windows packages. |
standalone/windows/common/purl
Package purl converts Windows application package details into a PackageURL.
|
Package purl converts Windows application package details into a PackageURL. |
standalone/windows/common/winproducts
Package winproducts contains information about Windows products.
|
Package winproducts contains information about Windows products. |
standalone/windows/dismpatch
Package dismpatch extract patch level from the DISM command line tool.
|
Package dismpatch extract patch level from the DISM command line tool. |
standalone/windows/dismpatch/dismparser
Package dismparser has methods that can be used to parse DISM output
|
Package dismparser has methods that can be used to parse DISM output |
standalone/windows/ospackages
Package ospackages extracts installed softwares on Windows.
|
Package ospackages extracts installed softwares on Windows. |
standalone/windows/regosversion
Package regosversion extracts the OS version (build, major, minor release) from the registry.
|
Package regosversion extracts the OS version (build, major, minor release) from the registry. |
standalone/windows/regpatchlevel
Package regpatchlevel extract patch level from the Windows registry.
|
Package regpatchlevel extract patch level from the Windows registry. |
Package fs provides a virtual filesystem interface for SCALIBR scans and related helper functions.
|
Package fs provides a virtual filesystem interface for SCALIBR scans and related helper functions. |
diriterate
Package diriterate provides a utility for iterating over the contents of a directory without loading all of it into memory at once.
|
Package diriterate provides a utility for iterating over the contents of a directory without loading all of it into memory at once. |
Package guidedremediation provides vulnerability fixing through dependency updates in manifest and lockfiles.
|
Package guidedremediation provides vulnerability fixing through dependency updates in manifest and lockfiles. |
internal/lockfile
Package lockfile provides methods for parsing and writing lockfiles.
|
Package lockfile provides methods for parsing and writing lockfiles. |
internal/lockfile/npm
Package npm provides the lockfile parsing and writing for the npm package-lock.json format.
|
Package npm provides the lockfile parsing and writing for the npm package-lock.json format. |
internal/lockfile/python
Package python provides the lockfile parsing and writing for requirements.txt.
|
Package python provides the lockfile parsing and writing for requirements.txt. |
internal/manifest
Package manifest provides methods for parsing and writing manifest files.
|
Package manifest provides methods for parsing and writing manifest files. |
internal/manifest/maven
Package maven provides the manifest parsing and writing for the Maven pom.xml format.
|
Package maven provides the manifest parsing and writing for the Maven pom.xml format. |
internal/manifest/npm
Package npm provides the manifest parsing and writing for the npm package.json format.
|
Package npm provides the manifest parsing and writing for the npm package.json format. |
internal/manifest/python
Package python provides the manifest parsing and writing for Python requirements.txt.
|
Package python provides the manifest parsing and writing for Python requirements.txt. |
internal/matchertest
Package matchertest provides mock matcher for testing.
|
Package matchertest provides mock matcher for testing. |
internal/parser
Package parser provides functions for parsing and writing manifest and lockfile files.
|
Package parser provides functions for parsing and writing manifest and lockfile files. |
internal/remediation
Package remediation has the vulnerability remediation implementations.
|
Package remediation has the vulnerability remediation implementations. |
internal/resolution
Package resolution provides dependency graph resolution and vulnerability findings for guided remediation.
|
Package resolution provides dependency graph resolution and vulnerability findings for guided remediation. |
internal/severity
Package severity implements severity calculation for OSV records.
|
Package severity implements severity calculation for OSV records. |
internal/strategy/common
Package common implements functions common to multiple remediation strategies.
|
Package common implements functions common to multiple remediation strategies. |
internal/strategy/inplace
Package inplace implements the in-place remediation strategy.
|
Package inplace implements the in-place remediation strategy. |
internal/strategy/override
Package override implements the override remediation strategy.
|
Package override implements the override remediation strategy. |
internal/strategy/relax
Package relax implements the relax remediation strategy.
|
Package relax implements the relax remediation strategy. |
internal/strategy/relax/relaxer
Package relaxer implements requirement specification relaxation for ecosystems.
|
Package relaxer implements requirement specification relaxation for ecosystems. |
internal/suggest
Package suggest provides the functionality to suggest dependency update patch.
|
Package suggest provides the functionality to suggest dependency update patch. |
internal/tui/components
Package components contains some TUI components for the guided remediation interactive CLI.
|
Package components contains some TUI components for the guided remediation interactive CLI. |
internal/tui/model
Package model provides the program model for the guided remediation interactive tui.
|
Package model provides the program model for the guided remediation interactive tui. |
internal/util
Package util implements some utility functions for guided remediation.
|
Package util implements some utility functions for guided remediation. |
internal/vulns
Package vulns implements local matching for OSV records.
|
Package vulns implements local matching for OSV records. |
matcher
Package matcher provides the interface for the vulnerability matcher used by guided remediation.
|
Package matcher provides the interface for the vulnerability matcher used by guided remediation. |
options
Package options has the configuration options for guided remediation.
|
Package options has the configuration options for guided remediation. |
result
Package result defines the remediation result structs
|
Package result defines the remediation result structs |
strategy
Package strategy provides the guided remediation strategies.
|
Package strategy provides the guided remediation strategies. |
upgrade
Package upgrade provides the configuration for the allowable package upgrade levels for remediation.
|
Package upgrade provides the configuration for the allowable package upgrade levels for remediation. |
internal
|
|
dependencyfile/packagelockjson
Package packagelockjson provides the structures for npm's package-lock.json lockfile format.
|
Package packagelockjson provides the structures for npm's package-lock.json lockfile format. |
mavenutil
Package mavenutil provides utilities for merging Maven pom/xml.
|
Package mavenutil provides utilities for merging Maven pom/xml. |
Package inventory stores the scan result types SCALIBR can return.
|
Package inventory stores the scan result types SCALIBR can return. |
osvecosystem
Package osvecosystem provides the Parsed type which represents an OSV ecosystem string.
|
Package osvecosystem provides the Parsed type which represents an OSV ecosystem string. |
vex
Package vex stores data structures used to represent exploitability signals in SCALIBR scan results.
|
Package vex stores data structures used to represent exploitability signals in SCALIBR scan results. |
Package log defines SCALIBR's logger interface.
|
Package log defines SCALIBR's logger interface. |
Package packageindex is a wrapper around the collected package, which provides methods for fast lookup of identified software.
|
Package packageindex is a wrapper around the collected package, which provides methods for fast lookup of identified software. |
Package plugin collects the common code used by extractor and detector plugins.
|
Package plugin collects the common code used by extractor and detector plugins. |
list
Package list provides a functions for accessing SCALIBR-specific plugins from their respective type-specific lists.
|
Package list provides a functions for accessing SCALIBR-specific plugins from their respective type-specific lists. |
Package purl provides functions to code and decode package url according to the spec: https://github.com/package-url/purl-spec This package is a convenience wrapper and abstraction layer around an existing open source implementation.
|
Package purl provides functions to code and decode package url according to the spec: https://github.com/package-url/purl-spec This package is a convenience wrapper and abstraction layer around an existing open source implementation. |
Package result provides the ScanResult struct.
|
Package result provides the ScanResult struct. |
Package semantic provides version parsing and comparison for various ecosystems, matching the native versioning rules of each ecosystem.
|
Package semantic provides version parsing and comparison for various ecosystems, matching the native versioning rules of each ecosystem. |
Package stats contains interfaces and utilities relating to the collection of statistics from Scalibr.
|
Package stats contains interfaces and utilities relating to the collection of statistics from Scalibr. |
testing
|
|
extracttest
Package extracttest provides structures to help create tabular tests for extractors.
|
Package extracttest provides structures to help create tabular tests for extractors. |
fakedetector
Package fakedetector provides a Detector implementation to be used in tests.
|
Package fakedetector provides a Detector implementation to be used in tests. |
fakeenricher
Package fakeenricher provides an Enricher implementation to be used in tests.
|
Package fakeenricher provides an Enricher implementation to be used in tests. |
fakeextractor
Package fakeextractor provides a Extractor implementation to be used in tests.
|
Package fakeextractor provides a Extractor implementation to be used in tests. |
fakefs
Package fakefs provides a fake file system implementation for testing.
|
Package fakefs provides a fake file system implementation for testing. |
mockregistry
Package mockregistry provides a mock implementation of the registry.Registry interface.
|
Package mockregistry provides a mock implementation of the registry.Registry interface. |
testcollector
Package testcollector provides an implementation of stats.Collector that stores recorded metrics for verification in tests.
|
Package testcollector provides an implementation of stats.Collector that stores recorded metrics for verification in tests. |
Package veles is a standalone secret scanning library.
|
Package veles is a standalone secret scanning library. |
secrets/anthropicapikey
Package anthropicapikey contains Veles Secret types and Detectors for Anthropic API keys.
|
Package anthropicapikey contains Veles Secret types and Detectors for Anthropic API keys. |
secrets/azuretoken
Package azuretoken contains a Veles Secret type and a Detector for [Azure Tokens](https://learn.microsoft.com/en-us/entra/identity-platform/security-tokens#token-endpoints-and-issuers).
|
Package azuretoken contains a Veles Secret type and a Detector for [Azure Tokens](https://learn.microsoft.com/en-us/entra/identity-platform/security-tokens#token-endpoints-and-issuers). |
secrets/common/flatjson
Package flatjson contains facilities to extract credentials that are expressed as a single (flat) JSON object whose values are all strings.
|
Package flatjson contains facilities to extract credentials that are expressed as a single (flat) JSON object whose values are all strings. |
secrets/common/jwt
Package jwt provides utilities for parsing JSON Web Tokens (JWT).
|
Package jwt provides utilities for parsing JSON Web Tokens (JWT). |
secrets/common/simpletoken
Package simpletoken contains a Detector for tokens that can be extracted by scanning a byte array with a regular expression.
|
Package simpletoken contains a Detector for tokens that can be extracted by scanning a byte array with a regular expression. |
secrets/digitaloceanapikey
Package digitaloceanapikey contains a Veles Secret type and a Detector for DigitalOcean API Tokens (prefix `dop_v1_`).
|
Package digitaloceanapikey contains a Veles Secret type and a Detector for DigitalOcean API Tokens (prefix `dop_v1_`). |
secrets/dockerhubpat
Package dockerhubpat contains a Veles Secret type and a Detector for Docker Hub Personal Access Tokens (prefix `dckr_pat_`).
|
Package dockerhubpat contains a Veles Secret type and a Detector for Docker Hub Personal Access Tokens (prefix `dckr_pat_`). |
secrets/gcpapikey
Package gcpapikey contains a Veles Secret type and a Detector for [GCP API keys](https://cloud.google.com/api-keys/docs/overview).
|
Package gcpapikey contains a Veles Secret type and a Detector for [GCP API keys](https://cloud.google.com/api-keys/docs/overview). |
secrets/gcpexpressmode
Package gcpexpressmode contains a Veles Detector for GCP Express Mode API keys.
|
Package gcpexpressmode contains a Veles Detector for GCP Express Mode API keys. |
secrets/gcpsak
Package gcpsak contains a Veles Secret type, a Detector, and a Validator for GCP service account keys.
|
Package gcpsak contains a Veles Secret type, a Detector, and a Validator for GCP service account keys. |
secrets/github
Package github implements the logic to detect Github tokens
|
Package github implements the logic to detect Github tokens |
secrets/gitlabpat
Package gitlabpat contains a Veles Secret type and a Detector for Gitlab Personal Access Tokens (prefix `glpat-`).
|
Package gitlabpat contains a Veles Secret type and a Detector for Gitlab Personal Access Tokens (prefix `glpat-`). |
secrets/grokxaiapikey
Package grokxaiapikey contains a detector and validator for Grok XAI API keys
|
Package grokxaiapikey contains a detector and validator for Grok XAI API keys |
secrets/hashicorpvault
Package hashicorpvault contains Veles Secret types and Detectors for HashiCorp Vault credentials.
|
Package hashicorpvault contains Veles Secret types and Detectors for HashiCorp Vault credentials. |
secrets/huggingfaceapikey
Package huggingfaceapikey contains a Veles Secret type and a Detector for Huggingface API keys (prefix `hf_`).
|
Package huggingfaceapikey contains a Veles Secret type and a Detector for Huggingface API keys (prefix `hf_`). |
secrets/openai
Package openai contains Veles Secret types and Detectors for OpenAI Project API keys.
|
Package openai contains Veles Secret types and Detectors for OpenAI Project API keys. |
secrets/perplexityapikey
Package perplexityapikey contains a Veles Secret type and a Detector for Perplexity API keys (prefix `pplx-`).
|
Package perplexityapikey contains a Veles Secret type and a Detector for Perplexity API keys (prefix `pplx-`). |
secrets/postmanapikey
Package postmanapikey contains detectors and validators for Postman API credentials.
|
Package postmanapikey contains detectors and validators for Postman API credentials. |
secrets/privatekey
Package privatekey provides a detector for identifying private key material in scanned files and data streams.
|
Package privatekey provides a detector for identifying private key material in scanned files and data streams. |
secrets/rubygemsapikey
Package rubygemsapikey contains a Veles Secret type and a Detector for [RubyGems API keys](https://guides.rubygems.org/api-key-scopes/).
|
Package rubygemsapikey contains a Veles Secret type and a Detector for [RubyGems API keys](https://guides.rubygems.org/api-key-scopes/). |
secrets/tinkkeyset
Package tinkkeyset package implements the logic to detect [Tink keyset](https://developers.google.com/tink/design/keysets) stored as plaintext
|
Package tinkkeyset package implements the logic to detect [Tink keyset](https://developers.google.com/tink/design/keysets) stored as plaintext |
velestest
Package velestest contains fakes that can be used to test parts of Veles as well as integrations.
|
Package velestest contains fakes that can be used to test parts of Veles as well as integrations. |
Package version contains the current osv-scalibr version
|
Package version contains the current osv-scalibr version |