EmberHound PCI Data Discovery

Find card data hiding outside your payment systems.

EmberHound scans files, documents, and images across enrolled company devices for stored payment-card data. See where it was found, understand what presents the greatest risk, and give your team a clear place to start remediation.

  • Windows, macOS, and Linux
  • Scans run on the endpoint
  • Raw files are never uploaded
  • Masked findings only

The problem

Payment data rarely stays where you expect it to.

A payment system can be designed perfectly and still not account for what happens around it. Somebody exports a reconciliation report to a spreadsheet. A support agent pastes a card number into a ticket while helping a customer. A refund form gets scanned and saved to a desktop. A developer copies production data into a test file. None of that is in the architecture diagram.

Policies describe what should happen. Scanning the devices tells you what did.

Exports and downloads

Reconciliation reports, chargeback files, and CSV downloads pulled for one task and never removed.

Records of conversations

Support notes, email attachments, and screenshots taken while sorting out a customer's problem.

Archives and test data

Old operational folders, zipped backups, and sample data copied from somewhere real.

What you get

Three things, from one scan.

Find stored account data

Identify files and locations holding likely payment-card information across enrolled endpoints, including copies no system of record knows about.

Prioritise what needs attention

Findings are deduplicated by fingerprint, scored for confidence, and ranked by risk, so the team works a credible list rather than every long number on the disk.

Keep evidence of the work

Scan history is retained and findings export to PDF or CSV, so internal review, remediation, and assessment activity all draw on the same record.

Detection

What EmberHound looks for.

Payment-card data first. The standard divides it into two classes that carry different rules, so the product reports them separately rather than lumping everything together as "card stuff".

Cardholder data

Card numbers

13 to 19 digits, validated with a Luhn checksum and weighted by nearby words like card, payment, visa, or mastercard. Words like invoice, order, and tracking count against a match.

Sensitive authentication data

Security codes

Three and four digit codes, reported only where cvv, cvc, security code, or card verification appears nearby. This is the class whose retention after authorisation the standard prohibits outright.

Cardholder data

Expiry dates

Month and year pairs, reported only alongside words like expires, valid thru, or exp. On their own they are weak evidence, so they mainly serve to corroborate a card number found nearby.

What it does not detect. There is no detector for full track or magnetic-stripe data, cardholder names, service codes, or PIN blocks. If a page anywhere says otherwise, it is out of date.

Also detected: bank and payment identifiers

These are in the same pack and will appear in your findings. They are not payment-card data and carry no PCI DSS obligation of their own, but they are usually worth knowing about wherever card data turns up.

  • Bank account numbers

    8 to 17 digits, requires account, bank, checking, savings, or routing nearby

  • ABA routing numbers

    nine digits, validated with an ABA checksum

  • UK sort codes

    requires the words sort code, with a weighted score that penalises invoice and version contexts

  • SWIFT and BIC codes

    requires swift or bic within 60 characters

  • US employer identification numbers

    requires ein, employer identification, or tax id nearby

  • Payment processor tokens

    Stripe-style identifiers such as ch_, cus_, pi_, and tok_

How it works

From agent install to exported evidence.

  1. 01

    Deploy the endpoint agent

    Push the agent through your existing MDM, or hand somebody an enrolment code. Scanning is local, so there are no inbound firewall changes to make.

  2. 02

    Run a card data scan

    Select the PCI policy and the locations in scope. The agent reads files on the device using the signed rule pack.

  3. 03

    Review masked findings

    Each finding names the data type, the device, the file, and where inside it the match sits - with a masked preview rather than the value itself.

  4. 04

    Prioritise remediation

    Assign an owner, set a status, and work down by risk. Findings carry an SLA due date, and the platform warns as it approaches.

  5. 05

    Rescan and export

    Scan again to see whether the exposure has actually gone, then export the findings and the history behind them.

Findings

See enough to investigate, without collecting the file.

A finding has to tell somebody where to go and what they will find when they get there. It must not become a second copy of the data you are trying to get rid of. So the preview is masked, the value is stored as a hash, and everything else is the metadata needed to act.

Findings locate the match inside the file itself: the page of a PDF, the sheet and cell of a spreadsheet, the path within a JSON document.

  • Data type and its PCI class
  • Masked preview, never the value itself
  • Device, file path, and file type
  • Where inside the file: page, sheet, row, or column
  • Confidence score, and what adjusted it
  • Risk level and exposure level
  • How many times it has been seen, across how many scans
  • First seen, last seen, and SLA due date
  • Status, assigned owner, and resolution note
  • Whether OCR was used to read it

Signal

Focus on credible findings, not every long number.

A sixteen-digit string is not a card number. An order reference, a serial number, and a tracking code all look the same to a regular expression. Six controls separate the two, and each finding records which of them applied to it.

Checksum validation

Card numbers are Luhn-checked and routing numbers ABA-checked before they become a finding. Each finding records whether the checksum passed.

Required context

Weak patterns are not reported alone. A three-digit security code only becomes a finding when a phrase like cvv or security code sits nearby.

Negative keywords

Invoice, order, tracking, shipment, test, and example all count against a card-number match rather than being ignored.

Confidence scoring

Every finding carries a score, the raw score before adjustment, and the list of adjustments applied - so a low-confidence result is visible as one.

Deduplication

A fingerprint groups the same value across scans and devices, so one card in fifty copies of an export reads as one thing to deal with.

Suppression rules

Dismiss a finding or exclude a path from future scans. A suppression needs a written reason of at least 10 characters, and it is audited.

None of this eliminates false positives, and no scanner honestly claims to. It moves the credible findings to the top of the list.

Add-on

Find card data inside images and scanned documents.

A photographed receipt, a scanned refund form, a screenshot of a payment screen. Ordinary file search reads none of them, because there is no text in the file to read.

With the OCR add-on enabled, text is extracted from supported images and image-based documents before the same detection rules run, and each finding records whether OCR was used to read it, so you can tell OCR results apart from plain-text ones.

OCR is an add-on rather than part of a base plan. Ask us about OCR coverage.

  • Applies the same rules to extracted text as to ordinary files
  • Every finding records whether OCR produced it
  • OCR confidence is recorded so low-confidence reads can be filtered
  • Extraction happens on the device, like the rest of scanning

Security

Scan sensitive files without uploading them.

A card-data scanner that collected card data would be a poor trade. The architecture is built so that finding the data does not mean moving it.

Read the Trust Centre for the architecture and data-handling detail.

  • Matching runs on the endpoint. The platform never reads your file system.
  • Raw files stay on the device. Only a masked preview, a hash, and metadata leave it.
  • Encrypted in transit and at rest.
  • Organisation-level isolation, enforced in the database as well as the application.
  • Every action is written to an audit log your team can read.

PCI DSS

Support PCI DSS work with evidence from actual scans.

The standard treats stored account data as something you are expected to know about and minimise. Requirement 3.2.1 asks that retention be limited to what you genuinely need for business, legal, or regulatory reasons. Requirement 3.3.1 goes further for sensitive authentication data - security codes, full track data, and PIN blocks must not be retained after authorisation, even encrypted. Both assume you can say where the data is.

A scan is one way to answer that from the devices themselves. Of the classes EmberHound detects, security codes are the sharpest: finding one stored after authorisation is a finding worth acting on straight away.

What the reports map to

EmberHound maps at requirement level. It does not produce sub-requirement mappings, and any page claiming otherwise is describing something the product does not do.

Requirement 3

Protect stored account data

The findings report states this mapping directly. Scan results show which devices hold account data and which do not.

Requirement 10

Log and monitor all access

Reports carry the scan history behind them, and platform actions are audited.

