# Серія релізу StyloBot: Застосування, Невизначність

> ## Проект
> 
> Це проект релізу StyloBot Series. СтруктураМSK1 прикладиM SK2 і назва може змінюватися до кінцевого випуску

> **Серія випуску StyloBot**
> 
> 1. **Подібність, Не ідентичність** - чому StyloBot моделює клієнтів поведінково
> 2. [**Подібність-Усвідомлення ASP.NET UI**](/blog/behaviour-aware-ux) - сервер - віддав поверхню над результатом виявлення
> 3. **Подібність-Усвідомлення інтерфейсу Java** - клієнта - поверхня збоку та реальний МSK2 пристосування до часу

# Введение

Більшість роботів все ще базуються на твердженнях щодо ідентичності.

Це працює аж доки боти не стануть хорошими.

Автоматизація моментально починає крутитись ідентичностями, імітуючи браузериM SK1 розповсюджуючися по домашнім IP-адресам , та адаптуючись в- sesjiMSC4 Mska5 хто робить це твердження, що є цим запитомMske6 припиняє бути правильним питаннямMске7 Полезнішим питанням єMСК8 | МСК9 як цей клієнт поводиться з часомM СК10

Це і є ідея, що лежить в основі StyloBot. Моделі вимагають сеансів , МSK2 і повторюють клієнти як поведінкові форми, а не статичні ідентичності M SK3 Цей пост - перший запис у релізній серії, і пояснює, що модель MSC4 чому вона існує , Чому вона важливаМSK6 та чому поведінка є кращим фундаментом, ніж ідентичність, коли боти стають розумними MST7

<!--category-- ASP.NET, Bot Detection, Security, Architecture -->
<datetime class="hidden">2026-05-01T10:30</datetime>

# Швидкий старт

