Request demo

Compromised Client Credential Monitoring

Account Takeover Starts With a Leaked Login.

When a customer’s device is infected, every login saved in its browser goes into an infostealer log, including the one for your portal.

The platform finds the leaked credentials that open your services and records each one with the exact URL, the username and the service behind it. Your fraud and identity teams work each record through tracked states.

SourceInfostealer log · saved logins

Targetlogin.acme.example

Your service

  • https://login.acme.example · j.(masked) · email

    Target service · MFA by default

    State marked_as_resolved

  • https://login.acme.example · c.(masked) · username

    State marked_as_resolved

Filter target.domain eq acme.example · state eq newly_detected

Action search:mark-resolved

Not a match

  • https://mail.other.example · (masked) (not a match)

  • https://social.example · (masked) (not a match)

  • https://portal.other.example · (masked) (not a match)

The Leak Happens Somewhere Else.

Your authentication can be sound and customer accounts still get taken over. The credentials come from places you don’t control.

Source

Infected Customer Devices

A personal machine your security team never sees. The infostealer on it takes your login along with all the others.

Reuse

Passwords Used Twice

A password leaked from another service works on yours when the customer reused it.

Impact

Fraud That Looks Legitimate

A takeover with a valid password looks like a normal sign-in. It tends to surface later, as a chargeback, a support ticket or a complaint.

Each Login Is Tied to Its Service.

URLThe exact address the login was saved for, such as a sign-in page on one of your domains
Username and typeThe identifier, marked as an email address or a username
Target serviceThe domain, host and service the URL belongs to, with its platform
CategoryA main and sub category for the target service
Risk tierThe risk tier of the target service, where one is assigned
MFA by defaultWhether the target service requires MFA by default
Added dateWhen the record was added
StateWhere the record stands in your workflow

Fields as documented in the Compromised Client Credential Search reference.

login.acme.example

Client credential

a customer’s saved login, from an infostealer log

  1. Your service CTIthe URL the login was saved for:

    URLhttps://login.acme.example

  2. A customer’s login CTItaken from an infected device:

    Usernamej.masked · email

  3. Filter on ittarget.domain eq acme.example:

    Target servicedomain acme.example · host login.acme.example

The record tells you which account and which service. The response is yours.

Record openednewly_detected

What Fraud Teams Do Next.

The record tells you which account and which service. The response is yours, and it usually looks like this.

Force a Reset

Invalidate the password on the affected account and require a new one at the next sign-in.

Revoke Sessions

End active sessions for the account. The infection may have taken its cookies along with the password.

Add Friction

Step up authentication or hold high-risk transactions on the account until the customer confirms.

Tell the Customer

If the login came from an infected device, the other logins on it are exposed too. The cleanup happens on their side.

Each Record Carries a State You Can Change by Filter.

New records arrive as newly_detected. From there your team resolves them, accepts the risk, ignores them or marks them false positive, and the state is kept on each record for search and export.

Actions apply by filter, so one request can resolve all credentials for one service, or ignore all records for a host you have already retired. A revert returns records to their previous active state.

newly_detectedFound, not yet reviewed
unresolvedOpen
marked_as_resolvedMarked fixed by your team
risk_acceptedKnown and accepted
ignoredSet aside
marked_as_false_positiveNot a real exposure

Work the Queue From Your Tools.

Search, export and all state changes are in the CTI API. Bulk actions take the same filter as search, so what you review is exactly what you change.

curl -X POST \
  "https://api.deepinfo.com/v1/cti/compromised-client-credentials/search" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d @filter.json

Questions About Compromised Client Credential Monitoring

Where do client credentials come from?

From leaked credential data, including infostealer logs from infected customer devices. Each record keeps the URL the login was saved for, which is what ties it to your service.

Do we need to review every record by hand?

No. State changes take a search filter, so all records for one service, host or domain can be resolved, ignored or risk-accepted in one request, and reverted the same way.

Does the platform close a record on its own?

No. Records stay active as newly_detected or unresolved until your team closes them: marked as resolved, risk accepted, ignored or false positive.

Can we see how the exposure has grown?

Yes. Client credential statistics return the total number of records, the date of the first exposure and a count per year, through the CTI API.

Can we export the records?

Yes. Each search has an export twin that returns all matching records without pagination, as CSV or JSON.

See Which Customer Logins Are Already Out There.

Book a demo and we’ll scope client credential monitoring to your login domains and walk through the workflow with your fraud team.