How a Perimetry audit works

An audit reads what anyone on the internet can already read about your domain, the way an attacker would start: DNS, certificate logs, the answers your servers give to every visitor, public data sets. It takes one to two minutes, attacks nothing, and every check is open source.

The audit, step by step

Six areas start together on the domain itself; the rest build on what they found. The bars show each step's usual share of the time.

Phase 1 · in parallel

  1. DNS

    Name servers, DNSSEC (missing or broken), CAA, wildcard records.

  2. E-mail authentication

    SPF counted through every include, DKIM on 54 common selectors, DMARC, MTA-STS, TLS reporting.

  3. Subdomains

    Names found in Certificate Transparency logs, then resolved one by one.

  4. Look-alike domains

    Up to 300 typosquatting variants: which are registered, with mail or a website, and how recently.

  5. Cloud storage

    Buckets named after the domain on S3, Google Cloud Storage and Azure.

  6. Registration

    Expiry date and registrar, from the registry.

Phase 2 · one after the other

  1. Certificates

    Certificates issued recently, and whether each issuer is allowed by your CAA record.

  2. Mail servers

    For each MX host: STARTTLS, the TLS handshake, the certificate, DANE.

  3. Hosts

    The apex, www and every live subdomain, resolved to their addresses.

  4. Subdomain takeover

    CNAMEs pointing at deleted resources on 26 providers, or at unregistered domains; dangling delegations.

  5. Websites

    HTTPS and HSTS, security headers and the quality of the CSP, cookies, outdated libraries, WordPress plugins.

  6. Exposure

    Open ports and known vulnerabilities from Shodan’s existing data, ranked with CISA KEV and EPSS.

  7. Reputation

    The domain and its mail and web addresses on Spamhaus blocklists.

Then every finding is compared with the previous audit: new problems, fixed ones, new subdomains, new certificates, new look-alikes. That comparison is what your alerts are made of.

Passive by design

Nothing an audit does would look unusual in your logs: a few DNS queries, a home page fetched, a mail server greeted. That is also why it can run on a schedule without anyone's permission being stretched.

What it does

  • DNS queries through public resolvers
  • Look-ups in public databases (certificate logs, Shodan's existing data, blocklists)
  • A normal TLS handshake and a few ordinary HTTPS requests per website
  • An SMTP greeting to each mail server, stopped before any mail is sent

What it never does

  • Scan ports, fuzz, or guess passwords
  • Send exploit payloads or try to log in
  • Visit look-alike domains (they are only resolved)
  • Connect to private or internal addresses, whatever a DNS record says

Two things wait for the proof that a domain is yours (a TXT record): the details of the findings that would help an attacker, and the optional search for exposed sensitive files (.git, .env, backups), which you switch on per domain.

Where the information comes from

Every source is public, and here is what each one sees of an audit. No customer data is ever sent to them.

SourceReceivesUsed for
Public DNS resolvers (Cloudflare, Google)Domain, subdomain and look-alike namesEvery DNS check
crt.sh, Cert SpotterThe domain nameSubdomains, certificate monitoring
rdap.org and the registryThe domain nameRegistration expiry, age of look-alikes
Shodan InternetDBPublic IP addressesOpen ports and known vulnerabilities, without scanning
CISA, FIRST, WordfenceNothing about you: public catalogues are downloadedRanking vulnerabilities
SpamhausThe domain and its IP addressesBlocklists
Amazon, Google, Microsoft storageBucket names derived from the domainCloud storage
Your own serversOrdinary HTTPS requests, an SMTP greetingWeb, TLS and mail transport checks

How the score is computed

It starts at 100 and each finding takes off points by severity. The same issue on several hosts counts fully once, then a quarter for each repetition, so ten hosts missing one header do not sink a domain. Findings you have accepted, with a reason, do not count.

Grades: A from 90, B from 75, C from 60, D from 40, F below.

Example

No DMARC record (high, −12), two weak headers (medium, −5 each), no CAA record (low, −1): 100 − 12 − 10 − 1 = 77, grade B.

The score tracks progress over time. It is not a certification, and a perfect score does not mean nothing can go wrong.

SeverityPointsMeaning
Critical−30Exploitable now, serious impact: fix today
High−12Real risk or a broken security control: fix this week
Medium−5A weakness worth fixing soon
Low−1Hardening and good practice
Info−0Context, nothing to fix

How false alarms are avoided

A finding that turns out to be wrong costs trust. These four cases each come from a real report we got wrong once, and fixed in the scanner for everyone.

Mail encryption stripped by a network

Some networks remove STARTTLS from the conversation with every mail server. Before saying your server lacks it, we ask a reference server that always offers it; if that one looks unencrypted too, the network is the cause and you are not blamed.

Policies written in the page

Static sites often put their Content-Security-Policy in a <meta> tag. Browsers apply both the header and the tag, so we read both before calling a policy weak.

Sites behind Cloudflare

Cloudflare answers on a dozen ports for every site it serves. Those are not held against you; what is reported instead is any host that bypasses it and could reveal your origin server.

Look-alike domains

A similar name registered years ago is a neighbour, not an attacker. Severity follows the registration date and whether the domain can send mail, not mere existence.

What a passive audit cannot see

Perimetry looks at your domain from the outside. That is where most incidents start, but not everything is visible from there.

  • Inside your applications. Weak passwords, access-control bugs, injection flaws: they need someone to log in and test, which is a penetration test. Our verified active scan, coming soon, covers part of it with your authorization.
  • Services that no public source has seen. Open ports come from Shodan's existing data; a port opened this morning may not be in it yet.
  • Subdomains never put on a public certificate. Names that only exist in your internal DNS are not in the logs we read.
  • Your people and devices. Phishing, laptops, backups: outside the scope of any domain audit.

If you handle sensitive data or must meet a security standard, pair the continuous watch with a yearly penetration test by a qualified firm.

Every check is open source

The scanner behind each report is Perimetry, published under the AGPL-3.0 licence. You can read how each finding is produced, run it on your own machine and compare its output with ours. Changes to the checks are listed in our changelog.

See all the checks · How we handle your data