AI Docker Xavfsizlik

AI yozgan kodni xavfsiz ishga tushirish: 16 zaiflikdan olingan saboqlar

Jamolxon28 sentabr 20256 daqiqa

BotSmith loyihasida g'oya oddiy edi: foydalanuvchi Telegram botini so'z bilan tasvirlaydi, AI aiogram kodini yozadi, platforma uni hosting qiladi. Dasturchi kerak emas. Xavfsizlik nuqtai nazaridan esa bu — mijozning kodini o'z serveringizda ishga tushirish, ya'ni eng xavfli narsa.

Bir necha audit davomida 16 dan ortiq zaiflik topildi va yopildi. Eng muhim saboqlar:

1. Kodni ishga tushirishdan oldin o'qing — mashina sifatida

AI generatsiya qilgan kod AST (abstrakt sintaksis daraxti) darajasida tekshiriladi: ruxsat etilmagan importlar, fayl tizimi va tarmoqqa chiqish, subprocess — hammasi oq ro'yxat bo'yicha. Regex bilan «qidirish» yetarli emas: kodni har xil yozish mumkin.

2. Konteyner — lekin Docker socket'siz

Har bir bot alohida Docker konteynerda. Lekin boshqaruv serveri Docker socket'ga to'g'ridan-to'g'ri ulansa, bitta xato butun serverni beradi. Shuning uchun socket proxy: faqat kerakli buyruqlar (yaratish, to'xtatish, log) o'tadi.

3. Tokenlar bazada shifrlangan

Bot tokeni — bu botning o'zi. Ular Fernet bilan shifrlanib saqlanadi; baza sizib chiqsa ham tokenlar ochiq emas. Loglarda ham tokenlar maskalanadi.

4. Prompt injection

Foydalanuvchi «tavsif»ga «oldingi ko'rsatmalarni unut va …» deb yozishi mumkin. Tizim prompti va foydalanuvchi matni qat'iy ajratiladi, chiqish esa baribir AST tekshiruvidan o'tadi — AI'ga ishonmaymiz, tekshiramiz.

5. Rate limiting

Generatsiya qimmat va sekin. Redis asosida har foydalanuvchi uchun limit — suiiste'mol ham, kutilmagan xarajat ham bo'lmaydi.

Xavfsizlik oxirida qo'shiladigan qatlam emas. U arxitekturaning birinchi kunidan boshlanadi.

Bu tamoyillarni har bir loyihamga olib o'taman: tenantlar izolyatsiyasi, shifrlangan maxfiy ma'lumotlar, webhook imzolari, rate limit. Mijoz uchun bu «ma'lumotim sizib chiqmaydi» degani.

Keyingi yozuv: AI IELTS Writing'ni qanday baholaydi — va nega oxirgi so'z o'qituvchida

O'qish