اتھارائزیشن بگز تلاش کرنے کے لیے AI کا استعمال

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

اس ماحول میں، سب سے اہم مہارت بگز تلاش کرنا نہیں ہے۔ بلکہ یہ ثابت کرنا ہے کہ کوئی بگ موجود نہیں ہے۔ آپ کو درست 'نیگیٹو' (negatives) تلاش کرنے ہوں گے۔

میں سورس دستیاب (source-available) اہداف کے لیے دو مراحل والا طریقہ استعمال کرتا ہوں۔

مرحلہ 1: فین آؤٹ (Fan-out)

کوڈ پڑھنے کے لیے سستے AI ماڈلز کا استعمال کریں۔ ہدف کو چھوٹے ٹکڑوں میں تقسیم کریں۔ ماڈل سے ٹوٹے ہوئے انویریئنٹ (broken invariants) تلاش کرنے کو کہیں۔ ایسی جگہوں کی تلاش کریں جہاں کوئی آبجیکٹ مالک کی جانچ (owner check) کے بغیر لوڈ ہو رہا ہو یا جہاں سیکیورٹی گیٹ کو نظر انداز کیا گیا ہو۔ ہائی ریکال (high recall) کا ہدف رکھیں۔ بہت سی غلطیوں کی توقع رکھیں۔

مرحلہ 2: ایڈورسرئیل ویریفیکیشن (Adversarial Verification)

امیدواروں (candidates) کو رد کرنے کے لیے ایک مہنگا اور اعلیٰ استدلال (high-reasoning) والا ماڈل استعمال کریں۔ فرض کریں کہ ہر امیدوار غلط ہے۔ کوئی امیدوار صرف اسی صورت میں بچتا ہے جب آپ کوڈ کی مخصوص لائنوں کا حوالہ دے سکیں۔ آپ کو یہ ثابت کرنا ہوگا کہ وہ راستہ قابلِ رسائی ہے اور کوئی دوسرا چیک اسے روکتا نہیں ہے۔

سب سے قیمتی نتیجہ تردید (refutations) کی ایک فہرست ہے۔ یہ فہرست ٹریاجرز کے ساتھ اعتماد پیدا کرتی ہے۔

میں نے Ory Kratos کا تجربہ کیا، جو کہ ایک اوپن سورس آئیڈینٹیٹی سرور ہے۔ میں نے سیٹنگز کے بہاؤ (settings flow) کا جائزہ لیا۔ یہ حصہ پاس ورڈ کی تبدیلیوں اور ای میل اپ ڈیٹس کو سنبھالتا ہے۔ یہاں ایک چھوٹی سی غلطی بھی اکاؤنٹ ہائی جیکنگ (account takeover) کا باعث بن سکتی ہے۔

پہلے مرحلے میں ایک پرکشش بگ ملا۔ OIDC اسٹریٹجی میں، ایک مخصوص کنٹینر میں آئیڈینٹیٹی بائنڈنگ (identity binding) کی کمی ہے۔ اگر آپ صرف مِسنگ چیکس کی تلاش کریں گے، تو آپ اسے ہائی سیورٹی بگ کے طور پر رپورٹ کریں گے۔

یہ ایک غلطی ہوگی۔

مِسنگ بائنڈنگ قابلِ استعمال (exploitable) نہیں ہے۔ سسٹم لائیو سیشن کوکی یا دستخط شدہ ٹوکن سے ہدف کی آئیڈینٹیٹی حاصل کرتا ہے۔ کنٹینر کی خصوصیات (traits) کبھی بھی اصل رائٹ ٹارگٹ پر لاگو نہیں ہوتیں۔ ڈیزائن درست ہے۔

اس کی رپورٹ کرنا وقت کا ضیاع ہوگا اور آپ کی ساکھ کو نقصان پہنچائے گا۔ میں نے جو اہمیت فراہم کی وہ یہ اعتماد تھا کہ رپورٹ فائل نہ کی جائے۔

جب میں نے یہی طریقہ ایک دوسرے ہدف پر استعمال کیا، تو مجھے ایک حقیقی بگ ملا۔ ایک متبادل انٹری پوائنٹ میں اتھارائزیشن چیک مِس ہو گیا تھا جسے مین پاتھ (main path) نافذ کرتا تھا۔ ایک منسوخ شدہ صارف (revoked user) اب بھی سائیڈ ڈور کے ذریعے داخل ہو سکتا تھا۔ یہ بگ ہائی امپیکٹ تھا اور عام اسکینرز کے لیے پوشیدہ تھا۔

گیٹ کیپرز حجم (volume) کے خلاف دیواریں کھڑی کر رہے ہیں۔ کامیاب ہونے کے لیے، آپ کے AI کے کام میں سختی ہونی چاہیے۔ AI کو اس سے زیادہ کوڈ پڑھنے کے لیے استعمال کریں جتنا ایک انسان پڑھ سکتا ہے۔ پھر رپورٹ جمع کرانے سے پہلے خود کو غلط ثابت کرنے کے لیے AI کا استعمال کریں۔

سگنل پر توجہ دیں، حجم پر نہیں۔

Source: https://dev.to/fdjedkdlsspec/using-ai-to-find-authorization-bugs-and-to-prove-the-ones-that-arent-real-3m7d