એક SBOM સાબિત કરે છે કે તમે શું ઇન્સ્ટોલ કર્યું છે. તે એ સાબિત કરી શકતું નથી કે તમારે તે ઇન્સ્ટોલ કરવું જોઈતું હતું કે નહીં.

SBOM એક રસીદ જેવું છે. તે તમને જણાવે છે કે તમે શું ઇન્સ્ટોલ કર્યું છે. તે તમને એ નથી જણાવતું કે તેને ઇન્સ્ટોલ કરવાનું તમારું નિર્ણય સાચો હતો કે નહીં.

મોટાભાગની ટીમો તેમના CI/CD પાઇપલાઇન્સમાં SBOM અને CVE સ્કેનનો ઉપયોગ કરે છે. હાલના પેકેજોમાં જાણીતી નબળાઈઓ (vulnerabilities) શોધવા માટે આ સાધનો ઉત્તમ છે. પરંતુ જ્યારે AI કોડિંગ એજન્ટ્સનો ઉપયોગ કરવામાં આવે છે, ત્યારે તેમાં એક મોટો 'બ્લાઇન્ડ સ્પોટ' (blind spot) હોય છે.

એક AI એજન્ટ પેકેજનું નામ સૂચવે છે. તે આ કામ એટલા જ આત્મવિશ્વાસ સાથે કરે છે, પછી ભલે તે નામ સાચું હોય, ભ્રમ (hallucination) હોય અથવા ટાઇપોસ્ક્વોટ (typosquat) હોય.

જો કોઈ હુમલાખોરે ગઈકાલે જ કોઈ નુકસાનકારક (malicious) પેકેજનું નામ રજિસ્ટર કર્યું હોય, તો તેની પાસે હજુ સુધી કોઈ CVE નથી હોતું. તમારું પોસ્ટ-ઇન્સ્ટોલ સ્કેન તેને જોશે અને તેને સુરક્ષિત (clean) તરીકે માર્ક કરશે. સ્કેન પ્રમાણિક છે, પરંતુ તેણે ખોટા પ્રશ્નનો જવાબ આપ્યો છે. તેણે "શું આ ખરાબ તરીકે જાણીતું છે?" તેનો જવાબ આપ્યો છે, બદલે કે "શું આ નામ અમારા સ્ટેકમાં હોવું જોઈએ?"

જ્યારે સુધી SBOM કોઈ નુકસાનકારક પેકેજની નોંધ લે છે, ત્યાં સુધી નુકસાન થઈ ચૂક્યું હોય છે. નુકસાનકારક કોડ ઘણીવાર ઇન્સ્ટોલ તબક્કા દરમિયાન postinstall સ્ક્રિપ્ટ્સ દ્વારા ચાલે છે. તમારું સ્કેનર ફાઇલ ટ્રી જોતા પહેલા જ તે તમારા એન્વાયરમેન્ટ વેરિયેબલ્સ (environment variables) અને CI સિક્રેટ્સ ચોરી શકે છે.

તમારે આડઅસર (side effect) પહેલાં નિર્ણય (verdict) ની જરૂર છે.

મેં આ સમસ્યાના ઉકેલ માટે એક સરળ સાધન બનાવ્યું છે. તે એક pre-install provenance gate છે. તે સ્કેનર કરતા અલગ રીતે કામ કરે છે:

• તે npm install ચાલતા પહેલા નામો તપાસે છે. • તે પ્રમાણિત બેઝલાઇન (vouched baseline) સામે 'ડિફોલ્ટ-ડિનાય' (default-deny) અભિગમનો ઉપયોગ કરે છે. • તે લોકપ્રિય પેકેજોથી એડિટ ડિસ્ટન્સ (edit distance) માપીને ટાઇપોસ્ક્વોટ્સને ફ્લેગ કરે છે. • તે એવા ભ્રમ (hallucinations) પકડે છે જે કોઈપણ જાણીતા સારા નામો સાથે મેળ ખાતા નથી. • તે ખાતરી કરવા માટે તમારા .npmrc ને વેરિફાય કરે છે કે તમે કોઈ ખોટા (rogue) રજિસ્ટ્રીનો ઉપયોગ નથી કરી રહ્યા.

આ સાધન ઓફલાઇન, કીલેસ (keyless) છે અને ફક્ત Python standard library નો ઉપયોગ કરે છે. તે નેટવર્ક સાથે કનેક્ટ થતું નથી. તે પેકેજોને રિઝોલ્વ (resolve) કરતું નથી. તે ફક્ત સૂચવેલા નામો જુએ છે અને પૂછે છે: "શું અમે આ નામની ખાતરી આપીએ છીએ?"

જો નામ તમારા પ્રમાણિત સ્નેપશોટમાં ન હોય અને લોકપ્રિય બેઝલાઇનમાં પણ ન હોય, તો ગેટ DENY રિટર્ન કરે છે.

જે બન્યું છે તેના રેકોર્ડ્સ પર જ આધાર રાખવાનું બંધ કરો. શું થવાની પરવાનગી છે તે નક્કી કરવાનું શરૂ કરો.

Source: https://dev.to/alex_spinov/an-sbom-proves-what-you-installed-it-cant-prove-you-should-have-117c

Optional learning community: https://t.me/GyaanSetuAi