AI-দ্বারা তৈরি Bash স্ক্রিপ্ট সুরক্ষিত করা

AI সহজেই Bash লিখতে পারে। তবে এটি সহজেই সবকিছু নষ্টও করে দিতে পারে। একটি ভেরিয়েবল খালি থাকলে একটি ছোট স্ক্রিপ্ট আপনার পুরো হোম ডিরেক্টরি মুছে ফেলতে পারে। একটি সাধারণ লগ স্ক্রিপ্ট আপনার গোপন তথ্য (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': ফাইলের নামে স্পেস থাকার কারণে সৃষ্ট বাগ (bugs) প্রতিরোধ করে।

AI-এর এই সাধারণ ভুলগুলোর দিকে নজর দিন:

১. কোটেশন (Quotes) না থাকা AI প্রায়ই লেখে: rm -rf $TARGET_DIR আপনার অবশ্যই লিখতে হবে: rm -rf "$TARGET_DIR" কোটেশন না থাকলে, ফোল্ডারের নামে একটি স্পেস ভুল ফাইল মুছে ফেলতে পারে। সব সময় আপনার ভেরিয়েবলগুলোকে ডাবল কোটেশনের মধ্যে রাখুন।

২. গোপন তথ্য ফাঁস (Secret Leaks) AI প্রায়ই ডিবাগিংয়ের জন্য set -x ব্যবহার করে। এটি আপনার লগে প্রতিটি কমান্ড প্রিন্ট করে। আপনি যদি কোনো API টোকেন ব্যবহার করেন, তবে সেই টোকেনটি এখন আপনার CI লগে দৃশ্যমান হয়ে যাবে। সংবেদনশীল অংশগুলো লুকিয়ে রাখতে সব সময় set -x সরিয়ে ফেলুন অথবা set +x ব্যবহার করুন।

৩. অতিরিক্ত প্রিভিলেজ (Too Much Privilege) AI প্রায়ই প্রতিটি কমান্ডের সাথে sudo যোগ করে দেয়। এটি করবেন না। সম্ভব হলে সব সময় নন-রুট (non-root) ইউজার হিসেবে স্ক্রিপ্ট চালান। এতে কোনো সমস্যা হলে ক্ষতির পরিমাণ সীমিত থাকে।

৪. বিপজ্জনক ডাউনলোড কখনোই এটি চালাবেন না: curl https://example.com/install.sh | bash পরিবর্তে:

  • প্রথমে ফাইলটি ডাউনলোড করুন: curl https://example.com/install.sh > install.sh
  • ফাইলটি পড়ুন।
  • এটি ম্যানুয়ালি চালান: sudo bash install.sh

প্রো টিপ (Pro Tip): shellcheck ব্যবহার করুন। প্রতিটি স্ক্রিপ্টের ওপর shellcheck চালান। এটি কয়েক সেকেন্ডের মধ্যে কোটেশনহীন ভেরিয়েবল এবং অনুপস্থিত সেফটি সেটিংস খুঁজে বের করে। এটি এমন ভুলগুলো ধরে ফেলে যা আপনার চোখে পড়ে না।

গোল্ডেন রুল (The Golden Rule): AI-এর আউটপুটকে একটি খসড়া (draft) হিসেবে বিবেচনা করুন। হয় আপনার প্রম্পটে নিরাপত্তার প্রয়োজনীয়তাগুলো অন্তর্ভুক্ত করুন অথবা নিজেই কোডটি আরও সুরক্ষিত (harden) করুন। প্রথমে যাচাই না করে AI-এর তৈরি Bash স্ক্রিপ্ট চালাবেন না।

উৎস: https://dev.to/devopsaitoolkit/securing-ai-generated-bash-scripts-before-you-run-them-401m

ঐচ্ছিক লার্নিং কমিউনিটি: https://t.me/GyaanSetuAi