list

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 18, 2025 License: Apache-2.0, BSD-3-Clause Imports: 114 Imported by: 2

Documentation

Overview

Package list provides a public list of SCALIBR-internal extraction plugins.

Index

Constants

This section is empty.

Variables

View Source
var (

	// CppSource extractors for C++.
	CppSource = InitMap{conanlock.Name: {noCFG(conanlock.New)}}
	// JavaSource extractors for Java.
	JavaSource = InitMap{
		gradlelockfile.Name:                {noCFG(gradlelockfile.New)},
		gradleverificationmetadataxml.Name: {noCFG(gradleverificationmetadataxml.New)},

		pomxml.Name:    {noCFG(pomxml.New)},
		pomxmlnet.Name: {noCFG(pomxmlnet.NewDefault)},
	}
	// JavaArtifact extractors for Java.
	JavaArtifact = InitMap{
		javaarchive.Name: {noCFG(javaarchive.NewDefault)},
	}
	// JavascriptSource extractors for Javascript.
	JavascriptSource = InitMap{
		packagejson.Name:     {noCFG(packagejson.NewDefault)},
		packagelockjson.Name: {noCFG(packagelockjson.NewDefault)},
		pnpmlock.Name:        {noCFG(pnpmlock.New)},
		yarnlock.Name:        {noCFG(yarnlock.New)},
		bunlock.Name:         {noCFG(bunlock.New)},
	}
	// JavascriptArtifact extractors for Javascript.
	JavascriptArtifact = InitMap{
		packagejson.Name: {noCFG(packagejson.NewDefault)},
	}
	// PythonSource extractors for Python.
	PythonSource = InitMap{

		requirements.Name: {noCFG(requirements.NewDefault)},
		setup.Name:        {noCFG(setup.NewDefault)},
		pipfilelock.Name:  {noCFG(pipfilelock.New)},
		pdmlock.Name:      {noCFG(pdmlock.New)},
		poetrylock.Name:   {noCFG(poetrylock.New)},
		pylock.Name:       {noCFG(pylock.New)},
		condameta.Name:    {noCFG(condameta.NewDefault)},
		uvlock.Name:       {noCFG(uvlock.New)},
	}
	// PythonArtifact extractors for Python.
	PythonArtifact = InitMap{
		wheelegg.Name: {noCFG(wheelegg.NewDefault)},
	}
	// GoSource extractors for Go.
	GoSource = InitMap{
		gomod.Name: {noCFG(gomod.New)},
	}
	// GoArtifact extractors for Go.
	GoArtifact = InitMap{
		gobinary.Name: {gobinary.New},
	}
	// DartSource extractors for Dart.
	DartSource = InitMap{pubspec.Name: {noCFG(pubspec.New)}}
	// ErlangSource extractors for Erlang.
	ErlangSource = InitMap{mixlock.Name: {noCFG(mixlock.New)}}
	// NimSource extractors for Nim.
	NimSource = InitMap{nimble.Name: {noCFG(nimble.New)}}
	// LuaSource extractors for Lua.
	LuaSource = InitMap{luarocks.Name: {noCFG(luarocks.New)}}
	// ElixirSource extractors for Elixir.
	ElixirSource = InitMap{elixir.Name: {noCFG(elixir.NewDefault)}}
	// HaskellSource extractors for Haskell.
	HaskellSource = InitMap{
		stacklock.Name: {noCFG(stacklock.NewDefault)},
		cabal.Name:     {noCFG(cabal.NewDefault)},
	}
	// RSource extractors for R source extractors
	RSource = InitMap{renvlock.Name: {noCFG(renvlock.New)}}
	// RubySource extractors for Ruby.
	RubySource = InitMap{
		gemspec.Name:     {noCFG(gemspec.NewDefault)},
		gemfilelock.Name: {noCFG(gemfilelock.New)},
	}
	// RustSource extractors for Rust.
	RustSource = InitMap{
		cargolock.Name: {noCFG(cargolock.New)},
		cargotoml.Name: {noCFG(cargotoml.New)},
	}
	// RustArtifact extractors for Rust.
	RustArtifact = InitMap{
		cargoauditable.Name: {noCFG(cargoauditable.NewDefault)},
	}
	// SBOM extractors.
	SBOM = InitMap{
		cdx.Name:  {noCFG(cdx.New)},
		spdx.Name: {noCFG(spdx.New)},
	}
	// DotnetSource extractors for Dotnet (.NET).
	DotnetSource = InitMap{
		depsjson.Name:         {noCFG(depsjson.NewDefault)},
		packagesconfig.Name:   {noCFG(packagesconfig.NewDefault)},
		packageslockjson.Name: {noCFG(packageslockjson.NewDefault)},
	}
	// DotnetArtifact extractors for Dotnet (.NET).
	DotnetArtifact = InitMap{
		dotnetpe.Name: {noCFG(dotnetpe.NewDefault)},
	}
	// PHPSource extractors for PHP Source extractors.
	PHPSource = InitMap{composerlock.Name: {noCFG(composerlock.New)}}
	// SwiftSource extractors for Swift.
	SwiftSource = InitMap{
		packageresolved.Name: {noCFG(packageresolved.NewDefault)},
		podfilelock.Name:     {noCFG(podfilelock.NewDefault)},
	}

	// Containers extractors.
	Containers = InitMap{
		containerd.Name:         {noCFG(containerd.NewDefault)},
		k8simage.Name:           {noCFG(k8simage.NewDefault)},
		podman.Name:             {noCFG(podman.NewDefault)},
		dockerbaseimage.Name:    {noCFG(dockerbaseimage.NewDefault)},
		dockercomposeimage.Name: {noCFG(dockercomposeimage.NewDefault)},
	}

	// OS extractors.
	OS = InitMap{
		dpkg.Name:     {noCFG(dpkg.NewDefault)},
		apk.Name:      {noCFG(apk.NewDefault)},
		rpm.Name:      {noCFG(rpm.NewDefault)},
		cos.Name:      {noCFG(cos.NewDefault)},
		snap.Name:     {noCFG(snap.NewDefault)},
		nix.Name:      {noCFG(nix.New)},
		module.Name:   {noCFG(module.NewDefault)},
		vmlinuz.Name:  {noCFG(vmlinuz.NewDefault)},
		pacman.Name:   {noCFG(pacman.NewDefault)},
		portage.Name:  {noCFG(portage.NewDefault)},
		flatpak.Name:  {noCFG(flatpak.NewDefault)},
		homebrew.Name: {noCFG(homebrew.New)},
		macapps.Name:  {noCFG(macapps.NewDefault)},
		macports.Name: {noCFG(macports.New)},
		winget.Name:   {noCFG(winget.NewDefault)},
	}

	// SecretExtractors for Extractor interface.
	SecretExtractors = InitMap{
		mysqlmylogin.Name:            {noCFG(mysqlmylogin.New)},
		pgpass.Name:                  {noCFG(pgpass.New)},
		onepasswordconnecttoken.Name: {noCFG(onepasswordconnecttoken.New)},
		mariadb.Name:                 {noCFG(mariadb.NewDefault)},
	}

	// SecretDetectors for Detector interface.
	SecretDetectors = initMapFromVelesPlugins([]velesPlugin{
		{anthropicapikey.NewDetector(), "secrets/anthropicapikey", 0},
		{azuretoken.NewDetector(), "secrets/azuretoken", 0},
		{azurestorageaccountaccesskey.NewDetector(), "secrets/azurestorageaccountaccesskey", 0},
		{digitaloceanapikey.NewDetector(), "secrets/digitaloceanapikey", 0},
		{pypiapitoken.NewDetector(), "secrets/pypiapitoken", 0},
		{cratesioapitoken.NewDetector(), "secrets/cratesioapitoken", 0},
		{slacktoken.NewAppConfigAccessTokenDetector(), "secrets/slackappconfigaccesstoken", 0},
		{slacktoken.NewAppConfigRefreshTokenDetector(), "secrets/slackappconfigrefreshtoken", 0},
		{slacktoken.NewAppLevelTokenDetector(), "secrets/slackappleveltoken", 0},
		{dockerhubpat.NewDetector(), "secrets/dockerhubpat", 0},
		{gcpapikey.NewDetector(), "secrets/gcpapikey", 0},
		{gcpexpressmode.NewDetector(), "secrets/gcpexpressmode", 0},
		{gcpsak.NewDetector(), "secrets/gcpsak", 0},
		{gitlabpat.NewDetector(), "secrets/gitlabpat", 0},
		{grokxaiapikey.NewAPIKeyDetector(), "secrets/grokxaiapikey", 0},
		{grokxaiapikey.NewManagementKeyDetector(), "secrets/grokxaimanagementkey", 0},
		{hashicorpvault.NewTokenDetector(), "secrets/hashicorpvaulttoken", 0},
		{hashicorpvault.NewAppRoleDetector(), "secrets/hashicorpvaultapprole", 0},
		{hcp.NewPairDetector(), "secrets/hcpclientcredentials", 0},
		{hcp.NewAccessTokenDetector(), "secrets/hcpaccesstoken", 0},
		{huggingfaceapikey.NewDetector(), "secrets/huggingfaceapikey", 0},
		{openai.NewDetector(), "secrets/openai", 0},
		{perplexityapikey.NewDetector(), "secrets/perplexityapikey", 0},
		{postmanapikey.NewAPIKeyDetector(), "secrets/postmanapikey", 0},
		{postmanapikey.NewCollectionTokenDetector(), "secrets/postmancollectiontoken", 0},
		{privatekey.NewDetector(), "secrets/privatekey", 0},
		{rubygemsapikey.NewDetector(), "secrets/rubygemsapikey", 0},
		{tinkkeyset.NewDetector(), "secrets/tinkkeyset", 0},
		{github.NewAppRefreshTokenDetector(), "secrets/githubapprefreshtoken", 0},
		{github.NewAppS2STokenDetector(), "secrets/githubapps2stoken", 0},
		{github.NewAppU2SDetector(), "secrets/githubappu2stoken", 0},
		{github.NewClassicPATDetector(), "secrets/githubclassicpat", 0},
		{github.NewFineGrainedPATDetector(), "secrets/githubfinegrainedpat", 0},
		{github.NewOAuthTokenDetector(), "secrets/githuboauthtoken", 0},
		{stripeapikeys.NewSecretKeyDetector(), "secrets/stripesecretkey", 0},
		{stripeapikeys.NewRestrictedKeyDetector(), "secrets/striperestrictedkey", 0},
		{stripeapikeys.NewWebhookSecretDetector(), "secrets/stripewebhooksecret", 0},
		{gcpoauth2client.NewDetector(), "secrets/gcpoauth2clientcredentials", 0},
		{gcpoauth2access.NewDetector(), "secrets/gcpoauth2accesstoken", 0},
		{onepasswordkeys.NewSecretKeyDetector(), "secrets/onepasswordsecretkey", 0},
		{onepasswordkeys.NewServiceTokenDetector(), "secrets/onepasswordservicetoken", 0},
		{onepasswordkeys.NewRecoveryTokenDetector(), "secrets/onepasswordrecoverycode", 0},
		{gcshmackey.NewDetector(), "secrets/gcshmackey", 0},
		{vapid.NewDetector(), "secrets/vapidkey", 0},
	})

	// Secrets contains both secret extractors and detectors.
	Secrets = concat(
		SecretDetectors,
		SecretExtractors,
	)

	// Misc artifact extractors.
	Misc = InitMap{
		vscodeextensions.Name: {noCFG(vscodeextensions.New)},
		wordpressplugins.Name: {noCFG(wordpressplugins.NewDefault)},
		chromeextensions.Name: {noCFG(chromeextensions.New)},
	}

	// MiscSource extractors for miscellaneous purposes.
	MiscSource = InitMap{
		asdf.Name:        {noCFG(asdf.New)},
		nvm.Name:         {noCFG(nvm.New)},
		nodeversion.Name: {noCFG(nodeversion.New)},
	}

	// EmbeddedFS extractors.
	EmbeddedFS = InitMap{
		archive.Name: {archive.New},
		vdi.Name:     {vdi.New},
		vmdk.Name:    {vmdk.New},
		ova.Name:     {ova.New},
	}

	// SourceCode extractors find packages in source code contexts (e.g. lockfiles).
	SourceCode = concat(
		CppSource,
		JavaSource,
		JavascriptSource,
		PythonSource,
		GoSource,
		DartSource,
		ErlangSource,
		ElixirSource,
		HaskellSource,
		PHPSource,
		RSource,
		RubySource,
		RustSource,
		DotnetSource,
		SwiftSource,
		NimSource,
		LuaSource,
		Secrets,
		MiscSource,
	)

	// Artifact extractors find packages on built systems (e.g. parsing
	// descriptors of installed packages).
	Artifact = concat(
		JavaArtifact,
		JavascriptArtifact,
		PythonArtifact,
		GoArtifact,
		DotnetArtifact,
		RustArtifact,
		SBOM,
		OS,
		Misc,
		EmbeddedFS,
		Containers,
		Secrets,
	)

	// Default extractors that are recommended to be enabled.
	Default = concat(
		JavaSource, JavaArtifact,
		JavascriptSource, JavascriptArtifact,
		PythonSource, PythonArtifact,
		GoSource, GoArtifact,
		OS,
	)

	// All extractors available from SCALIBR.
	All = concat(
		SourceCode,
		Artifact,
	)
)

LINT.IfChange

Functions

func ExtractorsFromName added in v0.3.1

func ExtractorsFromName(name string, cfg *cpb.PluginConfig) ([]filesystem.Extractor, error)

ExtractorsFromName returns a list of extractors from a name.

Types

type InitFn added in v0.1.7

type InitFn func(cfg *cpb.PluginConfig) filesystem.Extractor

InitFn is the extractor initializer function.

type InitMap added in v0.1.7

type InitMap map[string][]InitFn

InitMap is a map of extractor names to their initers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL