Patched · least privilege · monitored

Nobody chose your site. A script found it.

Almost every compromise we are called in to clean up began with an automated scan that had never heard of the business. It found a plugin version, matched it against a public list of known vulnerabilities, and tried the exploit — the same way it does to a few million other addresses that day.

This matters because "we're too small to be a target" is the most common reason sites go unpatched, and it misunderstands the threat entirely. You are not a target. You are a result. The panel on the right is ordinary background noise that every public site receives.

Move over the perimeter
probes 0blocked 0
PatchingOn a clock
AccessLeast privilege
ChangesWatched
RecoveryTested, not assumed

Reality

Six ways sites actually get compromised

Not by anything sophisticated. These six account for the overwhelming majority of what we are asked to clean up, and every one is preventable with unglamorous work.

01

An unpatched plugin

A vulnerability is disclosed publicly and patched upstream. Automated scanners begin looking for unpatched installations within hours. Yours updates monthly, if someone remembers.

The gap: between the fix existing and you having it.

02

A reused password

An administrator used the same password on a service that was breached years ago. It appears in a credential list, gets tried against your login form, and works.

Countered by: two-factor authentication, entirely.

03

Too many administrators

Eleven admin accounts, four belonging to people who left, one to an agency you stopped working with in 2022. Any of them is a full compromise if it is reused elsewhere.

Fix: quarterly access review, five minutes.

04

Abandoned components

A plugin whose author stopped updating it three years ago, still installed because something might depend on it. It will never be patched again.

Rule: unmaintained means removed, not disabled.

05

The hosting account

Compromise through the control panel, FTP or a neighbouring site on shared hosting. The site itself was fine; the way in was underneath it.

Often missed: because everyone audits the site.

06

Somebody was helpful

A convincing email, a phone call about an expiring domain, a "developer" needing temporary access. No technical control stops this on its own.

Reduced by: two-factor and a rule about who can grant access.

Interactive

How a compromise actually unfolds

Seven stages, composited from the cleanups we have done. Step through it — and at each stage, apply the one control that would have ended it there.

The uncomfortable part is stage seven. In a typical case the business finds out weeks after the compromise, and not from their own systems — from Google, a customer, or a payment processor. Everything before that point was quiet.

Interactive

The window between a fix existing and you having it

When a vulnerability is disclosed, the patch and the exploit usually become public at roughly the same time. What decides your risk is how long you then take to apply it.

The arithmetic below is deliberately simple: if you patch every thirty days, then on average a fix exists for fifteen days before you have it. Assume six advisories a year touch something you run — a conservative figure for a site with twenty components — and the exposure adds up quickly.

disclosure & patch published you apply it
Average days exposed, per advisory
Days a year with a known hole open

Coverage

What gets reviewed and locked down

Security is a set of habits with some tooling attached, not a product you install. The tools below support the habits; none of them replace them.

Platforms hardened

WordPress
WooCommerce
Shopify
Magento
Drupal
PHP

Perimeter & transport

Cloudflare WAF
Fastly
Akamai
nginx
Let's Encrypt
OpenSSL

Access & secrets

1Password
Bitwarden
YubiKey
Okta
Auth0
HashiCorp Vault

Testing & monitoring

OWASP guidance
Snyk
Dependabot
Sentry
Grafana
VirusTotal

The work

Six areas of hardening

Ordered by how much risk they remove per hour spent. The first two are free and are the ones most often skipped.

Area 1 of 6
01 — Identity

Two-factor, everywhere that matters

On the site, the host, the domain registrar and the email account that can reset all three. Credential stuffing is the second most common route in and this closes it almost completely.

  • Enforced for every administrator
  • Registrar and host included
  • Recovery codes stored properly

Free, an afternoon, largest single reduction

02 — Access

Fewer people with full control

Most people with an administrator account do not need one. Editors edit, authors write, and the number of accounts that can install code stays very small.

  • Roles matched to actual jobs
  • Former staff and agencies removed
  • Reviewed on a schedule, not on suspicion

Also free, and rarely done

03 — Patching

A cadence, not a reminder

Updates applied on a defined cycle with security releases expedited, staged first so applying them is not a gamble. Advisories tracked for the specific components you run.

  • Security patches out of band
  • Staged, then live
  • Unmaintained components removed

The single biggest ongoing lever

04 — Perimeter

Filtering before it reaches you

A web application firewall, rate limiting on login and checkout, and blocking the automated noise that makes up most of the traffic in the hero panel.

  • Known-bad traffic dropped at the edge
  • Login and API rate limited
  • Tuned so real customers are unaffected

Buys time; does not replace patching

05 — Integrity

Knowing when a file changes

