BrassCoders نے ان پندرہ میں سے دو AI سے تیار کردہ پائتھن اسکرپٹس میں ہارڈ کوڈڈ سیکرٹس (hard-coded secrets) دریافت کیے ہیں، جو ان ڈویلپرز کے لیے ایک ٹھوس خطرہ ظاہر کرتے ہیں جو لارج لینگویج ماڈل کے آؤٹ پٹس سے براہ راست کوڈ کاپی پیسٹ کرتے ہیں۔ یہ نتائج ظاہر کرتے ہیں کہ ایک غلط جگہ پر رکھی گئی کی (key) یا پاس ورڈ ایک مددگار کوڈ کے ٹکڑے کو ورژن کنٹرول اور پروڈکشن ماحول میں کریڈنشل لیک (credential leak) میں بدل سکتا ہے۔

ٹیسٹ سے کیا انکشاف ہوا

پہلا اسکرپٹ، token_check.py، ایک ایسے پرامپٹ سے تیار کیا گیا تھا جس میں سیشن ٹوکنز پر دستخط کرنے اور ایک "استعمال کے قابل مثال" (usable example) شامل کرنے کا کہا گیا تھا۔ کوڈ کو چلنے کے قابل بنانے کے لیے، ماڈل نے براہ راست سورس فائل میں ایک HMAC سائننگ کی (key) شامل کر دی۔

  • مسئلہ: خفیہ کی (secret key) کوڈ بیس میں موجود ہے۔
  • خطرہ: ریپوزٹری تک رسائی رکھنے والا کوئی بھی شخص اس کی (key) کو دیکھ سکتا ہے، اور کوئی بھی ڈیپلائمنٹ جو اس فائل کو حاصل کرتا ہے وہ اس خفیہ کوڈ کو بھی اپنا لیتا ہے۔
  • نتیجہ: وہ حملہ آور جو اس کی (key) حاصل کر لیتا ہے، وہ درست سیشن ٹوکنز بنا سکتا ہے، جس سے آتھنٹیکیشن چیک کو نظر انداز کیا جا سکتا ہے۔

دوسرا اسکرپٹ، email_sender.py، ایک ایسے فنکشن کی درخواست کا جواب تھا جو SMTP کے ذریعے ای میل بھیجتا ہے۔ ماڈل نے ایک بار پھر ایک اصل پاس ورڈ فراہم کیا تاکہ مثال فوری طور پر کام کر سکے۔

  • مسئلہ: پاس ورڈ فنکشن کال میں ایک پلین ٹیکسٹ اسٹرنگ کے طور پر ظاہر ہوتا ہے۔
  • خطرہ: پاس ورڈ تبدیل کرنے کے لیے کوڈ میں تبدیلی اور نئی ڈیپلائمنٹ کی ضرورت ہوتی ہے، اور یہ کریڈنشل ہر اس ماحول میں پھیل جاتا ہے جو اس فائل کو استعمال کرتا ہے۔
  • نتیجہ: پاس ورڈ کو سورس کنٹرول، لاگز، یا کمپائل شدہ پیکجز سے حاصل کیا جا سکتا ہے، جس سے مخالف کو میل سرور تک غیر مجاز رسائی مل سکتی ہے۔

AI سیکرٹس کیوں فراہم کرتا ہے

لارج لینگویج ماڈلز پرامپٹ کو مکمل کر کے متن تیار کرتے ہیں۔ جب کوئی صارف "استعمال کے قابل مثال" مانگتا ہے، تو ماڈل اس کا مطلب یہ لیتا ہے کہ "ایسا کوڈ جو اضافی سیٹ اپ کے بغیر چلے"۔ اس لیے یہ مفقود ویلیوز—جیسے API کیز، پاس ورڈز، ٹوکنز—کو ممکنہ پلیس ہولڈرز سے بھر دیتا ہے۔ جب تک پرامپٹ میں واضح طور پر ذکر نہ کیا جائے، ماڈل کو سیکرٹ مینجمنٹ کے بہترین طریقوں کا علم نہیں ہوتا۔

Veracode کے ایک حالیہ تجزیے میں AI سے تیار کردہ کوڈ کے بارے میں معلوم ہوا کہ 45% اسنیپٹس میں کم از کم ایک کمزوری موجود ہے جو OWASP Top 10 میں درج ہے، جس میں کریڈنشل کا انکشاف ایک بڑا حصہ ہے۔ یہ اعداد و شمار اس بات پر زور دیتے ہیں کہ یہ مسئلہ صرف چند مثالوں تک محدود نہیں ہے؛ بلکہ یہ ان ماڈلز کی تربیت اور پرامپٹنگ کے طریقے کا ایک نظامی ضمنی نتیجہ (systemic by-product) ہے۔

بچاؤ کے اقدامات جو ڈویلپرز اب کر سکتے ہیں

سب سے سادہ دفاع یہ ہے کہ کسی بھی سیکرٹ کو کوڈ فائل سے باہر رکھا جائے۔ انوائرمنٹ ویری ایبلز (Environment variables) سب سے عام اور زبان سے آزاد طریقہ ہے:

