Skip to content

Workflow evaluation

A detection update should not change who can see the event.

A rule can detect the right activity while its event reaches the wrong tenant. Trace both detection and ownership through one shared processing change before approving the release.

6 minute read By Zof Updated October 26, 2026

This guide presents an evaluation method, not a report of a completed customer engagement.

Workflow
An event moving through ingestion, detection and retrieval
Change
A shared routing or message schema update
Constraint
Synthetic tenants and fixtures with defined permissions
Decision
Whether detection and isolation both hold in scope

The updated rule recognizes the event. The expected alert appears. A release check focused on detection would pass. But if the event carries the wrong tenant context into storage, the same successful detection can become a disclosure to another customer.

Follow a synthetic event through a security platform with two test tenants. Evaluate detection correctness and authorization separately at each relevant boundary, then connect their evidence to the same release decision.

Define detection and access as separate conditions

Assume Tenant A and Tenant B have separate analyst accounts. A declared fixture should trigger one specified detection for Tenant A. A benign fixture should not trigger that detection. Neither fixture contains production telemetry, personal information or live credentials.

The access rule is independent: an analyst may retrieve only the records owned by their tenant and permitted by their role. A correct detection cannot excuse a wrong owner, and a blocked unauthorized request cannot excuse a missing alert. The release decision needs both conditions to hold.

Follow ownership beyond the first authenticated request

For this evaluation, ingestion establishes tenant context from the authenticated source. The event then crosses a queue, a detection worker and a record store before an analyst retrieves it. A message schema change removes the tenant field expected by one consumer. A fallback value could then assign the record incorrectly while leaving its detection content intact.

A test that begins at the rule engine and ends at an alert count would miss that ownership failure. Follow the record through storage and retrieval to inspect the complete access decision.

Follow the workflow

Preserve tenant context through the detection path

  1. 01

    Authenticated ingestion

    Establish the event owner

    Accept Tenant A's synthetic event under its test identity. Derive the permitted tenant context from that identity rather than trusting an arbitrary payload claim.

  2. 02

    Queue and consumer

    Carry context across the schema

    Inspect the serialized message and consumer version. Missing or conflicting tenant context follows an explicit rejection rule, not an unrelated tenant default.

  3. 03

    Detection worker

    Check the declared behavior

    Compare the event with the agreed fixture expectation. Record the rule version, detection decision and tenant context together.

  4. 04

    Storage and retrieval

    Preserve ownership and enforce access

    Inspect the stored owner, then query the record as Tenant A and Tenant B. Apply the specified permissions at each exposed surface.

  5. 05

    Security reviewer

    Approve the scoped release decision

    Review detection assertions, access results and uncovered paths. Any proposed correction needs approval and verification with the original fixture.

Trace one test record through the expected detection and the separately defined ownership and access rules at every in scope boundary.

Connect the changed component to the exposed record

For this evaluation, the System Graph would connect the changed message schema to its consumers, storage and retrieval paths. The engineering owner confirms the map, including any export or search surface in scope. A missing path is an explicit coverage limitation.

The Verification Engine would run the approved event fixtures and access assertions against that scope. Product security verification supplies the relevant evaluation context. The team agrees supported interfaces, test identities and execution permissions before runs begin; the scenario assumes no access to production tenant data.

Verify access where the record is actually returned

OWASP authorization guidance recommends denying access by default and validating permission on every request. Hiding an alert in the interface is insufficient if its API or export still returns it to an unauthorized account.

Use the known test record with both tenant identities and the agreed roles. OWASP's object reference testing method supports testing access to records owned by different users. Keep these checks inside the authorized test environment and inspect the returned content, not merely the HTTP status.

An evaluation you can inspect

Detection and isolation are separate assertions

Acceptance checks for two test tenants and a declared fixture corpus. Each row names the expected behavior and the observations needed to establish it.

Detection and isolation are separate assertions. Checks and acceptance criteria.
CaseRequired behaviorEvidence to inspect
Tenant A submits the detection fixtureProduce the specified detection with Tenant A as owner.Fixture expectation, rule version, event trace and stored tenant.
Tenant A submits the benign fixturePreserve tenant context without producing the specified detection.Benign fixture definition and recorded processing decision.
Tenant B requests Tenant A's recordReturn no protected record content through the in scope access surfaces.Identity, requested record, authorization decision and response content.
A consumer receives missing tenant contextApply the defined rejection or quarantine rule; never assign a default tenant.Serialized message, consumer decision and resulting storage state.
An approved fix is appliedClose the reproduced failure while retaining permitted access and expected detection.Original failing assertion plus repeated valid and forbidden cases.