Alerts when code changes outside a deployment, when a new administrator appears, or when the site starts serving content nobody wrote. This is what compresses "weeks" into "minutes".

  • File integrity monitoring
  • Admin account creation alerts
  • Outbound content checked

Where detection time actually comes from

06 — Recovery

Assume it happens anyway

Off-site backups you have actually restored, a written plan for who does what, and enough logging to answer what was taken rather than guessing.

  • Restores tested on a schedule
  • Written incident plan
  • Logs retained long enough to be useful

The control that works when the others did not

Honesty

What we will not claim

Security marketing runs on absolutes, and absolutes are the clearest sign that somebody is selling rather than explaining.

01

That you will be unhackable

Nobody can promise that, including the firms that do. What is achievable is a much smaller attack surface, a much shorter detection time, and a recovery that works.

02

That a plugin solves it

Security plugins help with specific things and add code that itself needs patching. Several well-known ones have had serious vulnerabilities of their own.

03

That cleanup alone is enough

Removing the malware without finding the way in produces a site that gets reinfected, often within days. Root cause first, cleanup second.

04

That a firewall replaces patching

A web application firewall buys time against known patterns. It is a mitigation while you patch, not an alternative to patching.

05

That this is a one-time job

The hardening lasts; the patching does not. A site secured today and left alone for a year is a site with a year of unapplied fixes.

06

That we are a penetration testing firm

We harden, patch, monitor and recover. For formal penetration testing or a compliance-driven audit, you want specialists, and we will say so and suggest where to look.

Scope

What a security engagement includes

A review first. Most sites have two or three findings that account for most of the exposure, and they are usually free to fix.

01

Component inventory

Everything installed, its version, whether it is still maintained, and which known advisories currently apply to what you run.

02

Access audit

Every account on the site, host, registrar and any connected service — who they belong to, what they can do, and which should not exist.

03

Two-factor rollout

Enforced across the site and, importantly, the accounts that could be used to reset access to it.

04

Configuration hardening

File permissions, disabling in-dashboard code editing, security headers, transport configuration and removing unnecessary exposure.

05

Perimeter setup

Firewall rules and rate limiting configured for your traffic rather than switched on at defaults and left.

06

Monitoring

File integrity, new administrator alerts, outbound content checks and uptime — so a compromise surfaces in minutes rather than from a customer.

07

Backup verification

Off-site, versioned, and restored into a scratch environment to prove recovery works before it is needed.

08

Incident plan

Written, short, and specific: who is called, what is isolated first, who tells customers, and in what order.

09

Cleanup, where needed

If something is already compromised: contain, find the entry point, remove persistence, rebuild what cannot be trusted, then close the hole.

Questions

Security, answered

Why would anyone target us? We're small.

Nobody targeted you. Automated scanners sweep the entire public internet looking for known vulnerable versions, and they do not know or care what your business does.

Small sites are also attractive precisely because they are less likely to be monitored — a compromised site is useful for sending spam, hosting phishing pages or injecting links regardless of how much traffic it gets.

We've been hacked. What happens now?

Contain first — take the site offline or into maintenance, change credentials, preserve logs before anything is overwritten. Then find the entry point, because cleaning without that produces reinfection.

After that: remove persistence, rebuild anything that cannot be verified as clean, restore from a known-good backup where appropriate, and close the original hole.

Isn't a security plugin enough?

It helps with some things — login rate limiting, basic scanning, some hardening defaults. It does not patch your components, review your accounts or verify your backups.

It also adds code with privileged access to your site. Several popular security plugins have had serious vulnerabilities disclosed in their own code.

Will hardening break anything?

It can, which is why changes are staged and tested rather than applied live. Disabling file editing, tightening permissions and adding security headers are all capable of breaking a badly built integration.

Anything we cannot safely apply gets documented as a known exposure rather than quietly skipped.

How does this differ from a care plan?

A care plan keeps you patched, monitored and recoverable on an ongoing basis. This is the deeper one-off work — the audit, the access cleanup, the configuration hardening, the incident plan.

Most sites want the second once and the first continuously.

Do we need to worry about compliance?

If you take card payments, staying with a hosted payment provider keeps most of the burden off your site. If card data touches your servers, the requirements change substantially.

For personal information, Canadian privacy law expects reasonable safeguards and, in some circumstances, breach notification. Both are worth specific advice rather than a paragraph on a web page.

How long does the initial work take?

The review is typically a week. The fixes depend on what it finds — two-factor and access cleanup are usually same-day, while configuration hardening and monitoring take longer to do carefully.

If something is actively compromised, containment happens immediately and the rest follows.

What if our host says they handle security?

They handle their layer — the server, the network, sometimes a firewall. Almost none of them patch your plugins, review your admin accounts or notice a new file appearing in your uploads directory.

It is worth asking exactly what is covered, in writing. The answer is usually narrower than assumed.