# token_check.py – secure version
import os
import hmac
import hashlib

SECRET_KEY = os.environ["HMAC_SECRET_KEY"]

def sign_token(data: bytes) -> str:
    return hmac.new(SECRET_KEY.encode(), data, hashlib.sha256).hexdigest()
# email_sender.py – secure version
import os
import smtplib

smtp_password = os.environ["SMTP_PASSWORD"]
server = smtplib.SMTP("smtp.example.com", 587)
server.starttls()
server.login("noreply@example.com", smtp_password)

os.environ کا استعمال رن ٹائم انوائرمنٹ سے ویلیو حاصل کرتا ہے، جس سے یہ ورژن کنٹرول سے باہر رہتا ہے اور سورس فائلوں کو چھوئے بغیر اسے تبدیل (rotation) کرنے کی اجازت دیتا ہے۔ یہی طریقہ کنفیگریشن فائلوں، سیکرٹ مینجمنٹ سروسز، یا کنٹینر آرکیسٹریٹڈ سیکرٹس کے ساتھ بھی کام کرتا ہے۔

اضافی حفاظتی تدابیر

  • کوڈ ریویوز جو عام سیکرٹ پیٹرنز (مثلاً طویل الفابیٹک نمبرک تسلسل) سے مماثل لٹرل اسٹرنگز کو نشان زد کریں۔
  • اسٹیٹک اینالیسس ٹولز جو نئی فائلوں میں ہارڈ کوڈڈ کریڈنشلز کا پتہ لگانے کے لیے تیار کیے گئے ہوں۔
  • پرامپٹ انجینئرنگ: ماڈل سے واضح طور پر کہیں کہ "تمام سیکرٹس کے لیے انوائرمنٹ ویری ایبلز استعمال کریں" یا "حقیقی کریڈنشلز کو حذف کر دیں"۔
  • پوسٹ جنریشن لنٹنگ: کوڈ کو پروجیکٹ میں کاپی کرنے سے پہلے ایک فوری اسکرپٹ چلائیں جو مشکوک لٹرلز کو تلاش کرے۔

مخالف نقطہ نظر: کیا اس کا مطلب یہ ہے کہ AI کوڈ غیر محفوظ ہے؟

ہارڈ کوڈڈ سیکرٹس کی موجودگی کا یہ مطلب نہیں ہے کہ AI سے تیار کردہ کوڈ عالمگیر طور پر غیر محفوظ ہے۔ بہت سے معاملات میں، ماڈل صاف ستھرا اور بہتر ڈھانچے والا لاجک تیار کرتا ہے جو ڈویلپمنٹ کو تیز کر سکتا ہے۔ خطرہ تب پیدا ہوتا ہے جب ڈویلپرز سیکیورٹی آڈٹ کے بغیر آؤٹ پٹ کو پروڈکشن کے لیے تیار سمجھتے ہیں۔ AI کو ایک ڈرافٹنگ اسسٹنٹ کے طور پر لیں، نہ کہ قائم شدہ سیکیورٹی طریقوں کے متبادل کے طور پر۔

آگے کیا نظر رکھنا ہے

  • ٹولنگ اپ ڈیٹس: AI پلیٹ فارمز سیکرٹس کو پلیس ہولڈرز سے بدلنے والے حفاظتی فلٹرز شامل کرنا شروع کر رہے ہیں۔ ان تبدیلیوں پر نظر رکھنا خطرے کو کم کر سکتا ہے۔
  • پالیسی میں تبدیلیاں: تنظیمیں AI کی مدد سے کوڈنگ کے لیے رہنما خطوط کو باقاعدہ شکل دے سکتی ہیں، جس میں CI پائپ لائن کے حصے کے طور پر سیکرٹ مینجمنٹ چیک کو لازمی قرار دیا جائے گا۔
  • کمیونٹی پیٹرنز: جیسے جیسے ڈویلپرز مزید "محفوظ پرامپٹس" شیئر کریں گے، ٹوکن سائننگ یا ای میل ڈیلیوری جیسے عام کاموں کے لیے بہترین طریقہ کار کے ٹیمپلیٹس ڈیفالٹ آؤٹ پٹ بن سکتے ہیں۔

اہم نکتہ: AI سیکنڈوں میں فعال کوڈ تیار کر سکتا ہے، لیکن جب تک ڈویلپرز سیکریٹ مینجمنٹ کے نظم و ضبط کو یقینی نہیں بناتے، یہ سہولت ایک پوشیدہ قیمت کے ساتھ آتی ہے—ایسے ایکسپوزڈ کریڈنشلز جو پورے سسٹم کو خطرے میں ڈال سکتے ہیں۔ ہر اسنیپٹ کو ایک ڈرافٹ کے طور پر لیں، تمام لٹریل سیکریٹس کو نکال دیں، اور کمٹ کرنے سے پہلے انہیں انوائرمنٹ ویری ایبلز یا کسی مخصوص والٹ کے ذریعے شامل کریں۔