This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
Friday, 01 May 2026
Проект
Це проект релізу StyloBot Series. СтруктураМSK1 прикладиM SK2 і назва може змінюватися до кінцевого випуску
Серія випуску StyloBot
- Подібність, Не ідентичність - чому StyloBot моделює клієнтів поведінково
- Подібність-Усвідомлення ASP.NET UI - сервер - віддав поверхню над результатом виявлення
- Подібність-Усвідомлення інтерфейсу Java - клієнта - поверхня збоку та реальний МSK2 пристосування до часу
Більшість роботів все ще базуються на твердженнях щодо ідентичності.
Це працює аж доки боти не стануть хорошими.
Автоматизація моментально починає крутитись ідентичностями, імітуючи браузериM SK1 розповсюджуючися по домашнім IP-адресам , та адаптуючись в- sesjiMSC4 Mska5 хто робить це твердження, що є цим запитомMske6 припиняє бути правильним питаннямMске7 Полезнішим питанням єMСК8 | МСК9 як цей клієнт поводиться з часомM СК10
Це і є ідея, що лежить в основі StyloBot. Моделі вимагають сеансів , МSK2 і повторюють клієнти як поведінкові форми, а не статичні ідентичності M SK3 Цей пост - перший запис у релізній серії, і пояснює, що модель MSC4 чому вона існує , Чому вона важливаМSK6 та чому поведінка є кращим фундаментом, ніж ідентичність, коли боти стають розумними MST7
StyloBot БЕСПЛАТНО AVAILABLE для запуску . "." В майбутньому я МСК1 продаю управління і звіти в реальному часі , МСК2 , щоб спробувати, і ви знаєте СМСК3 , їсти ІМСК4 , але двигун у exe - СтилоBot , іМСК5 Коммерційна лише додає розподіленій топології . в реальному часі Конфигурація (не перезавантаженняM SK1 і більше опцій для базового забезпечення.
Все джерело тут https://github.comMSC2scottgalM SK3stylobot
Щоб його заinstalувати: macOS (Homebrew)
brew install scottgal/stylobot/stylobot
stylobot 5080 http://localhost:3000
Linux (apt - Debian/UbuntuM SK3
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
# 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
Докер
docker run --rm -p 8080:8080 -e DEFAULT_UPSTREAM=http://host.docker.internal:3000 \
scottgal/stylobot-gateway:latest
NuGet ( вбудований як ASPM SK1NET Core middleware)
dotnet add package mostlylucid.botdetection
dotnet add package mostlylucid.botdetection.ui
builder.Services.AddStyloBot(dashboard => {
dashboard.AllowUnauthenticatedAccess = true; // dev only
});
app.UseRouting();
app.UseStyloBot(); // broadcast, detection, dashboard: correct ordering guaranteed
app.MapControllers();
Панель на /_stylobot. Діагностика на ~150µs за запит з першого запиту.

Тоді просто запустіть його. stylobot 5080 http://localhost:3000 і ви бачите, що ваш сайт слухати (застосувати --моду блокування, щоб блокувати також
Цей пост - перший елемент в поточній релізній серії StyloBot. Він пояснює поведінкову модель Подібність-Усвідомлення ASP.NET UI, показує, як ця модель стає логікою застосування всередині дисплеїв та контроллерів Razor
Перед тим, як ми подивимось на те, що мають защитники, погляньмо, що вони захищають від них.

(curlM SK1 сканери , жорстока сила МSK3 неправильні шляхи )
Точка невдачі: нічого МСК0 , все ловить це .
Скрипки, які існують з самого початку вебу (perl FTWM SK1 ' перейти на сайт МSK3 відрізати контент МSK4 Швидший спосіб ідентифікувати мSK5 єдиний кінцевий пункт M, той самий IP МСК7 той же UA МКК8
( обертання UAМSK1 важливі кінцеві точкиM SK2 просте стирання)
Точка невдачі: системи, що базуються на очевидних помилках.
важче. Тепер вам потрібно визначити відомі шаблони і потім обробити рух
(Puppeteer /Playwright, Execution JSM SK3 real flowsMSC4
Точка невдачі: будь-що, що базується на правильності запиту або підписах.
Легко тільки тому, що вони часто використовуються легітимно.
(приблизне обертання ,屋кові IPM SK2 підробка відбитків пальців)
Точка невдачі:
Це місце, де false positives виростають. Натисніть сильніше і ваші звичайні идентификатори відпадають ви повинні визначити одного і того ж клієнта через хибну особистість.
(повільнийM SK1 розповсюджений , поведінка навчання на місці МSK3 динамічно пристосовуватися
Точка невдачі:
Ці боти поводяться так: "правильно" і еволюціонують . LLM пристосовуються до стандартних спроб блокування
Ось на що спрямований StyloBot .
Ми, МСК0, перейшли через час і піднімались сходом, МSK1, від простої індивідуальності, (, блокування IP,) до необхідності розуміти величезні об 'єми трафику та журнальних файлів Щоб захиститися від Шкраперів штучного інтелекту на рівні 5, вам потрібні Шкрепери для розпізнавання і захисту штуcznego інтелекту
Маючи на увазі драбину, ось тут, МСК0, МSK1, яку приносять охоронці комплекту. МСК2. Зверніть увагу, що кожна опція відрегулювалася десь між рівнями МСК3 та 3.

дешевий, простийM SK1 але завжди після факту
Швидкий і дешевий-ishM SK1 але тільки для відомих моделей
Мощний, але дорогий, і може впливати на досвід користувача
Дешевий контроль, але непомітний інструмент
Невід 'ємна інфраструктура,, але не поведінка
Глубокий інтелект МСК0, але повільний і дорогий МSK1 використовується м 'яко
Ідентичність-важкаM SK1 поставляється з безпечним та цінним багажом
Доступність шару...дешево, але необхідно
" ми мусили полагодити прогалини " шар
Погляньте на цей список, дивлячись на драбину.. Кожна категорія потребує UA / IP для того, щоб залишатися идентіфікованими , або потребує ручної конфігурації на кожному кінцевому місці, щоб уникнути блокування. МSK3 легітимний МSK4 стрімкий трафік M SK5 Вони ' є повільніми MSC7 якщо кожна просьба проходить через цей канал, який МСК8 є значним шматком вашого часу, що витрачається на обробку запитів замість реагування на них.
На ринку зараховано МОСШість баз для роботів на рівнях 1–3. У нього не є відповіді на рівні '
В попередніх статтях я написала про мою Похибка системи. Вони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 - це поведінковий інференційний двигун, пристосований до веб-тра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 маленькі фокусовані біти коду, які виглядають так:
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
Використовуючи мій найяскравіший.непокоєчна база ( більше про це в Збудувати поновлювану ефемеральну бібліотеку для виконання і Ефемерні сигнали - Перетворення атомів у сенсорну мережу) детектори emitують те, що я називаю 'signals МSK2 крихітні струни, як ua.score=0.75 що діють як метадані для запиту і зареєстрування / діагностичних данихM SK1 Код LLM ( та сама система МSK3 використовує ці сигнали, щоб визначити ефективність
До того ж, : Ephemeral також дає StyloBot LFU МSK1 слизування МSK2 обробка вікна ; він відкидає людські запити, зберігаючи вікно так, що якщо майбутнє прохання перетинає бар 'єр робота, ми можемо подивитися назад і переробити старіші для вказівок
У 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 Немає сценаріїв, коли повільний шлях додасть мілісекунд до сторінки користувача' завантаження сторінки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 |

З детекторами 50 і сотнями сигналів у нас є Множество метадань про кожного клієнта місце у вимірному просторі 130+
Це проектування (Вікіпедія) цього базового векторного простору

Ваші бота - це не просто купка цифр. Вони - це: МСК2, ШАПЫ, МСК3. Ці фігури відрізняються від людських
Люди шумні, але послідовність у структурі. Bots є послідовними, але неправильна в структурі.
Це - весь трюк. Як тільки ви побачите форму, то показники довіри до детектора перестають бути важливими для кожного. Що важливо, це те, чи ця проекція виглядає як людина, чи як щось, що робить вигляд однієї людини.
Порівняйте це з відстеженням всіх сесій. ( система збирає ZERO PII ). Одна секція може виглядати повністю людиною, бути запис одного). Якимось чиномM SK1чутливість в часі ( пошук автоматизованих каденцій МSK3 навіть людські відбитки пальців, які потім будуть використані як роботів ) це те місце, де форма дійсно віддає їх
Як тільки все стане формою, бота перестають ховатися одна від одної.
Стілобот працює Розпізнання спільноти Лейдена через вікторний простір наживо. Цей трюк запозичив від моєї роботи GraphRAG GraphRAG: Чому векторний пошук ламається на рівні Corpus і GraphRAG частина 2: Minimal Viable Graph RAG ти' ти вже бачив цю конкретну модельM SK1 там вона будується спільноти сенсу над фрагментами документу, щоб запрос міг витягти цілу пов 'язану ідею замість від' єднаних фрагментів. Тут він виконує структурно однакову роботу над поведінка вектори; спільноти клієнтів, які рухаються однаковоМSK1 Те саме алгоритмМСК2 те саме розумінняMСК3 різні домениМ СК4 родина роботів - це лише спільнота в графіМSК5 тема GraphRAG має однакову форму над текстомMSК6
Bots, які мають спільний корінь ( той самий інструментарій МSK1 той же оператор МSK2 ту ж кампанію зламування ) приземляються в тій самій місцевості навіть тоді, коли вони \ '\ обертають IP-адреси \ МSK5\ заголовки ,\ отримають відбитки пальців і нараховують час \ мSK7\ Їм не вдалося \ '\ узгоджувати -\ для того, щоб виглядати однаково | ;\ вони виглядали однаково тому, що вони є однаковою
Це дає StyloBot дві суперсили безкоштовно:
Це також місце, де пошук подібності (HNSW над одними векторами МSK1 заробляє на собі нагоду МSK2 " покажіть мені \ 20 найближчі речі до цього запиту прямо зараз \ МSK5 є постійним - питанням часу \МSK7 , а не сканом над історією

Запам 'ятайте, що я сказав: . Я не сказав: він вчиться.
Коли він запускає профілі ваш транспорт і розуміє ваші користувачі. Не моторошно ; це вирішує, які шаблони запитів МSK2 кінцеві точки МSK3 і як виглядають тайми для вашого людини проти вашого автоматизованого руху
Тоді ви можете вирішити:, чи дозволити системі піклуватися про нього. M SK1 встановити порог робота, скажімо, 0.8 для більшості і МSK3 для безпечних кінцевих точок.
StyloBot зараз в прямому ефірі . ".", Detection engine МSK1, Dashboard , , , NuGet пакети , МSK3 , Gateway Exe, ; , і все це доступно вже зараз і DARMOWE для запуску на власній інфраструктурі. github.comM SK1scottgal/stylobot або brew install scottgal/stylobot/stylobot і направляйте його на верхню частину потоку
Я ' скоро додам коммерціальні характеристики МSK1 підпорядковані панелі управления МSK2 приймана репутація , мультип 'ютерні \ - \ веб-сторінкові звіти \ МSK5 \ речі, які потребують сервера десь я мушу продовжувати платити за ) \ але ядро двигуна залишається вільним \МSK7 \
Далі в релізовій серії: Подібність-Усвідомлення ASP.NET UI,, яка бере тут описану поведінкову класифікацію і піддає її формі Razor , МSK2 та політиці контроллера M SK3
Якщо ви хочете старіший технічний провідник-до цього випуску серіїM SK1 Частина 1, Частина 2, і Частина 3 об 'єднати причину, архітектуруМSK1 і дві лінії падінняМСК2лінію падіннямМ СК3вM СК4 Базування поведінки живуть в Похибка, сигналізація всередині Ефемеральні сигнали, і линейка з кластерування в Лейдені GraphRAG і GraphRAG - частина 2.втіленняM SK1
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.