From 0f427b3c6a6f63f3dc758f7599442c2812f87c01 Mon Sep 17 00:00:00 2001 From: dylanTruffle <52866392+dylanTruffle@users.noreply.github.com> Date: Tue, 24 Sep 2024 16:10:16 -0700 Subject: [PATCH] Adding Descriptions (#3258) * adding AI generated descriptions of the key types and their capabilities * removing empty file * Update abbysale.go * update to interface * fixes * fix * small cleanup --------- Co-authored-by: Dylan Ayrey Co-authored-by: Dustin Decker --- go.sum | 102 +----------------- pkg/custom_detectors/custom_detectors.go | 9 ++ pkg/detectors/abbysale/abbysale.go | 4 + pkg/detectors/abstract/abstract.go | 4 + pkg/detectors/abuseipdb/abuseipdb.go | 4 + pkg/detectors/accuweather/accuweather.go | 4 + pkg/detectors/adafruitio/adafruitio.go | 4 + pkg/detectors/adobeio/adobeio.go | 4 + pkg/detectors/adzuna/adzuna.go | 4 + pkg/detectors/aeroworkflow/aeroworkflow.go | 4 + pkg/detectors/agora/agora.go | 4 + pkg/detectors/aha/aha.go | 4 + .../airbrakeprojectkey/airbrakeprojectkey.go | 4 + .../airbrakeuserkey/airbrakeuserkey.go | 10 +- pkg/detectors/airship/airship.go | 4 + .../airtableapikey/airtableapikey.go | 4 + pkg/detectors/airvisual/airvisual.go | 4 + pkg/detectors/aiven/aiven.go | 4 + pkg/detectors/alchemy/alchemy.go | 4 + pkg/detectors/alconost/alconost.go | 4 + pkg/detectors/alegra/alegra.go | 4 + pkg/detectors/aletheiaapi/aletheiaapi.go | 4 + .../algoliaadminkey/algoliaadminkey.go | 4 + pkg/detectors/alibaba/alibaba.go | 4 + pkg/detectors/alienvault/alienvault.go | 4 + pkg/detectors/allsports/allsports.go | 4 + pkg/detectors/amadeus/amadeus.go | 4 + pkg/detectors/ambee/ambee.go | 4 + .../amplitudeapikey/amplitudeapikey.go | 4 + pkg/detectors/anthropic/anthropic.go | 4 + pkg/detectors/anypoint/anypoint.go | 4 + pkg/detectors/apacta/apacta.go | 4 + pkg/detectors/api2cart/api2cart.go | 7 +- pkg/detectors/apideck/apideck.go | 4 + pkg/detectors/apiflash/apiflash.go | 4 + pkg/detectors/apifonica/apifonica.go | 4 + pkg/detectors/apify/apify.go | 4 + pkg/detectors/apilayer/apilayer.go | 4 + pkg/detectors/apimatic/apimatic.go | 4 + pkg/detectors/apiscience/apiscience.go | 4 + pkg/detectors/apitemplate/apitemplate.go | 4 + pkg/detectors/apollo/apollo.go | 4 + pkg/detectors/appcues/appcues.go | 4 + pkg/detectors/appfollow/appfollow.go | 4 + pkg/detectors/appointedd/appointedd.go | 4 + pkg/detectors/appoptics/appoptics.go | 4 + pkg/detectors/appsynergy/appsynergy.go | 4 + pkg/detectors/apptivo/apptivo.go | 4 + pkg/detectors/artifactory/artifactory.go | 4 + pkg/detectors/artsy/artsy.go | 4 + pkg/detectors/asanaoauth/asanaoauth.go | 4 + .../asanapersonalaccesstoken.go | 4 + pkg/detectors/assemblyai/assemblyai.go | 4 + pkg/detectors/atera/atera.go | 4 + pkg/detectors/atlassian/v1/atlassian.go | 9 +- pkg/detectors/atlassian/v2/atlassian.go | 5 + pkg/detectors/audd/audd.go | 4 + .../auth0managementapitoken.go | 4 + pkg/detectors/auth0oauth/auth0oauth.go | 4 + pkg/detectors/autodesk/autodesk.go | 4 + pkg/detectors/autoklose/autoklose.go | 4 + pkg/detectors/autopilot/autopilot.go | 4 + .../avazapersonalaccesstoken.go | 4 + pkg/detectors/aviationstack/aviationstack.go | 4 + pkg/detectors/aws/aws.go | 4 + pkg/detectors/awssessionkeys/awssessionkey.go | 4 + pkg/detectors/axonaut/axonaut.go | 4 + pkg/detectors/aylien/aylien.go | 4 + pkg/detectors/ayrshare/ayrshare.go | 4 + pkg/detectors/azure/azure.go | 17 +-- pkg/detectors/azurebatch/azurebatch.go | 4 + .../azurecontainerregistry.go | 4 + .../azuredevopspersonalaccesstoken.go | 4 + .../azurefunctionkey/azurefunctionkey.go | 4 + .../azuresearchadminkey.go | 4 + .../azuresearchquerykey.go | 4 + pkg/detectors/azurestorage/azurestorage.go | 4 + pkg/detectors/bannerbear/bannerbear.go | 4 + pkg/detectors/baremetrics/baremetrics.go | 4 + pkg/detectors/beamer/beamer.go | 4 + pkg/detectors/beebole/beebole.go | 4 + pkg/detectors/besnappy/besnappy.go | 4 + pkg/detectors/besttime/besttime.go | 4 + pkg/detectors/betterstack/betterstack.go | 4 + pkg/detectors/billomat/billomat.go | 4 + pkg/detectors/bitbar/bitbar.go | 7 +- .../bitcoinaverage/bitcoinaverage.go | 4 + pkg/detectors/bitfinex/bitfinex.go | 4 + .../bitlyaccesstoken/bitlyaccesstoken.go | 4 + pkg/detectors/bitmex/bitmex.go | 4 + pkg/detectors/blazemeter/blazemeter.go | 4 + pkg/detectors/blitapp/blitapp.go | 4 + pkg/detectors/blocknative/blocknative.go | 4 + pkg/detectors/blogger/blogger.go | 4 + pkg/detectors/bombbomb/bombbomb.go | 4 + pkg/detectors/boostnote/boostnote.go | 4 + pkg/detectors/borgbase/borgbase.go | 4 + .../braintreepayments/braintreepayments.go | 4 + pkg/detectors/brandfetch/brandfetch.go | 4 + pkg/detectors/browserstack/browserstack.go | 4 + pkg/detectors/browshot/browshot.go | 4 + pkg/detectors/bscscan/bscscan.go | 4 + pkg/detectors/buddyns/buddyns.go | 4 + pkg/detectors/budibase/budibase.go | 4 + pkg/detectors/bugherd/bugherd.go | 4 + pkg/detectors/bugsnag/bugsnag.go | 4 + pkg/detectors/buildkite/buildkite.go | 4 + pkg/detectors/buildkitev2/buildkite.go | 4 + pkg/detectors/bulbul/bulbul.go | 4 + pkg/detectors/bulksms/bulksms.go | 4 + pkg/detectors/buttercms/buttercms.go | 4 + pkg/detectors/caflou/caflou.go | 4 + pkg/detectors/calendarific/calendarific.go | 4 + .../calendlyapikey/calendlyapikey.go | 4 + pkg/detectors/calorieninja/calorieninja.go | 4 + pkg/detectors/campayn/campayn.go | 4 + pkg/detectors/cannyio/cannyio.go | 4 + pkg/detectors/capsulecrm/capsulecrm.go | 4 + pkg/detectors/captaindata/captaindata.go | 4 + .../carboninterface/carboninterface.go | 4 + pkg/detectors/cashboard/cashboard.go | 4 + pkg/detectors/caspio/caspio.go | 4 + pkg/detectors/censys/censys.go | 4 + .../centralstationcrm/centralstationcrm.go | 4 + pkg/detectors/cexio/cexio.go | 4 + pkg/detectors/chartmogul/chartmogul.go | 4 + pkg/detectors/chatbot/chatbot.go | 4 + pkg/detectors/chatfule/chatfule.go | 4 + pkg/detectors/checio/checio.go | 4 + pkg/detectors/checklyhq/checklyhq.go | 4 + pkg/detectors/checkout/checkout.go | 4 + pkg/detectors/checkvist/checkvist.go | 5 +- pkg/detectors/cicero/cicero.go | 4 + pkg/detectors/circleci/circleci.go | 10 +- pkg/detectors/clarifai/clarifai.go | 4 + pkg/detectors/clearbit/clearbit.go | 4 + pkg/detectors/clickhelp/clickhelp.go | 4 + pkg/detectors/clicksendsms/clicksendsms.go | 4 + .../clickuppersonaltoken.go | 4 + pkg/detectors/cliengo/cliengo.go | 4 + pkg/detectors/clinchpad/clinchpad.go | 4 + pkg/detectors/clockify/clockify.go | 4 + pkg/detectors/clockworksms/clockworksms.go | 4 + pkg/detectors/closecrm/close.go | 4 + pkg/detectors/cloudconvert/cloudconvert.go | 4 + pkg/detectors/cloudelements/cloudelements.go | 4 + .../cloudflareapitoken/cloudflareapitoken.go | 4 + .../cloudflarecakey/cloudflarecakey.go | 4 + .../cloudflareglobalapikey.go | 8 +- pkg/detectors/cloudimage/cloudimage.go | 4 + pkg/detectors/cloudmersive/cloudmersive.go | 4 + pkg/detectors/cloudplan/cloudplan.go | 4 + pkg/detectors/cloudsmith/cloudsmith.go | 4 + pkg/detectors/cloverly/cloverly.go | 4 + pkg/detectors/cloze/cloze.go | 10 +- pkg/detectors/clustdoc/clustdoc.go | 4 + pkg/detectors/coda/coda.go | 4 + pkg/detectors/codacy/codacy.go | 4 + pkg/detectors/codeclimate/codeclimate.go | 4 + pkg/detectors/codemagic/codemagic.go | 4 + pkg/detectors/codequiry/codequiry.go | 4 + pkg/detectors/coinapi/coinapi.go | 4 + pkg/detectors/coinbase/coinbase.go | 4 + pkg/detectors/coinbase_waas/coinbase_waas.go | 4 + pkg/detectors/coinlayer/coinlayer.go | 4 + pkg/detectors/coinlib/coinlib.go | 4 + pkg/detectors/collect2/collect2.go | 4 + pkg/detectors/column/column.go | 4 + pkg/detectors/commercejs/commercejs.go | 4 + pkg/detectors/commodities/commodities.go | 4 + pkg/detectors/companyhub/companyhub.go | 4 + pkg/detectors/confluent/confluent.go | 4 + .../contentfulpersonalaccesstoken.go | 4 + .../conversiontools/conversiontools.go | 4 + pkg/detectors/convertapi/convertapi.go | 4 + pkg/detectors/convertkit/convertkit.go | 4 + pkg/detectors/convier/convier.go | 7 +- pkg/detectors/copper/copper.go | 4 + pkg/detectors/couchbase/couchbase.go | 4 + pkg/detectors/countrylayer/countrylayer.go | 4 + pkg/detectors/courier/courier.go | 4 + pkg/detectors/coveralls/coveralls.go | 4 + pkg/detectors/craftmypdf/craftmypdf.go | 4 + pkg/detectors/crowdin/crowdin.go | 5 +- pkg/detectors/cryptocompare/cryptocompare.go | 4 + pkg/detectors/currencycloud/currencycloud.go | 4 + .../currencyfreaks/currencyfreaks.go | 4 + pkg/detectors/currencylayer/currencylayer.go | 5 +- pkg/detectors/currencyscoop/currencyscoop.go | 4 + pkg/detectors/currentsapi/currentsapi.go | 4 + pkg/detectors/customerguru/customerguru.go | 4 + pkg/detectors/customerio/customerio.go | 4 + pkg/detectors/d7network/d7network.go | 4 + pkg/detectors/dailyco/dailyco.go | 4 + pkg/detectors/dandelion/dandelion.go | 4 + pkg/detectors/dareboost/dareboost.go | 4 + pkg/detectors/databox/databox.go | 4 + .../databrickstoken/databrickstoken.go | 4 + pkg/detectors/datadogtoken/datadogtoken.go | 4 + pkg/detectors/datagov/datagov.go | 4 + pkg/detectors/debounce/debounce.go | 4 + pkg/detectors/deepai/deepai.go | 4 + pkg/detectors/deepgram/deepgram.go | 4 + pkg/detectors/delighted/delighted.go | 4 + pkg/detectors/demio/demio.go | 6 +- pkg/detectors/deno/denodeploy.go | 4 + pkg/detectors/deputy/deputy.go | 4 + pkg/detectors/detectify/detectify.go | 4 + .../detectlanguage/detectlanguage.go | 4 + pkg/detectors/detectors.go | 2 + pkg/detectors/dfuse/dfuse.go | 4 + pkg/detectors/diffbot/diffbot.go | 4 + pkg/detectors/diggernaut/diggernaut.go | 4 + .../digitaloceantoken/digitaloceantoken.go | 7 +- .../digitaloceanv2/digitaloceanv2.go | 4 + .../discordbottoken/discordbottoken.go | 4 + .../discordwebhook/discordwebhook.go | 4 + pkg/detectors/disqus/disqus.go | 4 + pkg/detectors/ditto/ditto.go | 4 + pkg/detectors/dnscheck/dnscheck.go | 4 + pkg/detectors/dockerhub/v1/dockerhub.go | 4 + pkg/detectors/dockerhub/v2/dockerhub.go | 4 + pkg/detectors/docparser/docparser.go | 4 + pkg/detectors/documo/documo.go | 4 + pkg/detectors/docusign/docusign.go | 4 + pkg/detectors/doppler/doppler.go | 4 + pkg/detectors/dotmailer/dotmailer.go | 4 + pkg/detectors/dovico/dovico.go | 4 + pkg/detectors/dronahq/dronahq.go | 4 + pkg/detectors/droneci/droneci.go | 4 + pkg/detectors/dropbox/dropbox.go | 10 +- pkg/detectors/duply/duply.go | 4 + pkg/detectors/dwolla/dwolla.go | 4 + pkg/detectors/dynalist/dynalist.go | 4 + pkg/detectors/dyspatch/dyspatch.go | 4 + .../eagleeyenetworks/eagleeyenetworks.go | 4 + pkg/detectors/easyinsight/easyinsight.go | 4 + pkg/detectors/ecostruxureit/ecostruxureit.go | 4 + pkg/detectors/edamam/edamam.go | 4 + pkg/detectors/edenai/edenai.go | 4 + pkg/detectors/eightxeight/eightxeight.go | 4 + pkg/detectors/elasticemail/elasticemail.go | 4 + pkg/detectors/elevenlabs/v1/elevenlabs.go | 4 + pkg/detectors/elevenlabs/v2/elevenlabs.go | 4 + pkg/detectors/enablex/enablex.go | 4 + pkg/detectors/endorlabs/endorlabs.go | 4 + pkg/detectors/enigma/enigma.go | 4 + pkg/detectors/envoyapikey/envoyapikey.go | 4 + pkg/detectors/eraser/eraser.go | 4 + pkg/detectors/etherscan/etherscan.go | 4 + pkg/detectors/ethplorer/ethplorer.go | 4 + pkg/detectors/eventbrite/eventbrite.go | 4 + pkg/detectors/everhour/everhour.go | 4 + .../exchangerateapi/exchangerateapi.go | 4 + .../exchangeratesapi/exchangeratesapi.go | 4 + pkg/detectors/exportsdk/exportsdk.go | 4 + pkg/detectors/extractorapi/extractorapi.go | 4 + pkg/detectors/facebookoauth/facebookoauth.go | 4 + pkg/detectors/faceplusplus/faceplusplus.go | 4 + pkg/detectors/falsepositives_test.go | 2 + pkg/detectors/fastforex/fastforex.go | 4 + .../fastlypersonaltoken.go | 4 + pkg/detectors/feedier/feedier.go | 4 + pkg/detectors/fetchrss/fetchrss.go | 4 + pkg/detectors/fibery/fibery.go | 5 + .../v1/figmapersonalaccesstoken.go | 4 + .../v2/figmapersonalaccesstoken_v2.go | 5 + pkg/detectors/fileio/fileio.go | 7 +- pkg/detectors/finage/finage.go | 4 + .../financialmodelingprep.go | 4 + pkg/detectors/findl/findl.go | 4 + pkg/detectors/finnhub/finnhub.go | 4 + pkg/detectors/fixerio/fixerio.go | 4 + pkg/detectors/flatio/flatio.go | 4 + pkg/detectors/fleetbase/fleetbase.go | 4 + pkg/detectors/flickr/flickr.go | 4 + pkg/detectors/flightapi/flightapi.go | 4 + pkg/detectors/flightlabs/flightlabs.go | 4 + pkg/detectors/flightstats/flightstats.go | 4 + pkg/detectors/float/float.go | 4 + pkg/detectors/flowflu/flowflu.go | 4 + pkg/detectors/flutterwave/flutterwave.go | 4 + pkg/detectors/fmfw/fmfw.go | 4 + pkg/detectors/formbucket/formbucket.go | 4 + pkg/detectors/formcraft/formcraft.go | 4 + pkg/detectors/formio/formio.go | 4 + pkg/detectors/formsite/formsite.go | 9 +- pkg/detectors/foursquare/foursquare.go | 4 + pkg/detectors/frameio/frameio.go | 4 + pkg/detectors/freshbooks/freshbooks.go | 4 + pkg/detectors/freshdesk/freshdesk.go | 4 + pkg/detectors/front/front.go | 4 + pkg/detectors/ftp/ftp.go | 4 + pkg/detectors/fulcrum/fulcrum.go | 6 +- pkg/detectors/fullstory/v1/fullstory.go | 4 + pkg/detectors/fullstory/v2/fullstory_v2.go | 4 + pkg/detectors/fxmarket/fxmarket.go | 4 + pkg/detectors/gcp/gcp.go | 12 ++- .../gcpapplicationdefaultcredentials.go | 4 + pkg/detectors/geckoboard/geckoboard.go | 4 + pkg/detectors/gemini/gemini.go | 4 + pkg/detectors/generic/generic.go | 4 + pkg/detectors/gengo/gengo.go | 4 + pkg/detectors/geoapify/geoapify.go | 4 + pkg/detectors/geocode/geocode.go | 4 + pkg/detectors/geocodify/geocodify.go | 4 + pkg/detectors/geocodio/geocodio.go | 4 + pkg/detectors/geoipifi/geoipifi.go | 4 + pkg/detectors/getemail/getemail.go | 4 + pkg/detectors/getemails/getemails.go | 4 + pkg/detectors/getgeoapi/getgeoapi.go | 4 + pkg/detectors/getgist/getgist.go | 4 + pkg/detectors/getresponse/getresponse.go | 4 + pkg/detectors/getsandbox/getsandbox.go | 4 + pkg/detectors/github/v1/github_old.go | 4 + pkg/detectors/github/v2/github.go | 4 + pkg/detectors/github_oauth2/github_oauth2.go | 4 + pkg/detectors/githubapp/githubapp.go | 4 + pkg/detectors/gitlab/v1/gitlab.go | 4 + pkg/detectors/gitlab/v2/gitlab_v2.go | 4 + pkg/detectors/gitter/gitter.go | 7 +- pkg/detectors/glassnode/glassnode.go | 4 + pkg/detectors/gocanvas/gocanvas.go | 5 +- pkg/detectors/gocardless/gocardless.go | 4 + pkg/detectors/goodday/goodday.go | 4 + .../googleoauth2/googleoauth2_access_token.go | 4 + pkg/detectors/grafana/grafana.go | 4 + .../grafanaserviceaccount.go | 4 + pkg/detectors/graphcms/graphcms.go | 9 +- pkg/detectors/graphhopper/graphhopper.go | 4 + pkg/detectors/groovehq/groovehq.go | 4 + pkg/detectors/groq/groq.go | 4 + pkg/detectors/gtmetrix/gtmetrix.go | 4 + pkg/detectors/guardianapi/guardianapi.go | 4 + pkg/detectors/gumroad/gumroad.go | 4 + pkg/detectors/guru/guru.go | 4 + pkg/detectors/gyazo/gyazo.go | 4 + pkg/detectors/happyscribe/happyscribe.go | 4 + pkg/detectors/harvest/harvest.go | 4 + pkg/detectors/hellosign/hellosign.go | 4 + pkg/detectors/helpcrunch/helpcrunch.go | 4 + pkg/detectors/helpscout/helpscout.go | 4 + pkg/detectors/hereapi/hereapi.go | 4 + pkg/detectors/heroku/heroku.go | 4 + pkg/detectors/hive/hive.go | 4 + pkg/detectors/hiveage/hiveage.go | 4 + pkg/detectors/holidayapi/holidayapi.go | 4 + pkg/detectors/holistic/holistic.go | 4 + pkg/detectors/honeycomb/honeycomb.go | 4 + pkg/detectors/host/host.go | 4 + pkg/detectors/html2pdf/html2pdf.go | 7 +- pkg/detectors/hubspotapikey/hubspotapikey.go | 4 + pkg/detectors/huggingface/huggingface.go | 4 + pkg/detectors/humanity/humanity.go | 4 + pkg/detectors/hunter/hunter.go | 4 + pkg/detectors/hybiscus/hybiscus.go | 4 + pkg/detectors/hypertrack/hypertrack.go | 4 + .../ibmclouduserkey/ibmclouduserkey.go | 4 + pkg/detectors/iconfinder/iconfinder.go | 4 + pkg/detectors/iexapis/iexapis.go | 4 + pkg/detectors/iexcloud/iexcloud.go | 4 + pkg/detectors/imagekit/imagekit.go | 4 + pkg/detectors/imagga/imagga.go | 6 +- pkg/detectors/impala/impala.go | 4 + pkg/detectors/infura/infura.go | 4 + pkg/detectors/insightly/insightly.go | 4 + pkg/detectors/instabot/instabot.go | 4 + pkg/detectors/instamojo/instamojo.go | 4 + pkg/detectors/intercom/intercom.go | 4 + pkg/detectors/interseller/interseller.go | 7 +- pkg/detectors/intra42/intra42.go | 4 + pkg/detectors/intrinio/intrinio.go | 4 + pkg/detectors/invoiceocean/invoiceocean.go | 4 + pkg/detectors/ip2location/ip2location.go | 4 + pkg/detectors/ipapi/ipapi.go | 4 + pkg/detectors/ipgeolocation/ipgeolocation.go | 4 + pkg/detectors/ipinfo/ipinfo.go | 4 + pkg/detectors/ipinfodb/ipinfodb.go | 4 + pkg/detectors/ipquality/ipquality.go | 4 + pkg/detectors/ipstack/ipstack.go | 4 + pkg/detectors/jdbc/jdbc.go | 16 +-- pkg/detectors/jiratoken/v1/jiratoken.go | 4 + pkg/detectors/jiratoken/v2/jiratoken_v2.go | 4 + pkg/detectors/jotform/jotform.go | 4 + pkg/detectors/jumpcloud/jumpcloud.go | 4 + pkg/detectors/jupiterone/jupiterone.go | 4 + pkg/detectors/juro/juro.go | 4 + pkg/detectors/kanban/kanban.go | 4 + pkg/detectors/kanbantool/kanbantool.go | 4 + pkg/detectors/karmacrm/karmacrm.go | 4 + pkg/detectors/keenio/keenio.go | 4 + pkg/detectors/kickbox/kickbox.go | 4 + pkg/detectors/klaviyo/klaviyo.go | 4 + pkg/detectors/klipfolio/klipfolio.go | 4 + pkg/detectors/knapsackpro/knapsackpro.go | 4 + pkg/detectors/kontent/kontent.go | 4 + pkg/detectors/kraken/kraken.go | 7 +- pkg/detectors/kucoin/kucoin.go | 4 + pkg/detectors/kylas/kylas.go | 4 + pkg/detectors/languagelayer/languagelayer.go | 4 + pkg/detectors/larksuite/larksuite.go | 4 + .../larksuiteapikey/larksuiteapikey.go | 4 + pkg/detectors/launchdarkly/launchdarkly.go | 4 + pkg/detectors/ldap/ldap.go | 4 + pkg/detectors/leadfeeder/leadfeeder.go | 4 + pkg/detectors/lemlist/lemlist.go | 4 + pkg/detectors/lemonsqueezy/lemonsqueezy.go | 4 + pkg/detectors/lendflow/lendflow.go | 4 + .../lessannoyingcrm/lessannoyingcrm.go | 4 + pkg/detectors/lexigram/lexigram.go | 4 + pkg/detectors/linearapi/linearapi.go | 4 + pkg/detectors/linemessaging/linemessaging.go | 4 + pkg/detectors/linenotify/linenotify.go | 4 + pkg/detectors/linkpreview/linkpreview.go | 4 + pkg/detectors/liveagent/liveagent.go | 4 + pkg/detectors/livestorm/livestorm.go | 4 + pkg/detectors/loadmill/loadmill.go | 4 + pkg/detectors/lob/lob.go | 4 + pkg/detectors/locationiq/locationiq.go | 4 + pkg/detectors/loggly/loggly.go | 4 + pkg/detectors/loginradius/loginradius.go | 4 + pkg/detectors/logzio/logzio.go | 4 + pkg/detectors/lokalisetoken/lokalisetoken.go | 4 + pkg/detectors/loyverse/loyverse.go | 4 + pkg/detectors/lunchmoney/lunchmoney.go | 4 + pkg/detectors/luno/luno.go | 4 + pkg/detectors/m3o/m3o.go | 4 + pkg/detectors/madkudu/madkudu.go | 4 + pkg/detectors/magicbell/magicbell.go | 4 + pkg/detectors/magnetic/magnetic.go | 5 + pkg/detectors/mailboxlayer/mailboxlayer.go | 6 +- pkg/detectors/mailchimp/mailchimp.go | 14 ++- pkg/detectors/mailerlite/mailerlite.go | 4 + pkg/detectors/mailgun/mailgun.go | 4 + .../mailjetbasicauth/mailjetbasicauth.go | 4 + pkg/detectors/mailjetsms/mailjetsms.go | 4 + pkg/detectors/mailmodo/mailmodo.go | 4 + pkg/detectors/mailsac/mailsac.go | 4 + pkg/detectors/mandrill/mandrill.go | 4 + pkg/detectors/manifest/manifest.go | 4 + pkg/detectors/mapbox/mapbox.go | 4 + pkg/detectors/mapquest/mapquest.go | 4 + pkg/detectors/marketstack/marketstack.go | 4 + .../mattermostpersonaltoken.go | 4 + pkg/detectors/mavenlink/mavenlink.go | 4 + .../maxmindlicense/v1/maxmindlicense.go | 4 + .../maxmindlicense/v2/maxmindlicense_v2.go | 4 + pkg/detectors/meaningcloud/meaningcloud.go | 4 + pkg/detectors/mediastack/mediastack.go | 4 + pkg/detectors/meistertask/meistertask.go | 4 + pkg/detectors/mesibo/mesibo.go | 4 + pkg/detectors/messagebird/messagebird.go | 4 + pkg/detectors/metaapi/metaapi.go | 6 +- pkg/detectors/metabase/metabase.go | 4 + pkg/detectors/metrilo/metrilo.go | 4 + .../microsoftteamswebhook.go | 4 + pkg/detectors/mindmeister/mindmeister.go | 4 + pkg/detectors/miro/miro.go | 4 + pkg/detectors/mite/mite.go | 6 +- pkg/detectors/mixmax/mixmax.go | 4 + pkg/detectors/mixpanel/mixpanel.go | 4 + pkg/detectors/mockaroo/mockaroo.go | 9 +- pkg/detectors/moderation/moderation.go | 4 + pkg/detectors/monday/monday.go | 4 + pkg/detectors/mongodb/mongodb.go | 4 + pkg/detectors/monkeylearn/monkeylearn.go | 4 + pkg/detectors/moonclerk/moonclerk.go | 4 + pkg/detectors/moosend/moosend.go | 4 + pkg/detectors/moralis/moralis.go | 4 + pkg/detectors/mrticktock/mrticktock.go | 4 + pkg/detectors/mux/mux.go | 4 + pkg/detectors/myfreshworks/myfreshworks.go | 4 + pkg/detectors/myintervals/myintervals.go | 4 + .../nasdaqdatalink/nasdaqdatalink.go | 4 + pkg/detectors/nethunt/nethunt.go | 4 + pkg/detectors/netlify/netlify.go | 4 + pkg/detectors/netsuite/netsuite.go | 4 + pkg/detectors/neutrinoapi/neutrinoapi.go | 4 + .../newrelicpersonalapikey.go | 4 + pkg/detectors/newsapi/newsapi.go | 4 + pkg/detectors/newscatcher/newscatcher.go | 4 + pkg/detectors/nexmoapikey/nexmoapikey.go | 6 +- pkg/detectors/nftport/nftport.go | 4 + pkg/detectors/ngc/ngc.go | 4 + pkg/detectors/ngrok/ngrok.go | 4 + pkg/detectors/nicereply/nicereply.go | 4 + pkg/detectors/nightfall/nightfall.go | 4 + pkg/detectors/nimble/nimble.go | 4 + pkg/detectors/noticeable/noticeable.go | 4 + pkg/detectors/notion/notion.go | 4 + pkg/detectors/nozbeteams/nozbeteams.go | 4 + pkg/detectors/npmtoken/npmtoken.go | 4 + pkg/detectors/npmtokenv2/npmtokenv2.go | 4 + pkg/detectors/nugetapikey/nugetapikey.go | 4 + pkg/detectors/numverify/numverify.go | 4 + pkg/detectors/nutritionix/nutritionix.go | 4 + pkg/detectors/nvapi/nvapi.go | 4 + pkg/detectors/nylas/nylas.go | 4 + pkg/detectors/oanda/oanda.go | 4 + pkg/detectors/okta/okta.go | 10 +- pkg/detectors/omnisend/omnisend.go | 4 + pkg/detectors/onedesk/onedesk.go | 4 + pkg/detectors/onelogin/onelogin.go | 10 +- pkg/detectors/onepagecrm/onepagecrm.go | 4 + pkg/detectors/onesignal/onesignal.go | 4 + pkg/detectors/onfleet/onfleet.go | 4 + pkg/detectors/oopspam/oopspam.go | 4 + pkg/detectors/openai/openai.go | 4 + pkg/detectors/opencagedata/opencagedata.go | 4 + pkg/detectors/openuv/openuv.go | 4 + pkg/detectors/openvpn/openvpn.go | 4 + pkg/detectors/openweather/openweather.go | 4 + pkg/detectors/opsgenie/opsgenie.go | 5 + pkg/detectors/optimizely/optimizely.go | 4 + pkg/detectors/overloop/overloop.go | 4 + pkg/detectors/owlbot/owlbot.go | 4 + pkg/detectors/packagecloud/packagecloud.go | 4 + pkg/detectors/pagarme/pagarme.go | 5 +- .../pagerdutyapikey/pagerdutyapikey.go | 4 + pkg/detectors/pandadoc/pandadoc.go | 4 + pkg/detectors/pandascore/pandascore.go | 4 + pkg/detectors/paperform/paperform.go | 4 + pkg/detectors/paralleldots/paralleldots.go | 4 + pkg/detectors/parsehub/parsehub.go | 4 + pkg/detectors/parsers/parsers.go | 4 + pkg/detectors/parseur/parseur.go | 4 + pkg/detectors/partnerstack/partnerstack.go | 4 + pkg/detectors/pastebin/pastebin.go | 4 + pkg/detectors/paydirtapp/paydirtapp.go | 4 + pkg/detectors/paymoapp/paymoapp.go | 4 + pkg/detectors/paymongo/paymongo.go | 4 + pkg/detectors/paypaloauth/paypaloauth.go | 4 + pkg/detectors/paystack/paystack.go | 4 + pkg/detectors/pdflayer/pdflayer.go | 4 + pkg/detectors/pdfshift/pdfshift.go | 4 + .../peopledatalabs/peopledatalabs.go | 4 + pkg/detectors/pepipost/pepipost.go | 4 + pkg/detectors/percy/percy.go | 4 + pkg/detectors/pinata/pinata.go | 4 + pkg/detectors/pipedream/pipedream.go | 4 + pkg/detectors/pipedrive/pipedrive.go | 4 + .../pivotaltracker/pivotaltracker.go | 10 +- pkg/detectors/pixabay/pixabay.go | 4 + pkg/detectors/plaidkey/plaidkey.go | 4 + pkg/detectors/planetscale/planetscale.go | 4 + pkg/detectors/planetscaledb/planetscaledb.go | 4 + .../planviewleankit/planviewleankit.go | 4 + pkg/detectors/planyo/planyo.go | 7 +- pkg/detectors/plivo/plivo.go | 4 + pkg/detectors/podio/podio.go | 4 + pkg/detectors/pollsapi/pollsapi.go | 4 + pkg/detectors/poloniex/poloniex.go | 4 + pkg/detectors/polygon/polygon.go | 4 + pkg/detectors/portainer/portainer.go | 4 + .../portainertoken/portainertoken.go | 4 + pkg/detectors/positionstack/positionstack.go | 4 + pkg/detectors/postageapp/postageapp.go | 4 + pkg/detectors/postbacks/postbacks.go | 4 + pkg/detectors/postgres/postgres.go | 4 + pkg/detectors/posthog/posthog.go | 4 + pkg/detectors/postman/postman.go | 4 + pkg/detectors/postmark/postmark.go | 4 + pkg/detectors/powrbot/powrbot.go | 4 + pkg/detectors/prefect/prefect.go | 4 + pkg/detectors/privacy/privacy.go | 4 + pkg/detectors/privatekey/privatekey.go | 4 + pkg/detectors/prodpad/prodpad.go | 4 + pkg/detectors/prospectcrm/prospectcrm.go | 4 + pkg/detectors/protocolsio/protocolsio.go | 4 + pkg/detectors/proxycrawl/proxycrawl.go | 4 + .../pubnubpublishkey/pubnubpublishkey.go | 4 + .../pubnubsubscriptionkey.go | 4 + pkg/detectors/pulumi/pulumi.go | 4 + pkg/detectors/purestake/purestake.go | 4 + .../pushbulletapikey/pushbulletapikey.go | 4 + .../pusherchannelkey/pusherchannelkey.go | 4 + pkg/detectors/pypi/pypi.go | 4 + pkg/detectors/qase/qase.go | 4 + pkg/detectors/qualaroo/qualaroo.go | 4 + pkg/detectors/qubole/qubole.go | 4 + pkg/detectors/rabbitmq/rabbitmq.go | 4 + pkg/detectors/ramp/ramp.go | 4 + pkg/detectors/rapidapi/rapidapi.go | 4 + pkg/detectors/raven/raven.go | 4 + pkg/detectors/rawg/rawg.go | 4 + pkg/detectors/razorpay/razorpay.go | 4 + pkg/detectors/reachmail/reachmail.go | 4 + pkg/detectors/readme/readme.go | 5 +- .../reallysimplesystems.go | 4 + pkg/detectors/rebrandly/rebrandly.go | 4 + .../rechargepayments/rechargepayments.go | 10 +- pkg/detectors/redis/redis.go | 6 +- pkg/detectors/refiner/refiner.go | 4 + pkg/detectors/rentman/rentman.go | 4 + pkg/detectors/repairshopr/repairshopr.go | 6 +- pkg/detectors/replicate/replicate.go | 4 + pkg/detectors/replyio/replyio.go | 4 + .../requestfinance/requestfinance.go | 4 + pkg/detectors/restpack/restpack.go | 4 + .../restpackhtmltopdfapi.go | 4 + .../restpackscreenshotapi.go | 4 + pkg/detectors/rev/rev.go | 4 + pkg/detectors/revampcrm/revampcrm.go | 4 + pkg/detectors/ringcentral/ringcentral.go | 4 + pkg/detectors/ritekit/ritekit.go | 4 + pkg/detectors/roaring/roaring.go | 4 + .../robinhoodcrypto/robinhoodcrypto.go | 4 + pkg/detectors/rocketreach/rocketreach.go | 4 + pkg/detectors/rockset/rockset.go | 4 + pkg/detectors/roninapp/roninapp.go | 4 + pkg/detectors/route4me/route4me.go | 4 + pkg/detectors/rownd/rownd.go | 5 +- pkg/detectors/rubygems/rubygems.go | 4 + pkg/detectors/runrunit/runrunit.go | 4 + pkg/detectors/salesblink/salesblink.go | 4 + pkg/detectors/salescookie/salescookie.go | 4 + pkg/detectors/salesflare/salesflare.go | 4 + pkg/detectors/salesforce/salesforce.go | 4 + pkg/detectors/salesmate/salesmate.go | 4 + .../satismeterprojectkey.go | 4 + .../satismeterwritekey/satismeterwritekey.go | 4 + pkg/detectors/saucelabs/saucelabs.go | 5 +- pkg/detectors/scalewaykey/scalewaykey.go | 4 + pkg/detectors/scalr/scalr.go | 4 + pkg/detectors/scrapeowl/scrapeowl.go | 7 +- pkg/detectors/scraperapi/scraperapi.go | 4 + pkg/detectors/scraperbox/scraperbox.go | 4 + pkg/detectors/scrapestack/scrapestack.go | 4 + pkg/detectors/scrapfly/scrapfly.go | 4 + pkg/detectors/scrapingant/scrapingant.go | 4 + pkg/detectors/scrapingbee/scrapingbee.go | 4 + pkg/detectors/screenshotapi/screenshotapi.go | 4 + .../screenshotlayer/screenshotlayer.go | 4 + pkg/detectors/scrutinizerci/scrutinizerci.go | 4 + .../securitytrails/securitytrails.go | 4 + pkg/detectors/segmentapikey/segmentapikey.go | 4 + pkg/detectors/selectpdf/selectpdf.go | 4 + pkg/detectors/semaphore/semaphore.go | 4 + pkg/detectors/sendbird/sendbird.go | 4 + .../sendbirdorganizationapi.go | 4 + pkg/detectors/sendgrid/sendgrid.go | 4 + pkg/detectors/sendinbluev2/sendinbluev2.go | 4 + pkg/detectors/sentrytoken/sentrytoken.go | 4 + pkg/detectors/serphouse/serphouse.go | 4 + pkg/detectors/serpstack/serpstack.go | 7 +- pkg/detectors/sheety/sheety.go | 4 + pkg/detectors/sherpadesk/sherpadesk.go | 4 + pkg/detectors/shipday/shipday.go | 4 + pkg/detectors/shodankey/shodankey.go | 5 +- pkg/detectors/shopify/shopify.go | 4 + pkg/detectors/shortcut/shortcut.go | 4 + pkg/detectors/shotstack/shotstack.go | 4 + pkg/detectors/shutterstock/shutterstock.go | 4 + .../shutterstockoauth/shutterstockoauth.go | 4 + pkg/detectors/signable/signable.go | 4 + pkg/detectors/signalwire/signalwire.go | 4 + pkg/detectors/signaturit/signaturit.go | 4 + pkg/detectors/signupgenius/signupgenius.go | 4 + pkg/detectors/sigopt/sigopt.go | 4 + pkg/detectors/simfin/simfin.go | 7 +- pkg/detectors/simplesat/simplesat.go | 4 + pkg/detectors/simplynoted/simplynoted.go | 4 + pkg/detectors/simvoly/simvoly.go | 4 + pkg/detectors/sinchmessage/sinchmessage.go | 4 + pkg/detectors/sirv/sirv.go | 4 + pkg/detectors/siteleaf/siteleaf.go | 4 + pkg/detectors/skrappio/skrappio.go | 4 + pkg/detectors/skybiometry/skybiometry.go | 4 + pkg/detectors/slack/slack.go | 4 + pkg/detectors/slackwebhook/slackwebhook.go | 4 + pkg/detectors/smartsheets/smartsheets.go | 4 + pkg/detectors/smartystreets/smartystreets.go | 4 + pkg/detectors/smooch/smooch.go | 4 + pkg/detectors/snipcart/snipcart.go | 4 + pkg/detectors/snowflake/snowflake.go | 4 + pkg/detectors/snykkey/snykkey.go | 4 + pkg/detectors/sonarcloud/sonarcloud.go | 4 + pkg/detectors/sourcegraph/sourcegraph.go | 4 + .../sourcegraphcody/sourcegraphcody.go | 4 + pkg/detectors/sparkpost/sparkpost.go | 4 + pkg/detectors/speechtextai/speechtextai.go | 4 + .../splunkobservabilitytoken.go | 5 +- pkg/detectors/spoonacular/spoonacular.go | 4 + pkg/detectors/sportsmonk/sportsmonk.go | 4 + pkg/detectors/spotifykey/spotifykey.go | 4 + pkg/detectors/sqlserver/sqlserver.go | 6 +- pkg/detectors/square/square.go | 14 ++- pkg/detectors/squareapp/squareapp.go | 12 ++- pkg/detectors/squarespace/squarespace.go | 4 + pkg/detectors/squareup/squareup.go | 4 + pkg/detectors/sslmate/sslmate.go | 4 + pkg/detectors/statuscake/statuscake.go | 4 + pkg/detectors/statuspage/statuspage.go | 4 + pkg/detectors/statuspal/statuspal.go | 4 + pkg/detectors/stitchdata/stitchdata.go | 4 + pkg/detectors/stockdata/stockdata.go | 4 + pkg/detectors/storecove/storecove.go | 4 + pkg/detectors/stormboard/stormboard.go | 4 + pkg/detectors/stormglass/stormglass.go | 4 + pkg/detectors/storyblok/storyblok.go | 4 + pkg/detectors/storychief/storychief.go | 4 + pkg/detectors/strava/strava.go | 4 + pkg/detectors/streak/streak.go | 4 + pkg/detectors/stripe/stripe.go | 14 ++- pkg/detectors/stripo/stripo.go | 4 + pkg/detectors/stytch/stytch.go | 4 + pkg/detectors/sugester/sugester.go | 9 +- pkg/detectors/sumologickey/sumologickey.go | 4 + pkg/detectors/supabasetoken/supabasetoken.go | 4 + pkg/detectors/supernotesapi/supernotesapi.go | 4 + .../surveyanyplace/surveyanyplace.go | 4 + pkg/detectors/surveybot/surveybot.go | 4 + pkg/detectors/surveysparrow/surveysparrow.go | 4 + pkg/detectors/survicate/survicate.go | 4 + pkg/detectors/swell/swell.go | 4 + pkg/detectors/swiftype/swiftype.go | 4 + pkg/detectors/tailscale/tailscale.go | 4 + pkg/detectors/tallyfy/tallyfy.go | 4 + pkg/detectors/tatumio/tatumio.go | 4 + pkg/detectors/taxjar/taxjar.go | 4 + pkg/detectors/teamgate/teamgate.go | 4 + pkg/detectors/teamworkcrm/teamworkcrm.go | 4 + pkg/detectors/teamworkdesk/teamworkdesk.go | 4 + .../teamworkspaces/teamworkspaces.go | 4 + .../technicalanalysisapi.go | 4 + pkg/detectors/tefter/tefter.go | 4 + .../telegrambottoken/telegrambottoken.go | 4 + pkg/detectors/teletype/teletype.go | 4 + pkg/detectors/telnyx/telnyx.go | 4 + .../terraformcloudpersonaltoken.go | 4 + pkg/detectors/testingbot/testingbot.go | 4 + pkg/detectors/textmagic/textmagic.go | 6 +- pkg/detectors/theoddsapi/theoddsapi.go | 4 + pkg/detectors/thinkific/thinkific.go | 7 +- pkg/detectors/thousandeyes/thousandeyes.go | 4 + pkg/detectors/ticketmaster/ticketmaster.go | 4 + pkg/detectors/tickettailor/tickettailor.go | 4 + pkg/detectors/tiingo/tiingo.go | 4 + pkg/detectors/timecamp/timecamp.go | 4 + pkg/detectors/timezoneapi/timezoneapi.go | 4 + pkg/detectors/tineswebhook/tineswebhook.go | 4 + pkg/detectors/tly/tly.go | 4 + pkg/detectors/tmetric/tmetric.go | 4 + pkg/detectors/todoist/todoist.go | 7 +- pkg/detectors/toggltrack/toggltrack.go | 4 + pkg/detectors/tokeet/tokeet.go | 4 + pkg/detectors/tomorrowio/tomorrowio.go | 4 + pkg/detectors/tomtom/tomtom.go | 4 + pkg/detectors/tradier/tradier.go | 4 + pkg/detectors/transferwise/transferwise.go | 4 + pkg/detectors/travelpayouts/travelpayouts.go | 4 + pkg/detectors/travisci/travisci.go | 4 + pkg/detectors/trelloapikey/trelloapikey.go | 5 +- pkg/detectors/tru/tru.go | 4 + .../trufflehogenterprise.go | 4 + pkg/detectors/twelvedata/twelvedata.go | 4 + pkg/detectors/twilio/twilio.go | 4 + pkg/detectors/twist/twist.go | 4 + pkg/detectors/twitch/twitch.go | 4 + pkg/detectors/twitter/v1/twitter_v1.go | 4 + pkg/detectors/twitter/v2/twitter_v2.go | 5 + .../twitterconsumerkey/twitterconsumerkey.go | 4 + pkg/detectors/tyntec/tyntec.go | 4 + pkg/detectors/typeform/typeform.go | 4 + pkg/detectors/typetalk/typetalk.go | 4 + pkg/detectors/ubidots/ubidots.go | 4 + pkg/detectors/uclassify/uclassify.go | 4 + pkg/detectors/unifyid/unifyid.go | 4 + pkg/detectors/unplugg/unplugg.go | 4 + pkg/detectors/unsplash/unsplash.go | 4 + pkg/detectors/upcdatabase/upcdatabase.go | 4 + pkg/detectors/uplead/uplead.go | 4 + pkg/detectors/uploadcare/uploadcare.go | 4 + pkg/detectors/uptimerobot/uptimerobot.go | 4 + pkg/detectors/upwave/upwave.go | 4 + pkg/detectors/uri/uri.go | 4 + pkg/detectors/urlscan/urlscan.go | 4 + pkg/detectors/user/user.go | 4 + pkg/detectors/userflow/userflow.go | 4 + pkg/detectors/userstack/userstack.go | 4 + .../vagrantcloudpersonaltoken.go | 4 + pkg/detectors/vatlayer/vatlayer.go | 4 + pkg/detectors/vbout/vbout.go | 4 + pkg/detectors/vercel/vercel.go | 4 + pkg/detectors/verifier/verifier.go | 4 + pkg/detectors/verimail/verimail.go | 4 + pkg/detectors/veriphone/veriphone.go | 4 + pkg/detectors/versioneye/versioneye.go | 4 + pkg/detectors/viewneo/viewneo.go | 4 + pkg/detectors/virustotal/virustotal.go | 4 + .../visualcrossing/visualcrossing.go | 4 + pkg/detectors/voiceflow/voiceflow.go | 4 + pkg/detectors/voicegain/voicegain.go | 4 + pkg/detectors/voodoosms/voodoosms.go | 4 + pkg/detectors/vouchery/vouchery.go | 4 + pkg/detectors/vpnapi/vpnapi.go | 4 + pkg/detectors/vultrapikey/vultrapikey.go | 4 + pkg/detectors/vyte/vyte.go | 4 + pkg/detectors/walkscore/walkscore.go | 4 + pkg/detectors/weatherbit/weatherbit.go | 4 + pkg/detectors/weatherstack/weatherstack.go | 4 + pkg/detectors/web3storage/web3storage.go | 4 + pkg/detectors/webex/webex.go | 4 + pkg/detectors/webflow/webflow.go | 4 + pkg/detectors/webscraper/webscraper.go | 7 +- pkg/detectors/webscraping/webscraping.go | 4 + pkg/detectors/websitepulse/websitepulse.go | 4 + pkg/detectors/wepay/wepay.go | 5 +- pkg/detectors/whoxy/whoxy.go | 4 + pkg/detectors/wistia/wistia.go | 4 + pkg/detectors/wit/wit.go | 4 + pkg/detectors/wiz/wiz.go | 4 + pkg/detectors/worksnaps/worksnaps.go | 4 + pkg/detectors/workstack/workstack.go | 4 + .../worldcoinindex/worldcoinindex.go | 4 + pkg/detectors/worldweather/worldweather.go | 4 + pkg/detectors/wrike/wrike.go | 4 + pkg/detectors/yandex/yandex.go | 4 + pkg/detectors/yelp/yelp.go | 4 + .../youneedabudget/youneedabudget.go | 4 + pkg/detectors/yousign/yousign.go | 4 + pkg/detectors/youtubeapikey/youtubeapikey.go | 4 + pkg/detectors/zapierwebhook/zapierwebhook.go | 4 + pkg/detectors/zendeskapi/zendeskapi.go | 4 + pkg/detectors/zenkitapi/zenkitapi.go | 4 + pkg/detectors/zenrows/zenrows.go | 4 + pkg/detectors/zenscrape/zenscrape.go | 4 + pkg/detectors/zenserp/zenserp.go | 4 + pkg/detectors/zeplin/zeplin.go | 4 + pkg/detectors/zerobounce/zerobounce.go | 4 + pkg/detectors/zerotier/zerotier.go | 4 + pkg/detectors/zipapi/zipapi.go | 4 + pkg/detectors/zipbooks/zipbooks.go | 4 + pkg/detectors/zipcodeapi/zipcodeapi.go | 4 + pkg/detectors/zipcodebase/zipcodebase.go | 7 +- pkg/detectors/zonkafeedback/zonkafeedback.go | 4 + pkg/detectors/zulipchat/zulipchat.go | 4 + .../ahocorasick/ahocorasickcore_test.go | 12 +++ pkg/engine/engine_test.go | 10 ++ .../custom_detectorspb/custom_detectors.pb.go | 58 +++++----- .../custom_detectors.pb.validate.go | 2 + proto/custom_detectors.proto | 1 + 842 files changed, 3530 insertions(+), 239 deletions(-) diff --git a/go.sum b/go.sum index 24a5f2f003c7..28d5d405f191 100644 --- a/go.sum +++ b/go.sum @@ -9,33 +9,21 @@ cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6T cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= cloud.google.com/go v0.115.1 h1:Jo0SM9cQnSkYfp44+v+NQXHpcHqlnRJk2qxh6yvxxxQ= cloud.google.com/go v0.115.1/go.mod h1:DuujITeaufu3gL68/lOFIirVNJwQeyf5UXyi+Wbgknc= -cloud.google.com/go/auth v0.9.0 h1:cYhKl1JUhynmxjXfrk4qdPc6Amw7i+GC9VLflgT0p5M= -cloud.google.com/go/auth v0.9.0/go.mod h1:2HsApZBr9zGZhC9QAXsYVYaWk8kNUt37uny+XVKi7wM= -cloud.google.com/go/auth v0.9.3 h1:VOEUIAADkkLtyfr3BLa3R8Ed/j6w1jTBmARx+wb5w5U= -cloud.google.com/go/auth v0.9.3/go.mod h1:7z6VY+7h3KUdRov5F1i8NDP5ZzWKYmEPO842BgCsmTk= cloud.google.com/go/auth v0.9.4 h1:DxF7imbEbiFu9+zdKC6cKBko1e8XeJnipNqIbWZ+kDI= cloud.google.com/go/auth v0.9.4/go.mod h1:SHia8n6//Ya940F1rLimhJCjjx7KE17t0ctFEci3HkA= cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY= -cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY= cloud.google.com/go/compute/metadata v0.5.1 h1:NM6oZeZNlYjiwYje+sYFjEpP0Q0zCan1bmQW/KmIrGs= cloud.google.com/go/compute/metadata v0.5.1/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/iam v1.1.13 h1:7zWBXG9ERbMLrzQBRhFliAV+kjcRToDTgQT3CTwYyv4= -cloud.google.com/go/iam v1.1.13/go.mod h1:K8mY0uSXwEXS30KrnVb+j54LB/ntfZu1dr+4zFMNbus= cloud.google.com/go/iam v1.2.0 h1:kZKMKVNk/IsSSc/udOb83K0hL/Yh/Gcqpz+oAkoIFN8= cloud.google.com/go/iam v1.2.0/go.mod h1:zITGuWgsLZxd8OwAlX+eMFgZDXzBm7icj1PVTYG766Q= -cloud.google.com/go/longrunning v0.5.11 h1:Havn1kGjz3whCfoD8dxMLP73Ph5w+ODyZB9RUsDxtGk= -cloud.google.com/go/longrunning v0.5.11/go.mod h1:rDn7//lmlfWV1Dx6IB4RatCPenTwwmqXuiP0/RgoEO4= cloud.google.com/go/longrunning v0.6.0 h1:mM1ZmaNsQsnb+5n1DNPeL0KwQd9jQRqSqSDEkBZr+aI= cloud.google.com/go/longrunning v0.6.0/go.mod h1:uHzSZqW89h7/pasCWNYdUpwGz3PcVWhrWupreVPYLts= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/secretmanager v1.14.0 h1:P2RRu2NEsQyOjplhUPvWKqzDXUKzwejHLuSUBHI8c4w= -cloud.google.com/go/secretmanager v1.14.0/go.mod h1:q0hSFHzoW7eRgyYFH8trqEFavgrMeiJI4FETNN78vhM= cloud.google.com/go/secretmanager v1.14.1 h1:xlWSIg8rtBn5qCr2f3XtQP19+5COyf/ll49SEvi/0vM= cloud.google.com/go/secretmanager v1.14.1/go.mod h1:L+gO+u2JA9CCyXpSR8gDH0o8EV7i/f0jdBOrUXcIV0U= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= @@ -182,6 +170,8 @@ github.com/charmbracelet/x/term v0.1.1 h1:3cosVAiPOig+EV4X9U+3LDgtwwAoEzJjNdwbXD github.com/charmbracelet/x/term v0.1.1/go.mod h1:wB1fHt5ECsu3mXYusyzcngVWWlu1KKUmmLhfgr/Flxw= github.com/charmbracelet/x/windows v0.1.0 h1:gTaxdvzDM5oMa/I2ZNF7wN78X/atWemG9Wph7Ika2k4= github.com/charmbracelet/x/windows v0.1.0/go.mod h1:GLEO/l+lizvFDBPLIOk+49gdX49L9YWMB5t+DZd0jkQ= +github.com/chengxilo/virtualterm v1.0.4 h1:Z6IpERbRVlfB8WkOmtbHiDbBANU7cimRIof7mk9/PwM= +github.com/chengxilo/virtualterm v1.0.4/go.mod h1:DyxxBZz/x1iqJjFxTFcr6/x+jSpqN0iwWCOK1q10rlY= github.com/chromedp/cdproto v0.0.0-20230802225258-3cf4e6d46a89/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= github.com/chromedp/chromedp v0.9.2/go.mod h1:LkSXJKONWTCHAfQasKFUZI+mxqS4tZqhmtGzzhLsnLs= github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww= @@ -257,8 +247,6 @@ github.com/dvsekhvalnov/jose2go v1.6.0 h1:Y9gnSnP4qEI0+/uQkHvFXeD2PLPJeXEL+ySMEA github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/elastic/elastic-transport-go/v8 v8.6.0 h1:Y2S/FBjx1LlCv5m6pWAF2kDJAHoSjSRSJCApolgfthA= github.com/elastic/elastic-transport-go/v8 v8.6.0/go.mod h1:YLHer5cj0csTzNFXoNQ8qhtGY1GTvSqPnKWKaqQE3Hk= -github.com/elastic/go-elasticsearch/v8 v8.14.0 h1:1ywU8WFReLLcxE1WJqii3hTtbPUE2hc38ZK/j4mMFow= -github.com/elastic/go-elasticsearch/v8 v8.14.0/go.mod h1:WRvnlGkSuZyp83M2U8El/LGXpCjYLrvlkSgkAH4O5I4= github.com/elastic/go-elasticsearch/v8 v8.15.0 h1:IZyJhe7t7WI3NEFdcHnf6IJXqpRf+8S8QWLtZYYyBYk= github.com/elastic/go-elasticsearch/v8 v8.15.0/go.mod h1:HCON3zj4btpqs2N1jjsAy4a/fiAul+YBP00mBH4xik8= github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= @@ -275,8 +263,6 @@ github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6 github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= -github.com/felixge/fgprof v0.9.4 h1:ocDNwMFlnA0NU0zSB3I52xkO4sFXk80VK9lXjLClu88= -github.com/felixge/fgprof v0.9.4/go.mod h1:yKl+ERSa++RYOs32d8K6WEXCB4uXdLls4ZaZPpayhMM= github.com/felixge/fgprof v0.9.5 h1:8+vR6yu2vvSKn08urWyEuxx75NWPEvybbkBirEpsbVY= github.com/felixge/fgprof v0.9.5/go.mod h1:yKl+ERSa++RYOs32d8K6WEXCB4uXdLls4ZaZPpayhMM= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= @@ -289,8 +275,6 @@ github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4 github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/gabriel-vasile/mimetype v1.4.5 h1:J7wGKdGu33ocBOhGy0z653k/lFKLFDPJMG8Gql0kxn4= github.com/gabriel-vasile/mimetype v1.4.5/go.mod h1:ibHel+/kbxn9x2407k1izTA1S81ku1z/DlgOW2QE0M4= -github.com/getsentry/sentry-go v0.28.1 h1:zzaSm/vHmGllRM6Tpx1492r0YDzauArdBfkJRtY6P5k= -github.com/getsentry/sentry-go v0.28.1/go.mod h1:1fQZ+7l7eeJ3wYi82q5Hg8GqAPgefRq+FP/QhafYVgg= github.com/getsentry/sentry-go v0.29.0 h1:YtWluuCFg9OfcqnaujpY918N/AhCCwarIDWOYSBAjCA= github.com/getsentry/sentry-go v0.29.0/go.mod h1:jhPesDAL0Q0W2+2YEuVOvdWmVtdsr1+jtBrlDEVWwLY= github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE= @@ -426,10 +410,6 @@ github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= -github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= -github.com/googleapis/enterprise-certificate-proxy v0.3.3 h1:QRje2j5GZimBzlbhGA2V2QlGNgL8G6e+wGo/+/2bWI0= -github.com/googleapis/enterprise-certificate-proxy v0.3.3/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -562,8 +542,6 @@ github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2J github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= -github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mholt/archiver/v4 v4.0.0-alpha.8.0.20240408183022-de08bfa4c558 h1:mm89WXPE/mac3dHr0uNa6rfuJ3xAwveCv7a+lrfszHQ= @@ -657,10 +635,6 @@ github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= -github.com/prometheus/client_golang v1.20.1 h1:IMJXHOD6eARkQpxo8KkhgEVFlBNm+nkrFUyGlIu7Na8= -github.com/prometheus/client_golang v1.20.1/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= -github.com/prometheus/client_golang v1.20.3 h1:oPksm4K8B+Vt35tUhw6GbSNSgVlVSBH0qELP/7u83l4= -github.com/prometheus/client_golang v1.20.3/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_golang v1.20.4 h1:Tgh3Yr67PaOv/uTqloMsCEdeuFTatm5zIq5+qNN23vI= github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -685,16 +659,10 @@ github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f h1:MvTmaQdww/z0Q4wr github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= github.com/sassoftware/go-rpmutils v0.4.0 h1:ojND82NYBxgwrV+mX1CWsd5QJvvEZTKddtCdFLPWhpg= github.com/sassoftware/go-rpmutils v0.4.0/go.mod h1:3goNWi7PGAT3/dlql2lv3+MSN5jNYPjT5mVcQcIsYzI= -github.com/schollz/progressbar/v3 v3.14.6 h1:GyjwcWBAf+GFDMLziwerKvpuS7ZF+mNTAXIB2aspiZs= -github.com/schollz/progressbar/v3 v3.14.6/go.mod h1:Nrzpuw3Nl0srLY0VlTvC4V6RL50pcEymjy6qyJAaLa0= -github.com/schollz/progressbar/v3 v3.15.0 h1:cNZmcNiVyea6oofBTg80ZhVXxf3wG/JoAhqCCwopkQo= -github.com/schollz/progressbar/v3 v3.15.0/go.mod h1:ncBdc++eweU0dQoeZJ3loXoAc+bjaallHRIm8pVVeQM= github.com/schollz/progressbar/v3 v3.16.0 h1:+MbBim/cE9DqDb8UXRfLJ6RZdyDkXG1BDy/sWc5s0Mc= github.com/schollz/progressbar/v3 v3.16.0/go.mod h1:lLiKjKJ9/yzc9Q8jk+sVLfxWxgXKsktvUf6TO+4Y2nw= github.com/sendgrid/rest v2.6.9+incompatible h1:1EyIcsNdn9KIisLW50MKwmSRSK+ekueiEMJ7NEoxJo0= github.com/sendgrid/rest v2.6.9+incompatible/go.mod h1:kXX7q3jZtJXK5c5qK83bSGMdV6tsOE70KbHoqJls4lE= -github.com/sendgrid/sendgrid-go v3.15.0+incompatible h1:oB6ujJD2aFcQRjmZLmmXiiUF9CBYKzsvYdPAS/71cSU= -github.com/sendgrid/sendgrid-go v3.15.0+incompatible/go.mod h1:QRQt+LX/NmgVEvmdRw0VT/QgUn499+iza2FnDca9fg8= github.com/sendgrid/sendgrid-go v3.16.0+incompatible h1:i8eE6IMkiCy7vusSdacHHSBUpXyTcTXy/Rl9N9aZ/Qw= github.com/sendgrid/sendgrid-go v3.16.0+incompatible/go.mod h1:QRQt+LX/NmgVEvmdRw0VT/QgUn499+iza2FnDca9fg8= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= @@ -754,8 +722,6 @@ github.com/testcontainers/testcontainers-go/modules/mysql v0.33.0 h1:1JN7YEEepTM github.com/testcontainers/testcontainers-go/modules/mysql v0.33.0/go.mod h1:9tZZwRW5s3RaI5X0Wnc+GXNJFXqbkKmob2nBHbfA/5E= github.com/testcontainers/testcontainers-go/modules/postgres v0.33.0 h1:c+Gt+XLJjqFAejgX4hSpnHIpC9eAhvgI/TFWL/PbrFI= github.com/testcontainers/testcontainers-go/modules/postgres v0.33.0/go.mod h1:I4DazHBoWDyf69ByOIyt3OdNjefiUx372459txOpQ3o= -github.com/tetratelabs/wazero v1.7.2 h1:1+z5nXJNwMLPAWaTePFi49SSTL0IMx/i3Fg8Yc25GDc= -github.com/tetratelabs/wazero v1.7.2/go.mod h1:ytl6Zuh20R/eROuyDaGPkp82O9C/DJfXAwJfQ3X6/7Y= github.com/tetratelabs/wazero v1.8.0 h1:iEKu0d4c2Pd+QSRieYbnQC9yiFlMS9D+Jr0LsRmcF4g= github.com/tetratelabs/wazero v1.8.0/go.mod h1:yAI0XTsMBhREkM/YDAK/zNou3GoiAce1P6+rp/wQhjs= github.com/therootcompany/xz v1.0.1 h1:CmOtsn1CbtmyYiusbfmhmkpAAETj0wBIH6kCYaX+xzw= @@ -778,16 +744,12 @@ github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0o github.com/urfave/cli v1.22.12/go.mod h1:sSBEIC79qR6OvcmsD4U3KABeOTxDqQtdDnaFuUN30b8= github.com/vbatts/tar-split v0.11.3 h1:hLFqsOLQ1SsppQNTMpkpPXClLDfC2A3Zgy9OUU+RVck= github.com/vbatts/tar-split v0.11.3/go.mod h1:9QlHN18E+fEH7RdG+QAJJcuya3rqT7eXSTY7wGrAokY= -github.com/wasilibs/go-re2 v1.6.0 h1:CLlhDebt38wtl/zz4ww+hkXBMcxjrKFvTDXzFW2VOz8= -github.com/wasilibs/go-re2 v1.6.0/go.mod h1:prArCyErsypRBI/jFAFJEbzyHzjABKqkzlidF0SNA04= github.com/wasilibs/go-re2 v1.7.0 h1:bYhl8gn+a9h01dxwotNycxkiFPTiSgwUrIz8KZJ90Lc= github.com/wasilibs/go-re2 v1.7.0/go.mod h1:sUsZMLflgl+LNivDE229omtmvjICmOseT9xOy199VDU= github.com/wasilibs/nottinygc v0.4.0 h1:h1TJMihMC4neN6Zq+WKpLxgd9xCFMw7O9ETLwY2exJQ= github.com/wasilibs/nottinygc v0.4.0/go.mod h1:oDcIotskuYNMpqMF23l7Z8uzD4TC0WXHK8jetlB3HIo= github.com/wasilibs/wazero-helpers v0.0.0-20240620070341-3dff1577cd52 h1:OvLBa8SqJnZ6P+mjlzc2K7PM22rRUPE1x32G9DTPrC4= github.com/wasilibs/wazero-helpers v0.0.0-20240620070341-3dff1577cd52/go.mod h1:jMeV4Vpbi8osrE/pKUxRZkVaA0EX7NZN0A9/oRzgpgY= -github.com/xanzy/go-gitlab v0.107.0 h1:P2CT9Uy9yN9lJo3FLxpMZ4xj6uWcpnigXsjvqJ6nd2Y= -github.com/xanzy/go-gitlab v0.107.0/go.mod h1:wKNKh3GkYDMOsGmnfuX+ITCmDuSDWFO0G+C4AygL9RY= github.com/xanzy/go-gitlab v0.109.0 h1:RcRme5w8VpLXTSTTMZdVoQWY37qTJWg+gwdQl4aAttE= github.com/xanzy/go-gitlab v0.109.0/go.mod h1:wKNKh3GkYDMOsGmnfuX+ITCmDuSDWFO0G+C4AygL9RY= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= @@ -806,8 +768,6 @@ github.com/xo/dburl v0.23.2 h1:Fl88cvayrgE56JA/sqhNMLljCW/b7RmG1mMkKMZUFgA= github.com/xo/dburl v0.23.2/go.mod h1:uazlaAQxj4gkshhfuuYyvwCBouOmNnG2aDxTCFZpmL4= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 h1:ilQV1hzziu+LLM3zUTJ0trRztfwgjqKnBWNtSRkbmwM= github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfSfmXjznFBSZNN13rSJjlIOI1fUNAtF7rmI= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -827,8 +787,6 @@ github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.einride.tech/aip v0.60.0 h1:h6bgabZ5BCfAptbGex8jbh3VvPBRLa6xq+pQ1CAjHYw= go.einride.tech/aip v0.60.0/go.mod h1:SdLbSbgSU60Xkb4TMkmsZEQPHeEWx0ikBoq5QnqZvdg= -go.mongodb.org/mongo-driver v1.16.1 h1:rIVLL3q0IHM39dvE+z2ulZLp9ENZKThVfuvN/IiN4l8= -go.mongodb.org/mongo-driver v1.16.1/go.mod h1:oB6AhJQvFQL4LEHyXi6aJzQJtBiTQHiAd83l0GdFaiw= go.mongodb.org/mongo-driver v1.17.0 h1:Hp4q2MCjvY19ViwimTs00wHi7G4yzxh4/2+nTx8r40k= go.mongodb.org/mongo-driver v1.17.0/go.mod h1:wwWm/+BuOddhcq3n68LKRmgk2wXzmF6s0SFOa0GINL4= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= @@ -837,37 +795,25 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0 h1:vS1Ao/R55RNV4O7TA2Qopok8yN+X0LIP6RVWLFkprck= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0/go.mod h1:BMsdeOxN04K0L5FNUBfjFdvwWGNe/rkmSwH4Aelu/X0= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 h1:r6I7RJCN86bpD/FQwedZ0vSixDpwuWREjW9oRMsmqDc= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= -go.opentelemetry.io/otel v1.28.0 h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo= -go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4= go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw= go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= -go.opentelemetry.io/otel/metric v1.28.0 h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q= -go.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s= go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc= go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8= -go.opentelemetry.io/otel/sdk v1.28.0 h1:b9d7hIry8yZsgtbmM0DKyPWMMUMlK9NEKuIG4aBqWyE= -go.opentelemetry.io/otel/sdk v1.28.0/go.mod h1:oYj7ClPUA7Iw3m+r7GeEjz0qckQRJK2B8zjcZEfu7Pg= -go.opentelemetry.io/otel/trace v1.28.0 h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g= -go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI= +go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo= +go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok= go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4= go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8= -go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0= go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs= go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= @@ -897,8 +843,6 @@ golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -909,10 +853,6 @@ golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= -golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= -golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e h1:I88y4caeGeuDQxgdoFPUq097j7kNfw6uvuiNxUBfcBk= -golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= @@ -936,10 +876,6 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= -golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= -golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -971,8 +907,6 @@ golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -980,8 +914,6 @@ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4Iltr golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= -golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1042,9 +974,6 @@ golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= -golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1056,9 +985,6 @@ golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= -golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= -golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= -golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1074,8 +1000,6 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1113,10 +1037,6 @@ golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= -golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= -golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= -golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= golang.org/x/tools v0.25.0 h1:oFU9pkj/iJgs+0DT+VMHrx+oBKs/LJMV+Uvg78sl+fE= golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1135,10 +1055,6 @@ google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsb google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.193.0 h1:eOGDoJFsLU+HpCBaDJex2fWiYujAw9KbXgpOAMePoUs= -google.golang.org/api v0.193.0/go.mod h1:Po3YMV1XZx+mTku3cfJrlIYR03wiGrCOsdpC67hjZvw= -google.golang.org/api v0.196.0 h1:k/RafYqebaIJBO3+SMnfEGtFVlvp5vSgqTUF54UN/zg= -google.golang.org/api v0.196.0/go.mod h1:g9IL21uGkYgvQ5BZg6BAtoGJQIm8r6EgaAbpNey5wBE= google.golang.org/api v0.198.0 h1:OOH5fZatk57iN0A7tjJQzt6aPfYQ1JiWkt1yGseazks= google.golang.org/api v0.198.0/go.mod h1:/Lblzl3/Xqqk9hw/yS97TImKTUwnf1bv89v7+OagJzc= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -1161,16 +1077,10 @@ google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20240814211410-ddb44dafa142 h1:oLiyxGgE+rt22duwci1+TG7bg2/L1LQsXwfjPlmuJA0= -google.golang.org/genproto v0.0.0-20240814211410-ddb44dafa142/go.mod h1:G11eXq53iI5Q+kyNOmCvnzBaxEA2Q/Ik5Tj7nqBE8j4= google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU= google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4= -google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8= -google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo= google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc= google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -1183,10 +1093,6 @@ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= -google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= -google.golang.org/grpc v1.66.0 h1:DibZuoBznOxbDQxRINckZcUvnCEvrW9pcWIE2yF9r1c= -google.golang.org/grpc v1.66.0/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= google.golang.org/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo= google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= diff --git a/pkg/custom_detectors/custom_detectors.go b/pkg/custom_detectors/custom_detectors.go index 32b6af8c4d26..f209fcd36abe 100644 --- a/pkg/custom_detectors/custom_detectors.go +++ b/pkg/custom_detectors/custom_detectors.go @@ -254,3 +254,12 @@ func permutateMatches(regexMatches map[string][][]string) []map[string][]string func (c *CustomRegexWebhook) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CustomRegex } + +const defaultDescription = "This is a customer-defined detector with no description provided." + +func (c *CustomRegexWebhook) Description() string { + if c.GetDescription() == "" { + return defaultDescription + } + return c.GetDescription() +} diff --git a/pkg/detectors/abbysale/abbysale.go b/pkg/detectors/abbysale/abbysale.go index 047c89d0822f..429bd50701f7 100644 --- a/pkg/detectors/abbysale/abbysale.go +++ b/pkg/detectors/abbysale/abbysale.go @@ -98,3 +98,7 @@ func verifyAbbysale(ctx context.Context, client *http.Client, resMatch string) ( func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Abbysale } + +func (s Scanner) Description() string { + return "Abbysale is a service offering various API functionalities for marketing automation and services such as images and ad campaigns. Abbysale API keys can be used to access and interact with this data." +} diff --git a/pkg/detectors/abstract/abstract.go b/pkg/detectors/abstract/abstract.go index d6db71a9fa49..ac40a0a8600d 100644 --- a/pkg/detectors/abstract/abstract.go +++ b/pkg/detectors/abstract/abstract.go @@ -98,3 +98,7 @@ func verifyAbstract(ctx context.Context, client *http.Client, resMatch string) ( func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Abstract } + +func (s Scanner) Description() string { + return "Abstract API provides various services including exchange rates. The API keys can be used to access these services and retrieve data." +} diff --git a/pkg/detectors/abuseipdb/abuseipdb.go b/pkg/detectors/abuseipdb/abuseipdb.go index 238f59530218..57f00a053b96 100644 --- a/pkg/detectors/abuseipdb/abuseipdb.go +++ b/pkg/detectors/abuseipdb/abuseipdb.go @@ -109,3 +109,7 @@ func verifyAbuseIPDB(ctx context.Context, client *http.Client, resMatch string) func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AbuseIPDB } + +func (s Scanner) Description() string { + return "AbuseIPDB is a project dedicated to helping combat the spread of hackers, spammers, and abusive activity on the internet. AbuseIPDB API keys can be used to report and check IP addresses for abusive activities." +} diff --git a/pkg/detectors/accuweather/accuweather.go b/pkg/detectors/accuweather/accuweather.go index 7fdac2635b58..c7445075f930 100644 --- a/pkg/detectors/accuweather/accuweather.go +++ b/pkg/detectors/accuweather/accuweather.go @@ -98,3 +98,7 @@ func verifyAccuweather(ctx context.Context, client *http.Client, resMatch string func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Accuweather } + +func (s Scanner) Description() string { + return "Accuweather is a weather forecasting service. Accuweather API keys can be used to access weather data and forecasts." +} diff --git a/pkg/detectors/adafruitio/adafruitio.go b/pkg/detectors/adafruitio/adafruitio.go index 612879b24122..90820b9ce91a 100644 --- a/pkg/detectors/adafruitio/adafruitio.go +++ b/pkg/detectors/adafruitio/adafruitio.go @@ -97,3 +97,7 @@ func verifyAdafruitIO(ctx context.Context, client *http.Client, resMatch string) func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AdafruitIO } + +func (s Scanner) Description() string { + return "Adafruit IO is a cloud service used for IoT applications. Adafruit IO keys can be used to access and control data and devices connected to the platform." +} diff --git a/pkg/detectors/adobeio/adobeio.go b/pkg/detectors/adobeio/adobeio.go index 0e8667e81062..507502981e35 100644 --- a/pkg/detectors/adobeio/adobeio.go +++ b/pkg/detectors/adobeio/adobeio.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AdobeIO } + +func (s Scanner) Description() string { + return "AdobeIO provides APIs for integrating with Adobe services. These credentials can be used to access Adobe services and data." +} diff --git a/pkg/detectors/adzuna/adzuna.go b/pkg/detectors/adzuna/adzuna.go index 71ac40a1bbee..395caa3e0eae 100644 --- a/pkg/detectors/adzuna/adzuna.go +++ b/pkg/detectors/adzuna/adzuna.go @@ -108,3 +108,7 @@ func verifyAdzuna(ctx context.Context, client *http.Client, resMatch, resIdMatch func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Adzuna } + +func (s Scanner) Description() string { + return "Adzuna is a job search engine used to find job listings. Adzuna API keys can be used to access job listing data." +} diff --git a/pkg/detectors/aeroworkflow/aeroworkflow.go b/pkg/detectors/aeroworkflow/aeroworkflow.go index 6c015ac88f59..4ec0022f0876 100644 --- a/pkg/detectors/aeroworkflow/aeroworkflow.go +++ b/pkg/detectors/aeroworkflow/aeroworkflow.go @@ -113,3 +113,7 @@ func verifyAeroworkflow(ctx context.Context, client *http.Client, resMatch, resI func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Aeroworkflow } + +func (s Scanner) Description() string { + return "Aeroworkflow is a service for managing workflows. Aeroworkflow API keys and Account IDs can be used to access and manage workflows." +} diff --git a/pkg/detectors/agora/agora.go b/pkg/detectors/agora/agora.go index 8a2a6d6fea65..95ca02263136 100644 --- a/pkg/detectors/agora/agora.go +++ b/pkg/detectors/agora/agora.go @@ -111,3 +111,7 @@ func verifyAgora(ctx context.Context, client *http.Client, resMatch, resSecret s func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Agora } + +func (s Scanner) Description() string { + return "Agora is a real-time engagement platform providing APIs for voice, video, and messaging. Agora API keys can be used to access and manage these services." +} diff --git a/pkg/detectors/aha/aha.go b/pkg/detectors/aha/aha.go index 96db04190e4c..15c4734d1b4f 100644 --- a/pkg/detectors/aha/aha.go +++ b/pkg/detectors/aha/aha.go @@ -108,3 +108,7 @@ func verifyAha(ctx context.Context, client *http.Client, resMatch, resURLMatch s func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Aha } + +func (s Scanner) Description() string { + return "Aha is a product management software suite. Aha API keys can be used to access and modify product data and workflows." +} diff --git a/pkg/detectors/airbrakeprojectkey/airbrakeprojectkey.go b/pkg/detectors/airbrakeprojectkey/airbrakeprojectkey.go index 82efb1de165e..ede8d994a210 100644 --- a/pkg/detectors/airbrakeprojectkey/airbrakeprojectkey.go +++ b/pkg/detectors/airbrakeprojectkey/airbrakeprojectkey.go @@ -90,3 +90,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AirbrakeProjectKey } + +func (s Scanner) Description() string { + return "Airbrake is an error and performance monitoring service for web applications. Airbrake project keys can be used to report and track errors in applications." +} diff --git a/pkg/detectors/airbrakeuserkey/airbrakeuserkey.go b/pkg/detectors/airbrakeuserkey/airbrakeuserkey.go index 5f1a916d1e1c..16ec6b890085 100644 --- a/pkg/detectors/airbrakeuserkey/airbrakeuserkey.go +++ b/pkg/detectors/airbrakeuserkey/airbrakeuserkey.go @@ -44,9 +44,9 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result s1 := detectors.Result{ DetectorType: detectorspb.DetectorType_AirbrakeUserKey, Raw: []byte(resMatch), - } - s1.ExtraData = map[string]string{ - "rotation_guide": "https://howtorotate.com/docs/tutorials/airbrake/", + ExtraData: map[string]string{ + "rotation_guide": "https://howtorotate.com/docs/tutorials/airbrake/", + }, } if verify { @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AirbrakeUserKey } + +func (s Scanner) Description() string { + return "Airbrake is an error and performance monitoring service. Airbrake User Keys can be used to access and manage error reports and performance data." +} diff --git a/pkg/detectors/airship/airship.go b/pkg/detectors/airship/airship.go index 8479fe75cefd..5c543df08bfa 100644 --- a/pkg/detectors/airship/airship.go +++ b/pkg/detectors/airship/airship.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Airship } + +func (s Scanner) Description() string { + return "Airship is a customer engagement platform that provides tools for mobile app messaging, in-app messaging, and web notifications. Airship API keys can be used to access and manage these messaging services." +} diff --git a/pkg/detectors/airtableapikey/airtableapikey.go b/pkg/detectors/airtableapikey/airtableapikey.go index 38b98d640092..0938bba0b6fd 100644 --- a/pkg/detectors/airtableapikey/airtableapikey.go +++ b/pkg/detectors/airtableapikey/airtableapikey.go @@ -108,3 +108,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AirtableApiKey } + +func (s Scanner) Description() string { + return "Airtable is a cloud collaboration service that offers database-like features. Airtable API keys can be used to access and modify data within Airtable bases." +} diff --git a/pkg/detectors/airvisual/airvisual.go b/pkg/detectors/airvisual/airvisual.go index ee2ac2978187..2a8e3ecf27e2 100644 --- a/pkg/detectors/airvisual/airvisual.go +++ b/pkg/detectors/airvisual/airvisual.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AirVisual } + +func (s Scanner) Description() string { + return "AirVisual provides air quality information and monitoring. The API key allows access to various air quality data and services." +} diff --git a/pkg/detectors/aiven/aiven.go b/pkg/detectors/aiven/aiven.go index 9f514c73bda6..e8514525c88d 100644 --- a/pkg/detectors/aiven/aiven.go +++ b/pkg/detectors/aiven/aiven.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Aiven } + +func (s Scanner) Description() string { + return "Aiven is a managed cloud service that provides various open-source data infrastructure services. Aiven API keys can be used to access and manage these services." +} diff --git a/pkg/detectors/alchemy/alchemy.go b/pkg/detectors/alchemy/alchemy.go index 2e655fbab5bf..3c2291ec2d2a 100644 --- a/pkg/detectors/alchemy/alchemy.go +++ b/pkg/detectors/alchemy/alchemy.go @@ -95,3 +95,7 @@ func verifyMatch(ctx context.Context, client *http.Client, token string) (bool, func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Alchemy } + +func (s Scanner) Description() string { + return "Alchemy is a blockchain development platform that provides a suite of tools and services for building and scaling decentralized applications. Alchemy API keys can be used to access these services." +} diff --git a/pkg/detectors/alconost/alconost.go b/pkg/detectors/alconost/alconost.go index 1a7faf98db97..7b2bb91003ff 100644 --- a/pkg/detectors/alconost/alconost.go +++ b/pkg/detectors/alconost/alconost.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Alconost } + +func (s Scanner) Description() string { + return "Alconost is a translation and localization service. Alconost API keys can be used to access and modify translation data." +} diff --git a/pkg/detectors/alegra/alegra.go b/pkg/detectors/alegra/alegra.go index 3e6355dd1caf..065b44233bff 100644 --- a/pkg/detectors/alegra/alegra.go +++ b/pkg/detectors/alegra/alegra.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Alegra } + +func (s Scanner) Description() string { + return "Alegra is a cloud-based accounting software. Alegra API keys can be used to access and modify accounting data and user information." +} diff --git a/pkg/detectors/aletheiaapi/aletheiaapi.go b/pkg/detectors/aletheiaapi/aletheiaapi.go index 1c83a01f6b37..49efe855077b 100644 --- a/pkg/detectors/aletheiaapi/aletheiaapi.go +++ b/pkg/detectors/aletheiaapi/aletheiaapi.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AletheiaApi } + +func (s Scanner) Description() string { + return "AletheiaApi is a service providing financial data. AletheiaApi keys can be used to access this data." +} diff --git a/pkg/detectors/algoliaadminkey/algoliaadminkey.go b/pkg/detectors/algoliaadminkey/algoliaadminkey.go index 0287589aeb40..c9436ee11ff0 100644 --- a/pkg/detectors/algoliaadminkey/algoliaadminkey.go +++ b/pkg/detectors/algoliaadminkey/algoliaadminkey.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AlgoliaAdminKey } + +func (s Scanner) Description() string { + return "Algolia is a search-as-a-service platform. Algolia Admin Keys can be used to manage indices and API keys, and perform administrative tasks." +} diff --git a/pkg/detectors/alibaba/alibaba.go b/pkg/detectors/alibaba/alibaba.go index f98f9ff826bc..1a6e5504aa42 100644 --- a/pkg/detectors/alibaba/alibaba.go +++ b/pkg/detectors/alibaba/alibaba.go @@ -53,6 +53,10 @@ func (s Scanner) Keywords() []string { return []string{"LTAI"} } +func (s Scanner) Description() string { + return "Alibaba Cloud is a cloud computing service that provides a suite of cloud computing services including data storage, relational databases, big-data processing, and content delivery networks (CDNs). Alibaba Cloud API keys can be used to access and manage these services." +} + func randString(n int) string { const alphanum = "0123456789abcdefghijklmnopqrstuvwxyz" var bytes = make([]byte, n) diff --git a/pkg/detectors/alienvault/alienvault.go b/pkg/detectors/alienvault/alienvault.go index 15e281c074f2..b8e2f621488a 100644 --- a/pkg/detectors/alienvault/alienvault.go +++ b/pkg/detectors/alienvault/alienvault.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AlienVault } + +func (s Scanner) Description() string { + return "AlienVault is a threat intelligence platform providing real-time data on emerging threats. AlienVault API keys can be used to access threat data and other services." +} diff --git a/pkg/detectors/allsports/allsports.go b/pkg/detectors/allsports/allsports.go index e71ebdeafaeb..68d60a48fbf3 100644 --- a/pkg/detectors/allsports/allsports.go +++ b/pkg/detectors/allsports/allsports.go @@ -77,3 +77,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Allsports } + +func (s Scanner) Description() string { + return "Allsports API keys can be used to access and interact with the Allsports API, allowing retrieval of sports data and other related operations." +} diff --git a/pkg/detectors/amadeus/amadeus.go b/pkg/detectors/amadeus/amadeus.go index 6f994dcae6f3..ae6dedda70ab 100644 --- a/pkg/detectors/amadeus/amadeus.go +++ b/pkg/detectors/amadeus/amadeus.go @@ -89,3 +89,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Amadeus } + +func (s Scanner) Description() string { + return "Amadeus provides travel technology solutions. Amadeus API keys can be used to access and modify travel-related data and services." +} diff --git a/pkg/detectors/ambee/ambee.go b/pkg/detectors/ambee/ambee.go index 3f2d498dfb8d..3d7872e0bc5f 100644 --- a/pkg/detectors/ambee/ambee.go +++ b/pkg/detectors/ambee/ambee.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Ambee } + +func (s Scanner) Description() string { + return "Ambee provides environmental and climate data APIs. Ambee API keys can be used to access this data for various applications such as weather forecasting, air quality monitoring, and more." +} diff --git a/pkg/detectors/amplitudeapikey/amplitudeapikey.go b/pkg/detectors/amplitudeapikey/amplitudeapikey.go index 25e3a9e45128..7f5a3d6e3e4b 100644 --- a/pkg/detectors/amplitudeapikey/amplitudeapikey.go +++ b/pkg/detectors/amplitudeapikey/amplitudeapikey.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AmplitudeApiKey } + +func (s Scanner) Description() string { + return "Amplitude is a product analytics service that helps companies track and analyze user behavior within web and mobile applications. Amplitude API keys can be used to access and modify this data." +} diff --git a/pkg/detectors/anthropic/anthropic.go b/pkg/detectors/anthropic/anthropic.go index a68cd90be103..c6c79c419eaf 100644 --- a/pkg/detectors/anthropic/anthropic.go +++ b/pkg/detectors/anthropic/anthropic.go @@ -124,3 +124,7 @@ func verifyToken(ctx context.Context, client *http.Client, apiKey string) (bool, func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Anthropic } + +func (s Scanner) Description() string { + return "Anthropic is an AI research company. The API keys can be used to access their AI models and services." +} diff --git a/pkg/detectors/anypoint/anypoint.go b/pkg/detectors/anypoint/anypoint.go index c30e69709ae1..c12bcb5bcd0b 100644 --- a/pkg/detectors/anypoint/anypoint.go +++ b/pkg/detectors/anypoint/anypoint.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Anypoint } + +func (s Scanner) Description() string { + return "Anypoint is a unified platform that allows organizations to build and manage APIs and integrations. Anypoint credentials can be used to access and manipulate these integrations and API data." +} diff --git a/pkg/detectors/apacta/apacta.go b/pkg/detectors/apacta/apacta.go index 9b43384f68fb..d490a873e9b4 100644 --- a/pkg/detectors/apacta/apacta.go +++ b/pkg/detectors/apacta/apacta.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Apacta } + +func (s Scanner) Description() string { + return "Apacta is a project management tool designed for the construction industry. Apacta API keys can be used to access and manage project data within the Apacta platform." +} diff --git a/pkg/detectors/api2cart/api2cart.go b/pkg/detectors/api2cart/api2cart.go index 050614e03e8a..d083d96b7268 100644 --- a/pkg/detectors/api2cart/api2cart.go +++ b/pkg/detectors/api2cart/api2cart.go @@ -4,11 +4,12 @@ import ( "context" "encoding/json" "fmt" - regexp "github.com/wasilibs/go-re2" "io" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -85,3 +86,7 @@ type Response struct { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Api2Cart } + +func (s Scanner) Description() string { + return "Api2Cart is a unified shopping cart data interface that allows interaction with multiple shopping cart platforms. Api2Cart API keys can be used to access and manipulate shopping cart data." +} diff --git a/pkg/detectors/apideck/apideck.go b/pkg/detectors/apideck/apideck.go index 655ee86c953d..180f05ecbed1 100644 --- a/pkg/detectors/apideck/apideck.go +++ b/pkg/detectors/apideck/apideck.go @@ -85,3 +85,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ApiDeck } + +func (s Scanner) Description() string { + return "ApiDeck is a platform that provides a unified API to connect multiple services. ApiDeck keys can be used to access and manage these services." +} diff --git a/pkg/detectors/apiflash/apiflash.go b/pkg/detectors/apiflash/apiflash.go index d335267c5630..85bdba85f720 100644 --- a/pkg/detectors/apiflash/apiflash.go +++ b/pkg/detectors/apiflash/apiflash.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Apiflash } + +func (s Scanner) Description() string { + return "Apiflash is a screenshot API service. Apiflash keys can be used to access and utilize the screenshot API service." +} diff --git a/pkg/detectors/apifonica/apifonica.go b/pkg/detectors/apifonica/apifonica.go index 0f50379db3e8..904729ec6f61 100644 --- a/pkg/detectors/apifonica/apifonica.go +++ b/pkg/detectors/apifonica/apifonica.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ApiFonica } + +func (s Scanner) Description() string { + return "Apifonica is a cloud communication platform that provides APIs for messaging, voice, and other communication services. Apifonica keys can be used to access and manage these services." +} diff --git a/pkg/detectors/apify/apify.go b/pkg/detectors/apify/apify.go index f612c217bad5..3aaf778a0132 100644 --- a/pkg/detectors/apify/apify.go +++ b/pkg/detectors/apify/apify.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Apify } + +func (s Scanner) Description() string { + return "Apify is a platform for web scraping and automation. Apify API keys can be used to access and control Apify actors and tasks." +} diff --git a/pkg/detectors/apilayer/apilayer.go b/pkg/detectors/apilayer/apilayer.go index 07d673db325e..35e6278864e9 100644 --- a/pkg/detectors/apilayer/apilayer.go +++ b/pkg/detectors/apilayer/apilayer.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Apilayer } + +func (s Scanner) Description() string { + return "Apilayer is a service providing various APIs for data verification and other utilities. Apilayer API keys can be used to access these services and perform operations such as number verification." +} diff --git a/pkg/detectors/apimatic/apimatic.go b/pkg/detectors/apimatic/apimatic.go index d55508fc931a..2d9eb5a07698 100644 --- a/pkg/detectors/apimatic/apimatic.go +++ b/pkg/detectors/apimatic/apimatic.go @@ -85,3 +85,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_APIMatic } + +func (s Scanner) Description() string { + return "APIMatic provides tools for generating SDKs, API documentation, and code snippets. APIMatic credentials can be used to access and manage these tools and services." +} diff --git a/pkg/detectors/apiscience/apiscience.go b/pkg/detectors/apiscience/apiscience.go index a813b36c72a1..cdca9c5f56c5 100644 --- a/pkg/detectors/apiscience/apiscience.go +++ b/pkg/detectors/apiscience/apiscience.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ApiScience } + +func (s Scanner) Description() string { + return "ApiScience is a tool for monitoring the performance of APIs. ApiScience keys can be used to access and manage API monitors." +} diff --git a/pkg/detectors/apitemplate/apitemplate.go b/pkg/detectors/apitemplate/apitemplate.go index 8cc24b064a4a..d90e7954416d 100644 --- a/pkg/detectors/apitemplate/apitemplate.go +++ b/pkg/detectors/apitemplate/apitemplate.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_APITemplate } + +func (s Scanner) Description() string { + return "APITemplate is a service used to generate documents and images from templates. APITemplate API keys can be used to access and generate these documents and images." +} diff --git a/pkg/detectors/apollo/apollo.go b/pkg/detectors/apollo/apollo.go index 6e8dedcc3da1..ea3423ef37ef 100644 --- a/pkg/detectors/apollo/apollo.go +++ b/pkg/detectors/apollo/apollo.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Apollo } + +func (s Scanner) Description() string { + return "Apollo is a sales intelligence platform. Apollo API keys can be used to access and modify data within the Apollo platform." +} diff --git a/pkg/detectors/appcues/appcues.go b/pkg/detectors/appcues/appcues.go index 51e27841c21b..cd98fb021d02 100644 --- a/pkg/detectors/appcues/appcues.go +++ b/pkg/detectors/appcues/appcues.go @@ -93,3 +93,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Appcues } + +func (s Scanner) Description() string { + return "Appcues is a user engagement platform that helps create personalized user experiences. The detected credentials can be used to access and manage user engagement flows and data." +} diff --git a/pkg/detectors/appfollow/appfollow.go b/pkg/detectors/appfollow/appfollow.go index 962278df8fef..bb5f6e2eb792 100644 --- a/pkg/detectors/appfollow/appfollow.go +++ b/pkg/detectors/appfollow/appfollow.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Appfollow } + +func (s Scanner) Description() string { + return "Appfollow is a service used for app monitoring and analytics. Appfollow API tokens can be used to access and manage app data and analytics." +} diff --git a/pkg/detectors/appointedd/appointedd.go b/pkg/detectors/appointedd/appointedd.go index dedc59c93f87..eb19f9e53fcf 100644 --- a/pkg/detectors/appointedd/appointedd.go +++ b/pkg/detectors/appointedd/appointedd.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Appointedd } + +func (s Scanner) Description() string { + return "Appointedd provides online booking and scheduling services. The API key can be used to access and manage booking data." +} diff --git a/pkg/detectors/appoptics/appoptics.go b/pkg/detectors/appoptics/appoptics.go index aed6875e0150..df485794b1d0 100644 --- a/pkg/detectors/appoptics/appoptics.go +++ b/pkg/detectors/appoptics/appoptics.go @@ -90,3 +90,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AppOptics } + +func (s Scanner) Description() string { + return "AppOptics is a cloud-based infrastructure monitoring service. AppOptics API keys can be used to access and manage monitoring data and configurations." +} diff --git a/pkg/detectors/appsynergy/appsynergy.go b/pkg/detectors/appsynergy/appsynergy.go index 4aaf50269120..5b1ed6661181 100644 --- a/pkg/detectors/appsynergy/appsynergy.go +++ b/pkg/detectors/appsynergy/appsynergy.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AppSynergy } + +func (s Scanner) Description() string { + return "AppSynergy is a platform for building cloud applications. AppSynergy API keys can be used to access and manage applications and data within the platform." +} diff --git a/pkg/detectors/apptivo/apptivo.go b/pkg/detectors/apptivo/apptivo.go index 07010e04450f..dd222a954a6c 100644 --- a/pkg/detectors/apptivo/apptivo.go +++ b/pkg/detectors/apptivo/apptivo.go @@ -92,3 +92,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Apptivo } + +func (s Scanner) Description() string { + return "Apptivo is a cloud-based suite of business solutions, including CRM, project management, and more. Apptivo API keys can be used to access and manage these services programmatically." +} diff --git a/pkg/detectors/artifactory/artifactory.go b/pkg/detectors/artifactory/artifactory.go index c281cb4a4484..92fe66e98f5b 100644 --- a/pkg/detectors/artifactory/artifactory.go +++ b/pkg/detectors/artifactory/artifactory.go @@ -114,3 +114,7 @@ func verifyArtifactory(ctx context.Context, client *http.Client, resURLMatch, re func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ArtifactoryAccessToken } + +func (s Scanner) Description() string { + return "Artifactory is a repository manager that supports all major package formats. Artifactory access tokens can be used to authenticate and perform operations on repositories." +} diff --git a/pkg/detectors/artsy/artsy.go b/pkg/detectors/artsy/artsy.go index bc0ed80418fc..4aaf9e24fc9e 100644 --- a/pkg/detectors/artsy/artsy.go +++ b/pkg/detectors/artsy/artsy.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Artsy } + +func (s Scanner) Description() string { + return "Artsy is an online platform for discovering, buying, and selling art. Artsy API keys can be used to access Artsy's services and data." +} diff --git a/pkg/detectors/asanaoauth/asanaoauth.go b/pkg/detectors/asanaoauth/asanaoauth.go index aa8bbea8253a..3d07c8f6f5eb 100644 --- a/pkg/detectors/asanaoauth/asanaoauth.go +++ b/pkg/detectors/asanaoauth/asanaoauth.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AsanaOauth } + +func (s Scanner) Description() string { + return "Asana is a work management platform that helps teams organize, track, and manage their work. Asana OAuth tokens can be used to access and interact with Asana's API on behalf of a user." +} diff --git a/pkg/detectors/asanapersonalaccesstoken/asanapersonalaccesstoken.go b/pkg/detectors/asanapersonalaccesstoken/asanapersonalaccesstoken.go index 3e7342d474b6..a0e4740ad1fc 100644 --- a/pkg/detectors/asanapersonalaccesstoken/asanapersonalaccesstoken.go +++ b/pkg/detectors/asanapersonalaccesstoken/asanapersonalaccesstoken.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AsanaPersonalAccessToken } + +func (s Scanner) Description() string { + return "Asana is a web and mobile application designed to help teams organize, track, and manage their work. Asana Personal Access Tokens can be used to access and modify data within Asana." +} diff --git a/pkg/detectors/assemblyai/assemblyai.go b/pkg/detectors/assemblyai/assemblyai.go index 4788823e5bdd..0c060de9d382 100644 --- a/pkg/detectors/assemblyai/assemblyai.go +++ b/pkg/detectors/assemblyai/assemblyai.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AssemblyAI } + +func (s Scanner) Description() string { + return "AssemblyAI is a service that provides speech-to-text transcription. AssemblyAI keys can be used to access and utilize the transcription services provided by AssemblyAI." +} diff --git a/pkg/detectors/atera/atera.go b/pkg/detectors/atera/atera.go index d7f8d6257cf7..4141e8ca6e20 100644 --- a/pkg/detectors/atera/atera.go +++ b/pkg/detectors/atera/atera.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Atera } + +func (s Scanner) Description() string { + return "Atera is an IT management platform that provides remote monitoring and management for IT professionals. Atera API keys can be used to interact with the Atera API to manage alerts, tickets, devices, and more." +} diff --git a/pkg/detectors/atlassian/v1/atlassian.go b/pkg/detectors/atlassian/v1/atlassian.go index 53186e4b6d6e..0d313a8c71bd 100644 --- a/pkg/detectors/atlassian/v1/atlassian.go +++ b/pkg/detectors/atlassian/v1/atlassian.go @@ -44,6 +44,11 @@ func (s Scanner) Keywords() []string { return []string{"atlassian"} } +// Description returns a description for the result being detected +func (s Scanner) Description() string { + return "Atlassian provides tools for software development, project management, and content management. Atlassian API keys can be used to access and manage these tools and services." +} + // FromData will find and optionally verify Atlassian secrets in a given set of bytes. func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (results []detectors.Result, err error) { dataStr := string(data) @@ -88,8 +93,8 @@ func verifyMatch(ctx context.Context, client *http.Client, token string) (bool, if err != nil { return false, nil, nil } - req.Header.Add("Accept", "application/json") - req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", token)) + req.Header.Add("Accept", "application/json") + req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", token)) res, err := client.Do(req) if err != nil { return false, nil, err diff --git a/pkg/detectors/atlassian/v2/atlassian.go b/pkg/detectors/atlassian/v2/atlassian.go index 3e4ea1f0dc28..7dd995183ab2 100644 --- a/pkg/detectors/atlassian/v2/atlassian.go +++ b/pkg/detectors/atlassian/v2/atlassian.go @@ -44,6 +44,11 @@ func (s Scanner) Keywords() []string { return []string{"ATCTT3xFfG"} } +// Description returns a description for the result being detected +func (s Scanner) Description() string { + return "Atlassian is a software company that provides tools for project management, software development, and collaboration. Atlassian tokens can be used to access and manage these tools and services." +} + // FromData will find and optionally verify Atlassian secrets in a given set of bytes. func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (results []detectors.Result, err error) { dataStr := string(data) diff --git a/pkg/detectors/audd/audd.go b/pkg/detectors/audd/audd.go index 58ecc17a8598..7cfde0d94883 100644 --- a/pkg/detectors/audd/audd.go +++ b/pkg/detectors/audd/audd.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Audd } + +func (s Scanner) Description() string { + return "Audd is a music recognition service. Audd API tokens can be used to access the Audd API services for recognizing music and obtaining metadata." +} diff --git a/pkg/detectors/auth0managementapitoken/auth0managementapitoken.go b/pkg/detectors/auth0managementapitoken/auth0managementapitoken.go index 5d9a513ce2d4..95ccaf0e6f5c 100644 --- a/pkg/detectors/auth0managementapitoken/auth0managementapitoken.go +++ b/pkg/detectors/auth0managementapitoken/auth0managementapitoken.go @@ -95,3 +95,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Auth0ManagementApiToken } + +func (s Scanner) Description() string { + return "Auth0 provides authentication and authorization as a service. Auth0 Management API tokens can be used to manage users, roles, permissions, and other aspects of the Auth0 service." +} diff --git a/pkg/detectors/auth0oauth/auth0oauth.go b/pkg/detectors/auth0oauth/auth0oauth.go index 93bf956b7cd0..8812703f7a39 100644 --- a/pkg/detectors/auth0oauth/auth0oauth.go +++ b/pkg/detectors/auth0oauth/auth0oauth.go @@ -117,3 +117,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Auth0oauth } + +func (s Scanner) Description() string { + return "Auth0 is a service designed to handle authentication and authorization for users. Oauth API keys can be used to impersonate applications and other things related to Auth0's API" +} diff --git a/pkg/detectors/autodesk/autodesk.go b/pkg/detectors/autodesk/autodesk.go index 75abd2aae593..d3050d74203c 100644 --- a/pkg/detectors/autodesk/autodesk.go +++ b/pkg/detectors/autodesk/autodesk.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Autodesk } + +func (s Scanner) Description() string { + return "Autodesk provides software services for design and engineering. Autodesk API keys can be used to access and modify data within Autodesk services." +} diff --git a/pkg/detectors/autoklose/autoklose.go b/pkg/detectors/autoklose/autoklose.go index b538b7948630..9ee8fde5d3c0 100644 --- a/pkg/detectors/autoklose/autoklose.go +++ b/pkg/detectors/autoklose/autoklose.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Autoklose } + +func (s Scanner) Description() string { + return "Autoklose is a sales automation tool that allows users to streamline their email outreach and follow-up processes. Autoklose API tokens can be used to access and manage campaigns, contacts, and other related data." +} diff --git a/pkg/detectors/autopilot/autopilot.go b/pkg/detectors/autopilot/autopilot.go index cc913278695d..be4780ef9632 100644 --- a/pkg/detectors/autopilot/autopilot.go +++ b/pkg/detectors/autopilot/autopilot.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AutoPilot } + +func (s Scanner) Description() string { + return "AutoPilot is a marketing automation platform. AutoPilot API keys can be used to access and manage marketing data and campaigns." +} diff --git a/pkg/detectors/avazapersonalaccesstoken/avazapersonalaccesstoken.go b/pkg/detectors/avazapersonalaccesstoken/avazapersonalaccesstoken.go index b0b7a806ba48..6ec63f0b27aa 100644 --- a/pkg/detectors/avazapersonalaccesstoken/avazapersonalaccesstoken.go +++ b/pkg/detectors/avazapersonalaccesstoken/avazapersonalaccesstoken.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AvazaPersonalAccessToken } + +func (s Scanner) Description() string { + return "Avaza is a business management tool that offers project management, time tracking, and financial management. Avaza Personal Access Tokens can be used to access and interact with Avaza's API." +} diff --git a/pkg/detectors/aviationstack/aviationstack.go b/pkg/detectors/aviationstack/aviationstack.go index ddefb6b3ddef..e38128341a70 100644 --- a/pkg/detectors/aviationstack/aviationstack.go +++ b/pkg/detectors/aviationstack/aviationstack.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AviationStack } + +func (s Scanner) Description() string { + return "AviationStack is a service providing real-time flight status and aviation data. The API key can be used to access this data." +} diff --git a/pkg/detectors/aws/aws.go b/pkg/detectors/aws/aws.go index 0416f051ebdd..cba39f1f6e77 100644 --- a/pkg/detectors/aws/aws.go +++ b/pkg/detectors/aws/aws.go @@ -456,3 +456,7 @@ type identityRes struct { func (s scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AWS } + +func (s scanner) Description() string { + return "AWS is a cloud service used offering over 200 API's to transact data and compute. AWS API keys can be used to access and modify this data and compute." +} diff --git a/pkg/detectors/awssessionkeys/awssessionkey.go b/pkg/detectors/awssessionkeys/awssessionkey.go index 280a748eb656..88c3745d4c89 100644 --- a/pkg/detectors/awssessionkeys/awssessionkey.go +++ b/pkg/detectors/awssessionkeys/awssessionkey.go @@ -342,3 +342,7 @@ type identityRes struct { func (s scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AWSSessionKey } + +func (s scanner) Description() string { + return "AWS is a cloud service used offering over 200 API's to transact data and compute. AWS API keys can be used to access and modify this data and compute." +} diff --git a/pkg/detectors/axonaut/axonaut.go b/pkg/detectors/axonaut/axonaut.go index 03e14683b395..7062d23faabd 100644 --- a/pkg/detectors/axonaut/axonaut.go +++ b/pkg/detectors/axonaut/axonaut.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Axonaut } + +func (s Scanner) Description() string { + return "Axonaut is a service that provides business management solutions including CRM, invoicing, and accounting. Axonaut API keys can be used to access and manage business data through their API." +} diff --git a/pkg/detectors/aylien/aylien.go b/pkg/detectors/aylien/aylien.go index 28195ecaa555..1c97248e1b91 100644 --- a/pkg/detectors/aylien/aylien.go +++ b/pkg/detectors/aylien/aylien.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Aylien } + +func (s Scanner) Description() string { + return "Aylien is a text analysis platform that provides natural language processing and machine learning APIs. Aylien API keys can be used to access and analyze text data." +} diff --git a/pkg/detectors/ayrshare/ayrshare.go b/pkg/detectors/ayrshare/ayrshare.go index ca3be88647fd..db2f43cccadc 100644 --- a/pkg/detectors/ayrshare/ayrshare.go +++ b/pkg/detectors/ayrshare/ayrshare.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Ayrshare } + +func (s Scanner) Description() string { + return "Ayrshare provides social media management services. Ayrshare API keys can be used to manage social media accounts and posts." +} diff --git a/pkg/detectors/azure/azure.go b/pkg/detectors/azure/azure.go index 2319ce97c4aa..80902f3c4cfc 100644 --- a/pkg/detectors/azure/azure.go +++ b/pkg/detectors/azure/azure.go @@ -53,15 +53,14 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result for _, tenantID := range tenantIDMatches { clientIDMatches := clientIDPat.FindAllStringSubmatch(dataStr, -1) for _, clientID := range clientIDMatches { - s := detectors.Result{ + res := detectors.Result{ DetectorType: detectorspb.DetectorType_Azure, Raw: []byte(clientSecret[2]), RawV2: []byte(clientID[2] + clientSecret[2] + tenantID[2]), Redacted: clientID[2], - } - // Set the RotationGuideURL in the ExtraData - s.ExtraData = map[string]string{ - "rotation_guide": "https://howtorotate.com/docs/tutorials/azure/", + ExtraData: map[string]string{ + "rotation_guide": "https://howtorotate.com/docs/tutorials/azure/", + }, } if verify { @@ -72,11 +71,11 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result } err = token.Refresh() if err == nil { - s.Verified = true + res.Verified = true } } - results = append(results, s) + results = append(results, res) } } } @@ -87,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Azure } + +func (s Scanner) Description() string { + return "Azure is a cloud service offering a wide range of services including compute, analytics, storage, and networking. Azure credentials can be used to access and manage these services." +} diff --git a/pkg/detectors/azurebatch/azurebatch.go b/pkg/detectors/azurebatch/azurebatch.go index 4bad3e0eb583..62db040051c7 100644 --- a/pkg/detectors/azurebatch/azurebatch.go +++ b/pkg/detectors/azurebatch/azurebatch.go @@ -113,3 +113,7 @@ func (s Scanner) IsFalsePositive(_ detectors.Result) (bool, string) { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AzureBatch } + +func (s Scanner) Description() string { + return "Azure Batch is a cloud service that provides large-scale parallel and high-performance computing (HPC) applications efficiently in the cloud. Azure Batch account keys can be used to manage and control access to these resources." +} diff --git a/pkg/detectors/azurecontainerregistry/azurecontainerregistry.go b/pkg/detectors/azurecontainerregistry/azurecontainerregistry.go index 80fd9ce4886e..b426e816a337 100644 --- a/pkg/detectors/azurecontainerregistry/azurecontainerregistry.go +++ b/pkg/detectors/azurecontainerregistry/azurecontainerregistry.go @@ -103,3 +103,7 @@ func (s Scanner) IsFalsePositive(_ detectors.Result) (bool, string) { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AzureContainerRegistry } + +func (s Scanner) Description() string { + return "Azure's container registry is used to store docker containers. An API key can be used to override existing containers, read sensitive data, and do other operations inside the container registry." +} diff --git a/pkg/detectors/azuredevopspersonalaccesstoken/azuredevopspersonalaccesstoken.go b/pkg/detectors/azuredevopspersonalaccesstoken/azuredevopspersonalaccesstoken.go index 6f8fe078285f..3489d48606e8 100644 --- a/pkg/detectors/azuredevopspersonalaccesstoken/azuredevopspersonalaccesstoken.go +++ b/pkg/detectors/azuredevopspersonalaccesstoken/azuredevopspersonalaccesstoken.go @@ -95,3 +95,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AzureDevopsPersonalAccessToken } + +func (s Scanner) Description() string { + return "Azure DevOps is a suite of development tools provided by Microsoft. Personal Access Tokens (PATs) are used to authenticate and authorize access to Azure DevOps services and resources." +} diff --git a/pkg/detectors/azurefunctionkey/azurefunctionkey.go b/pkg/detectors/azurefunctionkey/azurefunctionkey.go index 3aca1685165a..99bf43d4ec14 100644 --- a/pkg/detectors/azurefunctionkey/azurefunctionkey.go +++ b/pkg/detectors/azurefunctionkey/azurefunctionkey.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AzureFunctionKey } + +func (s Scanner) Description() string { + return "Azure Functions is a serverless compute service that lets you run event-triggered code without having to explicitly provision or manage infrastructure. Azure Function Keys can be used to access and manage these functions." +} diff --git a/pkg/detectors/azuresearchadminkey/azuresearchadminkey.go b/pkg/detectors/azuresearchadminkey/azuresearchadminkey.go index f20271b19fc5..5cb0cf5792fa 100644 --- a/pkg/detectors/azuresearchadminkey/azuresearchadminkey.go +++ b/pkg/detectors/azuresearchadminkey/azuresearchadminkey.go @@ -95,3 +95,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AzureSearchAdminKey } + +func (s Scanner) Description() string { + return "Azure Search is a search-as-a-service solution that allows developers to incorporate search capabilities into their applications. Azure Search Admin Keys can be used to manage and query search services." +} diff --git a/pkg/detectors/azuresearchquerykey/azuresearchquerykey.go b/pkg/detectors/azuresearchquerykey/azuresearchquerykey.go index 5d1fed88ebcd..b685a56b177a 100644 --- a/pkg/detectors/azuresearchquerykey/azuresearchquerykey.go +++ b/pkg/detectors/azuresearchquerykey/azuresearchquerykey.go @@ -91,3 +91,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AzureSearchQueryKey } + +func (s Scanner) Description() string { + return "Azure Search Query Keys are used to authenticate search requests to Azure Search service. They should be kept confidential to prevent unauthorized access to search indexes and data." +} diff --git a/pkg/detectors/azurestorage/azurestorage.go b/pkg/detectors/azurestorage/azurestorage.go index 84afdd98b0cb..62797e3613ff 100644 --- a/pkg/detectors/azurestorage/azurestorage.go +++ b/pkg/detectors/azurestorage/azurestorage.go @@ -140,3 +140,7 @@ func verifyAzureStorageKey(ctx context.Context, client *http.Client, accountName func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_AzureStorage } + +func (s Scanner) Description() string { + return "Azure Storage is a Microsoft-managed cloud service that provides storage that is highly available, secure, durable, scalable, and redundant. Azure Storage Account keys can be used to access and manage data within storage accounts." +} diff --git a/pkg/detectors/bannerbear/bannerbear.go b/pkg/detectors/bannerbear/bannerbear.go index ba6c9e1570ed..0d5c8f24f72b 100644 --- a/pkg/detectors/bannerbear/bannerbear.go +++ b/pkg/detectors/bannerbear/bannerbear.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Bannerbear } + +func (s Scanner) Description() string { + return "Bannerbear is an API for generating dynamic images, videos, and GIFs. Bannerbear API keys can be used to access and manipulate these resources." +} diff --git a/pkg/detectors/baremetrics/baremetrics.go b/pkg/detectors/baremetrics/baremetrics.go index c1e942904497..39798ab5e0ee 100644 --- a/pkg/detectors/baremetrics/baremetrics.go +++ b/pkg/detectors/baremetrics/baremetrics.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Baremetrics } + +func (s Scanner) Description() string { + return "Baremetrics is a subscription analytics and insights tool. Baremetrics API keys can be used to access and analyze subscription data." +} diff --git a/pkg/detectors/beamer/beamer.go b/pkg/detectors/beamer/beamer.go index bad69b3f8a03..2a00920b0713 100644 --- a/pkg/detectors/beamer/beamer.go +++ b/pkg/detectors/beamer/beamer.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Beamer } + +func (s Scanner) Description() string { + return "Beamer is a user engagement platform that helps you communicate product updates and other important information to your users. Beamer API keys can be used to access and manage this information." +} diff --git a/pkg/detectors/beebole/beebole.go b/pkg/detectors/beebole/beebole.go index 4d67e25bb1fe..765c92d48dc7 100644 --- a/pkg/detectors/beebole/beebole.go +++ b/pkg/detectors/beebole/beebole.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Beebole } + +func (s Scanner) Description() string { + return "Beebole is a time tracking and business management tool. Beebole API keys can be used to access and manage time tracking data and other business-related information." +} diff --git a/pkg/detectors/besnappy/besnappy.go b/pkg/detectors/besnappy/besnappy.go index 6ad3fd57f8d0..0a7154692513 100644 --- a/pkg/detectors/besnappy/besnappy.go +++ b/pkg/detectors/besnappy/besnappy.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Besnappy } + +func (s Scanner) Description() string { + return "Besnappy is a customer service platform. The detected key can be used to access Besnappy's API, potentially exposing sensitive customer service data." +} diff --git a/pkg/detectors/besttime/besttime.go b/pkg/detectors/besttime/besttime.go index a0b19118d436..0d3b05ca184f 100644 --- a/pkg/detectors/besttime/besttime.go +++ b/pkg/detectors/besttime/besttime.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Besttime } + +func (s Scanner) Description() string { + return "Besttime is a service used to predict the best time to visit a place. Besttime API keys can be used to access and utilize this service." +} diff --git a/pkg/detectors/betterstack/betterstack.go b/pkg/detectors/betterstack/betterstack.go index 3770dacd8f65..7c3c4d16dcdb 100644 --- a/pkg/detectors/betterstack/betterstack.go +++ b/pkg/detectors/betterstack/betterstack.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_BetterStack } + +func (s Scanner) Description() string { + return "Betterstack is a monitoring service for uptime and performance of websites and APIs. Betterstack API keys can be used to access and manage these monitoring services." +} diff --git a/pkg/detectors/billomat/billomat.go b/pkg/detectors/billomat/billomat.go index a431c9f7e46f..b0d316c9a09e 100644 --- a/pkg/detectors/billomat/billomat.go +++ b/pkg/detectors/billomat/billomat.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Billomat } + +func (s Scanner) Description() string { + return "Billomat is an online invoicing software. Billomat API keys can be used to access and manage invoices, clients, and other related data." +} diff --git a/pkg/detectors/bitbar/bitbar.go b/pkg/detectors/bitbar/bitbar.go index 9eca133784d0..485c7f9facdc 100644 --- a/pkg/detectors/bitbar/bitbar.go +++ b/pkg/detectors/bitbar/bitbar.go @@ -4,10 +4,11 @@ import ( "context" b64 "encoding/base64" "fmt" - regexp "github.com/wasilibs/go-re2" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -75,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Bitbar } + +func (s Scanner) Description() string { + return "Bitbar provides a cloud-based mobile app testing platform. Bitbar API keys can be used to access and manage testing resources and data." +} diff --git a/pkg/detectors/bitcoinaverage/bitcoinaverage.go b/pkg/detectors/bitcoinaverage/bitcoinaverage.go index 3e05dddf0228..c326f709b0eb 100644 --- a/pkg/detectors/bitcoinaverage/bitcoinaverage.go +++ b/pkg/detectors/bitcoinaverage/bitcoinaverage.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_BitcoinAverage } + +func (s Scanner) Description() string { + return "BitcoinAverage is a service that provides cryptocurrency market data. BitcoinAverage API keys can be used to access and retrieve this market data." +} diff --git a/pkg/detectors/bitfinex/bitfinex.go b/pkg/detectors/bitfinex/bitfinex.go index 534d886d8a1b..50239e0e3ac6 100644 --- a/pkg/detectors/bitfinex/bitfinex.go +++ b/pkg/detectors/bitfinex/bitfinex.go @@ -103,3 +103,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Bitfinex } + +func (s Scanner) Description() string { + return "Bitfinex is a cryptocurrency exchange offering various trading options. Bitfinex API keys can be used to access and manage trading accounts." +} diff --git a/pkg/detectors/bitlyaccesstoken/bitlyaccesstoken.go b/pkg/detectors/bitlyaccesstoken/bitlyaccesstoken.go index 7b72d899e69e..f0f553e30365 100644 --- a/pkg/detectors/bitlyaccesstoken/bitlyaccesstoken.go +++ b/pkg/detectors/bitlyaccesstoken/bitlyaccesstoken.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_BitLyAccessToken } + +func (s Scanner) Description() string { + return "Bitly is a URL shortening service. Bitly access tokens can be used to interact with the Bitly API, allowing users to create, manage, and track shortened URLs." +} diff --git a/pkg/detectors/bitmex/bitmex.go b/pkg/detectors/bitmex/bitmex.go index b82bee561a93..bf02fa37b720 100644 --- a/pkg/detectors/bitmex/bitmex.go +++ b/pkg/detectors/bitmex/bitmex.go @@ -106,3 +106,7 @@ func getBitmexSignature(timeStamp string, secret string, action string, path str func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Bitmex } + +func (s Scanner) Description() string { + return "Bitmex is a cryptocurrency exchange and derivative trading platform. Bitmex API keys can be used to access and trade on the platform programmatically." +} diff --git a/pkg/detectors/blazemeter/blazemeter.go b/pkg/detectors/blazemeter/blazemeter.go index 51acf8c9de6f..1bb3ef159d77 100644 --- a/pkg/detectors/blazemeter/blazemeter.go +++ b/pkg/detectors/blazemeter/blazemeter.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Blazemeter } + +func (s Scanner) Description() string { + return "Blazemeter is a continuous testing platform for DevOps. The keys can be used to access and manage performance tests and other resources." +} diff --git a/pkg/detectors/blitapp/blitapp.go b/pkg/detectors/blitapp/blitapp.go index 077c443a1ac4..986ebdc8b730 100644 --- a/pkg/detectors/blitapp/blitapp.go +++ b/pkg/detectors/blitapp/blitapp.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_BlitApp } + +func (s Scanner) Description() string { + return "BlitApp is a service used for managing applications. BlitApp API keys can be used to access and modify application data." +} diff --git a/pkg/detectors/blocknative/blocknative.go b/pkg/detectors/blocknative/blocknative.go index d65b44672639..95f63b8cd4ad 100644 --- a/pkg/detectors/blocknative/blocknative.go +++ b/pkg/detectors/blocknative/blocknative.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_BlockNative } + +func (s Scanner) Description() string { + return "Blocknative is a platform that provides real-time blockchain transaction monitoring and notification services. Blocknative API keys can be used to access and interact with these services." +} diff --git a/pkg/detectors/blogger/blogger.go b/pkg/detectors/blogger/blogger.go index a3c46155b0b5..aa6e5914bb10 100644 --- a/pkg/detectors/blogger/blogger.go +++ b/pkg/detectors/blogger/blogger.go @@ -68,3 +68,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Blogger } + +func (s Scanner) Description() string { + return "Blogger API keys can be used to access and manage blogs on the Blogger platform." +} diff --git a/pkg/detectors/bombbomb/bombbomb.go b/pkg/detectors/bombbomb/bombbomb.go index 612e39855bee..f73111c5cc97 100644 --- a/pkg/detectors/bombbomb/bombbomb.go +++ b/pkg/detectors/bombbomb/bombbomb.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_BombBomb } + +func (s Scanner) Description() string { + return "BombBomb is a video messaging platform that allows users to create and send video emails. BombBomb API keys can be used to access and manage video email campaigns and contacts." +} diff --git a/pkg/detectors/boostnote/boostnote.go b/pkg/detectors/boostnote/boostnote.go index a6fd6363bacb..519b66443421 100644 --- a/pkg/detectors/boostnote/boostnote.go +++ b/pkg/detectors/boostnote/boostnote.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_BoostNote } + +func (s Scanner) Description() string { + return "BoostNote is a note-taking application. The secret detected here is likely an API key or token used to access BoostNote services." +} diff --git a/pkg/detectors/borgbase/borgbase.go b/pkg/detectors/borgbase/borgbase.go index d44a6c06d03d..2556852a7b2c 100644 --- a/pkg/detectors/borgbase/borgbase.go +++ b/pkg/detectors/borgbase/borgbase.go @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Borgbase } + +func (s Scanner) Description() string { + return "Borgbase is a service for hosting Borg repositories. Borgbase API keys can be used to manage and access these repositories." +} diff --git a/pkg/detectors/braintreepayments/braintreepayments.go b/pkg/detectors/braintreepayments/braintreepayments.go index 2a8daf39160d..d06d2ab82e45 100644 --- a/pkg/detectors/braintreepayments/braintreepayments.go +++ b/pkg/detectors/braintreepayments/braintreepayments.go @@ -129,3 +129,7 @@ func verifyBraintree(ctx context.Context, client *http.Client, url, pubKey, priv func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_BraintreePayments } + +func (s Scanner) Description() string { + return "Braintree is a full-stack payment platform that makes it easy to accept payments in your mobile app or website. Braintree API keys can be used to access and manage payment transactions, customer data, and other payment-related operations." +} diff --git a/pkg/detectors/brandfetch/brandfetch.go b/pkg/detectors/brandfetch/brandfetch.go index 7ad508641016..6dc6c3eabb9c 100644 --- a/pkg/detectors/brandfetch/brandfetch.go +++ b/pkg/detectors/brandfetch/brandfetch.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Brandfetch } + +func (s Scanner) Description() string { + return "Brandfetch is a service that provides brand data, including logos, colors, fonts, and more. Brandfetch API keys can be used to access this data." +} diff --git a/pkg/detectors/browserstack/browserstack.go b/pkg/detectors/browserstack/browserstack.go index 4d2947789ce7..1e93ac0bf924 100644 --- a/pkg/detectors/browserstack/browserstack.go +++ b/pkg/detectors/browserstack/browserstack.go @@ -127,3 +127,7 @@ func verifyBrowserStackCredentials(ctx context.Context, client *http.Client, use func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_BrowserStack } + +func (s Scanner) Description() string { + return "BrowserStack is a cloud web and mobile testing platform. BrowserStack credentials can be used to access and manage testing environments." +} diff --git a/pkg/detectors/browshot/browshot.go b/pkg/detectors/browshot/browshot.go index f57d67819374..78e4228ea9bb 100644 --- a/pkg/detectors/browshot/browshot.go +++ b/pkg/detectors/browshot/browshot.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Browshot } + +func (s Scanner) Description() string { + return "Browshot is a service that allows you to take screenshots of web pages from different browsers and devices. Browshot API keys can be used to automate and manage these screenshots." +} diff --git a/pkg/detectors/bscscan/bscscan.go b/pkg/detectors/bscscan/bscscan.go index 9051b4de0208..5d7606c2f983 100644 --- a/pkg/detectors/bscscan/bscscan.go +++ b/pkg/detectors/bscscan/bscscan.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_BscScan } + +func (s Scanner) Description() string { + return "BscScan is a block explorer and analytics platform for Binance Smart Chain. BscScan API keys can be used to access data from the Binance Smart Chain blockchain." +} diff --git a/pkg/detectors/buddyns/buddyns.go b/pkg/detectors/buddyns/buddyns.go index df61159b671b..9995b56fa891 100644 --- a/pkg/detectors/buddyns/buddyns.go +++ b/pkg/detectors/buddyns/buddyns.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_BuddyNS } + +func (s Scanner) Description() string { + return "BuddyNS is a DNS hosting service. BuddyNS API keys can be used to manage DNS zones and records." +} diff --git a/pkg/detectors/budibase/budibase.go b/pkg/detectors/budibase/budibase.go index 50b3fc19414a..3960e963807c 100644 --- a/pkg/detectors/budibase/budibase.go +++ b/pkg/detectors/budibase/budibase.go @@ -90,3 +90,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Budibase } + +func (s Scanner) Description() string { + return "Budibase is a low-code platform for creating internal tools. Budibase API keys can be used to access and modify applications and data within the platform." +} diff --git a/pkg/detectors/bugherd/bugherd.go b/pkg/detectors/bugherd/bugherd.go index cf81e1328b8c..5e4f7c2fd9b8 100644 --- a/pkg/detectors/bugherd/bugherd.go +++ b/pkg/detectors/bugherd/bugherd.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Bugherd } + +func (s Scanner) Description() string { + return "Bugherd is a visual feedback and bug tracking tool for websites. Bugherd API keys can be used to access and manage projects, tasks, and feedback data." +} diff --git a/pkg/detectors/bugsnag/bugsnag.go b/pkg/detectors/bugsnag/bugsnag.go index 11e2f63c18d5..1289bd3ce7dd 100644 --- a/pkg/detectors/bugsnag/bugsnag.go +++ b/pkg/detectors/bugsnag/bugsnag.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Bugsnag } + +func (s Scanner) Description() string { + return "Bugsnag is an error monitoring service for web and mobile applications. Bugsnag API keys can be used to report and manage errors." +} diff --git a/pkg/detectors/buildkite/buildkite.go b/pkg/detectors/buildkite/buildkite.go index 92bd1a5a7a22..1b8dd07271eb 100644 --- a/pkg/detectors/buildkite/buildkite.go +++ b/pkg/detectors/buildkite/buildkite.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Buildkite } + +func (s Scanner) Description() string { + return "Buildkite is a platform for running fast, secure, and scalable continuous integration pipelines. Buildkite API tokens can be used to access and modify pipeline data and configurations." +} diff --git a/pkg/detectors/buildkitev2/buildkite.go b/pkg/detectors/buildkitev2/buildkite.go index e5eca0491440..f42663d0f4bf 100644 --- a/pkg/detectors/buildkitev2/buildkite.go +++ b/pkg/detectors/buildkitev2/buildkite.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Buildkite } + +func (s Scanner) Description() string { + return "Buildkite is a platform for running fast, secure, and scalable continuous integration and delivery pipelines. Buildkite access tokens can be used to interact with the Buildkite API." +} diff --git a/pkg/detectors/bulbul/bulbul.go b/pkg/detectors/bulbul/bulbul.go index a3fc6c92c828..0c19c5f9122c 100644 --- a/pkg/detectors/bulbul/bulbul.go +++ b/pkg/detectors/bulbul/bulbul.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Bulbul } + +func (s Scanner) Description() string { + return "Bulbul is an API service. Bulbul API keys can be used to access and modify data within the service." +} diff --git a/pkg/detectors/bulksms/bulksms.go b/pkg/detectors/bulksms/bulksms.go index a55122230426..b543fd5a7fed 100644 --- a/pkg/detectors/bulksms/bulksms.go +++ b/pkg/detectors/bulksms/bulksms.go @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Bulksms } + +func (s Scanner) Description() string { + return "BulkSMS is a service used for sending SMS messages in bulk. BulkSMS credentials can be used to access and send messages through the BulkSMS API." +} diff --git a/pkg/detectors/buttercms/buttercms.go b/pkg/detectors/buttercms/buttercms.go index 4910eec60ce2..37c77ae12e1f 100644 --- a/pkg/detectors/buttercms/buttercms.go +++ b/pkg/detectors/buttercms/buttercms.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ButterCMS } + +func (s Scanner) Description() string { + return "ButterCMS is a headless CMS that enables developers to build websites and applications with a content management system. The API keys can be used to access and modify content stored in ButterCMS." +} diff --git a/pkg/detectors/caflou/caflou.go b/pkg/detectors/caflou/caflou.go index 75a6f4a61297..e48ada6b54e0 100644 --- a/pkg/detectors/caflou/caflou.go +++ b/pkg/detectors/caflou/caflou.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Caflou } + +func (s Scanner) Description() string { + return "Caflou is a business management software used for managing projects, tasks, and finances. Caflou API keys can be used to access and modify this data." +} diff --git a/pkg/detectors/calendarific/calendarific.go b/pkg/detectors/calendarific/calendarific.go index 7930c68ee2fa..33429723ba8c 100644 --- a/pkg/detectors/calendarific/calendarific.go +++ b/pkg/detectors/calendarific/calendarific.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Calendarific } + +func (s Scanner) Description() string { + return "Calendarific provides a public API for obtaining holiday information. The API key can be used to access holiday data for various countries and years." +} diff --git a/pkg/detectors/calendlyapikey/calendlyapikey.go b/pkg/detectors/calendlyapikey/calendlyapikey.go index 4428bb4a576a..86c1da7a93af 100644 --- a/pkg/detectors/calendlyapikey/calendlyapikey.go +++ b/pkg/detectors/calendlyapikey/calendlyapikey.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CalendlyApiKey } + +func (s Scanner) Description() string { + return "Calendly is an online scheduling tool that allows users to schedule meetings and appointments. Calendly API keys can be used to access and manage Calendly accounts and data." +} diff --git a/pkg/detectors/calorieninja/calorieninja.go b/pkg/detectors/calorieninja/calorieninja.go index 7019d224a36a..47f594080777 100644 --- a/pkg/detectors/calorieninja/calorieninja.go +++ b/pkg/detectors/calorieninja/calorieninja.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CalorieNinja } + +func (s Scanner) Description() string { + return "CalorieNinja is a service that provides nutritional information for various foods. CalorieNinja API keys can be used to access this nutritional data." +} diff --git a/pkg/detectors/campayn/campayn.go b/pkg/detectors/campayn/campayn.go index 4f6838bd6692..c12aaee76560 100644 --- a/pkg/detectors/campayn/campayn.go +++ b/pkg/detectors/campayn/campayn.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Campayn } + +func (s Scanner) Description() string { + return "Campayn is an email marketing service that allows users to create, send, and track email campaigns. Campayn API keys can be used to manage email lists, send emails, and track campaign performance." +} diff --git a/pkg/detectors/cannyio/cannyio.go b/pkg/detectors/cannyio/cannyio.go index 0a5631e8798e..bb5ad0063893 100644 --- a/pkg/detectors/cannyio/cannyio.go +++ b/pkg/detectors/cannyio/cannyio.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CannyIo } + +func (s Scanner) Description() string { + return "Canny is a user feedback tool that helps you track and prioritize feature requests. Canny API keys can be used to access and manage feedback boards and other related data." +} diff --git a/pkg/detectors/capsulecrm/capsulecrm.go b/pkg/detectors/capsulecrm/capsulecrm.go index ca631f4ddc03..f915e6932fde 100644 --- a/pkg/detectors/capsulecrm/capsulecrm.go +++ b/pkg/detectors/capsulecrm/capsulecrm.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CapsuleCRM } + +func (s Scanner) Description() string { + return "CapsuleCRM is a customer relationship management (CRM) platform. CapsuleCRM API keys can be used to access and manage customer data and interactions." +} diff --git a/pkg/detectors/captaindata/captaindata.go b/pkg/detectors/captaindata/captaindata.go index 6e12a59d8790..e2d51616ca38 100644 --- a/pkg/detectors/captaindata/captaindata.go +++ b/pkg/detectors/captaindata/captaindata.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CaptainData } + +func (s Scanner) Description() string { + return "CaptainData is a service for automating data extraction and processing. The API keys can be used to access and control these automation processes." +} diff --git a/pkg/detectors/carboninterface/carboninterface.go b/pkg/detectors/carboninterface/carboninterface.go index 0b0b69c5d2d2..d934c998f685 100644 --- a/pkg/detectors/carboninterface/carboninterface.go +++ b/pkg/detectors/carboninterface/carboninterface.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CarbonInterface } + +func (s Scanner) Description() string { + return "CarbonInterface provides an API for estimating carbon emissions for various activities. The API keys can be used to access and utilize this service." +} diff --git a/pkg/detectors/cashboard/cashboard.go b/pkg/detectors/cashboard/cashboard.go index d3f444fa70f7..65efbee3412f 100644 --- a/pkg/detectors/cashboard/cashboard.go +++ b/pkg/detectors/cashboard/cashboard.go @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Cashboard } + +func (s Scanner) Description() string { + return "Cashboard is a financial management service. Cashboard credentials can be used to access and manage financial data and accounts." +} diff --git a/pkg/detectors/caspio/caspio.go b/pkg/detectors/caspio/caspio.go index 195dc7237262..567ce64a394c 100644 --- a/pkg/detectors/caspio/caspio.go +++ b/pkg/detectors/caspio/caspio.go @@ -95,3 +95,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Caspio } + +func (s Scanner) Description() string { + return "Caspio is a cloud platform for building custom database applications. Caspio credentials can be used to access and manage these applications." +} diff --git a/pkg/detectors/censys/censys.go b/pkg/detectors/censys/censys.go index 83f8d7fa99c4..485c12c6455a 100644 --- a/pkg/detectors/censys/censys.go +++ b/pkg/detectors/censys/censys.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Censys } + +func (s Scanner) Description() string { + return "Censys is a search engine that enables researchers to ask questions about the hosts and networks that compose the Internet. Censys API keys can be used to access and query this data." +} diff --git a/pkg/detectors/centralstationcrm/centralstationcrm.go b/pkg/detectors/centralstationcrm/centralstationcrm.go index 72b3f78ca489..2d20d6630011 100644 --- a/pkg/detectors/centralstationcrm/centralstationcrm.go +++ b/pkg/detectors/centralstationcrm/centralstationcrm.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CentralStationCRM } + +func (s Scanner) Description() string { + return "CentralStationCRM is a customer relationship management service. The API keys can be used to access and manage customer data." +} diff --git a/pkg/detectors/cexio/cexio.go b/pkg/detectors/cexio/cexio.go index c4390260f8b7..56b06c020b82 100644 --- a/pkg/detectors/cexio/cexio.go +++ b/pkg/detectors/cexio/cexio.go @@ -135,3 +135,7 @@ func getCexIOPassphrase(apiSecret string, apiKey string, nonce string, userId st func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CexIO } + +func (s Scanner) Description() string { + return "CexIO is a cryptocurrency exchange platform. CexIO API keys can be used to access and manage cryptocurrency accounts and transactions." +} diff --git a/pkg/detectors/chartmogul/chartmogul.go b/pkg/detectors/chartmogul/chartmogul.go index 20e313f12448..5af07ec49e59 100644 --- a/pkg/detectors/chartmogul/chartmogul.go +++ b/pkg/detectors/chartmogul/chartmogul.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Chartmogul } + +func (s Scanner) Description() string { + return "ChartMogul is a subscription analytics platform that helps businesses measure, understand, and grow their subscription revenue. ChartMogul API keys can be used to access and manage subscription data." +} diff --git a/pkg/detectors/chatbot/chatbot.go b/pkg/detectors/chatbot/chatbot.go index 709c828a8aed..16a120073587 100644 --- a/pkg/detectors/chatbot/chatbot.go +++ b/pkg/detectors/chatbot/chatbot.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Chatbot } + +func (s Scanner) Description() string { + return "Chatbot API keys are used to interact with the Chatbot service, allowing access to create, modify, and retrieve chatbot stories and other resources." +} diff --git a/pkg/detectors/chatfule/chatfule.go b/pkg/detectors/chatfule/chatfule.go index 41cdeca43b9c..d947ed7b7c11 100644 --- a/pkg/detectors/chatfule/chatfule.go +++ b/pkg/detectors/chatfule/chatfule.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Chatfule } + +func (s Scanner) Description() string { + return "Chatfuel is a platform for creating chatbots for Facebook Messenger and other platforms. Chatfuel API keys can be used to access and manage chatbot configurations and interactions." +} diff --git a/pkg/detectors/checio/checio.go b/pkg/detectors/checio/checio.go index 082d1c98f2ca..c7a58d91da87 100644 --- a/pkg/detectors/checio/checio.go +++ b/pkg/detectors/checio/checio.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ChecIO } + +func (s Scanner) Description() string { + return "ChecIO is an eCommerce platform that provides APIs for managing products, carts, and orders. ChecIO API keys can be used to access and manage these eCommerce resources." +} diff --git a/pkg/detectors/checklyhq/checklyhq.go b/pkg/detectors/checklyhq/checklyhq.go index 370c348caeeb..274574b1c287 100644 --- a/pkg/detectors/checklyhq/checklyhq.go +++ b/pkg/detectors/checklyhq/checklyhq.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ChecklyHQ } + +func (s Scanner) Description() string { + return "ChecklyHQ is a monitoring service for API and browser checks. ChecklyHQ API keys can be used to access and manage these checks." +} diff --git a/pkg/detectors/checkout/checkout.go b/pkg/detectors/checkout/checkout.go index 9bf8ac3c3077..c14dcb129ef2 100644 --- a/pkg/detectors/checkout/checkout.go +++ b/pkg/detectors/checkout/checkout.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Checkout } + +func (s Scanner) Description() string { + return "Checkout is a global payment solution provider. Checkout API keys can be used to process payments and manage customer data." +} diff --git a/pkg/detectors/checkvist/checkvist.go b/pkg/detectors/checkvist/checkvist.go index ce470dcfec91..494bc817ef28 100644 --- a/pkg/detectors/checkvist/checkvist.go +++ b/pkg/detectors/checkvist/checkvist.go @@ -59,7 +59,6 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result } if verify { - payload := url.Values{} payload.Add("username", resEmailMatch) payload.Add("remote_key", resMatch) @@ -88,3 +87,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Checkvist } + +func (s Scanner) Description() string { + return "Checkvist is an online task management tool. The credentials found can be used to access and manage tasks and data within Checkvist." +} diff --git a/pkg/detectors/cicero/cicero.go b/pkg/detectors/cicero/cicero.go index 7f7393415a90..6014f49a8029 100644 --- a/pkg/detectors/cicero/cicero.go +++ b/pkg/detectors/cicero/cicero.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Cicero } + +func (s Scanner) Description() string { + return "Cicero is a service provided by Azavea that offers various geospatial and civic data APIs. Cicero keys can be used to access and interact with these APIs." +} diff --git a/pkg/detectors/circleci/circleci.go b/pkg/detectors/circleci/circleci.go index 936b8e0baa86..6c04002aca0a 100644 --- a/pkg/detectors/circleci/circleci.go +++ b/pkg/detectors/circleci/circleci.go @@ -36,7 +36,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result token := match[1] - s := detectors.Result{ + result := detectors.Result{ DetectorType: detectorspb.DetectorType_Circle, Raw: []byte(token), } @@ -55,11 +55,11 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result defer res.Body.Close() } if res != nil && res.StatusCode >= 200 && res.StatusCode < 300 { - s.Verified = true + result.Verified = true } } - results = append(results, s) + results = append(results, result) } return @@ -68,3 +68,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Circle } + +func (s Scanner) Description() string { + return "CircleCI is a continuous integration and delivery platform used to build, test, and deploy software. CircleCI tokens can be used to interact with the CircleCI API and access various resources and functionalities." +} diff --git a/pkg/detectors/clarifai/clarifai.go b/pkg/detectors/clarifai/clarifai.go index b9885a4094e5..29018e406fbb 100644 --- a/pkg/detectors/clarifai/clarifai.go +++ b/pkg/detectors/clarifai/clarifai.go @@ -88,3 +88,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Clarifai } + +func (s Scanner) Description() string { + return "Clarifai is an AI platform for visual recognition. Clarifai API keys can be used to access and manage visual recognition models and data." +} diff --git a/pkg/detectors/clearbit/clearbit.go b/pkg/detectors/clearbit/clearbit.go index 469ba200ee54..ef56a93aba54 100644 --- a/pkg/detectors/clearbit/clearbit.go +++ b/pkg/detectors/clearbit/clearbit.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Clearbit } + +func (s Scanner) Description() string { + return "Clearbit provides powerful APIs for enriching data about companies and people. Clearbit API keys can be used to access and retrieve detailed information about these entities." +} diff --git a/pkg/detectors/clickhelp/clickhelp.go b/pkg/detectors/clickhelp/clickhelp.go index 6ea90af11ad1..3d2f839f6184 100644 --- a/pkg/detectors/clickhelp/clickhelp.go +++ b/pkg/detectors/clickhelp/clickhelp.go @@ -95,3 +95,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ClickHelp } + +func (s Scanner) Description() string { + return "ClickHelp is a documentation tool that allows users to create and manage online documentation. ClickHelp API keys can be used to access and modify documentation data." +} diff --git a/pkg/detectors/clicksendsms/clicksendsms.go b/pkg/detectors/clicksendsms/clicksendsms.go index b2f96fb69e3c..f036f39e484b 100644 --- a/pkg/detectors/clicksendsms/clicksendsms.go +++ b/pkg/detectors/clicksendsms/clicksendsms.go @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ClickSendsms } + +func (s Scanner) Description() string { + return "ClickSend is a global leader in business communication solutions, providing a range of services including SMS, email, and voice. ClickSend API keys can be used to access and manage these communication services." +} diff --git a/pkg/detectors/clickuppersonaltoken/clickuppersonaltoken.go b/pkg/detectors/clickuppersonaltoken/clickuppersonaltoken.go index d8058fbd3d66..45d713562567 100644 --- a/pkg/detectors/clickuppersonaltoken/clickuppersonaltoken.go +++ b/pkg/detectors/clickuppersonaltoken/clickuppersonaltoken.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ClickupPersonalToken } + +func (s Scanner) Description() string { + return "ClickUp is a project management tool. Personal tokens can be used to access and modify data within ClickUp on behalf of a user." +} diff --git a/pkg/detectors/cliengo/cliengo.go b/pkg/detectors/cliengo/cliengo.go index 6713786c7ed2..54dcfbad85ca 100644 --- a/pkg/detectors/cliengo/cliengo.go +++ b/pkg/detectors/cliengo/cliengo.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Cliengo } + +func (s Scanner) Description() string { + return "Cliengo is a chatbot service that helps businesses convert website visitors into leads. Cliengo API keys can be used to access and manage the chatbot configurations and data." +} diff --git a/pkg/detectors/clinchpad/clinchpad.go b/pkg/detectors/clinchpad/clinchpad.go index e1b927a69684..09357e0fee56 100644 --- a/pkg/detectors/clinchpad/clinchpad.go +++ b/pkg/detectors/clinchpad/clinchpad.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Clinchpad } + +func (s Scanner) Description() string { + return "Clinchpad is a CRM tool. Clinchpad API keys can be used to access and modify data within Clinchpad." +} diff --git a/pkg/detectors/clockify/clockify.go b/pkg/detectors/clockify/clockify.go index 92acf73ec4af..e9414f4a76bc 100644 --- a/pkg/detectors/clockify/clockify.go +++ b/pkg/detectors/clockify/clockify.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Clockify } + +func (s Scanner) Description() string { + return "Clockify is a time tracking software. Clockify API keys can be used to access and modify time tracking data." +} diff --git a/pkg/detectors/clockworksms/clockworksms.go b/pkg/detectors/clockworksms/clockworksms.go index 37a12d5afff6..1b59048938d3 100644 --- a/pkg/detectors/clockworksms/clockworksms.go +++ b/pkg/detectors/clockworksms/clockworksms.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ClockworkSMS } + +func (s Scanner) Description() string { + return "Clockwork SMS is a service used for sending SMS messages. User keys and access tokens can be used to authenticate and send messages via the Clockwork SMS API." +} diff --git a/pkg/detectors/closecrm/close.go b/pkg/detectors/closecrm/close.go index 1bdb8ea4a26e..de0cf49676c9 100644 --- a/pkg/detectors/closecrm/close.go +++ b/pkg/detectors/closecrm/close.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Close } + +func (s Scanner) Description() string { + return "Close is a CRM software that helps businesses manage sales and customer relationships. Close API keys can be used to access and manipulate CRM data." +} diff --git a/pkg/detectors/cloudconvert/cloudconvert.go b/pkg/detectors/cloudconvert/cloudconvert.go index 8f47162dc643..a96555991a37 100644 --- a/pkg/detectors/cloudconvert/cloudconvert.go +++ b/pkg/detectors/cloudconvert/cloudconvert.go @@ -78,3 +78,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CloudConvert } + +func (s Scanner) Description() string { + return "CloudConvert is a file conversion service. CloudConvert API keys can be used to access and manage file conversion operations." +} diff --git a/pkg/detectors/cloudelements/cloudelements.go b/pkg/detectors/cloudelements/cloudelements.go index 4c1181b5dca8..9c77ab362e93 100644 --- a/pkg/detectors/cloudelements/cloudelements.go +++ b/pkg/detectors/cloudelements/cloudelements.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CloudElements } + +func (s Scanner) Description() string { + return "CloudElements is an API integration platform that enables developers to connect their applications with various cloud services. CloudElements credentials can be used to access and manage these integrations." +} diff --git a/pkg/detectors/cloudflareapitoken/cloudflareapitoken.go b/pkg/detectors/cloudflareapitoken/cloudflareapitoken.go index 51d9ca50ef4b..8fa867c6ff1c 100644 --- a/pkg/detectors/cloudflareapitoken/cloudflareapitoken.go +++ b/pkg/detectors/cloudflareapitoken/cloudflareapitoken.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CloudflareApiToken } + +func (s Scanner) Description() string { + return "Cloudflare is a web infrastructure and website security company, providing content delivery network services, DDoS mitigation, Internet security, and distributed domain name server services. Cloudflare API tokens can be used to manage and interact with Cloudflare services." +} diff --git a/pkg/detectors/cloudflarecakey/cloudflarecakey.go b/pkg/detectors/cloudflarecakey/cloudflarecakey.go index ce8703ac3816..69499d35e113 100644 --- a/pkg/detectors/cloudflarecakey/cloudflarecakey.go +++ b/pkg/detectors/cloudflarecakey/cloudflarecakey.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CloudflareCaKey } + +func (s Scanner) Description() string { + return "Cloudflare is a web infrastructure and website security company. Cloudflare CA keys can be used to manage SSL/TLS certificates and other security settings." +} diff --git a/pkg/detectors/cloudflareglobalapikey/cloudflareglobalapikey.go b/pkg/detectors/cloudflareglobalapikey/cloudflareglobalapikey.go index 850aa92a298d..96d28389bb46 100644 --- a/pkg/detectors/cloudflareglobalapikey/cloudflareglobalapikey.go +++ b/pkg/detectors/cloudflareglobalapikey/cloudflareglobalapikey.go @@ -24,10 +24,6 @@ var ( apiKeyPat = regexp.MustCompile(detectors.PrefixRegex([]string{"cloudflare"}) + `\b([A-Za-z0-9_-]{37})\b`) - // email pattern thanks https://golangcode.com/validate-an-email-address/ - // emailPat = regexp.MustCompile("^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$") - // the emailPat regex will also match emails ending in .co.uk and .engineering - emailPat = regexp.MustCompile(`\b([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}(\.[A-Za-z]{2})?)\b`) ) @@ -91,3 +87,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CloudflareGlobalApiKey } + +func (s Scanner) Description() string { + return "Cloudflare is a web infrastructure and website security company. Its services include content delivery network (CDN), DDoS mitigation, Internet security, and distributed domain name server (DNS) services. Cloudflare API keys can be used to access and modify these services." +} diff --git a/pkg/detectors/cloudimage/cloudimage.go b/pkg/detectors/cloudimage/cloudimage.go index 7bd518913e32..51a02c0f1bd8 100644 --- a/pkg/detectors/cloudimage/cloudimage.go +++ b/pkg/detectors/cloudimage/cloudimage.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CloudImage } + +func (s Scanner) Description() string { + return "CloudImage is a service that provides image optimization and delivery. CloudImage API keys can be used to access and modify image data." +} diff --git a/pkg/detectors/cloudmersive/cloudmersive.go b/pkg/detectors/cloudmersive/cloudmersive.go index 4a2d5e0b5173..b4ef56fc1bfb 100644 --- a/pkg/detectors/cloudmersive/cloudmersive.go +++ b/pkg/detectors/cloudmersive/cloudmersive.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Cloudmersive } + +func (s Scanner) Description() string { + return "Cloudmersive provides a suite of APIs for data validation, conversion, and security. Cloudmersive API keys can be used to access these services." +} diff --git a/pkg/detectors/cloudplan/cloudplan.go b/pkg/detectors/cloudplan/cloudplan.go index 30ac902b4ca5..7b6c7f328ed9 100644 --- a/pkg/detectors/cloudplan/cloudplan.go +++ b/pkg/detectors/cloudplan/cloudplan.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Cloudplan } + +func (s Scanner) Description() string { + return "Cloudplan is a service that offers cloud-based business solutions. Cloudplan session IDs can be used to access and manage user sessions and data." +} diff --git a/pkg/detectors/cloudsmith/cloudsmith.go b/pkg/detectors/cloudsmith/cloudsmith.go index bca1eeaa350b..26239c161cfe 100644 --- a/pkg/detectors/cloudsmith/cloudsmith.go +++ b/pkg/detectors/cloudsmith/cloudsmith.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Cloudsmith } + +func (s Scanner) Description() string { + return "Cloudsmith is a cloud-native package management service. Cloudsmith API keys can be used to manage and distribute packages." +} diff --git a/pkg/detectors/cloverly/cloverly.go b/pkg/detectors/cloverly/cloverly.go index 8793d84e88eb..6cadfbb5e286 100644 --- a/pkg/detectors/cloverly/cloverly.go +++ b/pkg/detectors/cloverly/cloverly.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Cloverly } + +func (s Scanner) Description() string { + return "Cloverly is a platform that allows businesses to integrate carbon offsetting into their products and services. Cloverly API keys can be used to access and manage these offsetting services." +} diff --git a/pkg/detectors/cloze/cloze.go b/pkg/detectors/cloze/cloze.go index cc94e13e6933..90cac9e8870f 100644 --- a/pkg/detectors/cloze/cloze.go +++ b/pkg/detectors/cloze/cloze.go @@ -2,17 +2,18 @@ package cloze import ( "context" - regexp "github.com/wasilibs/go-re2" "net/http" "net/url" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" ) -type Scanner struct{ +type Scanner struct { detectors.DefaultMultiPartCredentialProvider } @@ -58,7 +59,6 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result } if verify { - payload := url.Values{} payload.Add("user", resEmailMatch) payload.Add("api_key", resMatch) @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Cloze } + +func (s Scanner) Description() string { + return "Cloze is a relationship management tool that helps users manage their connections and interactions. Cloze API keys can be used to access and manage user data and interactions." +} diff --git a/pkg/detectors/clustdoc/clustdoc.go b/pkg/detectors/clustdoc/clustdoc.go index 0ec9ab16a7a4..cd1f32866d28 100644 --- a/pkg/detectors/clustdoc/clustdoc.go +++ b/pkg/detectors/clustdoc/clustdoc.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ClustDoc } + +func (s Scanner) Description() string { + return "ClustDoc is a document management platform. ClustDoc API keys can be used to access and manage documents and workflows within the ClustDoc platform." +} diff --git a/pkg/detectors/coda/coda.go b/pkg/detectors/coda/coda.go index 2b0fa89837cc..74e0b6ce7118 100644 --- a/pkg/detectors/coda/coda.go +++ b/pkg/detectors/coda/coda.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Coda } + +func (s Scanner) Description() string { + return "Coda is a platform for building collaborative documents and applications. Coda API keys can be used to access and manipulate data within Coda documents and applications." +} diff --git a/pkg/detectors/codacy/codacy.go b/pkg/detectors/codacy/codacy.go index 13326f54012f..20b086a52ebf 100644 --- a/pkg/detectors/codacy/codacy.go +++ b/pkg/detectors/codacy/codacy.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Codacy } + +func (s Scanner) Description() string { + return "Codacy is an automated code review tool that helps developers and teams improve code quality. Codacy API tokens can be used to access and manage code quality reports and settings." +} diff --git a/pkg/detectors/codeclimate/codeclimate.go b/pkg/detectors/codeclimate/codeclimate.go index 52f1f739b93c..8916cc2de276 100644 --- a/pkg/detectors/codeclimate/codeclimate.go +++ b/pkg/detectors/codeclimate/codeclimate.go @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Codeclimate } + +func (s Scanner) Description() string { + return "Codeclimate is a tool for automated code review and analysis. Codeclimate tokens can be used to access and manage repositories and their analysis results." +} diff --git a/pkg/detectors/codemagic/codemagic.go b/pkg/detectors/codemagic/codemagic.go index 4ab971d0bf86..499137292798 100644 --- a/pkg/detectors/codemagic/codemagic.go +++ b/pkg/detectors/codemagic/codemagic.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Codemagic } + +func (s Scanner) Description() string { + return "Codemagic is a CI/CD platform for mobile app projects. Codemagic API keys can be used to automate and manage the build and deployment process of mobile applications." +} diff --git a/pkg/detectors/codequiry/codequiry.go b/pkg/detectors/codequiry/codequiry.go index a16a9ef3ee20..0c5b64d36c78 100644 --- a/pkg/detectors/codequiry/codequiry.go +++ b/pkg/detectors/codequiry/codequiry.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Codequiry } + +func (s Scanner) Description() string { + return "Codequiry is a plagiarism detection service. Codequiry API keys can be used to access and utilize their plagiarism detection features." +} diff --git a/pkg/detectors/coinapi/coinapi.go b/pkg/detectors/coinapi/coinapi.go index 52eaa9313c55..df7886f79b13 100644 --- a/pkg/detectors/coinapi/coinapi.go +++ b/pkg/detectors/coinapi/coinapi.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CoinApi } + +func (s Scanner) Description() string { + return "CoinApi provides a RESTful API to access cryptocurrency market data. CoinApi keys can be used to fetch real-time and historical cryptocurrency data." +} diff --git a/pkg/detectors/coinbase/coinbase.go b/pkg/detectors/coinbase/coinbase.go index bc93208a68bb..c1eabc67284a 100644 --- a/pkg/detectors/coinbase/coinbase.go +++ b/pkg/detectors/coinbase/coinbase.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Coinbase } + +func (s Scanner) Description() string { + return "Coinbase is a digital currency exchange that allows users to buy, sell, and store various cryptocurrencies. A Coinbase API key can be used to access and manage a user's account and transactions." +} diff --git a/pkg/detectors/coinbase_waas/coinbase_waas.go b/pkg/detectors/coinbase_waas/coinbase_waas.go index 401512007c72..3f3f4cfed414 100644 --- a/pkg/detectors/coinbase_waas/coinbase_waas.go +++ b/pkg/detectors/coinbase_waas/coinbase_waas.go @@ -147,3 +147,7 @@ func (s Scanner) verifyMatch(ctx context.Context, apiKeyName, privKey string) (b func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CoinbaseWaaS } + +func (s Scanner) Description() string { + return "Coinbase WaaS (Wallet as a Service) provides a secure and scalable infrastructure for managing cryptocurrency wallets. The API keys allow access to this service to perform operations such as creating and managing wallets." +} diff --git a/pkg/detectors/coinlayer/coinlayer.go b/pkg/detectors/coinlayer/coinlayer.go index 0fa4cd0d1719..ade604ad3c1f 100644 --- a/pkg/detectors/coinlayer/coinlayer.go +++ b/pkg/detectors/coinlayer/coinlayer.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Coinlayer } + +func (s Scanner) Description() string { + return "Coinlayer provides real-time and historical cryptocurrency exchange rates. The API key can be used to access this data." +} diff --git a/pkg/detectors/coinlib/coinlib.go b/pkg/detectors/coinlib/coinlib.go index 383fc419b53a..aca9a734c49a 100644 --- a/pkg/detectors/coinlib/coinlib.go +++ b/pkg/detectors/coinlib/coinlib.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Coinlib } + +func (s Scanner) Description() string { + return "Coinlib is a cryptocurrency data provider. Coinlib API keys can be used to access and retrieve cryptocurrency data." +} diff --git a/pkg/detectors/collect2/collect2.go b/pkg/detectors/collect2/collect2.go index 51f2eaac6ffc..dfa42aef7e8b 100644 --- a/pkg/detectors/collect2/collect2.go +++ b/pkg/detectors/collect2/collect2.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Collect2 } + +func (s Scanner) Description() string { + return "An API to Collect, Modify, Filter and Export Data using webhooks. API keys can create read update and delete data." +} diff --git a/pkg/detectors/column/column.go b/pkg/detectors/column/column.go index b8bf106b256a..eed14972e1fd 100644 --- a/pkg/detectors/column/column.go +++ b/pkg/detectors/column/column.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Column } + +func (s Scanner) Description() string { + return "Column is a service used for managing entity data. Column keys can be used to access and modify this data." +} diff --git a/pkg/detectors/commercejs/commercejs.go b/pkg/detectors/commercejs/commercejs.go index c77bc80ae0f9..d7af6292a68e 100644 --- a/pkg/detectors/commercejs/commercejs.go +++ b/pkg/detectors/commercejs/commercejs.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CommerceJS } + +func (s Scanner) Description() string { + return "CommerceJS is a headless commerce platform that provides APIs for building custom e-commerce experiences. CommerceJS API keys can be used to access and manage e-commerce functionalities." +} diff --git a/pkg/detectors/commodities/commodities.go b/pkg/detectors/commodities/commodities.go index 113551abb2ec..9d8d708bb005 100644 --- a/pkg/detectors/commodities/commodities.go +++ b/pkg/detectors/commodities/commodities.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Commodities } + +func (s Scanner) Description() string { + return "Commodities API keys can be used to access and modify commodity data." +} diff --git a/pkg/detectors/companyhub/companyhub.go b/pkg/detectors/companyhub/companyhub.go index 08763bddef71..ead1f778e8be 100644 --- a/pkg/detectors/companyhub/companyhub.go +++ b/pkg/detectors/companyhub/companyhub.go @@ -85,3 +85,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CompanyHub } + +func (s Scanner) Description() string { + return "CompanyHub is a CRM tool used to manage customer relationships. CompanyHub keys can be used to access and manipulate CRM data." +} diff --git a/pkg/detectors/confluent/confluent.go b/pkg/detectors/confluent/confluent.go index 0e1f2d2235dc..82d34e52fad7 100644 --- a/pkg/detectors/confluent/confluent.go +++ b/pkg/detectors/confluent/confluent.go @@ -87,3 +87,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Confluent } + +func (s Scanner) Description() string { + return "Confluent provides a streaming platform based on Apache Kafka to help companies harness their data in real-time. Confluent API keys can be used to access and manage Kafka clusters." +} diff --git a/pkg/detectors/contentfulpersonalaccesstoken/contentfulpersonalaccesstoken.go b/pkg/detectors/contentfulpersonalaccesstoken/contentfulpersonalaccesstoken.go index b75ace2b4bb3..ecd70e57ae4d 100644 --- a/pkg/detectors/contentfulpersonalaccesstoken/contentfulpersonalaccesstoken.go +++ b/pkg/detectors/contentfulpersonalaccesstoken/contentfulpersonalaccesstoken.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ContentfulPersonalAccessToken } + +func (s Scanner) Description() string { + return "Contentful is a content management system (CMS) that allows users to manage and deliver digital content. Contentful Personal Access Tokens can be used to access and modify this content." +} diff --git a/pkg/detectors/conversiontools/conversiontools.go b/pkg/detectors/conversiontools/conversiontools.go index 27b42823a03a..f1b01200773f 100644 --- a/pkg/detectors/conversiontools/conversiontools.go +++ b/pkg/detectors/conversiontools/conversiontools.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ConversionTools } + +func (s Scanner) Description() string { + return "ConversionTools is a service used for various data conversion tasks. The API keys can be used to access and perform these tasks." +} diff --git a/pkg/detectors/convertapi/convertapi.go b/pkg/detectors/convertapi/convertapi.go index 8e443bfffef9..600ea2dbe693 100644 --- a/pkg/detectors/convertapi/convertapi.go +++ b/pkg/detectors/convertapi/convertapi.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ConvertApi } + +func (s Scanner) Description() string { + return "ConvertAPI is a service that provides file conversion capabilities via API. ConvertAPI keys can be used to access and perform file conversions." +} diff --git a/pkg/detectors/convertkit/convertkit.go b/pkg/detectors/convertkit/convertkit.go index 3417dabe5e3b..1f915d8a2390 100644 --- a/pkg/detectors/convertkit/convertkit.go +++ b/pkg/detectors/convertkit/convertkit.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Convertkit } + +func (s Scanner) Description() string { + return "Convertkit is an email marketing service provider. API keys can be used to access and manage email marketing campaigns and subscriber data." +} diff --git a/pkg/detectors/convier/convier.go b/pkg/detectors/convier/convier.go index ff17d32b51ae..c8f714217717 100644 --- a/pkg/detectors/convier/convier.go +++ b/pkg/detectors/convier/convier.go @@ -3,12 +3,13 @@ package convier import ( "context" "fmt" - regexp "github.com/wasilibs/go-re2" "io" "net/http" "strings" "time" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -85,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Convier } + +func (s Scanner) Description() string { + return "Convier is a service for managing and verifying event data. Convier keys can be used to interact with the Convier API to manage event data." +} diff --git a/pkg/detectors/copper/copper.go b/pkg/detectors/copper/copper.go index d0d1f3770453..60ca33216d2a 100644 --- a/pkg/detectors/copper/copper.go +++ b/pkg/detectors/copper/copper.go @@ -91,3 +91,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Copper } + +func (s Scanner) Description() string { + return "Copper is a CRM platform that helps businesses manage their relationships with customers and leads. Copper API keys can be used to access and modify customer data and interactions." +} diff --git a/pkg/detectors/couchbase/couchbase.go b/pkg/detectors/couchbase/couchbase.go index 284e10497991..43e60e3debbc 100644 --- a/pkg/detectors/couchbase/couchbase.go +++ b/pkg/detectors/couchbase/couchbase.go @@ -147,3 +147,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Couchbase } + +func (s Scanner) Description() string { + return "Couchbase is a distributed NoSQL cloud database. Couchbase credentials can be used to access and modify data within the Couchbase database." +} diff --git a/pkg/detectors/countrylayer/countrylayer.go b/pkg/detectors/countrylayer/countrylayer.go index 36a872b0d5a8..cee4ca10286f 100644 --- a/pkg/detectors/countrylayer/countrylayer.go +++ b/pkg/detectors/countrylayer/countrylayer.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CountryLayer } + +func (s Scanner) Description() string { + return "CountryLayer is a service that provides information about countries. CountryLayer API keys can be used to access this information." +} diff --git a/pkg/detectors/courier/courier.go b/pkg/detectors/courier/courier.go index 0519a0334b28..822fe2e2c6a8 100644 --- a/pkg/detectors/courier/courier.go +++ b/pkg/detectors/courier/courier.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Courier } + +func (s Scanner) Description() string { + return "Courier is a notification service that allows developers to send notifications through multiple channels. Courier API keys can be used to manage and send notifications." +} diff --git a/pkg/detectors/coveralls/coveralls.go b/pkg/detectors/coveralls/coveralls.go index 164c47af5bdb..17e412fb06cc 100644 --- a/pkg/detectors/coveralls/coveralls.go +++ b/pkg/detectors/coveralls/coveralls.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Coveralls } + +func (s Scanner) Description() string { + return "Coveralls is a web service to help you track your code coverage over time, and ensure that all your new code is fully covered. Coveralls tokens can be used to access and modify coverage data." +} diff --git a/pkg/detectors/craftmypdf/craftmypdf.go b/pkg/detectors/craftmypdf/craftmypdf.go index 36482c0233e4..959822a4c751 100644 --- a/pkg/detectors/craftmypdf/craftmypdf.go +++ b/pkg/detectors/craftmypdf/craftmypdf.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CraftMyPDF } + +func (s Scanner) Description() string { + return "CraftMyPDF is a service for generating PDFs from templates and data. CraftMyPDF API keys can be used to access and manage PDF generation tasks." +} diff --git a/pkg/detectors/crowdin/crowdin.go b/pkg/detectors/crowdin/crowdin.go index 8a13a3b6c20e..57875afc1b08 100644 --- a/pkg/detectors/crowdin/crowdin.go +++ b/pkg/detectors/crowdin/crowdin.go @@ -47,7 +47,6 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result } if verify { - req, err := http.NewRequestWithContext(ctx, "GET", "https://api.crowdin.com/api/v2/storages", nil) if err != nil { continue @@ -70,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Crowdin } + +func (s Scanner) Description() string { + return "Crowdin is a cloud-based localization management platform. Crowdin API keys can be used to access and manage localization projects and resources." +} diff --git a/pkg/detectors/cryptocompare/cryptocompare.go b/pkg/detectors/cryptocompare/cryptocompare.go index 262e6234664f..a1cfd7f6c399 100644 --- a/pkg/detectors/cryptocompare/cryptocompare.go +++ b/pkg/detectors/cryptocompare/cryptocompare.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CryptoCompare } + +func (s Scanner) Description() string { + return "CryptoCompare is a cryptocurrency market data provider. CryptoCompare API keys can be used to access and retrieve market data." +} diff --git a/pkg/detectors/currencycloud/currencycloud.go b/pkg/detectors/currencycloud/currencycloud.go index 7775cb645c8c..239fc232ded4 100644 --- a/pkg/detectors/currencycloud/currencycloud.go +++ b/pkg/detectors/currencycloud/currencycloud.go @@ -94,3 +94,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CurrencyCloud } + +func (s Scanner) Description() string { + return "Currencycloud provides a global payments platform that allows businesses to make payments and manage currency risk. Currencycloud API keys can be used to access and manage these financial services." +} diff --git a/pkg/detectors/currencyfreaks/currencyfreaks.go b/pkg/detectors/currencyfreaks/currencyfreaks.go index 4465a51ba33d..b4306d84bc8a 100644 --- a/pkg/detectors/currencyfreaks/currencyfreaks.go +++ b/pkg/detectors/currencyfreaks/currencyfreaks.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Currencyfreaks } + +func (s Scanner) Description() string { + return "Currencyfreaks provides exchange rates and currency conversion API services. The API keys can be used to access and retrieve exchange rate data." +} diff --git a/pkg/detectors/currencylayer/currencylayer.go b/pkg/detectors/currencylayer/currencylayer.go index a8a1a1ded406..fdede2bfe66f 100644 --- a/pkg/detectors/currencylayer/currencylayer.go +++ b/pkg/detectors/currencylayer/currencylayer.go @@ -49,7 +49,6 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result } if verify { - req, err := http.NewRequestWithContext(ctx, "GET", fmt.Sprintf("https://api.currencylayer.com/live?access_key=%s", resMatch), nil) if err != nil { continue @@ -81,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Currencylayer } + +func (s Scanner) Description() string { + return "An API for converting and exchanging currencies. API keys can read currency data." +} diff --git a/pkg/detectors/currencyscoop/currencyscoop.go b/pkg/detectors/currencyscoop/currencyscoop.go index 1ae2615144c5..539371b4ac08 100644 --- a/pkg/detectors/currencyscoop/currencyscoop.go +++ b/pkg/detectors/currencyscoop/currencyscoop.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CurrencyScoop } + +func (s Scanner) Description() string { + return "CurrencyScoop is a currency data service providing real-time and historical exchange rates. CurrencyScoop API keys can be used to access currency data." +} diff --git a/pkg/detectors/currentsapi/currentsapi.go b/pkg/detectors/currentsapi/currentsapi.go index 093d6c35187b..782eb7c22e3d 100644 --- a/pkg/detectors/currentsapi/currentsapi.go +++ b/pkg/detectors/currentsapi/currentsapi.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CurrentsAPI } + +func (s Scanner) Description() string { + return "CurrentsAPI provides access to the latest news and trends. CurrentsAPI keys can be used to authenticate requests and retrieve news data." +} diff --git a/pkg/detectors/customerguru/customerguru.go b/pkg/detectors/customerguru/customerguru.go index 8c6c3e135425..1a6d87ad3ab0 100644 --- a/pkg/detectors/customerguru/customerguru.go +++ b/pkg/detectors/customerguru/customerguru.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CustomerGuru } + +func (s Scanner) Description() string { + return "CustomerGuru is a feedback platform used to collect and analyze customer feedback. API keys and secrets can be used to access and manage this feedback data." +} diff --git a/pkg/detectors/customerio/customerio.go b/pkg/detectors/customerio/customerio.go index 13804cae2a11..349d4c01c666 100644 --- a/pkg/detectors/customerio/customerio.go +++ b/pkg/detectors/customerio/customerio.go @@ -89,3 +89,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_CustomerIO } + +func (s Scanner) Description() string { + return "CustomerIO is a platform for sending automated emails, push notifications, and SMS messages. CustomerIO API keys can be used to interact with the CustomerIO service to manage customer data and trigger events." +} diff --git a/pkg/detectors/d7network/d7network.go b/pkg/detectors/d7network/d7network.go index 2cdfa8c406ba..562d6ee7f10e 100644 --- a/pkg/detectors/d7network/d7network.go +++ b/pkg/detectors/d7network/d7network.go @@ -67,3 +67,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_D7Network } + +func (s Scanner) Description() string { + return "D7Network provides messaging services through their API. The credentials can be used to send SMS and other types of messages via their platform." +} diff --git a/pkg/detectors/dailyco/dailyco.go b/pkg/detectors/dailyco/dailyco.go index 54bd589ddeeb..26b458fad7ff 100644 --- a/pkg/detectors/dailyco/dailyco.go +++ b/pkg/detectors/dailyco/dailyco.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_DailyCO } + +func (s Scanner) Description() string { + return "DailyCO is a video calling service that provides APIs to create and manage video calls. The API keys can be used to access and control these video call services." +} diff --git a/pkg/detectors/dandelion/dandelion.go b/pkg/detectors/dandelion/dandelion.go index 32878c5dc3af..6d9b804e23c3 100644 --- a/pkg/detectors/dandelion/dandelion.go +++ b/pkg/detectors/dandelion/dandelion.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Dandelion } + +func (s Scanner) Description() string { + return "Dandelion is a text analysis service. Dandelion tokens can be used to access and analyze text data using their APIs." +} diff --git a/pkg/detectors/dareboost/dareboost.go b/pkg/detectors/dareboost/dareboost.go index 02fdf791e66e..0f91614002ce 100644 --- a/pkg/detectors/dareboost/dareboost.go +++ b/pkg/detectors/dareboost/dareboost.go @@ -85,3 +85,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Dareboost } + +func (s Scanner) Description() string { + return "Dareboost is a website performance monitoring tool. Dareboost API keys can be used to access and modify performance monitoring configurations." +} diff --git a/pkg/detectors/databox/databox.go b/pkg/detectors/databox/databox.go index e6e250e82d31..1b9a286778bf 100644 --- a/pkg/detectors/databox/databox.go +++ b/pkg/detectors/databox/databox.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Databox } + +func (s Scanner) Description() string { + return "Databox is a business analytics platform that pulls all your data into one place, so you can track performance and discover insights in real-time. Databox API keys can be used to access and modify data within your Databox account." +} diff --git a/pkg/detectors/databrickstoken/databrickstoken.go b/pkg/detectors/databrickstoken/databrickstoken.go index 43bfd7016651..44645491c69e 100644 --- a/pkg/detectors/databrickstoken/databrickstoken.go +++ b/pkg/detectors/databrickstoken/databrickstoken.go @@ -88,3 +88,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_DatabricksToken } + +func (s Scanner) Description() string { + return "Databricks is a cloud data platform. Databricks tokens can be used to authenticate and interact with Databricks services and APIs." +} diff --git a/pkg/detectors/datadogtoken/datadogtoken.go b/pkg/detectors/datadogtoken/datadogtoken.go index b0a1c07d350e..fe76087498e0 100644 --- a/pkg/detectors/datadogtoken/datadogtoken.go +++ b/pkg/detectors/datadogtoken/datadogtoken.go @@ -196,3 +196,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_DatadogToken } + +func (s Scanner) Description() string { + return "Datadog is a monitoring and security platform for cloud applications. Datadog API and Application keys can be used to access and manage data and configurations within Datadog." +} diff --git a/pkg/detectors/datagov/datagov.go b/pkg/detectors/datagov/datagov.go index eb927a30fe10..bbbee5dcc850 100644 --- a/pkg/detectors/datagov/datagov.go +++ b/pkg/detectors/datagov/datagov.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_DataGov } + +func (s Scanner) Description() string { + return "Data.gov provides access to datasets generated by the U.S. government. The API key can be used to access and retrieve data from these datasets." +} diff --git a/pkg/detectors/debounce/debounce.go b/pkg/detectors/debounce/debounce.go index dffcbaf7f282..0747cea765eb 100644 --- a/pkg/detectors/debounce/debounce.go +++ b/pkg/detectors/debounce/debounce.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Debounce } + +func (s Scanner) Description() string { + return "Debounce is an email validation service that helps in reducing bounce rates by verifying email addresses. Debounce API keys can be used to access and validate email addresses." +} diff --git a/pkg/detectors/deepai/deepai.go b/pkg/detectors/deepai/deepai.go index 335e77847e3a..3a76b9ee1c23 100644 --- a/pkg/detectors/deepai/deepai.go +++ b/pkg/detectors/deepai/deepai.go @@ -85,3 +85,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_DeepAI } + +func (s Scanner) Description() string { + return "DeepAI is an AI service provider offering various machine learning APIs. DeepAI API keys can be used to access and utilize these services." +} diff --git a/pkg/detectors/deepgram/deepgram.go b/pkg/detectors/deepgram/deepgram.go index b0f42c8523e6..517a14e14c41 100644 --- a/pkg/detectors/deepgram/deepgram.go +++ b/pkg/detectors/deepgram/deepgram.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Deepgram } + +func (s Scanner) Description() string { + return "Deepgram is an automatic speech recognition (ASR) service. Deepgram API keys can be used to access and utilize Deepgram's ASR capabilities." +} diff --git a/pkg/detectors/delighted/delighted.go b/pkg/detectors/delighted/delighted.go index bcc49126704a..c58d1b4ce3f4 100644 --- a/pkg/detectors/delighted/delighted.go +++ b/pkg/detectors/delighted/delighted.go @@ -79,3 +79,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Delighted } + +func (s Scanner) Description() string { + return "Delighted is a customer feedback platform. Delighted API keys can be used to access and manage customer feedback data." +} diff --git a/pkg/detectors/demio/demio.go b/pkg/detectors/demio/demio.go index 32aadf9a30c3..ef9206af2ece 100644 --- a/pkg/detectors/demio/demio.go +++ b/pkg/detectors/demio/demio.go @@ -45,7 +45,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result } resMatch := strings.TrimSpace(match[1]) for _, idmatch := range idMatches { - if len(match) != 2 { + if len(idmatch) != 2 { continue } resIdMatch := strings.TrimSpace(idmatch[1]) @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Demio } + +func (s Scanner) Description() string { + return "Demio is a webinar platform that allows users to host, promote, and analyze webinars. Demio API keys can be used to access and manage webinar data." +} diff --git a/pkg/detectors/deno/denodeploy.go b/pkg/detectors/deno/denodeploy.go index f8c1a5982a5e..3ea648d1dc0d 100644 --- a/pkg/detectors/deno/denodeploy.go +++ b/pkg/detectors/deno/denodeploy.go @@ -101,3 +101,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_DenoDeploy } + +func (s Scanner) Description() string { + return "DenoDeploy is a cloud service for deploying JavaScript and TypeScript applications. DenoDeploy tokens can be used to access and manage these deployments." +} diff --git a/pkg/detectors/deputy/deputy.go b/pkg/detectors/deputy/deputy.go index dc1635151009..f27fcdfd4ab2 100644 --- a/pkg/detectors/deputy/deputy.go +++ b/pkg/detectors/deputy/deputy.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Deputy } + +func (s Scanner) Description() string { + return "Deputy is a workforce management software that provides various tools for scheduling, time tracking, and communication. Deputy API keys can be used to access and modify data within the Deputy platform." +} diff --git a/pkg/detectors/detectify/detectify.go b/pkg/detectors/detectify/detectify.go index 8824e16cf6b0..41742c5a7635 100644 --- a/pkg/detectors/detectify/detectify.go +++ b/pkg/detectors/detectify/detectify.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Detectify } + +func (s Scanner) Description() string { + return "Detectify is a web application security scanner that helps identify vulnerabilities in web applications. Detectify API keys can be used to access and manage security scans and findings." +} diff --git a/pkg/detectors/detectlanguage/detectlanguage.go b/pkg/detectors/detectlanguage/detectlanguage.go index 214c75743ec8..0784174c5bcc 100644 --- a/pkg/detectors/detectlanguage/detectlanguage.go +++ b/pkg/detectors/detectlanguage/detectlanguage.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_DetectLanguage } + +func (s Scanner) Description() string { + return "DetectLanguage is a language detection API service. The API key can be used to access the language detection functionalities provided by DetectLanguage." +} diff --git a/pkg/detectors/detectors.go b/pkg/detectors/detectors.go index d3cf2f98050a..71fc8514f452 100644 --- a/pkg/detectors/detectors.go +++ b/pkg/detectors/detectors.go @@ -24,6 +24,8 @@ type Detector interface { Keywords() []string // Type returns the DetectorType number from detectors.proto for the given detector. Type() detectorspb.DetectorType + // Description returns a description for the result being detected + Description() string } // CustomResultsCleaner is an optional interface that a detector can implement to customize how its generated results diff --git a/pkg/detectors/dfuse/dfuse.go b/pkg/detectors/dfuse/dfuse.go index 08777a70f5d9..2e4f87a4b72f 100644 --- a/pkg/detectors/dfuse/dfuse.go +++ b/pkg/detectors/dfuse/dfuse.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Dfuse } + +func (s Scanner) Description() string { + return "Dfuse is a blockchain API company providing access to blockchain data and infrastructure. Dfuse API keys can be used to access and interact with blockchain data." +} diff --git a/pkg/detectors/diffbot/diffbot.go b/pkg/detectors/diffbot/diffbot.go index e4e7197c5c69..bfbea207ade2 100644 --- a/pkg/detectors/diffbot/diffbot.go +++ b/pkg/detectors/diffbot/diffbot.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Diffbot } + +func (s Scanner) Description() string { + return "Diffbot is a service that provides APIs for extracting data from web pages. Diffbot API tokens can be used to access these services and extract data from web content." +} diff --git a/pkg/detectors/diggernaut/diggernaut.go b/pkg/detectors/diggernaut/diggernaut.go index 221cd5c25523..9cc3324e0010 100644 --- a/pkg/detectors/diggernaut/diggernaut.go +++ b/pkg/detectors/diggernaut/diggernaut.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Diggernaut } + +func (s Scanner) Description() string { + return "Diggernaut is a web scraping service. Diggernaut API keys can be used to access and manage scraping projects and data." +} diff --git a/pkg/detectors/digitaloceantoken/digitaloceantoken.go b/pkg/detectors/digitaloceantoken/digitaloceantoken.go index e866c71d9027..2d0877955d21 100644 --- a/pkg/detectors/digitaloceantoken/digitaloceantoken.go +++ b/pkg/detectors/digitaloceantoken/digitaloceantoken.go @@ -3,10 +3,11 @@ package digitaloceantoken import ( "context" "fmt" - regexp "github.com/wasilibs/go-re2" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -70,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_DigitalOceanToken } + +func (s Scanner) Description() string { + return "DigitalOcean is a cloud infrastructure provider offering cloud services to help deploy, manage, and scale applications. DigitalOcean tokens can be used to access and manage these services." +} diff --git a/pkg/detectors/digitaloceanv2/digitaloceanv2.go b/pkg/detectors/digitaloceanv2/digitaloceanv2.go index 81e3610c024e..c44c723e6f6d 100644 --- a/pkg/detectors/digitaloceanv2/digitaloceanv2.go +++ b/pkg/detectors/digitaloceanv2/digitaloceanv2.go @@ -98,3 +98,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_DigitalOceanV2 } + +func (s Scanner) Description() string { + return "DigitalOcean is a cloud service provider offering scalable compute and storage solutions. DigitalOcean API keys can be used to access and manage these resources." +} diff --git a/pkg/detectors/discordbottoken/discordbottoken.go b/pkg/detectors/discordbottoken/discordbottoken.go index fd6384160046..a7dcc330c8d5 100644 --- a/pkg/detectors/discordbottoken/discordbottoken.go +++ b/pkg/detectors/discordbottoken/discordbottoken.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_DiscordBotToken } + +func (s Scanner) Description() string { + return "Discord bot tokens are used to authenticate and control Discord bots. These tokens can be used to interact with the Discord API to perform various bot-related operations." +} diff --git a/pkg/detectors/discordwebhook/discordwebhook.go b/pkg/detectors/discordwebhook/discordwebhook.go index c01e5677b18e..8772199ad43f 100644 --- a/pkg/detectors/discordwebhook/discordwebhook.go +++ b/pkg/detectors/discordwebhook/discordwebhook.go @@ -66,3 +66,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_DiscordWebhook } + +func (s Scanner) Description() string { + return "Discord webhooks are used to send messages to a Discord channel. They can be used to automate messages and send data updates." +} diff --git a/pkg/detectors/disqus/disqus.go b/pkg/detectors/disqus/disqus.go index e8635f3b00e6..286f9435a0d4 100644 --- a/pkg/detectors/disqus/disqus.go +++ b/pkg/detectors/disqus/disqus.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Disqus } + +func (s Scanner) Description() string { + return "Disqus is a networked community platform used for web comments and discussions. Disqus API keys can be used to access and manage comments and user data." +} diff --git a/pkg/detectors/ditto/ditto.go b/pkg/detectors/ditto/ditto.go index c2def8852b33..c286935cc3ad 100644 --- a/pkg/detectors/ditto/ditto.go +++ b/pkg/detectors/ditto/ditto.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Ditto } + +func (s Scanner) Description() string { + return "Ditto is a service that provides API access to various word variants. Ditto API keys can be used to access this service and retrieve word variants." +} diff --git a/pkg/detectors/dnscheck/dnscheck.go b/pkg/detectors/dnscheck/dnscheck.go index fcb38ce54f3c..8b8eb60011f6 100644 --- a/pkg/detectors/dnscheck/dnscheck.go +++ b/pkg/detectors/dnscheck/dnscheck.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Dnscheck } + +func (s Scanner) Description() string { + return "Dnscheck is a service used to monitor DNS records. The API keys can be used to access and manage DNS monitoring configurations." +} diff --git a/pkg/detectors/dockerhub/v1/dockerhub.go b/pkg/detectors/dockerhub/v1/dockerhub.go index 317783d57df7..0ae2179bfbb8 100644 --- a/pkg/detectors/dockerhub/v1/dockerhub.go +++ b/pkg/detectors/dockerhub/v1/dockerhub.go @@ -178,3 +178,7 @@ type mfaRequiredResponse struct { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Dockerhub } + +func (s Scanner) Description() string { + return "Docker is a platform used to develop, ship, and run applications. Docker access tokens can be used to authenticate and interact with Docker services." +} diff --git a/pkg/detectors/dockerhub/v2/dockerhub.go b/pkg/detectors/dockerhub/v2/dockerhub.go index 6f183d187049..7e3afcf37ce8 100644 --- a/pkg/detectors/dockerhub/v2/dockerhub.go +++ b/pkg/detectors/dockerhub/v2/dockerhub.go @@ -178,3 +178,7 @@ type mfaRequiredResponse struct { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Dockerhub } + +func (s Scanner) Description() string { + return "Dockerhub is a cloud-based repository in which Docker users and partners create, test, store and distribute container images. Dockerhub personal access tokens (PATs) can be used to access and manage these container images." +} diff --git a/pkg/detectors/docparser/docparser.go b/pkg/detectors/docparser/docparser.go index 96cb6dc0567a..8951adc58e2d 100644 --- a/pkg/detectors/docparser/docparser.go +++ b/pkg/detectors/docparser/docparser.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Docparser } + +func (s Scanner) Description() string { + return "Docparser is a document processing service that extracts data from PDFs and scanned documents. Docparser API keys can be used to access and manipulate this data." +} diff --git a/pkg/detectors/documo/documo.go b/pkg/detectors/documo/documo.go index d24fd223adb4..9efc80200772 100644 --- a/pkg/detectors/documo/documo.go +++ b/pkg/detectors/documo/documo.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Documo } + +func (s Scanner) Description() string { + return "A service for creating and modifying documents. API keys can create read update and delete documents." +} diff --git a/pkg/detectors/docusign/docusign.go b/pkg/detectors/docusign/docusign.go index 7c25d9272b3c..9243d58160d1 100644 --- a/pkg/detectors/docusign/docusign.go +++ b/pkg/detectors/docusign/docusign.go @@ -107,3 +107,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Docusign } + +func (s Scanner) Description() string { + return "Docusign is an electronic signature and digital transaction management service. Docusign credentials can be used to access and manage digital transactions and documents." +} diff --git a/pkg/detectors/doppler/doppler.go b/pkg/detectors/doppler/doppler.go index 3bca3506e739..162a38a66090 100644 --- a/pkg/detectors/doppler/doppler.go +++ b/pkg/detectors/doppler/doppler.go @@ -101,3 +101,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Doppler } + +func (s Scanner) Description() string { + return "Doppler is a secrets management platform that allows teams to manage and secure environment variables and secrets. Doppler tokens can be used to access and manage these secrets." +} diff --git a/pkg/detectors/dotmailer/dotmailer.go b/pkg/detectors/dotmailer/dotmailer.go index a5c81e432657..307e9eeec6ee 100644 --- a/pkg/detectors/dotmailer/dotmailer.go +++ b/pkg/detectors/dotmailer/dotmailer.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Dotmailer } + +func (s Scanner) Description() string { + return "Dotmailer is an email marketing automation platform. API keys can be used to access and manage email campaigns and related data." +} diff --git a/pkg/detectors/dovico/dovico.go b/pkg/detectors/dovico/dovico.go index 05b1290c38e5..5434f672bdaf 100644 --- a/pkg/detectors/dovico/dovico.go +++ b/pkg/detectors/dovico/dovico.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Dovico } + +func (s Scanner) Description() string { + return "Dovico is a time tracking and project management service. Dovico keys can be used to access and manage time tracking and project data." +} diff --git a/pkg/detectors/dronahq/dronahq.go b/pkg/detectors/dronahq/dronahq.go index b2c813bcaf0d..f7c3590c57e0 100644 --- a/pkg/detectors/dronahq/dronahq.go +++ b/pkg/detectors/dronahq/dronahq.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_DronaHQ } + +func (s Scanner) Description() string { + return "DronaHQ is a platform for building internal tools and applications. DronaHQ keys can be used to access and manage these tools and applications." +} diff --git a/pkg/detectors/droneci/droneci.go b/pkg/detectors/droneci/droneci.go index 99fb8ece756d..30a9c12cd257 100644 --- a/pkg/detectors/droneci/droneci.go +++ b/pkg/detectors/droneci/droneci.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_DroneCI } + +func (s Scanner) Description() string { + return "DroneCI is a continuous integration service that automates the testing and deployment of applications. DroneCI tokens can be used to access and control CI/CD pipelines." +} diff --git a/pkg/detectors/dropbox/dropbox.go b/pkg/detectors/dropbox/dropbox.go index e7f593fc1f6a..ed8d332ca75d 100644 --- a/pkg/detectors/dropbox/dropbox.go +++ b/pkg/detectors/dropbox/dropbox.go @@ -35,7 +35,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result for _, match := range matches { - s := detectors.Result{ + result := detectors.Result{ DetectorType: detectorspb.DetectorType_Dropbox, Raw: []byte(match[1]), } @@ -59,12 +59,12 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result // 400 is bad (malformed) // 403 bad scope if res.StatusCode == http.StatusOK { - s.Verified = true + result.Verified = true } } } - results = append(results, s) + results = append(results, result) } return @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Dropbox } + +func (s Scanner) Description() string { + return "Dropbox is a file hosting service that offers cloud storage, file synchronization, personal cloud, and client software. Dropbox API keys can be used to access and manage files and folders in a Dropbox account." +} diff --git a/pkg/detectors/duply/duply.go b/pkg/detectors/duply/duply.go index 1ae732aa00e7..5ca3b4145f1d 100644 --- a/pkg/detectors/duply/duply.go +++ b/pkg/detectors/duply/duply.go @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Duply } + +func (s Scanner) Description() string { + return "An API for generating images. API keys can fetch and create images." +} diff --git a/pkg/detectors/dwolla/dwolla.go b/pkg/detectors/dwolla/dwolla.go index e558162f4b3f..97a778b3d695 100644 --- a/pkg/detectors/dwolla/dwolla.go +++ b/pkg/detectors/dwolla/dwolla.go @@ -92,3 +92,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Dwolla } + +func (s Scanner) Description() string { + return "Dwolla is a payment services provider that allows businesses to send, receive, and facilitate payments. Dwolla API keys can be used to access and manage these payment services." +} diff --git a/pkg/detectors/dynalist/dynalist.go b/pkg/detectors/dynalist/dynalist.go index 03af2edc191b..21ab95c2706f 100644 --- a/pkg/detectors/dynalist/dynalist.go +++ b/pkg/detectors/dynalist/dynalist.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Dynalist } + +func (s Scanner) Description() string { + return "Dynalist is a web-based outlining app that allows users to create and manage hierarchical lists. Dynalist API tokens can be used to access and manipulate these lists programmatically." +} diff --git a/pkg/detectors/dyspatch/dyspatch.go b/pkg/detectors/dyspatch/dyspatch.go index b51ea74493e1..f3d63417e993 100644 --- a/pkg/detectors/dyspatch/dyspatch.go +++ b/pkg/detectors/dyspatch/dyspatch.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Dyspatch } + +func (s Scanner) Description() string { + return "Dyspatch is a platform for managing and sending transactional emails. Dyspatch API keys can be used to access and manage email templates and sending operations." +} diff --git a/pkg/detectors/eagleeyenetworks/eagleeyenetworks.go b/pkg/detectors/eagleeyenetworks/eagleeyenetworks.go index 5a8de5597e9b..a7343a9e8525 100644 --- a/pkg/detectors/eagleeyenetworks/eagleeyenetworks.go +++ b/pkg/detectors/eagleeyenetworks/eagleeyenetworks.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_EagleEyeNetworks } + +func (s Scanner) Description() string { + return "Eagle Eye Networks provides cloud-based video surveillance solutions. The credentials can be used to access and manage surveillance data." +} diff --git a/pkg/detectors/easyinsight/easyinsight.go b/pkg/detectors/easyinsight/easyinsight.go index fdaf3858f98b..60ad7f5640f4 100644 --- a/pkg/detectors/easyinsight/easyinsight.go +++ b/pkg/detectors/easyinsight/easyinsight.go @@ -89,3 +89,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_EasyInsight } + +func (s Scanner) Description() string { + return "EasyInsight is a business intelligence tool that provides data visualization and reporting. EasyInsight API keys can be used to access and manage data within the platform." +} diff --git a/pkg/detectors/ecostruxureit/ecostruxureit.go b/pkg/detectors/ecostruxureit/ecostruxureit.go index a52deecf3aba..19f617b6430d 100644 --- a/pkg/detectors/ecostruxureit/ecostruxureit.go +++ b/pkg/detectors/ecostruxureit/ecostruxureit.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_EcoStruxureIT } + +func (s Scanner) Description() string { + return "EcoStruxure IT is a cloud-based platform that provides IT infrastructure management. EcoStruxure IT API keys can be used to access and manage IT infrastructure data and operations." +} diff --git a/pkg/detectors/edamam/edamam.go b/pkg/detectors/edamam/edamam.go index 4a836da93328..cd89dedd038c 100644 --- a/pkg/detectors/edamam/edamam.go +++ b/pkg/detectors/edamam/edamam.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Edamam } + +func (s Scanner) Description() string { + return "Edamam provides nutrition analysis and diet recommendations. Edamam API keys can be used to access and modify nutrition data and perform diet analysis." +} diff --git a/pkg/detectors/edenai/edenai.go b/pkg/detectors/edenai/edenai.go index 2d1a2d5c7099..028ddfba3d69 100644 --- a/pkg/detectors/edenai/edenai.go +++ b/pkg/detectors/edenai/edenai.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_EdenAI } + +func (s Scanner) Description() string { + return "EdenAI provides a unified API to access multiple AI engines. EdenAI API keys can be used to access and utilize these AI services." +} diff --git a/pkg/detectors/eightxeight/eightxeight.go b/pkg/detectors/eightxeight/eightxeight.go index b7020a5e4f7b..b387d172c867 100644 --- a/pkg/detectors/eightxeight/eightxeight.go +++ b/pkg/detectors/eightxeight/eightxeight.go @@ -88,3 +88,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_EightxEight } + +func (s Scanner) Description() string { + return "8x8 is a provider of cloud-based communication services including voice, video, chat, and contact center solutions." +} diff --git a/pkg/detectors/elasticemail/elasticemail.go b/pkg/detectors/elasticemail/elasticemail.go index 1a287cef0f94..63de25379097 100644 --- a/pkg/detectors/elasticemail/elasticemail.go +++ b/pkg/detectors/elasticemail/elasticemail.go @@ -77,3 +77,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ElasticEmail } + +func (s Scanner) Description() string { + return "ElasticEmail is an email marketing service. ElasticEmail API keys can be used to send emails, manage contacts, and access other features of the service." +} diff --git a/pkg/detectors/elevenlabs/v1/elevenlabs.go b/pkg/detectors/elevenlabs/v1/elevenlabs.go index 5b84c1963708..0beb2346fd01 100644 --- a/pkg/detectors/elevenlabs/v1/elevenlabs.go +++ b/pkg/detectors/elevenlabs/v1/elevenlabs.go @@ -117,3 +117,7 @@ func verifyMatch(ctx context.Context, client *http.Client, token string) (bool, func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ElevenLabs } + +func (s Scanner) Description() string { + return "Elevenlabs is an AI-driven voice synthesis platform. Elevenlabs API keys can be used to access and manipulate voice synthesis features and services." +} diff --git a/pkg/detectors/elevenlabs/v2/elevenlabs.go b/pkg/detectors/elevenlabs/v2/elevenlabs.go index 37e129d6c8c1..ed74d06296bd 100644 --- a/pkg/detectors/elevenlabs/v2/elevenlabs.go +++ b/pkg/detectors/elevenlabs/v2/elevenlabs.go @@ -79,6 +79,10 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result return } +func (s Scanner) Description() string { + return "ElevenLabs is a service that provides API keys for accessing their voice synthesis and other AI-powered tools. These keys can be used to interact with ElevenLabs' services programmatically." +} + func verifyMatch(ctx context.Context, client *http.Client, token string) (bool, *UserRes, error) { req, err := http.NewRequestWithContext(ctx, http.MethodGet, "https://api.elevenlabs.io/v1/user", nil) if err != nil { diff --git a/pkg/detectors/enablex/enablex.go b/pkg/detectors/enablex/enablex.go index bba8301db459..1895bc75e88a 100644 --- a/pkg/detectors/enablex/enablex.go +++ b/pkg/detectors/enablex/enablex.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Enablex } + +func (s Scanner) Description() string { + return "Enablex is a communication platform offering voice, video, and messaging APIs. Enablex credentials can be used to access and manage communication services provided by Enablex." +} diff --git a/pkg/detectors/endorlabs/endorlabs.go b/pkg/detectors/endorlabs/endorlabs.go index 5d597dfe7d4f..6fccaab24be5 100644 --- a/pkg/detectors/endorlabs/endorlabs.go +++ b/pkg/detectors/endorlabs/endorlabs.go @@ -112,3 +112,7 @@ func verifyMatch(ctx context.Context, client *http.Client, key, secret string) ( func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_EndorLabs } + +func (s Scanner) Description() string { + return "Endorlabs provides API keys that can be used to authenticate and interact with its services. These keys should be kept confidential to prevent unauthorized access." +} diff --git a/pkg/detectors/enigma/enigma.go b/pkg/detectors/enigma/enigma.go index c58463cb0351..fa39c4691bad 100644 --- a/pkg/detectors/enigma/enigma.go +++ b/pkg/detectors/enigma/enigma.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Enigma } + +func (s Scanner) Description() string { + return "Enigma is a data intelligence company that provides comprehensive data about businesses. Enigma API keys can be used to access and interact with this data." +} diff --git a/pkg/detectors/envoyapikey/envoyapikey.go b/pkg/detectors/envoyapikey/envoyapikey.go index 9279344ae5cd..af4c287d676d 100644 --- a/pkg/detectors/envoyapikey/envoyapikey.go +++ b/pkg/detectors/envoyapikey/envoyapikey.go @@ -77,3 +77,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_EnvoyApiKey } + +func (s Scanner) Description() string { + return "Envoy is a cloud-based platform that provides visitor management solutions. Envoy API keys can be used to access and manage visitor data and other resources within the Envoy platform." +} diff --git a/pkg/detectors/eraser/eraser.go b/pkg/detectors/eraser/eraser.go index f170f295cfa0..cc3d383c43ef 100644 --- a/pkg/detectors/eraser/eraser.go +++ b/pkg/detectors/eraser/eraser.go @@ -109,3 +109,7 @@ func verifyMatch(ctx context.Context, client *http.Client, token string) (bool, func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Eraser } + +func (s Scanner) Description() string { + return "Eraser is a tool used for generating diagrams from DSL. Eraser API tokens can be used to authenticate and interact with the Eraser API." +} diff --git a/pkg/detectors/etherscan/etherscan.go b/pkg/detectors/etherscan/etherscan.go index 11e375fa94a8..2fada791c0e5 100644 --- a/pkg/detectors/etherscan/etherscan.go +++ b/pkg/detectors/etherscan/etherscan.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Etherscan } + +func (s Scanner) Description() string { + return "Etherscan is a Block Explorer and Analytics Platform for Ethereum, a decentralized smart contracts platform. Etherscan API keys can be used to access various functionalities provided by Etherscan." +} diff --git a/pkg/detectors/ethplorer/ethplorer.go b/pkg/detectors/ethplorer/ethplorer.go index 5731ae2464e1..8b6f4efe7614 100644 --- a/pkg/detectors/ethplorer/ethplorer.go +++ b/pkg/detectors/ethplorer/ethplorer.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Ethplorer } + +func (s Scanner) Description() string { + return "Ethplorer API keys can be used to interact with the Ethplorer service, which provides access to Ethereum blockchain data and analytics." +} diff --git a/pkg/detectors/eventbrite/eventbrite.go b/pkg/detectors/eventbrite/eventbrite.go index dfbfbdd67ed0..6242fb7c7c5f 100644 --- a/pkg/detectors/eventbrite/eventbrite.go +++ b/pkg/detectors/eventbrite/eventbrite.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Eventbrite } + +func (s Scanner) Description() string { + return "Eventbrite is an event management and ticketing website. Eventbrite API keys can be used to access and manage event data." +} diff --git a/pkg/detectors/everhour/everhour.go b/pkg/detectors/everhour/everhour.go index 4a5e8e2d06ad..7406698e168a 100644 --- a/pkg/detectors/everhour/everhour.go +++ b/pkg/detectors/everhour/everhour.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Everhour } + +func (s Scanner) Description() string { + return "Everhour is a time tracking software for teams. Everhour API keys can be used to access and manage project and time tracking data." +} diff --git a/pkg/detectors/exchangerateapi/exchangerateapi.go b/pkg/detectors/exchangerateapi/exchangerateapi.go index 7598278585e6..feceda9488dc 100644 --- a/pkg/detectors/exchangerateapi/exchangerateapi.go +++ b/pkg/detectors/exchangerateapi/exchangerateapi.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ExchangeRateAPI } + +func (s Scanner) Description() string { + return "An API key for determining the exchange rate of currencies" +} diff --git a/pkg/detectors/exchangeratesapi/exchangeratesapi.go b/pkg/detectors/exchangeratesapi/exchangeratesapi.go index 8c3ae9565213..0da20d32c9da 100644 --- a/pkg/detectors/exchangeratesapi/exchangeratesapi.go +++ b/pkg/detectors/exchangeratesapi/exchangeratesapi.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ExchangeRatesAPI } + +func (s Scanner) Description() string { + return "ExchangeRatesAPI provides exchange rate data for various currencies. The API key can be used to access and retrieve this data." +} diff --git a/pkg/detectors/exportsdk/exportsdk.go b/pkg/detectors/exportsdk/exportsdk.go index 70e65438bdbe..7319cd8fe50b 100644 --- a/pkg/detectors/exportsdk/exportsdk.go +++ b/pkg/detectors/exportsdk/exportsdk.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ExportSDK } + +func (s Scanner) Description() string { + return "ExportSDK is a service used for exporting data and generating PDFs. ExportSDK keys can be used to authenticate API requests and generate documents." +} diff --git a/pkg/detectors/extractorapi/extractorapi.go b/pkg/detectors/extractorapi/extractorapi.go index b00e37390747..796ac4d61df6 100644 --- a/pkg/detectors/extractorapi/extractorapi.go +++ b/pkg/detectors/extractorapi/extractorapi.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ExtractorAPI } + +func (s Scanner) Description() string { + return "ExtractorAPI is a service for extracting data from various sources. ExtractorAPI keys can be used to access and extract data from these sources." +} diff --git a/pkg/detectors/facebookoauth/facebookoauth.go b/pkg/detectors/facebookoauth/facebookoauth.go index 9985f3f7a684..2007db02c3e0 100644 --- a/pkg/detectors/facebookoauth/facebookoauth.go +++ b/pkg/detectors/facebookoauth/facebookoauth.go @@ -85,3 +85,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FacebookOAuth } + +func (s Scanner) Description() string { + return "Facebook OAuth tokens are used to authenticate users and provide access to Facebook's API services." +} diff --git a/pkg/detectors/faceplusplus/faceplusplus.go b/pkg/detectors/faceplusplus/faceplusplus.go index a88d55f33d63..9fd79da8850e 100644 --- a/pkg/detectors/faceplusplus/faceplusplus.go +++ b/pkg/detectors/faceplusplus/faceplusplus.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FacePlusPlus } + +func (s Scanner) Description() string { + return "Face++ is a facial recognition service that provides APIs for detecting and analyzing faces. Face++ API keys and secrets can be used to access and manipulate these services." +} diff --git a/pkg/detectors/falsepositives_test.go b/pkg/detectors/falsepositives_test.go index d76d63fe122b..e022a539f124 100644 --- a/pkg/detectors/falsepositives_test.go +++ b/pkg/detectors/falsepositives_test.go @@ -29,6 +29,8 @@ func (d fakeDetector) Type() detectorspb.DetectorType { return detectorspb.DetectorType(0) } +func (f fakeDetector) Description() string { return "" } + func (d customFalsePositiveChecker) IsFalsePositive(result Result) (bool, string) { return IsKnownFalsePositive(string(result.Raw), []FalsePositive{"a specific magic string"}, false) } diff --git a/pkg/detectors/fastforex/fastforex.go b/pkg/detectors/fastforex/fastforex.go index f4373dc2c512..570bf7121f2e 100644 --- a/pkg/detectors/fastforex/fastforex.go +++ b/pkg/detectors/fastforex/fastforex.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FastForex } + +func (s Scanner) Description() string { + return "FastForex provides foreign exchange rate data. FastForex API keys can be used to access and retrieve this data." +} diff --git a/pkg/detectors/fastlypersonaltoken/fastlypersonaltoken.go b/pkg/detectors/fastlypersonaltoken/fastlypersonaltoken.go index 8981db540044..11aaacd2adc7 100644 --- a/pkg/detectors/fastlypersonaltoken/fastlypersonaltoken.go +++ b/pkg/detectors/fastlypersonaltoken/fastlypersonaltoken.go @@ -96,3 +96,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FastlyPersonalToken } + +func (s Scanner) Description() string { + return "Fastly is a content delivery network (CDN) and cloud service provider. Fastly personal tokens can be used to authenticate API requests to Fastly services." +} diff --git a/pkg/detectors/feedier/feedier.go b/pkg/detectors/feedier/feedier.go index 01a58d975cc6..ff67eb413ad6 100644 --- a/pkg/detectors/feedier/feedier.go +++ b/pkg/detectors/feedier/feedier.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Feedier } + +func (s Scanner) Description() string { + return "Feedier is a feedback management platform that allows businesses to collect and analyze customer feedback. Feedier API keys can be used to access and manage feedback data." +} diff --git a/pkg/detectors/fetchrss/fetchrss.go b/pkg/detectors/fetchrss/fetchrss.go index 38b036dea0c0..64f9af85bbea 100644 --- a/pkg/detectors/fetchrss/fetchrss.go +++ b/pkg/detectors/fetchrss/fetchrss.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Fetchrss } + +func (s Scanner) Description() string { + return "FetchRSS is a service used to convert web content into RSS feeds. FetchRSS API keys can be used to manage and access these feeds." +} diff --git a/pkg/detectors/fibery/fibery.go b/pkg/detectors/fibery/fibery.go index 477c0987af34..8fdc1093b8b6 100644 --- a/pkg/detectors/fibery/fibery.go +++ b/pkg/detectors/fibery/fibery.go @@ -34,6 +34,11 @@ func (s Scanner) Keywords() []string { return []string{"fibery"} } +// Description returns a description for the result being detected +func (s Scanner) Description() string { + return "Fibery is a work management platform that combines various tools for project management, knowledge management, and software development. Fibery API tokens can be used to access and modify data within a Fibery workspace." +} + // FromData will find and optionally verify Fibery secrets in a given set of bytes. func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (results []detectors.Result, err error) { dataStr := string(data) diff --git a/pkg/detectors/figmapersonalaccesstoken/v1/figmapersonalaccesstoken.go b/pkg/detectors/figmapersonalaccesstoken/v1/figmapersonalaccesstoken.go index 4546e1705602..898163ef9828 100644 --- a/pkg/detectors/figmapersonalaccesstoken/v1/figmapersonalaccesstoken.go +++ b/pkg/detectors/figmapersonalaccesstoken/v1/figmapersonalaccesstoken.go @@ -89,3 +89,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FigmaPersonalAccessToken } + +func (s Scanner) Description() string { + return "Figma is a web-based design tool. Personal Access Tokens can be used to access and modify design files and other resources." +} diff --git a/pkg/detectors/figmapersonalaccesstoken/v2/figmapersonalaccesstoken_v2.go b/pkg/detectors/figmapersonalaccesstoken/v2/figmapersonalaccesstoken_v2.go index da23c49ded8a..66c2498e601e 100644 --- a/pkg/detectors/figmapersonalaccesstoken/v2/figmapersonalaccesstoken_v2.go +++ b/pkg/detectors/figmapersonalaccesstoken/v2/figmapersonalaccesstoken_v2.go @@ -34,6 +34,11 @@ func (s Scanner) Keywords() []string { return []string{"figma"} } +// Description returns a description for the result being detected. +func (s Scanner) Description() string { + return "Figma is a collaborative interface design tool. Figma Personal Access Tokens can be used to access and manipulate design files and other resources on behalf of a user." +} + // FromData will find and optionally verify FigmaPersonalAccessToken secrets in a given set of bytes. func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (results []detectors.Result, err error) { dataStr := string(data) diff --git a/pkg/detectors/fileio/fileio.go b/pkg/detectors/fileio/fileio.go index 5d1fae8c267f..0f0ad6c401c3 100644 --- a/pkg/detectors/fileio/fileio.go +++ b/pkg/detectors/fileio/fileio.go @@ -4,11 +4,12 @@ import ( "context" "encoding/json" "fmt" - regexp "github.com/wasilibs/go-re2" "io" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -81,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FileIO } + +func (s Scanner) Description() string { + return "FileIO is a service for temporary file sharing. The detected key can be used to access and manage shared files." +} diff --git a/pkg/detectors/finage/finage.go b/pkg/detectors/finage/finage.go index bd0dca0fa49d..40b1ba572ad2 100644 --- a/pkg/detectors/finage/finage.go +++ b/pkg/detectors/finage/finage.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Finage } + +func (s Scanner) Description() string { + return "Finage provides financial data APIs for stocks, forex, and cryptocurrencies. Finage API keys can be used to access and retrieve financial data." +} diff --git a/pkg/detectors/financialmodelingprep/financialmodelingprep.go b/pkg/detectors/financialmodelingprep/financialmodelingprep.go index 5783c15a9852..3cf7af50caf4 100644 --- a/pkg/detectors/financialmodelingprep/financialmodelingprep.go +++ b/pkg/detectors/financialmodelingprep/financialmodelingprep.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FinancialModelingPrep } + +func (s Scanner) Description() string { + return "FinancialModelingPrep provides financial data APIs. The API keys can be used to access financial data and related services." +} diff --git a/pkg/detectors/findl/findl.go b/pkg/detectors/findl/findl.go index 921c98596baa..0ab0d78dcad3 100644 --- a/pkg/detectors/findl/findl.go +++ b/pkg/detectors/findl/findl.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Findl } + +func (s Scanner) Description() string { + return "Findl is a service used for searching and querying data. Findl API keys can be used to access and modify this data." +} diff --git a/pkg/detectors/finnhub/finnhub.go b/pkg/detectors/finnhub/finnhub.go index 3d542973390e..6663bd1594e0 100644 --- a/pkg/detectors/finnhub/finnhub.go +++ b/pkg/detectors/finnhub/finnhub.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Finnhub } + +func (s Scanner) Description() string { + return "Finnhub is a financial data provider offering APIs to access market data. Finnhub API keys can be used to retrieve economic calendars, stock prices, and other financial information." +} diff --git a/pkg/detectors/fixerio/fixerio.go b/pkg/detectors/fixerio/fixerio.go index e2a77bbd3e59..0daae9aa87e8 100644 --- a/pkg/detectors/fixerio/fixerio.go +++ b/pkg/detectors/fixerio/fixerio.go @@ -85,3 +85,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FixerIO } + +func (s Scanner) Description() string { + return "Fixer.io is a foreign exchange rates and currency conversion API. Fixer.io API keys can be used to access and retrieve current and historical foreign exchange rates." +} diff --git a/pkg/detectors/flatio/flatio.go b/pkg/detectors/flatio/flatio.go index 4743b2996517..7670e6acfe29 100644 --- a/pkg/detectors/flatio/flatio.go +++ b/pkg/detectors/flatio/flatio.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FlatIO } + +func (s Scanner) Description() string { + return "FlatIO is a music notation software. FlatIO keys can be used to access and modify musical scores and related data." +} diff --git a/pkg/detectors/fleetbase/fleetbase.go b/pkg/detectors/fleetbase/fleetbase.go index 05e7bb12b4a7..09b6d8436981 100644 --- a/pkg/detectors/fleetbase/fleetbase.go +++ b/pkg/detectors/fleetbase/fleetbase.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Fleetbase } + +func (s Scanner) Description() string { + return "Fleetbase is a platform for building logistics and supply chain applications. Fleetbase API keys can be used to access and manage logistics data and operations." +} diff --git a/pkg/detectors/flickr/flickr.go b/pkg/detectors/flickr/flickr.go index 5049678c1993..58b18cd1c60c 100644 --- a/pkg/detectors/flickr/flickr.go +++ b/pkg/detectors/flickr/flickr.go @@ -77,3 +77,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Flickr } + +func (s Scanner) Description() string { + return "Flickr is an image and video hosting service. Flickr API keys can be used to access and modify user data and perform various operations within the Flickr ecosystem." +} diff --git a/pkg/detectors/flightapi/flightapi.go b/pkg/detectors/flightapi/flightapi.go index 90bb89d5ef24..7449c2f9a3b9 100644 --- a/pkg/detectors/flightapi/flightapi.go +++ b/pkg/detectors/flightapi/flightapi.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FlightApi } + +func (s Scanner) Description() string { + return "FlightApi is a service used for accessing flight-related data. FlightApi keys can be used to query flight information and other related services." +} diff --git a/pkg/detectors/flightlabs/flightlabs.go b/pkg/detectors/flightlabs/flightlabs.go index 230321d85171..085969e0f3f1 100644 --- a/pkg/detectors/flightlabs/flightlabs.go +++ b/pkg/detectors/flightlabs/flightlabs.go @@ -78,3 +78,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FlightLabs } + +func (s Scanner) Description() string { + return "FlightLabs provides a comprehensive API for accessing real-time and historical flight data. The API keys can be used to query flight information, schedules, and other related data." +} diff --git a/pkg/detectors/flightstats/flightstats.go b/pkg/detectors/flightstats/flightstats.go index 871abcdb8b69..32d9bf62e02c 100644 --- a/pkg/detectors/flightstats/flightstats.go +++ b/pkg/detectors/flightstats/flightstats.go @@ -89,3 +89,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Flightstats } + +func (s Scanner) Description() string { + return "Flightstats provides APIs for accessing flight data and statistics. Flightstats API keys can be used to retrieve and manipulate flight-related information." +} diff --git a/pkg/detectors/float/float.go b/pkg/detectors/float/float.go index cb8a0ed90a46..3e8356ad62f0 100644 --- a/pkg/detectors/float/float.go +++ b/pkg/detectors/float/float.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Float } + +func (s Scanner) Description() string { + return "Float is a resource management software used for planning and scheduling projects. Float API keys can be used to access and modify project data and schedules." +} diff --git a/pkg/detectors/flowflu/flowflu.go b/pkg/detectors/flowflu/flowflu.go index f8637cfe602f..4c0a5f02bfef 100644 --- a/pkg/detectors/flowflu/flowflu.go +++ b/pkg/detectors/flowflu/flowflu.go @@ -95,3 +95,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FlowFlu } + +func (s Scanner) Description() string { + return "FlowFlu is a service used for managing customer relationships and projects. FlowFlu API keys can be used to access and manipulate CRM data." +} diff --git a/pkg/detectors/flutterwave/flutterwave.go b/pkg/detectors/flutterwave/flutterwave.go index 32bc69e6d9e5..e25f217c5633 100644 --- a/pkg/detectors/flutterwave/flutterwave.go +++ b/pkg/detectors/flutterwave/flutterwave.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Flutterwave } + +func (s Scanner) Description() string { + return "Flutterwave is a payment technology company providing seamless and secure payment solutions for businesses. Flutterwave API keys can be used to access and manage payment services and transactions." +} diff --git a/pkg/detectors/fmfw/fmfw.go b/pkg/detectors/fmfw/fmfw.go index d5aa9633de13..f25e4516bafb 100644 --- a/pkg/detectors/fmfw/fmfw.go +++ b/pkg/detectors/fmfw/fmfw.go @@ -85,3 +85,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Fmfw } + +func (s Scanner) Description() string { + return "FMFW is a cryptocurrency exchange platform. FMFW API keys can be used to access and manage account data and perform trading operations." +} diff --git a/pkg/detectors/formbucket/formbucket.go b/pkg/detectors/formbucket/formbucket.go index 926e7e2d7479..98d92ec70aeb 100644 --- a/pkg/detectors/formbucket/formbucket.go +++ b/pkg/detectors/formbucket/formbucket.go @@ -80,6 +80,10 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result return results, nil } +func (s Scanner) Description() string { + return "FormBucket is a service used to collect and manage form submissions. The detected credential can be used to access and modify form data." +} + type Response struct { Anonymous bool `json:"anonymous"` } diff --git a/pkg/detectors/formcraft/formcraft.go b/pkg/detectors/formcraft/formcraft.go index 1f09769d8f61..6d50516647fe 100644 --- a/pkg/detectors/formcraft/formcraft.go +++ b/pkg/detectors/formcraft/formcraft.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Formcraft } + +func (s Scanner) Description() string { + return "Formcraft is a form building and data collection service. Formcraft keys can be used to access and manage forms and collected data." +} diff --git a/pkg/detectors/formio/formio.go b/pkg/detectors/formio/formio.go index b562dd3ed331..1e455d7d4381 100644 --- a/pkg/detectors/formio/formio.go +++ b/pkg/detectors/formio/formio.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FormIO } + +func (s Scanner) Description() string { + return "FormIO is a platform for building form-based applications. FormIO JWT tokens can be used to authenticate and interact with FormIO services." +} diff --git a/pkg/detectors/formsite/formsite.go b/pkg/detectors/formsite/formsite.go index a69cc2ab286b..ca03194cad68 100644 --- a/pkg/detectors/formsite/formsite.go +++ b/pkg/detectors/formsite/formsite.go @@ -3,16 +3,17 @@ package formsite import ( "context" "fmt" - regexp "github.com/wasilibs/go-re2" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" ) -type Scanner struct{ +type Scanner struct { detectors.DefaultMultiPartCredentialProvider } @@ -89,3 +90,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Formsite } + +func (s Scanner) Description() string { + return "Formsite is an online form builder service. Formsite API keys can be used to access and manage forms and data submissions." +} diff --git a/pkg/detectors/foursquare/foursquare.go b/pkg/detectors/foursquare/foursquare.go index 7005970538a8..7d7531b43823 100644 --- a/pkg/detectors/foursquare/foursquare.go +++ b/pkg/detectors/foursquare/foursquare.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FourSquare } + +func (s Scanner) Description() string { + return "Foursquare is a technology company that uses location intelligence to build meaningful consumer experiences and business solutions. Foursquare API keys can be used to access and interact with their services." +} diff --git a/pkg/detectors/frameio/frameio.go b/pkg/detectors/frameio/frameio.go index 80bb3f174c71..e050a11ece0c 100644 --- a/pkg/detectors/frameio/frameio.go +++ b/pkg/detectors/frameio/frameio.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FrameIO } + +func (s Scanner) Description() string { + return "Frame.io is a video review and collaboration platform. Frame.io API keys can be used to access and manage video projects and assets." +} diff --git a/pkg/detectors/freshbooks/freshbooks.go b/pkg/detectors/freshbooks/freshbooks.go index 9702ba87d321..b70ac1d15bd4 100644 --- a/pkg/detectors/freshbooks/freshbooks.go +++ b/pkg/detectors/freshbooks/freshbooks.go @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Freshbooks } + +func (s Scanner) Description() string { + return "FreshBooks is an accounting software package developed and marketed by 2ndSite Inc. FreshBooks API keys can be used to access and modify accounting data and perform other operations." +} diff --git a/pkg/detectors/freshdesk/freshdesk.go b/pkg/detectors/freshdesk/freshdesk.go index 0abdacc3015c..76c5657daa16 100644 --- a/pkg/detectors/freshdesk/freshdesk.go +++ b/pkg/detectors/freshdesk/freshdesk.go @@ -85,3 +85,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Freshdesk } + +func (s Scanner) Description() string { + return "Freshdesk is a customer support software. Freshdesk API keys can be used to access and manage support tickets, contacts, and other customer support data." +} diff --git a/pkg/detectors/front/front.go b/pkg/detectors/front/front.go index 303e42f23ede..e702e9c26a7f 100644 --- a/pkg/detectors/front/front.go +++ b/pkg/detectors/front/front.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Front } + +func (s Scanner) Description() string { + return "Front is a customer communication hub that allows teams to manage email, social media, SMS, and other channels in one place. Front API keys can be used to access and manage this communication data." +} diff --git a/pkg/detectors/ftp/ftp.go b/pkg/detectors/ftp/ftp.go index af3ea40faf07..02d99cc41389 100644 --- a/pkg/detectors/ftp/ftp.go +++ b/pkg/detectors/ftp/ftp.go @@ -130,3 +130,7 @@ func verifyFTP(timeout time.Duration, u *url.URL) error { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FTP } + +func (s Scanner) Description() string { + return "FTP is a protocol for reading and writing files. An FTP password can be used to read and sometimes write files." +} diff --git a/pkg/detectors/fulcrum/fulcrum.go b/pkg/detectors/fulcrum/fulcrum.go index c99a2bcd870a..6cada6610f52 100644 --- a/pkg/detectors/fulcrum/fulcrum.go +++ b/pkg/detectors/fulcrum/fulcrum.go @@ -29,7 +29,7 @@ func (s Scanner) Keywords() []string { return []string{"fulcrum"} } -// FromData will find and optionally verify fullcrum secrets in a given set of bytes. +// FromData will find and optionally verify fulcrum secrets in a given set of bytes. func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (results []detectors.Result, err error) { dataStr := string(data) @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Fulcrum } + +func (s Scanner) Description() string { + return "Fulcrum is a data collection platform used to gather and analyze geospatial data. Fulcrum API tokens can be used to access and manage this data." +} diff --git a/pkg/detectors/fullstory/v1/fullstory.go b/pkg/detectors/fullstory/v1/fullstory.go index d051af0b68fd..c2f970de8905 100644 --- a/pkg/detectors/fullstory/v1/fullstory.go +++ b/pkg/detectors/fullstory/v1/fullstory.go @@ -78,3 +78,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Fullstory } + +func (s Scanner) Description() string { + return "Fullstory is a digital experience analytics platform that captures and analyzes customer interactions on websites and mobile apps. Fullstory API keys can be used to access and analyze this data." +} diff --git a/pkg/detectors/fullstory/v2/fullstory_v2.go b/pkg/detectors/fullstory/v2/fullstory_v2.go index 0b9184d628da..7148bc1ea72a 100644 --- a/pkg/detectors/fullstory/v2/fullstory_v2.go +++ b/pkg/detectors/fullstory/v2/fullstory_v2.go @@ -78,3 +78,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Fullstory } + +func (s Scanner) Description() string { + return "Fullstory is a digital experience analytics platform. Fullstory keys can be used to access user session data and analytics." +} diff --git a/pkg/detectors/fxmarket/fxmarket.go b/pkg/detectors/fxmarket/fxmarket.go index 598858545797..16df018ee376 100644 --- a/pkg/detectors/fxmarket/fxmarket.go +++ b/pkg/detectors/fxmarket/fxmarket.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_FXMarket } + +func (s Scanner) Description() string { + return "Fxmarket is a financial market for trading currencies. Fxmarket API keys can be used to access and modify currency trading data." +} diff --git a/pkg/detectors/gcp/gcp.go b/pkg/detectors/gcp/gcp.go index 21c204d7940c..d09c0e1314cf 100644 --- a/pkg/detectors/gcp/gcp.go +++ b/pkg/detectors/gcp/gcp.go @@ -102,14 +102,14 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result credBytes, _ := json.Marshal(creds) - s := detectors.Result{ + result := detectors.Result{ DetectorType: detectorspb.DetectorType_GCP, Raw: raw, RawV2: credBytes, Redacted: creds.ClientEmail, } // Set the RotationGuideURL in the ExtraData - s.ExtraData = map[string]string{ + result.ExtraData = map[string]string{ "rotation_guide": "https://howtorotate.com/docs/tutorials/gcp/", "project": creds.ProjectID, } @@ -122,12 +122,12 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result if credentials != nil { _, err = credentials.TokenSource.Token() if err == nil { - s.Verified = true + result.Verified = true } } } - results = append(results, s) + results = append(results, result) } return @@ -140,3 +140,7 @@ func (s Scanner) IsFalsePositive(_ detectors.Result) (bool, string) { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GCP } + +func (s Scanner) Description() string { + return "GCP (Google Cloud Platform) is a suite of cloud computing services that runs on the same infrastructure that Google uses internally for its end-user products. GCP keys can be used to access and manage these services." +} diff --git a/pkg/detectors/gcpapplicationdefaultcredentials/gcpapplicationdefaultcredentials.go b/pkg/detectors/gcpapplicationdefaultcredentials/gcpapplicationdefaultcredentials.go index bf48780a3d0e..3b2de9ebbc95 100644 --- a/pkg/detectors/gcpapplicationdefaultcredentials/gcpapplicationdefaultcredentials.go +++ b/pkg/detectors/gcpapplicationdefaultcredentials/gcpapplicationdefaultcredentials.go @@ -170,3 +170,7 @@ func verifyMatch(ctx context.Context, client *http.Client, token string) (bool, func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GCPApplicationDefaultCredentials } + +func (s Scanner) Description() string { + return "GCP Application Default Credentials are used to authenticate and authorize API requests to Google Cloud services." +} diff --git a/pkg/detectors/geckoboard/geckoboard.go b/pkg/detectors/geckoboard/geckoboard.go index 2bd56e33fe21..e0eb4dabffd1 100644 --- a/pkg/detectors/geckoboard/geckoboard.go +++ b/pkg/detectors/geckoboard/geckoboard.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Geckoboard } + +func (s Scanner) Description() string { + return "Geckoboard is a data visualization tool that allows users to create real-time dashboards. Geckoboard API keys can be used to access and modify these dashboards." +} diff --git a/pkg/detectors/gemini/gemini.go b/pkg/detectors/gemini/gemini.go index 949cd6fe0778..3ab02a9e9e0c 100644 --- a/pkg/detectors/gemini/gemini.go +++ b/pkg/detectors/gemini/gemini.go @@ -135,3 +135,7 @@ func constructSignature(payload string, resSecretMatch string) string { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Gemini } + +func (s Scanner) Description() string { + return "Gemini is a cryptocurrency exchange platform. API keys can be used to access and manage account details and perform transactions." +} diff --git a/pkg/detectors/generic/generic.go b/pkg/detectors/generic/generic.go index 327a139d1e0e..658de074e2e9 100644 --- a/pkg/detectors/generic/generic.go +++ b/pkg/detectors/generic/generic.go @@ -113,3 +113,7 @@ func hasReMatch(matchers []*regexp.Regexp, token string) bool { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Generic } + +func (s Scanner) Description() string { + return "Generic secret key that may provide access to sensitive data or systems." +} diff --git a/pkg/detectors/gengo/gengo.go b/pkg/detectors/gengo/gengo.go index 2c10adfdafed..09e4f9550a3e 100644 --- a/pkg/detectors/gengo/gengo.go +++ b/pkg/detectors/gengo/gengo.go @@ -116,3 +116,7 @@ func getGengoSignature(timeStamp string, secret string) string { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Gengo } + +func (s Scanner) Description() string { + return "Gengo is a platform for professional human translation services. Gengo API keys can be used to access and manage translation projects and resources." +} diff --git a/pkg/detectors/geoapify/geoapify.go b/pkg/detectors/geoapify/geoapify.go index 83c1d3cbca46..0705ed6f287f 100644 --- a/pkg/detectors/geoapify/geoapify.go +++ b/pkg/detectors/geoapify/geoapify.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Geoapify } + +func (s Scanner) Description() string { + return "Geoapify provides APIs for geolocation services, including geocoding, routing, and places. Geoapify API keys can be used to access these services." +} diff --git a/pkg/detectors/geocode/geocode.go b/pkg/detectors/geocode/geocode.go index 8d4c5c068e20..d2150665f370 100644 --- a/pkg/detectors/geocode/geocode.go +++ b/pkg/detectors/geocode/geocode.go @@ -79,3 +79,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Geocode } + +func (s Scanner) Description() string { + return "Geocode API keys can be used to access geolocation services, converting addresses into geographic coordinates and vice versa." +} diff --git a/pkg/detectors/geocodify/geocodify.go b/pkg/detectors/geocodify/geocodify.go index 4cdd71af788d..73204017c653 100644 --- a/pkg/detectors/geocodify/geocodify.go +++ b/pkg/detectors/geocodify/geocodify.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Geocodify } + +func (s Scanner) Description() string { + return "Geocodify is a service that provides geocoding and reverse geocoding capabilities. Geocodify API keys can be used to access these geocoding services." +} diff --git a/pkg/detectors/geocodio/geocodio.go b/pkg/detectors/geocodio/geocodio.go index fbee186f02e1..315bfee471d1 100644 --- a/pkg/detectors/geocodio/geocodio.go +++ b/pkg/detectors/geocodio/geocodio.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Geocodio } + +func (s Scanner) Description() string { + return "Geocodio is a service that provides geocoding and reverse geocoding. Geocodio API keys can be used to convert addresses into geographic coordinates and vice versa." +} diff --git a/pkg/detectors/geoipifi/geoipifi.go b/pkg/detectors/geoipifi/geoipifi.go index 868ea260c335..14dc9bf10792 100644 --- a/pkg/detectors/geoipifi/geoipifi.go +++ b/pkg/detectors/geoipifi/geoipifi.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GeoIpifi } + +func (s Scanner) Description() string { + return "GeoIpifi is a service that provides geolocation information. GeoIpifi API keys can be used to retrieve geolocation data based on IP addresses." +} diff --git a/pkg/detectors/getemail/getemail.go b/pkg/detectors/getemail/getemail.go index 3f0b224990b9..8c1bc9fa8a7d 100644 --- a/pkg/detectors/getemail/getemail.go +++ b/pkg/detectors/getemail/getemail.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GetEmail } + +func (s Scanner) Description() string { + return "GetEmail is a service used to find email addresses based on names and domains. GetEmail API keys can be used to access and retrieve email addresses." +} diff --git a/pkg/detectors/getemails/getemails.go b/pkg/detectors/getemails/getemails.go index 694b0eac1a92..b355f754535b 100644 --- a/pkg/detectors/getemails/getemails.go +++ b/pkg/detectors/getemails/getemails.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GetEmails } + +func (s Scanner) Description() string { + return "GetEmails is a service used to find email addresses of website visitors. The API keys can be used to access and manage contact data." +} diff --git a/pkg/detectors/getgeoapi/getgeoapi.go b/pkg/detectors/getgeoapi/getgeoapi.go index c3cd69ebf877..826cae63a220 100644 --- a/pkg/detectors/getgeoapi/getgeoapi.go +++ b/pkg/detectors/getgeoapi/getgeoapi.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GetGeoAPI } + +func (s Scanner) Description() string { + return "GetGeoAPI provides geolocation and currency conversion services. The API keys can be used to access these services and retrieve data." +} diff --git a/pkg/detectors/getgist/getgist.go b/pkg/detectors/getgist/getgist.go index 77daa21df3d3..61c91fa528db 100644 --- a/pkg/detectors/getgist/getgist.go +++ b/pkg/detectors/getgist/getgist.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Getgist } + +func (s Scanner) Description() string { + return "Getgist is a service used for managing contacts and communications. Getgist API keys can be used to access and manage contact data and communication settings." +} diff --git a/pkg/detectors/getresponse/getresponse.go b/pkg/detectors/getresponse/getresponse.go index ee0573a442c0..93216da3a843 100644 --- a/pkg/detectors/getresponse/getresponse.go +++ b/pkg/detectors/getresponse/getresponse.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Getresponse } + +func (s Scanner) Description() string { + return "GetResponse is an email marketing service. GetResponse API keys can be used to access and manage email marketing campaigns, contacts, and other related data." +} diff --git a/pkg/detectors/getsandbox/getsandbox.go b/pkg/detectors/getsandbox/getsandbox.go index 152b6a7384cf..dd975bf8bf38 100644 --- a/pkg/detectors/getsandbox/getsandbox.go +++ b/pkg/detectors/getsandbox/getsandbox.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GetSandbox } + +func (s Scanner) Description() string { + return "GetSandbox is a service for creating and managing sandboxes. GetSandbox API keys can be used to access and control these sandboxes." +} diff --git a/pkg/detectors/github/v1/github_old.go b/pkg/detectors/github/v1/github_old.go index 5f706e5c2866..53a41478be4f 100644 --- a/pkg/detectors/github/v1/github_old.go +++ b/pkg/detectors/github/v1/github_old.go @@ -183,3 +183,7 @@ func SetHeaderInfo(headers *HeaderInfo, s1 *detectors.Result) { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Github } + +func (s Scanner) Description() string { + return "GitHub is a web-based platform used for version control and collaborative software development. GitHub tokens can be used to access and modify repositories and other resources." +} diff --git a/pkg/detectors/github/v2/github.go b/pkg/detectors/github/v2/github.go index 80dede25a4b6..fad2f5f57dd2 100644 --- a/pkg/detectors/github/v2/github.go +++ b/pkg/detectors/github/v2/github.go @@ -94,3 +94,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Github } + +func (s Scanner) Description() string { + return "GitHub is a platform for version control and collaboration. Personal access tokens (PATs) can be used to access and modify repositories and other resources." +} diff --git a/pkg/detectors/github_oauth2/github_oauth2.go b/pkg/detectors/github_oauth2/github_oauth2.go index 7ae6b0ecbf0b..09e240fe0fee 100644 --- a/pkg/detectors/github_oauth2/github_oauth2.go +++ b/pkg/detectors/github_oauth2/github_oauth2.go @@ -85,3 +85,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GitHubOauth2 } + +func (s Scanner) Description() string { + return "GitHub OAuth2 credentials are used to authenticate and authorize applications to access GitHub's API on behalf of a user or organization. These credentials include a client ID and client secret, which can be used to obtain access tokens for accessing GitHub resources." +} diff --git a/pkg/detectors/githubapp/githubapp.go b/pkg/detectors/githubapp/githubapp.go index bbddd92ccd79..cb8dad68f9b2 100644 --- a/pkg/detectors/githubapp/githubapp.go +++ b/pkg/detectors/githubapp/githubapp.go @@ -111,3 +111,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GitHubApp } + +func (s Scanner) Description() string { + return "GitHub Apps allow you to automate and improve your workflow. GitHub App keys can be used to authenticate and interact with the GitHub API on behalf of the app." +} diff --git a/pkg/detectors/gitlab/v1/gitlab.go b/pkg/detectors/gitlab/v1/gitlab.go index 062863822003..a4d57be56b2e 100644 --- a/pkg/detectors/gitlab/v1/gitlab.go +++ b/pkg/detectors/gitlab/v1/gitlab.go @@ -130,3 +130,7 @@ func (s Scanner) verifyGitlab(ctx context.Context, resMatch string) (bool, error func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Gitlab } + +func (s Scanner) Description() string { + return "GitLab is a web-based DevOps lifecycle tool that provides a Git repository manager providing wiki, issue-tracking, and CI/CD pipeline features. GitLab API tokens can be used to access and modify repository data and other resources." +} diff --git a/pkg/detectors/gitlab/v2/gitlab_v2.go b/pkg/detectors/gitlab/v2/gitlab_v2.go index d0d413c60ea5..f532939a9037 100644 --- a/pkg/detectors/gitlab/v2/gitlab_v2.go +++ b/pkg/detectors/gitlab/v2/gitlab_v2.go @@ -113,3 +113,7 @@ func (s Scanner) verifyGitlab(ctx context.Context, resMatch string) (bool, error func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Gitlab } + +func (s Scanner) Description() string { + return "GitLab is a web-based DevOps lifecycle tool that provides a Git repository manager providing wiki, issue-tracking, and CI/CD pipeline features. GitLab Personal Access Tokens (PATs) can be used to authenticate and access GitLab resources." +} diff --git a/pkg/detectors/gitter/gitter.go b/pkg/detectors/gitter/gitter.go index a0924bf2c108..a4ce95780b3c 100644 --- a/pkg/detectors/gitter/gitter.go +++ b/pkg/detectors/gitter/gitter.go @@ -3,10 +3,11 @@ package gitter import ( "context" "fmt" - regexp "github.com/wasilibs/go-re2" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -71,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Gitter } + +func (s Scanner) Description() string { + return "Gitter is a chat and networking platform. Gitter API keys can be used to access and interact with Gitter services and data." +} diff --git a/pkg/detectors/glassnode/glassnode.go b/pkg/detectors/glassnode/glassnode.go index e20516c4d445..e078fca91ee5 100644 --- a/pkg/detectors/glassnode/glassnode.go +++ b/pkg/detectors/glassnode/glassnode.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Glassnode } + +func (s Scanner) Description() string { + return "Glassnode is an on-chain market intelligence platform providing data and insights on blockchain and cryptocurrency markets. Glassnode API keys can be used to access various blockchain metrics and data points." +} diff --git a/pkg/detectors/gocanvas/gocanvas.go b/pkg/detectors/gocanvas/gocanvas.go index c795debe000d..69068c48e601 100644 --- a/pkg/detectors/gocanvas/gocanvas.go +++ b/pkg/detectors/gocanvas/gocanvas.go @@ -61,7 +61,6 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result } if verify { - payload := url.Values{} payload.Add("username", resEmailMatch) @@ -105,3 +104,7 @@ type Response struct { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GoCanvas } + +func (s Scanner) Description() string { + return "GoCanvas is a platform for automating business processes using mobile forms. GoCanvas API keys can be used to access and modify data within the GoCanvas platform." +} diff --git a/pkg/detectors/gocardless/gocardless.go b/pkg/detectors/gocardless/gocardless.go index 3b139a20cac0..cced2892deab 100644 --- a/pkg/detectors/gocardless/gocardless.go +++ b/pkg/detectors/gocardless/gocardless.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GoCardless } + +func (s Scanner) Description() string { + return "GoCardless is an online payments service that makes collecting payments by direct debit easy for everyone. GoCardless API keys can be used to access and manage payment transactions." +} diff --git a/pkg/detectors/goodday/goodday.go b/pkg/detectors/goodday/goodday.go index e51f91fafbe3..73469b165149 100644 --- a/pkg/detectors/goodday/goodday.go +++ b/pkg/detectors/goodday/goodday.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GoodDay } + +func (s Scanner) Description() string { + return "GoodDay is a project management tool. GoodDay API tokens can be used to access and manage project data." +} diff --git a/pkg/detectors/googleoauth2/googleoauth2_access_token.go b/pkg/detectors/googleoauth2/googleoauth2_access_token.go index af36702d93cd..bba28d8b8c03 100644 --- a/pkg/detectors/googleoauth2/googleoauth2_access_token.go +++ b/pkg/detectors/googleoauth2/googleoauth2_access_token.go @@ -138,3 +138,7 @@ type errorInfo struct { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GoogleOauth2 } + +func (s Scanner) Description() string { + return "Google OAuth 2.0 tokens are used for authenticating and authorizing access to Google APIs and services." +} diff --git a/pkg/detectors/grafana/grafana.go b/pkg/detectors/grafana/grafana.go index 182453af0d09..aae4c5a845af 100644 --- a/pkg/detectors/grafana/grafana.go +++ b/pkg/detectors/grafana/grafana.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Grafana } + +func (s Scanner) Description() string { + return "Grafana is an open-source platform for monitoring and observability. Grafana API keys can be used to access and manage Grafana resources." +} diff --git a/pkg/detectors/grafanaserviceaccount/grafanaserviceaccount.go b/pkg/detectors/grafanaserviceaccount/grafanaserviceaccount.go index 78f5a4105bfc..225582b2c960 100644 --- a/pkg/detectors/grafanaserviceaccount/grafanaserviceaccount.go +++ b/pkg/detectors/grafanaserviceaccount/grafanaserviceaccount.go @@ -94,3 +94,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GrafanaServiceAccount } + +func (s Scanner) Description() string { + return "Grafana service accounts are used to authenticate and interact with Grafana's API. These credentials can be used to access and modify Grafana resources and settings." +} diff --git a/pkg/detectors/graphcms/graphcms.go b/pkg/detectors/graphcms/graphcms.go index ad5307a08ef5..1fca3928de82 100644 --- a/pkg/detectors/graphcms/graphcms.go +++ b/pkg/detectors/graphcms/graphcms.go @@ -3,16 +3,17 @@ package graphcms import ( "context" "fmt" - regexp "github.com/wasilibs/go-re2" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" ) -type Scanner struct{ +type Scanner struct { detectors.DefaultMultiPartCredentialProvider } @@ -86,3 +87,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GraphCMS } + +func (s Scanner) Description() string { + return "GraphCMS, now known as Hygraph, is a CSM software. The GraphCSM API token can enable someone to interact with CMS content." +} diff --git a/pkg/detectors/graphhopper/graphhopper.go b/pkg/detectors/graphhopper/graphhopper.go index 363891894abc..6f557345966f 100644 --- a/pkg/detectors/graphhopper/graphhopper.go +++ b/pkg/detectors/graphhopper/graphhopper.go @@ -66,3 +66,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Graphhopper } + +func (s Scanner) Description() string { + return "Graphhopper provides a routing engine for route planning and navigation. The API keys can be used to access and utilize the Graphhopper routing services." +} diff --git a/pkg/detectors/groovehq/groovehq.go b/pkg/detectors/groovehq/groovehq.go index 0dee1c3d60c6..d32ee43eaea9 100644 --- a/pkg/detectors/groovehq/groovehq.go +++ b/pkg/detectors/groovehq/groovehq.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Groovehq } + +func (s Scanner) Description() string { + return "GrooveHQ is a simple help desk software. GrooveHQ API keys can be used to access and manage support tickets and customer interactions." +} diff --git a/pkg/detectors/groq/groq.go b/pkg/detectors/groq/groq.go index 53a1918196c8..8ddc14bb55f1 100644 --- a/pkg/detectors/groq/groq.go +++ b/pkg/detectors/groq/groq.go @@ -98,3 +98,7 @@ func verifyMatch(ctx context.Context, client *http.Client, token string) (bool, func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Groq } + +func (s Scanner) Description() string { + return "Groq is a company that creates data processing hardware and software. Groq API keys can be used to access their services." +} diff --git a/pkg/detectors/gtmetrix/gtmetrix.go b/pkg/detectors/gtmetrix/gtmetrix.go index 96ce3d2827da..6e3877f2700b 100644 --- a/pkg/detectors/gtmetrix/gtmetrix.go +++ b/pkg/detectors/gtmetrix/gtmetrix.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_GTMetrix } + +func (s Scanner) Description() string { + return "GTMetrix provides website performance analytics and monitoring. GTMetrix API keys can be used to access and manage these analytics." +} diff --git a/pkg/detectors/guardianapi/guardianapi.go b/pkg/detectors/guardianapi/guardianapi.go index 9da39d446dd6..ef24b89135cd 100644 --- a/pkg/detectors/guardianapi/guardianapi.go +++ b/pkg/detectors/guardianapi/guardianapi.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Guardianapi } + +func (s Scanner) Description() string { + return "Guardian API keys are used to access content and data from The Guardian's API. These keys can be used to retrieve articles, search content, and interact with The Guardian's content platform." +} diff --git a/pkg/detectors/gumroad/gumroad.go b/pkg/detectors/gumroad/gumroad.go index 243f3204d061..0e98c94c4654 100644 --- a/pkg/detectors/gumroad/gumroad.go +++ b/pkg/detectors/gumroad/gumroad.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Gumroad } + +func (s Scanner) Description() string { + return "Gumroad is an online platform that facilitates the sale of products by creators. Gumroad API keys can be used to access and manage these products." +} diff --git a/pkg/detectors/guru/guru.go b/pkg/detectors/guru/guru.go index 88cc8dab9e8d..2477348874a5 100644 --- a/pkg/detectors/guru/guru.go +++ b/pkg/detectors/guru/guru.go @@ -88,3 +88,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Guru } + +func (s Scanner) Description() string { + return "Guru is a knowledge management solution. Guru credentials can be used to access and manage knowledge within an organization." +} diff --git a/pkg/detectors/gyazo/gyazo.go b/pkg/detectors/gyazo/gyazo.go index a058d7b37ba1..0ec4413d9684 100644 --- a/pkg/detectors/gyazo/gyazo.go +++ b/pkg/detectors/gyazo/gyazo.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Gyazo } + +func (s Scanner) Description() string { + return "Gyazo is an image sharing service. Gyazo access tokens can be used to access and manage images stored in a Gyazo account." +} diff --git a/pkg/detectors/happyscribe/happyscribe.go b/pkg/detectors/happyscribe/happyscribe.go index a5b49b1b236b..1d3681b0dfe5 100644 --- a/pkg/detectors/happyscribe/happyscribe.go +++ b/pkg/detectors/happyscribe/happyscribe.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Happyscribe } + +func (s Scanner) Description() string { + return "Happyscribe is a transcription service that converts audio to text. Happyscribe API keys can be used to access and manage these transcription services." +} diff --git a/pkg/detectors/harvest/harvest.go b/pkg/detectors/harvest/harvest.go index 7078e10b59d6..93cdd50a31b9 100644 --- a/pkg/detectors/harvest/harvest.go +++ b/pkg/detectors/harvest/harvest.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Harvest } + +func (s Scanner) Description() string { + return "Harvest is a time tracking and invoicing software. Harvest API keys can be used to access and manage time tracking data and invoices." +} diff --git a/pkg/detectors/hellosign/hellosign.go b/pkg/detectors/hellosign/hellosign.go index 24b6548dfe21..86a73bb91edd 100644 --- a/pkg/detectors/hellosign/hellosign.go +++ b/pkg/detectors/hellosign/hellosign.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_HelloSign } + +func (s Scanner) Description() string { + return "HelloSign is an eSignature provider that allows users to sign documents online. HelloSign API keys can be used to interact with the HelloSign API for managing and sending documents." +} diff --git a/pkg/detectors/helpcrunch/helpcrunch.go b/pkg/detectors/helpcrunch/helpcrunch.go index d8396c788217..b3d1737ce876 100644 --- a/pkg/detectors/helpcrunch/helpcrunch.go +++ b/pkg/detectors/helpcrunch/helpcrunch.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_HelpCrunch } + +func (s Scanner) Description() string { + return "HelpCrunch is a customer communication platform offering live chat, email automation, and more. HelpCrunch API keys can be used to access and manage customer interactions and data." +} diff --git a/pkg/detectors/helpscout/helpscout.go b/pkg/detectors/helpscout/helpscout.go index 842a6dece5b7..cccc27ac6856 100644 --- a/pkg/detectors/helpscout/helpscout.go +++ b/pkg/detectors/helpscout/helpscout.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Helpscout } + +func (s Scanner) Description() string { + return "Helpscout is a customer service software that provides a help desk for managing customer communications. Helpscout API keys can be used to access and manage customer interactions and data." +} diff --git a/pkg/detectors/hereapi/hereapi.go b/pkg/detectors/hereapi/hereapi.go index bfb5e48119e1..a400b5b230bd 100644 --- a/pkg/detectors/hereapi/hereapi.go +++ b/pkg/detectors/hereapi/hereapi.go @@ -67,3 +67,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_HereAPI } + +func (s Scanner) Description() string { + return "HereAPI provides access to a wide range of location-based services including maps, geocoding, and traffic information. HereAPI keys can be used to authenticate and access these services." +} diff --git a/pkg/detectors/heroku/heroku.go b/pkg/detectors/heroku/heroku.go index 6fdee217b77c..2aa5f452cc17 100644 --- a/pkg/detectors/heroku/heroku.go +++ b/pkg/detectors/heroku/heroku.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Heroku } + +func (s Scanner) Description() string { + return "Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps. Heroku API keys can be used to access and manage Heroku applications and services." +} diff --git a/pkg/detectors/hive/hive.go b/pkg/detectors/hive/hive.go index 0aeec88a7499..2fc998895f82 100644 --- a/pkg/detectors/hive/hive.go +++ b/pkg/detectors/hive/hive.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Hive } + +func (s Scanner) Description() string { + return "Hive is a project management and collaboration tool. Hive API keys can be used to access and manage projects, tasks, and other data within a Hive workspace." +} diff --git a/pkg/detectors/hiveage/hiveage.go b/pkg/detectors/hiveage/hiveage.go index c797cbe30a18..f8fda2da37fb 100644 --- a/pkg/detectors/hiveage/hiveage.go +++ b/pkg/detectors/hiveage/hiveage.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Hiveage } + +func (s Scanner) Description() string { + return "Hiveage is an online invoicing and billing software. Hiveage API keys can be used to access and manage invoicing and billing data." +} diff --git a/pkg/detectors/holidayapi/holidayapi.go b/pkg/detectors/holidayapi/holidayapi.go index 1e24be439d54..4af078260ba0 100644 --- a/pkg/detectors/holidayapi/holidayapi.go +++ b/pkg/detectors/holidayapi/holidayapi.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_HolidayAPI } + +func (s Scanner) Description() string { + return "HolidayAPI keys are used to access holiday data for various countries and years. These keys can be used to query and retrieve holiday information programmatically." +} diff --git a/pkg/detectors/holistic/holistic.go b/pkg/detectors/holistic/holistic.go index 42fb87a5df74..f522226b8a27 100644 --- a/pkg/detectors/holistic/holistic.go +++ b/pkg/detectors/holistic/holistic.go @@ -79,3 +79,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Holistic } + +func (s Scanner) Description() string { + return "Holistic is a service that provides comprehensive project management solutions. Holistic API keys can be used to access and manage project data." +} diff --git a/pkg/detectors/honeycomb/honeycomb.go b/pkg/detectors/honeycomb/honeycomb.go index c52beae7b4e6..3e47b83e2e77 100644 --- a/pkg/detectors/honeycomb/honeycomb.go +++ b/pkg/detectors/honeycomb/honeycomb.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Honeycomb } + +func (s Scanner) Description() string { + return "Honeycomb is a tool for introspecting and interrogating production systems to help users understand how their systems work in real-time. Honeycomb API keys can be used to authenticate and interact with the Honeycomb API." +} diff --git a/pkg/detectors/host/host.go b/pkg/detectors/host/host.go index 416bb457fc45..3c24632ec17e 100644 --- a/pkg/detectors/host/host.go +++ b/pkg/detectors/host/host.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Host } + +func (s Scanner) Description() string { + return "Host.io provides domain data and related services. Host.io tokens can be used to access and manage domain information." +} diff --git a/pkg/detectors/html2pdf/html2pdf.go b/pkg/detectors/html2pdf/html2pdf.go index 20f8328bdd6f..d3d320244d24 100644 --- a/pkg/detectors/html2pdf/html2pdf.go +++ b/pkg/detectors/html2pdf/html2pdf.go @@ -4,10 +4,11 @@ import ( "bytes" "context" "encoding/json" - regexp "github.com/wasilibs/go-re2" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" ) @@ -76,3 +77,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Html2Pdf } + +func (s Scanner) Description() string { + return "Html2Pdf is a service that converts HTML content into PDF documents. API keys for Html2Pdf can be used to authenticate and authorize access to this service." +} diff --git a/pkg/detectors/hubspotapikey/hubspotapikey.go b/pkg/detectors/hubspotapikey/hubspotapikey.go index e912dea44096..f6700a89f2cd 100644 --- a/pkg/detectors/hubspotapikey/hubspotapikey.go +++ b/pkg/detectors/hubspotapikey/hubspotapikey.go @@ -68,3 +68,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_HubSpotApiKey } + +func (s Scanner) Description() string { + return "HubSpot is a CRM platform that provides tools for marketing, sales, and customer service. HubSpot API keys can be used to access and modify data within the HubSpot platform." +} diff --git a/pkg/detectors/huggingface/huggingface.go b/pkg/detectors/huggingface/huggingface.go index 1e5bca446af9..ece0ebfc2c78 100644 --- a/pkg/detectors/huggingface/huggingface.go +++ b/pkg/detectors/huggingface/huggingface.go @@ -132,6 +132,10 @@ func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_HuggingFace } +func (s Scanner) Description() string { + return "Hugging Face is a platform for natural language processing tasks and model hosting. Hugging Face API keys can be used to access various services and resources on the platform." +} + // https://huggingface.co/docs/hub/api#get-apiwhoami-v2 type whoamiResponse struct { Name string `json:"name"` diff --git a/pkg/detectors/humanity/humanity.go b/pkg/detectors/humanity/humanity.go index 57e987d95673..982afbcbd976 100644 --- a/pkg/detectors/humanity/humanity.go +++ b/pkg/detectors/humanity/humanity.go @@ -78,3 +78,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Humanity } + +func (s Scanner) Description() string { + return "Humanity is a workforce management platform. Humanity API keys can be used to access and manage workforce data and operations." +} diff --git a/pkg/detectors/hunter/hunter.go b/pkg/detectors/hunter/hunter.go index 2c2949ab4337..3325aaa9bb59 100644 --- a/pkg/detectors/hunter/hunter.go +++ b/pkg/detectors/hunter/hunter.go @@ -68,3 +68,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Hunter } + +func (s Scanner) Description() string { + return "Hunter is a service that helps find and verify professional email addresses. Hunter API keys can be used to access and retrieve data from the Hunter service." +} diff --git a/pkg/detectors/hybiscus/hybiscus.go b/pkg/detectors/hybiscus/hybiscus.go index 1ccbade48b05..4c498cbbc8b9 100644 --- a/pkg/detectors/hybiscus/hybiscus.go +++ b/pkg/detectors/hybiscus/hybiscus.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Hybiscus } + +func (s Scanner) Description() string { + return "Hybiscus is a service that provides API keys to access its resources and perform operations. These keys should be kept secure to prevent unauthorized access." +} diff --git a/pkg/detectors/hypertrack/hypertrack.go b/pkg/detectors/hypertrack/hypertrack.go index 418ae89377ea..003c1776a621 100644 --- a/pkg/detectors/hypertrack/hypertrack.go +++ b/pkg/detectors/hypertrack/hypertrack.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Hypertrack } + +func (s Scanner) Description() string { + return "Hypertrack is a service that provides live location tracking for fleets and other mobile workforce management. Hypertrack keys can be used to access and manage these tracking services." +} diff --git a/pkg/detectors/ibmclouduserkey/ibmclouduserkey.go b/pkg/detectors/ibmclouduserkey/ibmclouduserkey.go index af8c57166952..df05f4e15e4e 100644 --- a/pkg/detectors/ibmclouduserkey/ibmclouduserkey.go +++ b/pkg/detectors/ibmclouduserkey/ibmclouduserkey.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_IbmCloudUserKey } + +func (s Scanner) Description() string { + return "IBM Cloud is a suite of cloud computing services from IBM that offers both platform as a service (PaaS) and infrastructure as a service (IaaS). IBM Cloud API keys can be used to access and manage IBM Cloud services and resources." +} diff --git a/pkg/detectors/iconfinder/iconfinder.go b/pkg/detectors/iconfinder/iconfinder.go index 08aef96f21c7..5dfcbe84f915 100644 --- a/pkg/detectors/iconfinder/iconfinder.go +++ b/pkg/detectors/iconfinder/iconfinder.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_IconFinder } + +func (s Scanner) Description() string { + return "IconFinder is a platform that provides a large collection of icons. IconFinder API keys can be used to access and retrieve icons from the platform." +} diff --git a/pkg/detectors/iexapis/iexapis.go b/pkg/detectors/iexapis/iexapis.go index d4735f0d670e..878518257ecd 100644 --- a/pkg/detectors/iexapis/iexapis.go +++ b/pkg/detectors/iexapis/iexapis.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Iexapis } + +func (s Scanner) Description() string { + return "IEX Cloud provides data services for financial markets. IEX Cloud API keys can be used to access and retrieve financial data." +} diff --git a/pkg/detectors/iexcloud/iexcloud.go b/pkg/detectors/iexcloud/iexcloud.go index 57ed64208c55..2f88fda2fe1b 100644 --- a/pkg/detectors/iexcloud/iexcloud.go +++ b/pkg/detectors/iexcloud/iexcloud.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Iexcloud } + +func (s Scanner) Description() string { + return "IEX Cloud is a financial data platform providing access to a wide range of financial data APIs. IEX Cloud tokens can be used to access and retrieve financial data." +} diff --git a/pkg/detectors/imagekit/imagekit.go b/pkg/detectors/imagekit/imagekit.go index 549291a17d3f..dafed656cfa8 100644 --- a/pkg/detectors/imagekit/imagekit.go +++ b/pkg/detectors/imagekit/imagekit.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Imagekit } + +func (s Scanner) Description() string { + return "Imagekit is a real-time image optimization and transformation service. Imagekit keys can be used to access and manipulate images on the platform." +} diff --git a/pkg/detectors/imagga/imagga.go b/pkg/detectors/imagga/imagga.go index 4c7130c65bb8..9561ab7bfd5d 100644 --- a/pkg/detectors/imagga/imagga.go +++ b/pkg/detectors/imagga/imagga.go @@ -29,7 +29,7 @@ func (s Scanner) Keywords() []string { return []string{"imagga"} } -// FromData will find and optionally verify Imagga secrets in a given set of bytes.ddd +// FromData will find and optionally verify Imagga secrets in a given set of bytes. func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (results []detectors.Result, err error) { dataStr := string(data) @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Imagga } + +func (s Scanner) Description() string { + return "Imagga is a cloud-based image recognition and categorization service. Imagga API keys can be used to access and utilize these image processing services." +} diff --git a/pkg/detectors/impala/impala.go b/pkg/detectors/impala/impala.go index 0705954d6832..82fb69313c9f 100644 --- a/pkg/detectors/impala/impala.go +++ b/pkg/detectors/impala/impala.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Impala } + +func (s Scanner) Description() string { + return "Impala is a travel API service used for managing bookings and reservations. Impala API keys can be used to access and modify booking data." +} diff --git a/pkg/detectors/infura/infura.go b/pkg/detectors/infura/infura.go index 653c5135182a..f5f8f2cbd2c8 100644 --- a/pkg/detectors/infura/infura.go +++ b/pkg/detectors/infura/infura.go @@ -77,3 +77,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Infura } + +func (s Scanner) Description() string { + return "Infura provides the infrastructure for decentralized applications to connect to the Ethereum blockchain. Infura keys can be used to interact with the Ethereum network." +} diff --git a/pkg/detectors/insightly/insightly.go b/pkg/detectors/insightly/insightly.go index 1f298d8475c1..92d1062c5cc4 100644 --- a/pkg/detectors/insightly/insightly.go +++ b/pkg/detectors/insightly/insightly.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Insightly } + +func (s Scanner) Description() string { + return "Insightly is a customer relationship management (CRM) platform. Insightly API keys can be used to access and manage CRM data." +} diff --git a/pkg/detectors/instabot/instabot.go b/pkg/detectors/instabot/instabot.go index 24b5b3b92bce..76724bf1405c 100644 --- a/pkg/detectors/instabot/instabot.go +++ b/pkg/detectors/instabot/instabot.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Instabot } + +func (s Scanner) Description() string { + return "Instabot is a service that provides automated social media interactions. Instabot API keys can be used to access and interact with the service programmatically." +} diff --git a/pkg/detectors/instamojo/instamojo.go b/pkg/detectors/instamojo/instamojo.go index 82c158b23a7e..c7b263e4fa30 100644 --- a/pkg/detectors/instamojo/instamojo.go +++ b/pkg/detectors/instamojo/instamojo.go @@ -102,3 +102,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Instamojo } + +func (s Scanner) Description() string { + return "An Ecommerce service, API keys can be used to create and access customer data" +} diff --git a/pkg/detectors/intercom/intercom.go b/pkg/detectors/intercom/intercom.go index ad820bf7c291..943ed63dfcf7 100644 --- a/pkg/detectors/intercom/intercom.go +++ b/pkg/detectors/intercom/intercom.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Intercom } + +func (s Scanner) Description() string { + return "Intercom is a customer messaging platform that allows businesses to communicate with customers. Intercom tokens can be used to access and manage customer data and communication." +} diff --git a/pkg/detectors/interseller/interseller.go b/pkg/detectors/interseller/interseller.go index fe96b67dbeab..b62c9cffb070 100644 --- a/pkg/detectors/interseller/interseller.go +++ b/pkg/detectors/interseller/interseller.go @@ -2,10 +2,11 @@ package interseller import ( "context" - regexp "github.com/wasilibs/go-re2" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -70,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Interseller } + +func (s Scanner) Description() string { + return "Interseller is a platform for automating email outreach. Interseller API keys can be used to manage and send email campaigns." +} diff --git a/pkg/detectors/intra42/intra42.go b/pkg/detectors/intra42/intra42.go index d92a9475568a..16014174120d 100644 --- a/pkg/detectors/intra42/intra42.go +++ b/pkg/detectors/intra42/intra42.go @@ -116,3 +116,7 @@ func verifyIntra42(ctx context.Context, client *http.Client, resMatch string, re func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Intra42 } + +func (s Scanner) Description() string { + return "Intra42 is an API service used to interact with the 42 school's internal systems. Intra42 API keys can be used to access and modify data within these systems." +} diff --git a/pkg/detectors/intrinio/intrinio.go b/pkg/detectors/intrinio/intrinio.go index fb6a33bfcdbf..c439122a69ad 100644 --- a/pkg/detectors/intrinio/intrinio.go +++ b/pkg/detectors/intrinio/intrinio.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Intrinio } + +func (s Scanner) Description() string { + return "Intrinio provides financial data APIs. Intrinio API keys can be used to access various financial datasets and services." +} diff --git a/pkg/detectors/invoiceocean/invoiceocean.go b/pkg/detectors/invoiceocean/invoiceocean.go index 2d8add465a5d..55791c273973 100644 --- a/pkg/detectors/invoiceocean/invoiceocean.go +++ b/pkg/detectors/invoiceocean/invoiceocean.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_InvoiceOcean } + +func (s Scanner) Description() string { + return "InvoiceOcean is an online invoicing service. InvoiceOcean API tokens can be used to access and manage invoices and other financial data." +} diff --git a/pkg/detectors/ip2location/ip2location.go b/pkg/detectors/ip2location/ip2location.go index 72dc862d29a2..97e5601c015d 100644 --- a/pkg/detectors/ip2location/ip2location.go +++ b/pkg/detectors/ip2location/ip2location.go @@ -78,3 +78,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Ip2location } + +func (s Scanner) Description() string { + return "Ip2location is a service that provides IP geolocation data. Ip2location keys can be used to access this geolocation data." +} diff --git a/pkg/detectors/ipapi/ipapi.go b/pkg/detectors/ipapi/ipapi.go index 7c00fcb2fd8f..d6f4d6ca667f 100644 --- a/pkg/detectors/ipapi/ipapi.go +++ b/pkg/detectors/ipapi/ipapi.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Ipapi } + +func (s Scanner) Description() string { + return "Ipapi provides an API for IP address lookup and geolocation. Ipapi keys can be used to access this service and retrieve geolocation data for IP addresses." +} diff --git a/pkg/detectors/ipgeolocation/ipgeolocation.go b/pkg/detectors/ipgeolocation/ipgeolocation.go index c70162f79549..00bb11982888 100644 --- a/pkg/detectors/ipgeolocation/ipgeolocation.go +++ b/pkg/detectors/ipgeolocation/ipgeolocation.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_IPGeolocation } + +func (s Scanner) Description() string { + return "IPGeolocation provides geolocation information about IP addresses. The API key can be used to access and retrieve this data." +} diff --git a/pkg/detectors/ipinfo/ipinfo.go b/pkg/detectors/ipinfo/ipinfo.go index f36abaae34df..19dfea18b326 100644 --- a/pkg/detectors/ipinfo/ipinfo.go +++ b/pkg/detectors/ipinfo/ipinfo.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_IPInfo } + +func (s Scanner) Description() string { + return "IPInfo provides detailed information about IP addresses. IPInfo API keys can be used to access and retrieve this information." +} diff --git a/pkg/detectors/ipinfodb/ipinfodb.go b/pkg/detectors/ipinfodb/ipinfodb.go index f056faf3fd65..0492827fc050 100644 --- a/pkg/detectors/ipinfodb/ipinfodb.go +++ b/pkg/detectors/ipinfodb/ipinfodb.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_IPinfoDB } + +func (s Scanner) Description() string { + return "IPinfoDB provides IP address geolocation services. IPinfoDB API keys can be used to access geolocation data for IP addresses." +} diff --git a/pkg/detectors/ipquality/ipquality.go b/pkg/detectors/ipquality/ipquality.go index dfa4b1a2180a..a68c6340480c 100644 --- a/pkg/detectors/ipquality/ipquality.go +++ b/pkg/detectors/ipquality/ipquality.go @@ -78,3 +78,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_IPQuality } + +func (s Scanner) Description() string { + return "IPQualityScore provides tools to detect and prevent fraudulent activity. IPQualityScore API keys can be used to access their fraud prevention services." +} diff --git a/pkg/detectors/ipstack/ipstack.go b/pkg/detectors/ipstack/ipstack.go index b09a0ab8d924..74a2c8276d71 100644 --- a/pkg/detectors/ipstack/ipstack.go +++ b/pkg/detectors/ipstack/ipstack.go @@ -77,3 +77,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_IpStack } + +func (s Scanner) Description() string { + return "IpStack provides a REST API for IP geolocation services. IpStack API keys can be used to access geolocation data for IP addresses." +} diff --git a/pkg/detectors/jdbc/jdbc.go b/pkg/detectors/jdbc/jdbc.go index 451ee6ada86f..5048cbbe99bc 100644 --- a/pkg/detectors/jdbc/jdbc.go +++ b/pkg/detectors/jdbc/jdbc.go @@ -74,14 +74,14 @@ matchLoop: } jdbcConn := match[0] - s := detectors.Result{ + result := detectors.Result{ DetectorType: detectorspb.DetectorType_JDBC, Raw: []byte(jdbcConn), Redacted: tryRedactAnonymousJDBC(jdbcConn), } if verify { - s.Verified = false + result.Verified = false j, err := newJDBC(jdbcConn) if err != nil { continue @@ -89,21 +89,21 @@ matchLoop: ctx, cancel := context.WithTimeout(ctx, 5*time.Second) defer cancel() pingRes := j.ping(ctx) - s.Verified = pingRes.err == nil + result.Verified = pingRes.err == nil // If there's a ping error that is marked as "determinate" we throw it away. We do this because this was the // behavior before tri-state verification was introduced and preserving it allows us to gradually migrate // detectors to use tri-state verification. if pingRes.err != nil && !pingRes.determinate { err = pingRes.err - s.SetVerificationError(err, jdbcConn) + result.SetVerificationError(err, jdbcConn) } - s.AnalysisInfo = map[string]string{ + result.AnalysisInfo = map[string]string{ "connection_string": jdbcConn, } // TODO: specialized redaction } - results = append(results, s) + results = append(results, result) } return @@ -265,3 +265,7 @@ func pingErr(ctx context.Context, driverName, conn string) error { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_JDBC } + +func (s Scanner) Description() string { + return "JDBC (Java Database Connectivity) is an API for connecting and executing queries with databases. JDBC connection strings can be used to access and manipulate databases." +} diff --git a/pkg/detectors/jiratoken/v1/jiratoken.go b/pkg/detectors/jiratoken/v1/jiratoken.go index 988ac67003c3..189f12d6e5f4 100644 --- a/pkg/detectors/jiratoken/v1/jiratoken.go +++ b/pkg/detectors/jiratoken/v1/jiratoken.go @@ -133,3 +133,7 @@ func verifyJiratoken(ctx context.Context, client *http.Client, email, domain, to func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_JiraToken } + +func (s Scanner) Description() string { + return "Jira is a proprietary issue tracking product developed by Atlassian that allows bug tracking and agile project management. Jira tokens can be used to authenticate and interact with Jira's API." +} diff --git a/pkg/detectors/jiratoken/v2/jiratoken_v2.go b/pkg/detectors/jiratoken/v2/jiratoken_v2.go index d12cba1e4ce6..e4b082fd8eb1 100644 --- a/pkg/detectors/jiratoken/v2/jiratoken_v2.go +++ b/pkg/detectors/jiratoken/v2/jiratoken_v2.go @@ -136,3 +136,7 @@ func verifyJiratoken(ctx context.Context, client *http.Client, email, domain, to func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_JiraToken } + +func (s Scanner) Description() string { + return "Jira is a proprietary issue tracking product developed by Atlassian that allows bug tracking and agile project management. Jira tokens can be used to authenticate API requests." +} diff --git a/pkg/detectors/jotform/jotform.go b/pkg/detectors/jotform/jotform.go index d8005be54be4..29ab85b9baa0 100644 --- a/pkg/detectors/jotform/jotform.go +++ b/pkg/detectors/jotform/jotform.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Jotform } + +func (s Scanner) Description() string { + return "Jotform is an online form builder and survey tool. Jotform API keys can be used to access and manage form submissions and data." +} diff --git a/pkg/detectors/jumpcloud/jumpcloud.go b/pkg/detectors/jumpcloud/jumpcloud.go index cbd5b0ef2105..7ab9ca1437f0 100644 --- a/pkg/detectors/jumpcloud/jumpcloud.go +++ b/pkg/detectors/jumpcloud/jumpcloud.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Jumpcloud } + +func (s Scanner) Description() string { + return "Jumpcloud is a cloud-based directory service platform that offers user and device management, single sign-on, and other identity and access management (IAM) features. Jumpcloud API keys can be used to access and manage these services." +} diff --git a/pkg/detectors/jupiterone/jupiterone.go b/pkg/detectors/jupiterone/jupiterone.go index 2bf322bb15be..26226da04329 100644 --- a/pkg/detectors/jupiterone/jupiterone.go +++ b/pkg/detectors/jupiterone/jupiterone.go @@ -92,3 +92,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_JupiterOne } + +func (s Scanner) Description() string { + return "JupiterOne is a cloud security management platform. JupiterOne API keys can be used to access and manage security data." +} diff --git a/pkg/detectors/juro/juro.go b/pkg/detectors/juro/juro.go index c35dac3e4d1c..abb36b8a4419 100644 --- a/pkg/detectors/juro/juro.go +++ b/pkg/detectors/juro/juro.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Juro } + +func (s Scanner) Description() string { + return "Juro is a contract automation platform. Juro API keys can be used to access and manage contract templates and other resources in Juro." +} diff --git a/pkg/detectors/kanban/kanban.go b/pkg/detectors/kanban/kanban.go index 8cb4dfe50d47..ba4f1cf2c49c 100644 --- a/pkg/detectors/kanban/kanban.go +++ b/pkg/detectors/kanban/kanban.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Kanban } + +func (s Scanner) Description() string { + return "KanbanTool is a project management software that helps visualize and optimize workflow. Kanban API keys can be used to access and modify project data." +} diff --git a/pkg/detectors/kanbantool/kanbantool.go b/pkg/detectors/kanbantool/kanbantool.go index 3fad48c98f45..3715d82362ec 100644 --- a/pkg/detectors/kanbantool/kanbantool.go +++ b/pkg/detectors/kanbantool/kanbantool.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Kanbantool } + +func (s Scanner) Description() string { + return "Kanbantool is a project management software that uses API keys for accessing and modifying project data." +} diff --git a/pkg/detectors/karmacrm/karmacrm.go b/pkg/detectors/karmacrm/karmacrm.go index 0fb783f27643..c54b8046df53 100644 --- a/pkg/detectors/karmacrm/karmacrm.go +++ b/pkg/detectors/karmacrm/karmacrm.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_KarmaCRM } + +func (s Scanner) Description() string { + return "KarmaCRM is a customer relationship management tool. API tokens can be used to access and modify CRM data." +} diff --git a/pkg/detectors/keenio/keenio.go b/pkg/detectors/keenio/keenio.go index d2f76cb0fc21..9754d818fdaa 100644 --- a/pkg/detectors/keenio/keenio.go +++ b/pkg/detectors/keenio/keenio.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_KeenIO } + +func (s Scanner) Description() string { + return "KeenIO is an analytics platform that allows you to collect, analyze, and visualize event data. KeenIO API keys can be used to access and manage this data." +} diff --git a/pkg/detectors/kickbox/kickbox.go b/pkg/detectors/kickbox/kickbox.go index a2c3df79b5a2..734305f5d3ea 100644 --- a/pkg/detectors/kickbox/kickbox.go +++ b/pkg/detectors/kickbox/kickbox.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Kickbox } + +func (s Scanner) Description() string { + return "Kickbox is an email verification service that allows users to verify email addresses in real-time. Kickbox API keys can be used to access and utilize the email verification services provided by Kickbox." +} diff --git a/pkg/detectors/klaviyo/klaviyo.go b/pkg/detectors/klaviyo/klaviyo.go index 40495604226e..d52646d1be63 100644 --- a/pkg/detectors/klaviyo/klaviyo.go +++ b/pkg/detectors/klaviyo/klaviyo.go @@ -113,3 +113,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Klaviyo } + +func (s Scanner) Description() string { + return "Klaviyo is a marketing automation platform. Klaviyo API keys can be used to access and modify marketing data and configurations." +} diff --git a/pkg/detectors/klipfolio/klipfolio.go b/pkg/detectors/klipfolio/klipfolio.go index b6d1078d222b..ded84d68a2fc 100644 --- a/pkg/detectors/klipfolio/klipfolio.go +++ b/pkg/detectors/klipfolio/klipfolio.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Klipfolio } + +func (s Scanner) Description() string { + return "Klipfolio is a cloud-based business intelligence platform that provides dashboards and reporting tools. Klipfolio API keys can be used to access and manage data and visualizations within the platform." +} diff --git a/pkg/detectors/knapsackpro/knapsackpro.go b/pkg/detectors/knapsackpro/knapsackpro.go index fa37e0ba540e..e05f55884fe3 100644 --- a/pkg/detectors/knapsackpro/knapsackpro.go +++ b/pkg/detectors/knapsackpro/knapsackpro.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_KnapsackPro } + +func (s Scanner) Description() string { + return "KnapsackPro is a tool for optimal test suite parallelization. Its tokens can be used to access and manage test suite runs and configurations." +} diff --git a/pkg/detectors/kontent/kontent.go b/pkg/detectors/kontent/kontent.go index af97f7ed94b9..d361107caf9c 100644 --- a/pkg/detectors/kontent/kontent.go +++ b/pkg/detectors/kontent/kontent.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Kontent } + +func (s Scanner) Description() string { + return "Kontent is a headless CMS (Content Management System) that allows users to manage and deliver content to any device or application. Kontent API keys can be used to access and manage this content." +} diff --git a/pkg/detectors/kraken/kraken.go b/pkg/detectors/kraken/kraken.go index d6db8e5695f5..af6bd5477248 100644 --- a/pkg/detectors/kraken/kraken.go +++ b/pkg/detectors/kraken/kraken.go @@ -6,7 +6,6 @@ import ( "crypto/sha256" "crypto/sha512" "encoding/base64" - regexp "github.com/wasilibs/go-re2" "io" "net/http" "net/url" @@ -14,6 +13,8 @@ import ( "strings" "time" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -119,3 +120,7 @@ func getKrakenSignature(url_path string, values url.Values, secret []byte) strin func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Kraken } + +func (s Scanner) Description() string { + return "Kraken is a cryptocurrency exchange that allows trading of various digital assets. Kraken API keys can be used to access and manage account information and perform trading operations." +} diff --git a/pkg/detectors/kucoin/kucoin.go b/pkg/detectors/kucoin/kucoin.go index d19329a6e958..5f91c8485031 100644 --- a/pkg/detectors/kucoin/kucoin.go +++ b/pkg/detectors/kucoin/kucoin.go @@ -128,3 +128,7 @@ func getKucoinSignature(apiSecret string, timestamp string, method string, endpo func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_KuCoin } + +func (s Scanner) Description() string { + return "KuCoin is a cryptocurrency exchange that provides various digital asset trading services. KuCoin API keys can be used to access and manage trading accounts, execute trades, and retrieve market data." +} diff --git a/pkg/detectors/kylas/kylas.go b/pkg/detectors/kylas/kylas.go index c81235da6462..133af0c90d4f 100644 --- a/pkg/detectors/kylas/kylas.go +++ b/pkg/detectors/kylas/kylas.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Kylas } + +func (s Scanner) Description() string { + return "Kylas is a sales CRM platform. Kylas API keys can be used to access and manage sales data." +} diff --git a/pkg/detectors/languagelayer/languagelayer.go b/pkg/detectors/languagelayer/languagelayer.go index 5f3c856b52bc..863a26241eb8 100644 --- a/pkg/detectors/languagelayer/languagelayer.go +++ b/pkg/detectors/languagelayer/languagelayer.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LanguageLayer } + +func (s Scanner) Description() string { + return "LanguageLayer is an API service for language detection. The access key can be used to authenticate and use the API." +} diff --git a/pkg/detectors/larksuite/larksuite.go b/pkg/detectors/larksuite/larksuite.go index 0f2466c2ae2b..51b198ccaa7e 100644 --- a/pkg/detectors/larksuite/larksuite.go +++ b/pkg/detectors/larksuite/larksuite.go @@ -97,6 +97,10 @@ func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LarkSuite } +func (s Scanner) Description() string { + return "LarkSuite is a collaborative suite that includes chat, calendar, and cloud storage features. The detected token can be used to access and interact with these services." +} + func verifyAccessToken(ctx context.Context, client *http.Client, url string, token string) (bool, error) { req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) if err != nil { diff --git a/pkg/detectors/larksuiteapikey/larksuiteapikey.go b/pkg/detectors/larksuiteapikey/larksuiteapikey.go index 4eb45cff6d32..bf6adee1bd02 100644 --- a/pkg/detectors/larksuiteapikey/larksuiteapikey.go +++ b/pkg/detectors/larksuiteapikey/larksuiteapikey.go @@ -83,6 +83,10 @@ func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LarkSuiteApiKey } +func (s Scanner) Description() string { + return "LarkSuite is a collaboration platform that provides tools for communication, calendar, and cloud storage. LarkSuite API keys can be used to access and manage these services programmatically." +} + func verifyCredentials(ctx context.Context, client *http.Client, appId, appSecret string) (bool, error) { payload := strings.NewReader(fmt.Sprintf(`{"app_id": "%s", "app_secret": "%s"}`, appId, appSecret)) req, err := http.NewRequestWithContext(ctx, http.MethodPost, "https://open.larksuite.com/open-apis/auth/v3/tenant_access_token/internal", payload) diff --git a/pkg/detectors/launchdarkly/launchdarkly.go b/pkg/detectors/launchdarkly/launchdarkly.go index e5f6f4ba57f8..a09db00259ed 100644 --- a/pkg/detectors/launchdarkly/launchdarkly.go +++ b/pkg/detectors/launchdarkly/launchdarkly.go @@ -124,3 +124,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LaunchDarkly } + +func (s Scanner) Description() string { + return "LaunchDarkly is a feature management platform that allows teams to control the visibility of features to users. LaunchDarkly API keys can be used to access and modify feature flags and other resources within a LaunchDarkly account." +} diff --git a/pkg/detectors/ldap/ldap.go b/pkg/detectors/ldap/ldap.go index ff0f29d8f295..fea2c0d3e12f 100644 --- a/pkg/detectors/ldap/ldap.go +++ b/pkg/detectors/ldap/ldap.go @@ -172,3 +172,7 @@ func verifyLDAP(username, password string, ldapURL *url.URL) error { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LDAP } + +func (s Scanner) Description() string { + return "LDAP (Lightweight Directory Access Protocol) is an open, vendor-neutral, industry standard application protocol for accessing and maintaining distributed directory information services over an Internet Protocol (IP) network." +} diff --git a/pkg/detectors/leadfeeder/leadfeeder.go b/pkg/detectors/leadfeeder/leadfeeder.go index 44ca3feb3bcb..f46eeae0ca5e 100644 --- a/pkg/detectors/leadfeeder/leadfeeder.go +++ b/pkg/detectors/leadfeeder/leadfeeder.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Leadfeeder } + +func (s Scanner) Description() string { + return "Leadfeeder is a tool that shows you the companies visiting your website, how they found you, and what they’re interested in. Leadfeeder API keys can be used to access and manage this data." +} diff --git a/pkg/detectors/lemlist/lemlist.go b/pkg/detectors/lemlist/lemlist.go index af21db0b9f90..9aebed819af6 100644 --- a/pkg/detectors/lemlist/lemlist.go +++ b/pkg/detectors/lemlist/lemlist.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Lemlist } + +func (s Scanner) Description() string { + return "Lemlist is an email outreach platform used for sending personalized emails. Lemlist API keys can be used to access and manage email campaigns and contacts." +} diff --git a/pkg/detectors/lemonsqueezy/lemonsqueezy.go b/pkg/detectors/lemonsqueezy/lemonsqueezy.go index ca6b08a53356..6570906ec348 100644 --- a/pkg/detectors/lemonsqueezy/lemonsqueezy.go +++ b/pkg/detectors/lemonsqueezy/lemonsqueezy.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LemonSqueezy } + +func (s Scanner) Description() string { + return "LemonSqueezy is a platform for selling digital products. Its API tokens can be used to manage products, orders, and other resources." +} diff --git a/pkg/detectors/lendflow/lendflow.go b/pkg/detectors/lendflow/lendflow.go index 81f110e7eab1..2713f3abf89b 100644 --- a/pkg/detectors/lendflow/lendflow.go +++ b/pkg/detectors/lendflow/lendflow.go @@ -79,3 +79,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Lendflow } + +func (s Scanner) Description() string { + return "Lendflow is a platform for accessing financial data and services. Lendflow API keys can be used to access and manipulate this financial data." +} diff --git a/pkg/detectors/lessannoyingcrm/lessannoyingcrm.go b/pkg/detectors/lessannoyingcrm/lessannoyingcrm.go index 04ecf9117067..719a9a0e2877 100644 --- a/pkg/detectors/lessannoyingcrm/lessannoyingcrm.go +++ b/pkg/detectors/lessannoyingcrm/lessannoyingcrm.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LessAnnoyingCRM } + +func (s Scanner) Description() string { + return "Less Annoying CRM is a customer relationship management system. The API token can be used to access and manage customer data." +} diff --git a/pkg/detectors/lexigram/lexigram.go b/pkg/detectors/lexigram/lexigram.go index 4af5b9b6bc67..165d57f45de3 100644 --- a/pkg/detectors/lexigram/lexigram.go +++ b/pkg/detectors/lexigram/lexigram.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Lexigram } + +func (s Scanner) Description() string { + return "Lexigram is a healthcare data service that provides an API for medical terminology and data. Lexigram API keys can be used to access and retrieve medical data." +} diff --git a/pkg/detectors/linearapi/linearapi.go b/pkg/detectors/linearapi/linearapi.go index d17194cc72a9..558bac354737 100644 --- a/pkg/detectors/linearapi/linearapi.go +++ b/pkg/detectors/linearapi/linearapi.go @@ -79,3 +79,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LinearAPI } + +func (s Scanner) Description() string { + return "LinearAPI is a project management software. LinearAPI keys can be used to access and modify project data." +} diff --git a/pkg/detectors/linemessaging/linemessaging.go b/pkg/detectors/linemessaging/linemessaging.go index c5405c06a8f7..14f5083309a8 100644 --- a/pkg/detectors/linemessaging/linemessaging.go +++ b/pkg/detectors/linemessaging/linemessaging.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LineMessaging } + +func (s Scanner) Description() string { + return "Line Messaging is a communication app that allows users to send messages, photos, videos, and audio. Line Messaging API keys can be used to access and modify this data and communication." +} diff --git a/pkg/detectors/linenotify/linenotify.go b/pkg/detectors/linenotify/linenotify.go index 2fd52104c262..1f6af585375d 100644 --- a/pkg/detectors/linenotify/linenotify.go +++ b/pkg/detectors/linenotify/linenotify.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LineNotify } + +func (s Scanner) Description() string { + return "Line Notify is a service provided by LINE Corporation that allows you to send notifications to your LINE app. The API keys can be used to send messages to users or groups." +} diff --git a/pkg/detectors/linkpreview/linkpreview.go b/pkg/detectors/linkpreview/linkpreview.go index 75cd7891c59e..e7b711a92973 100644 --- a/pkg/detectors/linkpreview/linkpreview.go +++ b/pkg/detectors/linkpreview/linkpreview.go @@ -66,3 +66,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LinkPreview } + +func (s Scanner) Description() string { + return "LinkPreview is a service that provides information about a web page when given a URL. LinkPreview API keys can be used to access this service and retrieve metadata about web pages." +} diff --git a/pkg/detectors/liveagent/liveagent.go b/pkg/detectors/liveagent/liveagent.go index 603e9f1caa7f..391dcdcfd011 100644 --- a/pkg/detectors/liveagent/liveagent.go +++ b/pkg/detectors/liveagent/liveagent.go @@ -100,3 +100,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LiveAgent } + +func (s Scanner) Description() string { + return "LiveAgent is a help desk software that provides a customer service platform. The API key allows access to various functionalities of the LiveAgent service." +} diff --git a/pkg/detectors/livestorm/livestorm.go b/pkg/detectors/livestorm/livestorm.go index 92e6afcdc88b..93d60f585e66 100644 --- a/pkg/detectors/livestorm/livestorm.go +++ b/pkg/detectors/livestorm/livestorm.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Livestorm } + +func (s Scanner) Description() string { + return "Livestorm is a video communication platform for webinars, meetings, and virtual events. Livestorm API keys can be used to interact with Livestorm services programmatically." +} diff --git a/pkg/detectors/loadmill/loadmill.go b/pkg/detectors/loadmill/loadmill.go index b2a5dbb65ed4..973025177eb0 100644 --- a/pkg/detectors/loadmill/loadmill.go +++ b/pkg/detectors/loadmill/loadmill.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Loadmill } + +func (s Scanner) Description() string { + return "Loadmill is a testing service for APIs and web applications. Loadmill API keys can be used to access and manage test scenarios and results." +} diff --git a/pkg/detectors/lob/lob.go b/pkg/detectors/lob/lob.go index 438fcc010ac5..9edf12dccda6 100644 --- a/pkg/detectors/lob/lob.go +++ b/pkg/detectors/lob/lob.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Lob } + +func (s Scanner) Description() string { + return "Lob is a service for automating the creation and sending of letters, checks, and postcards. Lob API keys can be used to access and manage these services." +} diff --git a/pkg/detectors/locationiq/locationiq.go b/pkg/detectors/locationiq/locationiq.go index 5c96ecb73d5a..7f5098fac5ab 100644 --- a/pkg/detectors/locationiq/locationiq.go +++ b/pkg/detectors/locationiq/locationiq.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LocationIQ } + +func (s Scanner) Description() string { + return "LocationIQ provides location-based services such as geocoding and reverse geocoding. LocationIQ API keys can be used to access these services and retrieve location data." +} diff --git a/pkg/detectors/loggly/loggly.go b/pkg/detectors/loggly/loggly.go index b89f777156fe..eb7583a7bb2c 100644 --- a/pkg/detectors/loggly/loggly.go +++ b/pkg/detectors/loggly/loggly.go @@ -95,3 +95,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Loggly } + +func (s Scanner) Description() string { + return "Loggly is a cloud-based log management service. Loggly API keys can be used to send, search, and analyze log data." +} diff --git a/pkg/detectors/loginradius/loginradius.go b/pkg/detectors/loginradius/loginradius.go index 690b9f84d210..951bab286c2a 100644 --- a/pkg/detectors/loginradius/loginradius.go +++ b/pkg/detectors/loginradius/loginradius.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Loginradius } + +func (s Scanner) Description() string { + return "Loginradius is a customer identity and access management (CIAM) platform. The API keys can be used to manage user identities, authentication, and access control." +} diff --git a/pkg/detectors/logzio/logzio.go b/pkg/detectors/logzio/logzio.go index 58b8f4f472c6..36ba0643217c 100644 --- a/pkg/detectors/logzio/logzio.go +++ b/pkg/detectors/logzio/logzio.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LogzIO } + +func (s Scanner) Description() string { + return "Logz.io is a cloud observability platform for log analysis and monitoring. Logz.io API tokens can be used to access and manage log data." +} diff --git a/pkg/detectors/lokalisetoken/lokalisetoken.go b/pkg/detectors/lokalisetoken/lokalisetoken.go index 213890bdbbb8..9c5d74b0db00 100644 --- a/pkg/detectors/lokalisetoken/lokalisetoken.go +++ b/pkg/detectors/lokalisetoken/lokalisetoken.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LokaliseToken } + +func (s Scanner) Description() string { + return "Lokalise is a translation management system that helps teams to manage and automate their localization process. Lokalise tokens can be used to access its API and modify project data." +} diff --git a/pkg/detectors/loyverse/loyverse.go b/pkg/detectors/loyverse/loyverse.go index 2ec5076959b1..768dca281932 100644 --- a/pkg/detectors/loyverse/loyverse.go +++ b/pkg/detectors/loyverse/loyverse.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Loyverse } + +func (s Scanner) Description() string { + return "Loyverse is a point of sale (POS) system that allows businesses to manage sales, inventory, and customer relationships. Loyverse API keys can be used to access and modify this data." +} diff --git a/pkg/detectors/lunchmoney/lunchmoney.go b/pkg/detectors/lunchmoney/lunchmoney.go index 44b4aa7ab254..e1f09af9485f 100644 --- a/pkg/detectors/lunchmoney/lunchmoney.go +++ b/pkg/detectors/lunchmoney/lunchmoney.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_LunchMoney } + +func (s Scanner) Description() string { + return "LunchMoney is a personal finance tool that helps users manage their finances. LunchMoney API keys can be used to access and modify financial data." +} diff --git a/pkg/detectors/luno/luno.go b/pkg/detectors/luno/luno.go index 1282d3f16512..35fb2d5c3ccb 100644 --- a/pkg/detectors/luno/luno.go +++ b/pkg/detectors/luno/luno.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Luno } + +func (s Scanner) Description() string { + return "Luno is a cryptocurrency exchange platform that allows users to buy, sell, and store digital currencies. Luno API keys can be used to access account information and perform transactions." +} diff --git a/pkg/detectors/m3o/m3o.go b/pkg/detectors/m3o/m3o.go index 2ec5ca4c4773..64677430e0af 100644 --- a/pkg/detectors/m3o/m3o.go +++ b/pkg/detectors/m3o/m3o.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_M3o } + +func (s Scanner) Description() string { + return "M3o is a cloud platform that provides a set of microservices for building applications. M3o API keys can be used to access these microservices." +} diff --git a/pkg/detectors/madkudu/madkudu.go b/pkg/detectors/madkudu/madkudu.go index 398514891283..17c85df4b56e 100644 --- a/pkg/detectors/madkudu/madkudu.go +++ b/pkg/detectors/madkudu/madkudu.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MadKudu } + +func (s Scanner) Description() string { + return "MadKudu is a predictive lead scoring service that helps B2B companies identify the best-fit leads based on data. MadKudu API keys can be used to access and manipulate lead scoring data." +} diff --git a/pkg/detectors/magicbell/magicbell.go b/pkg/detectors/magicbell/magicbell.go index 2405445042de..cd007c9a7bab 100644 --- a/pkg/detectors/magicbell/magicbell.go +++ b/pkg/detectors/magicbell/magicbell.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MagicBell } + +func (s Scanner) Description() string { + return "MagicBell is a notification service. API keys can be used to manage and send notifications." +} diff --git a/pkg/detectors/magnetic/magnetic.go b/pkg/detectors/magnetic/magnetic.go index d6b1f1ef7534..4f31d8afc773 100644 --- a/pkg/detectors/magnetic/magnetic.go +++ b/pkg/detectors/magnetic/magnetic.go @@ -65,6 +65,11 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result return results, nil } + func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Magnetic } + +func (s Scanner) Description() string { + return "Magnetic is a service used for managing accounts and item types. Magnetic tokens can be used to access and modify these resources." +} diff --git a/pkg/detectors/mailboxlayer/mailboxlayer.go b/pkg/detectors/mailboxlayer/mailboxlayer.go index dd4112b5b1cb..a018d3824c94 100644 --- a/pkg/detectors/mailboxlayer/mailboxlayer.go +++ b/pkg/detectors/mailboxlayer/mailboxlayer.go @@ -31,7 +31,7 @@ func (s Scanner) Keywords() []string { return []string{"mailboxlayer"} } -// FromData will find and optionally verify Mailboxplayer secrets in a given set of bytes. +// FromData will find and optionally verify Mailboxlayer secrets in a given set of bytes. func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (results []detectors.Result, err error) { dataStr := string(data) @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mailboxlayer } + +func (s Scanner) Description() string { + return "Mailboxlayer is an email validation and verification service. Mailboxlayer API keys can be used to validate and verify email addresses." +} diff --git a/pkg/detectors/mailchimp/mailchimp.go b/pkg/detectors/mailchimp/mailchimp.go index 1c95966b0f7a..51b7b345b897 100644 --- a/pkg/detectors/mailchimp/mailchimp.go +++ b/pkg/detectors/mailchimp/mailchimp.go @@ -39,11 +39,11 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result for _, match := range matches { - s := detectors.Result{ + result := detectors.Result{ DetectorType: detectorspb.DetectorType_Mailchimp, Raw: []byte(match), } - s.ExtraData = map[string]string{ + result.ExtraData = map[string]string{ "rotation_guide": "https://howtorotate.com/docs/tutorials/mailchimp/", } @@ -61,15 +61,15 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result if err == nil { defer res.Body.Close() if res.StatusCode >= 200 && res.StatusCode < 300 { - s.Verified = true + result.Verified = true } } - s.AnalysisInfo = map[string]string{ + result.AnalysisInfo = map[string]string{ "key": match, } } - results = append(results, s) + results = append(results, result) } return results, nil @@ -78,3 +78,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mailchimp } + +func (s Scanner) Description() string { + return "Mailchimp is a marketing automation platform and email marketing service. Mailchimp API keys can be used to access and manage email campaigns, audience data, and other marketing resources." +} diff --git a/pkg/detectors/mailerlite/mailerlite.go b/pkg/detectors/mailerlite/mailerlite.go index bf757bff5445..894c9dc2874a 100644 --- a/pkg/detectors/mailerlite/mailerlite.go +++ b/pkg/detectors/mailerlite/mailerlite.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mailerlite } + +func (s Scanner) Description() string { + return "MailerLite is an email marketing service that allows users to create and manage email campaigns. MailerLite API keys can be used to access and modify email campaign data." +} diff --git a/pkg/detectors/mailgun/mailgun.go b/pkg/detectors/mailgun/mailgun.go index c6dabde53a20..c9d5ca3598e5 100644 --- a/pkg/detectors/mailgun/mailgun.go +++ b/pkg/detectors/mailgun/mailgun.go @@ -87,3 +87,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mailgun } + +func (s Scanner) Description() string { + return "Mailgun is an email automation service. Mailgun tokens can be used to send, receive, and track emails." +} diff --git a/pkg/detectors/mailjetbasicauth/mailjetbasicauth.go b/pkg/detectors/mailjetbasicauth/mailjetbasicauth.go index 6eca7efb06af..4e3ac0bf8315 100644 --- a/pkg/detectors/mailjetbasicauth/mailjetbasicauth.go +++ b/pkg/detectors/mailjetbasicauth/mailjetbasicauth.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MailJetBasicAuth } + +func (s Scanner) Description() string { + return "Mailjet is an email delivery service that allows you to send transactional and marketing emails. Mailjet Basic Auth credentials can be used to authenticate and send emails through the Mailjet API." +} diff --git a/pkg/detectors/mailjetsms/mailjetsms.go b/pkg/detectors/mailjetsms/mailjetsms.go index 0118f2ff607e..a3296d4815fa 100644 --- a/pkg/detectors/mailjetsms/mailjetsms.go +++ b/pkg/detectors/mailjetsms/mailjetsms.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MailJetSMS } + +func (s Scanner) Description() string { + return "Mailjet is a cloud-based email service provider. Mailjet API keys can be used to send SMS messages and manage email campaigns." +} diff --git a/pkg/detectors/mailmodo/mailmodo.go b/pkg/detectors/mailmodo/mailmodo.go index 58291b02c895..a7d57e74147a 100644 --- a/pkg/detectors/mailmodo/mailmodo.go +++ b/pkg/detectors/mailmodo/mailmodo.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mailmodo } + +func (s Scanner) Description() string { + return "Mailmodo is a platform for creating and sending interactive emails. Mailmodo API keys can be used to access and manage email campaigns and contacts." +} diff --git a/pkg/detectors/mailsac/mailsac.go b/pkg/detectors/mailsac/mailsac.go index c758c173f2ca..741fe0ef6fdf 100644 --- a/pkg/detectors/mailsac/mailsac.go +++ b/pkg/detectors/mailsac/mailsac.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mailsac } + +func (s Scanner) Description() string { + return "Mailsac is a disposable email service used for testing and temporary email purposes. Mailsac API keys can be used to access and manage email addresses and messages." +} diff --git a/pkg/detectors/mandrill/mandrill.go b/pkg/detectors/mandrill/mandrill.go index df33889be648..d10384d29a33 100644 --- a/pkg/detectors/mandrill/mandrill.go +++ b/pkg/detectors/mandrill/mandrill.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mandrill } + +func (s Scanner) Description() string { + return "Mandrill is a transactional email API for Mailchimp users. Mandrill API keys can be used to send and track email messages." +} diff --git a/pkg/detectors/manifest/manifest.go b/pkg/detectors/manifest/manifest.go index 6a11688a5af5..3737aac8ce25 100644 --- a/pkg/detectors/manifest/manifest.go +++ b/pkg/detectors/manifest/manifest.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Manifest } + +func (s Scanner) Description() string { + return "Manifest API keys are used to interact with the Manifest service, which provides checklist management and other features." +} diff --git a/pkg/detectors/mapbox/mapbox.go b/pkg/detectors/mapbox/mapbox.go index 8c5a7153f5b2..9fd543e88d89 100644 --- a/pkg/detectors/mapbox/mapbox.go +++ b/pkg/detectors/mapbox/mapbox.go @@ -78,3 +78,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MapBox } + +func (s Scanner) Description() string { + return "Mapbox provides location-based services and APIs. Mapbox access tokens can be used to interact with these services and modify data." +} diff --git a/pkg/detectors/mapquest/mapquest.go b/pkg/detectors/mapquest/mapquest.go index 78807166f4c2..58f0b919bbdd 100644 --- a/pkg/detectors/mapquest/mapquest.go +++ b/pkg/detectors/mapquest/mapquest.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mapquest } + +func (s Scanner) Description() string { + return "Mapquest is a web mapping service. Mapquest API keys can be used to access and manipulate mapping data and services." +} diff --git a/pkg/detectors/marketstack/marketstack.go b/pkg/detectors/marketstack/marketstack.go index 903f750bfdb8..02e671577f7d 100644 --- a/pkg/detectors/marketstack/marketstack.go +++ b/pkg/detectors/marketstack/marketstack.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Marketstack } + +func (s Scanner) Description() string { + return "Marketstack is a service that provides real-time market data. Marketstack API keys can be used to access this data and perform various operations." +} diff --git a/pkg/detectors/mattermostpersonaltoken/mattermostpersonaltoken.go b/pkg/detectors/mattermostpersonaltoken/mattermostpersonaltoken.go index 31b72e7d3b3c..885b096fb96a 100644 --- a/pkg/detectors/mattermostpersonaltoken/mattermostpersonaltoken.go +++ b/pkg/detectors/mattermostpersonaltoken/mattermostpersonaltoken.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MattermostPersonalToken } + +func (s Scanner) Description() string { + return "Mattermost is an open-source, self-hostable online chat service with file sharing, search, and integrations. Mattermost Personal Tokens can be used to authenticate API requests to a Mattermost server." +} diff --git a/pkg/detectors/mavenlink/mavenlink.go b/pkg/detectors/mavenlink/mavenlink.go index b6f6296f2caf..3196c9221bd8 100644 --- a/pkg/detectors/mavenlink/mavenlink.go +++ b/pkg/detectors/mavenlink/mavenlink.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mavenlink } + +func (s Scanner) Description() string { + return "Mavenlink is a project management software that provides tools to plan, manage, and analyze projects. Mavenlink API keys can be used to access and modify project data." +} diff --git a/pkg/detectors/maxmindlicense/v1/maxmindlicense.go b/pkg/detectors/maxmindlicense/v1/maxmindlicense.go index de0e73dff7cb..aeddb9ab2f80 100644 --- a/pkg/detectors/maxmindlicense/v1/maxmindlicense.go +++ b/pkg/detectors/maxmindlicense/v1/maxmindlicense.go @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MaxMindLicense } + +func (s Scanner) Description() string { + return "MaxMind provides IP intelligence through their GeoIP service which can be used to determine geographical location and other information about an IP address." +} diff --git a/pkg/detectors/maxmindlicense/v2/maxmindlicense_v2.go b/pkg/detectors/maxmindlicense/v2/maxmindlicense_v2.go index b87e1c76ab54..48ba282fb272 100644 --- a/pkg/detectors/maxmindlicense/v2/maxmindlicense_v2.go +++ b/pkg/detectors/maxmindlicense/v2/maxmindlicense_v2.go @@ -106,3 +106,7 @@ func (s Scanner) verify(ctx context.Context, client *http.Client, key string) (b func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MaxMindLicense } + +func (s Scanner) Description() string { + return "MaxMind provides IP intelligence through its GeoIP databases and services. MaxMind license keys are used to access these services and databases." +} diff --git a/pkg/detectors/meaningcloud/meaningcloud.go b/pkg/detectors/meaningcloud/meaningcloud.go index 50ce02f65b38..6ecd8d558438 100644 --- a/pkg/detectors/meaningcloud/meaningcloud.go +++ b/pkg/detectors/meaningcloud/meaningcloud.go @@ -104,3 +104,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MeaningCloud } + +func (s Scanner) Description() string { + return "MeaningCloud is a text analytics service used to extract insights from unstructured content. MeaningCloud API keys can be used to access and utilize these text analytics services." +} diff --git a/pkg/detectors/mediastack/mediastack.go b/pkg/detectors/mediastack/mediastack.go index d8116e0e4b2e..21a5f56a1aca 100644 --- a/pkg/detectors/mediastack/mediastack.go +++ b/pkg/detectors/mediastack/mediastack.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MediaStack } + +func (s Scanner) Description() string { + return "MediaStack is a service that provides real-time news data. MediaStack API keys can be used to access this data." +} diff --git a/pkg/detectors/meistertask/meistertask.go b/pkg/detectors/meistertask/meistertask.go index 205ac3b03ed2..6477183fddc7 100644 --- a/pkg/detectors/meistertask/meistertask.go +++ b/pkg/detectors/meistertask/meistertask.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Meistertask } + +func (s Scanner) Description() string { + return "Meistertask is a task management tool that allows users to manage projects and tasks. Meistertask API keys can be used to access and modify project and task data." +} diff --git a/pkg/detectors/mesibo/mesibo.go b/pkg/detectors/mesibo/mesibo.go index e2daed88492a..f2d8460f6d1e 100644 --- a/pkg/detectors/mesibo/mesibo.go +++ b/pkg/detectors/mesibo/mesibo.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mesibo } + +func (s Scanner) Description() string { + return "Mesibo is a real-time communication platform that allows developers to add messaging, voice, and video calls to their apps. Mesibo tokens can be used to access and interact with the Mesibo API." +} diff --git a/pkg/detectors/messagebird/messagebird.go b/pkg/detectors/messagebird/messagebird.go index 5bc2f84857ef..6582f8acf2fb 100644 --- a/pkg/detectors/messagebird/messagebird.go +++ b/pkg/detectors/messagebird/messagebird.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MessageBird } + +func (s Scanner) Description() string { + return "MessageBird is a cloud communications platform. MessageBird API keys can be used to send and receive SMS, voice, and chat messages." +} diff --git a/pkg/detectors/metaapi/metaapi.go b/pkg/detectors/metaapi/metaapi.go index 3f7ee1ade630..76b32a65217c 100644 --- a/pkg/detectors/metaapi/metaapi.go +++ b/pkg/detectors/metaapi/metaapi.go @@ -13,7 +13,7 @@ import ( "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" ) -type Scanner struct{ +type Scanner struct { detectors.DefaultMultiPartCredentialProvider } @@ -90,3 +90,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MetaAPI } + +func (s Scanner) Description() string { + return "Detects MetaAPI credentials, which are typically API keys used for accessing the MetaAPI service." +} diff --git a/pkg/detectors/metabase/metabase.go b/pkg/detectors/metabase/metabase.go index b2d8815db81d..ebd7647d782e 100644 --- a/pkg/detectors/metabase/metabase.go +++ b/pkg/detectors/metabase/metabase.go @@ -96,3 +96,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Metabase } + +func (s Scanner) Description() string { + return "Metabase is an open-source business intelligence tool. Metabase session tokens can be used to access and interact with the Metabase API." +} diff --git a/pkg/detectors/metrilo/metrilo.go b/pkg/detectors/metrilo/metrilo.go index cee0e2bc47c9..5ac1bce05f53 100644 --- a/pkg/detectors/metrilo/metrilo.go +++ b/pkg/detectors/metrilo/metrilo.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Metrilo } + +func (s Scanner) Description() string { + return "Metrilo is an analytics and CRM platform for e-commerce. Metrilo API keys can be used to access and manage e-commerce data." +} diff --git a/pkg/detectors/microsoftteamswebhook/microsoftteamswebhook.go b/pkg/detectors/microsoftteamswebhook/microsoftteamswebhook.go index 9338124f6dc5..c58a59205dc3 100644 --- a/pkg/detectors/microsoftteamswebhook/microsoftteamswebhook.go +++ b/pkg/detectors/microsoftteamswebhook/microsoftteamswebhook.go @@ -106,3 +106,7 @@ func verifyWebhook(ctx context.Context, client *http.Client, webhookURL string) func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MicrosoftTeamsWebhook } + +func (s Scanner) Description() string { + return "Microsoft Teams Webhooks allow external services to communicate with Teams channels by sending messages to a unique URL." +} diff --git a/pkg/detectors/mindmeister/mindmeister.go b/pkg/detectors/mindmeister/mindmeister.go index f11ed882f5e7..0f1f2f8f59f7 100644 --- a/pkg/detectors/mindmeister/mindmeister.go +++ b/pkg/detectors/mindmeister/mindmeister.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mindmeister } + +func (s Scanner) Description() string { + return "Mindmeister is a mind mapping tool that helps users organize and visualize their thoughts. Mindmeister API keys can be used to access and manipulate mind maps and other data within the platform." +} diff --git a/pkg/detectors/miro/miro.go b/pkg/detectors/miro/miro.go index 3e5bd2cfbc01..0f8e076ed7fd 100644 --- a/pkg/detectors/miro/miro.go +++ b/pkg/detectors/miro/miro.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Miro } + +func (s Scanner) Description() string { + return "Miro is an online collaborative whiteboarding platform. Miro API keys can be used to access and modify data and collaborate on whiteboards." +} diff --git a/pkg/detectors/mite/mite.go b/pkg/detectors/mite/mite.go index a068cb6786cd..efb144660b2f 100644 --- a/pkg/detectors/mite/mite.go +++ b/pkg/detectors/mite/mite.go @@ -12,7 +12,7 @@ import ( "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" ) -type Scanner struct{ +type Scanner struct { detectors.DefaultMultiPartCredentialProvider } @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mite } + +func (s Scanner) Description() string { + return "Mite is a time tracking tool. Mite API keys can be used to access and modify time tracking data." +} diff --git a/pkg/detectors/mixmax/mixmax.go b/pkg/detectors/mixmax/mixmax.go index 9bc4d62283dd..3e2ffea25a5c 100644 --- a/pkg/detectors/mixmax/mixmax.go +++ b/pkg/detectors/mixmax/mixmax.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mixmax } + +func (s Scanner) Description() string { + return "Mixmax is a communication platform for email enhancement and automation. Mixmax API tokens can be used to access and manage email communication and automation features." +} diff --git a/pkg/detectors/mixpanel/mixpanel.go b/pkg/detectors/mixpanel/mixpanel.go index b346090bf71c..486a1164cf08 100644 --- a/pkg/detectors/mixpanel/mixpanel.go +++ b/pkg/detectors/mixpanel/mixpanel.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mixpanel } + +func (s Scanner) Description() string { + return "Mixpanel is an analytics service that tracks user interactions with web and mobile applications. Mixpanel keys can be used to access and analyze user data." +} diff --git a/pkg/detectors/mockaroo/mockaroo.go b/pkg/detectors/mockaroo/mockaroo.go index 0fe00c1b1765..43e378236db4 100644 --- a/pkg/detectors/mockaroo/mockaroo.go +++ b/pkg/detectors/mockaroo/mockaroo.go @@ -4,10 +4,11 @@ import ( "context" "encoding/json" "fmt" - regexp "github.com/wasilibs/go-re2" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -62,7 +63,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result if err == nil && len(t.Types) > 0 { s1.Verified = true } - } + } } } @@ -76,6 +77,10 @@ func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mockaroo } +func (s Scanner) Description() string { + return "Mockaroo is a tool for generating realistic data for testing and development. Mockaroo API keys can be used to access and generate this data." +} + type typeRes struct { Types []struct { Name string `json:"name"` diff --git a/pkg/detectors/moderation/moderation.go b/pkg/detectors/moderation/moderation.go index 726489944174..c97dd344d3bc 100644 --- a/pkg/detectors/moderation/moderation.go +++ b/pkg/detectors/moderation/moderation.go @@ -78,3 +78,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Moderation } + +func (s Scanner) Description() string { + return "Moderation API keys are used to access the Moderation API, which provides services for analyzing and moderating content." +} diff --git a/pkg/detectors/monday/monday.go b/pkg/detectors/monday/monday.go index 55e649140ccc..49cbd481fc8f 100644 --- a/pkg/detectors/monday/monday.go +++ b/pkg/detectors/monday/monday.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Monday } + +func (s Scanner) Description() string { + return "Monday.com is a work operating system that powers teams to run projects and workflows with confidence. Monday API keys can be used to access and modify data and workflows on the platform." +} diff --git a/pkg/detectors/mongodb/mongodb.go b/pkg/detectors/mongodb/mongodb.go index 22bced1fa279..5a4b0cde5e0f 100644 --- a/pkg/detectors/mongodb/mongodb.go +++ b/pkg/detectors/mongodb/mongodb.go @@ -84,6 +84,10 @@ func (s Scanner) IsFalsePositive(_ detectors.Result) (bool, string) { return false, "" } +func (s Scanner) Description() string { + return "MongoDB is a NoSQL database that uses a document-oriented data model. MongoDB credentials can be used to access and manipulate the database." +} + func isErrDeterminate(err error) bool { var authErr *auth.Error return errors.As(err, &authErr) diff --git a/pkg/detectors/monkeylearn/monkeylearn.go b/pkg/detectors/monkeylearn/monkeylearn.go index 773fc7f48217..57c51819a610 100644 --- a/pkg/detectors/monkeylearn/monkeylearn.go +++ b/pkg/detectors/monkeylearn/monkeylearn.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MonkeyLearn } + +func (s Scanner) Description() string { + return "MonkeyLearn is a machine learning platform that allows you to analyze text with custom machine learning models. API keys can be used to access and manage these models." +} diff --git a/pkg/detectors/moonclerk/moonclerk.go b/pkg/detectors/moonclerk/moonclerk.go index 083f3bc2f127..e7d63eb5769d 100644 --- a/pkg/detectors/moonclerk/moonclerk.go +++ b/pkg/detectors/moonclerk/moonclerk.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Moonclerk } + +func (s Scanner) Description() string { + return "Moonclerk is an online payment system that allows businesses to accept recurring payments. Moonclerk API keys can be used to manage and access payment data." +} diff --git a/pkg/detectors/moosend/moosend.go b/pkg/detectors/moosend/moosend.go index cbbb7079499a..17c2d2a19d11 100644 --- a/pkg/detectors/moosend/moosend.go +++ b/pkg/detectors/moosend/moosend.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Moosend } + +func (s Scanner) Description() string { + return "Moosend is an email marketing service provider. Moosend API keys can be used to access and manage email marketing campaigns, subscriber lists, and other related data." +} diff --git a/pkg/detectors/moralis/moralis.go b/pkg/detectors/moralis/moralis.go index 59a647ff7cb8..178adb65f053 100644 --- a/pkg/detectors/moralis/moralis.go +++ b/pkg/detectors/moralis/moralis.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Moralis } + +func (s Scanner) Description() string { + return "Moralis is a platform for building and deploying decentralized applications (dApps). Moralis API keys can be used to interact with blockchain data and services." +} diff --git a/pkg/detectors/mrticktock/mrticktock.go b/pkg/detectors/mrticktock/mrticktock.go index d88b0c222009..2d43c3a937f1 100644 --- a/pkg/detectors/mrticktock/mrticktock.go +++ b/pkg/detectors/mrticktock/mrticktock.go @@ -88,3 +88,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mrticktock } + +func (s Scanner) Description() string { + return "Mrticktock is a service that tracks time-based activities. These credentials can be used to access and manage timers and associated data." +} diff --git a/pkg/detectors/mux/mux.go b/pkg/detectors/mux/mux.go index 80febdaef5a4..a302f58f6e46 100644 --- a/pkg/detectors/mux/mux.go +++ b/pkg/detectors/mux/mux.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Mux } + +func (s Scanner) Description() string { + return "Mux is a video streaming service that provides APIs for video hosting, live streaming, and video analytics. Mux API keys can be used to access and manage video assets and streaming data." +} diff --git a/pkg/detectors/myfreshworks/myfreshworks.go b/pkg/detectors/myfreshworks/myfreshworks.go index 4d1c76682834..fb0fb1beefac 100644 --- a/pkg/detectors/myfreshworks/myfreshworks.go +++ b/pkg/detectors/myfreshworks/myfreshworks.go @@ -110,3 +110,7 @@ func verifyMyfreshworks(ctx context.Context, client *http.Client, resMatch, resI func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Myfreshworks } + +func (s Scanner) Description() string { + return "Freshworks is a customer engagement platform offering various services like CRM, IT service management, and more. Freshworks API keys can be used to access and manage these services." +} diff --git a/pkg/detectors/myintervals/myintervals.go b/pkg/detectors/myintervals/myintervals.go index 2bac40d341ad..5b6f836310c6 100644 --- a/pkg/detectors/myintervals/myintervals.go +++ b/pkg/detectors/myintervals/myintervals.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_MyIntervals } + +func (s Scanner) Description() string { + return "MyIntervals is a project management tool that helps in tracking time, managing tasks, and organizing projects. MyIntervals API keys can be used to access and modify project data and user information." +} diff --git a/pkg/detectors/nasdaqdatalink/nasdaqdatalink.go b/pkg/detectors/nasdaqdatalink/nasdaqdatalink.go index 877373e90348..745c0166535d 100644 --- a/pkg/detectors/nasdaqdatalink/nasdaqdatalink.go +++ b/pkg/detectors/nasdaqdatalink/nasdaqdatalink.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_NasdaqDataLink } + +func (s Scanner) Description() string { + return "Nasdaq Data Link provides financial, economic and alternative datasets. The API key can be used to access and retrieve this data." +} diff --git a/pkg/detectors/nethunt/nethunt.go b/pkg/detectors/nethunt/nethunt.go index e5c026e0bf2d..9acb19c480f8 100644 --- a/pkg/detectors/nethunt/nethunt.go +++ b/pkg/detectors/nethunt/nethunt.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Nethunt } + +func (s Scanner) Description() string { + return "Nethunt is a CRM tool. Credentials found can be used to access and manage CRM data." +} diff --git a/pkg/detectors/netlify/netlify.go b/pkg/detectors/netlify/netlify.go index fdfde21aba98..c2bde5341a35 100644 --- a/pkg/detectors/netlify/netlify.go +++ b/pkg/detectors/netlify/netlify.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Netlify } + +func (s Scanner) Description() string { + return "Netlify is a cloud platform for web developers that provides hosting and serverless backend services for web applications and static websites. Netlify API keys can be used to manage sites, deploy applications, and access various services offered by the platform." +} diff --git a/pkg/detectors/netsuite/netsuite.go b/pkg/detectors/netsuite/netsuite.go index 91dffc03b23e..9544ab7b8746 100644 --- a/pkg/detectors/netsuite/netsuite.go +++ b/pkg/detectors/netsuite/netsuite.go @@ -117,6 +117,10 @@ func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Netsuite } +func (s Scanner) Description() string { + return "Netsuite is a cloud business management suite. These credentials can be used to access and modify data within Netsuite." +} + func verifyCredentials(ctx context.Context, client *http.Client, cs credentialSet) (bool, error) { // for url, filter or replace underscore in accountID if needed and lower case the accountID urlAccountId := strings.ToLower(strings.Replace(cs.accountID, "_", "-", -1)) diff --git a/pkg/detectors/neutrinoapi/neutrinoapi.go b/pkg/detectors/neutrinoapi/neutrinoapi.go index 9da7d71ccbd2..1b7866670450 100644 --- a/pkg/detectors/neutrinoapi/neutrinoapi.go +++ b/pkg/detectors/neutrinoapi/neutrinoapi.go @@ -97,3 +97,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_NeutrinoApi } + +func (s Scanner) Description() string { + return "Neutrino API provides a variety of services including data tools, security tools, and more. Neutrino API keys can be used to access these services." +} diff --git a/pkg/detectors/newrelicpersonalapikey/newrelicpersonalapikey.go b/pkg/detectors/newrelicpersonalapikey/newrelicpersonalapikey.go index c5e7025451d8..f50ef1ade10f 100644 --- a/pkg/detectors/newrelicpersonalapikey/newrelicpersonalapikey.go +++ b/pkg/detectors/newrelicpersonalapikey/newrelicpersonalapikey.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_NewRelicPersonalApiKey } + +func (s Scanner) Description() string { + return "New Relic is a software analytics and performance monitoring company. New Relic Personal API keys can be used to access and manage your New Relic account and data." +} diff --git a/pkg/detectors/newsapi/newsapi.go b/pkg/detectors/newsapi/newsapi.go index 1864376b7c23..f282edd128fc 100644 --- a/pkg/detectors/newsapi/newsapi.go +++ b/pkg/detectors/newsapi/newsapi.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Newsapi } + +func (s Scanner) Description() string { + return "NewsAPI provides access to news articles from various sources. NewsAPI keys can be used to query and retrieve news data." +} diff --git a/pkg/detectors/newscatcher/newscatcher.go b/pkg/detectors/newscatcher/newscatcher.go index ccddc5b9cf4f..a22c0df368b1 100644 --- a/pkg/detectors/newscatcher/newscatcher.go +++ b/pkg/detectors/newscatcher/newscatcher.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Newscatcher } + +func (s Scanner) Description() string { + return "Newscatcher is an API service used to search and retrieve news articles from various sources. Newscatcher API keys can be used to access and query this service." +} diff --git a/pkg/detectors/nexmoapikey/nexmoapikey.go b/pkg/detectors/nexmoapikey/nexmoapikey.go index 1ea684d089ff..17192ae9121f 100644 --- a/pkg/detectors/nexmoapikey/nexmoapikey.go +++ b/pkg/detectors/nexmoapikey/nexmoapikey.go @@ -45,7 +45,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result } resMatch := strings.TrimSpace(match[1]) for _, secretMatch := range secretPat { - if len(match) != 2 { + if len(secretMatch) != 2 { continue } resSecret := strings.TrimSpace(secretMatch[1]) @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_NexmoApiKey } + +func (s Scanner) Description() string { + return "Nexmo provides APIs for SMS, voice, phone verifications, and more. Nexmo API keys can be used to access and manage these services." +} diff --git a/pkg/detectors/nftport/nftport.go b/pkg/detectors/nftport/nftport.go index 820392cd47fb..e98873215d8c 100644 --- a/pkg/detectors/nftport/nftport.go +++ b/pkg/detectors/nftport/nftport.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Nftport } + +func (s Scanner) Description() string { + return "Nftport is a service that allows users to interact with NFTs. Nftport API keys can be used to access and manage NFT data and transactions." +} diff --git a/pkg/detectors/ngc/ngc.go b/pkg/detectors/ngc/ngc.go index acfb22a6282a..9488b0e74c0c 100644 --- a/pkg/detectors/ngc/ngc.go +++ b/pkg/detectors/ngc/ngc.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_NGC } + +func (s Scanner) Description() string { + return "Nvidia's API for AI related things" +} diff --git a/pkg/detectors/ngrok/ngrok.go b/pkg/detectors/ngrok/ngrok.go index 752882daa418..c4a95a43af91 100644 --- a/pkg/detectors/ngrok/ngrok.go +++ b/pkg/detectors/ngrok/ngrok.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Ngrok } + +func (s Scanner) Description() string { + return "Ngrok is a service that provides secure introspectable tunnels to localhost. Ngrok keys can be used to manage and control these tunnels." +} diff --git a/pkg/detectors/nicereply/nicereply.go b/pkg/detectors/nicereply/nicereply.go index 12bb87cb7c69..376df754ff9e 100644 --- a/pkg/detectors/nicereply/nicereply.go +++ b/pkg/detectors/nicereply/nicereply.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Nicereply } + +func (s Scanner) Description() string { + return "Nicereply is a customer satisfaction survey tool. Nicereply API keys can be used to access and manage survey data and user statistics." +} diff --git a/pkg/detectors/nightfall/nightfall.go b/pkg/detectors/nightfall/nightfall.go index 3fc22196e1a3..956b475502c8 100644 --- a/pkg/detectors/nightfall/nightfall.go +++ b/pkg/detectors/nightfall/nightfall.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Nightfall } + +func (s Scanner) Description() string { + return "Nightfall is a data security platform providing sensitive data detection and protection. The detected key can be used to interact with Nightfall's API." +} diff --git a/pkg/detectors/nimble/nimble.go b/pkg/detectors/nimble/nimble.go index dab1a194acb7..637d557888e0 100644 --- a/pkg/detectors/nimble/nimble.go +++ b/pkg/detectors/nimble/nimble.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Nimble } + +func (s Scanner) Description() string { + return "Nimble is a customer relationship management (CRM) tool designed to help businesses manage their customer interactions and data. Nimble API keys can be used to access and modify customer records and other CRM functionalities." +} diff --git a/pkg/detectors/noticeable/noticeable.go b/pkg/detectors/noticeable/noticeable.go index 52aa4ab6bb66..61eb2ec02131 100644 --- a/pkg/detectors/noticeable/noticeable.go +++ b/pkg/detectors/noticeable/noticeable.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Noticeable } + +func (s Scanner) Description() string { + return "Noticeable is a service used for creating and managing changelogs and release notes. Noticeable API keys can be used to access and modify this data." +} diff --git a/pkg/detectors/notion/notion.go b/pkg/detectors/notion/notion.go index dea8a9ea231f..d91b2a82f15f 100644 --- a/pkg/detectors/notion/notion.go +++ b/pkg/detectors/notion/notion.go @@ -79,3 +79,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Notion } + +func (s Scanner) Description() string { + return "Notion is a productivity tool that provides an all-in-one workspace for note-taking, project management, and collaboration. Notion API keys can be used to access and modify data within a user's Notion workspace." +} diff --git a/pkg/detectors/nozbeteams/nozbeteams.go b/pkg/detectors/nozbeteams/nozbeteams.go index a5d85f37680d..45e5c2b2144e 100644 --- a/pkg/detectors/nozbeteams/nozbeteams.go +++ b/pkg/detectors/nozbeteams/nozbeteams.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_NozbeTeams } + +func (s Scanner) Description() string { + return "NozbeTeams is a collaborative task and project management tool. NozbeTeams API keys can be used to access and manage tasks and projects within a NozbeTeams account." +} diff --git a/pkg/detectors/npmtoken/npmtoken.go b/pkg/detectors/npmtoken/npmtoken.go index 73a0f9800ccc..07f96bfc7421 100644 --- a/pkg/detectors/npmtoken/npmtoken.go +++ b/pkg/detectors/npmtoken/npmtoken.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_NpmToken } + +func (s Scanner) Description() string { + return "NPM tokens are used to authenticate and publish packages to the npm registry." +} diff --git a/pkg/detectors/npmtokenv2/npmtokenv2.go b/pkg/detectors/npmtokenv2/npmtokenv2.go index 15d54ba66606..5353e5f5f6b5 100644 --- a/pkg/detectors/npmtokenv2/npmtokenv2.go +++ b/pkg/detectors/npmtokenv2/npmtokenv2.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_NpmToken } + +func (s Scanner) Description() string { + return "NPM tokens are used to authenticate and publish packages to the NPM registry." +} diff --git a/pkg/detectors/nugetapikey/nugetapikey.go b/pkg/detectors/nugetapikey/nugetapikey.go index 4a7c6af99eab..1d3fbc7b7b5f 100644 --- a/pkg/detectors/nugetapikey/nugetapikey.go +++ b/pkg/detectors/nugetapikey/nugetapikey.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_NuGetApiKey } + +func (s Scanner) Description() string { + return "NuGet is a package manager for .NET. NuGet API keys can be used to publish and manage packages in the NuGet repository." +} diff --git a/pkg/detectors/numverify/numverify.go b/pkg/detectors/numverify/numverify.go index 420668491d1f..307ba49d881c 100644 --- a/pkg/detectors/numverify/numverify.go +++ b/pkg/detectors/numverify/numverify.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Numverify } + +func (s Scanner) Description() string { + return "Numverify is a service used to validate phone numbers and gather information about them. Numverify API keys can be used to access this service and validate phone numbers." +} diff --git a/pkg/detectors/nutritionix/nutritionix.go b/pkg/detectors/nutritionix/nutritionix.go index a22ca99a68c2..11c399d98bb5 100644 --- a/pkg/detectors/nutritionix/nutritionix.go +++ b/pkg/detectors/nutritionix/nutritionix.go @@ -85,3 +85,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Nutritionix } + +func (s Scanner) Description() string { + return "Nutritionix provides a food tracking API. The API keys can be used to access and log nutritional data." +} diff --git a/pkg/detectors/nvapi/nvapi.go b/pkg/detectors/nvapi/nvapi.go index 10df958d960b..652b855806d8 100644 --- a/pkg/detectors/nvapi/nvapi.go +++ b/pkg/detectors/nvapi/nvapi.go @@ -102,3 +102,7 @@ func verifyMatch(ctx context.Context, client *http.Client, token string) (bool, func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_NVAPI } + +func (s Scanner) Description() string { + return "NVAPI keys are used to authenticate API requests to NVIDIA's NGC API. They allow access to NVIDIA's NGC API to manage user data and perform actions on behalf of users." +} diff --git a/pkg/detectors/nylas/nylas.go b/pkg/detectors/nylas/nylas.go index c05e53460488..f384701e91ff 100644 --- a/pkg/detectors/nylas/nylas.go +++ b/pkg/detectors/nylas/nylas.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Nylas } + +func (s Scanner) Description() string { + return "Nylas is a platform providing email, calendar, and contacts APIs. Nylas API keys can be used to access and manage these services." +} diff --git a/pkg/detectors/oanda/oanda.go b/pkg/detectors/oanda/oanda.go index de31ae0c0e5d..ec96c5c8e90a 100644 --- a/pkg/detectors/oanda/oanda.go +++ b/pkg/detectors/oanda/oanda.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Oanda } + +func (s Scanner) Description() string { + return "Oanda is a forex trading platform. Oanda API keys can be used to access and manage trading accounts, execute trades, and retrieve market data." +} diff --git a/pkg/detectors/okta/okta.go b/pkg/detectors/okta/okta.go index 9642d2b3a83b..f72792b6b848 100644 --- a/pkg/detectors/okta/okta.go +++ b/pkg/detectors/okta/okta.go @@ -40,7 +40,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result for _, domainMatch := range domainPat.FindAll(data, -1) { domain := string(domainMatch) - s := detectors.Result{ + result := detectors.Result{ DetectorType: detectorspb.DetectorType_Okta, Raw: []byte(token), RawV2: []byte(fmt.Sprintf("%s:%s", domain, token)), @@ -71,12 +71,12 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result if resp.StatusCode >= 200 && resp.StatusCode < 300 { body, _ := io.ReadAll(resp.Body) if strings.Contains(string(body), "activated") { - s.Verified = true + result.Verified = true } } } - results = append(results, s) + results = append(results, result) } } @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Okta } + +func (s Scanner) Description() string { + return "Okta is an identity and access management service. Okta tokens can be used to authenticate and access various resources and APIs within an organization." +} diff --git a/pkg/detectors/omnisend/omnisend.go b/pkg/detectors/omnisend/omnisend.go index c058f07b74ac..681d2b0359cc 100644 --- a/pkg/detectors/omnisend/omnisend.go +++ b/pkg/detectors/omnisend/omnisend.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Omnisend } + +func (s Scanner) Description() string { + return "Omnisend is a marketing automation platform focused on e-commerce. Omnisend API keys can be used to access and manage marketing campaigns, contacts, and other resources within the Omnisend platform." +} diff --git a/pkg/detectors/onedesk/onedesk.go b/pkg/detectors/onedesk/onedesk.go index 597f16694e36..0afc88963034 100644 --- a/pkg/detectors/onedesk/onedesk.go +++ b/pkg/detectors/onedesk/onedesk.go @@ -88,3 +88,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Onedesk } + +func (s Scanner) Description() string { + return "Onedesk is a customer service and project management software. Onedesk credentials can be used to access and manage customer service tickets and project tasks." +} diff --git a/pkg/detectors/onelogin/onelogin.go b/pkg/detectors/onelogin/onelogin.go index 16ff03093788..d3d5b25aca6e 100644 --- a/pkg/detectors/onelogin/onelogin.go +++ b/pkg/detectors/onelogin/onelogin.go @@ -49,7 +49,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result continue } - s := detectors.Result{ + result := detectors.Result{ DetectorType: detectorspb.DetectorType_OneLogin, Raw: []byte(clientID[1]), RawV2: []byte(fmt.Sprintf("%s:%s", clientID[1], clientSecret[1])), @@ -70,13 +70,13 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result res.Body.Close() // The request body is unused. if res.StatusCode >= 200 && res.StatusCode < 300 { - s.Verified = true + result.Verified = true } } } } - results = append(results, s) + results = append(results, result) } } @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_OneLogin } + +func (s Scanner) Description() string { + return "OneLogin is an identity and access management provider. OneLogin OAuth client IDs and secrets can be used to authenticate and authorize API requests." +} diff --git a/pkg/detectors/onepagecrm/onepagecrm.go b/pkg/detectors/onepagecrm/onepagecrm.go index fe21cbf508ba..ee84c94d136a 100644 --- a/pkg/detectors/onepagecrm/onepagecrm.go +++ b/pkg/detectors/onepagecrm/onepagecrm.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_OnepageCRM } + +func (s Scanner) Description() string { + return "OnepageCRM is a simple CRM system designed for small businesses. The API keys can be used to access and manage contacts, deals, and other CRM data." +} diff --git a/pkg/detectors/onesignal/onesignal.go b/pkg/detectors/onesignal/onesignal.go index 1829a2188c10..c4377792c3ab 100644 --- a/pkg/detectors/onesignal/onesignal.go +++ b/pkg/detectors/onesignal/onesignal.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Onesignal } + +func (s Scanner) Description() string { + return "OneSignal is a customer engagement platform that enables businesses to send push notifications, in-app messages, SMS, and emails. OneSignal API keys can be used to access and send messages through these channels." +} diff --git a/pkg/detectors/onfleet/onfleet.go b/pkg/detectors/onfleet/onfleet.go index 5e348345f0a5..e3c18cbc2454 100644 --- a/pkg/detectors/onfleet/onfleet.go +++ b/pkg/detectors/onfleet/onfleet.go @@ -98,3 +98,7 @@ func verifyMatch(ctx context.Context, client *http.Client, token string) (bool, func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Onfleet } + +func (s Scanner) Description() string { + return "Onfleet is a delivery management software that allows businesses to manage and analyze their delivery operations. Onfleet API keys can be used to access and manage the delivery data and operations." +} diff --git a/pkg/detectors/oopspam/oopspam.go b/pkg/detectors/oopspam/oopspam.go index 0199c2b46d53..b2bc463750b8 100644 --- a/pkg/detectors/oopspam/oopspam.go +++ b/pkg/detectors/oopspam/oopspam.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_OOPSpam } + +func (s Scanner) Description() string { + return "OOPSpam is a spam detection service. OOPSpam API keys can be used to verify and detect spam content." +} diff --git a/pkg/detectors/openai/openai.go b/pkg/detectors/openai/openai.go index 9d81c8e2fd86..433b21d42b56 100644 --- a/pkg/detectors/openai/openai.go +++ b/pkg/detectors/openai/openai.go @@ -121,6 +121,10 @@ func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_OpenAI } +func (s Scanner) Description() string { + return "OpenAI provides various AI models and services. The API keys can be used to access and interact with these models and services." +} + type response struct { Object string `json:"object"` ID string `json:"id"` diff --git a/pkg/detectors/opencagedata/opencagedata.go b/pkg/detectors/opencagedata/opencagedata.go index 9b21e81e8f74..892f6358a3c2 100644 --- a/pkg/detectors/opencagedata/opencagedata.go +++ b/pkg/detectors/opencagedata/opencagedata.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_OpenCageData } + +func (s Scanner) Description() string { + return "OpenCageData provides a geocoding API to convert coordinates to and from places. OpenCageData keys can be used to access the service's geocoding capabilities." +} diff --git a/pkg/detectors/openuv/openuv.go b/pkg/detectors/openuv/openuv.go index 1a9f4bb8f2aa..d3028a534820 100644 --- a/pkg/detectors/openuv/openuv.go +++ b/pkg/detectors/openuv/openuv.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Openuv } + +func (s Scanner) Description() string { + return "Openuv provides UV index data through its API. These API keys can be used to access UV index information." +} diff --git a/pkg/detectors/openvpn/openvpn.go b/pkg/detectors/openvpn/openvpn.go index 8fc24973b91f..21900342097c 100644 --- a/pkg/detectors/openvpn/openvpn.go +++ b/pkg/detectors/openvpn/openvpn.go @@ -103,3 +103,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_OpenVpn } + +func (s Scanner) Description() string { + return "OpenVPN is a virtual private network (VPN) solution. OpenVPN API credentials can be used to manage and configure VPN connections and settings." +} diff --git a/pkg/detectors/openweather/openweather.go b/pkg/detectors/openweather/openweather.go index 747a373191a2..f115604126d7 100644 --- a/pkg/detectors/openweather/openweather.go +++ b/pkg/detectors/openweather/openweather.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_OpenWeather } + +func (s Scanner) Description() string { + return "OpenWeather provides weather data and forecasting services. OpenWeather API keys can be used to access these weather data services." +} diff --git a/pkg/detectors/opsgenie/opsgenie.go b/pkg/detectors/opsgenie/opsgenie.go index 19ee954ea159..4b29ee7538e5 100644 --- a/pkg/detectors/opsgenie/opsgenie.go +++ b/pkg/detectors/opsgenie/opsgenie.go @@ -36,6 +36,11 @@ func (s Scanner) Keywords() []string { return []string{"opsgenie"} } +// Description returns a description for the result being detected +func (s Scanner) Description() string { + return "Opsgenie is an alerting and incident management platform. Opsgenie API keys can be used to interact with the Opsgenie API to manage alerts and incidents." +} + // FromData will find and optionally verify Opsgenie secrets in a given set of bytes. func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (results []detectors.Result, err error) { dataStr := string(data) diff --git a/pkg/detectors/optimizely/optimizely.go b/pkg/detectors/optimizely/optimizely.go index f3a90e2b3a98..3513ba9cdf77 100644 --- a/pkg/detectors/optimizely/optimizely.go +++ b/pkg/detectors/optimizely/optimizely.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Optimizely } + +func (s Scanner) Description() string { + return "Optimizely is a platform for A/B testing and feature flagging. Optimizely API keys can be used to manage and access these services." +} diff --git a/pkg/detectors/overloop/overloop.go b/pkg/detectors/overloop/overloop.go index 61310545c034..d5600bceb0c4 100644 --- a/pkg/detectors/overloop/overloop.go +++ b/pkg/detectors/overloop/overloop.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Overloop } + +func (s Scanner) Description() string { + return "Overloop is a service that provides API keys for accessing its platform. These keys can be used to interact with the Overloop API to manage and retrieve user data." +} diff --git a/pkg/detectors/owlbot/owlbot.go b/pkg/detectors/owlbot/owlbot.go index d8ca5fea1c09..081313626791 100644 --- a/pkg/detectors/owlbot/owlbot.go +++ b/pkg/detectors/owlbot/owlbot.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Owlbot } + +func (s Scanner) Description() string { + return "Owlbot is an API service providing dictionary definitions, synonyms, and example sentences. Owlbot API keys can be used to access and retrieve this data." +} diff --git a/pkg/detectors/packagecloud/packagecloud.go b/pkg/detectors/packagecloud/packagecloud.go index f7ec0ffb05ba..75224ea0703e 100644 --- a/pkg/detectors/packagecloud/packagecloud.go +++ b/pkg/detectors/packagecloud/packagecloud.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PackageCloud } + +func (s Scanner) Description() string { + return "PackageCloud is a cloud-based service for hosting and distributing software packages. PackageCloud API keys can be used to manage and access these packages." +} diff --git a/pkg/detectors/pagarme/pagarme.go b/pkg/detectors/pagarme/pagarme.go index af1fca76e093..5f6b384c2742 100644 --- a/pkg/detectors/pagarme/pagarme.go +++ b/pkg/detectors/pagarme/pagarme.go @@ -67,7 +67,6 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result } func verifyMatch(ctx context.Context, client *http.Client, token string) (bool, map[string]string, error) { - //req, err := http.NewRequestWithContext(ctx, http.MethodPost, "https://api.pagar.me/1/balance", nil) send a post to this endpoint with the parameters api_key=token data := `{"api_key":"` + token + `"}` payload := strings.NewReader(data) @@ -103,3 +102,7 @@ func verifyMatch(ctx context.Context, client *http.Client, token string) (bool, func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Pagarme } + +func (s Scanner) Description() string { + return "Pagarme is a payment service provider. Pagarme API keys can be used to access and manage payment transactions and other related services." +} diff --git a/pkg/detectors/pagerdutyapikey/pagerdutyapikey.go b/pkg/detectors/pagerdutyapikey/pagerdutyapikey.go index 815641c7acec..ad2db0e56f65 100644 --- a/pkg/detectors/pagerdutyapikey/pagerdutyapikey.go +++ b/pkg/detectors/pagerdutyapikey/pagerdutyapikey.go @@ -96,3 +96,7 @@ func verifyPagerdutyapikey(ctx context.Context, client *http.Client, token strin func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PagerDutyApiKey } + +func (s Scanner) Description() string { + return "PagerDuty is an incident management platform that provides reliable notifications, automatic escalations, on-call scheduling, and other functionality to help teams detect and fix infrastructure problems quickly. PagerDuty API keys can be used to access and manage these functionalities." +} diff --git a/pkg/detectors/pandadoc/pandadoc.go b/pkg/detectors/pandadoc/pandadoc.go index 2c8a579c64c2..2c5d76e102e2 100644 --- a/pkg/detectors/pandadoc/pandadoc.go +++ b/pkg/detectors/pandadoc/pandadoc.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Pandadoc } + +func (s Scanner) Description() string { + return "Pandadoc is a document automation software that helps create, manage, and sign digital documents. Pandadoc API keys can be used to access and manage documents through the Pandadoc API." +} diff --git a/pkg/detectors/pandascore/pandascore.go b/pkg/detectors/pandascore/pandascore.go index 23e54577e817..64f40812e641 100644 --- a/pkg/detectors/pandascore/pandascore.go +++ b/pkg/detectors/pandascore/pandascore.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PandaScore } + +func (s Scanner) Description() string { + return "PandaScore is an esports data provider offering a wide range of statistics and live data for various video games. PandaScore API keys can be used to access and retrieve this data." +} diff --git a/pkg/detectors/paperform/paperform.go b/pkg/detectors/paperform/paperform.go index 06e364a5c328..a069c3de0be9 100644 --- a/pkg/detectors/paperform/paperform.go +++ b/pkg/detectors/paperform/paperform.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Paperform } + +func (s Scanner) Description() string { + return "An API for building and creating forms. API keys could be used to read proprietary or not public form data" +} diff --git a/pkg/detectors/paralleldots/paralleldots.go b/pkg/detectors/paralleldots/paralleldots.go index 1af81ee282af..94cfeee56c5c 100644 --- a/pkg/detectors/paralleldots/paralleldots.go +++ b/pkg/detectors/paralleldots/paralleldots.go @@ -97,3 +97,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ParallelDots } + +func (s Scanner) Description() string { + return "ParallelDots is an AI service offering various APIs for text analysis. API keys can be used to access these services." +} diff --git a/pkg/detectors/parsehub/parsehub.go b/pkg/detectors/parsehub/parsehub.go index 7da8861ae136..2bc66ff477a7 100644 --- a/pkg/detectors/parsehub/parsehub.go +++ b/pkg/detectors/parsehub/parsehub.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Parsehub } + +func (s Scanner) Description() string { + return "Parsehub is a web scraping service that allows users to extract data from websites. Parsehub API keys can be used to access and manage scraping projects." +} diff --git a/pkg/detectors/parsers/parsers.go b/pkg/detectors/parsers/parsers.go index 3114283418cf..58439f852f49 100644 --- a/pkg/detectors/parsers/parsers.go +++ b/pkg/detectors/parsers/parsers.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Parsers } + +func (s Scanner) Description() string { + return "Parsers is a service used for parsing SQL queries. Parsers API keys can be used to access and modify this data." +} diff --git a/pkg/detectors/parseur/parseur.go b/pkg/detectors/parseur/parseur.go index f0e7dce37122..44f647b6fb60 100644 --- a/pkg/detectors/parseur/parseur.go +++ b/pkg/detectors/parseur/parseur.go @@ -85,3 +85,7 @@ func verifyResult(ctx context.Context, client *http.Client, token string) (bool, func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Parseur } + +func (s Scanner) Description() string { + return "Parseur is a document parsing software used to extract data from emails and other documents. Parseur API keys can be used to access and manage this data." +} diff --git a/pkg/detectors/partnerstack/partnerstack.go b/pkg/detectors/partnerstack/partnerstack.go index a0a81cc0be99..64d5bc335900 100644 --- a/pkg/detectors/partnerstack/partnerstack.go +++ b/pkg/detectors/partnerstack/partnerstack.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Partnerstack } + +func (s Scanner) Description() string { + return "PartnerStack is a partner management platform that helps companies manage their partner programs. PartnerStack API keys can be used to access and manage these programs." +} diff --git a/pkg/detectors/pastebin/pastebin.go b/pkg/detectors/pastebin/pastebin.go index 7e1abaaced38..29b79a9def50 100644 --- a/pkg/detectors/pastebin/pastebin.go +++ b/pkg/detectors/pastebin/pastebin.go @@ -100,3 +100,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Pastebin } + +func (s Scanner) Description() string { + return "Pastebin is a website where users can store plain text. Pastebin keys can be used to access and manipulate stored data." +} diff --git a/pkg/detectors/paydirtapp/paydirtapp.go b/pkg/detectors/paydirtapp/paydirtapp.go index d74acd9d2b4d..dbdaf759dd37 100644 --- a/pkg/detectors/paydirtapp/paydirtapp.go +++ b/pkg/detectors/paydirtapp/paydirtapp.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Paydirtapp } + +func (s Scanner) Description() string { + return "Paydirtapp is a time tracking and invoicing app. Paydirtapp API keys can be used to access and manage user data and billing information." +} diff --git a/pkg/detectors/paymoapp/paymoapp.go b/pkg/detectors/paymoapp/paymoapp.go index 13a9f4b413d5..b52b3ef13f7f 100644 --- a/pkg/detectors/paymoapp/paymoapp.go +++ b/pkg/detectors/paymoapp/paymoapp.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Paymoapp } + +func (s Scanner) Description() string { + return "Paymoapp is a project management and collaboration tool. Paymoapp API keys can be used to access and modify project data and user information." +} diff --git a/pkg/detectors/paymongo/paymongo.go b/pkg/detectors/paymongo/paymongo.go index ee3d555fc295..40c165bbc604 100644 --- a/pkg/detectors/paymongo/paymongo.go +++ b/pkg/detectors/paymongo/paymongo.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Paymongo } + +func (s Scanner) Description() string { + return "PayMongo is a payment processing platform in the Philippines. PayMongo API keys can be used to access and manage payment methods, transactions, and other related data." +} diff --git a/pkg/detectors/paypaloauth/paypaloauth.go b/pkg/detectors/paypaloauth/paypaloauth.go index d656f86064ec..9fcc2c971284 100644 --- a/pkg/detectors/paypaloauth/paypaloauth.go +++ b/pkg/detectors/paypaloauth/paypaloauth.go @@ -89,3 +89,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PaypalOauth } + +func (s Scanner) Description() string { + return "PaypalOauth is used for authenticating with PayPal's API. These credentials can be used to access and perform transactions on behalf of a PayPal account." +} diff --git a/pkg/detectors/paystack/paystack.go b/pkg/detectors/paystack/paystack.go index f7ee3c37da97..0cb169919e0e 100644 --- a/pkg/detectors/paystack/paystack.go +++ b/pkg/detectors/paystack/paystack.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Paystack } + +func (s Scanner) Description() string { + return "Paystack is a payment processing service. Paystack API keys can be used to access and manage payment transactions and customer data." +} diff --git a/pkg/detectors/pdflayer/pdflayer.go b/pkg/detectors/pdflayer/pdflayer.go index e83d98957ec5..c1fd82035941 100644 --- a/pkg/detectors/pdflayer/pdflayer.go +++ b/pkg/detectors/pdflayer/pdflayer.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PdfLayer } + +func (s Scanner) Description() string { + return "PdfLayer is a service for converting HTML documents to PDF. PdfLayer API keys can be used to access and utilize the PDF conversion service." +} diff --git a/pkg/detectors/pdfshift/pdfshift.go b/pkg/detectors/pdfshift/pdfshift.go index 9b480bcad279..c2345866a5df 100644 --- a/pkg/detectors/pdfshift/pdfshift.go +++ b/pkg/detectors/pdfshift/pdfshift.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PdfShift } + +func (s Scanner) Description() string { + return "PdfShift is a service for converting HTML documents to PDF. PdfShift API keys can be used to access and utilize this conversion service." +} diff --git a/pkg/detectors/peopledatalabs/peopledatalabs.go b/pkg/detectors/peopledatalabs/peopledatalabs.go index bb406e373a2c..a14655fb7436 100644 --- a/pkg/detectors/peopledatalabs/peopledatalabs.go +++ b/pkg/detectors/peopledatalabs/peopledatalabs.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PeopleDataLabs } + +func (s Scanner) Description() string { + return "PeopleDataLabs provides access to person and company data through their API. The API keys can be used to enrich profiles with additional data." +} diff --git a/pkg/detectors/pepipost/pepipost.go b/pkg/detectors/pepipost/pepipost.go index 7a62e68045c0..767dabc0c822 100644 --- a/pkg/detectors/pepipost/pepipost.go +++ b/pkg/detectors/pepipost/pepipost.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Pepipost } + +func (s Scanner) Description() string { + return "Pepipost is an email delivery service. The API keys can be used to send and track emails through Pepipost's infrastructure." +} diff --git a/pkg/detectors/percy/percy.go b/pkg/detectors/percy/percy.go index ca6e64ae757a..6a74eb373fa3 100644 --- a/pkg/detectors/percy/percy.go +++ b/pkg/detectors/percy/percy.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Percy } + +func (s Scanner) Description() string { + return "Percy is a visual testing and review platform. Percy tokens can be used to access and manage visual testing projects." +} diff --git a/pkg/detectors/pinata/pinata.go b/pkg/detectors/pinata/pinata.go index 7a4865d650e8..3b0499747085 100644 --- a/pkg/detectors/pinata/pinata.go +++ b/pkg/detectors/pinata/pinata.go @@ -87,3 +87,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Pinata } + +func (s Scanner) Description() string { + return "Pinata is a service for managing files on IPFS. Pinata API keys can be used to pin and manage files on the IPFS network." +} diff --git a/pkg/detectors/pipedream/pipedream.go b/pkg/detectors/pipedream/pipedream.go index ea0d4d8aaa9d..78a2425477bf 100644 --- a/pkg/detectors/pipedream/pipedream.go +++ b/pkg/detectors/pipedream/pipedream.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Pipedream } + +func (s Scanner) Description() string { + return "Pipedream is an integration platform for developers to build and run workflows that integrate apps, data, and APIs. Pipedream API keys can be used to access and modify these workflows and data." +} diff --git a/pkg/detectors/pipedrive/pipedrive.go b/pkg/detectors/pipedrive/pipedrive.go index 09ef200ba92e..62f21831accf 100644 --- a/pkg/detectors/pipedrive/pipedrive.go +++ b/pkg/detectors/pipedrive/pipedrive.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Pipedrive } + +func (s Scanner) Description() string { + return "Pipedrive is a sales-focused customer relationship management (CRM) tool. Pipedrive API tokens can be used to access and manipulate CRM data." +} diff --git a/pkg/detectors/pivotaltracker/pivotaltracker.go b/pkg/detectors/pivotaltracker/pivotaltracker.go index d0e37ce4f187..3bd95259c696 100644 --- a/pkg/detectors/pivotaltracker/pivotaltracker.go +++ b/pkg/detectors/pivotaltracker/pivotaltracker.go @@ -41,7 +41,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result token := match[1] - s := detectors.Result{ + result := detectors.Result{ DetectorType: detectorspb.DetectorType_PivotalTracker, Raw: []byte(token), } @@ -60,12 +60,12 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result res.Body.Close() // The request body is unused. if res.StatusCode >= 200 && res.StatusCode < 300 { - s.Verified = true + result.Verified = true } } } - results = append(results, s) + results = append(results, result) } return results, nil @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PivotalTracker } + +func (s Scanner) Description() string { + return "PivotalTracker is a project management tool. PivotalTracker tokens can be used to access and manage projects and data within PivotalTracker." +} diff --git a/pkg/detectors/pixabay/pixabay.go b/pkg/detectors/pixabay/pixabay.go index df09f2f05b74..bc4f863f45a6 100644 --- a/pkg/detectors/pixabay/pixabay.go +++ b/pkg/detectors/pixabay/pixabay.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Pixabay } + +func (s Scanner) Description() string { + return "Pixabay is a website for sharing photos, illustrations, vector graphics, and film footage under a proprietary license. Pixabay API keys can be used to access and retrieve this media content programmatically." +} diff --git a/pkg/detectors/plaidkey/plaidkey.go b/pkg/detectors/plaidkey/plaidkey.go index c94ff26a7577..c9634298b36b 100644 --- a/pkg/detectors/plaidkey/plaidkey.go +++ b/pkg/detectors/plaidkey/plaidkey.go @@ -89,3 +89,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PlaidKey } + +func (s Scanner) Description() string { + return "Plaid is a financial services company that provides a way to connect applications to users' bank accounts. Plaid API keys can be used to access and manage financial data." +} diff --git a/pkg/detectors/planetscale/planetscale.go b/pkg/detectors/planetscale/planetscale.go index d37971a1408e..1e42fb9e1575 100644 --- a/pkg/detectors/planetscale/planetscale.go +++ b/pkg/detectors/planetscale/planetscale.go @@ -88,3 +88,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PlanetScale } + +func (s Scanner) Description() string { + return "PlanetScale is a database platform. PlanetScale tokens can be used to access and manage database instances." +} diff --git a/pkg/detectors/planetscaledb/planetscaledb.go b/pkg/detectors/planetscaledb/planetscaledb.go index 08bf01ac15b2..13cef6e0cf26 100644 --- a/pkg/detectors/planetscaledb/planetscaledb.go +++ b/pkg/detectors/planetscaledb/planetscaledb.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PlanetScaleDb } + +func (s Scanner) Description() string { + return "PlanetScaleDB is a serverless database platform built on Vitess. Credentials found here can be used to connect to the database and perform operations." +} diff --git a/pkg/detectors/planviewleankit/planviewleankit.go b/pkg/detectors/planviewleankit/planviewleankit.go index 8c565352bc2c..2d9466c38851 100644 --- a/pkg/detectors/planviewleankit/planviewleankit.go +++ b/pkg/detectors/planviewleankit/planviewleankit.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PlanviewLeanKit } + +func (s Scanner) Description() string { + return "Planview LeanKit is a visual project delivery tool that enables teams to apply Lean management principles to their work. The detected credential can be used to access and manage LeanKit accounts." +} diff --git a/pkg/detectors/planyo/planyo.go b/pkg/detectors/planyo/planyo.go index e5a33be83c59..a89902118de4 100644 --- a/pkg/detectors/planyo/planyo.go +++ b/pkg/detectors/planyo/planyo.go @@ -3,11 +3,12 @@ package planyo import ( "context" "fmt" - regexp "github.com/wasilibs/go-re2" "io" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -78,3 +79,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Planyo } + +func (s Scanner) Description() string { + return "Planyo is an online reservation system that offers various API methods to interact with its services. Planyo API keys can be used to access and modify reservation data." +} diff --git a/pkg/detectors/plivo/plivo.go b/pkg/detectors/plivo/plivo.go index 81fdfde55082..7810f214a803 100644 --- a/pkg/detectors/plivo/plivo.go +++ b/pkg/detectors/plivo/plivo.go @@ -85,3 +85,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Plivo } + +func (s Scanner) Description() string { + return "Plivo is a cloud-based communications platform that provides API services for voice and messaging. Plivo credentials can be used to access and manage these services." +} diff --git a/pkg/detectors/podio/podio.go b/pkg/detectors/podio/podio.go index 3978c4266cb3..1e16e7b990ab 100644 --- a/pkg/detectors/podio/podio.go +++ b/pkg/detectors/podio/podio.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Podio } + +func (s Scanner) Description() string { + return "Podio is an intranet communication platform. API keys can be used to read sensitive data" +} diff --git a/pkg/detectors/pollsapi/pollsapi.go b/pkg/detectors/pollsapi/pollsapi.go index 562f734821f0..9fde442f5fd1 100644 --- a/pkg/detectors/pollsapi/pollsapi.go +++ b/pkg/detectors/pollsapi/pollsapi.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PollsAPI } + +func (s Scanner) Description() string { + return "PollsAPI is a service used for creating and managing polls. PollsAPI keys can be used to access and modify poll data." +} diff --git a/pkg/detectors/poloniex/poloniex.go b/pkg/detectors/poloniex/poloniex.go index 2514c92ad89a..b157391f19ca 100644 --- a/pkg/detectors/poloniex/poloniex.go +++ b/pkg/detectors/poloniex/poloniex.go @@ -106,3 +106,7 @@ func getPoloniexSignature(secret string, payload string) string { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Poloniex } + +func (s Scanner) Description() string { + return "Poloniex is a cryptocurrency exchange that allows users to trade various digital assets. Poloniex API keys can be used to access and manage account data and perform trading operations." +} diff --git a/pkg/detectors/polygon/polygon.go b/pkg/detectors/polygon/polygon.go index d3da6a4ce06f..34d6e8dc4ade 100644 --- a/pkg/detectors/polygon/polygon.go +++ b/pkg/detectors/polygon/polygon.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Polygon } + +func (s Scanner) Description() string { + return "Polygon is a protocol and a framework for building and connecting Ethereum-compatible blockchain networks. Polygon API keys can be used to interact with its services and access blockchain data." +} diff --git a/pkg/detectors/portainer/portainer.go b/pkg/detectors/portainer/portainer.go index 56af42e7eec8..8cb20a5f7166 100644 --- a/pkg/detectors/portainer/portainer.go +++ b/pkg/detectors/portainer/portainer.go @@ -101,3 +101,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Portainer } + +func (s Scanner) Description() string { + return "Portainer is a management UI for Docker, Docker Swarm, Kubernetes, and Azure ACI. Portainer API tokens can be used to access and control these environments." +} diff --git a/pkg/detectors/portainertoken/portainertoken.go b/pkg/detectors/portainertoken/portainertoken.go index 53b88df1db11..257f3b6c4244 100644 --- a/pkg/detectors/portainertoken/portainertoken.go +++ b/pkg/detectors/portainertoken/portainertoken.go @@ -102,3 +102,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PortainerToken } + +func (s Scanner) Description() string { + return "Portainer is a management UI for Docker environments. Portainer tokens can be used to authenticate and interact with the Portainer API." +} diff --git a/pkg/detectors/positionstack/positionstack.go b/pkg/detectors/positionstack/positionstack.go index 7001be4516a9..3482c3624e45 100644 --- a/pkg/detectors/positionstack/positionstack.go +++ b/pkg/detectors/positionstack/positionstack.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PositionStack } + +func (s Scanner) Description() string { + return "PositionStack is a geocoding API service providing forward and reverse geocoding. PositionStack API keys can be used to access geocoding services to convert addresses to coordinates and vice versa." +} diff --git a/pkg/detectors/postageapp/postageapp.go b/pkg/detectors/postageapp/postageapp.go index 3f119e824d04..cf0e7fce3430 100644 --- a/pkg/detectors/postageapp/postageapp.go +++ b/pkg/detectors/postageapp/postageapp.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PostageApp } + +func (s Scanner) Description() string { + return "PostageApp is a service for sending emails via their API. The API keys can be used to send emails and access account information." +} diff --git a/pkg/detectors/postbacks/postbacks.go b/pkg/detectors/postbacks/postbacks.go index 8c4c00f22903..e2b12755395b 100644 --- a/pkg/detectors/postbacks/postbacks.go +++ b/pkg/detectors/postbacks/postbacks.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Postbacks } + +func (s Scanner) Description() string { + return "Postbacks are used to send data to a specified URL based on certain events or triggers. Postback URLs are often used in affiliate marketing, ad tracking, and analytics." +} diff --git a/pkg/detectors/postgres/postgres.go b/pkg/detectors/postgres/postgres.go index 8b8c82e89335..8f25ed3def71 100644 --- a/pkg/detectors/postgres/postgres.go +++ b/pkg/detectors/postgres/postgres.go @@ -243,3 +243,7 @@ func verifyPostgres(params map[string]string) (bool, error) { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Postgres } + +func (s Scanner) Description() string { + return "Postgres connection string containing credentials" +} diff --git a/pkg/detectors/posthog/posthog.go b/pkg/detectors/posthog/posthog.go index ca47572c478e..f5a52453949a 100644 --- a/pkg/detectors/posthog/posthog.go +++ b/pkg/detectors/posthog/posthog.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PosthogApp } + +func (s Scanner) Description() string { + return "PostHog is an open-source product analytics platform. The phx_ keys are used to authenticate and track events in PostHog." +} diff --git a/pkg/detectors/postman/postman.go b/pkg/detectors/postman/postman.go index 25b1ce1196f2..ad05155d575b 100644 --- a/pkg/detectors/postman/postman.go +++ b/pkg/detectors/postman/postman.go @@ -100,3 +100,7 @@ func verifyPostman(ctx context.Context, client *http.Client, token string) (bool func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Postman } + +func (s Scanner) Description() string { + return "Postman is a collaboration platform for API development. Postman API keys can be used to access and modify collections, environments, and other resources." +} diff --git a/pkg/detectors/postmark/postmark.go b/pkg/detectors/postmark/postmark.go index 1ffe18df0707..ebca6d5246a1 100644 --- a/pkg/detectors/postmark/postmark.go +++ b/pkg/detectors/postmark/postmark.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Postmark } + +func (s Scanner) Description() string { + return "Postmark is an email delivery service. Postmark server tokens can be used to access and manage email delivery and statistics." +} diff --git a/pkg/detectors/powrbot/powrbot.go b/pkg/detectors/powrbot/powrbot.go index 16b7790fd9a2..9f83d40e9687 100644 --- a/pkg/detectors/powrbot/powrbot.go +++ b/pkg/detectors/powrbot/powrbot.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Powrbot } + +func (s Scanner) Description() string { + return "Powrbot is a service that provides company information. Powrbot API keys can be used to access and retrieve data from their database." +} diff --git a/pkg/detectors/prefect/prefect.go b/pkg/detectors/prefect/prefect.go index c9d6dc0a215a..4c4433de326b 100644 --- a/pkg/detectors/prefect/prefect.go +++ b/pkg/detectors/prefect/prefect.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Prefect } + +func (s Scanner) Description() string { + return "Prefect is a workflow orchestration tool. Prefect API keys can be used to access and manage workflows and tasks." +} diff --git a/pkg/detectors/privacy/privacy.go b/pkg/detectors/privacy/privacy.go index f85a3ad6215d..58d4934affdd 100644 --- a/pkg/detectors/privacy/privacy.go +++ b/pkg/detectors/privacy/privacy.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Privacy } + +func (s Scanner) Description() string { + return "Privacy provides virtual cards for secure online payments. Privacy API keys can be used to manage and create these virtual cards." +} diff --git a/pkg/detectors/privatekey/privatekey.go b/pkg/detectors/privatekey/privatekey.go index 1aa30655986e..87cb8ccc2f3b 100644 --- a/pkg/detectors/privatekey/privatekey.go +++ b/pkg/detectors/privatekey/privatekey.go @@ -155,6 +155,10 @@ func (s Scanner) IsFalsePositive(_ detectors.Result) (bool, string) { return false, "" } +func (s Scanner) Description() string { + return "Private keys are used for securely connecting and authenticating to various systems and services. Exposure of private keys can lead to unauthorized access and data breaches." +} + type result struct { CertificateURLs []string GitHubUsername string diff --git a/pkg/detectors/prodpad/prodpad.go b/pkg/detectors/prodpad/prodpad.go index 384ff3e21627..38b451b814dd 100644 --- a/pkg/detectors/prodpad/prodpad.go +++ b/pkg/detectors/prodpad/prodpad.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Prodpad } + +func (s Scanner) Description() string { + return "Prodpad is a product management tool that helps teams plan and manage product development. Prodpad API keys can be used to access and modify product data and configurations." +} diff --git a/pkg/detectors/prospectcrm/prospectcrm.go b/pkg/detectors/prospectcrm/prospectcrm.go index c82cba508db1..5b2605559677 100644 --- a/pkg/detectors/prospectcrm/prospectcrm.go +++ b/pkg/detectors/prospectcrm/prospectcrm.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ProspectCRM } + +func (s Scanner) Description() string { + return "ProspectCRM is a customer relationship management system. The API keys can be used to access and manage customer data within ProspectCRM." +} diff --git a/pkg/detectors/protocolsio/protocolsio.go b/pkg/detectors/protocolsio/protocolsio.go index 4ffa176e8209..5d7d306ed11b 100644 --- a/pkg/detectors/protocolsio/protocolsio.go +++ b/pkg/detectors/protocolsio/protocolsio.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ProtocolsIO } + +func (s Scanner) Description() string { + return "Protocols.io is a platform for developing and sharing reproducible research protocols. The API keys can be used to access and manage protocols and data on the platform." +} diff --git a/pkg/detectors/proxycrawl/proxycrawl.go b/pkg/detectors/proxycrawl/proxycrawl.go index 86b56ebb2f77..ccbc21a813ad 100644 --- a/pkg/detectors/proxycrawl/proxycrawl.go +++ b/pkg/detectors/proxycrawl/proxycrawl.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ProxyCrawl } + +func (s Scanner) Description() string { + return "ProxyCrawl is a service that provides web scraping and crawling capabilities. ProxyCrawl tokens can be used to access and control these services." +} diff --git a/pkg/detectors/pubnubpublishkey/pubnubpublishkey.go b/pkg/detectors/pubnubpublishkey/pubnubpublishkey.go index 0c10b6aaf561..3488509e9615 100644 --- a/pkg/detectors/pubnubpublishkey/pubnubpublishkey.go +++ b/pkg/detectors/pubnubpublishkey/pubnubpublishkey.go @@ -107,3 +107,7 @@ func verifyPubNub(ctx context.Context, client *http.Client, resMatch, ressubMatc func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PubNubPublishKey } + +func (s Scanner) Description() string { + return "PubNub is a real-time communication platform that provides APIs for sending and receiving messages. Publish keys are used to send messages to channels, while subscribe keys are used to receive messages from channels." +} diff --git a/pkg/detectors/pubnubsubscriptionkey/pubnubsubscriptionkey.go b/pkg/detectors/pubnubsubscriptionkey/pubnubsubscriptionkey.go index f5017000f515..510eb236ead4 100644 --- a/pkg/detectors/pubnubsubscriptionkey/pubnubsubscriptionkey.go +++ b/pkg/detectors/pubnubsubscriptionkey/pubnubsubscriptionkey.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PubNubSubscriptionKey } + +func (s Scanner) Description() string { + return "PubNub is a real-time communication platform. A PubNub Subscription Key allows access to the PubNub API for subscribing to channels and receiving messages." +} diff --git a/pkg/detectors/pulumi/pulumi.go b/pkg/detectors/pulumi/pulumi.go index 27ce74f789a6..749b0357a11c 100644 --- a/pkg/detectors/pulumi/pulumi.go +++ b/pkg/detectors/pulumi/pulumi.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Pulumi } + +func (s Scanner) Description() string { + return "Pulumi is an Infrastructure as Code platform. Pulumi API keys can be used to manage cloud infrastructure and services." +} diff --git a/pkg/detectors/purestake/purestake.go b/pkg/detectors/purestake/purestake.go index 831fa5b18880..e09ad3b2488e 100644 --- a/pkg/detectors/purestake/purestake.go +++ b/pkg/detectors/purestake/purestake.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PureStake } + +func (s Scanner) Description() string { + return "PureStake is a blockchain infrastructure provider. PureStake API keys can be used to interact with the Algorand blockchain network." +} diff --git a/pkg/detectors/pushbulletapikey/pushbulletapikey.go b/pkg/detectors/pushbulletapikey/pushbulletapikey.go index 715c6c49f193..acdc038c60f6 100644 --- a/pkg/detectors/pushbulletapikey/pushbulletapikey.go +++ b/pkg/detectors/pushbulletapikey/pushbulletapikey.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PushBulletApiKey } + +func (s Scanner) Description() string { + return "Pushbullet is a service that allows you to send notifications between your devices. Pushbullet API keys can be used to interact with the Pushbullet API to send and receive notifications." +} diff --git a/pkg/detectors/pusherchannelkey/pusherchannelkey.go b/pkg/detectors/pusherchannelkey/pusherchannelkey.go index d5bed66668f5..01a9ef25bac8 100644 --- a/pkg/detectors/pusherchannelkey/pusherchannelkey.go +++ b/pkg/detectors/pusherchannelkey/pusherchannelkey.go @@ -135,3 +135,7 @@ func hmacBytes(toSign, secret []byte) []byte { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PusherChannelKey } + +func (s Scanner) Description() string { + return "Pusher is a service for adding real-time functionality to web and mobile apps. Pusher Channel keys can be used to authenticate and send messages to channels." +} diff --git a/pkg/detectors/pypi/pypi.go b/pkg/detectors/pypi/pypi.go index 00376cf849cc..a0f3c55bcacf 100644 --- a/pkg/detectors/pypi/pypi.go +++ b/pkg/detectors/pypi/pypi.go @@ -123,3 +123,7 @@ func verifyMatch(ctx context.Context, client *http.Client, token string) (bool, func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_PyPI } + +func (s Scanner) Description() string { + return "PyPI is a repository of software for the Python programming language. The credential allows for managing Pypi packages." +} diff --git a/pkg/detectors/qase/qase.go b/pkg/detectors/qase/qase.go index d4eaf50df157..97302120b75c 100644 --- a/pkg/detectors/qase/qase.go +++ b/pkg/detectors/qase/qase.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Qase } + +func (s Scanner) Description() string { + return "Qase is a test management platform that allows users to manage test cases, plans, and runs. Qase API tokens can be used to access and modify test data and settings." +} diff --git a/pkg/detectors/qualaroo/qualaroo.go b/pkg/detectors/qualaroo/qualaroo.go index 2a5341d34adb..6ed98e20058e 100644 --- a/pkg/detectors/qualaroo/qualaroo.go +++ b/pkg/detectors/qualaroo/qualaroo.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Qualaroo } + +func (s Scanner) Description() string { + return "Qualaroo is a customer survey tool that helps in collecting feedback from users. Qualaroo API keys can be used to access and manage survey data." +} diff --git a/pkg/detectors/qubole/qubole.go b/pkg/detectors/qubole/qubole.go index 39932a72a255..579a32ba71d4 100644 --- a/pkg/detectors/qubole/qubole.go +++ b/pkg/detectors/qubole/qubole.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Qubole } + +func (s Scanner) Description() string { + return "Qubole is a cloud-based data platform that provides data processing, management, and analytics services. Qubole API keys can be used to access and manage data workflows and resources." +} diff --git a/pkg/detectors/rabbitmq/rabbitmq.go b/pkg/detectors/rabbitmq/rabbitmq.go index 1296a93df38e..68986462b43d 100644 --- a/pkg/detectors/rabbitmq/rabbitmq.go +++ b/pkg/detectors/rabbitmq/rabbitmq.go @@ -85,3 +85,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RabbitMQ } + +func (s Scanner) Description() string { + return "RabbitMQ is an open-source message broker software that originally implemented the Advanced Message Queuing Protocol (AMQP). RabbitMQ credentials can be used to access and manage message queues." +} diff --git a/pkg/detectors/ramp/ramp.go b/pkg/detectors/ramp/ramp.go index 9100c880b9a9..0b6e14f6d118 100644 --- a/pkg/detectors/ramp/ramp.go +++ b/pkg/detectors/ramp/ramp.go @@ -104,3 +104,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Ramp } + +func (s Scanner) Description() string { + return "Ramp provides financial services including expense management and corporate cards. Ramp credentials can be used to access and manage these financial services." +} diff --git a/pkg/detectors/rapidapi/rapidapi.go b/pkg/detectors/rapidapi/rapidapi.go index 38ee1791d822..263fc5c95877 100644 --- a/pkg/detectors/rapidapi/rapidapi.go +++ b/pkg/detectors/rapidapi/rapidapi.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RapidApi } + +func (s Scanner) Description() string { + return "RapidAPI is a platform for connecting to thousands of APIs. RapidAPI keys can be used to access and interact with these APIs." +} diff --git a/pkg/detectors/raven/raven.go b/pkg/detectors/raven/raven.go index 92bce8be0e21..3f338195b549 100644 --- a/pkg/detectors/raven/raven.go +++ b/pkg/detectors/raven/raven.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Raven } + +func (s Scanner) Description() string { + return "Raven credentials can be used to access and manage your Raven account and services." +} diff --git a/pkg/detectors/rawg/rawg.go b/pkg/detectors/rawg/rawg.go index 464e0eca0261..7a87244ed143 100644 --- a/pkg/detectors/rawg/rawg.go +++ b/pkg/detectors/rawg/rawg.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Rawg } + +func (s Scanner) Description() string { + return "RAWG is a video game database and discovery service. RAWG API keys can be used to access game data and related services." +} diff --git a/pkg/detectors/razorpay/razorpay.go b/pkg/detectors/razorpay/razorpay.go index 13a142478c23..aaebbe1a770b 100644 --- a/pkg/detectors/razorpay/razorpay.go +++ b/pkg/detectors/razorpay/razorpay.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RazorPay } + +func (s Scanner) Description() string { + return "RazorPay is a payment gateway service that allows businesses to accept, process, and disburse payments. RazorPay keys can be used to access and manage payment transactions." +} diff --git a/pkg/detectors/reachmail/reachmail.go b/pkg/detectors/reachmail/reachmail.go index 7756c5099baa..363f4fed942a 100644 --- a/pkg/detectors/reachmail/reachmail.go +++ b/pkg/detectors/reachmail/reachmail.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Reachmail } + +func (s Scanner) Description() string { + return "Reachmail is an email marketing service. Reachmail API keys can be used to access and manage email marketing campaigns and user data." +} diff --git a/pkg/detectors/readme/readme.go b/pkg/detectors/readme/readme.go index ecb4826f5950..2921fb9df4ae 100644 --- a/pkg/detectors/readme/readme.go +++ b/pkg/detectors/readme/readme.go @@ -16,7 +16,6 @@ type Scanner struct{} var _ detectors.Detector = (*Scanner)(nil) var ( - // Make sure that your group is surrounded in boundary characters such as below to reduce false positives. keyPat = regexp.MustCompile(`(rdme_[a-z0-9]{70})`) ) @@ -69,3 +68,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ReadMe } + +func (s Scanner) Description() string { + return "ReadMe is a documentation platform that helps you build out your API and product documentation. ReadMe API keys can be used to access and modify your documentation data." +} diff --git a/pkg/detectors/reallysimplesystems/reallysimplesystems.go b/pkg/detectors/reallysimplesystems/reallysimplesystems.go index a8eb0cbe7233..ffecc18bda1c 100644 --- a/pkg/detectors/reallysimplesystems/reallysimplesystems.go +++ b/pkg/detectors/reallysimplesystems/reallysimplesystems.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ReallySimpleSystems } + +func (s Scanner) Description() string { + return "ReallySimpleSystems is a CRM system. The detected credentials can be used to access and manage customer relationship data and workflows within the ReallySimpleSystems platform." +} diff --git a/pkg/detectors/rebrandly/rebrandly.go b/pkg/detectors/rebrandly/rebrandly.go index 16057153ba3c..50b69fb06295 100644 --- a/pkg/detectors/rebrandly/rebrandly.go +++ b/pkg/detectors/rebrandly/rebrandly.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Rebrandly } + +func (s Scanner) Description() string { + return "Rebrandly is a link management platform that allows users to brand, track, and share short URLs. Rebrandly API keys can be used to manage and analyze links programmatically." +} diff --git a/pkg/detectors/rechargepayments/rechargepayments.go b/pkg/detectors/rechargepayments/rechargepayments.go index a37a17be97af..46ed886b60e6 100644 --- a/pkg/detectors/rechargepayments/rechargepayments.go +++ b/pkg/detectors/rechargepayments/rechargepayments.go @@ -42,7 +42,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result tokens := tokenPat.FindAllString(dataStr, -1) for _, token := range tokens { - s := detectors.Result{ + result := detectors.Result{ DetectorType: detectorspb.DetectorType_RechargePayments, Raw: []byte(token), } @@ -59,12 +59,12 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result res.Body.Close() // The request body is unused. if res.StatusCode == http.StatusOK { - s.Verified = true + result.Verified = true } } } - results = append(results, s) + results = append(results, result) } } @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RechargePayments } + +func (s Scanner) Description() string { + return "Recharge is a subscription payment solution. Recharge API keys can be used to access and manage subscription data and transactions." +} diff --git a/pkg/detectors/redis/redis.go b/pkg/detectors/redis/redis.go index 69148a6bad7b..633c9834c157 100644 --- a/pkg/detectors/redis/redis.go +++ b/pkg/detectors/redis/redis.go @@ -13,7 +13,7 @@ import ( "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" ) -type Scanner struct{ +type Scanner struct { detectors.DefaultMultiPartCredentialProvider } @@ -139,3 +139,7 @@ func verifyRedis(ctx context.Context, u *url.URL) bool { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Redis } + +func (s Scanner) Description() string { + return "Redis is an in-memory data structure store, used as a database, cache, and message broker. Redis credentials can be used to access and manipulate stored data." +} diff --git a/pkg/detectors/refiner/refiner.go b/pkg/detectors/refiner/refiner.go index 924fc000b0d0..8f970f19694b 100644 --- a/pkg/detectors/refiner/refiner.go +++ b/pkg/detectors/refiner/refiner.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Refiner } + +func (s Scanner) Description() string { + return "Refiner is a user feedback platform. Refiner keys can be used to authenticate and identify users within the Refiner platform." +} diff --git a/pkg/detectors/rentman/rentman.go b/pkg/detectors/rentman/rentman.go index d7f23577feb1..3e9bb9ce931a 100644 --- a/pkg/detectors/rentman/rentman.go +++ b/pkg/detectors/rentman/rentman.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Rentman } + +func (s Scanner) Description() string { + return "Rentman is a resource management software for AV & Event production. Rentman API keys can be used to access and manage resources and data within the Rentman platform." +} diff --git a/pkg/detectors/repairshopr/repairshopr.go b/pkg/detectors/repairshopr/repairshopr.go index 58ee10fb6050..7d1f8987de77 100644 --- a/pkg/detectors/repairshopr/repairshopr.go +++ b/pkg/detectors/repairshopr/repairshopr.go @@ -47,7 +47,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result resMatch := strings.TrimSpace(match[1]) for _, domainmatch := range domainMatches { - if len(match) != 2 { + if len(domainmatch) != 2 { continue } resDomainMatch := strings.TrimSpace(domainmatch[1]) @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Repairshopr } + +func (s Scanner) Description() string { + return "RepairShopr is a CRM and ticketing system designed for repair shops. The API keys allow access to various functionalities such as managing appointments, customers, and invoices." +} diff --git a/pkg/detectors/replicate/replicate.go b/pkg/detectors/replicate/replicate.go index 229083ef562a..3291008ee0ae 100644 --- a/pkg/detectors/replicate/replicate.go +++ b/pkg/detectors/replicate/replicate.go @@ -79,3 +79,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Replicate } + +func (s Scanner) Description() string { + return "Replicate is a platform for running machine learning models in the cloud. Replicate API keys can be used to manage and run these models." +} diff --git a/pkg/detectors/replyio/replyio.go b/pkg/detectors/replyio/replyio.go index 4d1164a1b8b4..258a8c9799eb 100644 --- a/pkg/detectors/replyio/replyio.go +++ b/pkg/detectors/replyio/replyio.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ReplyIO } + +func (s Scanner) Description() string { + return "Reply.io is a sales engagement platform used for automating communication with prospects. The API key can be used to access and manage communication data." +} diff --git a/pkg/detectors/requestfinance/requestfinance.go b/pkg/detectors/requestfinance/requestfinance.go index 815362520ef2..75ed12e4ee44 100644 --- a/pkg/detectors/requestfinance/requestfinance.go +++ b/pkg/detectors/requestfinance/requestfinance.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RequestFinance } + +func (s Scanner) Description() string { + return "Request Finance is a platform for managing and automating invoices and payments. Request Finance credentials can be used to access and manage these financial operations." +} diff --git a/pkg/detectors/restpack/restpack.go b/pkg/detectors/restpack/restpack.go index 2f2e43804c09..aaafebd1a7ae 100644 --- a/pkg/detectors/restpack/restpack.go +++ b/pkg/detectors/restpack/restpack.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Restpack } + +func (s Scanner) Description() string { + return "Restpack is a service that provides APIs for converting HTML to PDF, taking screenshots, and more. Restpack API keys can be used to access these services." +} diff --git a/pkg/detectors/restpackhtmltopdfapi/restpackhtmltopdfapi.go b/pkg/detectors/restpackhtmltopdfapi/restpackhtmltopdfapi.go index 2935df58687b..048adf066b7d 100644 --- a/pkg/detectors/restpackhtmltopdfapi/restpackhtmltopdfapi.go +++ b/pkg/detectors/restpackhtmltopdfapi/restpackhtmltopdfapi.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RestpackHtmlToPdfAPI } + +func (s Scanner) Description() string { + return "Restpack is a service that provides APIs for converting HTML to PDF. Restpack API keys can be used to access and utilize this service." +} diff --git a/pkg/detectors/restpackscreenshotapi/restpackscreenshotapi.go b/pkg/detectors/restpackscreenshotapi/restpackscreenshotapi.go index 2e62c04cf51c..d79798c8193d 100644 --- a/pkg/detectors/restpackscreenshotapi/restpackscreenshotapi.go +++ b/pkg/detectors/restpackscreenshotapi/restpackscreenshotapi.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RestpackScreenshotAPI } + +func (s Scanner) Description() string { + return "Restpack Screenshot API is a service used to capture screenshots of web pages. The API key can be used to authenticate requests to the service." +} diff --git a/pkg/detectors/rev/rev.go b/pkg/detectors/rev/rev.go index b376deefbb3b..3d1370380569 100644 --- a/pkg/detectors/rev/rev.go +++ b/pkg/detectors/rev/rev.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Rev } + +func (s Scanner) Description() string { + return "Rev is a transcription service. Rev API keys can be used to access and modify transcription orders and data." +} diff --git a/pkg/detectors/revampcrm/revampcrm.go b/pkg/detectors/revampcrm/revampcrm.go index 0a61b65f21a9..978be4e7e664 100644 --- a/pkg/detectors/revampcrm/revampcrm.go +++ b/pkg/detectors/revampcrm/revampcrm.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RevampCRM } + +func (s Scanner) Description() string { + return "RevampCRM is a customer relationship management service. The credentials can be used to access and manage customer data." +} diff --git a/pkg/detectors/ringcentral/ringcentral.go b/pkg/detectors/ringcentral/ringcentral.go index 11dff8a5f540..3406b0395837 100644 --- a/pkg/detectors/ringcentral/ringcentral.go +++ b/pkg/detectors/ringcentral/ringcentral.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RingCentral } + +func (s Scanner) Description() string { + return "RingCentral is a cloud-based communication system that offers messaging, video conferencing, and phone services. RingCentral API keys can be used to access and manage these services." +} diff --git a/pkg/detectors/ritekit/ritekit.go b/pkg/detectors/ritekit/ritekit.go index 5fdd7d24133f..5539f5dae8f4 100644 --- a/pkg/detectors/ritekit/ritekit.go +++ b/pkg/detectors/ritekit/ritekit.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RiteKit } + +func (s Scanner) Description() string { + return "RiteKit is a social media toolkit that provides various APIs for managing social media content and analytics. RiteKit API keys can be used to access and manage social media data." +} diff --git a/pkg/detectors/roaring/roaring.go b/pkg/detectors/roaring/roaring.go index 65f3567f567a..7ef4107552fa 100644 --- a/pkg/detectors/roaring/roaring.go +++ b/pkg/detectors/roaring/roaring.go @@ -87,3 +87,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Roaring } + +func (s Scanner) Description() string { + return "Roaring credentials can be used to access the Roaring API, which provides services for high-performance, compressed bitmaps." +} diff --git a/pkg/detectors/robinhoodcrypto/robinhoodcrypto.go b/pkg/detectors/robinhoodcrypto/robinhoodcrypto.go index e4556d59e0e0..4720e008471d 100644 --- a/pkg/detectors/robinhoodcrypto/robinhoodcrypto.go +++ b/pkg/detectors/robinhoodcrypto/robinhoodcrypto.go @@ -193,3 +193,7 @@ func verifyMatch(ctx context.Context, client *http.Client, apiKey, base64Private func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RobinhoodCrypto } + +func (s Scanner) Description() string { + return "Robinhood Crypto API keys can be used to access and trade cryptocurrencies on the Robinhood platform." +} diff --git a/pkg/detectors/rocketreach/rocketreach.go b/pkg/detectors/rocketreach/rocketreach.go index f706e791bb24..f4dcb1fff9ef 100644 --- a/pkg/detectors/rocketreach/rocketreach.go +++ b/pkg/detectors/rocketreach/rocketreach.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RocketReach } + +func (s Scanner) Description() string { + return "RocketReach is a tool used to find email addresses, phone numbers, and social media profiles for professionals. RocketReach API keys can be used to access and retrieve this contact information." +} diff --git a/pkg/detectors/rockset/rockset.go b/pkg/detectors/rockset/rockset.go index de3baa50748f..33d540be429e 100644 --- a/pkg/detectors/rockset/rockset.go +++ b/pkg/detectors/rockset/rockset.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Rockset } + +func (s Scanner) Description() string { + return "Rockset is a real-time analytics platform that allows for fast SQL queries on raw data. Rockset API keys can be used to access and manage data within the Rockset platform." +} diff --git a/pkg/detectors/roninapp/roninapp.go b/pkg/detectors/roninapp/roninapp.go index db817dd8a445..6434ee451349 100644 --- a/pkg/detectors/roninapp/roninapp.go +++ b/pkg/detectors/roninapp/roninapp.go @@ -87,3 +87,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RoninApp } + +func (s Scanner) Description() string { + return "RoninApp is a platform for online invoicing and time tracking. RoninApp keys can be used to access and manage invoices and other resources." +} diff --git a/pkg/detectors/route4me/route4me.go b/pkg/detectors/route4me/route4me.go index dbebd51304e1..f3866f85d263 100644 --- a/pkg/detectors/route4me/route4me.go +++ b/pkg/detectors/route4me/route4me.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Route4me } + +func (s Scanner) Description() string { + return "Route4Me is a route planning service that optimizes and manages routes for delivery and service fleets. Route4Me API keys can be used to access and modify routing data and services." +} diff --git a/pkg/detectors/rownd/rownd.go b/pkg/detectors/rownd/rownd.go index ea79d239986c..56e76a589583 100644 --- a/pkg/detectors/rownd/rownd.go +++ b/pkg/detectors/rownd/rownd.go @@ -67,7 +67,6 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result } if verify { - req, err := http.NewRequestWithContext(ctx, "GET", "https://api.rownd.io/applications/"+resId+"/users/data", nil) if err != nil { continue @@ -94,3 +93,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Rownd } + +func (s Scanner) Description() string { + return "Rownd is a platform for user data management. Rownd credentials can be used to access and modify user data and application settings." +} diff --git a/pkg/detectors/rubygems/rubygems.go b/pkg/detectors/rubygems/rubygems.go index c90da120ce4d..bd16c8ca6e0a 100644 --- a/pkg/detectors/rubygems/rubygems.go +++ b/pkg/detectors/rubygems/rubygems.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RubyGems } + +func (s Scanner) Description() string { + return "RubyGems is a package manager for the Ruby programming language. RubyGems API keys can be used to publish and manage gems (libraries) on the RubyGems platform." +} diff --git a/pkg/detectors/runrunit/runrunit.go b/pkg/detectors/runrunit/runrunit.go index fe015f722006..0dd6c8d81829 100644 --- a/pkg/detectors/runrunit/runrunit.go +++ b/pkg/detectors/runrunit/runrunit.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_RunRunIt } + +func (s Scanner) Description() string { + return "RunRunIt is a project management tool. App-Key and User-Token can be used to access and modify project data." +} diff --git a/pkg/detectors/salesblink/salesblink.go b/pkg/detectors/salesblink/salesblink.go index 0a8a07633ba5..3a2b7844c0ec 100644 --- a/pkg/detectors/salesblink/salesblink.go +++ b/pkg/detectors/salesblink/salesblink.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Salesblink } + +func (s Scanner) Description() string { + return "Salesblink is a sales outreach tool that helps automate email, LinkedIn, and cold call outreach. Salesblink API keys can be used to access and manage sales outreach campaigns and data." +} diff --git a/pkg/detectors/salescookie/salescookie.go b/pkg/detectors/salescookie/salescookie.go index 9cd4a071a35b..146b5f2eaccf 100644 --- a/pkg/detectors/salescookie/salescookie.go +++ b/pkg/detectors/salescookie/salescookie.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Salescookie } + +func (s Scanner) Description() string { + return "Salescookie is a sales performance management tool. Salescookie API keys can be used to create and manage transactions within the platform." +} diff --git a/pkg/detectors/salesflare/salesflare.go b/pkg/detectors/salesflare/salesflare.go index ee62c241a588..4cfe602785d4 100644 --- a/pkg/detectors/salesflare/salesflare.go +++ b/pkg/detectors/salesflare/salesflare.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Salesflare } + +func (s Scanner) Description() string { + return "Salesflare is a simple yet powerful CRM tool for small businesses. Salesflare API keys can be used to access and manage customer data and interactions." +} diff --git a/pkg/detectors/salesforce/salesforce.go b/pkg/detectors/salesforce/salesforce.go index f74e24d92456..09b7ade923a6 100644 --- a/pkg/detectors/salesforce/salesforce.go +++ b/pkg/detectors/salesforce/salesforce.go @@ -112,3 +112,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Salesforce } + +func (s Scanner) Description() string { + return "Salesforce is a cloud-based software company that provides customer relationship management (CRM) service. Salesforce access tokens can be used to authenticate and interact with Salesforce APIs." +} diff --git a/pkg/detectors/salesmate/salesmate.go b/pkg/detectors/salesmate/salesmate.go index 27112a1c03f9..b7d2ac758373 100644 --- a/pkg/detectors/salesmate/salesmate.go +++ b/pkg/detectors/salesmate/salesmate.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Salesmate } + +func (s Scanner) Description() string { + return "Salesmate is a customer relationship management (CRM) software. Salesmate keys can be used to access and manage customer data and interactions." +} diff --git a/pkg/detectors/satismeterprojectkey/satismeterprojectkey.go b/pkg/detectors/satismeterprojectkey/satismeterprojectkey.go index a9b6c857e752..59d1cf341ef0 100644 --- a/pkg/detectors/satismeterprojectkey/satismeterprojectkey.go +++ b/pkg/detectors/satismeterprojectkey/satismeterprojectkey.go @@ -98,3 +98,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SatismeterProjectkey } + +func (s Scanner) Description() string { + return "Satismeter is a customer feedback platform. Satismeter project keys can be used to access project-specific data and manage feedback settings." +} diff --git a/pkg/detectors/satismeterwritekey/satismeterwritekey.go b/pkg/detectors/satismeterwritekey/satismeterwritekey.go index d49aa91b9e2f..65a97ccfdef9 100644 --- a/pkg/detectors/satismeterwritekey/satismeterwritekey.go +++ b/pkg/detectors/satismeterwritekey/satismeterwritekey.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SatismeterWritekey } + +func (s Scanner) Description() string { + return "Satismeter is a customer feedback platform. Satismeter Writekeys can be used to send event data to Satismeter's API." +} diff --git a/pkg/detectors/saucelabs/saucelabs.go b/pkg/detectors/saucelabs/saucelabs.go index 548b1768051b..4b6d17d8bfc8 100644 --- a/pkg/detectors/saucelabs/saucelabs.go +++ b/pkg/detectors/saucelabs/saucelabs.go @@ -68,7 +68,6 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result continue } req.Header.Add("Authorization", fmt.Sprintf("Basic %s", encoded)) - // req.SetBasicAuth(idMatch, keyMatch) res, err := client.Do(req) if err == nil { defer res.Body.Close() @@ -88,3 +87,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SauceLabs } + +func (s Scanner) Description() string { + return "A service for cross browser testing, API keys can create and access tests from potentially sensitive internal websites" +} diff --git a/pkg/detectors/scalewaykey/scalewaykey.go b/pkg/detectors/scalewaykey/scalewaykey.go index daaf76d205ce..a2380b7949ee 100644 --- a/pkg/detectors/scalewaykey/scalewaykey.go +++ b/pkg/detectors/scalewaykey/scalewaykey.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ScalewayKey } + +func (s Scanner) Description() string { + return "Scaleway is a cloud service provider offering various services including virtual instances, storage, and networking. Scaleway API keys can be used to access and manage these services." +} diff --git a/pkg/detectors/scalr/scalr.go b/pkg/detectors/scalr/scalr.go index 025f846fba5c..cc6a22f96449 100644 --- a/pkg/detectors/scalr/scalr.go +++ b/pkg/detectors/scalr/scalr.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Scalr } + +func (s Scanner) Description() string { + return "Scalr is a cloud management platform that allows users to manage and automate cloud infrastructure. Scalr keys can be used to access and manage cloud resources within the Scalr platform." +} diff --git a/pkg/detectors/scrapeowl/scrapeowl.go b/pkg/detectors/scrapeowl/scrapeowl.go index 566383b00c09..ddc808825cb8 100644 --- a/pkg/detectors/scrapeowl/scrapeowl.go +++ b/pkg/detectors/scrapeowl/scrapeowl.go @@ -2,10 +2,11 @@ package scrapeowl import ( "context" - regexp "github.com/wasilibs/go-re2" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -69,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Scrapeowl } + +func (s Scanner) Description() string { + return "ScrapeOwl is a web scraping service that allows users to extract data from websites. ScrapeOwl API keys can be used to automate data extraction tasks." +} diff --git a/pkg/detectors/scraperapi/scraperapi.go b/pkg/detectors/scraperapi/scraperapi.go index a693748683be..8271e300bfce 100644 --- a/pkg/detectors/scraperapi/scraperapi.go +++ b/pkg/detectors/scraperapi/scraperapi.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ScraperAPI } + +func (s Scanner) Description() string { + return "ScraperAPI is a service that allows users to scrape websites efficiently. ScraperAPI keys can be used to access and scrape data from various websites." +} diff --git a/pkg/detectors/scraperbox/scraperbox.go b/pkg/detectors/scraperbox/scraperbox.go index 1d5439f8d5cd..636010d2723f 100644 --- a/pkg/detectors/scraperbox/scraperbox.go +++ b/pkg/detectors/scraperbox/scraperbox.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ScraperBox } + +func (s Scanner) Description() string { + return "ScraperBox is a web scraping service that allows users to extract data from websites. The provided token can be used to authenticate and perform scraping operations." +} diff --git a/pkg/detectors/scrapestack/scrapestack.go b/pkg/detectors/scrapestack/scrapestack.go index 4f57b751e702..d099495bcc7d 100644 --- a/pkg/detectors/scrapestack/scrapestack.go +++ b/pkg/detectors/scrapestack/scrapestack.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ScrapeStack } + +func (s Scanner) Description() string { + return "ScrapeStack is a web scraping API service. ScrapeStack API keys can be used to scrape web data and access various scraping functionalities." +} diff --git a/pkg/detectors/scrapfly/scrapfly.go b/pkg/detectors/scrapfly/scrapfly.go index ce97f374afbd..d2d824e333b0 100644 --- a/pkg/detectors/scrapfly/scrapfly.go +++ b/pkg/detectors/scrapfly/scrapfly.go @@ -77,3 +77,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Scrapfly } + +func (s Scanner) Description() string { + return "Scrapfly is a web scraping service providing APIs to extract and process web data. Scrapfly API keys can be used to access and manipulate this data." +} diff --git a/pkg/detectors/scrapingant/scrapingant.go b/pkg/detectors/scrapingant/scrapingant.go index 5aba39bfa7db..fae90b90f23e 100644 --- a/pkg/detectors/scrapingant/scrapingant.go +++ b/pkg/detectors/scrapingant/scrapingant.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ScrapingAnt } + +func (s Scanner) Description() string { + return "ScrapingAnt is a web scraping service that provides API keys to authenticate and make requests to their scraping endpoints." +} diff --git a/pkg/detectors/scrapingbee/scrapingbee.go b/pkg/detectors/scrapingbee/scrapingbee.go index 9f9c654bd1d7..f5375555e4cf 100644 --- a/pkg/detectors/scrapingbee/scrapingbee.go +++ b/pkg/detectors/scrapingbee/scrapingbee.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ScrapingBee } + +func (s Scanner) Description() string { + return "ScrapingBee is a web scraping service that handles headless browsers and proxies for you. ScrapingBee API keys can be used to access and control web scraping tasks." +} diff --git a/pkg/detectors/screenshotapi/screenshotapi.go b/pkg/detectors/screenshotapi/screenshotapi.go index dfbbef53c043..542d26bb7bed 100644 --- a/pkg/detectors/screenshotapi/screenshotapi.go +++ b/pkg/detectors/screenshotapi/screenshotapi.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ScreenshotAPI } + +func (s Scanner) Description() string { + return "A service for taking screenshots of websites. Websites can include internal or sensitive websites, API keys can access the screenshots." +} diff --git a/pkg/detectors/screenshotlayer/screenshotlayer.go b/pkg/detectors/screenshotlayer/screenshotlayer.go index 39c174e274b3..1d782f852036 100644 --- a/pkg/detectors/screenshotlayer/screenshotlayer.go +++ b/pkg/detectors/screenshotlayer/screenshotlayer.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ScreenshotLayer } + +func (s Scanner) Description() string { + return "ScreenshotLayer is a service that provides website screenshots. Access keys can be used to capture and retrieve screenshots." +} diff --git a/pkg/detectors/scrutinizerci/scrutinizerci.go b/pkg/detectors/scrutinizerci/scrutinizerci.go index b662b331ad45..4aa08d656465 100644 --- a/pkg/detectors/scrutinizerci/scrutinizerci.go +++ b/pkg/detectors/scrutinizerci/scrutinizerci.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ScrutinizerCi } + +func (s Scanner) Description() string { + return "Scrutinizer CI is a continuous integration service. The access token allows access to user repositories data." +} diff --git a/pkg/detectors/securitytrails/securitytrails.go b/pkg/detectors/securitytrails/securitytrails.go index 84bfe0ba6f8d..0f12d47c17fa 100644 --- a/pkg/detectors/securitytrails/securitytrails.go +++ b/pkg/detectors/securitytrails/securitytrails.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SecurityTrails } + +func (s Scanner) Description() string { + return "SecurityTrails provides comprehensive domain and IP intelligence data. SecurityTrails API keys can be used to access this data." +} diff --git a/pkg/detectors/segmentapikey/segmentapikey.go b/pkg/detectors/segmentapikey/segmentapikey.go index f3d2ba891757..ac0ffb480a72 100644 --- a/pkg/detectors/segmentapikey/segmentapikey.go +++ b/pkg/detectors/segmentapikey/segmentapikey.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SegmentApiKey } + +func (s Scanner) Description() string { + return "Segment is a customer data platform that helps you collect, clean, and control your customer data. Segment API keys can be used to access and manage this data." +} diff --git a/pkg/detectors/selectpdf/selectpdf.go b/pkg/detectors/selectpdf/selectpdf.go index e3993a03ec18..cc1b696dd29e 100644 --- a/pkg/detectors/selectpdf/selectpdf.go +++ b/pkg/detectors/selectpdf/selectpdf.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SelectPDF } + +func (s Scanner) Description() string { + return "SelectPDF is a service that allows users to convert web pages to PDF documents. SelectPDF API keys can be used to perform these conversions programmatically." +} diff --git a/pkg/detectors/semaphore/semaphore.go b/pkg/detectors/semaphore/semaphore.go index 098d71bddd72..f9e163e74a0d 100644 --- a/pkg/detectors/semaphore/semaphore.go +++ b/pkg/detectors/semaphore/semaphore.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Semaphore } + +func (s Scanner) Description() string { + return "Semaphore is a hosted continuous integration and deployment service used to automate software development workflows. Semaphore API keys can be used to access and manage CI/CD pipelines." +} diff --git a/pkg/detectors/sendbird/sendbird.go b/pkg/detectors/sendbird/sendbird.go index 641decf08709..5e74457d1ae7 100644 --- a/pkg/detectors/sendbird/sendbird.go +++ b/pkg/detectors/sendbird/sendbird.go @@ -115,3 +115,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Sendbird } + +func (s Scanner) Description() string { + return "Sendbird is a communication platform providing chat, voice, and video services. Sendbird API tokens can be used to access and manage communication services." +} diff --git a/pkg/detectors/sendbirdorganizationapi/sendbirdorganizationapi.go b/pkg/detectors/sendbirdorganizationapi/sendbirdorganizationapi.go index 6bc71aa0f7dc..c0cd915161da 100644 --- a/pkg/detectors/sendbirdorganizationapi/sendbirdorganizationapi.go +++ b/pkg/detectors/sendbirdorganizationapi/sendbirdorganizationapi.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SendbirdOrganizationAPI } + +func (s Scanner) Description() string { + return "Sendbird is a chat and messaging platform. Sendbird API tokens can be used to access and manage Sendbird applications and services." +} diff --git a/pkg/detectors/sendgrid/sendgrid.go b/pkg/detectors/sendgrid/sendgrid.go index 3d09f9e6244b..9b31c364bf54 100644 --- a/pkg/detectors/sendgrid/sendgrid.go +++ b/pkg/detectors/sendgrid/sendgrid.go @@ -122,3 +122,7 @@ type scopesResponse struct { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SendGrid } + +func (s Scanner) Description() string { + return "SendGrid is a cloud-based service that provides email delivery and marketing campaigns. SendGrid API keys can be used to send emails and manage other email-related tasks." +} diff --git a/pkg/detectors/sendinbluev2/sendinbluev2.go b/pkg/detectors/sendinbluev2/sendinbluev2.go index e33eac6c7528..28b973363cd0 100644 --- a/pkg/detectors/sendinbluev2/sendinbluev2.go +++ b/pkg/detectors/sendinbluev2/sendinbluev2.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SendinBlueV2 } + +func (s Scanner) Description() string { + return "SendinBlue is a cloud-based marketing communication software. SendinBlue API keys can be used to access and modify marketing campaigns and contact data." +} diff --git a/pkg/detectors/sentrytoken/sentrytoken.go b/pkg/detectors/sentrytoken/sentrytoken.go index ce73fdd65a72..2ee37c582049 100644 --- a/pkg/detectors/sentrytoken/sentrytoken.go +++ b/pkg/detectors/sentrytoken/sentrytoken.go @@ -129,3 +129,7 @@ func verifyToken(ctx context.Context, client *http.Client, token string) (bool, func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SentryToken } + +func (s Scanner) Description() string { + return "Sentry is an error tracking service that helps developers monitor and fix crashes in real time. Sentry tokens can be used to access and manage projects and organizations within Sentry." +} diff --git a/pkg/detectors/serphouse/serphouse.go b/pkg/detectors/serphouse/serphouse.go index 7dfd7ba01d69..fbec88e727fb 100644 --- a/pkg/detectors/serphouse/serphouse.go +++ b/pkg/detectors/serphouse/serphouse.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Serphouse } + +func (s Scanner) Description() string { + return "Serphouse is a service that provides search engine result page data. Serphouse API keys can be used to access this data and perform various operations on it." +} diff --git a/pkg/detectors/serpstack/serpstack.go b/pkg/detectors/serpstack/serpstack.go index fb92a530a7a0..b7b660bec0a2 100644 --- a/pkg/detectors/serpstack/serpstack.go +++ b/pkg/detectors/serpstack/serpstack.go @@ -3,12 +3,13 @@ package serpstack import ( "context" "fmt" - regexp "github.com/wasilibs/go-re2" "io" "net/http" "strings" "time" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -83,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SerpStack } + +func (s Scanner) Description() string { + return "SerpStack is an API service used to scrape search engine results. SerpStack keys can be used to access and retrieve search data." +} diff --git a/pkg/detectors/sheety/sheety.go b/pkg/detectors/sheety/sheety.go index 4e860a272412..ff7111bb833a 100644 --- a/pkg/detectors/sheety/sheety.go +++ b/pkg/detectors/sheety/sheety.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Sheety } + +func (s Scanner) Description() string { + return "Sheety is a service that allows you to turn Google Sheets into a REST API. Sheety API keys can be used to access and modify the data in your Google Sheets." +} diff --git a/pkg/detectors/sherpadesk/sherpadesk.go b/pkg/detectors/sherpadesk/sherpadesk.go index 79bcee05bf93..5bc944f203ae 100644 --- a/pkg/detectors/sherpadesk/sherpadesk.go +++ b/pkg/detectors/sherpadesk/sherpadesk.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Sherpadesk } + +func (s Scanner) Description() string { + return "Sherpadesk is a helpdesk and service desk software. Sherpadesk keys can be used to access and manage support tickets and other related data." +} diff --git a/pkg/detectors/shipday/shipday.go b/pkg/detectors/shipday/shipday.go index 97474c345e1a..ed58c3ec3b67 100644 --- a/pkg/detectors/shipday/shipday.go +++ b/pkg/detectors/shipday/shipday.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Shipday } + +func (s Scanner) Description() string { + return "Shipday is a delivery management software used by businesses to manage and track their deliveries. Shipday API keys can be used to access and modify delivery data." +} diff --git a/pkg/detectors/shodankey/shodankey.go b/pkg/detectors/shodankey/shodankey.go index 58a66b01522a..3fbf8a14547d 100644 --- a/pkg/detectors/shodankey/shodankey.go +++ b/pkg/detectors/shodankey/shodankey.go @@ -34,7 +34,6 @@ func (s Scanner) Keywords() []string { // FromData will find and optionally verify ShodanKey secrets in a given set of bytes. func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (results []detectors.Result, err error) { dataStr := string(data) - // log.Println(dataStr) matches := keyPat.FindAllStringSubmatch(dataStr, -1) @@ -102,3 +101,7 @@ func verifyToken(ctx context.Context, client *http.Client, token string) bool { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ShodanKey } + +func (s Scanner) Description() string { + return "Shodan is a search engine for Internet-connected devices. Shodan API keys can be used to query the Shodan database for information on these devices." +} diff --git a/pkg/detectors/shopify/shopify.go b/pkg/detectors/shopify/shopify.go index f576fbc1eb7f..08a29d9bbc92 100644 --- a/pkg/detectors/shopify/shopify.go +++ b/pkg/detectors/shopify/shopify.go @@ -107,3 +107,7 @@ type shopifyTokenAccessScopes struct { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Shopify } + +func (s Scanner) Description() string { + return "An ecommerce platform, API keys can be used to access customer data" +} diff --git a/pkg/detectors/shortcut/shortcut.go b/pkg/detectors/shortcut/shortcut.go index 764e548ef009..71716b9ebb5a 100644 --- a/pkg/detectors/shortcut/shortcut.go +++ b/pkg/detectors/shortcut/shortcut.go @@ -84,3 +84,7 @@ func verifyResult(ctx context.Context, client *http.Client, apiKey string) (bool func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Shortcut } + +func (s Scanner) Description() string { + return "Shortcut is a project management tool. Shortcut API keys can be used to access and modify project data." +} diff --git a/pkg/detectors/shotstack/shotstack.go b/pkg/detectors/shotstack/shotstack.go index b3d46f752e30..54cbf5558bbe 100644 --- a/pkg/detectors/shotstack/shotstack.go +++ b/pkg/detectors/shotstack/shotstack.go @@ -102,3 +102,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Shotstack } + +func (s Scanner) Description() string { + return "Shotstack is a video editing API service. Shotstack API keys can be used to access and utilize the video rendering and editing capabilities of the Shotstack platform." +} diff --git a/pkg/detectors/shutterstock/shutterstock.go b/pkg/detectors/shutterstock/shutterstock.go index 59a192419517..876723ec85d3 100644 --- a/pkg/detectors/shutterstock/shutterstock.go +++ b/pkg/detectors/shutterstock/shutterstock.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Shutterstock } + +func (s Scanner) Description() string { + return "Shutterstock is a global provider of stock photography, footage, music, and editing tools. Shutterstock API keys can be used to access and modify this content." +} diff --git a/pkg/detectors/shutterstockoauth/shutterstockoauth.go b/pkg/detectors/shutterstockoauth/shutterstockoauth.go index 5f9076b43cba..39c77b157729 100644 --- a/pkg/detectors/shutterstockoauth/shutterstockoauth.go +++ b/pkg/detectors/shutterstockoauth/shutterstockoauth.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ShutterstockOAuth } + +func (s Scanner) Description() string { + return "A service for saving and accessing photos. OAuth credentials can be used to potentially access user photos." +} diff --git a/pkg/detectors/signable/signable.go b/pkg/detectors/signable/signable.go index c2e8fe48aebe..41b6a491dd28 100644 --- a/pkg/detectors/signable/signable.go +++ b/pkg/detectors/signable/signable.go @@ -111,3 +111,7 @@ func verifyResult(ctx context.Context, client *http.Client, token string) (bool, func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Signable } + +func (s Scanner) Description() string { + return "Signable is a service used for electronic signatures. Signable tokens can be used to authenticate and access Signable's API services." +} diff --git a/pkg/detectors/signalwire/signalwire.go b/pkg/detectors/signalwire/signalwire.go index 570aeb3b781f..6f13c554c324 100644 --- a/pkg/detectors/signalwire/signalwire.go +++ b/pkg/detectors/signalwire/signalwire.go @@ -95,3 +95,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Signalwire } + +func (s Scanner) Description() string { + return "SignalWire is a communications platform as a service (CPaaS) provider. SignalWire credentials can be used to access and manage communication services such as voice, messaging, and video." +} diff --git a/pkg/detectors/signaturit/signaturit.go b/pkg/detectors/signaturit/signaturit.go index c34b712b013c..16eaa5456eba 100644 --- a/pkg/detectors/signaturit/signaturit.go +++ b/pkg/detectors/signaturit/signaturit.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Signaturit } + +func (s Scanner) Description() string { + return "Signaturit is a service for electronic signatures. Signaturit API keys can be used to access and manage signature requests and related data." +} diff --git a/pkg/detectors/signupgenius/signupgenius.go b/pkg/detectors/signupgenius/signupgenius.go index 044e8614b24d..a90013124bcc 100644 --- a/pkg/detectors/signupgenius/signupgenius.go +++ b/pkg/detectors/signupgenius/signupgenius.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Signupgenius } + +func (s Scanner) Description() string { + return "SignupGenius is an online tool for creating and managing sign-up forms for events and activities. SignupGenius API keys can be used to access and manage these forms and related data." +} diff --git a/pkg/detectors/sigopt/sigopt.go b/pkg/detectors/sigopt/sigopt.go index 0e282c548aad..efac2fa00433 100644 --- a/pkg/detectors/sigopt/sigopt.go +++ b/pkg/detectors/sigopt/sigopt.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Sigopt } + +func (s Scanner) Description() string { + return "Sigopt is a platform for optimizing machine learning models. Sigopt API keys can be used to access and manage experiments on the Sigopt platform." +} diff --git a/pkg/detectors/simfin/simfin.go b/pkg/detectors/simfin/simfin.go index 1fce9b07c449..f21781c312e2 100644 --- a/pkg/detectors/simfin/simfin.go +++ b/pkg/detectors/simfin/simfin.go @@ -3,11 +3,12 @@ package simfin import ( "context" "fmt" - regexp "github.com/wasilibs/go-re2" "io" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -78,3 +79,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SimFin } + +func (s Scanner) Description() string { + return "SimFin provides financial data and APIs for accessing this data. SimFin API keys can be used to access and retrieve financial data." +} diff --git a/pkg/detectors/simplesat/simplesat.go b/pkg/detectors/simplesat/simplesat.go index 9cea1ae9adb4..31bbe9264f53 100644 --- a/pkg/detectors/simplesat/simplesat.go +++ b/pkg/detectors/simplesat/simplesat.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Simplesat } + +func (s Scanner) Description() string { + return "Simplesat is a customer satisfaction survey tool. Simplesat API keys can be used to access and manage customer feedback data." +} diff --git a/pkg/detectors/simplynoted/simplynoted.go b/pkg/detectors/simplynoted/simplynoted.go index ea07439db117..3209e0a26cda 100644 --- a/pkg/detectors/simplynoted/simplynoted.go +++ b/pkg/detectors/simplynoted/simplynoted.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SimplyNoted } + +func (s Scanner) Description() string { + return "SimplyNoted is a service used for sending personalized handwritten notes. SimplyNoted API keys can be used to access and send these notes programmatically." +} diff --git a/pkg/detectors/simvoly/simvoly.go b/pkg/detectors/simvoly/simvoly.go index 935265f227ac..2b11db84abbc 100644 --- a/pkg/detectors/simvoly/simvoly.go +++ b/pkg/detectors/simvoly/simvoly.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Simvoly } + +func (s Scanner) Description() string { + return "Simvoly is a platform for building websites and online stores. Simvoly API keys can be used to access and manage site data and functionalities." +} diff --git a/pkg/detectors/sinchmessage/sinchmessage.go b/pkg/detectors/sinchmessage/sinchmessage.go index 5277b7cf293d..1a8a8c5b6c1d 100644 --- a/pkg/detectors/sinchmessage/sinchmessage.go +++ b/pkg/detectors/sinchmessage/sinchmessage.go @@ -89,3 +89,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SinchMessage } + +func (s Scanner) Description() string { + return "Sinch is a cloud-based communications platform that enables businesses to send and receive messages, calls, and other communications. Sinch API keys can be used to access and manage these communication services." +} diff --git a/pkg/detectors/sirv/sirv.go b/pkg/detectors/sirv/sirv.go index 0f5a6657f175..cbce3055ff07 100644 --- a/pkg/detectors/sirv/sirv.go +++ b/pkg/detectors/sirv/sirv.go @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Sirv } + +func (s Scanner) Description() string { + return "Sirv is a media management service used for image optimization and delivery. Sirv API keys can be used to access and manage media files." +} diff --git a/pkg/detectors/siteleaf/siteleaf.go b/pkg/detectors/siteleaf/siteleaf.go index f9bf1d0b48ef..54a16dbba455 100644 --- a/pkg/detectors/siteleaf/siteleaf.go +++ b/pkg/detectors/siteleaf/siteleaf.go @@ -88,3 +88,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Siteleaf } + +func (s Scanner) Description() string { + return "Siteleaf is a content management system (CMS) designed for managing websites. Siteleaf API keys can be used to access and modify site content and settings." +} diff --git a/pkg/detectors/skrappio/skrappio.go b/pkg/detectors/skrappio/skrappio.go index f23e90fd16a5..860f59e2149c 100644 --- a/pkg/detectors/skrappio/skrappio.go +++ b/pkg/detectors/skrappio/skrappio.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Skrappio } + +func (s Scanner) Description() string { + return "Skrapio is a service used for email verification and enrichment. Skrapio API keys can be used to access and utilize its services for verifying and enriching email addresses." +} diff --git a/pkg/detectors/skybiometry/skybiometry.go b/pkg/detectors/skybiometry/skybiometry.go index 911edb93d015..121f1afeb691 100644 --- a/pkg/detectors/skybiometry/skybiometry.go +++ b/pkg/detectors/skybiometry/skybiometry.go @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SkyBiometry } + +func (s Scanner) Description() string { + return "SkyBiometry is a facial recognition service. SkyBiometry API keys can be used to access and utilize their facial recognition API." +} diff --git a/pkg/detectors/slack/slack.go b/pkg/detectors/slack/slack.go index ac0f7d0b1148..8c12510a4cba 100644 --- a/pkg/detectors/slack/slack.go +++ b/pkg/detectors/slack/slack.go @@ -124,3 +124,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Slack } + +func (s Scanner) Description() string { + return "Slack tokens can be used to authenticate API requests to the Slack platform, allowing access to various workspace resources and functionalities." +} diff --git a/pkg/detectors/slackwebhook/slackwebhook.go b/pkg/detectors/slackwebhook/slackwebhook.go index 508501fe6ebb..df9783afa3d1 100644 --- a/pkg/detectors/slackwebhook/slackwebhook.go +++ b/pkg/detectors/slackwebhook/slackwebhook.go @@ -111,3 +111,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SlackWebhook } + +func (s Scanner) Description() string { + return "Slack webhooks are used to send messages from external sources into Slack channels. If compromised, they can be used to send unauthorized messages." +} diff --git a/pkg/detectors/smartsheets/smartsheets.go b/pkg/detectors/smartsheets/smartsheets.go index 0ce964465f37..35eb0fefb77c 100644 --- a/pkg/detectors/smartsheets/smartsheets.go +++ b/pkg/detectors/smartsheets/smartsheets.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Smartsheets } + +func (s Scanner) Description() string { + return "Smartsheets is a platform for work management and automation. Smartsheets API keys can be used to access and modify data and automate workflows within the platform." +} diff --git a/pkg/detectors/smartystreets/smartystreets.go b/pkg/detectors/smartystreets/smartystreets.go index b3a5bee3d191..bad51ab95217 100644 --- a/pkg/detectors/smartystreets/smartystreets.go +++ b/pkg/detectors/smartystreets/smartystreets.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SmartyStreets } + +func (s Scanner) Description() string { + return "SmartyStreets provides address validation services. The detected API keys can be used to access and validate addresses." +} diff --git a/pkg/detectors/smooch/smooch.go b/pkg/detectors/smooch/smooch.go index 9e87cb3be2f5..fdc34a0011a8 100644 --- a/pkg/detectors/smooch/smooch.go +++ b/pkg/detectors/smooch/smooch.go @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Smooch } + +func (s Scanner) Description() string { + return "Smooch is a messaging platform that allows businesses to communicate with their customers across various messaging channels. Smooch API keys can be used to access and manage these communications." +} diff --git a/pkg/detectors/snipcart/snipcart.go b/pkg/detectors/snipcart/snipcart.go index f0e161a6ef41..1631df606dbf 100644 --- a/pkg/detectors/snipcart/snipcart.go +++ b/pkg/detectors/snipcart/snipcart.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Snipcart } + +func (s Scanner) Description() string { + return "Snipcart is an easy-to-implement shopping cart platform for developers. Snipcart API keys can be used to access and manage e-commerce functionalities." +} diff --git a/pkg/detectors/snowflake/snowflake.go b/pkg/detectors/snowflake/snowflake.go index a53c72635901..720ba235429a 100644 --- a/pkg/detectors/snowflake/snowflake.go +++ b/pkg/detectors/snowflake/snowflake.go @@ -166,3 +166,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Snowflake } + +func (s Scanner) Description() string { + return "Snowflake is a cloud data platform that provides data warehousing, data lakes, data sharing, and data exchange capabilities. Snowflake credentials can be used to access and manipulate data stored in Snowflake." +} diff --git a/pkg/detectors/snykkey/snykkey.go b/pkg/detectors/snykkey/snykkey.go index 0bfb11b7a19d..2a017c5d70cb 100644 --- a/pkg/detectors/snykkey/snykkey.go +++ b/pkg/detectors/snykkey/snykkey.go @@ -125,3 +125,7 @@ type organization struct { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SnykKey } + +func (s Scanner) Description() string { + return "Snyk is a developer security platform that helps developers find and fix vulnerabilities in their code. Snyk API keys can be used to access and manage Snyk services." +} diff --git a/pkg/detectors/sonarcloud/sonarcloud.go b/pkg/detectors/sonarcloud/sonarcloud.go index f7e34cbad46b..244fb81f966a 100644 --- a/pkg/detectors/sonarcloud/sonarcloud.go +++ b/pkg/detectors/sonarcloud/sonarcloud.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SonarCloud } + +func (s Scanner) Description() string { + return "SonarCloud is a cloud-based code quality and security service. SonarCloud tokens can be used to access project analysis and quality reports." +} diff --git a/pkg/detectors/sourcegraph/sourcegraph.go b/pkg/detectors/sourcegraph/sourcegraph.go index 81cbd221316a..a87e4bc781e4 100644 --- a/pkg/detectors/sourcegraph/sourcegraph.go +++ b/pkg/detectors/sourcegraph/sourcegraph.go @@ -93,3 +93,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Sourcegraph } + +func (s Scanner) Description() string { + return "Sourcegraph is a code search and navigation engine. Sourcegraph tokens can be used to access and interact with Sourcegraph APIs." +} diff --git a/pkg/detectors/sourcegraphcody/sourcegraphcody.go b/pkg/detectors/sourcegraphcody/sourcegraphcody.go index 46ab53ee77ec..d39f53aa866f 100644 --- a/pkg/detectors/sourcegraphcody/sourcegraphcody.go +++ b/pkg/detectors/sourcegraphcody/sourcegraphcody.go @@ -85,3 +85,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SourcegraphCody } + +func (s Scanner) Description() string { + return "Sourcegraph Cody is a tool for integrating code intelligence into your development workflow. The detected key is used for accessing Sourcegraph Cody services." +} diff --git a/pkg/detectors/sparkpost/sparkpost.go b/pkg/detectors/sparkpost/sparkpost.go index c605a4479480..7af471b0a570 100644 --- a/pkg/detectors/sparkpost/sparkpost.go +++ b/pkg/detectors/sparkpost/sparkpost.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Sparkpost } + +func (s Scanner) Description() string { + return "Sparkpost is an email delivery service. Sparkpost API keys can be used to send and manage emails through Sparkpost's API." +} diff --git a/pkg/detectors/speechtextai/speechtextai.go b/pkg/detectors/speechtextai/speechtextai.go index 0fdb0272f1c8..bf1f46e82a99 100644 --- a/pkg/detectors/speechtextai/speechtextai.go +++ b/pkg/detectors/speechtextai/speechtextai.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SpeechTextAI } + +func (s Scanner) Description() string { + return "SpeechTextAI is a service that provides speech-to-text conversion. The API key can be used to access and utilize the speech-to-text services offered by SpeechTextAI." +} diff --git a/pkg/detectors/splunkobservabilitytoken/splunkobservabilitytoken.go b/pkg/detectors/splunkobservabilitytoken/splunkobservabilitytoken.go index 87a32b457d29..d8114b5d40ef 100644 --- a/pkg/detectors/splunkobservabilitytoken/splunkobservabilitytoken.go +++ b/pkg/detectors/splunkobservabilitytoken/splunkobservabilitytoken.go @@ -32,7 +32,6 @@ func (s Scanner) Keywords() []string { // FromData will find and optionally verify SplunkAccessToken secrets in a given set of bytes. func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (results []detectors.Result, err error) { dataStr := string(data) - // log.Println(dataStr) matches := keyPat.FindAllStringSubmatch(dataStr, -1) @@ -72,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SplunkOberservabilityToken } + +func (s Scanner) Description() string { + return "Splunk Observability Tokens are used to access and interact with Splunk's observability suite, allowing for monitoring and analyzing application performance and infrastructure." +} diff --git a/pkg/detectors/spoonacular/spoonacular.go b/pkg/detectors/spoonacular/spoonacular.go index 6c6ec8086f24..8bc78219de69 100644 --- a/pkg/detectors/spoonacular/spoonacular.go +++ b/pkg/detectors/spoonacular/spoonacular.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Spoonacular } + +func (s Scanner) Description() string { + return "Spoonacular provides a food and recipe API. Spoonacular API keys can be used to access and manage food and recipe data." +} diff --git a/pkg/detectors/sportsmonk/sportsmonk.go b/pkg/detectors/sportsmonk/sportsmonk.go index b89347e7af19..a31de92c5eea 100644 --- a/pkg/detectors/sportsmonk/sportsmonk.go +++ b/pkg/detectors/sportsmonk/sportsmonk.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Sportsmonk } + +func (s Scanner) Description() string { + return "Sportsmonk is a sports data provider offering various API endpoints to access sports data. Sportsmonk API keys can be used to query and retrieve this data." +} diff --git a/pkg/detectors/spotifykey/spotifykey.go b/pkg/detectors/spotifykey/spotifykey.go index d3d91d22eb44..89a769421260 100644 --- a/pkg/detectors/spotifykey/spotifykey.go +++ b/pkg/detectors/spotifykey/spotifykey.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SpotifyKey } + +func (s Scanner) Description() string { + return "Spotify API keys can be used to access and modify data within Spotify's services." +} diff --git a/pkg/detectors/sqlserver/sqlserver.go b/pkg/detectors/sqlserver/sqlserver.go index 076425903f1d..5f59f193f0be 100644 --- a/pkg/detectors/sqlserver/sqlserver.go +++ b/pkg/detectors/sqlserver/sqlserver.go @@ -31,7 +31,7 @@ func (s Scanner) Keywords() []string { return []string{"sql", "database", "Data Source", "Server=", "Network address="} } -// FromData will find and optionally verify SpotifyKey secrets in a given set of bytes. +// FromData will find and optionally verify SQL Server credentials in a given set of bytes. func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (results []detectors.Result, err error) { matches := pattern.FindAllStringSubmatch(string(data), -1) for _, match := range matches { @@ -108,3 +108,7 @@ var ping = func(config msdsn.Config) (bool, error) { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SQLServer } + +func (s Scanner) Description() string { + return "SQL Server is a relational database management system developed by Microsoft. SQL Server credentials can be used to access and manage databases." +} diff --git a/pkg/detectors/square/square.go b/pkg/detectors/square/square.go index 777dc4cef669..9ac65429196c 100644 --- a/pkg/detectors/square/square.go +++ b/pkg/detectors/square/square.go @@ -46,11 +46,11 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result } resMatch := strings.TrimSpace(secMatch[1]) - s := detectors.Result{ + result := detectors.Result{ DetectorType: detectorspb.DetectorType_Square, Raw: []byte(resMatch), } - s.ExtraData = map[string]string{ + result.ExtraData = map[string]string{ "rotation_guide": "https://howtorotate.com/docs/tutorials/square/", } @@ -77,13 +77,13 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result // 200 means good key and has `merchants` scope - default allowed by square // 401 is bad key if res.StatusCode == http.StatusOK || res.StatusCode == http.StatusForbidden { - s.Verified = true + result.Verified = true } } - s.AnalysisInfo = map[string]string{"key": resMatch} + result.AnalysisInfo = map[string]string{"key": resMatch} } - results = append(results, s) + results = append(results, result) } return @@ -92,3 +92,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Square } + +func (s Scanner) Description() string { + return "Square is a financial services and mobile payment company. Square API keys can be used to access and manage payments, transactions, and other financial data." +} diff --git a/pkg/detectors/squareapp/squareapp.go b/pkg/detectors/squareapp/squareapp.go index f4ad28432596..021bbf2280d7 100644 --- a/pkg/detectors/squareapp/squareapp.go +++ b/pkg/detectors/squareapp/squareapp.go @@ -43,7 +43,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result for _, match := range matches { for _, secMatch := range secMatches { - s := detectors.Result{ + result := detectors.Result{ DetectorType: detectorspb.DetectorType_SquareApp, Raw: []byte(match), Redacted: match, @@ -68,20 +68,18 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result req.Header.Add("Authorization", fmt.Sprintf("Client %s", secMatch)) req.Header.Add("Content-Type", "application/json") - // unclear if this version needs to be set or matters, seems to work without, but docs want it - // req.Header.Add("Square-Version", "2020-08-12") res, err := client.Do(req) if err == nil { res.Body.Close() // The request body is unused. // 404 = Correct credentials. The fake access token should not be found. if res.StatusCode == http.StatusNotFound { - s.Verified = true + result.Verified = true } } } - results = append(results, s) + results = append(results, result) } } return @@ -90,3 +88,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SquareApp } + +func (s Scanner) Description() string { + return "Square is a financial services and mobile payment company. Square credentials can be used to access and manage payment processing and other financial services." +} diff --git a/pkg/detectors/squarespace/squarespace.go b/pkg/detectors/squarespace/squarespace.go index 35b83f44f834..9a58387a3f71 100644 --- a/pkg/detectors/squarespace/squarespace.go +++ b/pkg/detectors/squarespace/squarespace.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Squarespace } + +func (s Scanner) Description() string { + return "Squarespace is a website building and hosting service. Squarespace API keys can be used to manage and modify website content and configuration." +} diff --git a/pkg/detectors/squareup/squareup.go b/pkg/detectors/squareup/squareup.go index cb3e097ddc86..eee3b341cf2b 100644 --- a/pkg/detectors/squareup/squareup.go +++ b/pkg/detectors/squareup/squareup.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Squareup } + +func (s Scanner) Description() string { + return "Squareup is a financial services and mobile payment company. The detected key can be used to interact with Squareup's APIs for processing payments and accessing customer data." +} diff --git a/pkg/detectors/sslmate/sslmate.go b/pkg/detectors/sslmate/sslmate.go index 3dd8c6bab100..efcc318a52bd 100644 --- a/pkg/detectors/sslmate/sslmate.go +++ b/pkg/detectors/sslmate/sslmate.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SslMate } + +func (s Scanner) Description() string { + return "SslMate is a service that helps manage and automate SSL certificates. SslMate API keys can be used to access and manage SSL certificates." +} diff --git a/pkg/detectors/statuscake/statuscake.go b/pkg/detectors/statuscake/statuscake.go index e00a2a0b6661..b154c8db29d1 100644 --- a/pkg/detectors/statuscake/statuscake.go +++ b/pkg/detectors/statuscake/statuscake.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Statuscake } + +func (s Scanner) Description() string { + return "Statuscake is a website monitoring service. Statuscake API keys can be used to access and manage website monitoring configurations and data." +} diff --git a/pkg/detectors/statuspage/statuspage.go b/pkg/detectors/statuspage/statuspage.go index 8bb04b07b48b..58281ed1024b 100644 --- a/pkg/detectors/statuspage/statuspage.go +++ b/pkg/detectors/statuspage/statuspage.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Statuspage } + +func (s Scanner) Description() string { + return "Statuspage is an incident communication tool that helps you inform your users about outages and scheduled maintenance. Statuspage API keys can be used to manage and update your status pages." +} diff --git a/pkg/detectors/statuspal/statuspal.go b/pkg/detectors/statuspal/statuspal.go index 947a4055b56e..daa496cd3c44 100644 --- a/pkg/detectors/statuspal/statuspal.go +++ b/pkg/detectors/statuspal/statuspal.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Statuspal } + +func (s Scanner) Description() string { + return "Statuspal is a status page service. Statuspal API keys can be used to manage status pages and subscriptions." +} diff --git a/pkg/detectors/stitchdata/stitchdata.go b/pkg/detectors/stitchdata/stitchdata.go index 67e7d4d357f6..106a0e7fa4ee 100644 --- a/pkg/detectors/stitchdata/stitchdata.go +++ b/pkg/detectors/stitchdata/stitchdata.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Stitchdata } + +func (s Scanner) Description() string { + return "Stitchdata is a cloud ETL service for consolidating data from various sources into a data warehouse. Stitchdata API keys can be used to manage and automate data pipelines." +} diff --git a/pkg/detectors/stockdata/stockdata.go b/pkg/detectors/stockdata/stockdata.go index baef2228797d..8108dcd1e7fb 100644 --- a/pkg/detectors/stockdata/stockdata.go +++ b/pkg/detectors/stockdata/stockdata.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Stockdata } + +func (s Scanner) Description() string { + return "Stockdata is a service providing stock market data. Stockdata API keys can be used to access and retrieve stock market information." +} diff --git a/pkg/detectors/storecove/storecove.go b/pkg/detectors/storecove/storecove.go index 4e113e7477d3..f07f0132021a 100644 --- a/pkg/detectors/storecove/storecove.go +++ b/pkg/detectors/storecove/storecove.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Storecove } + +func (s Scanner) Description() string { + return "Storecove is an API service for electronic invoicing. Storecove API keys can be used to access and manage electronic invoicing data." +} diff --git a/pkg/detectors/stormboard/stormboard.go b/pkg/detectors/stormboard/stormboard.go index 6c2a61528e53..33aa5dd77302 100644 --- a/pkg/detectors/stormboard/stormboard.go +++ b/pkg/detectors/stormboard/stormboard.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Stormboard } + +func (s Scanner) Description() string { + return "Stormboard is a digital workspace for brainstorming and collaboration. Stormboard API keys can be used to access and modify data within the workspace." +} diff --git a/pkg/detectors/stormglass/stormglass.go b/pkg/detectors/stormglass/stormglass.go index 83216c6dbaad..d72b63a97e38 100644 --- a/pkg/detectors/stormglass/stormglass.go +++ b/pkg/detectors/stormglass/stormglass.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Stormglass } + +func (s Scanner) Description() string { + return "Stormglass is a weather data provider. Stormglass API keys can be used to access weather data services." +} diff --git a/pkg/detectors/storyblok/storyblok.go b/pkg/detectors/storyblok/storyblok.go index c5262d0af096..c88c8f4c2d46 100644 --- a/pkg/detectors/storyblok/storyblok.go +++ b/pkg/detectors/storyblok/storyblok.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Storyblok } + +func (s Scanner) Description() string { + return "Storyblok is a headless CMS that allows developers to build flexible and powerful content management solutions. Storyblok tokens can be used to access and modify content within a Storyblok space." +} diff --git a/pkg/detectors/storychief/storychief.go b/pkg/detectors/storychief/storychief.go index 9e2949a975a3..e0ebc4d8d914 100644 --- a/pkg/detectors/storychief/storychief.go +++ b/pkg/detectors/storychief/storychief.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Storychief } + +func (s Scanner) Description() string { + return "Storychief is a content marketing platform that helps in creating, distributing, and measuring content. Storychief API keys can be used to access and manage content and integrations within the platform." +} diff --git a/pkg/detectors/strava/strava.go b/pkg/detectors/strava/strava.go index 1f8810c4ff73..8e4ff2331ae0 100644 --- a/pkg/detectors/strava/strava.go +++ b/pkg/detectors/strava/strava.go @@ -93,3 +93,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Strava } + +func (s Scanner) Description() string { + return "An workout app, Oauth API keys can potentially be used to access user workout data" +} diff --git a/pkg/detectors/streak/streak.go b/pkg/detectors/streak/streak.go index f241da304376..6b3c1fdfc5f7 100644 --- a/pkg/detectors/streak/streak.go +++ b/pkg/detectors/streak/streak.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Streak } + +func (s Scanner) Description() string { + return "Streak is a CRM software that integrates with Gmail. Streak API keys can be used to access and manage CRM data within Streak." +} diff --git a/pkg/detectors/stripe/stripe.go b/pkg/detectors/stripe/stripe.go index d886294c5f44..79a5e8ac593d 100644 --- a/pkg/detectors/stripe/stripe.go +++ b/pkg/detectors/stripe/stripe.go @@ -37,11 +37,11 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result for _, match := range matches { - s := detectors.Result{ + result := detectors.Result{ DetectorType: detectorspb.DetectorType_Stripe, Raw: []byte(match), } - s.ExtraData = map[string]string{ + result.ExtraData = map[string]string{ "rotation_guide": "https://howtorotate.com/docs/tutorials/stripe/", } @@ -63,13 +63,13 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result res.Body.Close() // The request body is unused. if res.StatusCode == http.StatusOK || res.StatusCode == http.StatusForbidden { - s.Verified = true + result.Verified = true } } - s.AnalysisInfo = map[string]string{"key": match} + result.AnalysisInfo = map[string]string{"key": match} } - results = append(results, s) + results = append(results, result) } return @@ -78,3 +78,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Stripe } + +func (s Scanner) Description() string { + return "Stripe is a payment processing platform. Stripe API keys can be used to interact with Stripe's services for processing payments, managing subscriptions, and more." +} diff --git a/pkg/detectors/stripo/stripo.go b/pkg/detectors/stripo/stripo.go index 73592efb7c9e..a44a878b90c5 100644 --- a/pkg/detectors/stripo/stripo.go +++ b/pkg/detectors/stripo/stripo.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Stripo } + +func (s Scanner) Description() string { + return "Stripo is an email template builder. Stripo API keys can be used to access and modify email templates." +} diff --git a/pkg/detectors/stytch/stytch.go b/pkg/detectors/stytch/stytch.go index d03cb347be0f..160d78cc3ce4 100644 --- a/pkg/detectors/stytch/stytch.go +++ b/pkg/detectors/stytch/stytch.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Stytch } + +func (s Scanner) Description() string { + return "Stytch is a platform for passwordless authentication. Stytch API keys can be used to access and manage authentication services." +} diff --git a/pkg/detectors/sugester/sugester.go b/pkg/detectors/sugester/sugester.go index c604e61ddde2..e3288db8027d 100644 --- a/pkg/detectors/sugester/sugester.go +++ b/pkg/detectors/sugester/sugester.go @@ -11,7 +11,7 @@ import ( "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" ) -type Scanner struct{ +type Scanner struct { detectors.DefaultMultiPartCredentialProvider } @@ -46,7 +46,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result resMatch := strings.TrimSpace(match[1]) for _, domainmatch := range domainMatches { - if len(match) != 2 { + if len(domainmatch) != 2 { continue } resDomainMatch := strings.TrimSpace(domainmatch[1]) @@ -72,7 +72,6 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result results = append(results, s1) } - } return results, nil @@ -81,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Sugester } + +func (s Scanner) Description() string { + return "Sugester is a customer support software that offers various tools for managing customer interactions. Sugester API keys can be used to access and manage data within the Sugester platform." +} diff --git a/pkg/detectors/sumologickey/sumologickey.go b/pkg/detectors/sumologickey/sumologickey.go index 28d0b02d9ac6..3dc310edd117 100644 --- a/pkg/detectors/sumologickey/sumologickey.go +++ b/pkg/detectors/sumologickey/sumologickey.go @@ -87,3 +87,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SumoLogicKey } + +func (s Scanner) Description() string { + return "Sumo Logic is a cloud-based machine data analytics service. Sumo Logic keys can be used to access and manage data within the Sumo Logic platform." +} diff --git a/pkg/detectors/supabasetoken/supabasetoken.go b/pkg/detectors/supabasetoken/supabasetoken.go index 7b08cbfda74e..b45614b64c76 100644 --- a/pkg/detectors/supabasetoken/supabasetoken.go +++ b/pkg/detectors/supabasetoken/supabasetoken.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SupabaseToken } + +func (s Scanner) Description() string { + return "Supabase is an open source Firebase alternative. Supabase tokens can be used to access and manage Supabase projects and data." +} diff --git a/pkg/detectors/supernotesapi/supernotesapi.go b/pkg/detectors/supernotesapi/supernotesapi.go index cb4022a5fa32..1fec9bec4327 100644 --- a/pkg/detectors/supernotesapi/supernotesapi.go +++ b/pkg/detectors/supernotesapi/supernotesapi.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SuperNotesAPI } + +func (s Scanner) Description() string { + return "SuperNotes is a note-taking application. SuperNotes API keys can be used to access and manage user notes and other data within the application." +} diff --git a/pkg/detectors/surveyanyplace/surveyanyplace.go b/pkg/detectors/surveyanyplace/surveyanyplace.go index 464ef75db22b..17d3bf88b796 100644 --- a/pkg/detectors/surveyanyplace/surveyanyplace.go +++ b/pkg/detectors/surveyanyplace/surveyanyplace.go @@ -90,3 +90,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SurveyAnyplace } + +func (s Scanner) Description() string { + return "SurveyAnyplace is a platform for creating surveys and quizzes. The detected credential can be used to access and manage surveys on this platform." +} diff --git a/pkg/detectors/surveybot/surveybot.go b/pkg/detectors/surveybot/surveybot.go index e6e798bc5ef1..20d930101283 100644 --- a/pkg/detectors/surveybot/surveybot.go +++ b/pkg/detectors/surveybot/surveybot.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SurveyBot } + +func (s Scanner) Description() string { + return "SurveyBot is a service used for conducting surveys. SurveyBot API keys can be used to access and manage surveys." +} diff --git a/pkg/detectors/surveysparrow/surveysparrow.go b/pkg/detectors/surveysparrow/surveysparrow.go index 7f31317a6326..9886c81197ba 100644 --- a/pkg/detectors/surveysparrow/surveysparrow.go +++ b/pkg/detectors/surveysparrow/surveysparrow.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_SurveySparrow } + +func (s Scanner) Description() string { + return "SurveySparrow is a survey platform for collecting feedback and data. The detected key can be used to access and manage surveys and responses." +} diff --git a/pkg/detectors/survicate/survicate.go b/pkg/detectors/survicate/survicate.go index c3b24d59b5a6..640612f79e65 100644 --- a/pkg/detectors/survicate/survicate.go +++ b/pkg/detectors/survicate/survicate.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Survicate } + +func (s Scanner) Description() string { + return "Survicate is a survey platform that allows users to collect feedback and insights from customers. Survicate API keys can be used to access and manage surveys and responses." +} diff --git a/pkg/detectors/swell/swell.go b/pkg/detectors/swell/swell.go index 15e737857785..8d3673c57b5f 100644 --- a/pkg/detectors/swell/swell.go +++ b/pkg/detectors/swell/swell.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Swell } + +func (s Scanner) Description() string { + return "Swell is an eCommerce platform that allows businesses to create and manage online stores. Swell API keys can be used to access and modify store data." +} diff --git a/pkg/detectors/swiftype/swiftype.go b/pkg/detectors/swiftype/swiftype.go index bc6eba41adf9..21d0af96ebad 100644 --- a/pkg/detectors/swiftype/swiftype.go +++ b/pkg/detectors/swiftype/swiftype.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Swiftype } + +func (s Scanner) Description() string { + return "Swiftype is a search technology that provides powerful search solutions for websites and applications. Swiftype keys can be used to access and manipulate search data." +} diff --git a/pkg/detectors/tailscale/tailscale.go b/pkg/detectors/tailscale/tailscale.go index 7ba46f47912c..4d40e8c63c84 100644 --- a/pkg/detectors/tailscale/tailscale.go +++ b/pkg/detectors/tailscale/tailscale.go @@ -79,3 +79,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Tailscale } + +func (s Scanner) Description() string { + return "Tailscale is a zero-config VPN for building secure networks. Tailscale API keys can be used to authenticate and interact with the Tailscale API." +} diff --git a/pkg/detectors/tallyfy/tallyfy.go b/pkg/detectors/tallyfy/tallyfy.go index 44b928e51189..94960eb9d6f6 100644 --- a/pkg/detectors/tallyfy/tallyfy.go +++ b/pkg/detectors/tallyfy/tallyfy.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Tallyfy } + +func (s Scanner) Description() string { + return "Tallyfy is a process management and workflow automation platform. Tallyfy API keys can be used to access and automate workflows and processes within the platform." +} diff --git a/pkg/detectors/tatumio/tatumio.go b/pkg/detectors/tatumio/tatumio.go index 97bc9d128067..cf6c50f26f46 100644 --- a/pkg/detectors/tatumio/tatumio.go +++ b/pkg/detectors/tatumio/tatumio.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TatumIO } + +func (s Scanner) Description() string { + return "Tatum is a blockchain infrastructure platform. Tatum API keys can be used to access and interact with blockchain services provided by Tatum." +} diff --git a/pkg/detectors/taxjar/taxjar.go b/pkg/detectors/taxjar/taxjar.go index 956318210dec..82064f039d56 100644 --- a/pkg/detectors/taxjar/taxjar.go +++ b/pkg/detectors/taxjar/taxjar.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Taxjar } + +func (s Scanner) Description() string { + return "Taxjar is a sales tax API that allows businesses to automate sales tax calculations, reporting, and filings. Taxjar API keys can be used to access and manage these services." +} diff --git a/pkg/detectors/teamgate/teamgate.go b/pkg/detectors/teamgate/teamgate.go index 39dffb5cc0e4..4e136024f30d 100644 --- a/pkg/detectors/teamgate/teamgate.go +++ b/pkg/detectors/teamgate/teamgate.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Teamgate } + +func (s Scanner) Description() string { + return "Teamgate is a sales CRM platform. Teamgate tokens and keys can be used to access and manage sales data and CRM functionalities." +} diff --git a/pkg/detectors/teamworkcrm/teamworkcrm.go b/pkg/detectors/teamworkcrm/teamworkcrm.go index 3a5cae84097f..f941a4225856 100644 --- a/pkg/detectors/teamworkcrm/teamworkcrm.go +++ b/pkg/detectors/teamworkcrm/teamworkcrm.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TeamworkCRM } + +func (s Scanner) Description() string { + return "TeamworkCRM is a customer relationship management tool that helps teams manage their sales pipeline and customer interactions. TeamworkCRM tokens can be used to access and manage CRM data and functionalities." +} diff --git a/pkg/detectors/teamworkdesk/teamworkdesk.go b/pkg/detectors/teamworkdesk/teamworkdesk.go index e4e788baab87..8877f987aa7c 100644 --- a/pkg/detectors/teamworkdesk/teamworkdesk.go +++ b/pkg/detectors/teamworkdesk/teamworkdesk.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TeamworkDesk } + +func (s Scanner) Description() string { + return "TeamworkDesk is a helpdesk software that allows teams to manage customer communications. TeamworkDesk tokens can be used to access and manage customer support tickets and other related data." +} diff --git a/pkg/detectors/teamworkspaces/teamworkspaces.go b/pkg/detectors/teamworkspaces/teamworkspaces.go index 3e4b3aa1c527..85c11f820257 100644 --- a/pkg/detectors/teamworkspaces/teamworkspaces.go +++ b/pkg/detectors/teamworkspaces/teamworkspaces.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TeamworkSpaces } + +func (s Scanner) Description() string { + return "TeamworkSpaces is a collaboration tool for teams to share documents and information. The detected key can be used to access and modify spaces and documents within TeamworkSpaces." +} diff --git a/pkg/detectors/technicalanalysisapi/technicalanalysisapi.go b/pkg/detectors/technicalanalysisapi/technicalanalysisapi.go index fbdbda279e38..35b6893e5828 100644 --- a/pkg/detectors/technicalanalysisapi/technicalanalysisapi.go +++ b/pkg/detectors/technicalanalysisapi/technicalanalysisapi.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TechnicalAnalysisApi } + +func (s Scanner) Description() string { + return "TechnicalAnalysisApi is a service used for technical analysis of financial markets. The API key can be used to access and retrieve market analysis data." +} diff --git a/pkg/detectors/tefter/tefter.go b/pkg/detectors/tefter/tefter.go index 0d5dbf398710..212f556a5dfa 100644 --- a/pkg/detectors/tefter/tefter.go +++ b/pkg/detectors/tefter/tefter.go @@ -79,3 +79,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Tefter } + +func (s Scanner) Description() string { + return "Tefter is a bookmarking service. Tefter API keys can be used to access and manage bookmarks." +} diff --git a/pkg/detectors/telegrambottoken/telegrambottoken.go b/pkg/detectors/telegrambottoken/telegrambottoken.go index 90649da1fb70..7b82327b85ad 100644 --- a/pkg/detectors/telegrambottoken/telegrambottoken.go +++ b/pkg/detectors/telegrambottoken/telegrambottoken.go @@ -97,3 +97,7 @@ type userResponse struct { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TelegramBotToken } + +func (s Scanner) Description() string { + return "Telegram Bot API tokens are used to authenticate requests to the Telegram Bot API. They can be used to control and interact with Telegram bots." +} diff --git a/pkg/detectors/teletype/teletype.go b/pkg/detectors/teletype/teletype.go index a56c4da6cf8d..02fbaccfe020 100644 --- a/pkg/detectors/teletype/teletype.go +++ b/pkg/detectors/teletype/teletype.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Teletype } + +func (s Scanner) Description() string { + return "Teletype is a messaging service. Teletype API keys can be used to access and send messages through the Teletype API." +} diff --git a/pkg/detectors/telnyx/telnyx.go b/pkg/detectors/telnyx/telnyx.go index 4d4e11c31356..a2c613ab6dcc 100644 --- a/pkg/detectors/telnyx/telnyx.go +++ b/pkg/detectors/telnyx/telnyx.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Telnyx } + +func (s Scanner) Description() string { + return "Telnyx is a communications platform offering voice, messaging, and other communication services. Telnyx keys can be used to access and manage these services." +} diff --git a/pkg/detectors/terraformcloudpersonaltoken/terraformcloudpersonaltoken.go b/pkg/detectors/terraformcloudpersonaltoken/terraformcloudpersonaltoken.go index 28cddb17c341..c69ac6ef06f4 100644 --- a/pkg/detectors/terraformcloudpersonaltoken/terraformcloudpersonaltoken.go +++ b/pkg/detectors/terraformcloudpersonaltoken/terraformcloudpersonaltoken.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TerraformCloudPersonalToken } + +func (s Scanner) Description() string { + return "Terraform Cloud is a service that provides infrastructure automation. Terraform Cloud personal tokens can be used to access and manage infrastructure as code." +} diff --git a/pkg/detectors/testingbot/testingbot.go b/pkg/detectors/testingbot/testingbot.go index 56fb05fdbd33..8bf2cc554c79 100644 --- a/pkg/detectors/testingbot/testingbot.go +++ b/pkg/detectors/testingbot/testingbot.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TestingBot } + +func (s Scanner) Description() string { + return "TestingBot provides cross-browser testing services. TestingBot credentials can be used to automate tests on various browsers and devices." +} diff --git a/pkg/detectors/textmagic/textmagic.go b/pkg/detectors/textmagic/textmagic.go index b543df318197..337a10dae767 100644 --- a/pkg/detectors/textmagic/textmagic.go +++ b/pkg/detectors/textmagic/textmagic.go @@ -48,7 +48,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result resMatch := strings.TrimSpace(match[1]) for _, userMatch := range userMatches { - if len(match) != 2 { + if len(userMatch) != 2 { continue } resUser := strings.TrimSpace(userMatch[1]) @@ -87,3 +87,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Textmagic } + +func (s Scanner) Description() string { + return "Textmagic is a service for sending and receiving text messages. Textmagic API keys can be used to access and manage text messaging services." +} diff --git a/pkg/detectors/theoddsapi/theoddsapi.go b/pkg/detectors/theoddsapi/theoddsapi.go index ca0b315cf360..269a51076919 100644 --- a/pkg/detectors/theoddsapi/theoddsapi.go +++ b/pkg/detectors/theoddsapi/theoddsapi.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TheOddsApi } + +func (s Scanner) Description() string { + return "TheOddsApi provides sports data and odds. TheOddsApi keys can be used to access this data." +} diff --git a/pkg/detectors/thinkific/thinkific.go b/pkg/detectors/thinkific/thinkific.go index fdfbcb638afa..5cb43c985a48 100644 --- a/pkg/detectors/thinkific/thinkific.go +++ b/pkg/detectors/thinkific/thinkific.go @@ -13,7 +13,7 @@ import ( "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" ) -type Scanner struct{ +type Scanner struct { detectors.DefaultMultiPartCredentialProvider } @@ -83,7 +83,6 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result results = append(results, s1) } - } return results, nil @@ -92,3 +91,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Thinkific } + +func (s Scanner) Description() string { + return "Thinkific is an online course platform that allows users to create, market, and sell online courses. Thinkific API keys can be used to access and manage course data and user information." +} diff --git a/pkg/detectors/thousandeyes/thousandeyes.go b/pkg/detectors/thousandeyes/thousandeyes.go index 7693e6bc94f4..0fa225463e1c 100644 --- a/pkg/detectors/thousandeyes/thousandeyes.go +++ b/pkg/detectors/thousandeyes/thousandeyes.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ThousandEyes } + +func (s Scanner) Description() string { + return "ThousandEyes provides network intelligence and monitoring services. ThousandEyes API keys can be used to access and manage network performance data." +} diff --git a/pkg/detectors/ticketmaster/ticketmaster.go b/pkg/detectors/ticketmaster/ticketmaster.go index de12b7a04f76..759796b33a9e 100644 --- a/pkg/detectors/ticketmaster/ticketmaster.go +++ b/pkg/detectors/ticketmaster/ticketmaster.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TicketMaster } + +func (s Scanner) Description() string { + return "TicketMaster API keys can be used to access and modify event data and other related services provided by TicketMaster." +} diff --git a/pkg/detectors/tickettailor/tickettailor.go b/pkg/detectors/tickettailor/tickettailor.go index 10d96b551786..a97f9cd2b3c9 100644 --- a/pkg/detectors/tickettailor/tickettailor.go +++ b/pkg/detectors/tickettailor/tickettailor.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Tickettailor } + +func (s Scanner) Description() string { + return "Tickettailor is an online ticketing platform that allows event organizers to sell tickets. Tickettailor API keys can be used to manage events, orders, and tickets programmatically." +} diff --git a/pkg/detectors/tiingo/tiingo.go b/pkg/detectors/tiingo/tiingo.go index e8aa1da7e5d3..a8af6c8f933d 100644 --- a/pkg/detectors/tiingo/tiingo.go +++ b/pkg/detectors/tiingo/tiingo.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Tiingo } + +func (s Scanner) Description() string { + return "Tiingo is a financial data platform that provides access to various financial data and APIs. Tiingo API keys can be used to access and retrieve financial data." +} diff --git a/pkg/detectors/timecamp/timecamp.go b/pkg/detectors/timecamp/timecamp.go index e3c132ab1d77..4addd7b9eaa2 100644 --- a/pkg/detectors/timecamp/timecamp.go +++ b/pkg/detectors/timecamp/timecamp.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TimeCamp } + +func (s Scanner) Description() string { + return "TimeCamp is a time tracking software for teams and freelancers. TimeCamp API keys can be used to access and modify time tracking data." +} diff --git a/pkg/detectors/timezoneapi/timezoneapi.go b/pkg/detectors/timezoneapi/timezoneapi.go index ef7534d3a1cc..30737eb4cbf0 100644 --- a/pkg/detectors/timezoneapi/timezoneapi.go +++ b/pkg/detectors/timezoneapi/timezoneapi.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Timezoneapi } + +func (s Scanner) Description() string { + return "Timezoneapi is a service that provides time zone information. Timezoneapi keys can be used to access and retrieve time zone data." +} diff --git a/pkg/detectors/tineswebhook/tineswebhook.go b/pkg/detectors/tineswebhook/tineswebhook.go index 09654eb79cc6..5ce4bd3fa501 100644 --- a/pkg/detectors/tineswebhook/tineswebhook.go +++ b/pkg/detectors/tineswebhook/tineswebhook.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TinesWebhook } + +func (s Scanner) Description() string { + return "Tines is an automation platform. Tines Webhook URLs can be used to trigger and interact with Tines workflows." +} diff --git a/pkg/detectors/tly/tly.go b/pkg/detectors/tly/tly.go index 37b7eb6ff1d0..9c5c9d8ba7d9 100644 --- a/pkg/detectors/tly/tly.go +++ b/pkg/detectors/tly/tly.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TLy } + +func (s Scanner) Description() string { + return "TLy is a URL shortening service. TLy API keys can be used to access and manage shortened URLs." +} diff --git a/pkg/detectors/tmetric/tmetric.go b/pkg/detectors/tmetric/tmetric.go index 476b5e6fde33..2b522706ad2b 100644 --- a/pkg/detectors/tmetric/tmetric.go +++ b/pkg/detectors/tmetric/tmetric.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Tmetric } + +func (s Scanner) Description() string { + return "Tmetric is a time tracking service. Tmetric API keys can be used to access and manage time tracking data." +} diff --git a/pkg/detectors/todoist/todoist.go b/pkg/detectors/todoist/todoist.go index 3461c5e3bf62..8b4af8651df5 100644 --- a/pkg/detectors/todoist/todoist.go +++ b/pkg/detectors/todoist/todoist.go @@ -3,10 +3,11 @@ package todoist import ( "context" "fmt" - regexp "github.com/wasilibs/go-re2" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -71,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Todoist } + +func (s Scanner) Description() string { + return "Todoist is a task management application. Todoist API keys can be used to access and manage tasks and projects within a user's account." +} diff --git a/pkg/detectors/toggltrack/toggltrack.go b/pkg/detectors/toggltrack/toggltrack.go index 883784c7bca0..cde7275d5ab6 100644 --- a/pkg/detectors/toggltrack/toggltrack.go +++ b/pkg/detectors/toggltrack/toggltrack.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TogglTrack } + +func (s Scanner) Description() string { + return "TogglTrack is a time tracking tool. TogglTrack API keys can be used to access and manage time tracking data." +} diff --git a/pkg/detectors/tokeet/tokeet.go b/pkg/detectors/tokeet/tokeet.go index a8ac2399858b..0ae00b7456da 100644 --- a/pkg/detectors/tokeet/tokeet.go +++ b/pkg/detectors/tokeet/tokeet.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Tokeet } + +func (s Scanner) Description() string { + return "Tokeet is a property management software used for managing rental properties. Tokeet API keys can be used to access and modify property data and manage bookings." +} diff --git a/pkg/detectors/tomorrowio/tomorrowio.go b/pkg/detectors/tomorrowio/tomorrowio.go index edf5de186032..8509801d83df 100644 --- a/pkg/detectors/tomorrowio/tomorrowio.go +++ b/pkg/detectors/tomorrowio/tomorrowio.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TomorrowIO } + +func (s Scanner) Description() string { + return "TomorrowIO is a weather intelligence platform providing weather data and insights. TomorrowIO API keys can be used to access and retrieve weather information." +} diff --git a/pkg/detectors/tomtom/tomtom.go b/pkg/detectors/tomtom/tomtom.go index b1e1aff2c867..1c9f6074eba0 100644 --- a/pkg/detectors/tomtom/tomtom.go +++ b/pkg/detectors/tomtom/tomtom.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Tomtom } + +func (s Scanner) Description() string { + return "TomTom provides mapping and location technologies. TomTom API keys can be used to access and manipulate mapping data." +} diff --git a/pkg/detectors/tradier/tradier.go b/pkg/detectors/tradier/tradier.go index c11d0ee1464b..aaed876f909e 100644 --- a/pkg/detectors/tradier/tradier.go +++ b/pkg/detectors/tradier/tradier.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Tradier } + +func (s Scanner) Description() string { + return "Tradier is a financial services provider that offers a trading platform and API. Tradier API keys can be used to access and manage trading accounts and execute trades." +} diff --git a/pkg/detectors/transferwise/transferwise.go b/pkg/detectors/transferwise/transferwise.go index e49455d2c33d..f4413bbe1af6 100644 --- a/pkg/detectors/transferwise/transferwise.go +++ b/pkg/detectors/transferwise/transferwise.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Transferwise } + +func (s Scanner) Description() string { + return "TransferWise (now known as Wise) is an international money transfer service. TransferWise API keys can be used to access and manage money transfers." +} diff --git a/pkg/detectors/travelpayouts/travelpayouts.go b/pkg/detectors/travelpayouts/travelpayouts.go index 6aa4b481b785..57ab48dc58bb 100644 --- a/pkg/detectors/travelpayouts/travelpayouts.go +++ b/pkg/detectors/travelpayouts/travelpayouts.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TravelPayouts } + +func (s Scanner) Description() string { + return "TravelPayouts is a travel affiliate network that provides access to various travel-related APIs. TravelPayouts keys can be used to interact with these APIs to retrieve travel data and earn commissions on bookings." +} diff --git a/pkg/detectors/travisci/travisci.go b/pkg/detectors/travisci/travisci.go index fe7b7a79a9d3..f100164c3e6e 100644 --- a/pkg/detectors/travisci/travisci.go +++ b/pkg/detectors/travisci/travisci.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TravisCI } + +func (s Scanner) Description() string { + return "Travis CI is a continuous integration service used to build and test software projects hosted on GitHub and Bitbucket. Travis CI tokens can be used to interact with the Travis CI API." +} diff --git a/pkg/detectors/trelloapikey/trelloapikey.go b/pkg/detectors/trelloapikey/trelloapikey.go index d26696d597f1..9bac7cecf1d2 100644 --- a/pkg/detectors/trelloapikey/trelloapikey.go +++ b/pkg/detectors/trelloapikey/trelloapikey.go @@ -2,7 +2,6 @@ package trelloapikey import ( "context" - // "log" regexp "github.com/wasilibs/go-re2" "net/http" "strings" @@ -80,3 +79,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TrelloApiKey } + +func (s Scanner) Description() string { + return "Trello is a collaboration tool that organizes your projects into boards. Trello API keys can be used to access and modify data within Trello." +} diff --git a/pkg/detectors/tru/tru.go b/pkg/detectors/tru/tru.go index f573a1cff794..3719a5d5a17b 100644 --- a/pkg/detectors/tru/tru.go +++ b/pkg/detectors/tru/tru.go @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Tru } + +func (s Scanner) Description() string { + return "Tru is a service that provides APIs for phone number verification and other identity verification services. Tru credentials can be used to access these APIs and perform verification operations." +} diff --git a/pkg/detectors/trufflehogenterprise/trufflehogenterprise.go b/pkg/detectors/trufflehogenterprise/trufflehogenterprise.go index dfd6263b33ce..1b3374582ea8 100644 --- a/pkg/detectors/trufflehogenterprise/trufflehogenterprise.go +++ b/pkg/detectors/trufflehogenterprise/trufflehogenterprise.go @@ -103,3 +103,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TrufflehogEnterprise } + +func (s Scanner) Description() string { + return "TruffleHog Enterprise is a tool for detecting and verifying secrets in your codebase. The keys and secrets detected can be used to access TruffleHog Enterprise services." +} diff --git a/pkg/detectors/twelvedata/twelvedata.go b/pkg/detectors/twelvedata/twelvedata.go index 1b684910d20d..711a70f6a0f1 100644 --- a/pkg/detectors/twelvedata/twelvedata.go +++ b/pkg/detectors/twelvedata/twelvedata.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TwelveData } + +func (s Scanner) Description() string { + return "TwelveData provides financial data APIs for stock, forex, cryptocurrency, and more. TwelveData API keys can be used to access and retrieve this financial data." +} diff --git a/pkg/detectors/twilio/twilio.go b/pkg/detectors/twilio/twilio.go index d0dd2e418da7..e3b9de1db798 100644 --- a/pkg/detectors/twilio/twilio.go +++ b/pkg/detectors/twilio/twilio.go @@ -120,3 +120,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Twilio } + +func (s Scanner) Description() string { + return "Twilio is a cloud communications platform that allows software developers to programmatically make and receive phone calls, send and receive text messages, and perform other communication functions using its web service APIs." +} diff --git a/pkg/detectors/twist/twist.go b/pkg/detectors/twist/twist.go index c99c423d2c30..1e46bfc45c2a 100644 --- a/pkg/detectors/twist/twist.go +++ b/pkg/detectors/twist/twist.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Twist } + +func (s Scanner) Description() string { + return "Twist is a team communication app. Twist access tokens can be used to access and manage Twist accounts and data." +} diff --git a/pkg/detectors/twitch/twitch.go b/pkg/detectors/twitch/twitch.go index 994be1ede5e3..b31513d1ca13 100644 --- a/pkg/detectors/twitch/twitch.go +++ b/pkg/detectors/twitch/twitch.go @@ -115,3 +115,7 @@ func verifyTwitch(ctx context.Context, client *http.Client, resMatch string, res func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Twitch } + +func (s Scanner) Description() string { + return "Twitch is a live streaming service. Twitch API keys can be used to access and modify data on the Twitch platform." +} diff --git a/pkg/detectors/twitter/v1/twitter_v1.go b/pkg/detectors/twitter/v1/twitter_v1.go index ee2c3d9893f5..ec2d0b595fde 100644 --- a/pkg/detectors/twitter/v1/twitter_v1.go +++ b/pkg/detectors/twitter/v1/twitter_v1.go @@ -78,6 +78,10 @@ func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Twitter } +func (s Scanner) Description() string { + return "Twitter API keys can be used to interact with the Twitter API to post tweets, read timelines, and access other Twitter functionalities." +} + func (s Scanner) VerifyTwitterToken(ctx context.Context, client *http.Client, token string) (bool, error) { req, err := http.NewRequestWithContext(ctx, http.MethodGet, "https://api.twitter.com/2/tweets/20", nil) if err != nil { diff --git a/pkg/detectors/twitter/v2/twitter_v2.go b/pkg/detectors/twitter/v2/twitter_v2.go index ff55a56c304f..63db3e1a825f 100644 --- a/pkg/detectors/twitter/v2/twitter_v2.go +++ b/pkg/detectors/twitter/v2/twitter_v2.go @@ -78,3 +78,8 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Twitter } + +// Description returns a description for the result being detected +func (s Scanner) Description() string { + return "Twitter API keys can be used to access and interact with Twitter's platform programmatically." +} diff --git a/pkg/detectors/twitterconsumerkey/twitterconsumerkey.go b/pkg/detectors/twitterconsumerkey/twitterconsumerkey.go index 5a0fe7ea147d..7f0a43fc75a5 100644 --- a/pkg/detectors/twitterconsumerkey/twitterconsumerkey.go +++ b/pkg/detectors/twitterconsumerkey/twitterconsumerkey.go @@ -87,6 +87,10 @@ func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_TwitterConsumerkey } +func (s Scanner) Description() string { + return "Twitter Consumer Keys and Secrets are used to authenticate API requests to Twitter. They allow access to Twitter's API to manage user data and perform actions on behalf of users." +} + func verifyBearerToken(ctx context.Context, client *http.Client, token string) (bool, error) { req, err := http.NewRequestWithContext(ctx, http.MethodGet, "https://api.twitter.com/2/tweets/20", nil) if err != nil { diff --git a/pkg/detectors/tyntec/tyntec.go b/pkg/detectors/tyntec/tyntec.go index 0269f61a1536..3b365a8d4a7c 100644 --- a/pkg/detectors/tyntec/tyntec.go +++ b/pkg/detectors/tyntec/tyntec.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Tyntec } + +func (s Scanner) Description() string { + return "Tyntec is a service providing communication APIs for messaging, voice, and phone number verification. Tyntec API keys can be used to access and manage these services." +} diff --git a/pkg/detectors/typeform/typeform.go b/pkg/detectors/typeform/typeform.go index 63dfbf41e48d..9dc0fd244d54 100644 --- a/pkg/detectors/typeform/typeform.go +++ b/pkg/detectors/typeform/typeform.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Typeform } + +func (s Scanner) Description() string { + return "Typeform is a service for creating forms and surveys. Typeform API keys can be used to access and manage forms and responses." +} diff --git a/pkg/detectors/typetalk/typetalk.go b/pkg/detectors/typetalk/typetalk.go index b25b5c824266..bbd61d35fb4d 100644 --- a/pkg/detectors/typetalk/typetalk.go +++ b/pkg/detectors/typetalk/typetalk.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Typetalk } + +func (s Scanner) Description() string { + return "Typetalk is a Japanese chat app. API keys can be used to read potentially sensitive chat messages." +} diff --git a/pkg/detectors/ubidots/ubidots.go b/pkg/detectors/ubidots/ubidots.go index 303de4887197..ea694921da4b 100644 --- a/pkg/detectors/ubidots/ubidots.go +++ b/pkg/detectors/ubidots/ubidots.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Ubidots } + +func (s Scanner) Description() string { + return "Ubidots is an IoT platform that provides tools to manage and analyze IoT devices. Ubidots tokens can be used to access and manipulate data from IoT devices." +} diff --git a/pkg/detectors/uclassify/uclassify.go b/pkg/detectors/uclassify/uclassify.go index 29fe57cc62e0..6972e28cf57d 100644 --- a/pkg/detectors/uclassify/uclassify.go +++ b/pkg/detectors/uclassify/uclassify.go @@ -73,3 +73,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Uclassify } + +func (s Scanner) Description() string { + return "Uclassify is a text classification service. Uclassify API keys can be used to classify text into various categories such as sentiment, topic, etc." +} diff --git a/pkg/detectors/unifyid/unifyid.go b/pkg/detectors/unifyid/unifyid.go index 4bb02a18056f..f77444109ecc 100644 --- a/pkg/detectors/unifyid/unifyid.go +++ b/pkg/detectors/unifyid/unifyid.go @@ -78,3 +78,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_UnifyID } + +func (s Scanner) Description() string { + return "UnifyID provides human detection services. These API keys can be used to verify human presence." +} diff --git a/pkg/detectors/unplugg/unplugg.go b/pkg/detectors/unplugg/unplugg.go index 25c2b59a66f2..f24ef97c90e3 100644 --- a/pkg/detectors/unplugg/unplugg.go +++ b/pkg/detectors/unplugg/unplugg.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Unplugg } + +func (s Scanner) Description() string { + return "Unplugg is a service for forecasting and data analysis. Unplugg API keys can be used to access and manipulate forecast data." +} diff --git a/pkg/detectors/unsplash/unsplash.go b/pkg/detectors/unsplash/unsplash.go index 4b2a758084b0..5d592f5c9c7e 100644 --- a/pkg/detectors/unsplash/unsplash.go +++ b/pkg/detectors/unsplash/unsplash.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Unsplash } + +func (s Scanner) Description() string { + return "Unsplash is a website dedicated to sharing stock photography under the Unsplash license. Unsplash API keys can be used to access and modify Unsplash data." +} diff --git a/pkg/detectors/upcdatabase/upcdatabase.go b/pkg/detectors/upcdatabase/upcdatabase.go index c18f34fe9f3f..5053bc4c94d3 100644 --- a/pkg/detectors/upcdatabase/upcdatabase.go +++ b/pkg/detectors/upcdatabase/upcdatabase.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_UPCDatabase } + +func (s Scanner) Description() string { + return "UPCDatabase is a service that provides access to a database of product information via API. The API key can be used to query product details." +} diff --git a/pkg/detectors/uplead/uplead.go b/pkg/detectors/uplead/uplead.go index 6058835c825f..71c3963347e6 100644 --- a/pkg/detectors/uplead/uplead.go +++ b/pkg/detectors/uplead/uplead.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Uplead } + +func (s Scanner) Description() string { + return "Uplead is a B2B contact data provider. Uplead API keys can be used to access and manage contact data." +} diff --git a/pkg/detectors/uploadcare/uploadcare.go b/pkg/detectors/uploadcare/uploadcare.go index 75497eee1dcd..94878c05e941 100644 --- a/pkg/detectors/uploadcare/uploadcare.go +++ b/pkg/detectors/uploadcare/uploadcare.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_UploadCare } + +func (s Scanner) Description() string { + return "UploadCare is a service for handling file uploads and transformations. UploadCare keys can be used to manage and access files within the UploadCare system." +} diff --git a/pkg/detectors/uptimerobot/uptimerobot.go b/pkg/detectors/uptimerobot/uptimerobot.go index 00d3b6df6d36..24b3e9754b29 100644 --- a/pkg/detectors/uptimerobot/uptimerobot.go +++ b/pkg/detectors/uptimerobot/uptimerobot.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_UptimeRobot } + +func (s Scanner) Description() string { + return "UptimeRobot provides website monitoring services. The API keys can be used to manage and monitor these services." +} diff --git a/pkg/detectors/upwave/upwave.go b/pkg/detectors/upwave/upwave.go index c42178d0b84c..80c6c6c4644b 100644 --- a/pkg/detectors/upwave/upwave.go +++ b/pkg/detectors/upwave/upwave.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Upwave } + +func (s Scanner) Description() string { + return "Upwave is a project management tool. Upwave API keys can be used to access and manage project data." +} diff --git a/pkg/detectors/uri/uri.go b/pkg/detectors/uri/uri.go index e383ac9b9b5e..f97f3198ad1c 100644 --- a/pkg/detectors/uri/uri.go +++ b/pkg/detectors/uri/uri.go @@ -160,3 +160,7 @@ func verifyURL(ctx context.Context, client *http.Client, u *url.URL) (bool, erro func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_URI } + +func (s Scanner) Description() string { + return "This detector identifies URLs with embedded credentials, which can be used to access web resources without explicit user interaction." +} diff --git a/pkg/detectors/urlscan/urlscan.go b/pkg/detectors/urlscan/urlscan.go index b1236f8708c5..a4f877d57728 100644 --- a/pkg/detectors/urlscan/urlscan.go +++ b/pkg/detectors/urlscan/urlscan.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Urlscan } + +func (s Scanner) Description() string { + return "Urlscan is a service for scanning and analyzing websites. Urlscan API keys can be used to interact with the Urlscan service programmatically." +} diff --git a/pkg/detectors/user/user.go b/pkg/detectors/user/user.go index 7cd92846535d..890f73c1baf4 100644 --- a/pkg/detectors/user/user.go +++ b/pkg/detectors/user/user.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_User } + +func (s Scanner) Description() string { + return "User credentials can be used to authenticate and authorize actions within the User service, potentially allowing access to sensitive data and operations." +} diff --git a/pkg/detectors/userflow/userflow.go b/pkg/detectors/userflow/userflow.go index 9014b5f5e589..150cb6f206b5 100644 --- a/pkg/detectors/userflow/userflow.go +++ b/pkg/detectors/userflow/userflow.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Userflow } + +func (s Scanner) Description() string { + return "Userflow is a service for creating user onboarding experiences. Userflow API keys can be used to access and modify user onboarding data and workflows." +} diff --git a/pkg/detectors/userstack/userstack.go b/pkg/detectors/userstack/userstack.go index 7655a8e805df..9830c8cd6f0b 100644 --- a/pkg/detectors/userstack/userstack.go +++ b/pkg/detectors/userstack/userstack.go @@ -78,3 +78,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_UserStack } + +func (s Scanner) Description() string { + return "UserStack is a service that provides detailed information about the technology stack used by a website. UserStack API keys can be used to access this information." +} diff --git a/pkg/detectors/vagrantcloudpersonaltoken/vagrantcloudpersonaltoken.go b/pkg/detectors/vagrantcloudpersonaltoken/vagrantcloudpersonaltoken.go index 9515301151f3..d448e35d54d2 100644 --- a/pkg/detectors/vagrantcloudpersonaltoken/vagrantcloudpersonaltoken.go +++ b/pkg/detectors/vagrantcloudpersonaltoken/vagrantcloudpersonaltoken.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_VagrantCloudPersonalToken } + +func (s Scanner) Description() string { + return "Vagrant Cloud is a service for managing and distributing development environments. Personal tokens can be used to authenticate and interact with the Vagrant Cloud API." +} diff --git a/pkg/detectors/vatlayer/vatlayer.go b/pkg/detectors/vatlayer/vatlayer.go index 6951bdf0f889..7fd7456d6b5e 100644 --- a/pkg/detectors/vatlayer/vatlayer.go +++ b/pkg/detectors/vatlayer/vatlayer.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_VatLayer } + +func (s Scanner) Description() string { + return "VatLayer is a service that provides VAT number validation and VAT rate data for businesses. VatLayer keys can be used to access this service and retrieve VAT-related information." +} diff --git a/pkg/detectors/vbout/vbout.go b/pkg/detectors/vbout/vbout.go index e8badadc7be3..c777f21472aa 100644 --- a/pkg/detectors/vbout/vbout.go +++ b/pkg/detectors/vbout/vbout.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Vbout } + +func (s Scanner) Description() string { + return "Vbout is a marketing automation platform. Vbout API keys can be used to access and manage marketing data and campaigns." +} diff --git a/pkg/detectors/vercel/vercel.go b/pkg/detectors/vercel/vercel.go index 4b04286b5a68..1227b03b2da2 100644 --- a/pkg/detectors/vercel/vercel.go +++ b/pkg/detectors/vercel/vercel.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Vercel } + +func (s Scanner) Description() string { + return "Vercel is a platform for frontend frameworks and static sites, built to integrate with your headless content, commerce, or database. Vercel API keys can be used to access and manage your Vercel projects and deployments." +} diff --git a/pkg/detectors/verifier/verifier.go b/pkg/detectors/verifier/verifier.go index 922506c33111..e6388a7a8026 100644 --- a/pkg/detectors/verifier/verifier.go +++ b/pkg/detectors/verifier/verifier.go @@ -80,3 +80,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Verifier } + +func (s Scanner) Description() string { + return "Verifier is a service used to verify the authenticity of a credential. The tokens can be used to validate user identities." +} diff --git a/pkg/detectors/verimail/verimail.go b/pkg/detectors/verimail/verimail.go index 973dcd440d9f..3462f8394783 100644 --- a/pkg/detectors/verimail/verimail.go +++ b/pkg/detectors/verimail/verimail.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Verimail } + +func (s Scanner) Description() string { + return "Verimail is an email verification service that helps ensure email addresses are valid and deliverable. Verimail keys can be used to access the Verimail API for verifying email addresses." +} diff --git a/pkg/detectors/veriphone/veriphone.go b/pkg/detectors/veriphone/veriphone.go index 944d5c33302f..8e9d71a94921 100644 --- a/pkg/detectors/veriphone/veriphone.go +++ b/pkg/detectors/veriphone/veriphone.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Veriphone } + +func (s Scanner) Description() string { + return "Veriphone is a service that provides phone number validation. Veriphone API keys can be used to access the phone validation service." +} diff --git a/pkg/detectors/versioneye/versioneye.go b/pkg/detectors/versioneye/versioneye.go index 74c718f11e0b..cd24b9ae5f7c 100644 --- a/pkg/detectors/versioneye/versioneye.go +++ b/pkg/detectors/versioneye/versioneye.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_VersionEye } + +func (s Scanner) Description() string { + return "VersionEye is a service that monitors your project dependencies and alerts you of any vulnerabilities. VersionEye API keys can be used to access and manage your project data." +} diff --git a/pkg/detectors/viewneo/viewneo.go b/pkg/detectors/viewneo/viewneo.go index 1f1754355a4a..662a2e4fc83a 100644 --- a/pkg/detectors/viewneo/viewneo.go +++ b/pkg/detectors/viewneo/viewneo.go @@ -77,3 +77,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Viewneo } + +func (s Scanner) Description() string { + return "Viewneo is a digital signage platform. Viewneo API keys can be used to access and manage digital signage content and settings." +} diff --git a/pkg/detectors/virustotal/virustotal.go b/pkg/detectors/virustotal/virustotal.go index db78d8a5661a..519fa3d2f27c 100644 --- a/pkg/detectors/virustotal/virustotal.go +++ b/pkg/detectors/virustotal/virustotal.go @@ -77,3 +77,7 @@ func verifyToken(ctx context.Context, client *http.Client, token string) bool { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_VirusTotal } + +func (s Scanner) Description() string { + return "VirusTotal is an online service that analyzes files and URLs for viruses, worms, trojans, and other kinds of malicious content. VirusTotal API keys can be used to access and integrate this service into applications." +} diff --git a/pkg/detectors/visualcrossing/visualcrossing.go b/pkg/detectors/visualcrossing/visualcrossing.go index 81fb62ff00ea..92ca10d93670 100644 --- a/pkg/detectors/visualcrossing/visualcrossing.go +++ b/pkg/detectors/visualcrossing/visualcrossing.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_VisualCrossing } + +func (s Scanner) Description() string { + return "Visual Crossing provides weather data services. Visual Crossing API keys can be used to access weather data and services." +} diff --git a/pkg/detectors/voiceflow/voiceflow.go b/pkg/detectors/voiceflow/voiceflow.go index 1ffb1b11d263..f49fbfad6368 100644 --- a/pkg/detectors/voiceflow/voiceflow.go +++ b/pkg/detectors/voiceflow/voiceflow.go @@ -98,3 +98,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Voiceflow } + +func (s Scanner) Description() string { + return "Voiceflow is an AI service designed to transact with customers. API keys may be used to access customer data." +} diff --git a/pkg/detectors/voicegain/voicegain.go b/pkg/detectors/voicegain/voicegain.go index e118b51e3249..cd69ab70e0df 100644 --- a/pkg/detectors/voicegain/voicegain.go +++ b/pkg/detectors/voicegain/voicegain.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Voicegain } + +func (s Scanner) Description() string { + return "Voicegain is a speech recognition and natural language processing service. Voicegain API keys can be used to access and manage Voicegain services and data." +} diff --git a/pkg/detectors/voodoosms/voodoosms.go b/pkg/detectors/voodoosms/voodoosms.go index 8490d00319cd..b7612ec8f8cf 100644 --- a/pkg/detectors/voodoosms/voodoosms.go +++ b/pkg/detectors/voodoosms/voodoosms.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_VoodooSMS } + +func (s Scanner) Description() string { + return "VoodooSMS is a service for sending SMS messages. VoodooSMS API keys can be used to send SMS messages and check account balance." +} diff --git a/pkg/detectors/vouchery/vouchery.go b/pkg/detectors/vouchery/vouchery.go index f143f18987be..901f9a39d0bf 100644 --- a/pkg/detectors/vouchery/vouchery.go +++ b/pkg/detectors/vouchery/vouchery.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Vouchery } + +func (s Scanner) Description() string { + return "Vouchery is a service that provides API keys for accessing their promotional and loyalty campaign management platform. These keys can be used to manage and track various promotional activities." +} diff --git a/pkg/detectors/vpnapi/vpnapi.go b/pkg/detectors/vpnapi/vpnapi.go index a53ec3eecfd1..7a75b620ed5f 100644 --- a/pkg/detectors/vpnapi/vpnapi.go +++ b/pkg/detectors/vpnapi/vpnapi.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Vpnapi } + +func (s Scanner) Description() string { + return "Vpnapi provides information about IP addresses, including geolocation and VPN detection. Vpnapi keys can be used to access this information." +} diff --git a/pkg/detectors/vultrapikey/vultrapikey.go b/pkg/detectors/vultrapikey/vultrapikey.go index 96029c911902..6702ff296a6b 100644 --- a/pkg/detectors/vultrapikey/vultrapikey.go +++ b/pkg/detectors/vultrapikey/vultrapikey.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_VultrApiKey } + +func (s Scanner) Description() string { + return "Vultr is a cloud service provider offering various services including computing, storage, and networking. Vultr API keys can be used to access and manage these services." +} diff --git a/pkg/detectors/vyte/vyte.go b/pkg/detectors/vyte/vyte.go index 653e29c2a28c..63d39b82e533 100644 --- a/pkg/detectors/vyte/vyte.go +++ b/pkg/detectors/vyte/vyte.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Vyte } + +func (s Scanner) Description() string { + return "Vyte is a scheduling platform that allows users to create and manage events. Vyte API keys can be used to access and manage these events." +} diff --git a/pkg/detectors/walkscore/walkscore.go b/pkg/detectors/walkscore/walkscore.go index b3d87654f284..02e3431b5e71 100644 --- a/pkg/detectors/walkscore/walkscore.go +++ b/pkg/detectors/walkscore/walkscore.go @@ -77,3 +77,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_WalkScore } + +func (s Scanner) Description() string { + return "Walkscore API keys can be used to access Walkscore's services for retrieving walkability scores and related data." +} diff --git a/pkg/detectors/weatherbit/weatherbit.go b/pkg/detectors/weatherbit/weatherbit.go index fbc752cf5005..36146e2fdaae 100644 --- a/pkg/detectors/weatherbit/weatherbit.go +++ b/pkg/detectors/weatherbit/weatherbit.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_WeatherBit } + +func (s Scanner) Description() string { + return "Weatherbit is a weather data service provider. Weatherbit API keys can be used to access weather data and related services." +} diff --git a/pkg/detectors/weatherstack/weatherstack.go b/pkg/detectors/weatherstack/weatherstack.go index 234d931e4146..2ba93788960f 100644 --- a/pkg/detectors/weatherstack/weatherstack.go +++ b/pkg/detectors/weatherstack/weatherstack.go @@ -78,3 +78,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_WeatherStack } + +func (s Scanner) Description() string { + return "Weatherstack is a weather service that provides real-time weather information. Weatherstack API keys can be used to access weather data from their API." +} diff --git a/pkg/detectors/web3storage/web3storage.go b/pkg/detectors/web3storage/web3storage.go index 3510f0a92697..646385967352 100644 --- a/pkg/detectors/web3storage/web3storage.go +++ b/pkg/detectors/web3storage/web3storage.go @@ -83,3 +83,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Web3Storage } + +func (s Scanner) Description() string { + return "Web3.storage is a service offering decentralized storage solutions. Web3.storage API keys can be used to access and manage stored data." +} diff --git a/pkg/detectors/webex/webex.go b/pkg/detectors/webex/webex.go index 049ac9fa28f8..6dac7504e623 100644 --- a/pkg/detectors/webex/webex.go +++ b/pkg/detectors/webex/webex.go @@ -92,3 +92,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Webex } + +func (s Scanner) Description() string { + return "Webex is a collaboration tool that provides video conferencing, online meetings, screen share, and webinars. Webex API keys can be used to access and manage these services." +} diff --git a/pkg/detectors/webflow/webflow.go b/pkg/detectors/webflow/webflow.go index b1f69d182285..711570e0fc52 100644 --- a/pkg/detectors/webflow/webflow.go +++ b/pkg/detectors/webflow/webflow.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Webflow } + +func (s Scanner) Description() string { + return "Webflow is a web design tool that allows users to design, build, and launch responsive websites visually. Webflow API keys can be used to access and manipulate data within Webflow projects." +} diff --git a/pkg/detectors/webscraper/webscraper.go b/pkg/detectors/webscraper/webscraper.go index 963e3799af35..18c6bbf1ce4b 100644 --- a/pkg/detectors/webscraper/webscraper.go +++ b/pkg/detectors/webscraper/webscraper.go @@ -3,10 +3,11 @@ package webscraper import ( "context" "fmt" - regexp "github.com/wasilibs/go-re2" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -70,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_WebScraper } + +func (s Scanner) Description() string { + return "WebScraper is a web scraping service that allows you to extract data from websites. WebScraper API keys can be used to create, manage, and run sitemaps for web scraping tasks." +} diff --git a/pkg/detectors/webscraping/webscraping.go b/pkg/detectors/webscraping/webscraping.go index acbb46de9b38..a355ab4274e3 100644 --- a/pkg/detectors/webscraping/webscraping.go +++ b/pkg/detectors/webscraping/webscraping.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Webscraping } + +func (s Scanner) Description() string { + return "Webscraping API keys can be used to access web scraping services to extract data from websites." +} diff --git a/pkg/detectors/websitepulse/websitepulse.go b/pkg/detectors/websitepulse/websitepulse.go index 8a704c47b336..4a02745c0019 100644 --- a/pkg/detectors/websitepulse/websitepulse.go +++ b/pkg/detectors/websitepulse/websitepulse.go @@ -87,3 +87,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Websitepulse } + +func (s Scanner) Description() string { + return "Websitepulse is a web-based service that monitors websites and servers. The keys and IDs can be used to access and manage monitoring configurations." +} diff --git a/pkg/detectors/wepay/wepay.go b/pkg/detectors/wepay/wepay.go index df2300cbdaab..7c96139ee3ad 100644 --- a/pkg/detectors/wepay/wepay.go +++ b/pkg/detectors/wepay/wepay.go @@ -46,7 +46,6 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result continue } resAppIDMatch = strings.TrimSpace(appIDMatch[1]) - } for _, match := range matches { @@ -88,3 +87,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_WePay } + +func (s Scanner) Description() string { + return "WePay is an online payment service provider. WePay API keys can be used to process payments and access account information." +} diff --git a/pkg/detectors/whoxy/whoxy.go b/pkg/detectors/whoxy/whoxy.go index 4405a299e032..3127711eede2 100644 --- a/pkg/detectors/whoxy/whoxy.go +++ b/pkg/detectors/whoxy/whoxy.go @@ -77,3 +77,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Whoxy } + +func (s Scanner) Description() string { + return "Whoxy is a service used to retrieve WHOIS data for domain names. Whoxy API keys can be used to query WHOIS information." +} diff --git a/pkg/detectors/wistia/wistia.go b/pkg/detectors/wistia/wistia.go index 9efc215a1f5a..1d8a871055d8 100644 --- a/pkg/detectors/wistia/wistia.go +++ b/pkg/detectors/wistia/wistia.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Wistia } + +func (s Scanner) Description() string { + return "Wistia is a video hosting platform designed for businesses. Wistia API keys can be used to access and manage video content and account settings." +} diff --git a/pkg/detectors/wit/wit.go b/pkg/detectors/wit/wit.go index 7f77a2ccb02e..002768d24527 100644 --- a/pkg/detectors/wit/wit.go +++ b/pkg/detectors/wit/wit.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Wit } + +func (s Scanner) Description() string { + return "Wit.ai is a natural language processing service that provides an API for building conversational interfaces. Wit.ai API keys can be used to access and modify this data and compute." +} diff --git a/pkg/detectors/wiz/wiz.go b/pkg/detectors/wiz/wiz.go index 300a6a98f42d..a87cd1115d1a 100644 --- a/pkg/detectors/wiz/wiz.go +++ b/pkg/detectors/wiz/wiz.go @@ -121,3 +121,7 @@ func verifyMatch(ctx context.Context, client *http.Client, clientID, clientSecre func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Wiz } + +func (s Scanner) Description() string { + return "Wiz is a cloud security platform. Wiz credentials can be used to access and manage cloud security configurations." +} diff --git a/pkg/detectors/worksnaps/worksnaps.go b/pkg/detectors/worksnaps/worksnaps.go index a8c9872670c8..dd98a2400cae 100644 --- a/pkg/detectors/worksnaps/worksnaps.go +++ b/pkg/detectors/worksnaps/worksnaps.go @@ -74,3 +74,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Worksnaps } + +func (s Scanner) Description() string { + return "Worksnaps is a time tracking service that helps manage and monitor remote work. Worksnaps API keys can be used to access and manage project data and time tracking information." +} diff --git a/pkg/detectors/workstack/workstack.go b/pkg/detectors/workstack/workstack.go index fb076f84f19c..16f68e4842f3 100644 --- a/pkg/detectors/workstack/workstack.go +++ b/pkg/detectors/workstack/workstack.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Workstack } + +func (s Scanner) Description() string { + return "Workstack is a project management tool. Workstack API keys can be used to access and modify project data and manage tasks." +} diff --git a/pkg/detectors/worldcoinindex/worldcoinindex.go b/pkg/detectors/worldcoinindex/worldcoinindex.go index 9e8b4e2f2d94..bb893a21e0d8 100644 --- a/pkg/detectors/worldcoinindex/worldcoinindex.go +++ b/pkg/detectors/worldcoinindex/worldcoinindex.go @@ -82,3 +82,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_WorldCoinIndex } + +func (s Scanner) Description() string { + return "WorldCoinIndex is a cryptocurrency market data provider. API keys from WorldCoinIndex can be used to access market data and other information." +} diff --git a/pkg/detectors/worldweather/worldweather.go b/pkg/detectors/worldweather/worldweather.go index 296cb7b78b8a..ef23131ec4ec 100644 --- a/pkg/detectors/worldweather/worldweather.go +++ b/pkg/detectors/worldweather/worldweather.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_WorldWeather } + +func (s Scanner) Description() string { + return "Worldweather provides weather data services through its API. The keys can be used to access various weather data endpoints." +} diff --git a/pkg/detectors/wrike/wrike.go b/pkg/detectors/wrike/wrike.go index de45cd446e99..5e8bee35e373 100644 --- a/pkg/detectors/wrike/wrike.go +++ b/pkg/detectors/wrike/wrike.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Wrike } + +func (s Scanner) Description() string { + return "Wrike is a collaborative work management platform that helps teams organize and manage their work. Wrike API keys can be used to access and modify data within Wrike." +} diff --git a/pkg/detectors/yandex/yandex.go b/pkg/detectors/yandex/yandex.go index 93603818d63b..905ce34e0545 100644 --- a/pkg/detectors/yandex/yandex.go +++ b/pkg/detectors/yandex/yandex.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Yandex } + +func (s Scanner) Description() string { + return "Yandex is a technology company that builds intelligent products and services powered by machine learning. Yandex API keys can be used to access and interact with various Yandex services." +} diff --git a/pkg/detectors/yelp/yelp.go b/pkg/detectors/yelp/yelp.go index 58019f4aaec3..bb323e896c7d 100644 --- a/pkg/detectors/yelp/yelp.go +++ b/pkg/detectors/yelp/yelp.go @@ -86,3 +86,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Yelp } + +func (s Scanner) Description() string { + return "Yelp API keys allow access to Yelp's business data and services. Unauthorized access can lead to data breaches and misuse of Yelp's services." +} diff --git a/pkg/detectors/youneedabudget/youneedabudget.go b/pkg/detectors/youneedabudget/youneedabudget.go index 48e56c4a42d8..fb1d50c5998b 100644 --- a/pkg/detectors/youneedabudget/youneedabudget.go +++ b/pkg/detectors/youneedabudget/youneedabudget.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_YouNeedABudget } + +func (s Scanner) Description() string { + return "YouNeedABudget is a budgeting tool that allows users to manage their personal finances. The API keys can be used to access and modify a user's financial data." +} diff --git a/pkg/detectors/yousign/yousign.go b/pkg/detectors/yousign/yousign.go index b187879eaff7..e9680772d963 100644 --- a/pkg/detectors/yousign/yousign.go +++ b/pkg/detectors/yousign/yousign.go @@ -72,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_YouSign } + +func (s Scanner) Description() string { + return "Yousign is an electronic signature service used to sign and manage documents online. Yousign API keys can be used to access and manage these documents." +} diff --git a/pkg/detectors/youtubeapikey/youtubeapikey.go b/pkg/detectors/youtubeapikey/youtubeapikey.go index 534ba0cd5b6e..b03e3a98134b 100644 --- a/pkg/detectors/youtubeapikey/youtubeapikey.go +++ b/pkg/detectors/youtubeapikey/youtubeapikey.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_YoutubeApiKey } + +func (s Scanner) Description() string { + return "YouTube API Keys allow access to various functionalities of the YouTube Data API, enabling operations such as retrieving video details and managing playlists." +} diff --git a/pkg/detectors/zapierwebhook/zapierwebhook.go b/pkg/detectors/zapierwebhook/zapierwebhook.go index faaad087b172..9779c9c465a8 100644 --- a/pkg/detectors/zapierwebhook/zapierwebhook.go +++ b/pkg/detectors/zapierwebhook/zapierwebhook.go @@ -69,3 +69,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ZapierWebhook } + +func (s Scanner) Description() string { + return "Zapier is an automation tool that connects your apps and services. Zapier webhooks can be used to automate workflows by sending HTTP requests to a unique URL." +} diff --git a/pkg/detectors/zendeskapi/zendeskapi.go b/pkg/detectors/zendeskapi/zendeskapi.go index 3d40cca4c156..2962171099c6 100644 --- a/pkg/detectors/zendeskapi/zendeskapi.go +++ b/pkg/detectors/zendeskapi/zendeskapi.go @@ -96,3 +96,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ZendeskApi } + +func (s Scanner) Description() string { + return "Zendesk is a customer service platform. Zendesk API tokens can be used to access and modify customer service data." +} diff --git a/pkg/detectors/zenkitapi/zenkitapi.go b/pkg/detectors/zenkitapi/zenkitapi.go index d17a636c5dca..9ed1919fb784 100644 --- a/pkg/detectors/zenkitapi/zenkitapi.go +++ b/pkg/detectors/zenkitapi/zenkitapi.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ZenkitAPI } + +func (s Scanner) Description() string { + return "Zenkit is a collaborative SaaS platform for project management, database building, and more. Zenkit API keys can be used to access and interact with Zenkit's services programmatically." +} diff --git a/pkg/detectors/zenrows/zenrows.go b/pkg/detectors/zenrows/zenrows.go index 5f85f5871d9c..c5217030587d 100644 --- a/pkg/detectors/zenrows/zenrows.go +++ b/pkg/detectors/zenrows/zenrows.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ZenRows } + +func (s Scanner) Description() string { + return "ZenRows is a web scraping API service that allows users to extract data from websites. ZenRows API keys can be used to access and scrape web data." +} diff --git a/pkg/detectors/zenscrape/zenscrape.go b/pkg/detectors/zenscrape/zenscrape.go index 05d0fb2294bc..d0412aa4384c 100644 --- a/pkg/detectors/zenscrape/zenscrape.go +++ b/pkg/detectors/zenscrape/zenscrape.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Zenscrape } + +func (s Scanner) Description() string { + return "Zenscrape is a web scraping service that provides an API to extract data from websites. Zenscrape API keys can be used to access and scrape data from web pages." +} diff --git a/pkg/detectors/zenserp/zenserp.go b/pkg/detectors/zenserp/zenserp.go index 84375a5e4c19..737264d6af19 100644 --- a/pkg/detectors/zenserp/zenserp.go +++ b/pkg/detectors/zenserp/zenserp.go @@ -75,3 +75,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Zenserp } + +func (s Scanner) Description() string { + return "Zenserp is a service that provides SERP (Search Engine Results Page) API. Zenserp API keys can be used to access search engine data programmatically." +} diff --git a/pkg/detectors/zeplin/zeplin.go b/pkg/detectors/zeplin/zeplin.go index bd3eb38b1b23..b1ed035e28b6 100644 --- a/pkg/detectors/zeplin/zeplin.go +++ b/pkg/detectors/zeplin/zeplin.go @@ -71,3 +71,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Zeplin } + +func (s Scanner) Description() string { + return "Zeplin is a collaboration app for UI designers and front-end developers. Zeplin API keys can be used to access and modify project data." +} diff --git a/pkg/detectors/zerobounce/zerobounce.go b/pkg/detectors/zerobounce/zerobounce.go index 23dbd37a1355..fb0dc880e312 100644 --- a/pkg/detectors/zerobounce/zerobounce.go +++ b/pkg/detectors/zerobounce/zerobounce.go @@ -76,3 +76,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Zerobounce } + +func (s Scanner) Description() string { + return "Zerobounce is an email validation and verification service. Zerobounce API keys can be used to access and utilize this service." +} diff --git a/pkg/detectors/zerotier/zerotier.go b/pkg/detectors/zerotier/zerotier.go index 03433ed2d430..7622db9b5d1f 100644 --- a/pkg/detectors/zerotier/zerotier.go +++ b/pkg/detectors/zerotier/zerotier.go @@ -84,3 +84,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ZeroTier } + +func (s Scanner) Description() string { + return "ZeroTier is a network virtualization technology that provides secure and flexible network connections. ZeroTier API keys can be used to manage and control these network connections." +} diff --git a/pkg/detectors/zipapi/zipapi.go b/pkg/detectors/zipapi/zipapi.go index 5eb877f7c9a7..b25e7cabaa3d 100644 --- a/pkg/detectors/zipapi/zipapi.go +++ b/pkg/detectors/zipapi/zipapi.go @@ -93,3 +93,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ZipAPI } + +func (s Scanner) Description() string { + return "ZipAPI is a service used to retrieve ZIP code information. ZipAPI keys can be used to access and retrieve this information from their API." +} diff --git a/pkg/detectors/zipbooks/zipbooks.go b/pkg/detectors/zipbooks/zipbooks.go index c1651f8e9ba0..cf0c54be8ada 100644 --- a/pkg/detectors/zipbooks/zipbooks.go +++ b/pkg/detectors/zipbooks/zipbooks.go @@ -81,3 +81,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ZipBooks } + +func (s Scanner) Description() string { + return "ZipBooks is an accounting software service that allows businesses to manage their finances online. The credentials can be used to access and manage financial data." +} diff --git a/pkg/detectors/zipcodeapi/zipcodeapi.go b/pkg/detectors/zipcodeapi/zipcodeapi.go index f0f47802eddf..a712c30feda5 100644 --- a/pkg/detectors/zipcodeapi/zipcodeapi.go +++ b/pkg/detectors/zipcodeapi/zipcodeapi.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ZipCodeAPI } + +func (s Scanner) Description() string { + return "ZipCodeAPI provides a service for retrieving zip code information and calculating distances between zip codes. ZipCodeAPI keys can be used to access these services." +} diff --git a/pkg/detectors/zipcodebase/zipcodebase.go b/pkg/detectors/zipcodebase/zipcodebase.go index 3aea7b32b5a3..6c17891a5e98 100644 --- a/pkg/detectors/zipcodebase/zipcodebase.go +++ b/pkg/detectors/zipcodebase/zipcodebase.go @@ -2,10 +2,11 @@ package zipcodebase import ( "context" - regexp "github.com/wasilibs/go-re2" "net/http" "strings" + regexp "github.com/wasilibs/go-re2" + "github.com/trufflesecurity/trufflehog/v3/pkg/common" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/detectorspb" @@ -71,3 +72,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_Zipcodebase } + +func (s Scanner) Description() string { + return "Zipcodebase is a service that provides access to a database of postal codes. The API keys can be used to query this database for information related to postal codes." +} diff --git a/pkg/detectors/zonkafeedback/zonkafeedback.go b/pkg/detectors/zonkafeedback/zonkafeedback.go index 1379656d0526..af1ddd87b73a 100644 --- a/pkg/detectors/zonkafeedback/zonkafeedback.go +++ b/pkg/detectors/zonkafeedback/zonkafeedback.go @@ -70,3 +70,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ZonkaFeedback } + +func (s Scanner) Description() string { + return "ZonkaFeedback is a platform for collecting and analyzing customer feedback. The API token can be used to access and manage feedback data." +} diff --git a/pkg/detectors/zulipchat/zulipchat.go b/pkg/detectors/zulipchat/zulipchat.go index 661d03f207a9..7388e96a951b 100644 --- a/pkg/detectors/zulipchat/zulipchat.go +++ b/pkg/detectors/zulipchat/zulipchat.go @@ -131,3 +131,7 @@ type member struct { func (s Scanner) Type() detectorspb.DetectorType { return detectorspb.DetectorType_ZulipChat } + +func (s Scanner) Description() string { + return "ZulipChat is a group chat application used for team communication. ZulipChat API keys can be used to access and manage various functionalities of the chat service." +} diff --git a/pkg/engine/ahocorasick/ahocorasickcore_test.go b/pkg/engine/ahocorasick/ahocorasickcore_test.go index 2d88002f5945..f2950dd1ce3a 100644 --- a/pkg/engine/ahocorasick/ahocorasickcore_test.go +++ b/pkg/engine/ahocorasick/ahocorasickcore_test.go @@ -29,6 +29,8 @@ func (testDetectorV1) Type() detectorspb.DetectorType { func (testDetectorV1) Version() int { return 1 } +func (testDetectorV1) Description() string { return "" } + type testDetectorV2 struct { } @@ -46,6 +48,8 @@ func (testDetectorV2) Type() detectorspb.DetectorType { func (testDetectorV2) Version() int { return 2 } +func (testDetectorV2) Description() string { return "" } + type testDetectorV3 struct { } @@ -63,6 +67,8 @@ func (testDetectorV3) Type() detectorspb.DetectorType { func (testDetectorV3) Version() int { return 1 } +func (testDetectorV3) Description() string { return "" } + var _ detectors.Detector = (*testDetectorV4)(nil) var _ detectors.MultiPartCredentialProvider = (*testDetectorV4)(nil) var _ detectors.StartOffsetProvider = (*testDetectorV4)(nil) @@ -79,6 +85,8 @@ func (testDetectorV4) Type() detectorspb.DetectorType { return TestDetectorType func (testDetectorV4) Version() int { return 1 } +func (testDetectorV4) Description() string { return "" } + func (testDetectorV4) MaxCredentialSpan() int64 { return 15 } func (testDetectorV4) StartOffset() int64 { return 5 } @@ -99,6 +107,8 @@ func (testDetectorV5) Type() detectorspb.DetectorType { return TestDetectorType func (testDetectorV5) Version() int { return 1 } +func (testDetectorV5) Description() string { return "" } + func (testDetectorV5) MaxSecretSize() int64 { return 10 } func (testDetectorV5) StartOffset() int64 { return 3 } @@ -119,6 +129,8 @@ func (testDetectorV6) Type() detectorspb.DetectorType { return TestDetectorType func (testDetectorV6) Version() int { return 1 } +func (testDetectorV6) Description() string { return "" } + func (testDetectorV6) StartOffset() int64 { return 1 } var _ detectors.Detector = (*testDetectorV1)(nil) diff --git a/pkg/engine/engine_test.go b/pkg/engine/engine_test.go index c6ca39838c0e..9850f4b3d57d 100644 --- a/pkg/engine/engine_test.go +++ b/pkg/engine/engine_test.go @@ -52,6 +52,8 @@ func (f fakeDetectorV1) Keywords() []string { return []string{fakeDe func (f fakeDetectorV1) Type() detectorspb.DetectorType { return detectorspb.DetectorType(-1) } func (f fakeDetectorV1) Version() int { return 1 } +func (f fakeDetectorV1) Description() string { return "" } + func (f fakeDetectorV2) FromData(_ aCtx.Context, _ bool, _ []byte) ([]detectors.Result, error) { return []detectors.Result{ { @@ -66,6 +68,8 @@ func (f fakeDetectorV2) Keywords() []string { return []string{fakeDe func (f fakeDetectorV2) Type() detectorspb.DetectorType { return detectorspb.DetectorType(-1) } func (f fakeDetectorV2) Version() int { return 2 } +func (f fakeDetectorV2) Description() string { return "" } + func TestFragmentLineOffset(t *testing.T) { tests := []struct { name string @@ -470,6 +474,8 @@ func (testDetectorV1) Keywords() []string { return []string{"sample"} } func (testDetectorV1) Type() detectorspb.DetectorType { return TestDetectorType } +func (testDetectorV1) Description() string { return "" } + var _ detectors.Detector = (*testDetectorV2)(nil) type testDetectorV2 struct{} @@ -486,6 +492,8 @@ func (testDetectorV2) Keywords() []string { return []string{"ample"} } func (testDetectorV2) Type() detectorspb.DetectorType { return TestDetectorType2 } +func (testDetectorV2) Description() string { return "" } + func TestVerificationOverlapChunkFalsePositive(t *testing.T) { ctx := context.Background() @@ -855,6 +863,8 @@ func (c customCleaner) FromData(aCtx.Context, bool, []byte) ([]detectors.Result, func (c customCleaner) Keywords() []string { return []string{} } func (c customCleaner) Type() detectorspb.DetectorType { return detectorspb.DetectorType(-1) } +func (customCleaner) Description() string { return "" } + func (c customCleaner) CleanResults([]detectors.Result) []detectors.Result { return []detectors.Result{} } diff --git a/pkg/pb/custom_detectorspb/custom_detectors.pb.go b/pkg/pb/custom_detectorspb/custom_detectors.pb.go index 0722eff6195c..3b2fc2e3a929 100644 --- a/pkg/pb/custom_detectorspb/custom_detectors.pb.go +++ b/pkg/pb/custom_detectorspb/custom_detectors.pb.go @@ -73,10 +73,11 @@ type CustomRegex struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Keywords []string `protobuf:"bytes,2,rep,name=keywords,proto3" json:"keywords,omitempty"` - Regex map[string]string `protobuf:"bytes,3,rep,name=regex,proto3" json:"regex,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Verify []*VerifierConfig `protobuf:"bytes,4,rep,name=verify,proto3" json:"verify,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Keywords []string `protobuf:"bytes,2,rep,name=keywords,proto3" json:"keywords,omitempty"` + Regex map[string]string `protobuf:"bytes,3,rep,name=regex,proto3" json:"regex,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Verify []*VerifierConfig `protobuf:"bytes,4,rep,name=verify,proto3" json:"verify,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` } func (x *CustomRegex) Reset() { @@ -139,6 +140,13 @@ func (x *CustomRegex) GetVerify() []*VerifierConfig { return nil } +func (x *CustomRegex) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + type VerifierConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -222,7 +230,7 @@ var file_custom_detectors_proto_rawDesc = []byte{ 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x52, 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x22, 0xf1, 0x01, 0x0a, 0x0b, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, + 0x6f, 0x72, 0x73, 0x22, 0x93, 0x02, 0x0a, 0x0b, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x77, 0x6f, @@ -233,25 +241,27 @@ var file_custom_detectors_proto_rawDesc = []byte{ 0x67, 0x65, 0x78, 0x12, 0x38, 0x0a, 0x06, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x1a, 0x38, 0x0a, - 0x0a, 0x52, 0x65, 0x67, 0x65, 0x78, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8e, 0x01, 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x08, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, - 0x05, 0x72, 0x03, 0x90, 0x01, 0x01, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x06, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x44, 0x5a, 0x42, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x73, 0x65, - 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2f, 0x74, 0x72, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x68, 0x6f, - 0x67, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x2f, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, + 0x38, 0x0a, 0x0a, 0x52, 0x65, 0x67, 0x65, 0x78, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8e, 0x01, 0x0a, 0x0e, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, + 0xfa, 0x42, 0x05, 0x72, 0x03, 0x90, 0x01, 0x01, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x44, 0x5a, 0x42, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x75, 0x66, 0x66, 0x6c, 0x65, + 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2f, 0x74, 0x72, 0x75, 0x66, 0x66, 0x6c, 0x65, + 0x68, 0x6f, 0x67, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x2f, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pkg/pb/custom_detectorspb/custom_detectors.pb.validate.go b/pkg/pb/custom_detectorspb/custom_detectors.pb.validate.go index 2b87120b3023..774aa0515da7 100644 --- a/pkg/pb/custom_detectorspb/custom_detectors.pb.validate.go +++ b/pkg/pb/custom_detectorspb/custom_detectors.pb.validate.go @@ -229,6 +229,8 @@ func (m *CustomRegex) validate(all bool) error { } + // no validation rules for Description + if len(errors) > 0 { return CustomRegexMultiError(errors) } diff --git a/proto/custom_detectors.proto b/proto/custom_detectors.proto index 04ef1ebb9ad2..943446165e9e 100644 --- a/proto/custom_detectors.proto +++ b/proto/custom_detectors.proto @@ -15,6 +15,7 @@ message CustomRegex { repeated string keywords = 2; map regex = 3; repeated VerifierConfig verify = 4; + string description = 5; } message VerifierConfig {