Cybersecurity services, from a free website security audit to an authorised penetration test.
Start with the free scan. It reads what your server already tells every visitor and takes about ten seconds. When you need to know whether the lock actually works, we test it under written authorisation: external reviews from $5,000, penetration tests from $15,000.
Start here, it takes ten seconds
No account, no card, no sales sequence attached. The scanner is passive: it reads only what your server already sends to every visitor, which is why it can run against your domain the moment you type it. Most people are surprised by at least one thing on the first run, and about half of what it finds is a ten-minute fix somebody can do today.
The scan tells you how your front door looks from the street. Whether the hinges are the right way round, whether the number is on it, whether somebody left a window open on the ground floor. That is genuinely useful information and it is free, and for a lot of small sites it is most of what there is to say.
What it cannot tell you is whether the lock actually works. To find that out, somebody has to be allowed to walk up and try the handle, and then try the back door, and then check whether the key that opens the office also opens the safe. That is a different activity with a different legal footing, and it is what the rest of this page is about.
We are deliberate about the difference because the security industry is not. Plenty of suppliers sell an automated scan as a penetration test and hand over a colour-coded PDF that nobody acted on and nobody could have acted on. The report looks thorough, the invoice looks reasonable, and no attacker was inconvenienced.
So: the scan is free and it is the honest top of this page. If it comes back clean and you have no user accounts, no payments and nothing sensitive behind a login, you may be finished. If it comes back clean and you have all three, the interesting questions have not been asked yet.
What the free scan covers, and what it deliberately does not
This is the most important table on the page. The left column is what your server tells anybody who asks politely. The right column needs a signature, because it means interacting with your system in ways only its owner can authorise.
Every line above came from a normal request. No form was submitted, no login was attempted, no payload was sent anywhere. That constraint is not modesty, it is the law, and the next section explains why.
Notice what the output does not say. It does not say you are secure, because it cannot know. A site can pass every passive check and still let one customer read another customer’s invoices, because that flaw lives behind a login, in code the scanner never sees, in a query that forgot to filter by account. The most expensive findings we have ever written up would all have been invisible to a scanner.
Why a free scan stops where it does
Probing somebody’s system without their permission is a crime. In the United Kingdom the Computer Misuse Act 1990 makes unauthorised access to computer material a criminal offence, and it is the access that is unauthorised, not the damage, that creates the offence. In the United States the exposure is federal under the Computer Fraud and Abuse Act and additionally under the computer crime statutes several states maintain of their own.
None of that turns on intent, and good intentions have not historically been much of a defence. It also does not turn on whether the target notices. A tool that quietly tries a hundred injection payloads against a form is doing the thing the statute describes, whoever is holding it and whatever the button was labelled.
So a scanner you can point at any domain has to be passive, or the people running it are committing an offence on behalf of every user who types a competitor’s name into it. Ours reads TLS and DNS, requests pages the way a browser does, and looks at what comes back. That is it. If a check would require sending something your server did not invite, the check is not in the tool.
Authorisation is what changes the picture, and it has to come from somebody who can actually give it: the owner of the domain and the system, in writing, with the scope and the window named. Where your hosting or cloud provider requires notice, that gets handled too. This is not legal advice, and if your situation is unusual you should take some, but the practical rule is simple. Nobody tests anything here until a document exists saying they may.
Scan, review, test: three different things
These words get used as synonyms in sales conversations and they should not be. They differ by who does the work, what they are permitted to do, and what you get at the end.
A machine checks configuration and version signatures. Fast, cheap, repeatable, and blind to anything that requires understanding what your application is for. Run it continuously.
A person confirms what the scanner guessed, reads your configuration and dependencies, and puts findings in the order that matters for your business. Still nothing is exploited.
A person with written authorisation tries to chain findings into a real compromise across your live roles and flows. You get what worked, with reproduction steps and evidence.
The rough sequence for most companies is: scan continuously because it is free, review once because $5,000 buys you a genuine opinion on where you stand, and test when you have something worth compromising. If you take payments, hold other people’s records, or a customer has started sending you security questionnaires, you have something worth compromising.
Security review of a codebase
Reading the source is the highest-yield security work there is, and it is the least glamorous. A tester on the outside has to guess at the shape of your authorisation logic. A reviewer with the repository open can see it, including the three endpoints where somebody wrote the query without the tenant filter because they were in a hurry on a Friday.
We read for the classes of problem that actually cause breaches rather than producing a style report: authentication and session handling, authorisation checks at every boundary rather than only in the UI, input handling and output encoding, secrets in the repository or in the build, the dependency tree and what it pulls in transitively, and how errors and logs treat sensitive data on the way out.
What a code review covers
- Authorisation at every boundary, not only in the interface
- Multi-tenant isolation and the queries that forget it
- Authentication, session lifetime, reset and invitation flows
- Input validation and output encoding, per sink rather than globally
- Secrets in the repository, the CI configuration and the build image
- Dependencies, including what they pull in transitively
- Logging and error handling that leaks records into a log aggregator
Access is read-only, scoped to named people, and removed when the engagement ends. The full posture is on the security page.
Penetration testing under written authorisation
A penetration test is somebody trying, on purpose and with your permission, to do the things your application is supposed to prevent. Log in as a customer who is not them. Read a record belonging to another account. Change a price on the way to checkout. Get a file to be executed instead of stored. Turn a low-privilege account into an administrator by way of three small steps that were each individually reasonable.
The finding that matters is almost never a single dramatic hole. It is a chain: an identifier that increments predictably, plus an endpoint that checks authentication but not ownership, plus an export feature that does not re-check either. None of the three is a critical finding on its own, which is exactly why a scanner ranks them low and an attacker does not.
We test against your real roles, because authorisation bugs only exist between roles. That means you provision us accounts at each privilege level before we start, and it means the test finds the class of problem that costs companies their customers rather than the class that costs them a header.
Typical scope
- Web application, authenticated across every role you have
- The API behind it, tested directly rather than through the UI
- Mobile client and its transport, where one exists
- External perimeter: what is exposed, and what should not be
- Email authentication and a consented phishing-path check
- Business logic: pricing, quotas, refunds, invitations
Excluded unless you ask in writing
- Denial of service and anything load-generating
- Destructive tests against production data
- Social engineering of your staff
- Physical access and anything involving your offices
Cloud and infrastructure configuration review
More companies are compromised through configuration than through code. A storage bucket that was public for one afternoon during a migration and stayed that way. A database reachable from the internet because the security group was widened for a contractor in 2022. A CI pipeline holding a key with permissions far beyond deployment. A role with a wildcard on it that nobody has dared narrow since.
The review is read-only and it goes account by account: identity and access management, network exposure, storage permissions, secret handling, logging and whether anybody would actually notice an incident, backup existence and, more to the point, whether a restore has ever been tested. Where your infrastructure is defined in code, we read the definitions as well as the live state, because the two diverge and the difference is usually where the problem lives.
What we look at
- IAM roles, service accounts and every wildcard permission
- Network exposure: what is public that should not be
- Storage and database permissions, including snapshots
- Secret storage, rotation and what is sitting in environment variables
- Logging, retention and whether an incident would be visible
- Backups, and whether a restore has ever actually been run
- Drift between the infrastructure code and the live account
Secure architecture and threat modelling for new builds
The cheapest security work happens before anything is built. A threat model is a deliberately unglamorous exercise: draw the system, mark every boundary where data crosses from one trust level to another, and ask what somebody could do at each one if they wanted to. Two days of that at the start of a project routinely removes work that would have cost weeks to retrofit.
It also produces decisions rather than warnings. Where does the tenant identifier come from, and can a request influence it. What is the blast radius of the service account this component uses. Which actions are irreversible, and do they have a second pair of eyes. What does this system log, and would that log be a breach in itself if somebody exported it.
For teams building with us, this is folded into the audit week and the architecture that comes out of it. For teams building elsewhere, it is a standalone engagement: we model the system with your engineers in the room and leave you with the diagram, the boundary list and the decisions, whether or not we write any of the code.
MedArc is the case that makes the argument. The engagement was twelve weeks in 2022 and it was a rebuild, not a report, because the findings were architectural. The retest came back at zero critical findings. The cheaper version of that story is the one where the architecture was right in week one, and that version is available to anyone who has not started yet.
Incident response and remediation
If you think something has already happened, the order of operations is different. First establish what is still reachable and close it. Then work out what was reached and when, from logs, before anybody starts rebuilding and destroys the evidence. Then rotate every credential that could plausibly have been exposed, which is usually a longer list than the first meeting suggests. Then remediate, then write it down.
We are not a retained incident response firm with an hour-one guarantee, and if you are mid-incident with regulatory deadlines running you may need one. What we do is the engineering half: find the route in, close it properly rather than cosmetically, rebuild what has to be rebuilt, and produce a written timeline your customers, insurer or regulator can be shown.
In an active incident
- Contain first: close the route, do not tidy the evidence
- Establish the timeline from logs before rebuilding anything
- Rotate every credential in the plausible blast radius
- Remediate the cause, not only the symptom that was noticed
- Write the timeline down while people still remember it
Incident work is scoped on a call rather than priced from a page, because no two look alike. Call +1 548 391 4050 or email hello@dearhearth.com and say it is an incident.
Security for AI systems and agents
This is the part of the practice that is genuinely different, and the reason is unglamorous: we build these systems every week. Eazetech has AI products and agents in production, so the failure modes below are not read from a framework, they are the things we have had to design around in our own builds.
Prompt injection is the headline and the least interesting version of it is the direct one, where a user types instructions into a chat box. The version that actually causes damage is indirect: instructions arriving inside a document your system retrieved, a web page it fetched, a support ticket a stranger filed, a field in a record somebody else controls. The model has no reliable way to tell your instructions from theirs, so the defence cannot live in the prompt. It has to live in what the system is permitted to do afterwards.
Which is the real finding in most AI security work: permissions. An agent given a credential that can read every customer record, because that was the credential lying around, is one convincing paragraph away from being a data export tool. We review what each tool call can reach, whether irreversible actions require a human, whether retrieval is scoped per tenant, and whether model output is treated as untrusted input before it reaches a browser, a shell or a database.
What we assess in an AI system
- Direct and indirect prompt injection, including retrieved content
- What leaves your tenancy on a model call, and what the provider retains
- Tool and agent permissions: least privilege per call, not per system
- Irreversible actions and whether a human is genuinely in the loop
- Retrieval scoping, so one tenant cannot surface another tenant's data
- Model output handled as untrusted input before it reaches any sink
- Evaluation and logging: could you tell afterwards what the agent did
Related: AI development and AI automation, where the same permission design shows up as a build decision rather than a finding.
How an engagement runs
Scoping and written authorisation
We agree the targets, the roles, the window and the exclusions, and you sign an authorisation document. Nothing is touched before it exists. You also name the person who can stop everything with one message.
Testing
Manual work against your live roles, with automated tooling used only where it helps. Anything critical is reported the day it is found rather than held for the report, so you can start fixing immediately.
Findings and remediation plan
A written report with reproduction steps and evidence, ordered by what it would cost you rather than by scanner severity, plus a plan written for the engineers who have to act on it.
Retest
Included, within ninety days. Every finding is re-run and marked fixed, partially fixed or unchanged, and you get a short retest letter you can send to a customer or an auditor.
Authorisation, scope and the rules of engagement
The authorisation document is short and it is not a formality. It names the exact systems in scope by domain, IP range and application, the systems explicitly out of scope, the testing window, the accounts we will use, the techniques excluded, and the person on your side who can call a halt. Both sides sign it and both sides keep a copy.
It also protects you. A signed scope is what stops a test drifting into a system somebody else owns, which is a real risk when a shared load balancer or a third-party subdomain is involved. If your application depends on a service you do not control, testing it needs their permission too, not yours, and we will say so rather than proceed and hope.
What the authorisation names
- Targets in scope: domains, IP ranges, applications, APIs
- Systems explicitly out of scope, including third-party services
- The testing window, and any hours that are off limits
- The accounts and roles you provision for us
- Techniques excluded by default, and any added deliberately
- A named contact on each side who can stop the test immediately
- How findings are transmitted and how long we hold them
Findings are held encrypted, shared only with the people you name, and deleted on request after the retest. A report describing how to compromise your system is a sensitive document and gets handled like one.
What the report contains
- A summary a non-technical director can read and act on, on one page
- Every finding with what it is, where it is, and what it lets somebody do
- Reproduction steps precise enough for your engineer to see it themselves
- Evidence: the request, the response, the screenshot, redacted where needed
- Severity in terms of your business, with the reasoning shown
- A specific fix per finding, not a link to a generic advisory
- A remediation order, because you cannot do all of it this sprint
- What we tested and found nothing on, so the scope is not ambiguous
- What was out of scope and therefore says nothing either way
The last two items are the ones most reports omit and the ones that make a report usable a year later. A finding list without a coverage statement cannot be read as reassurance about anything, because there is no way to tell whether an area was clean or simply never opened.
Severity is argued rather than asserted. A stored cross-site scripting flaw in an admin console used by four people who are already trusted is not the same risk as the same bug on a page every customer visits, and a tool that scores both the same is not helping you decide what to do on Monday. Where we disagree with the scanner we say why.
Anything critical does not wait for the report. It goes to your named contact the day it is found, with enough detail to fix it, because a two-week gap between discovery and disclosure is two weeks you did not need to spend exposed.
What we find most often
Not a threat report and not a scare list. These are simply the findings that recur, roughly in the order they recur, across the work we have done since the early years of the company.
Visible from outside
- No content security policy, or one with unsafe-inline that does nothing
- DMARC published at p=none and never moved off monitoring
- Session cookies missing HttpOnly or SameSite
- A staging or admin subdomain indexed and reachable
- Third-party scripts loaded unpinned from an origin nobody owns
- A JavaScript library two major versions behind a published advisory
- Verbose error pages naming the framework, the version and the path
Only visible with authorisation
- Endpoints that check who you are but not what you own
- Predictable identifiers that walk straight into another account
- Password reset tokens that are long-lived, reusable or guessable
- Multi-tenant queries missing the tenant filter on one code path
- An export or report feature that skips the checks the UI enforces
- A CI credential with permissions far beyond deployment
- An agent or integration holding a key that can read everything
Retesting, and what zero critical findings means
MedArc came to us in 2022 with a healthcare application and a set of findings that were architectural rather than cosmetic. The engagement ran twelve weeks and it was a rebuild. At retest it came back at zero critical findings, and that is the number on this page because a retest result is the only security number worth quoting.
Here is what it does not mean. It does not mean MedArc is unbreakable, or that they were finished, or that the same result would hold two years later without further work. It means that on the agreed scope, at the date of the retest, no critical finding remained open. That is a precise claim, and precision is the whole point of a security number.
So every test we do includes a retest inside ninety days. We re-run each finding and mark it fixed, partially fixed or unchanged. Partially fixed is a real category and it comes up more than teams expect: the endpoint that was reported got a check added, and the three siblings that share the same handler did not.
You get a short retest letter stating the scope, the dates and the status of every finding. It is the document that satisfies a customer’s security questionnaire, an insurer, or an auditor asking what you did about last year’s report. A test without a retest leaves you with a list of problems and no evidence you addressed them, which is the worse half of the transaction.
What it costs
About ten seconds, no account. Passive checks against what your server already tells every visitor.
- TLS, certificate and protocol configuration
- Security response headers and cookie flags
- DNS, SPF, DKIM and DMARC records
- Third-party scripts and known-vulnerable JavaScript
One week, manual, no exploitation. A person confirms what a scanner guessed and puts the findings in priority order.
- Every automated finding confirmed or dismissed by hand
- Read-only review of your cloud and DNS configuration
- Dependency and third-party script assessment
- A prioritised report and a remediation plan
Three to four weeks under written authorisation, most engagements $15,000 to $50,000. Someone is allowed to try the handle.
- Authenticated and unauthenticated testing across your roles
- Authorisation, injection, session and business logic testing
- Findings with reproduction steps and evidence
- One retest within ninety days, included
When you want the problems gone rather than listed. MedArc's rebuild ran twelve weeks and retested at zero critical findings.
- Remediation by the engineers who wrote the findings
- Threat model and secure architecture for anything new
- Tests and CI checks so the fix cannot silently regress
- Retest, retest letter and handover
Across the company, engagements start at $5K and most projects run $15K to $80K. Security work sits in the lower half of that band: audits and reviews start at $5,000, and most testing engagements land between $15,000 and $50,000. A one-off external review is deliberately cheaper than a full test because it is a smaller promise, and for a lot of companies it is the right first purchase. The full ladder across every service line is on the pricing page.
What moves the number: how many applications, how many distinct user roles, whether an API and a mobile client are in scope, whether payments are involved, and whether you want us to fix what we find. What does not move the number is urgency. We do not price a test higher because you have a customer deadline, and we will tell you if the deadline is better served by the $5,000 review.
SOC 2, ISO 27001, GDPR and PCI DSS
A test is evidence, not certification. Eazetech is not a CPA firm, not an accredited certification body and not a PCI Approved Scanning Vendor, and any supplier telling you a penetration test makes you compliant is selling you the wrong product.
The useful framing is that auditors ask two questions: did you look, and did you act. A report answers the first and a retest letter answers the second. If your auditor has given you a specific control reference, bring it to the scoping call and we will scope the test so the evidence lands where they are looking, rather than producing something adjacent that you then have to argue about.
Security work that shipped
Security has been part of the build work far longer than it has been a service line on this site, and Security is a filter on the work page for that reason. The three engagements below are not security engagements, but each one had a security constraint at the centre of it: a smart-contract front end that had to match an audited contract, a banking app used by 1.2 million people, and a claims system handling insurance records inside the client’s own cloud tenancy.
Who this is for, and when you do not need us
A good fit
- Software companies whose customers have started sending security questionnaires
- Anyone holding records that belong to someone other than themselves
- Teams taking payments, or about to start
- Companies preparing for SOC 2 or ISO 27001 who need the technical evidence
- Products with an AI feature or an agent that can act on real systems
- Teams who inherited a codebase and do not know what is in it
- Anyone whose free scan came back with something they did not expect
You probably do not need this yet
- A brochure site with no login, no forms and no payments
- A product still pre-launch with no real users and no real data
- Anyone who has not yet run the free scan and fixed the easy findings
- Teams whose last test was three months ago and nothing has changed since
- Anyone who needs an ASV scan specifically, which we are not approved to provide
In all five cases the honest answer is to run the free scan and come back when something has changed. We will say this on the call rather than sell you a test you cannot use.
What we will not claim
Nobody can make you secure. Not us, not a larger firm, not a tool with a dashboard. A system that people use and change every week has a moving attack surface, and any statement about it is true on a date and about a scope, not forever and not in general. A supplier who tells you otherwise is either inexperienced or counting on you not to notice.
We also will not tell you the internet is a dangerous place and hope you buy something. You know the risk exists. What you actually need is a specific list of what works against you today, what each item would cost you if used, what to do about it, and evidence afterwards that you did it.
So the claims on this page are deliberately narrow. The free scan checks what is visible from outside and says so. A review is one person’s informed opinion in one week. A test finds what a competent person could do within an agreed scope and an agreed window, which is not the same as what an unlimited attacker could do given a year. MedArc’s zero critical findings is a retest result on a defined scope in 2022.
Every one of those is a smaller claim than the industry norm, and each of them is one we can stand behind in front of your auditor. That trade has been worth making for ten years and we are not going to stop now.
Common questions
A test against one web application or one external perimeter starts at $15,000 and most land between $15,000 and $50,000. Price moves with the number of applications, the number of user roles, whether an API and a mobile client are in scope, and whether we test authenticated as well as unauthenticated. A one-off external security review, which is manual but does not exploit anything, is $5,000. If you want a number before a call, count your applications, your distinct user roles and whether payments are involved, and bring those three to the scoping call.
A scan looks for signatures and configuration, automatically, in seconds or minutes. It tells you that a header is missing, a library is out of date or a certificate is close to expiry. A penetration test is a person with written authorisation trying to chain those things into an actual compromise: log in as another customer, read a record you should not see, get a file to execute. A scan produces a list of possibilities; a test produces a list of things that genuinely worked, in order of what they would cost you. You need both, and they cost very different amounts because one is a machine and the other is several weeks of someone's attention.
An automated scan should run continuously or at least monthly, which is why our version of it is free. A manual review or penetration test is worth doing annually as a baseline, and again after any significant change: a new authentication system, a payment flow, a migration between clouds, a large third-party integration, or an acquisition that puts someone else's code inside your perimeter. PCI DSS requires at least annually and after significant change, and that is a sensible rhythm even if PCI does not apply to you. Testing a system that has not changed since the last test mostly buys you a document.
Yes, in writing, before anything starts. Accessing a computer system without authorisation is a criminal offence in the UK under the Computer Misuse Act 1990, and in the United States it carries exposure under the federal Computer Fraud and Abuse Act as well as several state computer crime statutes. Consent has to come from someone who can actually give it: the domain owner, and separately your hosting or cloud provider where their terms require notice. That is why our free scanner is passive and only reads what your server already sends to every visitor, and why our authorisation document is signed before the first request of a real test.
Yes. No account, no card, no drip sequence you cannot leave. It runs the passive checks, shows you what it found and what it could not check, and tells you plainly which findings need a human before they mean anything. We publish it because it is the honest top of our funnel: a good scan result is genuinely good news and you should not have to pay to hear it, and a bad one starts a conversation on facts rather than fear.
Testing itself is usually one to two weeks for a single web application, longer where there is an API, a mobile client and several user roles. Around that sit roughly a week of scoping and authorisation beforehand and a week of writing up afterwards, so three to four weeks from signature to report is typical. Retesting after you fix things takes two to three days and is included. If somebody quotes you a full penetration test finished in two days, what you are buying is a scan with a cover page.
It should not, and the rules of engagement are written to keep it that way. Destructive tests, denial of service and anything that mass-writes to your database are excluded by default and only ever added deliberately, in writing, against a staging environment. We agree a testing window, a rate limit and a named person on your side who can stop everything with one message. Availability incidents during a test are rare, and the way to keep them rare is to name the boundaries before starting rather than apologise afterwards.
Both are available and they are priced separately, because they are different jobs. Every test ends with a remediation plan written for the engineers who have to act on it, with the specific change, the file or the setting, and the order to do them in. If you would rather we did the work, we do: Eazetech has been building software since 2016, and the MedArc engagement was a twelve-week rebuild rather than a report. Teams with their own engineers usually take the plan and fix it themselves, and that is the cheaper outcome.
Yes, and it is included in the price of a test rather than sold as an extra. You get one retest window within ninety days of the report. We re-run every finding, mark each one fixed, partially fixed or unchanged, and issue a short retest letter you can send to a customer, an auditor or an insurer. MedArc's zero critical findings is a retest result, which is the only kind of result worth quoting.
No. A test is evidence you can put in front of an auditor, not a certificate. SOC 2 reports are issued by licensed CPA firms and ISO 27001 certificates by accredited certification bodies, and Eazetech is neither. What a test does is satisfy the technical vulnerability management expectations both frameworks carry, and produce a remediation trail that shows you acted on what you found. Anyone selling you a penetration test as compliance is selling you the wrong thing.
This is the part of the practice we are most confident about, because we build these systems as well as test them. The work covers prompt injection including the indirect kind that arrives inside retrieved documents, what actually leaves your tenancy on a model call and what the provider retains, whether an agent's tools are scoped to what it needs or to whatever credential was handy, whether model output is treated as untrusted input before it reaches a browser or a shell, and whether retrieval is properly scoped per tenant. Most of the serious findings we see in AI systems are permission design problems wearing a new hat.
No, and neither can anyone else. Nobody can make a system that people use and change every week permanently safe, and a supplier who tells you otherwise is either inexperienced or hoping you are. What a test honestly buys you is a shorter list of things that work against you today, a plan to close them, evidence that you closed them, and a clearer picture of which parts of your system would hurt most if they failed. That is a real improvement in risk, and it is a different claim from safety.
Related
Have you run the free scan yet?
It takes about ten seconds and costs nothing, and it is the right first step whether or not you ever talk to us. If it turns up something you want a human opinion on, Alex Novak, delivery director, replies within one business day.

