Code property graph
કોમ્પ્યુટર વિજ્ઞાનમાં, કોડ પ્રોપર્ટી ગ્રાફ (સી. પી. જી.) એ કોમ્પ્યુટર પ્રોગ્રામની રજૂઆત છે જે પ્રોપર્ટી ગ્રાફમાં વાક્યરચના માળખું, નિયંત્રણ પ્રવાહ અને ડેટા નિર્ભરતા મેળવે છે. આ ખ્યાલ મૂળરૂપે સી અને સી + + સિસ્ટમ કોડમાં સુરક્ષા નબળાઈઓને ઓળખવા માટે રજૂ કરવામાં આવ્યો હતો, પરંતુ ત્યારથી વેબ એપ્લિકેશન્સ, ક્લાઉડ જમાવટ અને સ્માર્ટ કરારોનું વિશ્લેષણ કરવા માટે તેનો ઉપયોગ કરવામાં આવે છે. નબળાઈની શોધ ઉપરાંત, કોડ પ્રોપર્ટી ગ્રાફ કોડ ક્લોન ડિટેક્શન, એટેક-સરફેસ ડિટેક્શન, એક્સપ્લોઇટ જનરેશન, કોડ ટેસ્ટેબિલિટી માપવા અને સુરક્ષા પેચોના બેકપોર્ટિંગમાં એપ્લિકેશનો શોધે છે. વ્યાખ્યા પ્રોગ્રામનો કોડ પ્રોપર્ટી ગ્રાફ એ તેના અમૂર્ત વાક્યરચના વૃક્ષો (AST), નિયંત્રણ-પ્રવાહ આલેખ (CFG) અને નિવેદન અને અનુમાનિત ગાંઠો પર પ્રોગ્રામ અવલંબન આલેખ (PDG) ને ભેળવીને મેળવેલા પ્રોગ્રામની આલેખ રજૂઆત છે. પરિણામી આલેખ એ મિલકત આલેખ છે, જે નિયો4જે, જાનુસગ્રાફ અને ઓરિએન્ટડીબી જેવા આલેખ ડેટાબેઝનું અંતર્ગત આલેખ મોડેલ છે, જ્યાં ડેટા નોડ્સ અને ધારમાં કી-વેલ્યુ જોડી તરીકે સંગ્રહિત થાય છે. અસરકારક રીતે, કોડ ગુણધર્મ આલેખ આલેખ ડેટાબેઝમાં સંગ્રહિત કરી શકાય છે અને આલેખ ક્વેરી ભાષાઓનો ઉપયોગ કરીને પૂછપરછ કરી શકાય છે. ઉદાહરણ સી પ્રોગ્રામના કાર્યને ધ્યાનમાં લોઃ રદબાતલ ફૂ () {પૂર્ણાંક x = સ્રોત (); જો (x <MAX) {પૂર્ણાંક y = 2 * x; સિંક (y);} કાર્યનો કોડ ગુણધર્મ આલેખ તેના અમૂર્ત વાક્યરચના વૃક્ષ, નિયંત્રણ-પ્રવાહ આલેખ અને નિવેદનો પર પ્રોગ્રામ અવલંબન ગ્રાફને મર્જ કરીને મેળવવામાં આવે છે અને નીચેની આકૃતિમાં જોવા મળે છે તેમ આગાહી કરે છેઃ અમલીકરણ જોર્ન સી. પી. જી. મૂળ કોડ પ્રોપર્ટી ગ્રાફ સી/સી + + માટે 2013 માં ગોટિન્જેન યુનિવર્સિટી ખાતે ઓપન-સોર્સ કોડ એનાલિસિસ ટૂલ જોર્નના ભાગ રૂપે અમલમાં મૂકવામાં આવ્યો હતો. આ મૂળ સંસ્કરણને બંધ કરવામાં આવ્યું છે અને ઓપન-સોર્સ જોર્ન પ્રોજેક્ટ દ્વારા તેનું સ્થાન લીધું છે, જે બહુવિધ પ્રોગ્રામિંગ ભાષાઓને લાગુ પડતા ઔપચારિક કોડ પ્રોપર્ટી ગ્રાફ સ્પષ્ટીકરણ પ્રદાન કરે છે. આ પ્રોજેક્ટ C/C + +, જાવા, જાવા બાઈટકોડ, કોટલિન, પાયથોન, જાવાસ્ક્રિપ્ટ, ટાઇપસ્ક્રિપ્ટ, LLVM બિટકોડ અને x86 દ્વિસંગીઓ (ઘિદ્રા ડિસએસેમ્બલર દ્વારા) માટે કોડ પ્રોપર્ટી ગ્રાફ જનરેટર પ્રદાન કરે છે. પ્લુમ સી. પી. જી. 2020 માં સ્ટેલનબોશ યુનિવર્સિટીમાં વિકસિત અને એમેઝોન સાયન્સ દ્વારા પ્રાયોજિત, ઓપન-સોર્સ પ્લુમ પ્રોજેક્ટ જોર્ન પ્રોજેક્ટ દ્વારા પ્રદાન કરાયેલ કોડ પ્રોપર્ટી ગ્રાફ સ્પષ્ટીકરણ સાથે સુસંગત જાવા બાઇટકોડ માટે કોડ પ્રોપર્ટી ગ્રાફ પ્રદાન કરે છે. આ બંને પ્રોજેક્ટ 2021માં મર્જ થયા હતા. ફ્રાઉનહોફર AISEC CPG. આ સી/સી + +, જાવા, ગોલાંગ અને પાયથોન માટે ઓપન-સોર્સ કોડ પ્રોપર્ટી ગ્રાફ જનરેટર પ્રદાન કરે છે, જોકે ઔપચારિક યોજના સ્પષ્ટીકરણ વિના. તે ક્લાઉડ પ્રોપર્ટી ગ્રાફ પણ પ્રદાન કરે છે, જે કોડ પ્રોપર્ટી ગ્રાફ ખ્યાલનું વિસ્તરણ છે જે ક્લાઉડ જમાવટની વિગતોને મોડેલ કરે છે. એલ. એલ. વી. એમ. માટે ગેલોઈસનું સી. પી. જી. ગેલોઇસ ઇન્ક. એલ. એલ. વી. એમ. કમ્પાઇલર પર આધારિત કોડ પ્રોપર્ટી ગ્રાફ પ્રદાન કરે છે. આલેખ સંકલનના વિવિધ તબક્કે કોડનું પ્રતિનિધિત્વ કરે છે અને આ રજૂઆતો વચ્ચે મેપિંગ કરે છે. તે કસ્ટમ સ્કીમાને અનુસરે છે જે તેના દસ્તાવેજીકરણમાં વ્યાખ્યાયિત થયેલ છે. કોડ પ્રોપર્ટી ગ્રાફ પર મશીન લર્નિંગ કોડ પ્રોપર્ટી ગ્રાફ નબળાઈની શોધ માટે ઘણા મશીન-લર્નિંગ-આધારિત અભિગમો માટેનો આધાર પૂરો પાડે છે. ખાસ કરીને, વલ્નરેબિલિટી ડિટેક્ટર્સ મેળવવા માટે ગ્રાફ ન્યુરલ નેટવર્ક્સ (જીએનએન) નો ઉપયોગ કરવામાં આવ્યો છે. એબ્સ્ટ્રેક્ટ સિન્ટેક્સ ટ્રી (AST) કંટ્રોલ-ફ્લો ગ્રાફ (CFG) પ્રોગ્રામ ડિપેન્ડન્સ ગ્રાફ (PDG) ગ્રાફ ડેટાબેઝ સંદર્ભો કમ્પ્યુટર સુરક્ષા સોફ્ટવેર એપ્લિકેશન-વિશિષ્ટ ગ્રાફ પણ જુઓ.