Malware Infections (Infostealers)
Overview
Malware infection data comes from information-stealing malware (infostealers) that capture sensitive data from infected devices and transmit it to threat actors. This data offers unique insights into compromised credentials, cookies, system information, and leaked secrets that may not appear in traditional database breaches.
Characteristics
- Origin: Data captured by malware from infected user devices.
- Freshness: Often more recent than database breaches, representing active compromise.
- Comprehensiveness: Can include data from multiple services accessed on the infected device, system details, and potentially sensitive files or source code.
- Context: May include system information and behavioral data in addition to credentials and secrets.
Infostealer Types
Our system monitors data from 30+ different infostealer types, including:
- RedLine
- Meta
- LummaC2
- Vidar
- Azorult
- Raccoon
- Cryptbot
- And many more
Data Categories from Malware
Infostealers typically collect multiple types of sensitive information from infected devices:
Credentials
Stolen login information including:
- Source application (browser or email client)
- Website or service URL
- Username/email
- Plaintext password
Cookies
Browser cookies that can enable session hijacking:
- Source browser
- Website domain
- Expiry details
- Cookie values
Leaked Secrets
Hardcoded secrets found within files, configuration, or environment variables on the infected machine. These are often critical for accessing services and infrastructure:
- Detection: We utilize specialized tools like Gitleaks, configured with a comprehensive set of rules, to scan files collected by infostealers. These rules are designed to identify patterns characteristic of various secret types.
- Validation: Potential secrets undergo validation steps to reduce false positives and confirm the likelihood of a valid secret.
- Types Detected: Common examples include API Keys & Tokens (AWS, GCP, Azure, GitHub, Slack, Stripe, Twilio, etc.), Private Keys (SSH, PGP), Database Credentials, Service Account Tokens (e.g., GCP, Vault), OAuth Tokens, and Configuration Secrets (e.g., Kubernetes secrets in YAML).
Examples of Detected Secret Types
The following table provides examples of the kinds of secrets our system can detect within malware logs. This list covers the majority of detectable types based on our configured rules but may not be exhaustive.
| Secret Type (Rule ID) | Description | Example Format |
|---|---|---|
1password-service-account-token | 1Password service account token | ops_eyJ...<250+ chars>... |
adafruit-api-key | Adafruit API Key | aio_******************************** |
adobe-client-id | Adobe OAuth Web Client ID | ******************************** (32 hex chars) |
adobe-client-secret | Adobe Client Secret | p8e-******************************** |
age-secret-key | Age encryption tool secret key | AGE-SECRET-KEY-1********************************************************** |
airtable-api-key | Airtable API Key | key***************** (17 chars) |
algolia-api-key | Algolia API Key | ******************************** (32 chars) |
alibaba-access-key-id | Alibaba Cloud AccessKey ID | LTAI******************** |
alibaba-secret-key | Alibaba Cloud Secret Key | ****************************** (30 chars) |
asana-client-id | Asana Client ID | **************** (16 digits) |
asana-client-secret | Asana Client Secret | ******************************** (32 chars) |
atlassian-api-token | Atlassian API token (Jira, Confluence) | ************************ or ATATT3****************... |
authress-service-client-access-key | Authress Service Client Access Key | sc_*.{key_id}.acc-{tenant_id}.{signing_key} |
aws-access-token | AWS Access Key ID | AKIA**************** or ASIA**************** etc. |
aws-secret-key | AWS Secret Key | **************************************** (40 hex chars) |
azure-ad-client-secret | Azure AD Client Secret | ***dQ~********************************** |
beamer-api-token | Beamer API token | b_******************************************** |
bitbucket-client-id | Bitbucket Client ID | ******************************** (32 chars) |
bitbucket-client-secret | Bitbucket Client Secret | **************************************************************** (64 chars) |
bittrex-access-key | Bittrex Access Key | ******************************** (32 chars) |
bittrex-secret-key | Bittrex Secret Key | ******************************** (32 chars) |
cisco-meraki-api-key | Cisco Meraki API Key | **************************************** (40 hex chars) |
clojars-api-token | Clojars API token | CLOJARS_************************************************************ |
cloudflare-api-key | Cloudflare API Key | **************************************** (40 chars) |
cloudflare-global-api-key | Cloudflare Global API Key | ************************************* (37 hex chars) |
cloudflare-origin-ca-key | Cloudflare Origin CA Key | v1.0-************************-****************... (146 hex chars) |
codecov-access-token | Codecov Access Token | ******************************** (32 chars) |
cohere-api-token | Cohere API Token | **************************************** (40 chars) |
coinbase-access-token | Coinbase Access Token | **************************************************************** (64 chars) |
confluent-access-token | Confluent Access Token | **************** (16 chars) |
confluent-secret-key | Confluent Secret Key | **************************************************************** (64 chars) |
contentful-delivery-api-token | Contentful delivery API token | ******************************************* (43 chars) |
databricks-api-token | Databricks API token | dapi******************************** |
datadog-access-token | Datadog API Key | **************************************** (40 chars) |
defined-networking-api-token | Defined Networking API token | dnkey-**************************-**************************************************** |
digitalocean-access-token | DigitalOcean OAuth Access Token | doo_v1_**************************************************************** |
digitalocean-pat | DigitalOcean Personal Access Token | dop_v1_**************************************************************** |
digitalocean-refresh-token | DigitalOcean OAuth Refresh Token | dor_v1_**************************************************************** |
discord-api-token | Discord API Key | **************************************************************** (64 hex chars) |
discord-client-id | Discord client ID | ****************** (18 digits) |
discord-client-secret | Discord client secret | ******************************** (32 chars) |
doppler-api-token | Doppler API token | dp.pt.******************************************* |
droneci-access-token | Droneci Access Token | ******************************** (32 chars) |
dropbox-api-token | Dropbox API secret | *************** (15 chars) |
dropbox-long-lived-api-token | Dropbox long-lived API token | ***********AAAAAAAAAA******************************************* |
dropbox-short-lived-api-token | Dropbox short-lived API token | sl.*************************************************************************************************************************************** |
duffel-api-token | Duffel API token | duffel_test_******************************************* |
dynatrace-api-token | Dynatrace API token | dt0c01.************************.**************************************************************** |
easypost-api-token | EasyPost API token | EZAK****************************************************** |
easypost-test-api-token | EasyPost test API token | EZTK****************************************************** |
etsy-access-token | Etsy Access Token | ************************ (24 chars) |
facebook-access-token | Facebook Access Token (Legacy) | `*************** |
facebook-page-access-token | Facebook Page Access Token | EAA************************************************************************************************************************ |
facebook-secret | Facebook Application secret | ******************************** (32 hex chars) |
fastly-api-token | Fastly API key | ******************************** (32 chars) |
finicity-api-token | Finicity API token | ******************************** (32 hex chars) |
finicity-client-secret | Finicity Client Secret | ******************** (20 chars) |
finnhub-access-token | Finnhub Access Token | ******************** (20 chars) |
flickr-access-token | Flickr Access Token | ******************************** (32 chars) |
flutterwave-encryption-key | Flutterwave Encryption Key (Test) | FLWSECK_TEST-************ |
flutterwave-public-key | Flutterwave Public Key (Test) | FLWPUBK_TEST-********************************-X |
flutterwave-secret-key | Flutterwave Secret Key (Test) | FLWSECK_TEST-********************************-X |
flyio-access-token | Fly.io API key | fo1_******************************************* or fm1*_... |
frameio-api-token | Frame.io API token | fio-u-**************************************************************** |
freemius-secret-key | Freemius secret key (in PHP context) | sk_***************************** |
freshbooks-access-token | Freshbooks Access Token | **************************************************************** (64 chars) |
gcp-api-key | Google Cloud Platform API Key | AIza*********************************** |
gcp-service-account-json | GCP Service Account JSON | {"private_key": "***", "private_key_id": "***", "project_id": "***", "token_url": "***", "client_email": "***", "client_id": "***", "client_x509_cert_url": "***" |
github-app-token | GitHub App Token | ghu_************************************ or ghs_... |
github-fine-grained-pat | GitHub Fine-Grained Personal Access Token | github_pat_********************************************************************************** |
github-oauth | GitHub OAuth Access Token | gho_************************************ |
github-pat | GitHub Personal Access Token (Classic) | ghp_************************************ |
github-refresh-token | GitHub Refresh Token | ghr_************************************ |
gitlab-cicd-job-token | GitLab CI/CD Job Token | glcbt-*****_******************** |
gitlab-deploy-token | GitLab Deploy Token | gldt-******************** |
gitlab-feature-flag-client-token | GitLab feature flag client token | glffct-******************** |
gitlab-feed-token | GitLab feed token | glft-******************** |
gitlab-kubernetes-agent-token | GitLab Kubernetes Agent token | glagent-************************************************** |
gitlab-oauth-app-secret | GitLab OIDC Application Secret | gloas-**************************************************************** |
gitlab-pat | GitLab Personal Access Token | glpat-******************** |
gitlab-pat-routable | GitLab Personal Access Token (routable) | glpat-***************************.**... |
gitlab-ptt | GitLab Pipeline Trigger Token | glptt-**************************************** |
gitlab-rrt | GitLab Runner Registration Token | GR1348941******************** |
gitlab-runner-authentication-token | GitLab Runner Authentication Token | glrt-******************** |
gitlab-scim-token | GitLab SCIM Token | glsoat-******************** |
gitlab-session-cookie | GitLab Session Cookie | _gitlab_session=******************************** |
gitter-access-token | Gitter Access Token | **************************************** (40 chars) |
gocardless-api-token | GoCardless API token | live_**************************************** |
grafana-api-key | Grafana API key | eyJrIjoi...<70-400 chars>... |
grafana-cloud-api-token | Grafana cloud API token | glc_...<32-400 chars>... |
grafana-service-account-token | Grafana service account token | glsa_********************************_******** |
harness-api-key | Harness Access Token (PAT or SAT) | pat.**********************.************************.******************** |
hashicorp-tf-api-token | HashiCorp Terraform user/org API token | **************.atlasv1.************************************************************ |
heroku-api-key | Heroku Platform API Key | ********-****-****-****-************ |
hubspot-api-key | HubSpot API Token | ********-****-****-****-************ |
huggingface-access-token | Hugging Face Access token | hf_********************************** |
huggingface-organization-api-token | Hugging Face Organization API token | api_org_********************************** |
infracost-api-token | Infracost API Token | ico-******************************** |
intercom-api-key | Intercom API Token | ************************************************************ (60 chars) |
intra42-client-secret | Intra42 client secret | s-s4t2ud-**************************************************************** |
jfrog-api-key | JFrog API Key | ************************************************************************* (73 chars) |
jfrog-identity-token | JFrog Identity Token | **************************************************************** (64 chars) |
kraken-access-token | Kraken Access Token | ...<80-90 chars>... |
kucoin-access-token | Kucoin Access Token | ************************ (24 hex chars) |
kucoin-secret-key | Kucoin Secret Key | ********-****-****-****-************ |
launchdarkly-access-token | Launchdarkly Access Token | **************************************** (40 chars) |
linear-api-key | Linear API Token | lin_api_**************************************** |
linear-client-secret | Linear Client Secret | ******************************** (32 hex chars) |
linkedin-client-id | LinkedIn Client ID | ************** (14 chars) |
linkedin-client-secret | LinkedIn Client secret | **************** (16 chars) |
lob-api-key | Lob API Key (Live or Test) | live_*********************************** |
lob-pub-api-key | Lob Publishable API Key (Live or Test) | live_pub_******************************* |
mailchimp-api-key | Mailchimp API key | ********************************-us** |
mailgun-private-api-token | Mailgun private API token | key-******************************** |
mailgun-pub-key | Mailgun public validation key | pubkey-******************************** |
mailgun-signing-key | Mailgun webhook signing key | ********************************-********-******** |
mapbox-api-token | MapBox API token | pk.************************************************************.********************** |
mattermost-access-token | Mattermost Access Token | ************************** (26 chars) |
maxmind-license-key | MaxMind license key | ******_*****************************_mmk |
messagebird-api-token | MessageBird API token | ************************* (25 chars) |
messagebird-client-id | MessageBird client ID | ********-****-****-****-************ |
microsoft-teams-webhook | Microsoft Teams Webhook URL | https://*.webhook.office.com/webhookb2/.../IncomingWebhook/... |
netlify-access-token | Netlify Access Token | ...<40-46 chars>... |
new-relic-browser-api-token | New Relic ingest browser API token | NRJS-******************* |
new-relic-insert-key | New Relic insight insert key | NRII-******************************** |
new-relic-user-api-id | New Relic user API ID | **************************************************************** (64 chars) |
new-relic-user-api-key | New Relic user API Key | NRAK-*************************** |
npm-access-token | npm access token | npm_************************************ |
nytimes-access-token | Nytimes Access Token | ******************************** (32 chars) |
octopus-deploy-api-key | Octopus Deploy API key | API-************************** |
okta-access-token | Okta Access Token | 00**************************************** |
openai-api-key | OpenAI API Key | sk-************************************************ or sk-proj-... |
openshift-user-token | OpenShift user token | sha256~******************************************* |
perplexity-api-key | Perplexity API key | pplx-************************************************ |
plaid-api-token | Plaid API Token | access-production-********-****-****-****-************ |
plaid-client-id | Plaid Client ID | ************************ (24 chars) |
plaid-secret-key | Plaid Secret key | ****************************** (30 chars) |
planetscale-api-token | PlanetScale API token | pscale_tkn_...<32-64 chars>... |
planetscale-oauth-token | PlanetScale OAuth token | pscale_oauth_...<32-64 chars>... |
planetscale-password | PlanetScale password | pscale_pw_...<32-64 chars>... |
postman-api-token | Postman API token | PMAK-************************-********************************** |
prefect-api-token | Prefect API token | pnu_************************************ |
private-key | Generic Private Key | -----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY----- |
privateai-api-token | PrivateAI API Token | ******************************** (32 chars) |
pulumi-api-token | Pulumi API token | pul-**************************************** |
pypi-upload-token | PyPI upload token | pypi-AgEIcHlwaS5vcmc...<50-1000 chars>... |
rapidapi-access-token | RapidAPI Access Token | ************************************************** (50 chars) |
readme-api-token | Readme API token | rdme_********************************************************************** |
rubygems-api-token | Rubygem API token | rubygems_************************************************ |
scalingo-api-token | Scalingo API token | tk-us-************************************************ |
sendbird-access-id | Sendbird Access ID | ********-****-****-****-************ |
sendbird-access-token | Sendbird Access Token | **************************************** (40 hex chars) |
sendgrid-api-token | SendGrid API token | SG.******************************************************************.********************** |
sendinblue-api-token | Sendinblue API token | xkeysib-****************************************************************-**************** |
sentry-access-token | Sentry.io Access Token (old format) | **************************************************************** (64 hex chars) |
sentry-org-token | Sentry.io Organization Token | sntrys_eyJpYXQiO...LCJyZWdpb25fdXJs..._******************************************* |
sentry-user-token | Sentry.io User Token | sntryu_**************************************************************** |
settlemint-application-access-token | Settlemint Application Access Token | sm_aat_**************** |
settlemint-personal-access-token | Settlemint Personal Access Token | sm_pat_**************** |
settlemint-service-access-token | Settlemint Service Access Token | sm_sat_**************** |
shippo-api-token | Shippo API token (Live or Test) | shippo_live_**************************************** |
shopify-access-token | Shopify Admin API Access Token | shpat_******************************** |
shopify-custom-access-token | Shopify custom access token | shpca_******************************** |
shopify-private-app-access-token | Shopify private app access token | shppa_******************************** |
shopify-shared-secret | Shopify shared secret | shpss_******************************** |
sidekiq-secret | Sidekiq Secret (Enterprise/Gems Bundle Auth) | ********:******** (hex:hex) |
slack-app-token | Slack App-level token | xapp-*-***********-***********-********************************************************************************************************************************** |
slack-bot-token | Slack Bot token | xoxb-***********-***********-************************ |
slack-config-access-token | Slack Configuration access token | xoxe.xox*-*-********************************************************************************************************************************************************* |
slack-config-refresh-token | Slack Configuration refresh token | xoxe-*-********************************************************************************************************************************************************** |
slack-legacy-bot-token | Slack Legacy bot token | xoxb-********-********************** |
slack-legacy-token | Slack Legacy token (Test) | xox*-*********-*********-*********-******************************** |
slack-legacy-workspace-token | Slack Legacy Workspace token | xox*-*********-**************************************** |
slack-user-token | Slack User token | xox*-***********-***********-***********-****************************** |
snyk-api-token | Snyk API token | ********-****-****-****-************ |
sonar-api-token | SonarQube/SonarCloud API token | **************************************** (40 chars) |
sourcegraph-access-token | Sourcegraph access token | sgp_****************_**************************************** |
square-access-token | Square Access Token | EAAA********************** or sq0atp-********************** |
squarespace-access-token | Squarespace Access Token | ********-****-****-****-************ |
stripe-access-token | Stripe API Key (Secret or Restricted) | sk_live_************************ or rk_test_... |
sumologic-access-id | SumoLogic Access ID | su************ |
sumologic-access-token | SumoLogic Access Token | **************************************************************** (64 chars) |
telegram-bot-api-token | Telegram Bot API Token | ************:********************************** |
travisci-access-token | Travis CI Access Token | ********************** (22 chars) |
twilio-api-key | Twilio API Key SID | SK******************************** |
twitch-api-token | Twitch API token | ****************************** (30 chars) |
twitter-access-secret | Twitter Access Secret | ********************************************* (45 chars) |
twitter-access-token | Twitter Access Token | ***************-****************************** |
twitter-api-key | Twitter API Key (Consumer Key) | ************************* (25 chars) |
twitter-api-secret | Twitter API Secret (Consumer Secret) | ************************************************** (50 chars) |
twitter-bearer-token | Twitter Bearer Token | AAAAAAAAAAAAAAAAAAAAA...<80-100 chars>... |
typeform-api-token | Typeform API token | tfp_*********************************************************** |
vault-batch-token | HashiCorp Vault Batch Token | hvb....<138-300 chars>... |
vault-service-token | HashiCorp Vault Service Token | hvs....<90-120 chars>... or s.************************ |
yandex-access-token | Yandex Access Token | t1.*****************************************************.************************************************************************************** |
yandex-api-key | Yandex API Key | AQVN*********************************** |
yandex-aws-access-token | Yandex AWS Access Token | YC************************************** |
zendesk-secret-key | Zendesk Secret Key | **************************************** (40 chars) |
System Information
Details about the infected device:
- OS version
- IP address
- Hardware information (HWID, Machine ID)
- System language and settings
User Information
Personal details of the victim:
- Device Username
- Full name (if available)
- Location (derived from IP)
Stolen Files
Documents, source code, configuration files, and other sensitive files exfiltrated from the device:
- Personal documents
- Financial records
- Business information
- Source code repositories
- Configuration files (
.env,.aws/credentials, etc.)
Data Example
Below is an example of what malware infection data might look like, potentially including credentials, cookies, and detected secrets:
(Note: The example image might not explicitly show leaked secrets, but they are a potential component of malware logs)
Security Implications
Malware infection data presents unique and severe threats:
- Immediate Risk: Credentials and cookies are often current and immediately usable for account takeover.
- Session Hijacking: Stolen cookies can allow account access without credentials, bypassing MFA.
- Multiple Service Exposure: A single infection can compromise dozens of services used by one individual.
- Corporate Network Access: Infected employee devices may expose enterprise credentials, VPN keys, or internal service tokens.
- Infrastructure Compromise: Leaked secrets (API keys, private keys, service tokens) found in files can grant attackers direct access to cloud environments, databases, code repositories, and other critical infrastructure, potentially leading to widespread breaches or system manipulation.
- Source Code Exposure: Stolen source code can reveal proprietary algorithms or further vulnerabilities.
API Access Methods
The NordStellar Dark Web API provides multiple ways to access malware infection information, including detected secrets:
Direct Lookups
- Query for specific email addresses using the
/email/{email-sha256}/malware-logsendpoint. - Query for specific phone numbers using the
/phone/{phone-sha256}/malware-logsendpoint. - Get detailed malware log information, including the
secretarray containing detected secret types and values, using the/data-source/malware-log/{id}endpoint.
Bulk Operations
- Check multiple email addresses in a single request using the
/email/malware-logs(POST) endpoint. - Retrieve information about multiple malware logs using the
/data-source/malware-log(POST) endpoint.
Specialized Queries
- Search for credentials associated with specific URLs using the
/data-source/malware-log/credentials/url/{credentials_url}/idendpoint. - Retrieve specific credential details using the
/data-source/malware-log/{id}/credentials/url/{credentials_url}endpoint.
(Note: While secrets are returned within the main malware log data, specific endpoints solely for secret lookups might not exist; they are part of the overall log data.)
Use Cases
Account Protection
- Identify and lock down compromised user accounts based on stolen credentials.
- Force password resets for affected services.
- Invalidate stolen browser cookies to prevent session hijacking.
Infrastructure Security & Secret Management
- Detect Exposed Secrets: Monitor malware logs for leaked API keys, tokens, or private keys related to your corporate infrastructure (e.g., AWS keys, GitHub tokens found on developer machines).
- Rapid Revocation: Immediately revoke compromised secrets identified in malware logs to prevent unauthorized access.
- Improve Secret Hygiene: Use findings as indicators of poor secret management practices (e.g., hardcoding secrets in source code found on infected devices).
Threat Intelligence
- Gain insights into active malware campaigns targeting specific services or user groups.
- Identify targeted organizations and the types of credentials or secrets attackers are harvesting.
- Understand the capabilities and targets of different infostealer variants.
Incident Response
- Determine the scope of a malware infection by identifying all affected accounts, services, and potentially exposed secrets.
- Assess the potential damage from stolen credentials, cookies, and secrets.
- Prioritize remediation based on the sensitivity of exposed data and secrets.
Corporate Security
- Monitor for corporate credential and secret exposure from employee device infections.
- Identify infected devices that may have access to corporate resources or codebases containing secrets.
- Detect breached VPN, cloud service, internal system credentials, or API keys.
By leveraging malware infection data, including the critical aspect of leaked secrets, through the NordStellar Dark Web API, organizations can rapidly respond to active threats, protect user accounts and infrastructure, and gain valuable intelligence about the evolving threat landscape.