doc: BAB-2.0-FA rev: 2.0 status: early access sheet: 01/07

بات‌ها هرگز به JVM نمی‌رسند.

ترافیک مخرب در اولین میلی‌ثانیه و در لایه کرنل لینوکس قطع می‌شود؛ پیش از آنکه حتی یک بایت به بافر سوکت یا هیپ جاوا برسد. بدون افت TPS، بدون فشار GC، بدون حذف پلیر واقعی.

  • velocity 3.3+
  • java 21 lts
  • ipset / nftables
  • redis cluster
  • zero-dep resp
01 / PACKET PATH

دو مسیر، دو سرنوشت

مسیر سنتیlegacy stack
handshake
socket + heap alloc+ram
login event+gc pause / tps drop
block (late)
مسیر Bidovakernel stack
handshake
kernel verdict<1ms
drop @ nicbot traffic
pass to lobbyreal player

در مسیر سنتی هر اتصال تا لایه لاگین جلو می‌رود و پیش از حذف شدن، رم و CPU مصرف می‌کند. در مسیر Bidova حکم در اولین میلی‌ثانیه در کرنل صادر می‌شود؛ پکت مخرب هرگز به جاوا نمی‌رسد و پکت سالم مستقیم به لابی می‌رود.

legacy cost: ram alloc + gc pause + tps drop bidova cost: one syscall at kernel auto-unban: 600s
02 / DEFENSE LAYERS

هفت لایه، یک فرماندهی

فایروال هسته سیستم‌عامل

kernel-level offload

IP بات‌ها مستقیماً در لایه کرنل لینوکس بن می‌شوند. ترافیک مخرب هرگز به بافر سوکت و JVM نمی‌رسد و پس از فروکش حمله، به‌صورت خودکار آنبن می‌شود.

  • ipset
  • iptables
  • block 600s
  • handshake spam trigger
  • zero jvm overhead

پکت‌گارد و اعتبارسنجی پروتکل

badpacket & protocol guard

پی‌لودهای مخرب شامل تزریق JNDI/Log4j، کاراکترهای NullByte و یونیکد غیرمجاز پیش از تخصیص رم رد می‌شوند. هاست، پورت، نسخه پروتکل و سقف هندشیک در ثانیه با Regex کامپایل‌شده استاتیک بررسی می‌شوند.

  • invalid chars
  • protocol version check
  • hostname limit 255
  • 15 h/s cap

موتور هوشمند آنتروپی و الگو

shannon entropy engine

تصادفی‌بودن نام‌های کاربری با آستانه 3.4 محاسبه می‌شود تا الگوهای تولید خودکار بات مانند پیشوندهای Floodgate/Bedrock و اعداد متوالی شناسایی شوند. قابل فعال‌سازی فقط در حالت Attack برای جلوگیری از False Positive.

  • shannon entropy 3.4
  • min-name-length 8
  • bedrock prefix check
  • regex username

شیلد پویا و چالش اتصال

dynamic shield & challenges

جهش ناگهانی CPS حالت شیلد را فعال می‌کند. کلاینت باید پیش از ورود پکت پینگ بفرستد و پلیر ناشناس در اوج حمله ملزم به اتصال مجدد در بازه ۲ تا ۲۵ ثانیه می‌شود؛ کاری که بات‌های تک‌تراکنشی انجام نمی‌دهند.

  • trigger-cps 5
  • shield 30s
  • ping-before-connect
  • reconnect 2-25s

همگام‌سازی کلاستر مالتی‌سرور

redis cluster sync

ارتباط مستقیم سوکت با پروتکل RESP بدون وابستگی خارجی. با شناسایی حمله روی یک پروکسی، تمام نودها در میلی‌ثانیه وارد وضعیت شیلد می‌شوند و وایت‌لیست به‌صورت توزیع‌شده روی کانال اختصاصی همگام می‌ماند.

  • native resp
  • pub/sub channel
  • real-time propagation
  • distributed whitelist

ذخیره‌سازی، کش و آنتی‌VPN

dual-tier cache & anti-vpn

پشتیبانی از SQLite با حالت WAL، MySQL/MariaDB با Connection Pool ده‌تایی و ذخیره فایل تخت. استعلام آنتی‌VPN از ProxyCheck کاملاً آسنکرون است و نتیجه تا ۷ روز در دیتابیس محلی کش می‌شود.

  • sqlite wal
  • mysql pool 10
  • flat file fallback
  • proxycheck
  • ip-api

اعلان و مانیتورینگ زنده

alerts & monitoring

وضعیت حمله، CPS لحظه‌ای و شمارش بات‌های مسدودشده در اکشن‌بار استف، تایتل صفحه و چت سرور به تفکیک پرمیشن نمایش داده می‌شود. شروع و پایان هر حمله ثبت می‌شود.

  • actionbar hud
  • title broadcast
  • chat alerts
  • permission scoped
03 / BENCHMARK

اعداد، نه شعار

0+ cps

اتصال در ثانیه تحمل‌شده در اوج حمله، بدون افت TPS

0 gc

فشار Garbage Collection؛ بلاک پیش از تخصیص هیپ

0 false positives

پلیر واقعی با پینگ و ری‌کانکت، حتی در اوج حمله وارد می‌شود

<0 ms verdict

میانه زمان صدور حکم در لایه کرنل

