Skip to content
SECQON

SPF, DMARC, CAA and DNSSEC check — email spoofing and DNS security tested by SecQon

Your DNS records decide who may send email as your domain and which certificate authorities may issue certificates for it. SecQon reads four of them — SPF, DMARC, CAA and DNSSEC — through a DNS resolver, so this check sends no traffic to your servers at all. It runs on every plan, and it only reports a record as missing when DNS actually answered that it does not exist.

Runs on
Light, and therefore also Standard and Deep. Runs on every plan and on the free instant check. Subdomain-takeover templates run on Standard and Deep.
Included from
Free plan ($0)
OWASP Top 10 (2021)
A05

What we test

Why it matters

Anyone can send an email that claims to be from your domain. SPF and DMARC are how receiving mail servers tell the real messages from the forged ones — without them, or with DMARC left on p=none, a phishing email “from” your finance team to a customer arrives looking entirely legitimate. That is a direct route to invoice fraud and account takeover, and it damages trust in every genuine email you send.

CAA and DNSSEC protect the plumbing underneath your website. A CAA record limits which certificate authorities may issue certificates for your domain, which narrows the ways someone could obtain one they should not have. DNSSEC lets resolvers check that the answers they receive for your domain were not tampered with in transit. Neither is dramatic, but both appear on security questionnaires and in audits.

Missing DNS records are also easy to get wrong in the other direction. A DNS lookup that times out is not the same as a record that does not exist, and early versions of this check confused the two on our own domains. It now only reports absence from a definite answer, and shows you the exact query and response it saw.

An example finding, and its fix

A finding of a type this check really produces. The evidence is illustrative, not taken from a customer's scan.

Low

DMARC policy is monitor-only (p=none)

Evidence

$ dig +short TXT _dmarc.example.com
"v=DMARC1; p=none; rua=mailto:dmarc@example.com"

How to fix it

Read your DMARC aggregate reports (the rua address) and confirm every legitimate sender — your mail provider, CRM, billing system — passes SPF or DKIM. Change the policy to p=quarantine, optionally with pct=25 to start with a share of mail. Once nothing legitimate is being quarantined, move to p=reject. Re-test the finding from your report.

What we don't test

  • DKIM. Signing keys live under selectors that cannot be listed from outside, so DKIM is not tested and the report says so.
  • Subdomain discovery by brute force. We never guess names from a wordlist; passive sources can suggest subdomains, but nothing is scanned until you verify it.
  • SPF on a parent domain. SPF is evaluated at the exact name you added, because that is how receivers apply it.
  • Your mail servers themselves. This check reads public DNS; it does not connect to or test your mail infrastructure.

Every report names what its scan did and did not assess. See the full OWASP Top 10 coverage, including the two categories no external scan can assess.

DNS & email security: questions people ask

Does the DNS check send anything to my server?

No. The queries go to a DNS resolver, not to your website or mail server. It is completely passive.

Does SecQon check DKIM?

No. DKIM keys are published under selector names that cannot be enumerated from outside, so no external scanner can check DKIM reliably. The report lists it as not assessed rather than guessing.

Why did SecQon flag DMARC p=none?

Because p=none asks receivers to report spoofed mail but still deliver it. It is the right place to start, but it does not stop anyone sending as your domain until you move to quarantine or reject.

I added a subdomain. Why doesn’t it get DMARC or CAA findings?

DMARC, CAA and DNSSEC are looked up the chain to your registrable domain, the same way mail receivers and certificate authorities do. If the parent domain publishes them, the subdomain inherits them and is not reported.

Will SecQon find all of my subdomains?

No. We use passive sources such as certificate-transparency logs to suggest names, but we never brute-force DNS, and a suggested subdomain is not scanned until you verify it. Your asset list is only as complete as what you add.

Other checks

  • TLS & certificates

    Certificate trust and expiry, and whether your server still accepts TLS 1.0 or 1.1.

  • Security headers & cookies

    Missing or ineffective HSTS, CSP, clickjacking, nosniff and Referrer-Policy headers, plus cookie flags.

  • Exposed ports & services

    36 high-risk TCP ports — databases, container control planes, remote admin — checked with one connect each.

  • API security

    Your API’s own schema, read as an outsider: open operations, GraphQL introspection, CORS and leaked stack traces.

  • Web application pentest

    A browser-rendered crawl plus bounded proofs for XSS, SQL injection and SSRF, and an active scanner on the pentest tier.

Last reviewed against our scanning documentation on 24 Sep 2026.

See what a scan finds on your own asset

Free for one verified asset, no card needed. Paid plans add the written report, more assets and deeper scans.

Start freeCompare plans