Back to "أكثر وضوحاً .إكتشاف الراديو : القتال مرة أخرى ضد المصارعين (جزء 1)"

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

ASP.NET Bot Detection Security

أكثر وضوحاً .إكتشاف الراديو : القتال مرة أخرى ضد المصارعين (جزء 1)

Monday, 08 December 2025

المصارعون على وشك البدء باستخدام الذكاء الصناعي لتقليد المستخدمين الحقيقيين - لذلك قمت ببناء كاشف للبوت الذي يتعلم , يتكيف

الفكرة الرئيسية: السلسلة السلوكية. هذا يسمح بتصنيف جديد - حيث من خلال أجهزة الاستشعار وأنظمة التعلم الشفافة , قابلة للضبط | " | مجموعات |" route traffic reflexively based on learned behaviour patterns . البوابة YARP, الروبوتات لا تصل إلى حاسوبك الخلفي. أو استخدام البرمجيات الوسطى لبناء مسار سلوكي مباشرة في طبقة التطبيق

غويت GitHub الدوكر


لماذا هذا موجود

كشف البوت أصبح بصمت واحد من أصعب المشاكل في هندسة الإنترنت الحديثة.

ليس لأن الروبوتات أصبحت أذكى - لكن لأن جعل الذكاء البشري بسيطاً لتقليد سلوك المستخدم الحقيقي:

  • تدور الوظائف المنزلية
  • بصمة براؤزر صالحة تماماً
  • حركة فأرة واقعية
  • تنفيذ JavaScript
  • التكيف عندما يتم حظرها

الحلول التجارية تحل هذا، لكنهم، ’، مكلفين. (£3،K،+/، الشهر اعتيادي. ),، مغلقة، -، المصدر، M SK6، و مرتبطة بأجهزة CDN معينة. .، لا تعرف حقاً ما يحدث تحت الغلاف.

