list

package
v0.4.4 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2026 License: Apache-2.0, BSD-3-Clause, MIT Imports: 151 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: {conanlock.New}}
	// JavaSource extractors for Java.
	JavaSource = InitMap{
		gradlelockfile.Name:                {gradlelockfile.New},
		gradleverificationmetadataxml.Name: {gradleverificationmetadataxml.New},

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

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

	// Containers extractors.
	Containers = InitMap{
		containerd.Name:         {containerd.New},
		k8simage.Name:           {k8simage.New},
		podman.Name:             {podman.New},
		dockerbaseimage.Name:    {dockerbaseimage.New},
		dockercomposeimage.Name: {dockercomposeimage.New},
	}

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

	// SecretExtractors for Extractor interface.
	SecretExtractors = InitMap{
		mysqlmylogin.Name:            {mysqlmylogin.New},
		pgpass.Name:                  {pgpass.New},
		onepasswordconnecttoken.Name: {onepasswordconnecttoken.New},
		mariadb.Name:                 {mariadb.New},
		awsaccesskey.Name:            {awsaccesskey.New},
		codecatalyst.Name:            {codecatalyst.New},
		codecommit.Name:              {codecommit.New},
		bitbucket.Name:               {bitbucket.New},
		cloudflareapitoken.Name:      {cloudflareapitoken.New},
	}

	// SecretDetectors for Detector interface.
	SecretDetectors = initMapFromVelesPlugins([]velesPlugin{
		{anthropicapikey.NewDetector(), "secrets/anthropicapikey", 0},
		{azuretoken.NewDetector(), "secrets/azuretoken", 0},
		{azurestorageaccountaccesskey.NewDetector(), "secrets/azurestorageaccountaccesskey", 0},
		{circleci.NewPersonalAccessTokenDetector(), "secrets/circlecipat", 0},
		{circleci.NewProjectTokenDetector(), "secrets/circleciproject", 0},
		{cursorapikey.NewDetector(), "secrets/cursorapikey", 0},
		{digitaloceanapikey.NewDetector(), "secrets/digitaloceanapikey", 0},
		{pypiapitoken.NewDetector(), "secrets/pypiapitoken", 0},
		{cratesioapitoken.NewDetector(), "secrets/cratesioapitoken", 0},
		{npmjsaccesstoken.NewDetector(), "secrets/npmjsaccesstoken", 0},
		{slacktoken.NewAppConfigAccessTokenDetector(), "secrets/slackappconfigaccesstoken", 0},
		{slacktoken.NewAppConfigRefreshTokenDetector(), "secrets/slackappconfigrefreshtoken", 0},
		{slacktoken.NewAppLevelTokenDetector(), "secrets/slackappleveltoken", 0},
		{dockerhubpat.NewDetector(), "secrets/dockerhubpat", 0},
		{elasticcloudapikey.NewDetector(), "secrets/elasticcloudapikey", 0},
		{denopat.NewUserTokenDetector(), "secrets/denopatuser", 0},
		{denopat.NewOrgTokenDetector(), "secrets/denopatorg", 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},
		{mistralapikey.NewDetector(), "secrets/mistralapikey", 0},
		{openai.NewDetector(), "secrets/openai", 0},
		{openrouter.NewDetector(), "secrets/openrouter", 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},
		{sendgrid.NewDetector(), "secrets/sendgrid", 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},
		{squareapikey.NewPersonalAccessTokenDetector(), "secrets/squarepersonalaccesstoken", 0},
		{squareapikey.NewOAuthApplicationSecretDetector(), "secrets/squareoauthapplicationsecret", 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},
		{paystacksecretkey.NewSecretKeyDetector(), "secrets/paystacksecretkey", 0},
		{gcshmackey.NewDetector(), "secrets/gcshmackey", 0},
		{vapid.NewDetector(), "secrets/vapidkey", 0},
		{recaptchakey.NewDetector(), "secrets/recaptchakey", 0},
		{jwt.NewDetector(), "secrets/jwttoken", 0},
		{pyxkeyv1.NewDetector(), "secrets/pyxkeyv1", 0},
		{pyxkeyv2.NewDetector(), "secrets/pyxkeyv2", 0},
		{urlcreds.NewDetector(), "secrets/urlcreds", 0},
		{telegrambotapitoken.NewDetector(), "secrets/telegrambotapitoken", 0},
		{salesforceoauth2access.NewDetector(), "secrets/salesforceoauth2access", 0},
		{salesforceoauth2client.NewDetector(), "secrets/salesforceoauth2client", 0},
		{herokuplatformkey.NewSecretKeyDetector(), "secrets/herokuplatformkey", 0},
		{salesforceoauth2jwt.NewDetector(), "secrets/salesforceoauth2jwt", 0},
		{salesforceoauth2refresh.NewDetector(), "secrets/salesforceoauth2refresh", 0},
	})

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

	// Misc artifact extractors.
	Misc = InitMap{
		vscodeextensions.Name: {vscodeextensions.New},
		wordpressplugins.Name: {wordpressplugins.New},
		chromeextensions.Name: {chromeextensions.New},
		netscaler.Name:        {netscaler.New},
	}

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

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

	// FFA extractor.
	FFA = InitMap{
		unknownbinariesextr.Name: {unknownbinariesextr.New},
		asdf.Name:                {asdf.New},
		bazelmaven.Name:          {bazelmaven.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,
		JuliaSource,
		DotnetSource,
		SwiftSource,
		NimSource,
		OcamlSource,
		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,
		FFA,
		JuliaArtifact,
	)

	// 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, error)

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