𝗦𝗲𝗰𝘂𝗿𝗶𝗻𝗴 𝗔𝗜-𝗚𝗲𝗻𝗲𝗿𝗮𝘁𝗲𝗱 𝗕𝗮𝘀𝗵 𝗦𝗰𝗿𝗶𝗽𝘁𝘀

AI آسانی سے Bash لکھ لیتا ہے، لیکن یہ چیزوں کو خراب بھی آسانی سے کر سکتا ہے۔ اگر کوئی ویری ایبل (variable) خالی ہو تو ایک چھوٹا سا اسکرپٹ آپ کی پوری ہوم ڈائریکٹری ڈیلیٹ کر سکتا ہے۔ ایک سادہ سا لاگ اسکرپٹ آپ کے خفیہ ڈیٹا (secrets) کو کسی عوامی سرور پر لیک کر سکتا ہے۔

میں خود خراب AI اسکرپٹس چلا چکا ہوں۔ زیادہ تر انجینئرز کے ساتھ بھی ایسا ہی ہوتا ہے۔ آفات سے بچنے کے لیے اس چیک لسٹ کا استعمال کریں۔

ہر اسکرپٹ کے شروع میں یہ لائنیں شامل کریں: #!/usr/bin/env bash set -euo pipefail IFS=$'\n\t'

آپ کو ان کی ضرورت کیوں ہے:

  • set -e: اگر کوئی کمانڈ فیل ہو جائے تو اسکرپٹ کو روک دیتا ہے۔
  • set -u: اگر کوئی ویری ایبل غیر متعین (undefined) ہو تو اسکرپٹ کو روک دیتا ہے۔ یہ rm -rf / جیسی غلطیوں سے بچاتا ہے۔
  • set -o pipefail: اس بات کو یقینی بناتا ہے کہ پائپ لائن میں ہونے والی غلطیاں واقعی اسکرپٹ کو روک دیں۔
  • IFS=$'\n\t': فائل کے ناموں میں سپیس (space) کی وجہ سے ہونے والے بگ (bugs) سے بچاتا ہے۔

AI کی ان عام غلطیوں سے ہوشیار رہیں:

  1. کوٹس (Quotes) کا نہ ہونا AI اکثر لکھتا ہے: rm -rf $TARGET_DIR آپ کو لکھنا چاہیے: rm -rf "$TARGET_DIR" کوٹس کے بغیر، فولڈر کے نام میں موجود سپیس غلط فائلوں کو ڈیلیٹ کر سکتی ہے۔ ہمیشہ اپنے ویری ایبلز کو ڈبل کوٹس میں رکھیں۔

  2. خفیہ معلومات کا لیک ہونا AI اکثر ڈی بگنگ (debugging) کے لیے set -x استعمال کرتا ہے۔ یہ آپ کے لاگز میں ہر کمانڈ کو پرنٹ کر دیتا ہے۔ اگر آپ کوئی API ٹوکن استعمال کر رہے ہیں، تو وہ ٹوکن اب آپ کے CI لاگز میں نظر آئے گا۔ حساس حصوں کو چھپانے کے لیے ہمیشہ set -x کو ہٹا دیں یا set +x استعمال کریں۔

  3. ضرورت سے زیادہ اختیارات (Privilege) AI اکثر ہر کمانڈ کے ساتھ sudo لگا دیتا ہے۔ ایسا نہ کریں۔ جب بھی ممکن ہو، اسکرپٹس کو non-root صارف کے طور پر چلائیں۔ اس سے اگر کچھ غلط ہو جائے تو نقصان محدود رہتا ہے۔

  4. خطرناک ڈاؤن لوڈز کبھی بھی یہ نہ چلائیں: curl https://example.com/install.sh | bash اس کے بجائے:

  • پہلے فائل ڈاؤن لوڈ کریں: curl https://example.com/install.sh > install.sh
  • فائل کو پڑھیں۔
  • اسے مینوئل طریقے سے چلائیں: sudo bash install.sh

پرو ٹپ: shellcheck کا استعمال کریں۔ ہر اسکرپٹ پر shellcheck چلائیں۔ یہ سیکنڈوں میں بغیر کوٹس والے ویری ایبلز اور حفاظتی سیٹنگز کی کمی کو تلاش کر لیتا ہے۔ یہ ان چیزوں کو پکڑ لیتا ہے جو آپ کی نظروں سے اوجھل رہ جاتی ہیں۔

سنہری اصول: AI کے آؤٹ پٹ کو ایک ڈرافٹ کے طور پر لیں۔ یا تو اپنے پرامپٹ (prompt) میں حفاظتی ضروریات شامل کریں یا خود کوڈ کو محفوظ (harden) بنائیں۔ پہلے چیک کیے بغیر AI کا Bash اسکرپٹ نہ چلائیں۔

ماخذ: https://dev.to/devopsaitoolkit/securing-ai-generated-bash-scripts-before-you-run-them-401m

اختیاری لرننگ کمیونٹی: https://t.me/GyaanSetuAi