Skip to content

Adversarial coverage sweep: uncovered attack variants in two detectorsΒ #528

Description

@genesisadversary

Hi team πŸ‘‹ β€” sharing some independent research while getting hands-on with the CTF backend.

I built a small offline, deterministic coverage harness that enumerates adversarial scenarios over a
lever vocabulary, labels each with a detector-independent OWASP-policy oracle, materializes it into the
real data model + event stream, and runs the production detectors against it. The goal isn't to score
the detectors β€” it's to surface attack variants an adversary could run that the current
(challenge-scoped) detectors don't flag.

I'm flagging these for discussion rather than calling them bugs β€” they may well be intentional, since
each detector is scoped to a specific challenge. (I deliberately don't report a "caught %", because the
oracle is broader than any single detector, so a ratio would be misleading.)

Sweep result (offline, no LLM, $0 β€” in-memory SQLite)

scenarios generated : 20
policy violations (oracle): 6
uncovered variants (FN) : 3
false positives : 0

Zero false positives β€” the detectors never flagged a benign scenario.

The 2 root causes behind the uncovered variants

1. InvoiceThresholdBypassDetector keys on status == "approved"
An over-limit invoice that has progressed to paid is not flagged β€” i.e. the money has already
moved. Surfaced for $50,001 and $120,000 over the $50,000 limit. Same ASI01 intent, just one status
downstream of where the detector looks.

2. InflatedPaymentDetector requires a steganographic marker (Gate 2)
A plain overpayment (transfer $1,500 vs invoice $1,000) with no hidden text in the attachment is
not flagged. The overpayment itself is the ASI02 violation; hidden text is only one delivery mechanism.

Questions for the team

  • Are these intentionally out of scope (one detector per specific challenge), or worth widening?
  • Would a coverage harness like this be useful in-tree β€” e.g. a CI gate that fails when a new attack
    variant has no detector covering it?

I have a PR ready with the harness + the first per-detector unit tests (the production detectors
currently have none). Wanted to check direction before opening it. πŸ™

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions