تأمين سكربتات Bash المُنشأة بواسطة الذكاء الاصطناعي
يكتب الذكاء الاصطناعي سكربتات Bash بسهولة، ولكنه يتسبب أيضاً في الأعطال بسهولة. يمكن لسكربت صغير أن يحذف مجلد المنزل (home directory) بالكامل إذا كان أحد المتغيرات فارغاً. ويمكن لسكربت سجلات (log script) بسيط أن يسرب أسرارك إلى خادم عام.
لقد قمت بتشغيل سكربتات سيئة من إنتاج الذكاء الاصطناعي، ومعظم المهندسين فعلوا ذلك أيضاً. استخدم قائمة التحقق هذه لمنع الكوارث قبل وقوعها.
أضف هذه الأسطر إلى الجزء العلوي من كل سكربت:
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
لماذا تحتاج إليها:
set -e: يوقف السكربت إذا فشل أي أمر.set -u: يوقف السكربت إذا كان المتغير غير محدد. هذا يمنع أخطاءrm -rf /.set -o pipefail: يضمن أن الأخطاء في خط الأنابيب (pipeline) توقف السكربت فعلياً.IFS=$'\n\t': يمنع الأخطاء البرمجية الناتجة عن وجود مسافات في أسماء الملفات.
انتبه لهذه الأخطاء الشائعة للذكاء الاصطناعي:
فقدان علامات الاقتباس غالباً ما يكتب الذكاء الاصطناعي:
rm -rf $TARGET_DIRيجب أن تكتب:rm -rf "$TARGET_DIR"بدون علامات الاقتباس، يمكن لمسافة في اسم المجلد أن تؤدي إلى حذف الملفات الخاطئة. قم دائماً بإحاطة متغيراتك بعلامات اقتباس مزدوجة.تسريب الأسرار غالباً ما يستخدم الذكاء الاصطناعي
set -xلأغراض تصحيح الأخطاء (debugging). هذا الأمر يطبع كل أمر في سجلاتك. إذا كنت تستخدم رمز API (API token)، فسيصبح هذا الرمز مرئياً الآن في سجلات CI الخاصة بك. قم دائماً بإزالةset -xأو استخدمset +xلإخفاء الأجزاء الحساسة.صلاحيات مفرطة غالباً ما يضيف الذكاء الاصطناعي
sudoإلى كل أمر. لا تفعل ذلك. قم بتشغيل السكربتات كمستخدم غير جذر (non-root user) كلما أمكن ذلك. هذا يقلل من الضرر في حال حدوث خطأ ما.عمليات التحميل الخطيرة لا تقم أبداً بتشغيل:
curl https://example.com/install.sh | bashبدلاً من ذلك:
- قم بتحميل الملف أولاً:
curl https://example.com/install.sh > install.sh - اقرأ الملف.
- قم بتشغيله يدوياً:
sudo bash install.sh
نصيحة احترافية: استخدم shellcheck. قم بتشغيل shellcheck على كل سكربت. فهو يكتشف المتغيرات غير المحاطة بعلامات اقتباس وإعدادات الأمان المفقودة في ثوانٍ. إنه يلتقط ما قد تغفله عيناك.
القاعدة الذهبية: تعامل مع مخرجات الذكاء الاصطناعي كمسودة. إما أن تدرج متطلبات الأمان في طلبك (prompt) أو قم بتحصين الكود بنفسك. لا تقم بتشغيل سكربتات Bash الناتجة عن الذكاء الاصطناعي دون فحصها أولاً.
المصدر: https://dev.to/devopsaitoolkit/securing-ai-generated-bash-scripts-before-you-run-them-401m
مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi