Expand description
Interrogator System - Progressive Challenge Escalation
Implements a multi-level challenge system for suspicious actors:
- Cookie Challenge - Silent tracking cookie
- JS PoW Challenge - Proof-of-work computation
- CAPTCHA Challenge - Human verification (stub)
- Tarpit - Progressive delays (already implemented)
- 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 trackingENABLE_JS_CHALLENGE=true: Enable JavaScript PoW challengesENABLE_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 actorX-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§
- Challenge
Response - Response to present to the actor
- Validation
Result - Result of validating a challenge response
Traits§
- Interrogator
- Trait for challenge implementations