CyberShield Blueprint

Small business domain security scanner MVP.

CyberShield lets a business add a domain, run safe posture checks, receive a score, understand findings in plain language, and export a professional report.

Defensive-use boundary: scan only domains the user owns or is authorized to assess. Start with passive DNS, TLS, and HTTP header checks, avoid intrusive testing, rate limit requests, and label every finding as configuration evidence rather than proof of compromise.

A clear score and the next fix

The first version should prove the workflow before adding billing, teams, scheduled scans, or AI explanations.

Core flow

Sign up, add domain, verify ownership, run scan, review score, open findings, download PDF report.

Dashboard pages

Overview, Domains, Scan Results, Findings, Reports, Recommendations, Settings, Team Members, Billing.

Demo-safe mode

Use fake domains like acme-demo.com, bluepeak-demo.io, and novamed-demo.net with seeded scan results for portfolio screenshots.

Separate demo MVP from SaaS MVP

Demo MVP

No account required

Enter one authorized domain or choose seeded demo data, run passive checks, show score, show findings, and export a sample report.

SaaS MVP

Accounts and history

Add users, organizations, domain verification, scan history, finding status, saved reports, and team settings after the scoring model feels credible.

Do not build yet

Keep the first release narrow

Delay billing, white-label reports, Slack alerts, AI remediation, consultant dashboards, and compliance mapping until the core report is strong.

What the scanner should inspect first

Website

HTTPS and browser protections

HTTPS enabled, HTTP to HTTPS redirect, valid TLS certificate, expiration date, HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, secure cookies, mixed-content risk.

Email

Domain spoofing resistance

SPF exists, SPF is not too permissive, one SPF record, DMARC exists, DMARC policy state, DKIM selector checks, MX records, MTA-STS, TLS-RPT, BIMI readiness, DNSSEC signal.

DNS

Hygiene and ownership clues

Exposed TXT records, suspicious old records, dangling CNAME candidates, missing CAA, wildcard DNS usage, stale verification records, and unexpected third-party includes.

Simple enough for business owners

20%HTTPS / TLS

Transport protection, certificate validity, expiration, and redirect posture.

25%Security headers

HSTS, CSP, clickjacking, MIME sniffing, referrer, permissions, and cookie posture.

30%Email security

SPF, DKIM, DMARC, MX, enforcement, and spoofing resistance.

15%DNS hygiene

CAA, DNSSEC signal, dangling records, wildcard risk, and stale records.

10%Monitoring

MTA-STS, TLS-RPT, BIMI readiness, scheduled scans, and alert readiness.

Example: Overall score 72/100, risk level Medium, main issues: missing DMARC enforcement, no Content Security Policy, and missing HSTS.

Reusable findings for the first release

High

Missing DMARC

Your domain does not have a DMARC record. This makes it easier for attackers to send fake emails that appear to come from your domain.

Fix: add a DMARC TXT record and start with monitoring mode: v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com

Medium

Weak DMARC policy

DMARC is configured but set to monitoring only. Move gradually from p=none to p=quarantine, then p=reject after legitimate senders are understood.

Medium

Missing HSTS

Your website does not tell browsers to always use HTTPS. Add Strict-Transport-Security: max-age=31536000; includeSubDomains after testing subdomains.

Medium

Missing CSP

A missing Content Security Policy can increase the impact of cross-site scripting. Start in report-only or narrow scope and test before enforcement.

Low / Medium

Missing frame protection

The site may be embedded inside another page. Add X-Frame-Options: DENY or CSP frame-ancestors 'none' where compatible.

High

Multiple SPF records

More than one SPF record can break SPF validation. Merge all SPF mechanisms into a single TXT record.

Critical

Expired TLS certificate

The certificate is expired or not yet valid. Visitors may see browser warnings and automated integrations may fail. Renew or replace the certificate.

Medium

Missing MX records

No mail exchanger records were found. If the domain sends or receives mail, confirm the mail provider setup and DNS zone.

Medium

Missing CAA record

The domain does not restrict which certificate authorities can issue certificates. Add CAA records that match the organization's certificate provider.

Medium

SPF too permissive

The SPF record uses broad mechanisms or too many includes. Review authorized senders and remove stale or unnecessary mail services.

Low / Medium

Missing MTA-STS

The domain has no visible MTA-STS policy. Consider MTA-STS after mail routing is stable to improve mail transport security.

Low / Medium

Missing TLS-RPT

The domain is not collecting TLS reporting data for mail delivery issues. Add TLS-RPT when the team can monitor reports.

Medium

Dangling CNAME candidate

A CNAME points to a service that may no longer be configured. Verify ownership in the third-party platform or remove the stale record.

Low

Wildcard DNS detected

Wildcard DNS can make asset inventory harder. Confirm it is intentional and documented before treating unknown hostnames as valid services.

Build it as a serious SaaS, but ship the smallest proof first

Frontend

Next.js, TypeScript, Tailwind, shadcn/ui, accessible dashboard tables, PDF report preview, and clear finding states.

Backend

FastAPI or Django REST Framework with PostgreSQL, Redis, Celery workers, and S3-compatible report storage.

Worker flow

Create scan record, enqueue job, run DNS/HTTP/TLS/email checks, write scan checks, generate findings, calculate score, mark scan complete.

Reports

Generate executive and technical PDF sections with summary, score, key risks, fix roadmap, raw evidence, and disclaimer.

Tables for the MVP

Identity

users, organizations, organization_members.

Domains

domains with organization_id, domain_name, verification_status, verification_token, created_at, updated_at.

Scans

scans with domain_id, scan_type, status, overall_score, started_at, completed_at, created_at.

Evidence

scan_checks with check_key, check_name, category, status, severity, score_impact, raw_result.

Findings

findings with title, severity, category, description, business_impact, recommendation, status.

Reports

reports and notifications for generated PDFs, alerts, unread messages, and scan events.

Endpoints that match the user journey

Auth

POST /api/auth/register, /login, /logout, /forgot-password.

Organizations

GET /api/organizations, POST /api/organizations, GET/PATCH /api/organizations/:id.

Domains

GET /api/domains, POST /api/domains, GET/DELETE /api/domains/:id, POST /api/domains/:id/verify.

Scans and reports

POST /api/domains/:id/scans, GET /api/domains/:id/scans, GET /api/scans/:id, GET /api/scans/:id/findings, POST /api/scans/:id/report.

Build-first recommendation: start with unauthenticated demo scanning plus seeded reports, then add accounts and persistent scan history once the scoring and findings feel trustworthy.