فائدہ:
- سیاق و سباق دے کر کوڈ میں مصنوعی ذہانت کو دوسری آنکھ کے طور پر استعمال کرنے اور OWASP کلاس کے خطرات (انجیکشن، ہارڈ سیکرٹ، رسائی کنٹرول) کو جھنڈا دینے کی صلاحیت
- سیاق و سباق کے ساتھ مصنوعی ذہانت کے ذریعہ تیار کردہ جھوٹے مثبتات کو ختم کرنے اور ہر ایک تلاش کو اس کی توثیق کیے بغیر حقیقی خطرے کے طور پر علاج کرنے سے روکنے کی صلاحیت
- یہ تسلیم کرنے کی صلاحیت کہ مصنوعی ذہانت کے ذریعہ تجویز کردہ حل نئی کمزوریاں/بگز متعارف کرا سکتا ہے اور ہر پیچ کو جائزہ اور جانچ کے دروازے سے گزر سکتا ہے۔
سافٹ ویئر کے اندر موجود خطرات سب سے مہنگے خطرات میں سے ہیں کیونکہ وہ شروع سے ہی پروڈکٹ میں شامل ہیں اور لاکھوں صارفین میں تقسیم ہیں۔ سیکیور کوڈ کا جائزہ سورس کوڈ لائن کو لائن کے ذریعے پڑھنے اور کمزوریوں کو پکڑنے کا عمل ہے — ایس کیو ایل انجیکشن، تصدیق کی کمزوری، ہارڈ کوڈڈ پاس ورڈ، غلط اجازت — پروڈکشن میں جانے سے پہلے۔ جب ہاتھ سے کیا جائے تو یہ سست اور تھکا دینے والا ہوتا ہے۔ ایک بڑے کوڈ بیس میں کمزوری کو یاد کرنا آسان ہے۔
AI دو وجوہات کی بناء پر کوڈ کے جائزے میں طاقتور ہے: کوڈ بھی ایک زبان ہے، اور AI پیٹرن کی شناخت میں اچھا ہے۔ AI کوڈ کے ایک ٹکڑے میں خطرناک نمونوں کو تیزی سے جھنڈا دے سکتا ہے (صارف کے ان پٹ کو براہ راست استفسار میں ڈالنا، غیر خفیہ کردہ ڈیٹا اسٹوریج، ان پٹ کی توثیق کی کمی)، وضاحت کر سکتا ہے کہ ہر ایک کیوں خطرناک ہے، اور حل تجویز کر سکتا ہے۔ لیکن AI کوڈ کے پورے آپریٹنگ سیاق و سباق کو نہیں دیکھتا ہے (ہو سکتا ہے کہ ان پٹ کو کسی اور پرت سے صاف کیا جا رہا ہو)، یہ ایک ایسی کمزوری ایجاد کر سکتا ہے جو موجود نہ ہو (غلط مثبت) یا حقیقی خطرے سے محروم ہو جائے (غلط منفی)، اور سب سے اہم بات یہ ہے کہ اس کی تجویز کردہ "فکس" ایک نئی کمزوری یا بگ متعارف کرا سکتی ہے۔ AI کوڈ کے جائزے میں دوسری آنکھ اور پوائنٹر ہے۔ ڈویلپر اور سیکیورٹی ماہر یہ فیصلہ کرتے ہیں کہ آیا تلاش ایک حقیقی خطرہ ہے اور کیا درست اور محفوظ ہے۔
کوڈ کا جائزہ لینے کے مراحل
- گنجائش اور سیاق و سباق دیں۔ کون سی زبان، کون سا فریم ورک، یہ کوڈ کہاں سے ان پٹ لیتا ہے، کہاں آؤٹ پٹ دیتا ہے، کس پرت پر کام کرتا ہے؟ سیاق و سباق کے بغیر کوڈ کا جائزہ غلط مثبت پیدا کرتا ہے۔
- خطرناک نمونوں کے لیے اسکین کریں۔ معلوم AI خطرے کی کلاسیں تلاش کریں (جیسے OWASP ٹاپ 10): انجیکشن، تصدیق، حساس ڈیٹا کا انکشاف، رسائی کنٹرول۔
- ہر ایک کو جائز قرار دیں۔ ہر جھنڈے کے لیے: کون سی لائن، کس کمزور طبقے کا، اس کا استحصال کیسے کیا جا سکتا ہے، ثبوت کیا ہے۔ غیر منصفانہ تلاش کو سنجیدگی سے نہیں لیا جاتا ہے۔
- غلط مثبت کو ختم کریں۔ کیا واقعی ان پٹ کو صاف کیا جا رہا ہے، کیا وہ راستہ واقعی قابل رسائی ہے - سیاق و سباق کے ساتھ چیک کریں۔
- درستگی کی تصدیق کریں۔ تصدیق کریں کہ AI کی طرف سے تجویز کردہ پیچ درحقیقت خطرے کو بند کر دیتا ہے، نئی کمزوریاں/بگز متعارف نہیں کرواتا، اور ٹیسٹ پاس کر چکا ہے۔
- انسانی منظوری۔ ڈویلپر + سیکیورٹی ماہر تلاش اور درست کرنے کا جائزہ لیتا ہے۔ اس طرح یہ کوڈ ریپوزٹری میں داخل ہوتا ہے۔
شرائط: SAST (جامد ایپلیکیشن سیکیورٹی ٹیسٹنگ - جامد سیکیورٹی ٹیسٹنگ جو سورس کوڈ کو چلائے بغیر اس کا تجزیہ کرتا ہے)۔ DAST (متحرک - متحرک ٹیسٹنگ جو چلنے والی ایپلیکیشن کو بیرونی طور پر جانچتا ہے)۔ OWASP ٹاپ 10 سب سے عام ویب ایپلیکیشن کی کمزوریوں کی معیاری فہرست ہے۔ انجیکشن ایک کمزوری ہے جو صارف کے ان پٹ کو کمانڈ/سوال (جیسے ایس کیو ایل انجیکشن) کے بطور تشریح کرنے کی وجہ سے پیدا ہوتا ہے۔ پیرامیٹرائزڈ استفسار صحیح طریقہ ہے جو کوڈ سے ان پٹ کو الگ کرکے انجیکشن کو روکتا ہے۔
عام خطرے کی کلاسوں کا جدول
کمزوری کی کلاس
علامت (کوڈ میں)
صحیح حل
AI کا جال
ایس کیو ایل انجیکشن
استفسار میں ان پٹ کو شامل کرنا
پیرامیٹرائزڈ استفسار
سینیٹائزیشن کو نظر انداز کر سکتے ہیں۔
سخت کوڈڈ راز
کوڈ میں پاس ورڈ/کلید
خفیہ محفوظ (والٹ)، env
غلط مثبت (نمونہ/ٹیسٹ)
کمزور تصدیق
لاپتہ/غلط کنٹرول
طاقتور، مرکزی کنٹرول
سیاق و سباق سے محروم
ناقص رسائی کنٹرول
اجازت کی کوئی جانچ نہیں ہے۔
سرور سائیڈ کی اجازت
پیچیدہ بہاؤ کو نہیں سمجھتا
حساس ڈیٹا کا انکشاف
پاس ورڈ فری اسٹوریج/لاگنگ
خفیہ کاری، ماسکنگ
تنقید کو نہیں جان سکتا
غیر محفوظ سیریلائزیشن
غیر معتبر ڈیٹا کو ڈی سیریلائز کریں۔
محفوظ تجزیہ
نایاب نمونہ یاد آتا ہے۔
تین چھوٹے مقدمات
کیس 1 - اصل انجیکشن پکڑنا۔ ایک ڈویلپر کے پاس AI ڈیٹا تک رسائی کے فنکشن کی جانچ پڑتال کرتا ہے۔ AI اس لائن کو نشان زد کرتا ہے جہاں صارف کی یوزر آئی ڈی ویلیو کو براہ راست SQL ٹیکسٹ میں جوڑا جاتا ہے اور کہتا ہے کہ "یہ کلاسک ایس کیو ایل انجیکشن ہے، اسے پیرامیٹرائزڈ استفسار میں تبدیل کریں"؛ نمونے کی اصلاح فراہم کرتا ہے۔ ڈویلپر تصدیق کرتا ہے کہ ان پٹ کو کہیں اور صاف نہیں کیا گیا ہے، تصدیق کرتا ہے کہ یہ ایک حقیقی خطرہ ہے، تجویز کردہ پیرامیٹرائزڈ استفسار کو لاگو کرتا ہے، اور ایک ٹیسٹ لکھتا ہے۔ AI نے کمزوری کو اجاگر کیا۔ تصدیق اور اصلاح کی جانچ ڈویلپر کی طرف سے آئی ہے۔
کیس 2 - غلط مثبت طے شدہ راز۔ AI فائل میں پاس ورڈ = "test1234" لائن دیکھتا ہے اور کہتا ہے "تنقیدی: ہارڈ کوڈ پاس ورڈ"۔ ڈویلپر سیاق و سباق کی جانچ کرتا ہے: یہ ایک یونٹ ٹیسٹ فائل ہے، ایک ڈمی ٹیسٹ ڈیٹا ہے، جسے پروڈکشن میں جاری نہیں کیا گیا اور حقیقی سسٹم میں پورٹ نہیں کیا گیا ہے۔ تلاش ایک غلط مثبت ہے۔ ڈویلپر اس کی دستاویز کرتا ہے لیکن کارروائی نہیں کرتا کیونکہ یہ کوئی حقیقی راز نہیں ہے۔ سبق: AI کے "سخت راز" کے نشان کو سیاق و سباق کے لحاظ سے ختم کرنا ضروری ہے۔ ہر تار ایک راز نہیں ہے.
کیس 3 - نئے خطرے کی اصلاح۔ AI نے XSS (کراس سائٹ اسکرپٹنگ) کے خطرے کو حل کرنے کی تجویز پیش کی ہے۔ لیکن وہ جو کوڈ تجویز کرتا ہے وہ غلط جگہ پر ان پٹ کو صاف کرتا ہے اور دوسرے علاقے میں آؤٹ پٹ انکوڈنگ کو چھوڑ دیتا ہے۔ نتیجے کے طور پر، خلا مکمل طور پر بند نہیں ہوتا. سیکیورٹی ماہر درستگی کا جائزہ لیتا ہے، گمشدہ کوڈنگ کو نوٹس کرتا ہے، اور اسے درست پرت پر ٹھیک کرتا ہے۔ سبق: AI تجویز کردہ پیچ خود بخود محفوظ نہیں ہے۔ ہر فکس کا جائزہ لیا جاتا ہے اور تجربہ کیا جاتا ہے۔
کمزور فوری / مضبوط اشارہ
کمزور اشارہ:
کیا اس کوڈ میں کوئی خامی ہے، اسے ٹھیک کریں: [code]
یہ پرامپٹ کوئی سیاق و سباق (زبان، فریم ورک، ان پٹ سورس) نہیں دیتا، جواز نہیں مانگتا، غلط مثبت پر سوال نہیں اٹھاتا، اور AI کی طرف سے تیار کردہ اصلاح کو آنکھیں بند کر کے قبول کرنے کے لیے کھلا ہے۔ AI حقیقی کمزوری اور غیر موجود دونوں کی مخلوط علامات۔
طاقتور اشارہ:
آپ کا کردار: اسسٹنٹ جو محفوظ کوڈ کے جائزے میں ڈویلپر کی دوسری آنکھ ہے۔ فیصلہ سازی؛ براہ راست لاگو فکس پر غور کریں۔ کوڈ: [زبان/فریم ورک کی وضاحت کریں]. سیاق و سباق: یہ فنکشن [ان پٹ ذریعہ: مثال کے طور پر [بیرونی HTTP درخواست] وصول کرتا ہے، [آؤٹ پٹ منزل] کو لکھتا ہے۔ آپ کا کام: (1) OWASP کلاس کے ساتھ ممکنہ کمزوریوں کو نشان زد کریں، ہر ایک کے لیے لائن نمبر + کیوں خطرناک + کیسے استحصال کریں + ثبوت دیں، (2) ہر ایک تلاش کے لیے کم از کم 1 غلط مثبت منظر نامہ لکھیں (مثال کے طور پر اگر ان پٹ کو کسی دوسری پرت میں صاف کیا گیا ہے)، (3) ایک درست کرنے کی تجویز کریں لیکن "[جائزہ + تحریری ٹیسٹ]" کے نشان کے ساتھ؛ اس بات کا بھی جائزہ لیں کہ آیا فکس نئی کمزوریوں/بگز کو متعارف کراتا ہے۔ ایک جعلی خطرے کو شامل کرنا[code]
مضبوط پرامپٹ سیاق و سباق دیتا ہے، OWASP کلاس اور ثبوت مانگتا ہے، سوالات غلط مثبت اور تدارک کے خطرات، انسانی جائزہ لینے پر مجبور کرتا ہے۔
کاپی کرنے کے قابل پرامپٹ ٹیمپلیٹس
VULNERABILITY SCAN TEMPLATE OWASP ٹاپ 10 کے لیے [زبان/فریم ورک] کوڈ کی جانچ کریں۔ ہر ممکنہ تلاش کے لیے: لائن نمبر، کمزوری کی کلاس، یہ کیوں خطرناک ہے، نمونے کا استحصال، ثبوت کی طاقت (ممکنہ/ممکنہ/کمزور)۔ سیاق و سباق: ان پٹ [ذریعہ]، آؤٹ پٹ [ٹارگٹ]۔ من گھڑت نتائج کو شامل کرنا؛ اگر آپ کو یقین نہیں ہے تو، "[ضروری تصدیق شدہ]" ٹائپ کریں۔ کوڈ: [پیسٹ کریں]
غلط مثبت خاتمے کا پیٹرن درج ذیل کوڈ کی تلاش کے لیے، ان منظرناموں کی فہرست بنائیں جن میں کوئی حقیقی خطرہ نہیں ہے: کیا ان پٹ کو کسی اور پرت سے صاف کیا جا سکتا ہے، کیا یہ راستہ قابل رسائی ہے، کیا یہ قدر ایک ٹیسٹ/نمونہ ہے، کیا فریم ورک خود بخود محفوظ ہے۔ ہر ایک کی تصدیق کرنے کا طریقہ لکھیں۔ تلاش کرنا: [پیسٹ]
فکس ایویلیویشن ٹیمپلیٹر درج ذیل کمزوری کو ٹھیک کرنے کی تجویز کریں؛ پھر اپنی اصلاح پر تنقید کریں: (1) کیا یہ واقعی خطرے کو بند کر دیتا ہے، (2) کیا یہ ایک نئی کمزوری/بگ متعارف کرواتا ہے، (3) مجھے کیا ٹیسٹ لکھنا چاہیے (مثبت اور منفی کیس)، (4) کارکردگی/کارکردگی کا اثر۔ میں اس کا جائزہ لے کر جانچ کروں گا۔ کمزوری + کوڈ: [پیسٹ کریں]
کمزور طبقے کے لیے محفوظ پیٹرن ٹیچنگ ٹیمپلیٹ [جیسے SQL انجیکشن] اس زبان/فریم ورک میں نسبتاً محفوظ ٹائپنگ پیٹرن اور عام غلط پیٹرن دکھاتا ہے۔ عام اصول + کوڈ کی مثال دیں؛ لیکن میں چاہتا ہوں کہ آپ اسے میرے کوڈ میں نافذ کرنے سے پہلے سیاق و سباق سے پوچھیں۔ زبان/فریم ورک: [لکھیں]
عام غلطیاں
- سیاق و سباق کے بغیر جائزہ لیں۔ زبان، فریم ورک، اور ان پٹ/آؤٹ پٹ سیاق و سباق کے بغیر، AI حقیقی اور جعلی دونوں نتائج کو الجھا دیتا ہے۔ سیاق و سباق ضرور دیں۔
- ہر علامت کو حقیقی کمزوری سمجھنا۔ AI غلط مثبت پیدا کرتا ہے (ٹیسٹ ڈیٹا، ان پٹ کو کسی اور پرت سے صاف کیا جاتا ہے)؛ ہر ایک تلاش کو سیاق و سباق کے ساتھ چھانیں۔
- آنکھیں بند کرکے AI کی اصلاح کا اطلاق کرنا۔ تجویز کردہ پیچ نئی کمزوریاں/بگز متعارف کروا سکتا ہے۔ جائزہ لیں اور ٹیسٹ لکھیں۔
- جھوٹے منفی پر بھروسہ کرنا۔ یہاں تک کہ اگر AI کہتا ہے "کوئی کمزوری نہیں"، خود نازک راستوں کا جائزہ لیں۔ جامد اسکیننگ ہر کمزوری کا پتہ نہیں لگاتی ہے۔
- بیرونی ٹول کو کوڈ/راز دینا۔ پرائیویٹ کوڈ اور حقیقی راز (کلید، پاس ورڈ) دانشورانہ املاک اور کمزوری ہیں۔ نام ظاہر نہ کریں یا کارپوریٹ، الگ تھلگ ٹولز استعمال کریں۔
اشارہ: جب AI جائزہ کوڈ ہو تو، سب سے زیادہ کارآمد فلٹر ہر ایک تلاش کے لیے "ثبوت کی طاقت" (یقینی/ممکنہ/کمزور) طلب کرنا ہے۔ "کمزور" نشان زد زیادہ تر نتائج غلط مثبت ہیں؛ آپ اپنی توانائی "یقین" والوں کے لیے مختص کرتے ہیں۔
احتیاط: AI کے مجوزہ سیکیورٹی فکس کو ٹیسٹ کیے بغیر گودام میں داخل نہیں ہونا چاہیے۔ ایک غلط "فکس" دونوں خطرے کو کھلا چھوڑ سکتا ہے اور پیداوار میں ایک فعال غلطی کا باعث بن سکتا ہے۔ ہر پیچ جائزہ اور جانچ کے دروازے سے گزرتا ہے۔
خلاصہ میں
محفوظ کوڈ کا جائزہ کمزوریوں کو پروڈکشن میں جانے سے پہلے پکڑنے کا سب سے سستا طریقہ ہے، اور چونکہ کوڈ ایک زبان ہے، اس لیے AI یہاں ایک طاقتور دوسری آنکھ بن جاتا ہے: خطرناک نمونوں کو جھنڈا دیتا ہے، خطرے کی وضاحت کرتا ہے، اصلاحات تجویز کرتا ہے۔ لیکن AI پورے آپریٹنگ سیاق و سباق کو نہیں دیکھتا ہے، غلط مثبت اور غلط منفی پیدا کرتا ہے، اور اس کی تجویز کردہ پیچ نئی کمزوریاں متعارف کرا سکتا ہے۔ لہذا جائزے کے چھ مراحل ہیں (سیاق و سباق، اسکریننگ، جواز، غلط مثبت خاتمہ، درستی کی تصدیق، انسانی منظوری) اور فیصلہ ڈویلپر اور سیکیورٹی ماہر کے پاس ہے۔ تین اصول: سیاق و سباق کے بغیر کسی بھی تلاش کی تشریح نہیں کی جاتی ہے، ہر نشانی کو سیاق و سباق کے ساتھ ختم کر دیا جاتا ہے، بغیر جانچ کے کوئی فکس اسٹوریج میں نہیں جاتا ہے۔ اور کوڈ/سیکریٹ کبھی بھی کسی بیرونی ٹول کو بغیر گمنام کے نہیں دیا جاتا ہے۔
درخواست کا کام
ایک نمونہ کوڈ کا ٹکڑا لیں (یا تو اپنے کوڈ سے حساس حصوں کو ہٹانا یا کمزوریوں والا نمونہ کوڈ)۔ AI کو "Vulnerability Scanning" ٹیمپلیٹ کے ساتھ اس کی جانچ کروائیں۔ ہر ایک تلاش کے لیے "غلط مثبت خاتمہ" ٹیمپلیٹ کا اطلاق کریں اور اصلی کو ختم کریں۔ "Remediation Evaluation" ٹیمپلیٹ کے ساتھ انتہائی سنجیدہ تلاش کی تصحیح کریں، خود اس کا جائزہ لیں اور ایک مثبت + ایک منفی ٹیسٹ کیس لکھیں۔ نوٹ کریں کہ کتنے نتائج غلط مثبت تھے۔
چیک لسٹ
- میں نے کوڈ کا جائزہ لینے سے پہلے زبان، فریم ورک اور ان پٹ/آؤٹ پٹ سیاق و سباق دیا۔
- میں نے لائن نمبر، کمزوری کی کلاس، استحصال کا راستہ اور ہر تلاش کے لیے ثبوت مانگے۔
- [ ] میں نے سیاق و سباق کے ساتھ غلط مثبت کے لئے ہر ایک کی تلاش کی۔
- [ ] میں نے آنکھیں بند کرکے AI کی اصلاح کا اطلاق نہیں کیا۔ میں نے جائزہ لیا اور ایک ٹیسٹ لکھا۔
- "کوئی خطرات نہیں" آؤٹ پٹ کے باوجود، میں نے خود اہم راستوں کا جائزہ لیا۔
- میں نے کوڈ/راز کو گمنام کیا یا کارپوریٹ الگ تھلگ ٹولنگ کا استعمال کیا۔
- [ ] میں نے ڈیولپر + سیکیورٹی کی منظوری کے ذریعے دریافت اور ٹھیک کر لیا ہے۔