|
| 1 | +--- |
| 2 | +title: Anti-Detect Automation Detection v2 |
| 3 | +--- |
| 4 | + |
| 5 | +# Anti-Detect Automation Detection v2 (Active after 2026 February 14 14:00 UTC) |
| 6 | + |
| 7 | +## Overview |
| 8 | + |
| 9 | +**ADA Detection v2** focuses on advanced behavioral detection inside **NSTBrowser** environments. This version introduces hardened detection requirements where static signals are masked and engine-level obfuscation is active. |
| 10 | + |
| 11 | +### Browser Hardening Features |
| 12 | + |
| 13 | +- **Dynamic Fingerprinting**: Every session generates unique, randomized browser identifiers to prevent static pattern matching. |
| 14 | +- **Hardware Simulation**: Realistic signals are injected for `deviceMemory` (8GB), `hardwareConcurrency` (16), and screen resolution (1280x1024). |
| 15 | +- **Engine-Level Stealth**: Disables `AutomationControlled` flags at the browser engine level, eliminating traditional automation leaks. |
| 16 | + |
| 17 | +Scoring has transitioned to a **Fail-Fast** model, emphasizing accuracy across three critical pillars: Human Detection, Framework Detection (with a Selenium Safety Gate), and Protocol Accuracy. |
| 18 | + |
| 19 | +For general challenge information, environment details, and plagiarism policies, please refer to the [AAD README](./README.md). |
| 20 | + |
| 21 | +--- |
| 22 | + |
| 23 | +## Target Frameworks & Protocols |
| 24 | + |
| 25 | +Participants must submit detection scripts for the following frameworks and protocols: |
| 26 | + |
| 27 | +- **Frameworks**: `nodriver`, `playwright`, `patchright`, `puppeteer`, `puppeteer_extra`, `zendriver`, `selenium_driverless`, `seleniumbase` |
| 28 | +- **Protocols**: `webdriver`, `websocket` |
| 29 | + |
| 30 | +Missing any of these scripts results in an invalid submission. |
| 31 | + |
| 32 | +### Selenium Safety Gate |
| 33 | + |
| 34 | +Missing detection for either `seleniumbase` or `selenium_driverless` results in an immediate **final score of 0.0**. These frameworks are the primary automation vectors in v2; failure to detect them indicates a fundamental gap in the detection logic. |
| 35 | + |
| 36 | +--- |
| 37 | + |
| 38 | +## Submission Format |
| 39 | + |
| 40 | +Submissions must follow this structure: |
| 41 | + |
| 42 | +```json |
| 43 | +{ |
| 44 | + "detection_files": [ |
| 45 | + { "file_name": "nodriver.js", "content": "/* logic */" }, |
| 46 | + { "file_name": "playwright.js", "content": "/* logic */" }, |
| 47 | + { "file_name": "patchright.js", "content": "/* logic */" }, |
| 48 | + { "file_name": "puppeteer.js", "content": "/* logic */" }, |
| 49 | + { "file_name": "puppeteer_extra.js", "content": "/* logic */" }, |
| 50 | + { "file_name": "zendriver.js", "content": "/* logic */" }, |
| 51 | + { "file_name": "selenium_driverless.js", "content": "/* logic */" }, |
| 52 | + { "file_name": "seleniumbase.js", "content": "/* logic */" }, |
| 53 | + { "file_name": "webdriver.js", "content": "/* logic */" }, |
| 54 | + { "file_name": "websocket.js", "content": "/* logic */" } |
| 55 | + ] |
| 56 | +} |
| 57 | +``` |
| 58 | + |
| 59 | +### Rules |
| 60 | + |
| 61 | +- File names must match the framework/protocol names exactly. |
| 62 | +- Each file detects **only its own framework or protocol**. |
| 63 | +- No extra files or outputs are allowed. |
| 64 | + |
| 65 | +--- |
| 66 | + |
| 67 | +## Scoring System: The Three Pillars |
| 68 | + |
| 69 | +ADA v2 uses a **Fail-Fast** scoring model. If a submission fails any of the three critical pillars, the final score is immediately set to **0.0**. |
| 70 | + |
| 71 | +### 1. Human Detection |
| 72 | + |
| 73 | +Miners must distinguish between automated tasks and human-injected sessions. |
| 74 | + |
| 75 | +- **Limit**: You are allowed a maximum of **1 mistake**. Exceeding this limit results in an immediate **score of 0.0**. |
| 76 | +- **Weight**: Perfect detection grants 1.0 point for this pillar. Partial penalties apply for a single miss based on the ratio of human injections. |
| 77 | + |
| 78 | +### 2. Framework Detection |
| 79 | + |
| 80 | +Points are earned for correctly identifying the specific automation framework. |
| 81 | + |
| 82 | +- **Selenium Gate**: Missing `seleniumbase` or `selenium_driverless` zeros the entire score. |
| 83 | +- **Density**: You earn **1.0 point** for a framework only if you detect it perfectly in **all 3 of its runs**. |
| 84 | +- **Collision**: Reporting more than one framework or an incorrect protocol for a given session results in a collision penalty (earning only 0.1 points instead of 1.0). |
| 85 | + |
| 86 | +### 3. Protocol Accuracy |
| 87 | + |
| 88 | +Validates the low-level communication patterns of the browser. |
| 89 | + |
| 90 | +- **Webdriver Protocol**: Expected to be `true` for Selenium-based frameworks and `false` for others (human, playwright, etc.). |
| 91 | +- **Websocket Protocol**: Expected to be `true` for non-Selenium frameworks (playwright, puppeteer, etc.) and `false` for human sessions and Selenium. |
| 92 | +- **Threshold**: You are allowed a maximum of **1 miss** per protocol type. Exceeding this limit results in an immediate **score of 0.0**. |
| 93 | + |
| 94 | +### Final Formula |
| 95 | + |
| 96 | +The final score is normalized between 0.0 and 1.0 using the formula: |
| 97 | + |
| 98 | +```math |
| 99 | +Final Score = (Human Score + Framework Score + Protocol Score) / 10 |
| 100 | +``` |
| 101 | + |
| 102 | +__(Where 10 = 8 frameworks + 1 human pillar + 1 protocol pillar)__ |
| 103 | + |
| 104 | +--- |
| 105 | + |
| 106 | +## Incentive Eligibility |
| 107 | + |
| 108 | +To maintain high detection standards, a minimum performance threshold is required for incentives: |
| 109 | + |
| 110 | +- **Minimum Score**: **0.6** |
| 111 | +- This threshold ensures that miners identify the main automation vectors (Selenium) and maintain high human safety while allowing for minor misses in other categories. |
| 112 | + |
| 113 | +--- |
| 114 | + |
| 115 | +## Similarity & Time Decay |
| 116 | + |
| 117 | +- **Similarity check:** Submissions are compared against other SDKs; high similarity incurs penalties. |
| 118 | +- **Score decay:** Scores decay over 15 days to incentivize refreshed heuristics. |
| 119 | + |
| 120 | +### Example |
| 121 | + |
| 122 | +Assume: |
| 123 | + |
| 124 | +- 8 frameworks total |
| 125 | +- Perfect human accuracy → 1.0 |
| 126 | +- Perfect protocol accuracy → 1.0 |
| 127 | +- 6 frameworks detected perfectly → 6.0 points |
| 128 | + |
| 129 | +```math |
| 130 | +Final Score = (1.0 + 1.0 + 6.0) / 10 |
| 131 | + = 8.0 / 10 |
| 132 | + = 0.8 |
| 133 | +``` |
| 134 | + |
| 135 | +Any excessive human misclassification, protocol misses, or missing Selenium detection would reduce this to **0.0**. |
| 136 | + |
| 137 | +--- |
| 138 | + |
| 139 | +## Submission Guide |
| 140 | + |
| 141 | +To build and submit your solution, please follow the [Building a Submission Commit](../../miner/workflow/3.build-and-publish.md) guide. |
| 142 | + |
| 143 | +## Submission Templates |
| 144 | + |
| 145 | +Templates and building instructions can be found in the [ADA Detection repository](https://github.com/RedTeamSubnet/ada-detection-challenge/tree/main/templates/commit). |
0 commit comments