أردت شيئاً مختلفاً

  • أفتح
  • المحلية
  • من المنطقي
  • سهلة الإمتداد
  • رخيصة للتشغيل (نعم, حتى على Raspberry Pi

لذا بنيت mostlylucid.botdetection - محرك إكتشاف نموذجي , لآلة حذاء تعليمية

لقد بدأ ببساطة … ثم نما إلى شيء أكثر إثارة .



مثال ملموس (ما الذي يلتقطه هذا في الواقع)

هنا MSC0 مشهد حقيقي MSC1 سيناريو العالم msc2

مخادعة المزخرفة:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120

يبدو مشروعا.

ولكنها ينسى يرسل Chrome دائماً :

Sec-Fetch-Mode

ومن ثم Accept-Language header doesn’t match the claimed locale.

و معدل الطلب هو آلي بشكل واضح.

إشارة واحدة جيدة.....اثنان مثير للشك.. ...ثلاثة نمط.

النظام يضع علامة عليه تحت 100 ميلي ثانية - لا حاجة إلى الذكاء الصناعي

هذا هو أساس التصميم كله: لا نعتمد على نموذج واحد كبير


فلسفة النظام

في جوهرها , هذا المشروع ’ لا يتعلق حقاً بإكتشاف الروبوتات على الإطلاق

يتصرف الروبوتات الحديثة مثل الكائنات المتكيفة.

الفلسفة هنا بسيطة : تراقب الإشارات , تدمجها | , تسمح لهم بالتفاعل |, وتتكيف مع مرور الوقت ♫. عوضاً عن آلة واحدة ♪ " ♪ الروبوت ♫ / ♪ لا \ - ♪ روبوت " ♪ إختبار ♪, ♪ المحرك يصبح شبكة من أجهزة الاستشعار الصغيرة ♪

إن النظام مبني ليكون شفافاً..,.. قابلاً للشرح.. ,.. متمدد..


كيف يعمل ( النسخة القصيرة)

الطلبات تتدفق عبر عدة كاشف صغيرة , كل واحد يساهم في جزء صغير من الأدلة .

فكروا بها كمكان مراقبة أمنية في المطار

flowchart TB
    subgraph Request["Incoming Request"]
        R[HTTP Request]
    end

    subgraph FastPath["Fast Path (< 100ms)"]
        UA[User-Agent Check]
        HD[Header Analysis]
        IP[Datacenter IP Lookup]
        RT[Rate Anomalies]
        HE[Heuristic Model]
    end

    subgraph SlowPath["Slow Path (Async Learning)"]
        LLM[LLM Reasoning]
        Learn[Weight Learning]
    end

    subgraph Output["Decision"]
        Score[Risk Score 0-1]
        Action[Allow / Throttle / Block]
    end

    R --> UA & HD & IP & RT
    UA & HD & IP & RT --> HE
    HE --> Score --> Action

    HE -.-> LLM -.-> Learn
    Learn -.->|updates weights| HE

    style FastPath stroke:#10b981,stroke-width:2px
    style SlowPath stroke:#6366f1,stroke-width:2px
    style Output stroke:#f59e0b,stroke-width:2px

طريق سريع (< 100ms)

يشتغل بشكل متتزامن. هل لا ينبطئ الـ’ تطبيقك.

  • أنماط الروبوت المعروفة
  • الخبوع المفقودة المتصفحات الحقيقية دائماً ترسل
  • IP لمركز البيانات (AWS/AzureM SK2GCP )
  • معدلات ذروة
  • إختلافات بين رؤوس UA +

هذا يلتقط 80% من الروبوتات فورا.

الطريق البطيء (Async)

يجري في الخلفية.

  • النموذج الهيوريستي مع الوزن المتعلم
  • استدلال LLM من خلال أولاما
  • تحديث السمعة النمطية
  • نسيان إشارات مسدودة

هذا يلتقط الروبوتات المتكيفة - التي يلتصق بها معظم الناس تفكر إنهم ' يلتقطون مع "regex على المستخدمM SK2Agent".


حاول ذلك في 10 ثوان

dotnet add package Mostlylucid.BotDetection
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddBotDetection();

var app = builder.Build();
app.UseBotDetection();
app.Run();

ذلك مسك0 إنه مسك1 كل شيء يعمل خارج الصندوق المسك2


ما يكشف عنه (في نظرة عامة)

تأكد ما يجده
المستخدم-agent الروبوتات المعروفةM SK1 المكتبات, قراصنة
الرؤوس سرير أمنية مفقودة, تركيبات مستحيلة
IP مضيفي السحاب يتظاهرون بأنهم “ مستخدمي منزل
معدل إنفجارات آلية, هدم توزيعي
التماسك “Chrome/120” بدون ChromeM SK3مجموعة الرأس الحقيقية

التماسك هو ميزة النوم - الروبوتات الحديثة يمكن أن تتقلب واحد إشارة ولكنها غالباً تفشل عند الإختراق -ماسك الإشارات .


نتيجة إكتشاف حقيقية (Broken Down)

هنا ' هذا ما يبدو عليه الكشف الحقيقي - هذا من العرض الذي يشغل fastpath سياسة (كل أجهزة الكشف المتوازيةM SK1 في الإنتاج, معظم الطلبات تخرج مبكراً بعد أن يتفق أجهزة الكشف 2-3

الخلاصة

{
  "policy": "fastpath",
  "isBot": false,
  "isHuman": true,
  "humanProbability": 0.8,
  "botProbability": 0.2,
  "confidence": 0.76,
  "riskBand": "Low",
  "recommendedAction": { "action": "Allow", "reason": "Low risk (probability: 20%)" },
  "processingTimeMs": 50.7,
  "detectorsRan": ["UserAgent", "Ip", "Header", "ClientSide", "Behavioral", "Heuristic", "VersionAge", "Inconsistency"],
  "detectorCount": 8,
  "earlyExit": false
}

8 أجهزة الكشف تعمل في 51ms - أن' الإعدام المتوازن عبر مصادر إثبات متعددة .

مساهمات كاشف

كل كاشف يساهم في تأثير وزني. سلبي M SK1 إشارة بشرية. إيجابية = إشارات حذاءMSC4

كاشف تأثير وزن محمول سبب
موظف المستخدم -0.20 ≥ 1.0 ♫ -0.20 ♪ المستخدم- يظهر العميل طبيعياً ♫
العنوان -0.15
السلوكي -0.10
الهيوريستيكس -0.77 2.0 -1.54 88% إحتمالية إنسانية (16 مميزات
واجهة клиент -0.05
عمر الإصدار -0.05 0.8 ♫
عدم التماسك -0.05 ≥ \0.8 -0.04
IP 0.00

الـ كاشف عصبي يمثّل هنا - إنه' يُزن 2x ويستخدم 16 الخصائص ليصل إلى S88% الثقة الإنسانيةM SK5

إشارات تم جمعها

كل كاشف يصدر إشارات تغذية النموذج الهيوريستي

{
  "ua.is_bot": false,
  "ua.raw": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...",
  "ip.is_local": true,
  "ip.address": "::1",
  "header.has_accept_language": true,
  "header.has_accept_encoding": true,
  "header.count": 16,
  "fingerprint.integrity_score": 1,
  "behavioral.anomaly": false,
  "heuristic.prediction": "human",
  "heuristic.confidence": 0.77,
  "versionage.analyzed": true
}

هذه الإشارات تستمر وتدرب النظام التعلمي على مر الزمن.

تفكيك التصنيف

مجموع الدرجات للقرار النهائي:

الفئة النتيجة الوزن ملاحظات S
هدرستي -1.54
العميل المستخدم -0.20
العنوان -0.15 1.0 ♪ جميع العناوين المتوقعة موجودة
سلوكي -0.10
جانب المشتري -0.04 \0.8 ♪ حصلت على بصمة إصبع حقيقية
عمر الإصدار -0.04
عدم توازن
IP 0.00 0.5 ♫

مجموع الدرجات المُزنة: -2.11 → إشارة بشرية قوية → تسمح.

ملاحظة: هذا هو العرض fastpath السياسة التي تسير كل كاشفات لرؤية . في الإنتاج الحقيقي مع إحداث الخروج المبكر , عالية تحت 10ms. الـ"51ms" هنا لأن نظام العرض لا يُمكن الخروج مبكراً لإظهار جميع المساهمات

خط أنابيب كامل (النموذج التجريبي مع LLM)

للقارنة , هنا ' هو demo سياسة - السلسلة الكاملة بما فيها استدلال LLM . هذا يوضح ما يحدث عند أجهزة الكشف لا نتفق:

{
  "policy": "demo",
  "isBot": false,
  "isHuman": true,
  "humanProbability": 0.87,
  "botProbability": 0.13,
  "confidence": 1.0,
  "botType": "Scraper",
  "riskBand": "Low",
  "recommendedAction": { "action": "Allow", "reason": "Low risk (probability: 13%)" },
  "processingTimeMs": 1370,
  "aiRan": true,
  "detectorsRan": ["UserAgent", "Ip", "Header", "ClientSide", "Behavioral",
                   "VersionAge", "Inconsistency", "Heuristic", "HeuristicLate", "Llm"],
  "detectorCount": 10
}

10 كاشفات في 1.4 ثواني - جرب LLM و لا يتفقون مع الهيوريستيك

كاشف تأثير وزن محمول سبب
LLM +0.85 2.5 +2.13 "الक्रोم الشائع في الروبوتات, كُكيز + المراجع مثير للشكM SK4
هُريستيكية أواخر -0.77 ≥ ≤2.5 ±-1.92 ♪ ♪ 88% إنسان ( مع كل الأدلة
الهيوريستيكس ( مبكرة) -0.77 ♫
موظف المستخدم -0.20 ≥ 1.0 ♫ -0.20 ♪ المستخدم- يظهر العميل طبيعياً ♫
العنوان -0.15
السلوكي -0.10
واجهة клиент 0.00
عمر الإصدار -0.05 | 0.8
عدم التماسك -0.05 ≥ \0.8 -0.04
IP 0.00

هذه هي الحالة المثيرة للاهتمام - قامت الـ LLM بتصنيفها كبوت محتمل في حين أن جميع أجهزة الاستشعار ثابتة تقول الإنسان

{
  "ai.prediction": "bot",
  "ai.confidence": 0.85,
  "ai.learned_pattern": "Browser string suggests Chrome, common in bots. Presence of cookies and a specific referer also points to a potential bot."
}

يُسجل منطق الـ LLM ــ ' ــ كإشارة تُرسل مرة أخرى إلى نظام التعلم ـــ . ــ مع مرور الوقت ــ, ــ إذا كان هذا النمط يستمر في الظهور و يتم تأكيده كحركة الروبوت ـــ, ــ فإن الوزن الهيدريّسي سوف يتناسب ــ

ملاحظة:

  1. جري هدرائي مرتين - مبكراً (قبل كل أجهزة الكشف ,) وأخيرا .(بعد كل الأدلة , ). قالوا كلاهما .

  2. لم يوافق الـ LLM - لقد لاحظ النمط الذي لم يتمكن من إكتشافه أجهزة الاستشعار الميكانيكية. تأثيره +2.13 مع وزنه يعادل جزئياً التأثير الهيوريستيM SK3s -3.46.

  3. لا بصمة أصابع -ClientSide أعاد 0 لأن JS لم يكن قد تم تنفيذه بعد'M SK3 في متصفح حقيقيMSC4 سوف يضيف هذا إشارة إنسانية أكثرMST5

  4. الحكم النهائي: تسمح - حتى مع إشتاؤه LLM' , الدلائل المجمعة لا تزال تفضّل البشر botType: "Scraper" العلم يعني أنه يُراقب

تسلسل التصنيف يظهر التوتر:

الفئة النتيجة الوزن ملاحظات S
الهيوريستيكس -3.46
الذكاء الصناعي +2.13 ♫ ♫ ♫ 2.5 ♫
العميل المستخدم -0.20
سرية -0.15
سلوكي -0.10
الجزء العلوي للزبائن 0.00 \1.8 ♪ لا نحصل على بصمة إصبعية بعد
عمر الإصدار -0.04
عدم توازن
IP 0.00

مجموع الدرجات المُزنة: -1.86 → البشر يفوزون, لكن معارضة الـ LLM ' تُلاحظ

رؤية أساسية: لا يثق النظام في أي جهاز كاشف وحيد. عندما يختلفون. عندما يتم تقييم الأدلة، يفوز الغالبية. لكن آراء الأقلية يتم تسجيلها للتعلم.

مهم: هذا المخرج ال verbose هو demo-onlyM SK1 في الإنتاج, تحصل على استجابة خفيفة من خلال مخطوطات HTTP (X-Bot-Confidence, X-Bot-RiskBand, وغيره.) أو ببساطة context.IsBot() تأكد. ال JSON الكامل هو للحل والضبط - أنت ' لن ترسل هذا أبدا إلى العملاءM SK3


باستخدام النتائج

if (context.IsBot())
    return Results.StatusCode(403);

var score = context.GetBotConfidence();  // 0.0–1.0
var risk  = context.GetRiskBand();       // Low/Elevated/Medium/High

حماية النقاط النهائية

app.MapGet("/api/data", Secret).BlockBots();
app.MapGet("/sitemap.xml", Sitemap)
   .BlockBots(allowVerifiedBots: true);

مستويات المخاطر تقود التحرك

الأخطار الثقة الإجراء recommandé
منخفض < 0.3
مرتفعة 0.3–0.5 سجل %4 معدل 5 حد 6
متوسط 0.5–0.7 تحدي S
عالي > 0.7 4 بلاك 5

إكتشاف الذكاء الاصطناعي (إختياري)

ليس مطلوبا - لكن مفيدا لالتقاط التكنلوجيا المتقدمة .

كاشف عصبي (سرعة,تعلمM SK2

النظام يحتوي على كاشف حراري يستخدم regression logistic مع وزنات تعلمة ديناميكيا. إنه يبدأ بإعدادات تلقائية معقولة ويتطور على أساس ردود الفعل للكشف.

تأخير نموذجي: 1–5ms

{
  "BotDetection": {
    "AiDetection": {
      "Heuristic": {
        "Enabled": true,
        "LoadLearnedWeights": true,
        "EnableWeightLearning": true
      }
    }
  }
}

الميزات يتم استخراجها ديناميكيا - النماذج الجديدة تحصل تلقائيا على الوزن الលំនាំي وتتعلم مع مرور الوقت . النظام يكتشف ما هو مهم إختيارك حركة المرور.

Ollama LLM (سبب عميق)

يلتقط الروبوتات المنحرفة التي تبدو "fineM SK1 إلى قواعد سريعة. تستخدم أولاما من أجل إستنتاج LLM محلي.

ollama pull gemma3:1b
{
  "BotDetection": {
    "AiDetection": {
      "Provider": "Ollama",
      "Ollama": { "Model": "gemma3:1b" }
    }
  }
}

الذكاء هو فشل-safe - إذا كان ' ينزل


نظام التعلم: متكيف, غير محفزM SK2 سعيد

لائحة بلاك ثابتة تذهب إلى حالة جامد. المهاجمين يكيفون. إذن هذا النظام يتعلم

flowchart LR
    N[Neutral] -->|repeated bad activity| S[Suspect]
    S -->|confirmed| B[Blocked]
    B -->|no activity| S
    S -->|stays clean| N

    style B stroke:#ef4444,stroke-width:2px
    style S stroke:#eab308,stroke-width:2px
    style N stroke:#10b981,stroke-width:2px

الأنماط تتحلل مع مرور الوقت:

  • يتم إعادة توزيع IP
  • يتم إصلاح برمجيات خاطئة
  • تتغير حركة المرور بشكل طبيعي

بدون تدمير تقوم بحظر المستخدمين الشرعيين إلى الأبد

{
  "BotDetection": {
    "Learning": {
      "Enabled": true,
      "ScoreDecayTauHours": 168,
      "GcEligibleDays": 90
    }
  }
}

بوابة YARP: حماية حافة لتطبيقك

هناك أيضاً دوكر-أول ناظف YARP عكسي التي تقوم بكشف قبل طلبات تضغط على تطبيقك.

flowchart LR
    I[Internet] --> G[YARP Gateway]
    G -->|Human| App[Your App]
    G -->|Search Engine Bot| App
    G -->|Malicious| Block[403]

تشغيله في خط واحد:

docker run -p 80:8080 \
  -e DEFAULT_UPSTREAM=http://your-app:3000 \
  scottgal/mostlylucid.yarpgateway

تعمل على:

  • لينكس
  • macOS
  • الحواسيب
  • ARM (yesM SK1 Raspberry Pi)

للتوجيه حسب الطلب

services:
  gateway:
    image: scottgal/mostlylucid.yarpgateway
    volumes:
      - ./yarp.json:/app/config/yarp.json

نظام تصنيع معقول

{
  "BotDetection": {
    "BotThreshold": 0.7,
    "BlockDetectedBots": true,
    "EnableAiDetection": true,
    "Learning": { "Enabled": true },
    "PathPolicies": {
      "/api/login": "strict",
      "/sitemap.xml": "allowVerifiedBots"
    }
  }
}

أين يذهب هذا

هذا هو الجزء 1 (üleview). الأجزاء التالية تعمق أكثر

خريطة الطريق المستقبلية:

  • نموذج مبني على RAG- يتطابق مع المداخلات الفيكتورية
  • إستنتاج نموذج صغير محلي من خلال لاماما شارب /NX
  • تشابه لغوي لكشف نمط الهجمات الجديدة

إذا أردت كاشف روبوت يمكنك فهم, توسيع, و تجري في أي مكان, هذه السلسلة لك


الروابط

لا ترخيص – دعامه عامة. استخدمها كما تريد

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.