StyloBot БЕСПЛАТНО AVAILABLE для запуску . "." В майбутньому я МСК1 продаю управління і звіти в реальному часі , МСК2 , щоб спробувати, і ви знаєте СМСК3 , їсти ІМСК4 , але двигун у exe - СтилоBot , іМСК5 Коммерційна лише додає розподіленій топології . *в реальному часі* Конфигурація (не перезавантаженняM SK1 і більше опцій для базового забезпечення.

Все джерело тут https://github.comMSC2scottgalM SK3stylobot

Щоб його заinstalувати:
**macOS (Homebrew)**

```bash
brew install scottgal/stylobot/stylobot
stylobot 5080 http://localhost:3000
```

**Linux (apt - Debian/UbuntuM SK3**

```bash
curl -1sLf 'https://dl.cloudsmith.io/public/mostlylucid/stylobot/setup.deb.sh' | sudo bash
sudo apt update && sudo apt install stylobot
stylobot 5080 http://localhost:3000
```

**Linux (манюал / ARMM SK2**

```bash
# Download from GitHub Releases: stylobot-linux-x64.tar.gz or stylobot-linux-arm64.tar.gz
tar xzf stylobot-linux-x64.tar.gz && chmod +x stylobot && sudo mv stylobot /usr/local/bin/
stylobot 5080 http://localhost:3000
```

**Докер**

```bash
docker run --rm -p 8080:8080 -e DEFAULT_UPSTREAM=http://host.docker.internal:3000 \
  scottgal/stylobot-gateway:latest
```

**NuGet ( вбудований як ASPM SK1NET Core middleware)**

```bash
dotnet add package mostlylucid.botdetection
dotnet add package mostlylucid.botdetection.ui
```

```csharp
builder.Services.AddStyloBot(dashboard => {
    dashboard.AllowUnauthenticatedAccess = true; // dev only
});

app.UseRouting();
app.UseStyloBot();   // broadcast, detection, dashboard: correct ordering guaranteed
app.MapControllers();
```

Панель на `/_stylobot`. Діагностика на `~150µs` за запит з першого запиту.

<!-- IMAGE PLACEHOLDER: StyloBot dashboard landing screenshot. Source: screenshot of /_stylobot on a live install (the one with the live request feed + verdict colours). -->
![Обзор панелі управления StyloBot](img-placeholder-dashboard.png)

---


Тоді просто запустіть його. `stylobot 5080 http://localhost:3000` і ви бачите, що ваш сайт *слухати* (застосувати --моду блокування, щоб блокувати також

Цей пост - перший елемент в поточній релізній серії StyloBot. Він пояснює поведінкову модель [Подібність-Усвідомлення ASP.NET UI](/blog/behaviour-aware-ux), показує, як ця модель стає логікою застосування всередині дисплеїв та контроллерів Razor

[TOC]

# Загроза - це не популяція.

Перед тим, як ми подивимось на те, що мають защитники, погляньмо, що вони захищають від них.

<!-- IMAGE PLACEHOLDER: Bot sophistication ladder visualisation, 5 rungs from "curl scripts" up to "LLM-directed adaptive". Source: AI-generated diagram (cleanest if you ask for "5 stylised silhouettes ascending steps, each more humanoid, sci-fi engineering blueprint style"). -->
![Верхня шкала](img-placeholder-bot-ladder.png)

---


### 1. Думки МSK1 шумні Bots

(curlM SK1 сканери , жорстока сила МSK3 неправильні шляхи )

* **Не вдалось2BanM SK1** працює добре
* **WAF:** працює добре
* **Менеджмент робота:** банальна
* **Оцінки, що обмежені** працює добре

**Точка невдачі:** нічого МСК0 , все ловить це .

Скрипки, які існують з самого початку вебу (perl FTWM SK1 ' перейти на сайт МSK3 відрізати контент МSK4 Швидший спосіб ідентифікувати мSK5 єдиний кінцевий пункт M, той самий IP МСК7 той же UA МКК8

---


### 2. Базові skriptовані боти

( обертання UAМSK1 важливі кінцеві точкиM SK2 просте стирання)

* **Не вдалось2BanM SK1** починає невдатися
* **WAF:** все ще дієвий
* **Менеджмент робота:** ефективно
* **Оцінки, що обмежені** залежить від налаштування

**Точка невдачі:** системи, що базуються на очевидних помилках.

важче. Тепер вам потрібно визначити відомі шаблони і потім обробити рух

---


### 3. Роботи-браузери без голови

(Puppeteer /Playwright, Execution JSM SK3 real flowsMSC4

* **Не вдалось2BanM SK1** неефективний
* **WAF:** обмежений
* **Менеджмент робота:** первинний шар
* **Оцінки, що обмежені** ослаблення

**Точка невдачі:** будь-що, що базується на правильності запиту або підписах.

Легко тільки тому, що вони часто використовуються легітимно.

---


### 4. Роботи з секретом

(приблизне обертання ,屋кові IPM SK2 підробка відбитків пальців)

* **Не вдалось2BanM SK1** неефективний
* **WAF:** практично неефективним
* **Менеджмент робота:** починає боротися
* **Оцінки, що обмежені** неефективний, якщо розподілений

**Точка невдачі:**

* Репутація IP
* статичні відбитки пальців
* контроль, що базується на

Це місце, де false positives виростають. Натисніть сильніше і ваші звичайні идентификатори відпадають *ви повинні визначити одного і того ж клієнта через хибну особистість*.

---


### 5. Адаптивні Botи

(повільнийM SK1 розповсюджений , поведінка навчання на місці МSK3 динамічно пристосовуватися

* **Не вдалось2BanM SK1** неважливе
* **WAF:** неефективний
* **Менеджмент робота:** неоднозначна
* **Оцінки, що обмежені** неефективний

**Точка невдачі:**

* будь-що, що передбачає повторюваність
* будь-що, що передбачає відомі візерунки
* будь-що, припустимо, що поведінка "botM SK1подобна МSK2

Ці боти поводяться так: "правильно" і еволюціонують . LLM пристосовуються до стандартних спроб блокування

Ось на що спрямований StyloBot .

---


Ми, МСК0, перейшли через час і піднімались сходом, МSK1, від простої індивідуальності, (, блокування IP,) до необхідності розуміти величезні об 'єми трафику та журнальних файлів **Щоб захиститися від Шкраперів штучного інтелекту на рівні 5, вам потрібні Шкрепери для розпізнавання і захисту штуcznego інтелекту**

# Defenders , ":" - теперішній ринок

Маючи на увазі драбину, ось тут, МСК0, МSK1, яку приносять охоронці комплекту. МСК2. Зверніть увагу, що кожна опція відрегулювалася десь між рівнями МСК3 та 3.

<!-- IMAGE PLACEHOLDER: Heatmap, rows = the 9 market categories below, columns = bot levels 1-5, cells coloured green→red as effectiveness drops. Source: hand-drawn in something like Excalidraw / Figma; this should be a YOU diagram, not AI, since the calls are subjective. -->
![Ефективність захисту проти рівня робота](img-placeholder-defender-heatmap.png)

---


### 1. Невдачі 2Завказ МSK2 журналM SK3завказ на основі

* **Mode:** Далі: (реактивнаM SK1
* **Тривалість:** секунд → хвилин
* **Вартість:** дуже низький (бесплатний МSK1 опс часM SK2
* **Складність:** нижчий

> дешевий, простийM SK1 але завжди після факту

---


### МSK0 WAF (Cloudflare WAFM SK2 AWS WAF≥, Azure WAF≤)

* **Mode:** Активний (inlineM SK1
* **Тривалість:** ~1–10 ms
* **Вартість:** низький → середній МSK1 правила МSK2 кількість запитів )
* **Складність:** низький → середній МSK1регулювальне налаштування )

> Швидкий і дешевий-ishM SK1 але тільки для відомих моделей

---


### 3. Zarządzanie Botом Cloudflare Bot MgmtM SK2 DataDome, HUMANMSC4 AkamaiMスク5 CHEQMST6

* **Mode:** Активний (inline + викликиM SK2
* **Тривалість:** ~5–50 ms
* **Вартість:** середній → високий
* **Складність:** середній → високий МSK1регуляція МSK2 фальшиві позитиви , вплив UX

> Мощний, але дорогий, і може впливати на досвід користувача

---


### 4. Ограничення швидкості

* **Mode:** Активний (inlineM SK1
* **Тривалість:** ~1–5 ms
* **Вартість:** низький → середній МSK1звичайний пакет, але масштабується за використанням
* **Складність:** середній (perM SK1введення кінцевих точок )

> Дешевий контроль, але непомітний інструмент

---


### 5. Защита від DDoS

* **Mode:** Активний (edge/networkM SK2
* **Тривалість:** ~1–5 ms
* **Вартість:** середній МSK0 дуже високий ( особливо в масштабі МSK2 рівні бізнесу )
* **Складність:** середній ( найбільш управляемыйM SK1

> Невід 'ємна інфраструктура,, але не поведінка

---


### 6. Зрадність МSK1 Оцінка ризику МSK2 Сифт , Похибка МСК4 Ризиковані MSК5 Стриптовий радар СМСК6

* **Mode:** Mixed (inline + postM SK2
* **Тривалість:** ~50–300 ms в режимі онлайн
* **Вартість:** високий МSK0за транзакцію / МSK2 прибутків / Ценообразование SaaS
* **Складність:** високий ( інтеграція МSK1 налаштування МSK2 оп )

> Глубокий інтелект МСК0, але повільний і дорогий МSK1 використовується м 'яко

---


### 7. Вираження пальців на пристрої Вираження кінчиків пальця JSM SK2 Метрикс загрози МSK3 Іновація МSK4

* **Mode:** Активний (клиент МSK1 вліноM SK2
* **Тривалість:** ~10–100 ms
* **Вартість:** середній → високий МSK1за запитом МSK2цінообразование на сеансі )
* **Складність:** високий ( конфіденциальність , уникнення МSK2 інтеграція M SK3

> Ідентичність-важкаM SK1 поставляється з безпечним та цінним багажом

---


### 8. SIEM / Обсервабельність МSK2SplunkM SK3 Датовий собака, ElasticMSC5 SentinelMske6

* **Mode:** Пост
* **Тривалість:** секунд → хвилин
* **Вартість:** дуже високий рівень (поглинання даних є вбивцем
* **Складність:** дуже високий рівень

> Доступність шару...дешево, але необхідно

---


### 9. За замовчанням МSK1 логіка ребра / ламбарти

* **Mode:** Смішаний
* **Тривалість:** змінюється
* **Вартість:** прихований, але реальний (dev час МSK1 інфраM SK2
* **Складність:** високо впродовж часу

> " ми мусили полагодити прогалини " шар

---


# Велика проблема

Погляньте на цей список, дивлячись на драбину.. Кожна категорія потребує UA / IP для того, щоб залишатися идентіфікованими , або потребує ручної конфігурації на кожному кінцевому місці, щоб уникнути блокування. МSK3 легітимний МSK4 стрімкий трафік M SK5 Вони ' є повільніми MSC7 якщо кожна просьба проходить через цей канал, який МСК8 є значним шматком вашого часу, що витрачається на обробку запитів замість реагування на них.

На ринку зараховано МОСШість баз для роботів на рівнях 1–3. У нього не є відповіді на рівні '

# Потенциальний розв 'язок: поведінкові висновки

В попередніх статтях я написала про мою [Похибка](/blog/behavioural-inference-systems-blog) системи. ВониM SK1 це CHEAT, який став функцією

Единственні 'сенсори МSK1 легко перехитрити зараз МSK2 Єдина константа у рівнях 4-5 атак - *як вони обманюють*; обертові заголовкиM SK1 IPs, УАСМSK3 таймінги МSK4 кінцеві точки . будь-який один сенсор можна перехитритиMSC6 Об 'єднання сенсорів підвищує чутливість МСК7 ловить більше роботівMСК8 але в статичних системах це також підвищує хибні позитивні сигналиM СК9 тому що, якщо одного триггера достатньо для блокування МСК10 кожен додатковий сенсор є ще одним способом неправильного вистрілу М СК11

Наслідки поведінки роблять три речі: *Профиль* -> *характеризувати* -> *пам 'ятайте*. ЦеM SK1 це ; неважливо, чи це МSK3 це lucidRAG або StyloBot. У Stylobot запам 'ятовується поведінка *вектор*МСК0 , що "'" - це такий собі клієнт *поведінка* стає. Заповедінка записівM SK1 NICHT ідентичность.

Для StyloBot ви являєтеся проекцією над вимірним векторним простором 130+

# StyloBot

StyloBot - це поведінковий інференційний двигун, пристосований до веб-траficу . Він використовує великий векторний простір, щоб охарактеризувати веб-запити та визначити автоматизацію в порівнянні з людьми

МСК0 ближче до системи синтезу сенсорів, ніж до двигуна правил. МSK1. Детектори не приймають рішень. *сигнали*. Сигнали - це система . Детектори - це тільки виробники M SK2

## Як він відрізняється від ринку

Лідери ринку розділяють одну з двох форм: МСК0, або вони базуються на простих статистичних правилах, МСК1, що постійно обновляються, МSK2, як feeds OWASP, ), або аналізують ТОНи реального руху і потребують SaaS для життя в МСК4.

StyloBot має на меті створити модель дистрибуції Fail . "2", Ban , ( запускати exe , , , точка у зворотньому руслі , МSK3 з допомогою пакетів даних Enterprise stacks і . завантажує переліки користувачів, МSK5 CVEs ,, експлуатує МSK7 та інші показники компромісу для покращення розпізнавання .

Під капюшоном StyloBot запускає: ~50 ' вказівники МSK2 маленькі фокусовані біти коду, які виглядають так:

```csharp
using Microsoft.AspNetCore.Http;
using Mostlylucid.BotDetection.Models;

namespace Mostlylucid.BotDetection.Detectors;

/// <summary>
///     Execution stage for detectors. Detectors in the same stage run in parallel.
///     Higher stages wait for lower stages to complete.
/// </summary>

public enum DetectorStage
{
    /// <summary>
    ///     Raw signal extraction (UA, headers, IP, client-side).
    ///     No dependencies on other detectors.
    /// </summary>

    RawSignals = 0,

    /// <summary>
    ///     Behavioral analysis that may depend on raw signals.
    ///     Runs after Stage 0 completes.
    /// </summary>

    Behavioral = 1,

    /// <summary>
    ///     Meta-analysis layers (inconsistency detection, risk assessment).
    ///     Reads signals from stages 0 and 1.
    /// </summary>

    MetaAnalysis = 2,

    /// <summary>
    ///     AI/ML-based detection that can use all prior signals.
    ///     Runs last, can learn from all other signals.
    /// </summary>

    Intelligence = 3
}

/// <summary>
///     Interface for bot detection strategies
/// </summary>

public interface IDetector
{
    /// <summary>
    ///     Name of the detector
    /// </summary>

    string Name { get; }

    /// <summary>
    ///     Execution stage for this detector.
    ///     Detectors in the same stage run in parallel.
    ///     Higher stages wait for lower stages to complete.
    /// </summary>

    DetectorStage Stage => DetectorStage.RawSignals;

    /// <summary>
    ///     Analyze an HTTP request for bot characteristics.
    ///     Legacy method - prefer DetectAsync with DetectionContext.
    /// </summary>

    /// <param name="context">HTTP context</param>
    /// <param name="cancellationToken">Cancellation token</param>
    /// <returns>Detection result with confidence score and reasons</returns>
    Task<DetectorResult> DetectAsync(HttpContext context, CancellationToken cancellationToken = default);

    /// <summary>
    ///     Analyze an HTTP request for bot characteristics using shared context.
    ///     Detectors should read signals from prior stages and write their own signals.
    /// </summary>

    /// <param name="detectionContext">Shared detection context with signal bus</param>
    /// <returns>Detection result with confidence score and reasons</returns>
    Task<DetectorResult> DetectAsync(DetectionContext detectionContext)
    {
        // Default implementation for backward compatibility
        return DetectAsync(detectionContext.HttpContext, detectionContext.CancellationToken);
    }
}

/// <summary>
///     Result from an individual detector
/// </summary>

public class DetectorResult
{
    /// <summary>
    ///     Confidence score from this detector (0.0 to 1.0)
    /// </summary>

    public double Confidence { get; set; }

    /// <summary>
    ///     Reasons found by this detector
    /// </summary>

    public List<DetectionReason> Reasons { get; set; } = new();

    /// <summary>
    ///     Bot type if identified
    /// </summary>

    public BotType? BotType { get; set; }

    /// <summary>
    ///     Bot name if known
    /// </summary>

    public string? BotName { get; set; }
}
```

Кожен детектор визначає, що він таке, що він залежить від, і що він повертаєM SK2

> NOTA: Це головна концепція . StyloBot - це LARGE система з MINIMALними концепcjami МSK2 доведення детекторів - SIMPLE

Такий порядок стадії - це дисципліна. Стадія M SK1 рухається паралельно і записує сигнали . Стація МSK3 читає те, що було до того, замість пере МSK4 виокремлюючи з сирого запиту МСК5 Більшість запитів ніколи не проходять через стадії М СК6

Використовуючи мій [найяскравіший.непокоєчна база](https://github.com/scottgal/mostlylucid.atoms) ( більше про це в [Збудувати поновлювану ефемеральну бібліотеку для виконання](/blog/ephemeral-execution-library) і [Ефемерні сигнали - Перетворення атомів у сенсорну мережу](/blog/ephemeral-signals)) детектори emitують те, що я називаю 'signals МSK2 крихітні струни, як `ua.score=0.75` що діють як метадані для запиту і зареєстрування / діагностичних данихM SK1 Код LLM ( та сама система МSK3 використовує ці сигнали, щоб визначити ефективність

> До того ж, : Ephemeral також дає StyloBot LFU МSK1 слизування МSK2 обробка вікна ; він відкидає людські запити, зберігаючи вікно так, що якщо *майбутнє* прохання перетинає бар 'єр робота, ми можемо подивитися назад і переробити старіші для вказівок

## Детектори 50 - це рішення

У StyloBot є 50 детектори. Він рідко запускає більше, ніж 5-7 на подачуM SK3 Вони не є МSK4t МSK5 незалежними вердиктами МСК6 вони М СК7ре МSК8 способи спостерігати за тим самим базовим поведінком ММСК9 кожен з них додає доказів для єдиної моделі поведінки МСС10

50 - це Здатність ; він використовує лише те, що йому потрібно

**Швидкий шлях (звичайний випадокM SK1** 5-7 SUPER-швидкий (subM SK2milliсекунд МSK3 первинні детектори та відбитки пальців МSK4 З цього відбитку пальця він може вирішити, ким ви є І які ваші наступні запити будуть можливими. ♫ (контент \ -> \ Resource pathing \ МSK7 \ Потім він прогнозує наступне запити \, \ порівнює з тим, що насправді прийде \

**Повільний шлях (цікавий випадокM SK1** Важливо, **повільний шлях запускається ЗOUT решітки запиту**. Ваш użytkownikM SK1 реакція виходить на швидкий - вердикт маршруту МSK3 повільний шлях - це заповнування для того, що трапиться далі , не затримка на цьому запиті

Він активує, коли швидкий шлях *двозначна* (сигнали суперечать одна одній МSK1 форма не співпадає з тим, що ми бачили МSK34 впевненість сидить в мертвій зоні ) або коли запит виглядає новою | ( | новий образ атаки | МSK7 | свіжий CVE пробірник \ , | ЛЛМ \ МSK9 \ Скракер, керований нами, намагається зробити щось, чого ми досі не робили |' | досі не отримували відбитків пальців

У вас є два варіанти ескалації:

* **Скалація в лінії** ( все ще відключено від потоку запитівM SK1 запускається на задньому плані, але пише вирок перед *наступне* прохання того ж клієнта зземлення). Добре для коротких потоків, де ви хочете, щоб наступний ще класифікований клік
* **Ескалація offline** (batchedM SK1 запускається на робітнику ; вирок з 'являється на секунду M SK3 до - хвилини потому і оновлює кластер МSK5 магазин репутації MSC6 Хороший для довгих МСК7 забагачення хвоста М СК8 періодичні обновлення M СК9 та випадки, коли ви М S К 10 краще нічого не платите на гарячій дорозі M S К 11

У будь-якому випадку, прохання, що викликало ескаляцію, вже відповілоM SK1 Немає сценаріїв, коли повільний шлях додасть мілісекунд до сторінки користувача' завантаження сторінкиMSC3

Це те, що МСК0 - це справа. МСК1 - це мікросекунд, коли ти можеш. МSK2 - це мілісекунди, коли тобі потрібно. ММК3 - ніколи не платити за обидва, ММК4 - ні за одного користувача. ММСК5 - це годинник. МСМК6 - повільний шлях є рідкісним з точки зору дизайну. *змусить* прострибнути повз будь-який фіксований трубопровод. Кожен повільнийM SK1похідний вирок повертається як новий швидкийМSK2потіковий сигнал, тож наступного разу дешеві детектори ловлять те, що відкрили дорогие МSK4

Полний набір шарів ( ви бачите їх усіх лише на повільному ♫ - ♫ питанні про дорогу, яке дійсно потребує кожного куту ♫ МSK2 ♫

| Лаyer МSK1 детектори МSK2 Що він ловить |
|-------|-----------|-----------------|
| **Ідентичність** | SignatureM SK1 HeaderCorrelation, Periodicity | UA rotationMska4 identity factorsMske5 temporal patterns Мska6
| **Протокол** МSK0 TLS (JA3/JA\4), TCPM SK4IP (pMska6fMска7 HTTPMске8 HTTP\Mska9 ТранспортMСК10StreamAbuse МСК11 Спустошені відбитки пальців веб-браузераМСК12 несумісність протоколу МСК13
| **Застосування** | Форма хвилі , Вектор сеансу M SK2 Заawansований поведінка , CacheBehavior МSK4 Подібність до куки MSC5 РесурWaterfallM SK6 КонtentSequence МSK7 Шаблони таймingu Mska8 Марковські ланцюги M Ska9 бракуючих активівMska10 сторінка MSKA11 розбіжність послідовності завантаження Мska12
| **Контент** | UserAgentM SK1 Header , AiScraper, HaxxorMST4 SecurityToolMSC5 VersionAge МST6 Знані ботиM ST7 атаковані вантажіM st8 неможливі версії браузера М st9
| **Мережа** | IPM SK1 GeoChange , ResponseBehavior, MultiLayerCorrelationMSC4 CveProbe МSK5 Datacenter IPsMska6 impossible travelMske7 CVE scanningMSKA8 crossMске9 layer mismatches МSK10
| **Інтелект** | Репутація на швидкому шляху , Похибка до репутації МSK2 Ориентність на часі M SK3 Кластерні кластери , Схожість
| **Торгівля рекламою** МСК0 ClickFraud, PiiQueryString M SK2 IAB SIVT: datacenterMスク4VPNMSC5 безголовний на платному транспорті , брехня референтора МSK7 миттєвий відскок
| **Інтелект** | ХирологічнийM SK1 ХірологічнийПоздний, ЛЛМ МSK3 МSK4модель об 'єктів (<1msMSC6 опціональний LLM для неоднозначних випадків мSK7
| **Клієнт** | ClientSide , FingerprintApprovalM SK2 ChallengeVerification МSK3 JS timing probesMST4 headless detectionM ST5 PoW challenges МST6

<!-- IMAGE PLACEHOLDER: Fast-path / slow-path flow. CRITICAL: must show fast path returning a response in ~150µs while slow path forks OFF the request thread (dotted arrow into a separate "background / worker" lane) and eventually writes back to the cluster store. Two slow-path lanes: "inline (background, before next request)" and "offline (batched worker)". Source: Excalidraw / Mermaid swimlane diagram. Hand-made beats AI here; the routing logic is exact and the OFF-THREAD nature is the whole point. -->
![Szybкий шлях проти повільного (повільний шлях відключений від потоку запиту)](img-placeholder-fast-slow-path.png)

# Що якби поведінка клієнта була вектором?

З детекторами 50 і сотнями сигналів у нас є Множество метадань про кожного клієнта *місце* у вимірному просторі 130+

Це *проектування* ([Вікіпедія](https://en.wikipedia.org/wiki/Projection_(linear_algebra))) цього базового векторного простору

<!-- IMAGE PLACEHOLDER: 2D projection of the high-dimensional behavioural vectors, humans clustered tight in green, bots scattered in distinct shapes/colours. Source: SCREENSHOT from /_stylobot dashboard if it has a UMAP/t-SNE view; if not, generate one server-side from real session data and snapshot it. AI-generated as a last resort with prompt "scientific scatter plot, 2D projection, dense human cluster centre, sparse bot clusters around edges, dark theme". -->
![Застосування вектора](img-placeholder-vector-projection.png)

## Боти - це фігури

Ваші бота - це не просто купка цифр. Вони - це: МСК2, ШАПЫ, МСК3. Ці фігури відрізняються від людських

Люди шумні, але *послідовність у структурі*. Bots є послідовними, але *неправильна в структурі*.

Це - весь трюк. Як тільки ви побачите форму, то показники довіри до детектора перестають бути важливими для кожного. Що важливо, це те, чи ця проекція виглядає як людина, чи як щось, що робить вигляд однієї людини.

Порівняйте це з відстеженням всіх сесій. ( система збирає ZERO PII ). Одна секція може виглядати повністю людиною, *бути* запис одного). Якимось чиномM SK1чутливість в часі ( пошук автоматизованих каденцій МSK3 навіть людські відбитки пальців, які потім будуть використані як роботів ) це те місце, де форма дійсно віддає їх

## Кластер Bots (Leiden над векторамиM SK1

Як тільки все стане формою, бота перестають ховатися одна від одної.

Стілобот працює [Розпізнання спільноти Лейдена](https://en.wikipedia.org/wiki/Leiden_algorithm) через вікторний простір наживо. Цей трюк запозичив від моєї роботи GraphRAG [GraphRAG: Чому векторний пошук ламається на рівні Corpus](/blog/graphrag-knowledge-graphs-for-rag) і [GraphRAG частина 2: Minimal Viable Graph RAG](/blog/graphrag-minimum-viable-implementation) ти' ти вже бачив цю конкретну модельM SK1 там вона будується *спільноти сенсу* над фрагментами документу, щоб запрос міг витягти цілу пов 'язану ідею замість від' єднаних фрагментів. Тут він виконує структурно однакову роботу над *поведінка* вектори; спільноти клієнтів, які рухаються однаковоМSK1 Те саме алгоритмМСК2 те саме розумінняMСК3 різні домениМ СК4 родина роботів - це лише спільнота в графіМSК5 тема GraphRAG має однакову форму над текстомMSК6

Bots, які мають спільний корінь ( той самий інструментарій МSK1 той же оператор МSK2 ту ж кампанію зламування ) приземляються в тій самій місцевості навіть тоді, коли вони \ '\ обертають IP-адреси \ МSK5\ заголовки \,\ отримають відбитки пальців і нараховують час \ мSK7\ Їм не вдалося \ '\ узгоджувати \-\ для того, щоб виглядати однаково | ;\ вони виглядали однаково тому, що вони є однаковою

Це дає StyloBot дві суперсили безкоштовно:

* **Нова просьба отримує вирок свого кластера.** Перше- будь-колиM SK1 побачений робот від відомого оператора ? Вже всередині ворожої спільноти на прибутті МSK3 Нічого гарного МСК4 доверху М СК5 немає часу для навчання M СК6
* **Нова атака робить свій кластер** Коли з 'являється щось справді нове, це не підходить ніде *сам* є сигналом. Повільний шлях ведеМSK1 Стадія LLM позначає його МSK2 і з того часу ціла кластер розпізнається на швидкому шляху .

Це також місце, де пошук подібності (HNSW над одними векторами МSK1 заробляє на собі нагоду МSK2 " покажіть мені \ 20 найближчі речі до цього запиту прямо зараз \ МSK5 є постійним \- питанням часу \МSK7 , а не сканом над історією

<!-- IMAGE PLACEHOLDER: Leiden communities over the behavioural vector graph; nodes coloured by community, with one tight human community and several smaller bot communities at the edges. Source: SCREENSHOT from /_stylobot dashboard if it has a cluster view (it should); otherwise render from a Gephi/networkx export of a real run. AI-generated as a last resort with prompt "force-directed graph, multiple coloured communities, one large central community, several small peripheral ones, dark scientific style". -->
![Об 'єднання Лейдена над поведінкові вектори](img-placeholder-leiden-clusters.png)

## Дивні наслідки

Запам 'ятайте, що я сказав: . Я не сказав: *він вчиться*.

Коли він запускає профілі *ваш транспорт* і розуміє *ваші користувачі*. Не моторошно ; це вирішує, які шаблони запитів МSK2 кінцеві точки МSK3 і як виглядають тайми для вашого людини проти вашого автоматизованого руху

Тоді ви можете вирішити:, чи дозволити системі піклуватися про нього. M SK1 встановити порог робота, скажімо, 0.8 для більшості і МSK3 для безпечних кінцевих точок.

# Завершення

StyloBot зараз в прямому ефірі . ".", Detection engine МSK1, Dashboard , , , NuGet пакети , МSK3 , Gateway Exe, ; , і все це доступно вже зараз і DARMOWE для запуску на власній інфраструктурі. [github.comM SK1scottgal/stylobot](https://github.com/scottgal/stylobot) або `brew install scottgal/stylobot/stylobot` і направляйте його на верхню частину потоку

Я ' скоро додам коммерціальні характеристики МSK1 підпорядковані панелі управления МSK2 приймана репутація , мультип 'ютерні \ - \ веб-сторінкові звіти \ МSK5 \ речі, які потребують сервера десь я мушу продовжувати платити за \) \ але ядро двигуна залишається вільним \МSK7 \

Далі в релізовій серії: [Подібність-Усвідомлення ASP.NET UI](/blog/behaviour-aware-ux),, яка бере тут описану поведінкову класифікацію і піддає її формі Razor , МSK2 та політиці контроллера M SK3

Якщо ви хочете старіший технічний провідник-до цього випуску серіїM SK1 [Частина 1](/blog/botdetection-introduction), [Частина 2](/blog/botdetection-part2-signature-pipeline-and-stylobot-architecture), і [Частина 3](/blog/botdetection-part3-as-simple-as-possible) об 'єднати причину, архітектуруМSK1 і дві лінії падінняМСК2лінію падіннямМ СК3вM СК4 Базування поведінки живуть в [Похибка](/blog/behavioural-inference-systems-blog), сигналізація всередині [Ефемеральні сигнали](/blog/ephemeral-signals), і линейка з кластерування в Лейдені [GraphRAG](/blog/graphrag-knowledge-graphs-for-rag) і [GraphRAG - частина 2](/blog/graphrag-minimum-viable-implementation).втіленняM SK1