ऑथोरायझेशन बग्स (Authorization bugs) शोधण्यासाठी AI चा वापर करणे
बग बाउंटी प्रोग्राम्स बंद होत आहेत. Nextcloud ने कमी दर्जाच्या AI रिपोर्टमुळे सशुल्क बक्षिसे देणे थांबवले आहे. Mattermost ने आपला प्रोग्राम संपवला. Internet Bug Bounty ने देयके (payouts) ८० टक्क्यांनी कमी केली.
समस्या ही नाही की AI बग्स शोधू शकत नाही. समस्या ही आहे की AI असे अनेक रिपोर्ट तयार करते जे खरे वाटतात पण प्रत्यक्षात चुकीचे असतात. ट्रायज (Triage) टीम्स या गोंधळात (noise) अडकून पडत आहेत.
२०२६ मध्ये, तुम्हाला आवश्यक असलेले कौशल्य बग्स शोधणे हे नाही. दुपारच्या जेवणापूर्वीच एक मॉडेल तुम्हाला पन्नास कल्पना देईल. खरे कौशल्य हे आहे की त्यातील ४९ कल्पना चुकीच्या का आहेत हे सिद्ध करणे. तुम्हाला अशी पद्धत हवी आहे जी अचूक 'नेगेटिव्ह' (correct negatives) देते.
सोर्स-अवेलेबल (source-available) कोडसाठी ही दोन-टप्प्यांची पद्धत वापरा:
१. फॅन-आउट (स्वस्त मॉडेल्स) ऑथोरायझेशन सरफेसला लहान भागांमध्ये विभाजित करा. प्रत्येक भाग समांतरपणे (in parallel) वाचा. मोडलेल्या नियमांचा शोध घ्या. अशा ठिकाणांचा शोध घ्या जिथे मालकी तपासणीशिवाय (owner check) एखादी ऑब्जेक्ट लोड होते. सुरक्षा गेट्स वगळणाऱ्या मार्गांचा (paths) शोध घ्या. प्रत्येक संभाव्य सुगावा (lead) शोधण्यावर लक्ष केंद्रित करा. अनेक 'फॉल्स पॉझिटिव्ह' (false positives) मिळण्याची अपेक्षा ठेवा.
२. ॲडव्हर्सरिअल व्हेरिफिकेशन (महागडी मॉडेल्स) प्रत्येक सुगावा घ्या आणि तो खोडून काढण्याचा प्रयत्न करा. तो सुगावा चुकीचा आहे या गृहितकापासून सुरुवात करा. एखादा सुगावा तेव्हाच टिकतो जेव्हा तुम्ही सुरक्षा रक्षक (security guard) गहाळ असल्याचे सिद्ध करणाऱ्या कोडच्या नेमक्या ओळी दाखवू शकता. तो मार्ग (path) गाठण्यायोग्य (reachable) आहे आणि हल्ला रोखण्यासाठी दुसरे काहीही अडथळा नाही, हे तुम्हाला सिद्ध करावे लागेल.
सर्वात महत्त्वाचे आउटपुट म्हणजे 'रिफ्युटेशन्स'ची (refutations) यादी. एखादी गोष्ट बग का नाही, याची कारणांची यादी ट्रायजर्ससोबत विश्वास निर्माण करते.
मी Ory Kratos ची चाचणी केली, जे एक आयडेंटिटी सर्व्हर आहे. ही प्रणाली पासवर्ड किंवा ईमेल बदलण्यासारख्या संवेदनशील कृती हाताळते. हा एक उच्च-जोखीम असलेला भाग आहे.
पहिल्या टप्प्यात एक सुगावा मिळाला. प्रणाली OIDC फ्लो कसा हाताळते यामध्ये मोठी त्रुटी असल्यासारखे ते वाटत होते. पॅटर्न-मॅचिंग टूल याला 'हाय-सेव्हॅरिटी' (high-severity) बग म्हणेल.
मी ते सत्यापित करण्यासाठी दुसऱ्या टप्प्याचा वापर केला. मला असे आढळले की गहाळ असलेली तपासणी (missing check) एक्सप्लॉइटकडे (exploit) नेणारी नव्हती. ही प्रणाली लाईव्ह सेशन कुकीज वापरते आणि अंतिम टप्प्यावर विशेषाधिकारांची (privileges) पुन्हा तपासणी करते. ती त्रुटी गंभीर नव्हती.
जर मी तो रिपोर्ट केला असता, तर माझी विश्वासार्हता कमी झाली असती. खरी किंमत शांत राहण्यातील आत्मविश्वासात होती.
याच पद्धतीने दुसऱ्या एका टार्गेटमध्ये खरा बग सापडला. एका दुय्यम एन्ट्री पॉईंटमध्ये ऑथोरायझेशन चेकची नक्कल (mirror) करायला विसरले होते. वापरकर्त्याचा प्रवेश रद्द केल्यानंतरही तो 'साईड डोअर'मधून प्रवेश करू शकत होता.
बग हंटिंगमधील विजेते आवाजावर (volume) नाही तर सिग्नलवर (signal) लक्ष केंद्रित करतील. मानवापेक्षा जास्त कोड वाचण्यासाठी AI चा वापर करा. त्यानंतर, रिपोर्ट सबमिट करण्यापूर्वी स्वतःला चुकीचे सिद्ध करण्यासाठी AI चा वापर करा.
Optional learning community: https://t.me/GyaanSetuAi
