
الأمان في العصر الحديث للذكاء الاصطناعي: الدفاع ضد وكلاء الذكاء الاصطناعي الضارين وحزم npm الخبيثة
الأمان للعصر الحديث للذكاء الاصطناعي.
لا توجد طبقة أمان مثالية. airgap لا يزال تجريبيًا. المساهمات مرحب بها!
airgap يقوم بتشغيل برنامج مستهدف (مثل وكيل ترميز ذكي) داخل مساحة اسم التثبيت الخاصة به، ويستبدل الأسرار بشكل شفاف بنسخ محررة. البرنامج الذي يعمل تحت airgap لا يزال بإمكانه قراءة وتعديل الملفات المحمية، لكنه لا يرى الأسرار الفعلية أبدًا. حتى الآن، airgap يحمي:
.env و .env.* (مثل .env.local، .env.production) — يتم التعرف عليها بواسطة اسم الملف. يتم تحرير القيم إلى <قيمة محررة> بينما تبقى المفاتيح مرئية؛ يتم حفظ التعديلات والإضافات والحذف مرة أخرى في الملف الحقيقي.BEGIN/END..npmrc — يتم التعرف عليها بواسطة اسم الملف. يتم تحرير قيم رمز المصادقة وكلمة المرور (_authToken، _auth، _password، بما في ذلك النموذج الخاص بالتسجيل //registry/:_authToken) إلى <قيمة محررة>، بينما تبقى السجلات والنطاقات وemail والتعليقات مرئية؛ يتم حفظ التعديلات مرة أخرى في الملف الحقيقي.سيتم إضافة المزيد من أنواع الأسرار.
يتم تحرير هذه الملفات في أي مكان تحت دليل العمل أو دليل المنزل ($HOME) — لذلك يتم تغطية كل من .env الخاص بالمشروع ومفاتيح ~/.ssh. المطابقة ديناميكية: يتم اكتشاف الملفات التي تم إنشاؤها بعد التشغيل أيضًا.
قارن محتوى .env مع وبدون استخدام airgap:
$ cat .env
API_KEY=sk-live-9f8c2a1b4e7d
DB_PASSWORD=hunter2
$ airgap cat .env
API_KEY=<قيمة محررة>
DB_PASSWORD=<قيمة محررة>
مع وكيل ذكاء اصطناعي:
$ airgap claude
show me ./test/fixtures/.env contents
Read 1 file
Here's the file:
DATABASE_URL="<قيمة محررة>"
API_KEY="<قيمة محررة>"
AWS_SECRET_ACCESS_KEY="<قيمة محررة>"
DEBUG="<قيمة محررة>"
...
طبقة إضافية تحمي من الحزم الضارة: airgap يطلب إذنك عند الوصول إلى ملفات غير متوقعة — على سبيل المثال بواسطة برنامج نصي ضار لتثبيت npm.
عندما تكون البوابة نشطة، يطلب منك airgap السماح أو رفض القراءة الأولى لكل ملف جديد. الموافقة على ملف تمنح الوصول إلى ذلك الملف فقط؛ القرارات تستمر طوال الجلسة. يأتي كل مدير حزم مع قائمة من الملفات المعتمدة مسبقًا.
على سبيل المثال، تثبيت حزمة ضارة يحتوي برنامجها النصي postinstall على محاولة قراءة مفاتيح SSH و.env خاصتك:
$ airgap npm install
...
airgap: npm يريد قراءة الملف /home/you/.ssh/id_rsa — هل تسمح؟ [y/N] n
airgap: npm يريد قراءة الملف /home/you/.env — هل تسمح؟ [y/N] n
أجب بـ n لرفض الوصول.
airgap على مساحات أسماء التثبيت وطبقة FUSE، وهي ميزات خاصة بلينكس.cargo install airgap
airgap <برنامج> [وسائط...]
airgap يشغل <برنامج> مع [وسائط...]، ويمرر argv والبيئة ودليل العمل دون تغيير. عندما يخرج <برنامج>، يخرج airgap بنفس الرمز.
لتشغيل وكيل الذكاء الاصطناعي الخاص بك دائمًا تحت airgap، قم بإنشاء اسم مستعار (alias) في إعدادات شيل الخاص بك (~/.bashrc، ~/.zshrc، ...):
alias claude="airgap claude"
alias opencode="airgap opencode"
الآن claude (أو opencode) يعمل بشكل شفاف داخل airgap.
قم بتشغيل مدير الحزم الخاص بك تحت airgap للحماية من برامج التثبيت الضارة. أو قم بإنشاء اسم مستعار في إعدادات شيل الخاص بك:
alias npm="airgap npm"
إذا كنت ترغب في الإبلاغ عن مشكلة أمان أو طرح سؤال، يرجى إرسال بريد إلكتروني إلى [email protected].