Voice of Practitioners Study: The State of Secrets in AppSec
Download ReportDownload Report
GitGuardian logo
TruffleHog v3

Compare GitGuardian to  

See for yourself how TruffleHog v3, the open-source secrets scanning CLI, fares against GitGuardian’s CODE SECURITY platform.

Quote icon

We have tried a bunch of open-source solutions, the biggest one being TruffleHog. The main reason for switching was the lack of good detection. It pretty much thinks any complex string is a password, so the signal-to-noise ratio was extremely high. That was a huge toil for us, trying to tune it and get rid of all the noise so the engineers could actually work.

Don M., Security Engineer

Meet the contenders

GitGuardian logo

Meet GitGuardian

GitGuardian is the code security platform for the DevOps generation that offers automated Secrets Detection, Infra as Code Security, and Honeytoken capabilities, facilitating a Secure Software Development Lifecycle for Dev, Sec, and Ops teams.

TruffleHog v3

Meet  

TruffleHog v3 is a popular open-source command-line interface (CLI) that helps find hardcoded secrets in git repositories.

GitGuardian vs.  
The short version

GitGuardian is suitable for you if:

++ Tackling hardcoded secrets is a high priority in your AppSec roadmap and you want to scale secrets detection to your entire engineering organization.

++ You want a fully integrated platform with capabilities like alerting, incident prioritization and triage, automated remediation workflows, Role-based Access Control (RBAC), developer tools (API, CLI and SDK).

++ You are looking for enterprise-grade software (SaaS or self-hosted) built to support and scale to thousands of developers and repositories.

++ You fall in our free tier, and free and easy-to-use is excellent!

  is suitable for you if:

++ You are not yet sure that secrets detection is a priority on your Application Security roadmap and want to run a light experiment with an open-source tool.

++ You prefer going with open-source and building the missing features on top: source control and alerting integrations, incident lifecycle management, issue tracking, collaboration features, authentication, role-based access management (RBAC), audit logs, etc.

GitGuardian vs.  
The long version

Core detection capabilities

Regular expressions to match known, distinct patterns

++ 350+ types of specific and generic secrets supported with high accuracy level.

++ Ability to check the validity of exposed secrets before raising an alert.

++ 70+ IaC security policies for  Terraform/AWS supported.

✅ TruffleHog v3 covers 700+ types of secrets. 

🟠 Only some detectors check for secret validity.

❌ No IaC security scanning.

Regular expressions result in fewer false alerts. Additionally, known patterns make it simpler to verify if the secret is true or false or whether this is a test or example key.

Learn more about how GitGuardian detects secrets.

High entropy checks to match credentials without distinct patterns and enter “paranoid” mode

++ Yes, based on the combination of entropy checks and contextual analysis of the presumed secret (pre/post-filters).

++ GitGuardian currently supports 10+ types of generic secrets.

❌ TruffleHog v3 does not support entropy checks yet – link to GitHub repo.

In order to capture a considerably wider variety of secret types, high entropy should be employed.

Learn more about how GitGuardian detects secrets.

Custom patterns

++ Yes, supported with the use of regular expressions (in SaaS/On-premises offering).

✅ Yes, the library of detectors can be extended by developers.

To find company-specific secrets that are not picked up by the default patterns, you should be able to define your own patterns.

Learn how to create custom detectors.

Detector activation/deactivation

++ Detectors can be individually activated/deactivated from the UI, in the workspace settings.

❌ Detectors cannot be deactivated from the CLI using options/command flags.

We recommend keeping all detectors active to avoid missing any hardcoded secrets.

Learn how to configure GitGuardian’s detectors.

Sensitive file names

++ 22 file names raise policy break alerts.

❌ No sensitive file names are detected.

There is a very lengthy list of extensions that potentially hold secrets due to the numerous programming languages, frameworks, and coding standards that are used globally.

Learn which file types contain sensitive information.

Sensitive file extensions

++ 14 extensions raise policy break alerts.

❌ No sensitive file extensions are detected.

Secrets are frequently discovered in file extensions together with environment variables and configuration data. Learn more.

Filepath exclusions

++ Yes, excluding paths is possible through the UI. GitGuardian recommends a set of exclusions (e.g. test directories) and enables users to test filepaths against the active exclusion list.

