Skip to content
forked from carbonetes/jacked

Jacked provides organizations with a more comprehensive look at their application to take calculated actions and create a better security approach. Its primary purpose is to scan vulnerabilities to implement subsequent risk mitigation measures.

License

Notifications You must be signed in to change notification settings

raizenxd/jacked

 
 

Repository files navigation

Jacked

Github All Releases Go Report Card GitHub release GitHub go.mod Go version License: Apache-2.0

Jacked provides organizations with a more comprehensive look at their application to take calculated actions and create a better security approach. Its primary purpose is to scan vulnerabilities to implement subsequent risk mitigation measures.

Features

  • 🐞 | Scans image vulnerability; checks if your image is at risk.
  • 🔧 | Configuration that helps user's preference using the tool.
  • ⛑ | Works with major operating system and many packages.
  • 🗃 | Works seamlessly with Diggity (SBOM Container Image and File System)
  • 🗄 | Converts results to JSON and Tabulated Format.

Installation 📥

Installation Support OS 💽

  • Mac
    • darwin_amd64.tar.gz
    • darwin_arm64.tar.gz
  • Linux
    • deb
      • linux_amd64.deb
      • linux_arm64.deb
      • linux_ppc64le.deb
    • rpm
      • linux_amd64.rpm
      • linux_arm64.rpm
      • linux_ppc64le.rpm
    • tar.gz
      • linux_amd64.tar.gz
      • linux_arm64.tar.gz
      • linux_ppc64le.tar.gz
  • Windows
    • windows_amd64.zip

Recommended

A great way to install a working binary tool on your terminal.

curl -sSfL https://raw.githubusercontent.com/carbonetes/jacked/main/install.sh | sh -s -- -d /usr/local/bin

You can specify a release version and destination directory for the installation:

curl -sSfL https://raw.githubusercontent.com/carbonetes/jacked/main/install.sh | sh -s -- -d <DESTINATION_DIR> -v <RELEASE_VERSION>

Homebrew

brew tap carbonetes/jacked
brew install jacked

Scoop

scoop bucket add jacked https://github.com/carbonetes/jacked-bucket
scoop install jacked

Getting Started 🚀

Run the CLI tool 🏁

Once you've successfully installed the Jacked and wanted to scan an image, on your terminal:

jacked <image>

You can also scan sbom json file from diggity.

jacked --sbom <path-to-your-sbom-file>
Jacked Running on a terminal:

Output formats

The output format for Jacked is configurable as well using the -o (or --output) option:

The available formats are:

Gating on severity of vulnerabilities

Gating on the severity of vulnerabilities refers to the practice of selectively allowing or disallowing certain actions or operations based on the severity level of a vulnerability. For example, in the context of software security, gating on severity can involve setting up rules or policies that restrict certain activities or operations (such as code changes, deployments, or releases) if the severity level of any identified vulnerabilities exceeds a certain threshold.

You can have Jacked exit with an error if any vulnerabilities are reported equal or higher than the specified severity. This works perfectly using Jacked CI pipeline. To use this, use the --fail-criteria CLI flag.

Example, here's how you could trigger a CI pipeline failure if any vulnerabilities are found in the image with a severity of "low" or higher:

jacked <image> --fail-criteria low

Useful Commands and Flags 🚩

jacked [command] [flag]
SubCommand Description
config Display the current configurations
db Display the database information
version Display Build Version Information of Jacked

Available Commands and their flags with description:

jacked [flag]
Root Flags Description
--sbom string Input sbom file from diggity to scan (Only read from json file)
-d, --dir string Read directly from a path on disk (any directory) (e.g. 'jacked path/to/dir)'
-t, --tar string Read a tarball from a path on disk for archives created from docker save (e.g. 'jacked path/to/image.tar)'
--disable-file-listing Disables file listing from package metadata (default false)
--enabled-parsers stringArray Specify enabled parsers ([apk debian java npm composer python gem rpm dart nuget go]) (default all)
-l, --licenses Enable scanning for package licenses
-o, --output string Show scan results in "table", "json", "cyclonedx-json", "cyclonedx-xml", cyclonedx-vex-json, cyclonedx-vex-xml, "spdx-json", "spdx-xml", "spdx-tag-value" format (default "table")
--registry-uri string Registry uri endpoint (default "index.docker.io/")
--registry-token string Access token for private registry access
--registry-username string Username credential for private registry access
--registry-password string Password credential for private registry access
--secret-exclude-filenames stringArray Exclude secret searching for each specified filenames
--secret-max-file-size int Maximum file size that the secret will search -- each file (default 10485760)
-v, --version Print application version
jacked config [flag]
Config Flags Descriptions
-d,--display Display the content of the configuration file
-h,--help Help for configuration
-p,--path Display the path of the configuration file
-r,--reset Restore default configuration file
jacked db [flag]
Database Flags Descriptions
-i, --info Print database metadata information
-v, --version Print database current version
jacked version [flag] [string]
Version Flags Descriptions
-f [string], --format [string] Print application version format (json, text) (default "text")

Configuration 🚧

Improve using the tool based on your preferences.
Configuration search paths:

  • <HOME>/.jacked.yaml

Configuration options (example values are the default):

# supported output types: (table, json, cyclonedx-xml, cyclonedx-json, cyclonedx-vex-xml, cyclonedx-vex-json, spdx-xml, spdx-json, spdx-tag-value) (default "table") 
output: table
# disables all logging except vulnerability result
quiet: false
# policies configurations
ignore:
  # ignore policy for vulnerabilities to exclude
  vulnerability:
    cve: []
    severity: []
  # ignore policy for packages to exclude
  package:
    name: []
    type: []
    version: []
# specify enabled parsers ([apk debian java npm composer python gem rpm dart nuget go]) (default all)
enabled-parsers: []
# disables file listing from package metadata
disable-file-listing: false
# secret configurations
secret-config:
  # enables/disables cataloging of secrets
  disabled: false
  #secret content regex are searched within files that match the provided regular expression
  secret-regex: API_KEY|SECRET_KEY|DOCKER_AUTH
  #excludes/includes secret searching for each specified filename
  excludes-filenames: []
  # set maximum file size to avoid problems with large files
  max-file-size: 10485760
# enable scanning of licenses
license-finder: false
# registry configurations
registry:
# registry uri endpoint
  uri: ""
  # username credential for private registry access
  username: ""
  # password credential for private registry access
  password: ""
  # access token for private registry access
  token: ""

License

Apache 2.0

About

Jacked provides organizations with a more comprehensive look at their application to take calculated actions and create a better security approach. Its primary purpose is to scan vulnerabilities to implement subsequent risk mitigation measures.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 97.0%
  • Shell 2.9%
  • Dockerfile 0.1%