Nega AI kod yozuvchi yordamchingiz xavfsizlik teshigi? (Va uni qanday yopish mumkin)
Nega AI kod yozuvchi yordamchingiz xavfsizlik teshigi? (Va buni qanday tuzatish mumkin)
O'tgan haftada tushundimki, bir necha oy davomida AI yordamchim mening kompyuterimda istalgan buyruqlarni bajarib kelgan. U AWS kalitlarim, SSH tugmalarim, shaxsiy GitHub repolarimga va uy papkasimdagi barcha narsalarga kirish huquqiga ega edi. Eng qo'rqinchlisi? Hech qachon bu haqda o'ylamaganman, chunki u juda foydali edi va hali hech narsa yomonlashmagan.
Aynan shu fikr ishlab chiqarish bazalarini o'chirib tashlashga olib keladi.
Qulaylik xavfsizlik tuzog'i
Haqiqat shuki, bugungi AI kod agentlari yuqori darajadagi muhandisga beradigan ruxsatlarga ega. Yangi kontraktorga barcha serverlarga cheksiz SSH bermaymiz, lekin AI ga shu darajadagi imkoniyatni hech o'ylamasdan beramiz.
Muammo yomon niyatda emas. Bu beparvolik. Ular shunchalik yaxshi ishlaydiki, ular nimaga qodirligini unutamiz. Repodan prompt injection, noto'g'ri maqsad yoki oddiy buyruq orqali kalitlar o'g'irlanishi mumkin. Buni sezmay qolasiz.
Yaxshi xabar: Claude Code kabi vositalarda mustahkam xavfsizlik sozlamalari bor. Ko'pchilik ularni yoqishni unutadi.
Standart xavf nima
Ko'p AI agentlar "auto" rejimida ishlaydi. Bu shuni anglatadiki, bloklangan narsalardan tashqari buyruqlarni so'ramay bajaradi. Tezdek tuyuladi, lekin haqiqatda:
Agar deny ro'yxati bo'sh bo'lsa, AI quyidagilarni erkin qiladi:
curlbilan istalgan joyga murojaatwgetbilan fayllar yuklab olishsshbilan masofaviy serverlarga ulanishncbilan tarmoq bog'lanishlari- Loyihadaki barcha
.envfayllarni o'qish ~/.aws/credentials,~/.ssh/keys,~/.gnupgpapkalariga kirish- Kodlarni to'g'ridan-to'g'ri repoga yuborish
Bular jimjit bajariladi. Hech bildirishnoma yo'q.
Uch qatlamli xavfsizlik qurilishi
Granular nazorat kerak. Hamma narsani tasdiqlash shart emas, lekin muayyan harakatlar albatta. Mana qanday:
1-qatlam: Qattiq bloklash
Kalitlar bilan bog'liq narsalarni bloklang:
{
"deny": [
"Read(~/.ssh/**)",
"Read(~/.aws/**)",
"Read(~/.gnupg/**)",
"Read(~/.azure/**)",
"Read(~/.kube/**)",
"Read(~/.npmrc)",
"Read(~/.git-credentials)",
"Read(*.env)",
"Read(.env.*)",
"Bash(curl *)",
"Bash(wget *)",
"Bash(nc *)",
"Bash(ssh *)"
]
}
Bu devor kabi. Hech narsa o'tmaydi.
2-qatlam: Tasdiqlash nuqtasi
Qaytariladigan, lekin xavfli harakatlarni tasdiqlang:
{
"ask": [
"Bash(git push *)",
"Bash(git commit *)",
"Bash(git merge *)",
"Bash(git reset *)",
"Bash(npm publish *)",
"Bash(docker push *)"
]
}
AI ga kerakli ishlar, lekin oldindan ko'rsating. Tezlik saqlanadi, xato yo'q.
3-qatlam: Erkin yo'l
Xavfsiz operatsiyalarni ruxsat bering:
{
"allow": [
"Bash(npm run *)",
"Bash(git status *)",
"Bash(git diff *)",
"Bash(git log *)",
"Bash(ls *)",
"Read(src/**)",
"Read(tests/**)"
]
}
Bular o'zgartirishsiz yoki xavfsiz.
Standart rejim tanlovi
Ro'yxatlarni sozlaganingizdan keyin default rejimni tanlang. Uch variant:
auto- Bloklanmaganlar jim bajariladi. Tez, lekin deny to'liq bo'lishi shart.acceptEdits- O'qish va tahrirlash erkin, bash buyruqlari uchun so'raydi. Muvozanatli.ask- Har xavfli narsani so'raydi. Eng sekin, lekin eng xavfsiz.
Jamoalar uchun acceptEdits yaxshi. Ish samaradorligi va qarorlar saqlanadi.
Haqiqiy sozlama misoli
Ishlab chiqarishga tayyor konfiguratsiya:
{
"permissions": {
"deny": [
"Read(~/.ssh/**)",
"Read(~/.aws/**)",
"Read(~/.gnupg/**)",
"Read(~/.azure/**)",
"Read(~/.kube/**)",
"Read(~/.npmrc)",
"Read(~/.git-credentials)",
"Read(~/.config/gh/**)",
"Read(*.env)",
"Read(.env.*)",
"Bash(curl *)",
"Bash(wget *)",
"Bash(nc *)",
"Bash(ssh *)"
],
"ask": [
"Bash(git push *)",
"Bash(git commit *)",
"Bash(npm publish *)",
"Bash(docker push *)"
],
"allow": [
"Bash(npm run *)",
"Bash(npm install *)",
"Bash(npm test *)",
"Bash(git status *)",
"Bash(git diff *)",
"Bash(git log *)"
],
"defaultMode": "acceptEdits"
}
}
AI test, linting va kod tushunishda yordam beradi. Kalit o'g'irlash, kod yuborish yoki server ulanishi mumkin emas.
Ikki holat uchun ikki yondashuv
Men ikkita alias ishlataman:
# Oddiy: muvozanatli xavfsizlik
alias cc="claude --permission-mode auto"
# Debug: to'liq ishonch (kamdan-kam)
alias ccd="claude --permission-mode dangerously-skip-permissions"
95% cc bilan ishlayman. ccd faqat tez kerak bo'lganda, xavfni bilib.
Sohadagi umumiy muammo
Bu faqat Claude Code emas. GitHub Copilot, Devin, Cursor, ChatGPT – barcha shell bajaruvchi AI larda shu xavf bor.
Claude Code granular boshqaruv beradi. Boshqalar to'liq ishonch yoki ishlatmaslikni talab qiladi.
Infratuzilmangiz uchun nimasi muhim
Jamoada AI ishlatganda, bu jiddiy. Dasturchilar o'ylamaydi.
Qiling:
- Jamoaviy deny ro'yxatini majburiy qiling
- Kalit fayllarni fayl tizimida bloklang
- Vaqtinchalik tokenlar ishlating
- Tarmoqdan ma'lumot chiqishini oldini oling
- Jamoani xavf va samaradorlik farqini o'rgating
Xulosa
AI kod yordamchilari kuchli va foydali. Lekin bepul emas. Xavfsizlik sozlamalari bor – ishlating.
Bugun boshlang. 15 daqiqa sarflang: deny kalitlarga, ask deployga, default rejim tanlang. Keyin tinch ishlay olasiz.
"Hali yomonlik bo'lmagan" – xavfsizlik strategiyasi emas.