Documentation
¶
Overview ¶
Package plugin collects the common code used by extractor and detector plugins.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ValidateRequirements ¶ added in v0.1.3
func ValidateRequirements(p Plugin, capabs *Capabilities) error
ValidateRequirements checks that the specified scanning capabilities satisfy the requirements of a given plugin.
Types ¶
type Capabilities ¶ added in v0.1.3
type Capabilities struct {
// A specific OS type a Plugin needs to be run on.
OS OS
// Whether network access is provided.
Network bool
// Whether the scanned artifacts can be access through direct filesystem calls.
// True on hosts where the scan target is mounted onto the host's filesystem directly.
// In these cases the plugin can open direct file paths with e.g. os.Open(path).
// False if the artifact is not on the host but accessed through an abstract FS interface
// (e.g. scanning a remote container image). In these cases the plugin must use the FS interface
// to access the filesystem.
DirectFS bool
// Whether the scanner is scanning the real running system it's on. Examples where this is not the case:
// * We're scanning a virtual filesystem unrelated to the host where SCALIBR is running.
// * We're scanning a real filesystem of e.g. a container image that's mounted somewhere on disk.
RunningSystem bool
}
Capabilities lists capabilities that the scanning environment provides for the plugins. A plugin can't be enabled if it has more requirements than what the scanning environment provides.
type OS ¶ added in v0.1.3
type OS int
OS is the OS the scanner is running on, or a specific OS type a Plugin needs to be run on.
type Plugin ¶
type Plugin interface {
// A unique name used to identify this plugin.
Name() string
// Plugin version, should get bumped whenever major changes are made.
Version() int
// Requirements about the scanning environment, e.g. "needs to have network access".
Requirements() *Capabilities
}
Plugin is the part of the plugin interface that's shared between extractors and detectors.
type ScanStatus ¶
type ScanStatus struct {
Status ScanStatusEnum
FailureReason string
}
ScanStatus is the status of a scan run. In case the scan fails, FailureReason contains details.
func (*ScanStatus) String ¶
func (s *ScanStatus) String() string
String returns a string representation of the scan status.
type ScanStatusEnum ¶
type ScanStatusEnum int
ScanStatusEnum is the enum for the scan status.
const ( ScanStatusUnspecified ScanStatusEnum = iota ScanStatusSucceeded ScanStatusPartiallySucceeded ScanStatusFailed )
ScanStatusEnum values.
type Status ¶
type Status struct {
Name string
Version int
Status *ScanStatus
}
Status contains the status and version of the inventory+vuln plugins that ran.