Skip to main content

Module interrogator

Module interrogator 

Source
Expand description

Interrogator System - Progressive Challenge Escalation

Implements a multi-level challenge system for suspicious actors:

  1. Cookie Challenge - Silent tracking cookie
  2. JS PoW Challenge - Proof-of-work computation
  3. CAPTCHA Challenge - Human verification (stub)
  4. Tarpit - Progressive delays (already implemented)
  5. Block - Hard block with custom page

§Architecture

The system uses a progressive escalation model where each failed challenge or continued suspicious behavior moves the actor to a harder challenge level. The ProgressionManager orchestrates the challenge selection based on actor history and current risk score.

+----------+     +-------------+     +---------+     +--------+     +-------+
| Cookie   | --> | JS PoW      | --> | CAPTCHA | --> | Tarpit | --> | Block |
| (silent) |     | (compute)   |     | (human) |     | (slow) |     | (hard)|
+----------+     +-------------+     +---------+     +--------+     +-------+
    Level 1         Level 2          Level 3        Level 4       Level 5

§Feature Flags

  • ENABLE_COOKIE_CHALLENGE=true: Enable cookie tracking
  • ENABLE_JS_CHALLENGE=true: Enable JavaScript PoW challenges
  • ENABLE_CAPTCHA=false: CAPTCHA is stubbed (future work)
  • ENABLE_TARPIT=true: Enable progressive delays

§Dual-Running Mode

Headers injected for observability:

  • X-Challenge-Level: Current challenge level for actor
  • X-Challenge-Type: Type of challenge issued (cookie/js/captcha/tarpit/block)

Re-exports§

pub use captcha_manager::CaptchaChallenge;
pub use captcha_manager::CaptchaConfig;
pub use captcha_manager::CaptchaManager;
pub use captcha_manager::CaptchaStats;
pub use cookie_manager::CookieChallenge;
pub use cookie_manager::CookieConfig;
pub use cookie_manager::CookieError;
pub use cookie_manager::CookieManager;
pub use cookie_manager::CookieStats;
pub use injection_tracker::HeadlessIndicators;
pub use injection_tracker::InjectionRecord;
pub use injection_tracker::InjectionSummary;
pub use injection_tracker::InjectionTracker;
pub use injection_tracker::InjectionTrackerConfig;
pub use injection_tracker::InjectionTrackerStats;
pub use js_challenge_manager::JsChallenge;
pub use js_challenge_manager::JsChallengeConfig;
pub use js_challenge_manager::JsChallengeManager;
pub use js_challenge_manager::JsChallengeStats;
pub use progression_manager::ActorChallengeState;
pub use progression_manager::ChallengeLevel;
pub use progression_manager::ProgressionConfig;
pub use progression_manager::ProgressionManager;
pub use progression_manager::ProgressionStats;
pub use progression_manager::ProgressionStatsSnapshot;

Modules§

captcha_manager
CAPTCHA Challenge Manager
cookie_manager
Cookie Challenge Manager
injection_tracker
Injection Tracker - Headless Browser Detection
js_challenge_manager
JavaScript Proof-of-Work Challenge Manager
progression_manager
Progression Manager - Challenge Escalation Orchestrator

Enums§

ChallengeResponse
Response to present to the actor
ValidationResult
Result of validating a challenge response

Traits§

Interrogator
Trait for challenge implementations