Privacy

Two unrelated kinds of data live in this system, and describing them together is how a privacy page stops meaning anything. One is what we hold about customers who signed up. The other is a record of organisation names published on ransomware extortion leak sites — and most of those organisations are not customers, never signed up, and have never heard of us. The second one is the part worth reading, so it is first.

Names published on extortion leak sites

Ransomware groups run public websites where they name organisations they say they have compromised, as pressure to make them pay. We read those posts through third-party feeds and keep a record of each post.

A record holds:

  • the organisation name exactly as the post published it
  • a normalized form of that name, which is what the matcher compares against
  • a domain, where the post carried one
  • the group that posted, the country and sector the source attributed, and the publication date
  • the source URL, which feeds carried the post, and how many of them did

This includes organisations that are not our customers and have no relationship with us of any kind. We do not ask them, and we have no way to. The name was published by the group; our row is a record of that publication, not a finding of ours and not a statement by us about the organisation named.

Why we hold it

So that we can tell a customer when their own organisation is named. That is the product. Matching a published name against a customer requires holding the published name — there is no version of this that works on counts alone.

How long we hold it

Indefinitely. We are saying so plainly rather than leaving it as an undocumented default, because "we never got round to deleting it" and "we decided to keep it" deserve different words.

The reason is the one above, moved forward in time: a company that signs up in two years needs matching against posts published before it had an account. A post from three years ago is exactly what a new customer wants surfaced on their first day, and a retention window would have quietly thrown it away. A record leaves when we decide it should not have been stored, not on a timer — see below.

Who can read it

  • No public surface carries a name. The public statistics are counts by day, country, sector and group, read from aggregate tables that have no name column in them. Not in charts, tooltips, the public JSON, RSS, sitemaps, link previews or error messages.
  • There is no lookup by company name, at any tier. No endpoint, parameter, filter or internal tool takes an organisation name and answers whether it appears in this data — not for signed-in users, not for a paid plan, not on request. That feature would turn this into a targeting aid, and we will not build it. Listing a country’s claims is a different question and is described above; asking about a named company is the one we refuse.
  • A signed-in customer sees matches for their own organisation, and can read a country’s list of claimed names. Matches to their own account are scoped to domains they have proved control of. Separately, an organisation that has proved control of its domain and accepted terms covering this specific data can list the claims recorded for a country and a window, with the names as published. That access is capped per day, and every read writes an audit row recording which organisation, which person, which country and which names were on the screen.
  • Inside the company, reading a name needs a separate operator role with its own credential and a mandatory second factor — a role no customer account can hold. Every read writes an audit row recording who read what and when, and those rows are append-only: no code path updates or deletes one.

What we do not do with it

  • We do not publish these names to the public, to search engines, or to anyone who has not proved they are an organisation and accepted terms covering them. There is no anonymous access to a name, and no name-keyed search for anybody.
  • We do not sell this data, license it, or hand it to a third party.
  • We do not contact an organisation because it turned up in the data. If your company is named in a record of ours, you will not get an email from us about it. A vendor that emails a company to say a criminal group has named it, and offers to help for a fee, is hard to tell apart from the pressure the group is already applying. We notify customers about their own organisation, and nobody else about anything.
  • We do not assert that a named organisation was compromised. A post is an assertion by a criminal group, and every place this data surfaces says so.

If your organisation is in there

Write to abuse@localhost from an address at that organisation's own domain, or with the same proof of control we ask a customer for — a DNS TXT record at the apex of the domain, or a token file served over HTTPS from it.

We ask because of the bullet above. Telling anyone who writes in whether a given organisation appears in this data is the lookup we refuse to build, run by hand instead of over HTTP, and it would be most useful to the two people who should never have it: somebody picking a target, and somebody looking for leverage over a competitor. So we do not answer either way for a stranger. Stopping our scanner is a different question and needs no proof of anything — that request we act on from anyone, because acting on it can only make us do less.

Once the connection is shown, we will tell you what we hold against that name, correct it if it is wrong, and remove it if you ask us to. A person handles this; there is no self-service button, and there is not going to be one.

Removal is a flag rather than a delete, and that is deliberate: the record stays marked as removed so a later read of the same post cannot quietly bring it back. It disappears from every internal view, from the counts behind the public statistics, and from the matching that would otherwise raise it against an organisation. It does not come back on its own, and putting it back is not something anyone here can do from a screen.

One thing is worth knowing before you ask. If your organisation later signs up, we will have nothing to match against, so we could not tell you the post had existed.

What we cannot do is take the post down. We did not publish it and the group's site is not ours to touch.

What we hold about customers

  • Account. A work email address at the domain being registered, a password stored only as an argon2id hash, a two-factor secret, and a role.
  • Organisation. Legal name, primary domain, sector, country, and the accountability record — company registration number, jurisdiction, and a named responsible officer with their email address. We need to know who is authorising us to send packets at a network.
  • Surface data. What the collectors found for the domains that organisation has proved control of: hostnames, addresses, open ports, service banners and versions, certificates, findings, and score history.
  • Audit rows. Every scan dispatched, every target resolved, every module run, every address contacted, every verification attempt and every opt-out, each with an actor, a timestamp and a source IP address.

Scan history, score history and audit rows are kept for at least three years. If somebody asks us in 2029 exactly what we sent to their network and when, an honest answer is only possible if we still have the row. Account and organisation data goes when the account does.

Scanning, and the consent it requires

An organisation that has only verified its email address gets passive collection: public datasets, certificate transparency, third-party APIs, and ordinary recursive DNS. Nothing is sent to its infrastructure.

Anything beyond that needs proof of control over the domain — a DNS TXT record at the apex, or a token file served over HTTPS. Only somebody holding DNS or webserver control can meaningfully authorise us to send traffic, which is why an email address is not enough on its own. Proof is re-checked every 90 days, and a failed re-check drops the organisation back to passive collection immediately. Every additional domain needs its own proof; verification is never inherited from one domain to another.

If you have seen our traffic and want it stopped, /scanning has the scanner details and an opt-out form that needs no account. Opt-outs are actioned within 24 hours whether or not the requester is a customer. An opt-out that contradicts a customer's verification suspends the scanning and goes to a person — we do not resolve that conflict in our customer's favour.

Who else sees any of this

  • Email delivery. Alerts and one-time codes go through an email provider, which therefore handles the recipient address and the message.
  • Destinations a customer configures. A webhook or a Slack channel receives that organisation's own alerts, because somebody in it asked for them there.
  • Public data sources. Passive collection works by asking third parties about a domain — certificate transparency logs, passive DNS, threat intelligence and vulnerability feeds. Those queries carry the domain, which is the lookup key; they carry nothing about the people in the account.
  • Leak-data feeds. We read from them. We never send them anything about a customer.

Cookies, analytics, and location

A session cookie keeps you signed in. There are no third-party analytics scripts, no advertising trackers, and no cross-site identifiers.

On the public statistics, the country and sector you pick are not remembered at all — not on our side and not in your browser. They travel in the address bar and are gone when you close the tab, so nothing here accumulates into a profile of a visitor who never asked for an account. Where we guess a default country, the guess is country-level, is used to pick the view, and is not stored or written to a log beside anything else.

Contact

Records, corrections, opt-outs, and anything else on this page: abuse@localhost.

How the public numbers are built, and what they do not say, is set out on /methodology.

If this page changes in a way that affects what we hold or how long we hold it, the change is dated here and customers are told directly rather than by silent edit.

Counts reflect claims published on extortion leak sites. Claims are made by criminal groups, are frequently unverified, and may be duplicated, exaggerated or false.