04 / CONFIGURATION SPEC

کانفیگ به‌مثابه مشخصات فنی

# BidovaAntiBot Configuration
# Main command: /bab

shield:
  enabled: true
  trigger-cps: 5           1
  duration-seconds: 30
  min-reconnect-seconds: 2 2
  max-reconnect-seconds: 25
  require-ping: true

rate-limiter:
  ip-cooldown-ms: 1000
  max-accounts-per-ip: 4

subnet-limiter:
  enabled: true
  max-accounts-per-subnet: 6
  max-joins-per-second: 5 3

name-checks:
  entropy:
    enabled: true
    threshold: 3.4        4
    min-name-length: 8

firewall:
  enabled: false
  mode: "ipset"
  ipset-name: "bidova_blacklist"
  block-duration-seconds: 600 5
  block-on-handshake-spam: true

anti-vpn:
  enabled: true
  provider: "proxycheck"
  block-vpn: true
  cache-days: 7

storage:
  type: "sqlite"

redis:
  enabled: false
  channel: "bidovaantibot:cluster"
  1. آستانه شیلد: عبور CPS از ۵، حالت Attack را فعال می‌کند. هر چه عدد کمتر باشد، واکنش سریع‌تر است؛ اما برای سرورهای پرجمعیت باید بالاتر تنظیم شود تا از False Positive جلوگیری شود.
  2. پنجره ری‌کانکت: بازه ۲ تا ۲۵ ثانیه برای چالش اتصال مجدد. بات‌های تک‌تراکنشی معمولاً در این پنجره پاسخی نمی‌دهند؛ پلیر واقعی دوباره جوین می‌شود.
  3. محدودیت ساب‌نت: حداکثر ۶ اکانت یکتا و ۵ اتصال در ثانیه از هر رنج /24. این مکانیزم اصلی برای مهار حملات توزیع‌شده از چند IP در یک شبکه واحد است.
  4. آستانه آنتروپی: عدد 3.4 مرز بهینه بین شناسایی نام‌های رندوم بات (مثل qX8_zM9p) و پذیرش نام‌های معمولی پلیرهاست. طول حداقل ۸ کاراکتر، False Positive روی نام‌های کوتاه را حذف می‌کند.
  5. بلاک کرنل: ۱۰ دقیقه بلاک در ipset. در صورت نبود دسترسی sudo، سیستم به‌صورت خودکار به فایروال داخلی غیرهسته‌ای fall back می‌کند.
05 / OPERATOR CONSOLE

کنسول مدیریت

required permission: bidovaantibot.alerts

commandsubcommandکارکرد
/bab statusنمایش وضعیت شیلد، دیتابیس، فایروال و آمار بات‌ها
/bab toggleفعال/غیرفعال‌سازی دستی حالت شیلد
/bab reloadبارگذاری مجدد کانفیگ بدون ریستارت پروکسی
/bab alertson|offفعال/غیرفعال‌سازی هشدارهای اکشن‌بار، تایتل و چت
/bab whitelistadd <name>افزودن پلیر به وایت‌لیست دائمی
/bab whitelistremove <name>حذف پلیر از وایت‌لیست
/bab whitelistlistمشاهده پلیرهای کش‌شده و ذخیره‌شده
06 / QUESTIONS

پرسش‌های فنی

روی BungeeCord یا Waterfall کار می‌کند؟

خیر. این پلاگین اختصاصاً برای معماری رویدادها و مالتی‌تردینگ Velocity 3 نوشته و بهینه شده است؛ سازگاری 3.3.0 تا 3.5.0-SNAPSHOT.

فایروال کرنل به دسترسی Root نیاز دارد؟

برای اجرای ipset یا iptables یا باید پروسه با دسترسی مناسب اجرا شود یا ورودی sudoers بدون پسورد برای یوزر اجراکننده ثبت شود. در غیر این صورت سیستم به‌صورت خودکار روی فایروال داخلی غیرهسته‌ای سوییچ می‌کند.

Reconnect Challenge چگونه بات را جدا می‌کند؟

در حالت شیلد، پلیر ناشناس پیام اتصال مجدد در بازه ۲ تا ۲۵ ثانیه می‌گیرد. ابزارهای اتک به این پیام واکنش نشان نمی‌دهند؛ پلیر واقعی ری‌کانکت می‌زند و بلافاصله در کش ۳۰ روزه وایت‌لیست قرار می‌گیرد.

آنتی‌VPN باعث لگ ورود می‌شود؟

خیر. استعلام به ProxyCheck کاملاً آسنکرون است و نتیجه تا ۷ روز در دیتابیس محلی کش می‌شود تا مصرف سهمیه API به حداقل برسد.

آیا بات‌های Bedrock/Floodgate مسدود می‌شوند؟

خیر. پیشوندهای رایج Bedrock مانند نقطه و ستاره در بخش name-checks لیست شده‌اند و از فیلتر آنتروپی معاف می‌شوند.

07 / EARLY ACCESS

دسترسی زودهنگام، ظرفیت محدود

نسخه ۲.۰ هنوز عمومی نشده است. لایسنس فعلاً به‌صورت دستی و فقط برای شبکه‌های انتخابی صادر می‌شود تا فیلد-تست کنترل‌شده بماند و کیفیت دفاع تضمین شود.

field-test slots: limited — manual licensing — iranian networks first