# **StyloBot: Як Bots стають розумнішими M SK1 Нова межа в розпізнаванні Bot ( Część МSK3**

*Частка 1 була причиною МSK1 Це шоу МSK2 і - показ того, що робить StyloBot, що є рідкісним у будівлях для виготовлення роботів*

Теорема: Моделі StyloBot - модель розпізнавання роботів як прогресуального , раннього МSK2 топології вихідних сигналів поведінки M SK3 з результатами реакції, що повертаються до контексту кампанії, яка зберігає відбитку та обмежену темальну пам 'ять

Якщо ви маєте цінні дані, то це означає зупинити великі здобутки, а також масштабні здобичання. МSK4 – це цінний інтелект, МSK5 – конкуренційне плавання, , – штучний інтеллект, і ще до того, як це стане вашим базовим рухом,

> ### Що робить StyloBot різними
> 
> - поведінка, не правилоM SK1на основі
> - прогресивне виявлення, не повний аналіз
> - кампанію-усвідомлюєM SK1 не просувається-уважає
> - реальнийМСК0часМSK1 не партія

**[Розумійте деталь 1: StyloBot: Борьба проти Scrapers](https://www.mostlylucid.net/blog/botdetection-introduction)**

**[Вичитайте частину 3: Так просто, як це можливо і не так просто](https://www.mostlylucid.net/blog/botdetection-part3-as-simple-as-possible)** - Дві лінії коду до повної виробничої шлюпки .

**[👉 Подивіться на це в прямому ефірі](https://stylobot.net)** - Це реальна система виробництва, яка працює на ранніх стадіях - виведення виходу в лінію на шлюзі МSK2 вимірюваність в ланцюгі МСК3 затримка варьується залежно від політики і активованих хвиль М СК4

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

[![NuGet](https://img.shields.io/nuget/v/mostlylucid.botdetection.svg)](https://www.nuget.org/packages/mostlylucid.botdetection/)
[![GitHub](https://img.shields.io/github/stars/scottgal/stylobot?style=social)](https://github.com/scottgal/stylobot)
[![Докер](https://img.shields.io/docker/pulls/scottgal/stylobot-gateway)](https://hub.docker.com/r/scottgal/stylobot-gateway)

---


[TOC]

---


## Частина 2 Контекст

Цей пост прокидає налаштування і конфігурацію (, що представлено у частині 1),, зосередившись на нових інтерфейсах, які відокремлюють StyloBot МSK2

---


## Чому ми тут - МСК1 - це новий Bot Frontier

Перед тим, як зануритися в архітектуру, треба зрозуміти загрозу. Це не означає блокування простих скрукерів.

### Що Bots роблять насправді

Боти входять у категорії:

1. **Безглузді склопи** ( кульові ланцюги МSK1 wget ): Знов і знову просити один і той самий шлях
2. **Безголовні браузери** (PuppeteerM SK1 Playwright): Better mimic real browsers . They fetch assetsМSK4 handle JavaScriptMSC5 rotate UserMST6AgentsM ST7 Harder МST8
3. **Жінські мережі прокси**: Попроси від реального IP-провайдера з дому ,, що заважає перевірці геолокації МSK2 Вони все ще мають шаблони підпису
4. **Роботи з потужністю LLM-** (NEWM SK1 Вони просувають ваш сайт, підтримуючи послідовні розмови - подібні до шаблонів доступу МSK3 Вони розуміють контекст M SK4 Вони наслідують законну поведінку перегляду в масштабах , інколи з наміром отруйнувати набори даних MSC6 виокремлювати приватну інформацію Mska7 або відрізати для тренування данихMska8

Перші три з них існують роками. **Четверта причина полягає в глибині.** Найпоширеніші реальні цілі в світі - це розробка цінних розвідок, розвідка конкуренційних розгадів і збир даних для тренування моделей.

### Як розвинулася комп 'ютерна комп' ютерність

| генерація МSK1 тактика МSK2 оборона |
|------------|--------|---------|
| **v1: Базова** | Те ж саме IP МSK1 повторені шляхи МSK2 статичний UA | Ограничення швидкості
| **v2: Без голови** | Реальний веб-браузер МSK1 Втілення ДС МSK2 Перейняття активів | Ограничення рівня поведінку
| **v3: Розповсюджений** | Обертові IP МSK1 житлові прокси МSK2 різні часи | Крестні MSК4 кореляція шарів MSК5 пам 'ять підпису МСК6
| **v4: LLM-Driven** (NOWM SK1 | Природні шаблони перегляду, контекстуальні вимогиMSC4 змішані легальні МSK5 відрізання МSK6 отруйнування наборів даних мSK7 Всі вище згадані M+ моделювання переходу ммSK9 кластерування кампанії МСК10 цикли поведінки реагування МК11

**Постриб з v3 до vМSK1** Старі роботів слідували правилам чи випадковості. Нові роботів *зрозуміти* структура вашого веб-сайту. LLM-бот може попросити продукт AM SK1 тоді пов 'язані з ним продукти B та C ( як справжній użytkownik ), потім систематично виокремлювати ціни на досвідчену модель МSK4 *послідовність* виглядає природно,, але *сукупний ціль* malicious.

### Чому це не надмірне

Ви можете подумати: "" МSK0 " Невже МSK2 Ми не можемо виявити марковських шаблонів і кластерної конвергенції, ми переробили надмірну інженерію для блокування роботів "".

Ні МСК0 Тут МSK1 чому?

1. **Заawansовані адаптивні боти дорого коштують** Вартість навчання, फीі APIM SK1 час GPU. Вони виграли ' не посилалися на викиди МSK4 Вони *ефективно* і *націлена*.
2. **Вони дуже добре нагадують людей.** Статична межа швидкості виграє' не поймає їх . ПользовательM SK2 перевірка агента вигралаМSK3 не працює. Вам потрібен мультиплік МSK5 кореляція ланцюгах М SK6 реакція M SK7 петлі поведінки , і контекст кампанії MSC9
3. **Погані позитиви дорого коштують** Заблокуйте одного реального користувача помилкою, і ви їх втрачаєте . StyloBot' обмежена пам 'ять та часовий мислення дають вам змогу підтримувати високу впевненість, не будучи драконічними
4. **Поверхня атаки розширюється.** Боксери більше не хочуть лише вашого HTML. Вони хочуть отруйнувати ваш пошуковий индекс, виділити приватні алгоритмиM SK2 тренувати конкуруючих моделейМSK3 або збирати електронні листи користувачівMSC4 Ставки вищіMST5

**Переписні дані:**

- [OWASP: Zarządzanie Bot](https://owasp.org/www-community/attacks/Bot_attack)
- [Imperva: Отчет про рух Bot M SK1](https://www.imperva.com/blog/bot-attack-trends/)
- [Cloudflare: Розуміння розпізнавання Bot](https://www.cloudflare.com/learning/bots/what-is-bot-detection/)

---


## Найголовніший принцип архітектури

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

1. **Ранній -прогресивний аналіз виходу МSK1хвильовий графік МSK2** → Найкращі перевірки проводяться першими ; глибші аналізи проводяться тільки тоді, коли це підтверджують ранні докази
2. **Реакцію-заду зворотній зв 'язок** → Усвідомлює, як передові адаптивні Botи змінюють поведінку залежно від ваших відповідей (401/403, throttling
3. **Крестна корреляція** → Порівнює твердження про те, що є ідентичною,
4. **Пам 'ять підпису з обмеженим часом** → Тривожає контекст кампанії видимим без безмежного росту оперативної пам 'яті під навантаженням
5. **Перехідна модель (MarkovM SK1подібні потоки)** → Поміщає систематичні візерунки видобутку, які виглядають людськими за запитом, але відрізняються на рівні форми послідовності.
6. **Кластерування кампаній + конвергенція** → Перетворює багато слабких сигналів на сигнали прохання на міцні об 'єкти кампанії.

Це дає змогу підвищити поведінкову роздільну здатність, зберігаючи рішення зрозуміваними.

---


## Трубопровод в одному малюнку

```mermaid
flowchart LR
    R[Request] --> W[Wave Contributors]
    W --> A[Evidence Aggregation]
    A --> S[Signature + Temporal Context]
    S --> P[Probability, Confidence, Risk Band]
    P --> X[Policy Action]
    X --> Y[Response Outcome]
    Y --> F[Response Feedback Loop]
    F --> W
```

`Wave contributors` є складними компонентами детектора: ворота запускають їх у послідовних хвилях і виходять рано, коли ризик є надійно низьким або високимM SK1

Зверніть увагу, що зворотній ланцюг: реагування поводиться в наступний цикл запитівM SK1

**[Погляньте на цю трубу в процесі виробництва у stylobot.net](https://stylobot.net)** - Задайте прохання і слідуйте за ним через канал з раннім - включеним вихідним МSK2 вимірюваним в лінії на шлюзі

---


## Модель швидкого виходу звідти (Сигнал МSK1Граф оркестрового детектора МSK2

Замість того, щоб запускати всі детектори на кожному запиті, StyloBot використовує **спорядкована труба**: дешевоM SK1 швидко перевіряють першими . Лише якщо вони помітять щось підозрюване, це витрачає CPU на дорогий МSK3 глибший аналіз

**Чому це важливо:** Ви не платите за повний аналіз. ( пошуки кластерів, , глибша корреляція, МSK3 гауристика LLM, МСК4 для кожного безпошкодного користувача, MСК5 швидкі перевірки миттєво виключають очевидних роботів, МСК6 і ранній, М СК7 вихід зберігає затримку для хорошого руху, \М СК8\

```csharp
services.AddSingleton<IContributingDetector, FastPathReputationContributor>();
services.AddSingleton<IContributingDetector, UserAgentContributor>();
services.AddSingleton<IContributingDetector, HeaderContributor>();
services.AddSingleton<IContributingDetector, IpContributor>();
services.AddSingleton<IContributingDetector, BehavioralContributor>();
services.AddSingleton<IContributingDetector, ResponseBehaviorContributor>();
services.AddSingleton<IContributingDetector, MultiLayerCorrelationContributor>();
services.AddSingleton<IContributingDetector, BehavioralWaveformContributor>();
services.AddSingleton<IContributingDetector, ClusterContributor>();
services.AddSingleton<IContributingDetector, SimilarityContributor>();
services.AddSingleton<IContributingDetector, LlmContributor>();
services.AddSingleton<IContributingDetector, HeuristicLateContributor>();
```

Це зберігає швидке-повільне затримування маршруту, в той час як дозволяє глибокий аналіз лише тоді, коли це гарантують ранні сигналиM SK1

---


### Де зупиняються існуючі системи розпізнавання Bot

Більшість служб розпізнавання роботів для виробництва ефективно використовують v1-vM SK1

| Виход МSK1 Рухає до МSK2 Заtrzymujeся на | Це коштує мSK4 Як це працює M|
|----------|---------------|----------|------|--------------|
| **Прості обмеження рівня** (nginxM SK1 Apache) | vMSC4 \| v+2 | | МSK7 Бесплатно
| **AWS WAF + IP репутація** МСК0 vМSK1v2 M SK3 v+3 \| | ~$5-20/місяця | МSK7 за- | плата за подачу запиту
| **Керівництво Bot Cloudflare** МСК0 vМSK1v3 M SK3 v+4 \( частково) | | | МSK8місяця МSK9 Фігностичне отрізання пальців TLS , Проблема з робототехнікою МСК11 Наслідування поведінки МКС12 Чи не перетинається? М СК14 тимчасове або кампанії МСМ15 кластерування рівня ММС16 ♫ МСМ17
| **Інкапсула** МСК0 vМSK1vМСК2 | v+MСК4 \(частий МСК6 | MСК7 | | МСк8 | рік MСк9 Опечатання пальців на пристрої ММСК10 базові характеристики поведінки МПСК11 обмеження швидкості МНСК12 слабкий на ЛЛМ МУСК13 специфічні шаблони МАСК14 \МАСК15
| **Домі даних** МСК0 vМSK1v3 МSK3 v+4 \(частиноM SK6 | | | МSK8 | рік | | Реальний \ - | час балів МЛ |МSK11 | адаптивні \ МSK12 | хороші для v |3. | Але ніякого явного моделювання переходу Маркова чи обмеженої пам 'яті підпису |
| **Менеджер Bot Akamai** МСК0 vМSK1v3 МSK3 v+4 \(частиноM SK6 | | | МSK8годом (на замовлення МСК10 ♫ | Поширене отрізання пальців і репутація М СК12 Хороша масштабність М АК13 але не розроблена для координованого контексту кампанії МАК14 \ М АК15
| **Відкрите джерело** (failM SK1ban, і т.д. МSK3 МSK4 v 1 | | МSK6 v | 2 \ | | Вільно |( OSS | СМС | 10 | 11 | Log | Установка блокування IP | 12 | 13 | Немає реального | 14 | інструментарію часу запиту | 15 | 16 |
| **StyloBot** | vM SK1v4 | За межами \| Вільний \  OSS \ МSK6 | / \ Пакет NuGet \МSK8 \ Всі вищезгадані \ + \ цикли зворотнього зв ’ язку \ мSK10 \ модельування переходу \мSK11 \ пам ‘ ять підписів \+ \ кластерна конвергенція \

**Перевірка реальності витрат:**

- Корпоративні рішення (CloudflareM SK1 Imperva, DataDomeMSC3 AkamaiMスク4 є **$3,000-$50,000+ щороку** тому що вони управляли SaaS з 24/7 підтримкою та швидким поглинанням даних
- Відкритий вихідний код (failM SK1ban, nginx Limiting rate ) є безкоштовним, але зупиняється на vMSC4
- **StyloBot - безкоштовний** (Неlicenced licensed NuGet package ), selfM SK2hosted, and handles vMST4vM ST5 Ви платите за інфраструктуру MST6CPUM st7 not licensingMst8

**Ключеві ідеї:** Більшість бізнес-решень (CloudflareM SK1 Imperva, AkamaiMSC3 сильні на vMska4vMske5 розпізнанні . Вони ловять безголовні браузери та розподілені прокси-мережі Mska7 Але вони зупиняються перед vМska8 тому щоM Ska9

1. **Немає відповіді-feedback loops** → Можуть ' не слідкувати за тим, як роботи вчаться з ваших відповідей
2. **Жодного моделювання переходу** → Може ' не розрізняти patternи перегляду, які виглядають людськими, але систематично виділяють
3. **Немає обмеженої темпічної пам 'яті** → Чи то безмежний стан МSK1漏 пам 'яті під DDoS МSK2 або без перетинів - тимчасове обґрунтування
4. **Немає чіткого кластерування кампанії** → Працювати з кожною подпискою робота незалежно ; пропустити координатні хвилі МSK2

**Вони не помиляються, вони працюють на ринку, який існував в МСК2 .** Але роботи LLM змінили гру.

---


## Архітектура Deep Dive

Решта посту проходить через кожен механізм в трубопроводі, з кодом та конкретними прикладамиM SK1

---


## Відповідь-Сміх зворотнього зв 'язку до оцінки запиту

StyloBot записує реакцію і вставляє її у майбутні рішення щодо запиту для тієї ж клієнтської підписки.

### Hook point в середній програмі

```csharp
private async Task RecordResponseAsync(
    HttpContext context,
    AggregatedEvidence evidence,
    ResponseCoordinator coordinator,
    DateTime requestStartTime)
{
    var ip = context.Connection.RemoteIpAddress?.ToString() ?? "unknown";
    var ua = context.Request.Headers.UserAgent.ToString();
    var clientId = $"{ip}:{GetHash(ua)}";

    var signal = new ResponseSignal
    {
        RequestId = context.TraceIdentifier,
        ClientId = clientId,
        Timestamp = DateTimeOffset.UtcNow,
        StatusCode = context.Response.StatusCode,
        Path = context.Request.Path.Value ?? "/",
        Method = context.Request.Method,
        RequestBotProbability = evidence.BotProbability,
        InlineAnalysis = false
    };

    await coordinator.RecordResponseAsync(signal, CancellationToken.None);

    // Improve transition modelling with observed response content type
    waveform?.UpdateResponseContentType(clientId, context.Response.ContentType);
}
```

### До чого вона приносить

`ResponseBehaviorContributor` може додати такі сигнали, як:

- **Дорога Honeypot досягає°:°** У вас є секретні шляхи, які справжні użytkownicy ніколи не відвідують. ( `/admin/secret.php`). Робот, який просить їх, очевидно, зловживає
- **404 шаблони скануванняM SK1** Робот, який просить 50 різні шляхи, які не існують ' не існують
- **Сильна боротьба** Знову ж таки отримуємо відповіді 401/403, тобто хтось ' намагається ввести паролі МSK2
- **Ставка-історія порушення лімітинуM SK1** Бот продовжує битися з вами після того, як був потиснут.
- **високий бал композитної реакції:** Об 'єднання зображає навмисну атаку, не випадковістьM SK1

Це перетворює розпізнання на **закритий-система управління циклом**: Ви спостерігаєте, як поводився робот *після* ви відреагували на нього, і це змінює ваші оцінки для наступного запитуM SK1 Це' як зворотній зв 'язок, де кожна взаємодія вчить систему більше про атакующего .

---


## Нова модель біта #2: Марков - Style Transition Modeling

Детектор хвильної форми створює **матриця переходу** ( جدول, що показує, як часто запити переміщаються від одного типу до іншого ) між класами контенту і оцінює загальний візерунок перегляду

**Що це означає в простому мові:** Модель Маркова відображає: " що буде далі ?" на основі того, що ви тільки-но побачили МSK2 Людські браузери зазвичай просять сторінку МSK3 потім численні активи МСК4 зображення М СК5 сценариї MСК6 M СК7 потім ще одну сторінкуМСК8 Botи часто показують різні моделі ММСК9 Страница МиСК10 сторінка миСК11 Страница в циклі МДСК12 повністю перекидаючи активи МССК13 За допомогою картування цієї послідовності МПСК14 StyloBot виділяє неприродні ритми перегляду, які залишають скракери позаду МУСК15

```csharp
var transitions = new int[3, 3];
var fromCounts = new int[3];

for (var i = 1; i < classes.Count; i++)
{
    var from = (int)classes[i - 1];
    var to = (int)classes[i];
    transitions[from, to]++;
    fromCounts[from]++;
}

var pageToAsset = (double)transitions[(int)ContentClass.Page, (int)ContentClass.Asset]
                  / fromCounts[(int)ContentClass.Page];
var pageToPage = (double)transitions[(int)ContentClass.Page, (int)ContentClass.Page]
                 / fromCounts[(int)ContentClass.Page];
```

Тоді він позначає підозрілу форму переходу:

```csharp
if (pageToPage > 0.7 && pageCt >= 5)
    contributions.Add(DetectionContribution.Bot(
        Name, "Waveform", 0.6,
        $"Scraper pattern: {pageToPage:P0} of page requests lead to another page",
        weight: 1.5,
        botType: BotType.Scraper.ToString()));
```

**Червоний прапор:** Якщо 70% page requests go directly to another page (instead of fetching assets like a real browser doesMSC2 that's a bot signatureM SK4 Real browsers fetch the pageMNK5 then load all the supporting files МSK6imagesMKK7 CSSMРК8 JavaScriptMСК9 Скрукери часто перекидають приймання активів і просто стрибають між стрічкамиMНК10

---


## Новинний біт #3: Воля - Оркестрований детектор граф

Замість того, щоб запускати всі детектори на кожному запиті, StyloBot використовує **спорядкована труба**: дешевоM SK1 швидко перевіряють першими . Лише якщо вони помітять щось підозрюване, це витрачає CPU на дорогий МSK3 глибший аналіз

**Чому це важливо:** Ви не платите за повний аналіз. ( Моделі МЛ, , кластерні пошуки, МSK3, і т.д.

```csharp
services.AddSingleton<IContributingDetector, FastPathReputationContributor>();
services.AddSingleton<IContributingDetector, UserAgentContributor>();
services.AddSingleton<IContributingDetector, HeaderContributor>();
services.AddSingleton<IContributingDetector, IpContributor>();
services.AddSingleton<IContributingDetector, BehavioralContributor>();
services.AddSingleton<IContributingDetector, ResponseBehaviorContributor>();
services.AddSingleton<IContributingDetector, MultiLayerCorrelationContributor>();
services.AddSingleton<IContributingDetector, BehavioralWaveformContributor>();
services.AddSingleton<IContributingDetector, ClusterContributor>();
services.AddSingleton<IContributingDetector, SimilarityContributor>();
services.AddSingleton<IContributingDetector, LlmContributor>();
services.AddSingleton<IContributingDetector, HeuristicLateContributor>();
```

Це зберігає швидке-повільне затримування маршруту, в той час як дозволяє глибокий аналіз лише тоді, коли це гарантують ранні сигналиM SK1

---


## Новинний біт #4: Крест МSK1Корреляція шарів МSK2Network Truth vs Claimed Identity )

Робот може брехати про свого користувача-Агента M SK1стрічку, яка заявляє "IMSC3m Chrome на Windows"). Але глибших мережевих шарів важко переконливо піддавати

**Ідея** Проверьте, чи твердження Bot' є послідовними на багатьох рівнях

- **Слой TCP** (нижчий МSK1зв 'язок на рівні МSK2 Машини Windows мають специфічні розміри і поведінку TCP-fensterів . Чи пов' язує робот мSK4с його TCP поведінкою з тим, що він має на увазі
- **TLS/SSL шар** ( зашифровування рук ): Різні браузери використовують різні шифрування та версії TLS МSK2 Чи такий робот МSK3 має відбитки пальців TLS, які співпадають з тим, як повинен виглядати Chrome мSK4 чи Safari M)
- **HTTP/2 шар** ( як веб-браузери посилають на структуру браузера ): Справжні браузери мають специфічні HTTP M SK2 поведінку клієнта МSK3 Чи робот їх правильно імітує?
- **Geographic/ мова** послідовність: Робот стверджує, що живе в Токіо, але використовує IP сервера AWS

Якщо ви бачите непорозуміння в різних рівнях 3+ шарівM SK1 це ' майже безумовно робот МSK3 тому що повторюваність їх усіх набагато складніша, ніж просто зміна User-String AgentMSC5

```csharp
var osMismatch = AnalyzeOsCorrelation(tcpOsHint, tcpWindowOsHint, userAgentOs, signals);
var browserMismatch = AnalyzeBrowserCorrelation(h2ClientType, userAgentBrowser, tlsProtocol, signals);
var tlsMismatch = AnalyzeTlsCorrelation(tlsProtocol, userAgentBrowser, signals);
var geoMismatch = AnalyzeGeoCorrelation(state, signals);

if (anomalyCount >= 3)
    contributions.Add(DetectionContribution.Bot(
        Name, "Correlation", 0.85,
        $"Multiple layer mismatches detected ({anomalyCount}/{totalLayers})",
        weight: 2.0,
        botType: BotType.MaliciousBot.ToString()));
```

Це один із найсильніших анти-- механізмів у стеці

---


## Новинний біт #5: пам 'ять підпису з обмеженим тимчасовим станом

StyloBot пам 'ятає, що кожен Bot підпис зробив нещодавно. Але пам' ять має бути **обмежені** ( можеM SK1 не рости назавжди ) і **за замовленим** (updates can 't race each otherM SK2

**Чому це складно?** Уявіть собі, що робот постійно вдаряється на ваш сайт з одного і того ж IP і користувача-Комбо агентаM SK1 Ви хочете запам 'ятати " ця штука вдарила б медовий чайник 5 разів МSK4 МSK5 вона отримала \403s на спробах аутстваMSC7 |" це \ ' частина узгодженого кластеруMST10 Але у високих сценаріївMСК11трафіку МСК12 у вас можуть бути тисячі підписів MСК13 та паралельні поновлення М СК14 Без обережного управління державоюМСК15 ви або втратите дані МSК16 кэши витіснить важливу історіюМ СК17 або витрачаєте надто багато пам' яті мСК18 необмежений рістM ССК19

StyloBot вирішує це за допомогою TTL . - , Aware caches , ( , пам 'ять автоматично закінчується, старі підписи ")", плюс ключіві послідовні оновлення. МSK3 , кожен підпис МSK4 , оновлені оновления , МSK5 , запобігаючи перегонним умовам

```csharp
_signatureCache = new SlidingCacheAtom<string, SignatureTrackingAtom>(
    async (signature, ct) => new SignatureTrackingAtom(signature, _options, _logger),
    _options.SignatureTtl,
    _options.SignatureTtl * 2,
    _options.MaxSignaturesInWindow,
    Environment.ProcessorCount,
    10,
    _signals);

_updateAtom = new KeyedSequentialAtom<SignatureUpdateRequest, string>(
    req => req.Signature,
    async (req, ct) => await ProcessSignatureUpdateAsync(req, ct),
    Environment.ProcessorCount * 2,
    1,
    true,
    _signals);
```

Ви отримуєте детерміністичне набірування підписів на -, МSK1, паралелізм між підписами на МSK2 і автоматичний контроль тиску на МСК3.

---


## Нова Біт #6: Кластер МSK1 Конвергенційна Інтелект

StyloBot не зупиняється на одній.

- **Кластери продуктів Bot:** Те ж саме інструмент зіскапування, яке використовують багато атакторів. Якщо ви знаєте одного робота з `ScraperXYZ`, знаходячи іншого, отримуєш більшу впевненість .
- **Мережні кластери Bot:** Координовані атаки з декількох підписів (різноманітні IP-адресиM SK1 обертаючий użytkownik-агенти , але одна і та сама кампаніяМSK4 Ці temporally correlateMska5they hit you in wavesM Ska6
- **Репутація країни з розпадом:** Чи більшість трафику роботів надходить з IP-адресів центрів обробки даних в певних регіонах?
- **родини конвергенції підписів:** Інколи робот обертає свого користувача- Агента або IP частково, але зберігає основні поведінкиM SK1 родини конвергенції слідкують за цими пов 'язаними мутаціями

```csharp
var cluster = _clusterService.FindCluster(signature);
if (cluster != null)
{
    signals[SignalKeys.ClusterType] = cluster.Type.ToString().ToLowerInvariant();
    signals[SignalKeys.ClusterMemberCount] = cluster.MemberCount;

    if (cluster.Type == BotClusterType.BotProduct)
        contributions.Add(BotContribution(
            "Cluster",
            $"Part of bot product cluster '{cluster.Label}' ({cluster.MemberCount} members)",
            confidenceOverride: ProductConfidenceDelta,
            botType: "Scraper"));
}

var family = _signatureCoordinator.GetFamily(signature);
if (family != null && family.MemberSignatures.Count > 1)
{
    contributions.Add(BotContribution(
        "ConvergedFamily",
        $"Part of converged family ({family.MemberSignatures.Count} members, {family.FormationReason})",
        confidenceOverride: familyBoost));
}
```

Це підвищує якість розпізнавання дорожнього руху на кордоні, не занурюючи в очі кожного невідомого.

---


## Ліден Бот-Кlustering мережі

В даний момент використання кластерування **розповсюдження ярлики** ( уявіть розповсюджування кольорового ярлика через мережу — подібні Botи закінчуються тим самим ярликом ). Але це MSC3 незграбно M SK4 А **Обробка спільноти в стилі Leiden-** Пропуск очищує речі, оптимізуючи межі спільноти.

**Простій англійський:** У вас є графік підписів роботів: ,, з краями, які поєднують схожі, МSK2 Лейден - це алгоритм, який визначає, які підписи природньо скупчуються разом. МSK3 і робить кращу роботу, ніж наївні підходи. .. Замість того, щоб сказати: "" МSK5 "", всі ці роботи виглядають однаково, МСК6, об 'єднані разом, М СК7, Лейден каже:" МСк8 "", "" Отримай "", МС К9 "". Ці "" MСК10 "" насправді формують щільну координаційну групу, MС К11 "", а ті "" एमС К12 "" формують окрему кампанію.

Чому це важливо:

1. Краще якість спільноти, ніж наївне сортування графів.
2. Стабільніша спільнота в усіх повторах.
3. Чистіша відокремлення між продуктами робота та координованими мережами робота.
4. Сильніші ярлики зворотнього потоку для операційних потоків політики та оператора.

високий рівень потоку-

```mermaid
flowchart LR
    V[Signature feature vectors] --> G[Weighted similarity graph]
    G --> L[Leiden community optimization]
    L --> R[Refinement and reassignment]
    R --> C[Stable bot-network communities]
    C --> P[Policy signals and dashboard labels]
```

Лейден-просторовий псевдокод прохожихM SK1

```csharp
// Pseudocode for community refinement pass
var graph = BuildSimilarityGraph(signatureVectors);
var communities = Leiden.DetectCommunities(
    graph,
    resolution: 1.0,
    seed: 42);

foreach (var community in communities)
{
    var score = ComputeCommunityBotScore(community);
    var temporal = ComputeTemporalDensity(community);

    if (score >= botThreshold && temporal >= temporalThreshold)
        EmitCluster(community, type: BotClusterType.BotNetwork);
}
```

Це важливо, тому що це дає вам міцну кампанію

Для інформації про те, як реалізувати теперішнє виробництво, см.

1. [Доки виявлення кластерів](https://github.com/scottgal/stylobot/blob/main/Mostlylucid.BotDetection/docs/cluster-detection.md)
2. [Детектори в глибині](https://github.com/scottgal/stylobot/blob/main/mostlylucid.stylobot.website/src/Stylobot.Website/Docs/detectors-in-depth.md)

---


## Нова властивість - це поверхня управління часом бігу

Atribuти MVC дають оперативне управління літаком:

```csharp
[BotPolicy("strict")]
[BotAction("challenge", FallbackAction = "block")]
public IActionResult Checkout() => Ok();

[BotDetector("UserAgent,Header,Ip", BlockAction = BotBlockAction.Throttle)]
public IActionResult MultiDetector() => Ok();
```

**Що вони роблять:** Ви позначаєте окремі кінцеві точки так, як вони мають бути захищені. . Проверка може потребувати жорсткої захисту.

**[Попробуйте різні правила життя на stylobot.net](https://stylobot.net)** - перевірити `strict`, `balanced`, і `permissive` políticas side by side in production. Погляньте на реальні затримки, коли зміни в політиці впливають на ранній розвиток

---


## Як створити сайт StyloBot

Публічна площадка також є продуктом

```mermaid
flowchart LR
    I[Internet] --> C[Caddy]
    C --> G[Stylobot.Gateway]
    C --> W[Website for SignalR hub route]
    G --> W
    W --> T[(TimescaleDB/PostgreSQL)]
    G --> T
    G --> O[Ollama optional]
```

**Як читати це:** Caddy ( зворотній прокси ) маршрутизує рух МSK2 Дехто йде до Шляху Гейтеві МSK3 що запускає всі Bot-детекторії \ ), дехто прямісінько до Веб-сайту | ( для реального \- панелей телеметрії часу \ МSK7 Обидві можуть записатися в базу даних \

Чому це працює:

1. Ґейтеві впроваджують розпізнавання перед маршрутами aplikacji.
2. Шлях узла SignalR залишається стабільним для живої телеметрії.
3. Спільна тривалість дає об 'єднану операційну картинку.

---


## Чому це важливо

Ці п 'ять дифференціаторів: МСК0, закритий, МSK1, розпізнавання циклу, МСК2, переход, -, модельування форми, МСК4, пам' ять часової підпису, MСК5, перетин, М СК6, шарова корреляція, M СК7 та кампанія, М S К 8, кластерний контекст, М ็ С К 9, дають поведінкове рішення, що стандартна регекс, М ס К 10, плюс М С К 11, ставка, М Ш К 12, системи обмеження не збігаються. М С С К 13

**Хочете побачити їх в дії?** Перейти до **[stylobot.net](https://stylobot.net)** і перевірити детектор у процесі виробництва.

---


## Технічні концепції: Референції

Якщо вищезгадані технічні терміни здаються новими, то тут є канонічні відмітки з літератури з комп 'ютерної науки та захисту мереж.

### Марковські ланцюги & Перехідний аналіз

- [Вікіпедія: Марковський ланцюг](https://en.wikipedia.org/wiki/Markov_chain) - Фундаментальна концепція для МSK1 що наступне МSK2 моделювання
- [Стенфордський CS109: приховані моделі Маркова](https://cs109.github.io/data-science/hmm/) - Пристосовується до реальних проблем із послідовністю світу

### Графний кластер & Community Detection

- [Алгоритм Лейдена (Traag et alM SK1 2019)](https://arxiv.org/abs/1810.03247) - Статус МSK1 з МSK2 з МSK3 детекторія спільноти в мережі[Місцевий інструктор](https://github.com/scottgal/stylobot/blob/main/Mostlylucid.BotDetection/docs/cluster-detection.md))
- [Алгоритами поширення ярликів](https://en.wikipedia.org/wiki/Label_propagation) - Як працює базове кластерування StyloBot'

### Вираження пальців у мережі & Крест МSK1Корреляція шарів

- [Фірмографія TLS (JAM SK1JA≥4)](https://github.com/salesforce/ja3) - Індустріальний стандарт для співпадіння підписів TLS
- [TCP/IP Stack Fingerprinting](https://nmap.org/book/host-discovery-techniques.html) - Nmap
- [HTTP/2 Вираження пальців](https://www.cloudflare.com/learning/http/http2/) - Як браузери відрізняються у поведінці HTTP
- [OWASP: Опечатки пальців](https://owasp.org/www-community/attacks/Fingerprinting)

### Temporal State Management & Cache Design

- [Strategiи шифрування на основі TTL-](https://en.wikipedia.org/wiki/Time_to_live) - Обмежена пам 'ять з вичерпуванням
- [LRU Cache з TTL](https://docs.microsoft.com/en-us/dotnet/api/system.runtime.caching.memorycache) - . NET - референційне забезпечення

### Анализ поведінки & Виявление аномалій

- [Виявление винятків у часових рядах](https://en.wikipedia.org/wiki/Anomaly_detection) - Фундаментальні поняття
- [OWASP: ЗастосуванняM SK1Ограничення базового рівня](https://owasp.org/www-community/attacks/Rate_Limiting) - Коли і чому статичні обмеження не спрацьовують

### LLM-Driven Bots & Dataset Poisoning

- [Втрачає інформацію від моделей машинного навчання](https://arxiv.org/abs/1811.03728) - Чому скрукери спрямовані на ваші дані
- [Видобуток даних з курсу LLM](https://arxiv.org/abs/2302.07933) - Чому боти хочуть вашого контенту

---


## Прочитайте більше (Deep Technical Docs)

Цей пост є наративним прикладом. Полний деталі - в Docs:

1. [Головний репо README](https://github.com/scottgal/stylobot/blob/main/README.md)
2. [Справка з API BotDetection](https://github.com/scottgal/stylobot/blob/main/Mostlylucid.BotDetection/docs/api-reference.md)
3. [Як працює StyloBot](https://github.com/scottgal/stylobot/blob/main/mostlylucid.stylobot.website/src/Stylobot.Website/Docs/how-stylobot-works.md)
4. [Детектори в глибині](https://github.com/scottgal/stylobot/blob/main/mostlylucid.stylobot.website/src/Stylobot.Website/Docs/detectors-in-depth.md)
5. [Програмне забезпечення для тренування](https://github.com/scottgal/stylobot/blob/main/Mostlylucid.BotDetection/docs/training-data-api.md)
6. [Викриття кластерів](https://github.com/scottgal/stylobot/blob/main/Mostlylucid.BotDetection/docs/cluster-detection.md)

---


## Частина 3

Частина МСК0 покриє виробництво налаштуванням : граничні показники , фальшиві МSK3 позитивний контроль \ , дрейф \ МSK5 та стратегію запуску \.