ઓથોરાઈઝેશન બગ્સ શોધવા માટે AI નો ઉપયોગ કરવો

બગ બાઉન્ટી પ્રોગ્રામ્સ બદલાઈ રહ્યા છે. કેટલાક પ્રોગ્રામ્સ ઇનામ આપવાનું બંધ કરી દીધું છે. અન્ય લોકોએ પેઆઉટમાં 80% ઘટાડો કર્યો છે. તેનું કારણ એ નથી કે AI ઘણા બધા બગ્સ શોધી કાઢે છે. કારણ એ છે કે AI ઘણા બધા ખોટા બગ્સ શોધી કાઢે છે. ટ્રાયજ ટીમો ઓછી ગુણવત્તાવાળી રિપોર્ટ્સથી કંટાળી રહી છે.

આ વાતાવરણમાં, સૌથી મહત્વપૂર્ણ કૌશલ્ય બગ્સ શોધવાનું નથી. તે એ સાબિત કરવાનું છે કે કોઈ બગ અસ્તિત્વ ધરાવતો નથી. તમારે સાચા નેગેટિવ્સ (negatives) શોધવા જોઈએ.

હું સોર્સ-અવેલેબલ ટાર્ગેટ્સ માટે બે તબક્કાની પદ્ધતિનો ઉપયોગ કરું છું.

સ્ટેજ 1: ફેન-આઉટ (Fan-out) કોડ વાંચવા માટે સસ્તા AI મોડલ્સનો ઉપયોગ કરો. ટાર્ગેટને નાના ટુકડાઓમાં વિભાજિત કરો. મોડલને બ્રોકન ઇનવેરિયન્ટ્સ (broken invariants) શોધવા માટે કહો. એવી જગ્યાઓ શોધો જ્યાં ઓનર ચેક વગર ઓબ્જેક્ટ લોડ થાય છે અથવા જ્યાં સિક્યુરિટી ગેટ સ્કીપ કરવામાં આવે છે. હાઈ રિકોલ (high recall) લક્ષ્ય રાખો. ઘણી ભૂલોની અપેક્ષા રાખો.

સ્ટેજ 2: એડવર્સરીયલ વેરિફિકેશન (Adversarial Verification) ઉમેદવારોને (candidates) નકારવા માટે મોંઘા, હાઈ-રીઝનિંગ મોડલનો ઉપયોગ કરો. માની લો કે દરેક ઉમેદવાર ખોટો છે. કોઈ ઉમેદવાર ત્યારે જ ટકી શકે જો તમે કોડની ચોક્કસ લાઇન ટાંકી શકો. તમારે સાબિત કરવું પડશે કે તે પાથ (path) સુધી પહોંચી શકાય તેવો છે અને અન્ય કોઈ ચેક તેને રોકતું નથી.

સૌથી મૂલ્યવાન આઉટપુટ એ રિફ્યુટેશન્સ (refutations) ની યાદી છે. આ યાદી ટ્રાયજર્સ સાથે વિશ્વાસ બનાવે છે.

મેં Ory Kratos નું પરીક્ષણ કર્યું, જે એક ઓપન-સોર્સ આઈડેન્ટિટી સર્વર છે. મેં સેટિંગ્સ ફ્લો (settings flow) જોયો. આ એરિયા પાસવર્ડ બદલવા અને ઈમેલ અપડેટ્સ સંભાળે છે. અહીં એક નાની ભૂલ પણ એકાઉન્ટ ટેકઓવર તરફ દોરી શકે છે.

પ્રથમ તબક્કામાં એક આકર્ષક બગ મળ્યો. OIDC સ્ટ્રેટેજીમાં, એક ચોક્કસ કન્ટેનરમાં આઈડેન્ટિટી બાઈન્ડિંગનો અભાવ છે. જો તમે ફક્ત મિસિંગ ચેક્સ શોધો છો, તો તમે આને હાઈ-સીવિયરિટી બગ તરીકે રિપોર્ટ કરશો.

તે એક ભૂલ હશે.

મિસિંગ બાઈન્ડિંગ એક્સપ્લોઈટેબલ (exploitable) નથી. સિસ્ટમ લાઈવ સેશન કૂકી અથવા સાઈન્ડ ટોકનમાંથી ટાર્ગેટ આઈડેન્ટિટી મેળવે છે. કન્ટેનર ટ્રેટ્સ ક્યારેય વાસ્તવિક રાઈટ ટાર્ગેટ પર લાગુ પડતા નથી. ડિઝાઇન સુરક્ષિત છે.

આ રિપોર્ટ કરવાથી સમયનો બગાડ થશે અને તમારી વિશ્વસનીયતાને નુકસાન થશે. મેં જે મૂલ્ય પૂરું પાડ્યું તે રિપોર્ટ ન કરવા માટેનો આત્મવિશ્વાસ હતો.

જ્યારે મેં આ જ પદ્ધતિનો ઉપયોગ બીજા ટાર્ગેટ પર કર્યો, ત્યારે મને એક અસલી બગ મળ્યો. એક વૈકલ્પિક એન્ટ્રી પોઈન્ટમાં ઓથોરાઈઝેશન ચેક રહી ગયો હતો જે મુખ્ય પાથમાં લાગુ કરવામાં આવતો હતો. રિવોક થયેલ યુઝર હજુ પણ સાઈડ ડોર દ્વારા પ્રવેશ કરી શકતો હતો. આ બગ હાઈ-ઈમ્પેક્ટ હતો અને સ્ટાન્ડર્ડ સ્કેનર્સ માટે અદ્રશ્ય હતો.

ગેટકીપર્સ વોલ્યુમ સામે દીવાલો બનાવી રહ્યા છે. સફળ થવા માટે, તમારું AI કામ સચોટ હોવું જોઈએ. માનવી કરતાં વધુ કોડ વાંચવા માટે AI નો ઉપયોગ કરો. પછી સબમિટ કરતા પહેલા તમારી જાતને ખોટી સાબિત કરવા માટે AI નો ઉપયોગ કરો.

વોલ્યુમ પર નહીં, સિગ્નલ પર ધ્યાન આપો.

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