On a small screen, scroll the matrix to compare all columns.

Download the evaluation worksheet

Failure condition to test

Failure condition: the alert is correct but its owner is wrong

Condition to exercise
Remove tenant context at the schema boundary. Check whether the consumer assigns a default owner and allows a Tenant B analyst to retrieve the resulting record.
Required behavior
The record retains Tenant A ownership through processing. Missing context follows the agreed rejection rule, and Tenant B receives no protected content.
Evidence to collect
  • The authenticated source identity and event before serialization.
  • The changed message, consumer version and stored owner.
  • Retrieval responses under both tenant identities, with authorization decisions.
Release decision
Keep the release open for this path. Review the context handling and access controls, then repeat the detection corpus and tenant matrix after an approved correction.

Carry the original failure into the remediation review

If a run exposes incorrect tenant ownership, preserve the fixture, schema revision, event trace and access result. Distinguish a consumer assigning the wrong owner from a retrieval service ignoring the correct owner. Those failures can look similar in a screenshot but require different changes.

Governed remediation keeps a proposed change subject to authorized review. After an approved fix, repeat the original failing case and its neighboring valid cases. Verify that the intended tenant can still use the record, that unauthorized access is denied and that expected detection behavior remains intact.

Make a scoped statement a reviewer can defend

A useful release statement identifies the tested event corpus, tenant and role combinations, access surfaces and software versions. It includes the passing and failing assertions, evidence locations and unresolved exceptions. The reviewer should be able to trace each conclusion to a particular observation.

Passing these cases does not establish universal threat coverage or isolation across every platform feature. Untested exports, roles or background jobs remain outside the conclusion. For a security software team, the practical outcome is a precise release decision and reproducible evidence, not an unsupported claim that every threat or boundary has been covered.

Before you scope the work

Does the evaluation need production telemetry?

The evaluation uses declared synthetic fixtures. The engineering owner defines expected detections and benign examples. Production data is unnecessary for these assertions and remains outside the approved setup.

Which access paths should be included?

Start with the interfaces affected by the change, then inspect their reachable search, retrieval and export paths. Name excluded surfaces explicitly so the result cannot be mistaken for a platform wide guarantee.

What if an administrator can access both tenants?

Represent that role separately with its actual approved permissions. The forbidden access assertion uses an identity that the policy excludes, not an administrator whose access is intentionally broader.

How do we know a fix has not broken detection?

Repeat the declared detection and benign fixtures alongside the isolation checks. Record any changed expectation as a reviewed policy change, rather than adjusting a test merely to obtain a pass.

The event must be correct and belong to the right tenant

A detection result is only part of the release evidence. Trace ownership through processing and test access at the surfaces that return the record.

Sources and scope

These primary references explain the mechanisms and review practices used in this evaluation.

  1. Authorization Cheat Sheet · OWASP

    Guidance for default denial, permission checks and authorization testing at the boundary that returns protected content.

  2. Testing for Insecure Direct Object References, version 4.2 · OWASP Web Security Testing Guide

    A method for evaluating access to records owned by different test users, adapted here to tenant access within an authorized scope.

Your workflow. Your evidence.

Evaluate one detection release and its tenant boundaries

Bring the changed path, approved synthetic fixtures and a security engineering owner. A paid Reliability Sprint scopes one system, typically over seven days, with access, acceptance criteria and price agreed before testing.

Book a Reliability Sprint

A paid engagement for one critical system. Scope and price are agreed first. Seven days is typical; access and deployment requirements can extend the timeline.

Continue the investigation

Digital identity and trust services

A certificate is revoked. What does the relying party see?

Follow another trust boundary where a correct upstream decision can reach a consumer incorrectly.

Audit, tax, and advisory software

Does an approved client workflow stay approved when its inputs change?

Compare how client ownership and approval remain attached to a changing artifact.

01Zof Console

One surface for posture, operations, and what needs attention next.

The authenticated home that engineering, QA, and SRE teams open every day: quality posture, in-flight runs, coverage by module, and what needs attention next.

OPERATIONAL KPIs

  • Runs
  • Coverage
  • Risk

Live across every environment you ship to.

WORK SPINE

  • Specs
  • Tests
  • Schedules

From specification to scheduled regression.

GUARDRAILS

  • RBAC
  • SSO
  • audit

Every action attributable to a named human.

LIVE/console
Zof home command center showing 12 runs at 94% pass, 3 open critical issues, 84% coverage, four module traceability bars, the specification pipeline, upcoming schedules, and recommended next actions with an active-runs sidebar.
Example console home · Checkout Service · Staging.