Botxona

Xavfsizlik (texnik)

Sandbox

Har bir bot alohida Docker konteynerida, quyidagi cheklovlar bilan ishlaydi: --read-only fayl tizimi (faqat DATA_DIR yozilishi mumkin), --cap-drop ALL, no-new-privileges, --pids-limit, alohida (root bo'lmagan) foydalanuvchi. Ixtiyoriy ravishda server gVisor (runsc) bilan qo'shimcha syscall-darajasidagi izolyatsiya bilan ham ishlashi mumkin.

Tarmoq rejimlari

Server darajasidagi sozlama bot va tashqi internet o'rtasidagi tarmoq rejimini belgilaydi:

  • isolated (eng qattiq) — har bir bot alohida, internetga chiqishsiz tarmoqda ishlaydi, faqat platforma proksisi orqali Telegram API'ga murojaat qila oladi. Bot boshqa botlarni yoki tashqi internetni umuman ko'ra olmaydi.
  • shared — botlar umumiy tarmoqda (bir-birini ko'rmasligi ICC o'chirilgan holda ta'minlanadi), lekin tashqi internetga chiqish ochiq — bu tashqi AI API yoki boshqa xizmatlarga murojaat qilishi kerak bo'lgan botlar uchun mos.

Sizning botingiz qaysi rejimda ishlayotgani serverning tarmoq sozlamasiga bog'liq. Agar botingiz tashqi internetga (masalan OpenAI API, valyuta kursi xizmati) murojaat qilishi kerak bo'lsa va u ishlamasa, bu ehtimol server isolated rejimda ekanini bildiradi — qo'llab-quvvatlash xizmatiga murojaat qiling, kerakli tarmoq sozlamasini birga hal qilamiz.

O'z-o'zini tekshirish

Server ishga tushganda o'zining izolyatsiyasi haqiqatan ishlayotganini avtomatik tekshiradi (ikkita sinov konteyner bir-biriga yeta olmasligini tasdiqlash orqali). Natija muvaffaqiyatsiz bo'lsa, bu administratorlarga signal beriladi — bu operatsion masala, foydalanuvchi tomonidan hal qilinmaydi.

Bloklangan portlar

25-port (SMTP) bloklangan — spam yuborishning oldini olish uchun. Botingiz elektron pochta yuborishi kerak bo'lsa, SMTP o'rniga tashqi email-API xizmatidan (masalan SendGrid, Mailgun) foydalaning.

Xavfsizlik skanerining qattiq taqiqlari

Yuklangan kod avtomatik skanerdan o'tadi. Quyidagilar topilsa, bot hech qachon ishga tushirilmaydi (qizil, muzokara qilinmaydi):

  • Kripto-mayning belgilari (masalan xmrig, stratum+tcp, coinhive).
  • Reverse-shell naqshlari (/dev/tcp/..., nc -e, bash -i >&).
  • Obfuskatsiyalangan kodni bajarish (exec/eval + base64/zlib orqali yashirilgan kod).
  • Internetdan skript yuklab to'g'ridan-to'g'ri bajarish (curl ... | sh).
  • DDoS vositalari belgilari (hping3, slowloris, SYN/UDP flood).
  • Docker socket yoki konteynerdan chiqishga urinish (docker.sock, /proc/1/).

Bundan tashqari, SMTP ishlatish yoki qimor mavzusidagi so'zlar sariq (warn) sifatida belgilanadi — bular qo'lda ko'rib chiqiladi, avtomatik bloklanmaydi.

Keyingi qadam

Barcha son ko'rsatkichli cheklovlar (RAM, hajm, fayllar soni): Cheklovlar.