✅ Yes, excluding paths like test directories is possible using the CLI command flags/options.

The ability to reduce the number of incidents and concentrate solely on those that matter most is critical to scaling your secrets detection and remediation program.

Scanning multiple sources

Code repositories

++ Secrets scanning is possible for local Git repositories or repositories managed through GitHub, GitHub Enterprise, GitLab, Azure DevOps, and Bitbucket Server/Data Center.

🟠 Secrets scanning is possible for local Git repositories or repositories managed through GitHub, GitLab and Bitbucket.

❌ Azure Repos is not supported.

Your repositories contain secrets and sensitive data, such as user passwords or other security flaws, making it possible for anybody with access to the image to obtain that secret and perhaps exploit it to gain access to other systems.

Learn more on why secrets inside Git are a problem

Docker images

++ Yes, Docker images can be scanned with the GitGuardian CLI, ggshield, using a specific command. The Dockerfile, build arguments, and the image's layers' filesystem are scrubbed for secrets.

❌ Not supported.

Your Docker image can wind up containing a private SSH key, an AWS access token, or a password.

Learn more about the secrets we found on Docker Hub.

Logs

🟠 The GitGuardian REST API and CLI, ggshield, support scanning all types of text input for secrets. GitGuardian can provide wrappers (code snippets) to extract and load data from observability tools or CI/CD logs.

❌ Not supported natively.

Sensitive data may unintentionally leak from your server logs when services unintentionally output sensitive data.

Other sources

🟠 The GitGuardian REST API and CLI, ggshield, support scanning all types of text input for secrets. GitGuardian can provide wrappers (code snippets) to extract and load data from tools like Slack, Jira, GitHub issues, etc.

✅ The CLI has a subcommand for the following sources: AWS S3, filesystem (files and directories), syslog, CircleCI build logs, GCS (Google Cloud Storage).

Sensitive data may unintentionally be leaked in other productivity tools used by developers.

Monitoring perimeter

GitHub Enterprise
Instance level

++ Yes

❌ Not supported.

GitHub Enterprise
Organization level

++ Yes, native GitHub App at the organization level (one-click integration).

✅ Yes.

Repository level

++ Yes, upon integration of a GitHub Enterprise organization, admins can choose to - give access to select repositories - provide access to all repositories (present and future repositories).

✅ Yes.

GitHub
Organization or Repository level

++ Yes, native GitHub App available. Admins can:
- give access to select repositories
- give access to all repositories (present and future repositories).

✅ Yes.

GitLab
Instance level

++ Yes, a native integration is available. GitGuardian needs a Personal Access Token with an Admin scope.

❌ Not supported.

GitLab
Project or Repository level

++ Yes, a native integration is available. GitGuardian needs a Personal Access Token with an Admin scope to establish a webhook with the VCS for historical and real-time scanning.

✅ Yes.

Bitbucket Server/Data Center
Instance level

++ Yes, a native integration is available. GitGuardian needs a Personal Access Token with an Admin scope to set up a webhook with the VCS for historical and real-time scanning.

❌ Not supported.

Bitbucket Server/Data Center
Project level

++ Yes, a native integration is available. GitGuardian needs a Personal Access Token with an Admin scope to set up a webhook with the VCS for historical and real-time scanning.

❌ Not supported.

Azure DevOps (Repos)
Instance level

++ Yes, a native integration is available but is limited to historical scanning.

++ GitGuardian needs a Personal Access Token with an Admin scope to set up a webhook with the VCS.

❌ Not supported.

Azure DevOps (Repos)
Project or Repository level

++ Yes, a native integration is available but is limited to historical scanning.

++ GitGuardian needs a Personal Access Token with an Admin scope to set up a webhook with the VCS.

❌ Not supported.

Secure the SDLC and more

Historical scans

++ Yes, full repository history scan can be launched on-demand. Scanning is performed across all branches and for the entire history up to the initial commit.

✅ Yes, historical scans are run using a CLI command.

Hardcoded secrets can hide deep in the commit history across various branches, not only the latest revision of the code.

Pre-commit

++ Yes, supported through the GitGuardian CLI, ggshield.

✅ Yes.

