Existing software & audits

From audit finding to improvement: evidence, priority and retesting

Assess technical findings through evidence, business impact, uncertainty, dependencies and a verifiable follow-up assignment.

On this page

An audit report may contain many observations without producing a workable improvement agenda. A severity colour or technical term does not explain which action is needed today. The organisation needs to understand what was demonstrated, which information is missing and which decision belongs to each recommendation.

This guide turns findings into investigation, mitigation and retesting. Its examples are fictional rather than assessments of a specific codebase. Involve both a technical owner and somebody who understands the affected business journey and the consequences of interruption.

Read the observation before the proposed solution

Ask what the investigator observed or executed. A statement such as missing authorisation should identify the route, environment and version involved. Recommending replacement of the entire permission model is a separate step. Keep the observation distinct from the proposed solution.

Sometimes the evidence supports a narrower conclusion than the summary suggests. An untested export is different from a demonstrated unauthorised export. Conversely, a small code difference may have a substantial operational consequence. Request a concrete demonstration or an additional test where the meaning is unclear. This helps the organisation choose an appropriate response without dismissing the report.

Connect the finding to a business consequence

Identify which users, records or operations may be affected. Unclear status processing might create manual recovery work, while incorrect access selection has a different type of consequence. Avoid a general financial-loss claim without measurement or supported scenarios.

Ask which circumstances trigger the problem. Does it require an unusual combination of roles? Does it affect an old import or a daily route? This context may change the order of work. A technical owner can explain the mechanism, while the process owner assesses how much disruption or uncertainty the organisation can absorb. Severity then becomes an understood consequence rather than merely a label.

Turn missing information into a separate action

A hypothesis may be important enough to investigate quickly. That does not mean its possible damage has already been demonstrated. Record the missing information, how to obtain it and who will investigate. A bounded verification exercise may produce a much more focused remediation proposal.

Treat absent evidence of a control carefully too. A report finding no recovery-exercise record does not automatically prove recovery has never been attempted. Ask which records or demonstrations exist. If none are available, the organisation may still choose to run an exercise. The decision then addresses a concrete knowledge gap rather than relying on an overstated accusation.

Turn a selected remediation action into testable acceptance criteria: Accept custom software: assess complete tasks and agreed boundaries.

Separate temporary mitigation from permanent change

An initial measure might restrict a problematic function, add review or establish a clear contact. That measure is not automatically a permanent solution. State which consequence it reduces and what workload the temporary process creates for staff.

Specify when the measure will be reconsidered. A manual check left in place indefinitely can become an unreliable dependency itself. Explain which signals mean the temporary route is inadequate. Then define a targeted structural change with its own acceptance criteria. The report need not design every implementation detail, but it should show which decision requires a follow-up assignment.

Plan causes before dependent improvements

Several findings may share a cause. Unexplained errors and difficult recovery might both relate to the absence of a stable business reference. Ask the developer which issues are independent and which can sensibly be addressed only after a foundation is established.

Sequencing also prevents duplicate work. Clarifying a data rule may be more valuable than changing two screens that interpret it differently. Identify existing checks that should run again after a change. The agenda becomes more than disconnected tickets: the organisation can understand why one item enables the next step.

Turn a recommendation into a bounded assignment

An assignment should describe intended behaviour rather than only a technical activity. Replace improve logging with an assessable outcome: an operator can locate a rejected import record by reference and assess its cause without unnecessary personal-data access. That endpoint is understandable and can be tested later.

Specify the route, environment and exceptions included. State what remains unchanged as well. A targeted correction is not an implicit renewal of the whole application. Where uncertainty remains, commission an investigation that narrows implementation scope. This helps compare quotations by meaning rather than hours alone.

Agree the retest before remediation

Define how the original finding will be examined after implementation. Check both the unwanted behaviour and the legitimate user journey. Blocking a function for everyone may remove an exposure while preventing daily work. Usable behaviour therefore belongs in the retest.

Preserve the version, environment, sample data and outcome. A test set can support confidence within the examined cases, but cannot prove the absence of every defect. Show which neighbouring routes were revisited and which remained outside the retest. Google SRE discusses reliability testing as work towards evidence-based confidence; the concrete selection in your project must match the finding.

Google SRE: Testing for Reliability ↗

Use requirements frameworks with stated coverage

A report may connect security findings to requirements in a framework such as OWASP ASVS. This can make discussion and retesting more precise. Ask which requirements were actually assessed and which are background references. Mentioning the framework does not establish that the entire application satisfies every requirement.

Translate the requirement into the product: the relevant role, operation and record selection. A document containing only framework numbers is difficult for an owner funding the work to use. The technical owner should explain the behaviour examined and the evidence preserved after the check.

OWASP Application Security Verification Standard ↗

Example: three findings and two initial actions

Illustrative example: a report identifies an unclear export check, an ageing library and a recovery procedure a second person cannot execute. The organisation does not automatically select the first red label. It commissions bounded export verification and a rehearsed recovery path, while investigating the library’s support and actual dependency.

The outcome may produce three different assignments: correct a demonstrated defect, document an operation and prepare an update. Each needs its own evidence and acceptance. This is not a standard priority order for every report. It illustrates how different uncertainties lead to different actions rather than treating every finding as equivalent technical debt.

Preserve decisions and remaining limitations

Give each significant item a recognisable state: investigation required, mitigation active, remediation planned, retested or consciously accepted. State who may change that state and which evidence supports the change. A closed ticket without explanation offers little help to a future operator.

Reassess when the context changes, such as a new customer group, another integration or different data processing. A previously acceptable limitation may then matter again. The objective is not an endlessly growing report, but a retrievable reason for the chosen approach. This keeps the investigation useful when developers, suppliers or process owners change.

Turn the explanation into a project decision

Record your assumptions, unknowns and acceptance checks in the matching tool. Use the service guides to discuss delivery and scope.

Open the preparation tool ↗

Questions about this topic

Must every audit point be fixed immediately?

Not necessarily. Some need investigation, a temporary measure or a conscious decision. Use consequences and dependencies to determine order and preserve the reasoning.

Who determines priority?

Technical and business owners together. The developer explains mechanisms and options; the process owner assesses consequences, feasibility and interruption. Identify the final decision-maker.

What evidence is sufficient to close a finding?

It depends on the finding. Agree a concrete retest beforehand, including version and environment. Preserve what was not investigated and any consciously retained limitation.

Continue with a related question

Sources and technical background

Discuss your project with Ricardo ↗