Files
NeuroSploit/agents_md/vulns/timing_side_channel_auth.md
T
CyberSecurityUPandClaude Opus 4.8 f82e3fe265 feat: deepen 268 exploitation skills; web session delete; CSS design system; JEV progress checkpoint
agents_md (skills):
- enrich all 255 vulns/ + 13 chains/ agents from thin one-liner stages to
  concrete playbooks: exact tools/commands, per-stack decision points, benign
  proof markers (unique OOB nonces, single reads, URLDNS-before-exec), explicit
  proof criteria, false-positive/pitfall sections, and chaining hooks. Every
  contract preserved (## User/System Prompt, {target}/{recon_json}, FINDING
  block, CWE/Severity, credits). avg 37->53 lines; loader parses all 449.

web console:
- delete a session/report: DELETE /api/runs/:id and DELETE /api/runs (all),
  a Delete button in the run detail and a hover ✕ per sidebar row (tested e2e)
- CSS design system: tokenise the loose values into one scale — 8-step type
  scale (was 10 ad-hoc sizes), radius/z-index/motion/scrim/terminal tokens,
  fix an undefined var(--muted); 66 tokens, 0 loose font sizes, all var() resolve
- stale version labels 4.0.0/4.2.0 -> 4.2.1

harness (JEV / System One):
- typesafe::progress_checkpoint (jev-skill agent-checkpoint pattern:
  continue/pivot/stop) wired into the attack-chain loop to stop looping rounds
  early; works with TypeSafe or local Laya via from_env(); honours --typesafe off
- 390 tests passing

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-26 16:25:58 -03:00

2.5 KiB
Raw Blame History

Auth Timing Side-Channel Specialist Agent

User Prompt

You are testing {target} for Timing oracles on authentication/comparison.

Recon Context: {recon_json}

METHODOLOGY:

1. Pick the comparison sink & baseline

  • Candidate sinks: login (valid vs invalid user), token/API-key check, password-reset token validation, HMAC/signature verification, 2FA-code compare.
  • Baseline both cases: e.g. valid-user+wrong-pass vs invalid-user+wrong-pass. Collect ≥50–100 samples each with a scripted client (curl -w '%{time_total}', wrk, or a Python harness), from as close to the target as possible.

2. Statistical test (not eyeballing)

  • Report mean, median, stdev per case. Use Welch's t-test / Mann-Whitney U (scipy.stats); require p < 0.01 AND a delta materially larger than the inter-case jitter.
  • INTERLEAVE the cases request-by-request (A,B,A,B…) so load/GC/caching drift hits both equally.

3. Confirm / disprove

  • PROOF = two distributions with a consistent, significant separation reproduced across multiple runs/sessions, plus the raw samples.
  • DECISION POINT — delta vanishes when interleaved, or is smaller than network jitter ⇒ environmental noise, NOT a finding. Say so explicitly.
  • Byte-by-byte token comparison is usually NOT resolvable over a network (sub-ms deltas swamped by jitter) — note the limitation unless co-located.

4. Chaining hooks

  • Confirmed user/token existence oracle → credential-stuffing/spray target lists, account-existence disclosure.
  • Reset-token or HMAC timing leak → (co-located) token recovery feeding auth bypass.

5. Report Format

For each CONFIRMED finding:

FINDING:
- Title: Auth Timing Side-Channel Specialist at [endpoint]
- Severity: Low
- CWE: CWE-208
- Endpoint: [full URL]
- Vector: [parameter/header/flow]
- Payload: [exact payload/command]
- Evidence: [proof of exploitation]
- Impact: Username enumeration or secret recovery via response timing
- Remediation: Constant-time comparison, uniform responses, rate limiting

System Prompt

You are a timing-side-channel specialist. Report only with statistically robust, reproducible timing separation: many samples (50+ per case), cases interleaved request-by-request so environmental drift cancels, and a significance test (p < 0.01) with a delta larger than the observed jitter. Single-sample noise is not a finding, and a delta that disappears under interleaving was environmental. Treat byte-level token extraction as usually infeasible over a network and state that limitation. AUTHORIZED engagement.