Pre-commit hooks put the onus on developers to keep their code free from secrets before contributing to the team’s codebase. The cost of remediation at this stage is low. Learn how to set up a pre-commit hook with GitGuardian.

Pre-push

++ Yes, supported through the GitGuardian CLI, ggshield.

✅ Yes.

Pre-push hooks put the onus on developers to keep their code free from secrets before contributing to the team’s codebase.

Pre-receive

++ Yes, supported through the GitGuardian CLI, ggshield.

In addition, a 'break-glass' option is provided to avoid blocking developer workflow in case test credentials or false positives are raised.

✅ Yes (for self-hosted VCS instances).

Pre-receive hooks are the most effective tool to prevent secrets from reaching your codebase.

Post-receive

✅ Yes, supported with the native VCS integrations (GitHub, GitLab, Bitbucket and Azure DevOps). Historical + continuous protection.

❌ No native support for Azure Repos.

CI environment

++ Yes, the GitGuardian CLI, ggshield, runs natively with 8 different providers in total: GitHub Actions, GitLab CI/CD, Bitbucket pipelines, Azure pipelines, Jenkins CI, CircleCI, Drone CI, and Travis CI.

✅ Yes.

It is important to raise awareness around the problem of hardcoded secrets and align Dev, Sec, and Ops with Automated Security Testing (AST) in pipelines.

Learn how to use GitGuardian's secrets detection in your CI workflows.

Pull requests (check runs)
& commit status checks

++ In GitHub, secrets scanning check runs can be triggered on pull requests on repositories monitored by GitGuardian. The behavior can be configured to block merging PRs containing secrets.

❌ Not supported.

Pull request or merge request scanning brings secrets detection to environments developers are familiar with, such as the GitHub or GitLab UI.

Enriched UI and centralization of incidents

Rich UI with all data needed for investigation and remediation

++ Unified view of incidents across all monitored sources found via the native VCS integrations.

❌ Not available.

It facilitates the collection of relevant data for big-picture analysis.

Security team view
(global view)

++ Rich UI/centralized dashboard for Security and Incident Response teams.

❌ Not available.

To accurately assess the code security posture of an enterprise, security professionals require visibility across complex, sprawling environments.

Developer/Engineering view (local view)

++ Developers can get access to incidents via the GitGuardian UI, with a scoped view on incidents shared with them.

++ An external page can be generated for the developers to view individual incident details, fill out a feedback form and possibly remediate the incident on their own with our advice.

❌ Not available.

Developers can view and handle their incidents most effectively with the help of intuitive dashboards.

Incident Lifecycle Management

Incident data

++ In addition to data such as the commit sha, date, author, secrets type, and location (repository, file name, line), GitGuardian provides contextual tags such as "from a historical scan", "test file", "exposed publicly", "regression", etc. 

🟠 TruffleHog provides basic incident contextual metadata in addition to a secret validity check when and if possible.

Incident data helps you in prioritizing and investigating incidents better by giving additional context.

Automated Severity Scoring

++ GitGuardian scores the severity of incidents: "Low", "Medium", "High" or "Critical" following default rules or user-defined rules.

❌ Not supported.

Severity scoring will assist in identifying and prioritizing issues for quicker resolution.

Validity and presence checks

++ For certain secrets, GitGuardian can perform non-intrusive checks to verify their validity. When revoked, secrets will be marked as no longer valid, effectively providing proof of remediation.

++ GitGuardian can also verify the presence of the secrets in the commits and provide proof of deletion after all evidence of the secret is removed.

🟠 For some secrets, TruffleHog can perform non-intrusive checks to verify their validity.

Users should be able to check the validity of each incident and determine whether the leaked secret is still present or has been entirely erased from the commit history. Learn how to verify if an exposed secret was removed from the commit history.

Occurrence grouping

++ GitGuardian groups all occurrences of the same secret leak across files, repositories, and organizations.

❌ Not available.

You can lessen alert fatigue. There is no need to triage/resolve each and every occurrence separately.

Incidents status management

++ Incident handling with "Triggered", "Assigned", "Resolved" and "Ignored" statuses. Two outcomes are possible: incidents can be resolved or ignored.

❌ Not available.

This will assist organizations in swiftly identifying incidents and mitigating their negative impact.

Incident assignment

++ Incidents can be assigned to a team member (a security engineer or a developer) to handle the incident.

❌ Not available.

Defining incident assignees makes sure that the incident gets a timely and appropriate response.

Remediation guidelines

++ Default remediation guidelines and recommendations are displayed in the UI. The guidelines can also be customized.

❌ Not available.

You have some remediation guidelines by default. But as each organization has its own context and remediation policies, you will have the ability to customize the remediation guidelines.

Learn how to create custom remediation guidelines.

Automation and playbooks

++ Incident remediation playbooks like sharing incidents with involved developers, collecting feedback, and closing incidents when they are re-checked as invalid can be automated.

❌ Not available.

The time savings, particularly at the enterprise scale, can be significant. Playbooks keep your teams productive and focused!

Learn more about how to prioritize, investigate and remediate hardcoded secrets incidents at scale.

Incident timeline

++ A detailed timeline is provided with an extensive activity log of all performed events (status changes, feedback notes, access sharing, and much more).

❌ Not available.

Timelines help security teams keep track of all of the actions performed on the incident.

Collaboration with developers

++ Developers can get access to incidents via:
• GitGuardian workspace, scoped view on incidents shared with them;
• A link to an external page can be generated for the developers to view individual incident details, fill a feedback form and possibly remediate the incident on their own.

❌ Not available.

Because developers are key to taming secrets sprawl, AppSec teams must provide them with instant access to and ownership of their hardcoded secrets incidents.

Learn how to bring Dev, Sec, and Ops together for tackling secret sprawl.

Whitelisting options

++ Yes. When ignoring incidents, it is possible to flag findings as false positives, low-risk credentials, or test credentials.

❌ Not available.

Pull request or merge request scanning brings secrets detection to environments developers are familiar with, such as the GitHub or GitLab UI.

Regression behavior

++ New occurrences of a resolved incident can be configured to re-open the incident and trigger new alerts or deliver silent notifications.

❌ Not available.

If new secrets were added or rotated secrets broke existing app functionality, you need to reopen the incident.

Alerting

Real-time alerting

++ Yes

❌ Not supported.

Serious incidents are immediately identified. Alerts may be directed to the right developers more rapidly for remediation.

Email alerts

++ Yes, to prevent alert fatigue, only one email is sent for multiple occurrences of the same incident.

❌ Not supported.

The problem of secret leaks has developers at the forefront. It is crucial to notify the developer in charge of the incident via their commit email.

Learn what's included in GitGuardian email alerts.

Integration with most common SIEMs like Splunk or ITSMs

++ Yes

✅ Yes.

Teams, processes, and tools should be integrated to increase efficiency and effectiveness for all users by ensuring that alerts are received at the appropriate time and location and that no alert is missed.

Integration with ticketing systems like Jira or messaging apps like Slack

++ Yes

❌ Not supported.

By integrating your code security platform and ticketing/messaging tool, you can address critical incidents and expedite remediation.

Event-driven generic webhooks

++ Yes

Stay in the know with event-driven alerts when new incidents are raised or when actions are performed on open incidents.

Reporting & Analytics

Analytics

++ Yes, enriched analytics to assess security posture over time and remediation performance.

❌ Not available.

Analytics help you assess security posture over time, and remediation performance.

Data exports

++ All data is exportable in .csv (including historical incidents) or in JSON format using the REST API.

✅ Incident data can be exported in json format.

Your Dev can review the incident data and filter it further based on their needs.

Enterprise support

Deployment

++ SaaS & On-premises

✅ Self-hosted open-source CLI.

SaaS is less expensive and easier to scale, while on-premises offers more visibility.

See how an enterprise customer deployed a secrets detection program.

SSO

++ Yes, fully compatible with any SAML 2.0 provider.

❌ Not available.

Because users only log in once per day and utilize a single set of credentials, it decreases the number of attack surfaces.

See the setup procedures for different IdPs.

Roles Based Access Control (RBAC) & Team management

++ Yes, the available roles "Workspace Owner", "Manager" (admin), "Member" and "Restricted" are designed for fine-grained access control down to the occurrence level. Teams management available.

❌ Not available.

It's a wonderful approach to bring in every developer, scale up incident remediation, and deal with orphan incidents.

