Skip to content

Reading the Application Security screens

Both screens pack a lot into each row, and most of it is unlabelled — the chips, dots and bars all carry meaning that is not written on screen. This page names every element and says what it is telling you.

The audit list, row by row

The AppSec audit list, with every element of a row labelled

One row of the audit list carries six separate pieces of state.

1 status filter chips · 2 what each audit records · 3 page size

The status chips above the table

All, Saved, Scheduled, In Progress, Under Review, Completed, and more behind More…. Each carries a count, and the counts are of all audits matching your other filters — not of the page you are looking at.

Clicking one filters the list. All clears the status filter but leaves the other filters in place, which is why the count sometimes does not match what you expect: Reset Filters is what clears everything.

The severity legend and the row border

Severity: Critical · High · Medium · Low · Info followed by Row border = risk.

The coloured bar down the left edge of each row is the audit's highest open severity. It is the fastest way to scan the list — a red edge means at least one Critical is open in that audit, regardless of what the counts column shows.

Request Info

Who requested the audit, the date, and the request ID. The ID is what to quote in a support ticket: it identifies the audit unambiguously where names repeat.

Audit Details

The audit name, then the asset it runs against with its type badge (Web, Mobile, Thick Client, API). One application can have many audits; the audit name is what distinguishes them, so a naming convention pays off here.

Vulnerabilities

Three separate things in one column:

Element Meaning
Count badge Open findings in this audit. The arrow opens the finding list
Coloured dots Which severities are present — one dot per severity that has at least one open finding
Number and bar The audit's risk score, 0–100, coloured along a green-to-red ramp

The dots answer "how bad", the number answers "how bad overall". An audit with 31 findings and a score of 67 has more, milder findings than one with 8 findings and a score of 90.

Audit Properties

The chips that generate the most questions. Each is a separate property:

Chip What it means
Initial / Confirmatory Whether this is the first assessment or a re-test verifying earlier fixes
DAST / SAST / Manual The kind of testing — dynamic, static, or hand-performed
Quarterly / Annual / … The audit cycle it belongs to
Application / Module / URL The bifurcation: whether the app was assessed whole or split into parts
Considered — Yes/No Whether this audit counts towards aggregate figures
Scope — … What was in scope for this particular run

Considered is the one that surprises people

An audit marked Considered — No is fully visible here, with all its findings, and is excluded from dashboards, posture counts and reports.

That is deliberate: a superseded audit, a trial run, or an assessment of a decommissioned environment should not move the organisation's numbers. But it means "the dashboard does not match the audit list" is expected behaviour for those audits, not a defect.

Only an audit in a final state can be considered, and the date it reached that state is what aggregate views use as its date.

Audit Status

A dropdown, not a label — the status can be changed from here where your role permits it. Which statuses you can move to depends on the current one: the list offers only the legal next steps, so an option missing from the dropdown means that transition is not allowed from where the audit currently is, not that it is broken.

Some transitions require a comment; the product will ask.

Actions

The per-row menu. What appears depends on the audit's status and your permissions, which is why two people looking at the same row see different options. Typical entries are managing the audit's scope, assigning an auditor, editing the audit, and downloading its report.

An action that is absent is almost always a permission or a status question rather than a fault — check the audit's state first.

Bulk Approve Audit Status

Acts on the rows selected by the checkboxes. Useful after a large import when many audits need the same status change, and the reason the checkbox column exists.

The vulnerability list

The AppSec vulnerability list

Findings within an audit. This is where an analyst spends most of the day.

1 filter by severity · 2 finding, asset and status · 3 paging

This is reached by drilling into an audit — the count badge in the Vulnerabilities column above. It always shows findings within a scope, so a finding you expect to see and cannot is often in a different audit rather than missing.

Two status columns, not one

The column people read as "status" is actually two:

  • Validation status — is this finding genuine and agreed? There are exactly five: Saved, Submitted, Approved, Closed, False Positive.
  • Client status — what is being done about it? Fourteen values: New, To be patched, Patch in progress, Patched, Not Patched, On hold, Reopen, Validated, Not Applicable, Risk accepted, Risk acceptance, Duplicate, Exception Handled, Expired.

Only Validated and Exception Handled count as closed. Everything else — including Patched and Risk accepted — is still an open finding as far as every count in the product is concerned, which is why a list that looks resolved can report every row as open.

Both are dropdowns offering only the legal next steps. They move independently, and the distinction matters more than anything else on the screen — see the two status fields.

The remaining columns

Column Notes
Issue / track ID Quote this in tickets; it survives re-scans
Title The finding, usually with its category and OWASP mapping
Severity Derived from the score, so it changes if the score mapping is edited
CVSS / risk score The raw score, and NxSAM's contextual score
Asset Which application, and the affected URL where the tool reported one
Discovered on Last seen, not first — a re-scan updates it
SLA expiry Read the SLA from here, not by counting days from discovery
Tool Which scanner reported it. The same weakness from two tools should be one finding; if it is two, check the vulnerability master mapping

Discovered today and overdue at the same time

Not a contradiction. A re-opened finding gets a new discovery date but keeps its original SLA expiry. The expiry column is authoritative.

Discovered On is blank until the finding is approved

The date is gated on validation status. A finding still Saved or Submitted shows an empty Discovered On cell — visible in the screenshot above on rows 3 and 5, which are the two rows not yet approved.

This is deliberate rather than missing data: before approval the finding is not counted anywhere, so it has no agreed discovery date to show. It appears the moment the finding is approved, and the SLA clock starts from it.