EmberHound supports payment-data discovery and PCI DSS assessment activity. It does not certify PCI DSS compliance or replace advice from a Qualified Security Assessor. Finding and removing data you did not need to keep can support scope-reduction work, but scope is determined by your whole cardholder data environment and the systems connected to it.

PCI DSS sources

  1. PCI DSS document library - PCI Security Standards Council
  2. FAQ: How long should cardholder data be stored? - PCI Security Standards Council

Use cases

What teams run it for.

Check employee endpoints

Look for exports, downloads, and temporary files holding card data on the laptops your team actually uses.

Investigate legacy storage

Find account data retained in old documents, archives, and operational folders long after the reason for keeping it ended.

Prepare for an assessment

Run a targeted scan, work through the findings, and keep the evidence of what you found and fixed before you sit down with a QSA.

Monitor for recurrence

Rescan enrolled endpoints and use scan history to see whether data you dealt with has reappeared.

Frequently asked questions

Card numbers, card security codes, and expiry dates as its primary targets. The same pack also detects bank and payment identifiers - bank account numbers, ABA routing numbers, UK sort codes, SWIFT and BIC codes, US employer identification numbers, and payment processor tokens. It does not detect full track or magnetic-stripe data, cardholder names, service codes, or PIN blocks.

Enrolled company devices running Windows, macOS, or Linux, and file shares reachable from them. Scanning covers files on the endpoint. Mailbox, cloud drive, and external drive scanning are separate add-ons.

No. Matching happens on the device, and a full card number is never transmitted or stored by the platform. What leaves the device is a masked preview, a fingerprint hash, and the metadata needed to act on the finding - the file path, the data type, the confidence score, and where in the file the match sits. The file itself stays where it is.

Yes, with the OCR add-on enabled. Text is extracted from images and image-based documents before the same rules are applied, and each finding records whether OCR was used to read it. Without the add-on, image contents are not read.

Six controls, and each finding records which of them applied to it. Luhn validation on card numbers, required nearby words for weak patterns like security codes, negative keywords that count against a match, confidence scoring with the adjustments recorded, fingerprint deduplication, and suppression rules for anything you have reviewed and dismissed. It does not eliminate false positives, and no scanner honestly can.

No. EmberHound finds and reports. It never deletes, moves, edits, or redacts the files it scans. Remediation is your team's action, tracked in the platform with an owner, a status, and a due date.

No. It supports payment-data discovery and assessment activity by showing where account data is stored and giving you evidence of what you found and fixed. It does not certify compliance and does not replace a Qualified Security Assessor.

Yes. Findings and scan history export to PDF and CSV, and the exports carry the scan record behind them. They are evidence you produce for an assessor to consider, not an assessment outcome.

Not on its own. Finding and removing account data you did not need to keep supports scope-reduction work, but your scope is determined by your whole cardholder data environment and the systems connected to it, and that judgement stays with you and your assessor.

That is your call and depends on how your teams work. Two patterns are common: a scheduled recurring scan across enrolled devices, and a targeted scan before an assessment or after a change in how card data is handled. Scan history makes the difference between the two visible.

One device and one user, with a 500 GB monthly scanning limit and one scan, and no card details required to start. You choose card data or personal data as the scan type. The findings dashboard, masked previews, and scan history work as they do on paid plans. OCR for image-based documents is not included on the free plan.

Card data discovery is its own plan. There is also a combined plan that searches for card data and personal data in one pass. See the pricing page for what each one includes. OCR, mailbox, and drive scanning are add-ons on top of any plan.

Find out where payment-card data is being stored.

Run your first scan on one device and review the findings without uploading the underlying files.

No card details required. One device, one user.

Your cookie choices

We use cookies to run this site, measure how it is used, and to advertise on other platforms. You can accept or refuse each purpose separately.

Keeps you signed in and remembers this choice. Always on.

Google Analytics, Sentry and Vercel. Which pages are used, and what breaks.

LinkedIn, X and Meta pixels, loaded through Google Tag Manager.

Cookie policy