Learn how RBAC can help fix hardcoded credentials faster.

Audit logs

++ Detailed activity logs of all actions triggered on the dashboard or through the REST API.

❌ Not available.

Audit logs include precise historical data that can be used to retrace an incident's timeline.

See how to access Gitguardian audit logs.

REST API

++ GitGuardian’s public REST API can be used to realize all sorts of actions on your workspace and incidents (retrieve, assign, update status, and share secrets incidents, and more).

❌ Not available.

This API provides you with access to all of the incident data, including tasks.

Enterprise support & onboarding

++ A dedicated team of Solutions and DevOps Engineers will be made available to help you rollout secrets detection and remediation for your organization (included in the licensing model, at no additional cost).

❌ Not available.

In order to use a product effectively, a solid onboarding program aids in your ability to comprehend and experience the value it offers.

It is always advantageous to have support professionals who are completely committed to fixing any technical issues you may encounter.

Read more in-depth articles on GitGuardian Blog.

Why does it matter?

OFFERS
PARTIALLY OFFERS
DOES NOT OFFER

{{group.name}}

Toggle

v-html being used here

v-html being used here

v-html being used here

v-html being used here

How do users like you rate us?

Users rate GitGuardian high on these categories on review sites like PeerSpot, G2, and Capterra.

Ease of Use • 4.6 stars

Customer Service • 4.6 stars

Value for Money • 4.6 stars

Ease of Use • 8.9

Quality of Support • 8.9

Ease of setup • 9.3

Top 6 reasons why users choose GitGuardian over TruffleHog for their code security

TruffleHog is a great open-source project to start tackling hardcoded secrets. However, the breadth of features and support offered by open-source solutions might not be sufficient to meet the code security needs of large, dynamic enterprises. Here’s why users choose GitGuardian as a TruffleHog alternative.

GitGuardian has the GUI that TruffleHog doesn't have. 

GitGuardian’s rich UI and centralized dashboard allow complete collaboration between Dev, Sec teams, and Ops. You can start scans and check their results, assign open secret incidents to developers in your team with restricted roles, track progress with analytics, etc. 

TruffleHog is only capable of local scanning of git repositories and does not support native integrations with version control systems. TruffleHog may not be able to handle large Git repositories or complex Git histories, which can lead to performance issues.

The GitGuardian platform is VCS agnostic (GitHub, Gitlab, BitBucket, Azure DevOps).

TruffleHog, like other open source secret detection tools, can generate false positives leading to wasted time and resources. It uses regular expressions to search for secrets, which may miss potential secrets.

GitGuardian's detection engine has specific and generic detectors, and performs secret validity checks and contextual code analysis to filter out false positives. GitGuardian also regroups multiple occurrences of secrets into a single incident.

TruffleHog is a standalone tool that does not integrate with most other tools, making integrating it into an overall security workflow rather difficult.

With GitGuardian, you can work seamlessly across all tools and frameworks. Alerts can be sent directly to Slack or Discord if secrets are discovered. The incident can be reported to Jira and Pagerduty or you can create custom webhooks.

TruffleHog does not provide any context around the exposed secret to address incident response and remediation. 

With GitGuardian, you can create teams and invite your Developers to join our workspace. Thanks to our playbooks, Sec engineers can reduce their Mean Time To Remediate by automating alerting, prioritization, and collaboration tasks with Dev. Developers can prioritize and nullify most high-severity incidents with our custom remediation advice within a few hours.

As an open-source tool, there may be limited official support from TruffleHog.

GitGuardian provides extensive customer support: PoC exercises, phased rollout and scaling, easy implementation with onboarding programs, dedicated technical account managers for regular check-ins, etc.

GitGuardian is the #1 security application on the GitHub Marketplace

Trusted by security leaders
at the world’s biggest companies

Learn how Jon-Erik and his team saved over 200 hours of manual review

The solution has significantly reduced our mean time to remediation, by three or four months. We wouldn't know about it until we did our quarterly or semi-annual review for secrets and scan for secrets.

Jon-Erik Schneiderhan, Senior Site Reliability Engineer at a computer software company with 501-1,000 employees

Read the case study

Want to see the difference for yourself?

All our plans provide access to GitGuardian’s core features