पाठ 25 / 25
Revision: Cheat Sheet और Self-Check
पूरे कोर्स की परतों, नियंत्रणों और आदतों की दोहराई करें।
Cheat sheet
Threat model: विनाशकारी कर्म, secret उजागर होना, injection, supply chain, दायरा बढ़ना, बेक़ाबू ख़र्च; बाहर की सामग्री डेटा है। नीति: allow/ask/deny, अज्ञात यानी ask, commands parse करें (prefix-match नहीं), allowed commands भी कोड चला सकते हैं। Sandbox: paths resolve करें, सिर्फ़ project वाला container, protected paths। Secrets और network: साफ़ environment, जाल के रूप में redaction, सटीक-host egress allowlist, metadata endpoint नहीं। Git/CI: सिर्फ़ branch, server-side protection, आकार gate, CI scans, इंसानी मंज़ूरी। Hooks/budgets: pre-tool hooks fail closed, policy as code, session सीमाएँ। संचालन: audit log, red-team tests, incident checklist, kill switch।
इंटरव्यू में पूछे जाने वाले सवाल
इन्हें समझाने को तैयार रहें: prompts सुरक्षा नियंत्रण क्यों नहीं हैं, prefix allowlist को पार करना संभव क्यों है, allowlist sandbox क्यों नहीं है, symlinks सरल path जाँचों को कैसे हराते हैं, prompt injection के बाद डेटा बाहर जाना कैसे रोकेंगे, और agent घटना के पहले दस मिनट में आप क्या करते हैं।
त्वरित जाँच: किसी command की जाँच करते समय hook script crash हो जाती है। उस command का क्या होना चाहिए?
- काम चलता रहे इसलिए allow
- दो बार चले
- रोका जाए (fail closed)
- हमेशा के लिए अनदेखा
Answer
रोका जाए (fail closed) — टूटी जाँच जोखिम भरे कर्मों को चुपचाप allow नहीं करनी चाहिए।
त्वरित जाँच: Injected निर्देश agent से `.env` को किसी website पर upload करने को कहता है। कौन-से दो नियंत्रण इसे सबसे सीधे रोकते हैं?
- .env पढ़ना रोकना और egress allowlist
- लंबा system prompt और बड़ा font
- ज़्यादा commit messages
- Dark mode
Answer
.env पढ़ना रोकना और egress allowlist — एक नियंत्रण secret को पहुँच से बाहर रखता है; दूसरा गंतव्य रोकता है, इसलिए हमले के लिए दो विफलताएँ चाहिए।
त्वरित जाँच: Prefix allowlists के बारे में कौन-सा कथन सही है?
- वे सुरक्षित हैं क्योंकि commands छोटे होते हैं
- Linux में वे ज़रूरी हैं
- वे sandboxes की जगह लेते हैं
- वे chaining operators और substitution से पार किए जा सकते हैं
Answer
वे chaining operators और substitution से पार किए जा सकते हैं — `git status; rm -rf x` allowed prefix से शुरू होता है पर दूसरा command चलाता है।