SecureDragon
All articles
ReportsHow to choose3 min read

A report with 147 findings fixes nothing

You paid for the assessment, you got the PDF, and nothing changed. The problem is rarely your team. It is that the report was written to be complete, not to be acted on.

The scan runs, the PDF arrives, and it has 147 findings in it. Someone opens it, scrolls for a while, and asks the only question that matters: which of these actually matter?

Nobody answers. The file goes into a folder. Six months later the app has the same holes it had the day the report was written, plus whatever was added since.

This is so common that it is worth saying plainly: the problem is not that people are lazy about security. The problem is that a list of 147 items with no order to it is not a plan. It is a pile.

Half of it may not even be real

A scanner does not think. It fires thousands of requests at your app, watches what comes back, and flags anything that looks suspicious. Suspicious is not the same as true. A field that looks injectable and is not. An endpoint flagged as open that requires a token the scanner never had.

Part of any raw scan does not survive contact with someone who checks it. The catch is that you cannot tell which part by reading the list, because the false ones look exactly like the real ones. They have the same red badge and the same confident wording.

A finding nobody verified is a rumour with a severity score attached.

The score is not the priority

Most reports rank findings with CVSS, a number from zero to ten. It is a useful common language and it has one built-in limit: it scores the vulnerability on its own, with no idea where your app is or who can reach it.

A terrifying score on a service nobody can reach from the internet matters less than a middling score on your login page. The number describes the flaw. Priority depends on your app, and only someone looking at your app can put the two together. The categories behind those numbers are the ones in the OWASP Top 10, in plain English.

What a report that gets fixed looks like

  • It opens with what to do first, in order, and says why that order.
  • Every item says what an attacker gets out of it, in the language you would use to explain the loss to a customer.
  • Every item was checked by someone, so you are not spending your week proving the report to yourself.
  • Every item ends with the change, concrete enough to hand to whoever, or whatever, writes your code.

One question before you buy an assessment

Ask who verifies the findings before the report goes out, and ask what the fix instructions look like. If the answer is "the tool exports it", you are buying a pile, and the pile is the same price as the plan.

Why we built ours the way we did

SecureDragon runs the scan, throws away what does not hold up, writes what is left in plain language, and hands you the text to paste back into the tool you built the app in. That last step exists because of everything above: a fix you cannot apply is indistinguishable from a fix nobody offered. A finding like the database key written into the page takes two lines to explain and one paste to close, and that is the shape we aim for.

The first test is free, which is also the honest way to make this argument. Read the report and judge whether it tells you what to do first.

Is this happening in your app?

SecureDragon looks at your app from the outside, finds what is left open, explains it in plain English and hands you the text that fixes it. First test free, no card.

Test my app free