આ ત્રીજો એપિસોડ છે લેખોની શ્રેણી સૌથી પ્રચલિત પ્રકારના સોફ્ટવેર સપ્લાય ચેઇન હુમલાઓ વિશે: જે જાહેર રજિસ્ટ્રીનો દુરુપયોગ કરે છે ખુલ્લા સ્ત્રોત સોફ્ટવેર ઘટકો. પાછલા એપિસોડમાં વિશ્લેષણ કર્યા પછી “દૂષિત પેકેજોનું શરીરરચના: વલણો શું છે?"ખરાબ કલાકારો નવા અથવા હાલના પ્રકાશિત ઘટકોમાં દૂષિત વર્તન કેવી રીતે દાખલ કરે છે, અમે અમારા અગ્નિશામક જેકેટ્સ પહેરવા અને આ રીતે પહોંચાડાયેલા દૂષિત સોફ્ટવેરને સફળતાપૂર્વક કેવી રીતે અવરોધિત કરી શકીએ છીએ તેની તપાસ કરવા માટે તૈયાર છીએ, અથવા વૈકલ્પિક રીતે, સંભવિત ગંભીર સાયબર ઘટનાનો સામનો કેવી રીતે કરી શકીએ છીએ કારણ કે અમે ખોટો અભિગમ અપનાવ્યો હતો."
મોટાભાગના સુરક્ષા-જાગૃત વ્યાવસાયિકો પાસે આ ખતરાને કેવી રીતે હેન્ડલ કરવું તે અંગે વિચારો હોય છે. અમે સુરક્ષા મેનેજરોને ખચકાટ વિના કહેતા સાંભળ્યા છે કે SCA ટૂલ્સ તમને પહેલાથી જ કહે છે કે પેકેજ વર્ઝન ક્યારે માલવેર છે. અથવા તેઓ જાણીતા, ખૂબ જ સમીક્ષા કરાયેલા સોફ્ટવેર ઘટકો પર આધાર રાખે છે, જ્યાં કોઈપણ માલવેર તાત્કાલિક શોધી કાઢવામાં આવશે અને દૂર કરવામાં આવશે. તેઓ આપમેળે નબળાઈ સુધારાઓ મેળવવા માટે ઓપન માઇનોર/પેચ વર્ઝનનો ઉપયોગ કરે છે, અને તે ઓપન સોર્સ ડિપેન્ડન્સી પર જોખમ ઘટાડવાનો યોગ્ય, ભલામણ કરેલ રસ્તો છે, "વહેલા પેચ કરો, વારંવાર પેચ કરો”સિદ્ધાંત.
આ એપિસોડમાં, આપણે સમીક્ષા કરીશું કે આ વિચારો શા માટે ખોટા છે, અને આવી ગેરમાન્યતાઓ આ હુમલાની પદ્ધતિની લોકપ્રિયતામાં અને સંગઠનો અનુભવી રહેલા ભારે જોખમમાં કેવી રીતે ફાળો આપી રહી છે. આપણે શું કામ કરે છે, અને તેમાં કયા પ્રયત્નો અને સંસાધનો સામેલ છે તે સાથે સમાપ્ત કરીશું.
સામાન્ય ગેરસમજો
સોફ્ટવેર સુરક્ષા સાથેની અમારી સફર દરમિયાન, અમે હુમલાની તકનીકોનો વિકાસ અને સુરક્ષા પ્રત્યે સભાન લોકોના વિચારોની વિશાળ શ્રેણી જોઈ. સંસ્થાઓ ઘણીવાર આ ખતરા સામે શું કામ કરે છે તે અંગે ગેરસમજ કરે છે, તેથી પહેલા આપણે તપાસ કરીશું કે શું કામ કરતું નથી, નીચેની સંપૂર્ણ ગેરસમજોની સૂચિમાં સંક્ષિપ્ત, નહીં.
ગેરસમજ #1: SCA સાધનો પહેલાથી જ દૂષિત ઘટકોની જાણ કરે છે
ખરેખર! પરંતુ હકીકત પછી… જ્યારે કદાચ સોફ્ટવેર બિલ્ડમાં તત્વનો ઉપયોગ કરવામાં આવ્યો હોય તો ખૂબ મોડું થઈ ગયું હોય, અને ખરાબ કલાકારોએ ડેવલપરમાં પગપેસારો કરી લીધો હોય અથવા CI/CD હોસ્ટ. રહસ્યો કાઢી નાખવામાં આવ્યા હશે, વધારાના માલવેર ડાઉનલોડ અને ઇન્સ્ટોલ કરવામાં આવ્યા હશે, અને કદાચ વિરોધી બાજુ તરફ ગયો હશે અને પહેલાથી જ બીજે ક્યાંક પ્રવેશ મેળવી લીધો હશે.
સોફ્ટવેર કમ્પોઝિશન વિશ્લેષણ (SCA) ટૂલ્સ સંભવિત જાણીતી નબળાઈઓને ઓળખવા માટે ડિઝાઇન કરવામાં આવ્યા હતા. આધુનિક ટૂલ્સ સિગ્નલ-અવાજ ગુણોત્તરમાં વધારો કરીને, નબળાઈ ખરેખર પહોંચી શકાય તેવી છે કે શોષણ કરી શકાય તેવી છે તે નક્કી કરીને ઉત્તમ કાર્ય કરે છે. પરંતુ નવા માલવેર સામે તે નકામા છે. દૂષિત ઘટકને શૂન્ય-દિવસની નબળાઈ તરીકે વિચારો: જ્યારે તેનું દૂષિત વર્તન શોધી કાઢવામાં આવે છે, ત્યારે જ ઘટક હોલ્ડિંગ રજિસ્ટ્રીને જાણ કરવામાં આવે છે, જે સુરક્ષા ટીમ દ્વારા સમીક્ષા પછી દૂષિત તરીકે પુષ્ટિ થાય છે અને રજિસ્ટ્રીમાંથી દૂર કરવામાં આવે છે. [1].
તે સમયે, વિશ્વ (સહિત SCAs) જાણે છે કે ઘટક (અથવા હાલના ઘટકના કેટલાક સંસ્કરણો) ઇન્સ્ટોલ કરવું અથવા તેનો ઉપયોગ કરવો એ સારી બાબત નથી. પરંતુ આ ત્યારે થાય છે જ્યારે ઘટક રજિસ્ટ્રીમાંથી ઉપલબ્ધ ન હોય. એ જાણવું સારું છે કે મારી પાસે તૃતીય-પક્ષ ઘટકોમાં નબળાઈઓ છે, અથવા તો એવા ઘટકો પણ છે જેને રજિસ્ટ્રી દ્વારા દૂષિત તરીકે વર્ગીકૃત કરવામાં આવ્યા છે, પરંતુ કમનસીબે SCA અથવા સામાન્ય ઓડિટ સાધનો આ સંદર્ભમાં મદદ કરતા નથી. જ્યાં સુધી SCA/ઓડિટ ટૂલ ખરેખર અગાઉથી જાણી શકે છે કે કોઈ ઘટક તમારા સંગઠનમાં ઉપયોગમાં લેવાય તે પહેલાં તે દૂષિત છે..
યાદ રાખો, દૂષિત ઓપન-સોર્સ ઘટકો સામેના કોઈપણ ઉકેલમાં તેમને શોધવા આવશ્યક છે ઉડતી વખતે, જ્યારે ઘટક રજિસ્ટ્રીમાં પ્રકાશિત થાય છે અને જ્યારે ઘટક (સંસ્કરણ) તમારી સંસ્થામાં પ્રથમ વખત ઉપયોગમાં લેવાય છે તે વચ્ચે. અને તેમાં ટ્રાન્ઝિટિવ ઘટકોનો સમાવેશ થાય છે.
ગેરસમજ #2: બિલ્ડ સમયે ઇન્સ્ટોલેશન સ્ક્રિપ્ટ્સને નિયંત્રિત કરવાથી ઓપન-સોર્સ ઘટકોમાંથી દૂષિત વર્તન અટકાવે છે.
વિવિધ પેકેજ મેનેજરો સ્ક્રિપ્ટો ચલાવવાની ક્ષમતા પ્રદાન કરે છે (ઘટક ટારબોલમાં સમાવિષ્ટ) [2]), કાયદેસર કારણોસર, જેમ કે વિવિધ પ્લેટફોર્મ પર જરૂરી વસ્તુઓનું સંકલન કરવું, કોડ જનરેટ કરવો અથવા પરીક્ષણો ચલાવવા, અને આપણે બધાએ જાણવું જોઈએ કે જો દૂષિત સ્ક્રિપ્ટો ટારબોલમાં શામેલ કરવામાં આવે, અથવા જો હુમલાખોર સારી સ્ક્રિપ્ટને બદલે દૂષિત સ્ક્રિપ્ટ ચલાવી શકે તો ખરાબ કલાકારો દ્વારા તેનો દુરુપયોગ થઈ શકે છે.
આ જાણીને, આપણે સ્ક્રિપ્ટોને અવગણવા માટે પેકેજ મેનેજરને ગોઠવી શકીએ છીએ. ઉદાહરણ તરીકે, NPM સાથે સ્ક્રિપ્ટોને અવગણો ધ્વજ (અથવા માં રૂપરેખાંકન ગુણધર્મ .npmrc ફાઇલ) ઇન્સ્ટોલેશન દરમિયાન સ્ક્રિપ્ટ્સને છોડી દે છે. આનાથી કેટલીક સમસ્યાઓ થઈ શકે છે કારણ કે ઘણી ઇકોસિસ્ટમ્સમાં સ્ક્રિપ્ટો ચલાવવી સામાન્ય છે: કેટલાક પેકેજ મેનેજરો સ્ક્રિપ્ટ એક્ઝેક્યુશનને અક્ષમ કરવાની પણ મંજૂરી આપતા નથી (સંકેત: પ્રોમ્પ્ટ “કયા પેકેજ મેનેજરો ઇન્સ્ટોલ સ્ક્રિપ્ટોના અમલીકરણને અક્ષમ કરવાની મંજૂરી આપતા નથી?"તમારા મનપસંદ AI માં"). પરંતુ આ સામાન્ય રીતે રક્ષણ આપતું નથી (આપણે સ્કીપ ડિસેબલ ગોઠવણી દરેક જગ્યાએ લાગુ કરવાની જરૂર છે).
અને જ્યારે દૂષિત વર્તણૂક ઇન્સ્ટોલ સ્ક્રિપ્ટ્સમાં નહીં પરંતુ રનટાઇમ પર ચલાવવા માટેના સોફ્ટવેરમાં હોય છે, ત્યારે આ વિકલ્પ ફક્ત આપણને સુરક્ષિત રાખતો નથી.
ગેરસમજ #3: વર્ઝન પિનિંગ દૂષિત ઘટકોને ઇન્સ્ટોલ થવાથી અટકાવે છે
વહેલા પેચિંગ અને વારંવાર પેચિંગ વચ્ચે એક સમજૂતી છે ખુલ્લા સંસ્કરણો (સુરક્ષા સુધારાઓ માટે ઉપલબ્ધ હોય ત્યારે પેકેજ મેનેજરને આપમેળે નવા અપડેટ્સ ઇન્સ્ટોલ કરવા દેવા) અને વર્ઝન પિનિંગ (એક નિશ્ચિત સંસ્કરણ પર સોફ્ટવેર માટે બધી સીધી અને સંક્રમિત અવલંબન ધરાવતા). સુરક્ષા સિદ્ધાંતો હઠીલા અને ક્યારેક વિરોધાભાસી છે, જેમ કે "પેચ વહેલા, પેચ વારંવાર" અને "અપગ્રેડિંગને હળવાશથી ન લેવું જોઈએ". કેટલાક પેકેજ મેનેજરો ભલામણ કરેલ રીતે સર્વર રેન્જ સાથે ઓટોમેટિક અપડેટ્સ બનાવે છે. જો તમે પણ દૂષિત અપડેટ્સ પ્રાપ્ત કરવા માંગતા હોવ તો સરસ! હા, શક્ય તેટલી વહેલી તકે નબળાઈઓને બંધ કરતી સુરક્ષા સુધારાઓ પ્રાપ્ત કરવા માટે ઘટકોને અપડેટ કરવા આવશ્યક છે, પરંતુ ... પેકેજ મેનેજરને ક્યારેય આ આપમેળે કરવા દો નહીં.
ગેરસમજ #૪: વિશ્વસનીય ઘટકોનો ઉપયોગ સલામત છે. કોઈપણ દૂષિત સંસ્કરણ તાત્કાલિક મળી આવશે, જાહેર કરવામાં આવશે અને દૂર કરવામાં આવશે.
કોઈ ઘટક પર શા માટે વિશ્વાસ કરવામાં આવે છે? કદાચ એટલા માટે કે તે ખૂબ જ લોકપ્રિય છે, ઘણા લોકો નબળાઈઓ શોધી રહ્યા છે, જાળવણી માટે મોટી સંખ્યામાં ફાળો આપનારાઓ છે, બહુવિધ મુખ્ય જાળવણીકારો છે જે ખંતપૂર્વક બધાની સમીક્ષા કરે છે. pull requests. વાસ્તવિકતા તદ્દન અલગ છે. કેટલાક આવશ્યક ઘટકો એક જ, ચૂકવણી ન કરતા ડેવલપર દ્વારા જાળવવામાં આવે છે. વ્યાપકપણે ઉપયોગમાં લેવાતા ફ્રેમવર્કમાં થોડા નિયમિત ફાળો આપનારાઓ, ઝડપથી ઘટતી સંખ્યા સાથે commitજાળવણીકર્તા દીઠ (લોકપ્રિય પ્રોજેક્ટ્સમાં ફાળો આપનારાઓની લાંબી પૂંછડી હોય છે જે કેટલાક ડ્રાઇવ-બાય કરે છે) commit અને ક્યારેય પાછા નહીં આવે). અને એક જ જાળવણીકાર સાથેના લોકપ્રિય પ્રોજેક્ટ્સ ભરપૂર છે.
કલ્પના કરો કે તમે કહો છો "ઓહ, અમે સ્પ્રિંગ બૂટ / એંગ્યુલર / રિએક્ટ / પાયટોર્ચ / ઓફિશિયલ બેઝ ડોકર ઈમેજીસનો ઉપયોગ કરી રહ્યા છીએ, તેથી તમે જે જોખમ વિશે વાત કરી રહ્યા છો તે ખૂબ ઓછું છે." કદાચ એ સાચું છે, આપણે સુરક્ષા વિક્રેતાઓ હંમેશા ડરાવતા રહીએ છીએ, અને ચર્ચાસ્પદ જોખમ ઘટાડવા માટે વિકાસ ટીમોમાં દખલ કરવી એ બકવાસ છે. તમે જોખમ સ્વીકૃતિ ફકરા (આગળના વિભાગમાં) પર જવા માટે લલચાઈ શકો છો અને બધું થઈ ગયું છે. કમનસીબે, સૌથી વધુ લોકપ્રિય ઘટકો ખરાબ અભિનેતાઓ માટે લક્ષ્ય છે, અને ઉદાહરણ તરીકે, લોકપ્રિય પાયટોર્ચ લાઇબ્રેરી પર હુમલો થયો હતો ભૂતકાળ માં.
"તાત્કાલિક મળી, જાહેર કરવામાં અને દૂર કરવામાં". જાહેર રજિસ્ટ્રીમાંથી નવા દૂષિત ઘટકને દૂર કરવામાં દિવસો લાગે છે. રજિસ્ટ્રીઓ સારા માટે ઘટક સંસ્કરણને દૂર કરવામાં સાવચેત રહે છે. અમારો અનુભવ એ છે કે એકવાર અમારી તરફથી જાણ કરવામાં આવે પછી, અસરગ્રસ્ત સંસ્કરણને દૂર કરવા માટે રજિસ્ટ્રીનો સરેરાશ સમય 39 કલાક છે, દોઢ દિવસથી વધુ. એવા દૂષિત ઘટકો છે જે રજિસ્ટ્રીમાં અમારી પ્રારંભિક રિપોર્ટિંગ પછી દૂર કરતા પહેલા એક અઠવાડિયા હોય છે. અને કેટલાક કિસ્સાઓમાં, પીડિત અથવા ઘટના પ્રતિભાવ કંપની ઘટકને લગતી ઘટનાની જાણ કરે તે પછી જ ઘટક દૂર કરવામાં આવે છે.
દૂષિત ઘટકો સામે શું કામ કરતું નથી
કોઈપણ અચોક્કસ અભિગમ ખરાબ રીતે નિષ્ફળ જશે. આ ચોક્કસ છે કે, તમે આ ખતરા સાથે સંકળાયેલા જોખમ માટે અસરકારક પ્રતિકારક પગલાં આપી રહ્યા નથી.
પરંપરાગત SCA ટૂલ્સ તમને જાણીતા માલવેર વિશે જણાવે છે પરંતુ તેમની પાસે મોટી એક્સપોઝર વિન્ડો હોય છે. જ્યાં સુધી તેઓ દૂષિત ઘટકોને ફરજિયાત અવરોધિત કરીને માલવેર શોધ સક્રિય રીતે ન કરે, ત્યાં સુધી તેઓ આ ખતરા સામે કામ કરતા નથી.
ઇન્સ્ટોલેશન સ્ક્રિપ્ટોને અક્ષમ કરવાથી મદદ મળી શકે છે, પરંતુ જ્યાં પણ ઘટક ઇન્સ્ટોલ કરવાની જરૂર હોય ત્યાં તેને લાગુ કરવાની જરૂર છે. વર્ઝન પિનિંગ સાથે પણ એવું જ છે, કારણ કે વર્ઝનને સુરક્ષિત પ્રારંભિક સ્થિતિમાંથી કાયમ માટે પિન કરી શકાતા નથી.
એવું માની લેવું કે લોકપ્રિય ઘટકો પર પૂરતું ધ્યાન આપવામાં આવે છે કે સપ્લાય ચેઇન હુમલામાં કોઈપણ નુકસાનને રોકવા માટે લગભગ તાત્કાલિક શોધ કર્યા વિના તેમને અણધાર્યા વર્તનથી ઇન્જેક્ટ કરી શકાતા નથી, તે નિષ્કપટ અને જોખમી છે. તમે ધાર પર રહેવા માંગતા નથી, ખરું ને?
જો તમે આ બિંદુએ રોકાઈ જાઓ છો, તો પછી જોખમ સ્વીકૃતિ તમે ફક્ત આ જ કરી શકો છો: આ એક ડી છેcisજોખમ સ્વીકારવાના તર્ક અને તેના સંભવિત પરિણામો સહિત, તમારા ધમકી મોડેલ/જોખમ મૂલ્યાંકનમાં દસ્તાવેજીકરણ કરવાની જરૂર છે. મેનેજમેન્ટ અને અન્ય સંબંધિત પક્ષોને તેની જાણ કરીને જાગૃતિ ફેલાવો. કેટલાક આકસ્મિક જ્યારે તમારા સોફ્ટવેરમાં કોઈ દૂષિત ઘટક ઇન્સ્ટોલ કરવામાં આવે અથવા તેનો સમાવેશ થાય ત્યારે તેનું આયોજન કરી શકાય છે, પરંતુ આ મુશ્કેલ છે કારણ કે હુમલાખોરો પાસે ઘણા રસ્તાઓ અનુસરવા પડે છે. દૂષિત ઘટકના ઉપયોગ પર આધારિત સપ્લાય ચેઇન હુમલાની વિગતો ઘટનાના જાહેર ખુલાસામાં ધરખમ ફેરફાર કરશે, જે કદાચ તમારી સંસ્થાના નિયમનકારી માળખા હેઠળ ફરજિયાત છે. તમે આ મુદ્દાને પણ સંબોધી શકો છો વળતર નિયંત્રણો or ટ્રાન્સફર જોખમ દા.ત. વીમા સાથે.
જોકે, એવા નિયંત્રણો છે જે જોખમને સંબોધિત કરે છે અને જો તમે જોખમ સ્વીકૃતિથી સંતુષ્ટ ન હોવ તો તેનો વિચાર કરવો જોઈએ. કૃપા કરીને આગળ વાંચો.
દૂષિત ઘટકોનો ઉપયોગ કરીને હુમલાઓ સામે શું કામ કરે છે?
સોલિડ વર્ઝન હેન્ડલિંગ
નિયંત્રિત અને માહિતીપ્રદ વર્ઝન બમ્પ્સ સાથે વર્ઝન પિનિંગ એ માલવેર પ્રાપ્ત કર્યા વિના નબળાઈઓને દૂર કરવાની જરૂરિયાતને સંતુલિત કરવાનો માર્ગ છે. પરંતુ ગેરસમજ #3 યાદ રાખો: ફક્ત વર્ઝન પિનિંગ નવા સંસ્કરણોમાંથી આવતા દૂષિત કોડને અવરોધિત કરવા માટે પૂરતું નથી, કારણ કે તમારે ભવિષ્યમાં કોઈપણ પ્રત્યક્ષ કે પરોક્ષ નિર્ભરતામાં વર્ઝન અપડેટ કરવાની જરૂર પડશે. તે ક્ષણે તમારે એટલા મજબૂત પુરાવાની જરૂર છે કે બધા સંશોધિત સંસ્કરણોમાં માલવેર નથી.
પ્રારંભિક ચેતવણી
દૂષિત ઘટકોની સમસ્યાનો એક અભિગમ પ્રારંભિક ચેતવણી પ્રણાલી છે (અહીં નામ આપવામાં આવ્યું છે માલવેરની વહેલી ચેતવણી અથવા MEW), જ્યાં પ્રકાશિત થયેલા નવા સંસ્કરણો (નવા અથવા હાલના ઘટકો માટે) નું વિશ્લેષણ શોધ એન્જિન દ્વારા કરવામાં આવે છે, જે જ્યારે પૂરતા પુરાવા મળે છે ત્યારે નવા સંસ્કરણને સંભવિત દૂષિત તરીકે વર્ગીકૃત કરી શકે છે.
અહીં ઓટોમેશન આવશ્યક છે, કારણ કે વર્તમાન પ્રકાશન દરે બધા નવા ઘટકોની મેન્યુઅલી સમીક્ષા કરવી અશક્ય છે. તેથી શોધ એન્જિનને વિવિધ તકનીકોને જોડવાની જરૂર છે, જેમાં કદાચ સ્ટેટિક, ડાયનેમિક અને ક્ષમતા વિશ્લેષણ, વપરાશકર્તા પ્રતિષ્ઠા અને ઘટક મેટાડેટા અને ટારબોલ સામગ્રી વચ્ચે અથવા ટારબોલ અને સ્ત્રોત ભંડાર વચ્ચેની વિસંગતતાઓમાંથી આવતા પુરાવાનો સમાવેશ થાય છે જ્યાં ઘટક માનવામાં આવે છે.
ત્યાં છે ડાર્ક ઝોન પ્રકાશન સમય અને એન્જિન ઘટક સામગ્રીનું વિશ્લેષણ કરે તે વચ્ચેનો સમય, પરંતુ તે થોડી મિનિટોથી વધુ ન હોવો જોઈએ. આ યોજનામાં ફેરફાર કરી શકાય છે, ઉદાહરણ તરીકે, નવા ઘટકોનું વિશ્લેષણ થાય ત્યાં સુધી રાહ જોઈને તેમને ઇન્સ્ટોલ કરવાની અને સોફ્ટવેર બિલ્ડમાં ઉપયોગ કરવાની મંજૂરી આપીને. pipelines, અથવા જરૂર પડે ત્યારે માંગ પર તેનું વિશ્લેષણ કરો. આપેલ સંસ્કરણ પરનો ઘટક અપરિવર્તનશીલ છે [3], તેથી તેનું વિશ્લેષણ ફક્ત એક જ વાર કરવાની જરૂર છે.
સંપૂર્ણ ઓટોમેશન શક્ય નથી, અને સંભવિત દૂષિત ઘટકો માટે સુરક્ષા સમીક્ષા જરૂરી છે. ડિજિટલ રામબાણ ઉપાયના સમર્થકોથી સાવધ રહો: શંકાસ્પદ ઘટકમાં માલવેર છે કે નહીં તેની પુષ્ટિ કરવામાં AI અને મશીન લર્નિંગ એટલા વિકસિત નથી કે તેઓ અંતિમ શબ્દ લઈ શકે. ખાતરી કરો કે, મેળવેલા કાચા પુરાવામાંથી ઇનપુટ ઘટકનું વર્ગીકરણ કરવામાં મશીન લર્નિંગ ડિટેક્શન એન્જિનમાં મુખ્ય ભૂમિકા ભજવે છે, પરંતુ એકવાર ઘટક "ક્વોરેન્ટાઇન" થઈ જાય પછી અંતિમ શબ્દ દૂષિત ઘટકોમાં અનુભવ ધરાવતી સુરક્ષા ટીમ દ્વારા મેન્યુઅલ સમીક્ષા પર હોય છે. આ કોઈપણ સંભવિત માલવેરની પુષ્ટિ કરે છે અથવા તેને સલામત તરીકે ફરીથી વર્ગીકૃત કરે છે. અને સમયગાળો કલાકોની શ્રેણીમાં છે.
રજિસ્ટ્રી દૂષિત સંસ્કરણ/ઘટક પર રિપોર્ટ કરે છે; ત્યારબાદ રજિસ્ટ્રી પુષ્ટિ કરવા માટે તેની સમીક્ષા કરે છે અને જાહેર જાહેરાત અને રજિસ્ટ્રીમાંથી દૂર કરવા માટે આગળ વધે છે. કેટલીક રજિસ્ટ્રીઓ સુરક્ષા હોલ્ડિંગ પેકેજ રાખે છે. અહીં સમય શ્રેણી પ્રકાશન પછીના દિવસો અથવા અઠવાડિયા છે, જે 'રહેવા સમય'અથવા'એક્સપોઝર વિન્ડો' મોટાભાગના દૂષિત ઘટકો માટે.
શું એ જાણવું શક્ય છે કે ઘટક સંસ્કરણ દૂષિત છે?
તો શરૂઆતની ચેતવણી માટે, આપણે આ પ્રશ્નનો સંતોષકારક જવાબ આપવાની જરૂર છે: હું કેવી રીતે જાણી શકું કે લાઇબ્રેરી અથવા પેકેજ દૂષિત છે (નથી)? દૂષિત વર્તનના પૂરતા પુરાવા કેવી રીતે એકત્રિત કરવા? શક્ય છે, પરંતુ મુશ્કેલ છે, કારણ કે વિરોધીઓ શોધ ટાળવા માટે ખૂબ ચાતુર્યનો ઉપયોગ કરે છે. વિવિધ અભિગમો છે, દરેકના ફાયદા અને ગેરફાયદા છે.
સ્થિર વિશ્લેષણ બધા એક્ઝેક્યુશન પાથની તપાસ કરી શકે છે જે કમ્પોનન્ટ ચલાવ્યા વિના હુમલાખોરો દ્વારા ઉપયોગમાં લેવાતી તકનીકોની તપાસ કરે છે, અને ડી-ઓબ્ફસ્કેશન અથવા ડિસિફરિંગ જેવા પ્રીપ્રોસેસિંગ કાર્યો કરે છે. જેમ જેમ હુમલાખોરો તેમની તોફાન છુપાવવાનો પ્રયાસ કરે છે, તેમ તેમ અસ્પષ્ટતાના પ્રયાસો ખરેખર માલવેરનો પુરાવો છે (પરંતુ નોંધ કરો કે કાયદેસર ઘટકો બૌદ્ધિક સંપત્તિને સાચવવા માટે કોડને અસ્પષ્ટ કરે છે, "" નો વિરોધાભાસ કરે છે.ઓપન સોર્સ"). મજબૂત અસ્પષ્ટતાવાળા ખૂબ જ સુસંસ્કૃત હુમલાઓમાંથી માત્ર થોડા જ હુમલાઓને સેન્ડબોક્સિંગની જરૂર હોય છે, પરંતુ આવા મજબૂત અસ્પષ્ટતા એ દુર્ભાવનાની સ્પષ્ટ નિશાની છે. કૃપા કરીને નોંધ લો કે પરંપરાગત SAST સાધનો અજાણતાં નબળાઈઓ માટે ડિઝાઇન કરવામાં આવ્યા હતા, પાછળના દરવાજા જેવા દૂષિત ઇરાદા માટે નહીં.
ગતિશીલ વિશ્લેષણ ઘટક ચલાવે છે અને રનટાઇમને ઇન્સ્ટ્રુમેન્ટ કરીને પ્રતિભાવની તપાસ કરે છે, સામાન્ય રીતે સેન્ડબોક્સ વાતાવરણ પૂરું પાડીને. ચોક્કસ પરિસ્થિતિઓ હેઠળ શરૂ થયેલ દૂષિત વર્તન શોધી શકાતું નથી: કૃપા કરીને નોંધ કરો કે માલવેર ચોરી તકનીકોનો ઉપયોગ કરી શકે છે જેમ કે વર્ચ્યુઅલાઈઝેશન/સેન્ડબોક્સ ચોરી તપાસ હેઠળ ન હોય ત્યારે જ સક્રિય કરવા માટે, અને કોઈપણ સ્ટેટિક વિશ્લેષણ એન્જિન માટે દૂષિત પ્રવૃત્તિનો સંકેત પણ.
ક્ષમતાઓનું વિશ્લેષણ ઘટક શું કરે છે તે ધ્યાનમાં લે છે: તે ક્યાં કનેક્ટ થાય છે, તે કઈ ફાઇલોને ઍક્સેસ કરે છે, કયા આદેશો અથવા પ્રોગ્રામ્સ ચલાવવામાં આવે છે, ટર્મિનલ અથવા ઉપકરણ I/O કરવામાં આવે છે, અથવા કયા સિસ્ટમ કૉલ્સનો ઉપયોગ કરવામાં આવે છે. વર્તનની આ ફિંગરપ્રિન્ટિંગની તુલના (હાલના ઘટક માટે) વિવિધ સંસ્કરણોમાં કરી શકાય છે, તેથી જ્યારે અણધારી વર્તણૂક મળી આવે છે, ત્યારે તે પુરાવા નવા સંસ્કરણમાં ઇન્જેક્ટેડ સંભવિત દૂષિત પ્રવૃત્તિની શંકા ઉભી કરી શકે છે. આ અભિગમ સંભવિત માલવેરનો સામનો કરતી વખતે સુરક્ષા વિશ્લેષકો દ્વારા અનુસરવામાં આવતા ટ્રાયજ પગલાંને અનુસરે છે: શબ્દમાળાઓ અથવા સમાન સાધનો. આ અભિગમ ટ્રિગરિંગ પરિસ્થિતિઓને ધ્યાનમાં લીધા વિના દૂષિત વર્તણૂક શોધી કાઢે છે અને જ્યારે કોઈ સ્રોત કોડ ઉપલબ્ધ ન હોય ત્યારે કાર્ય કરે છે.
સંદર્ભ વિશ્લેષણ ઘટક કેવી રીતે અને કોના દ્વારા પ્રકાશિત થયો તે અંગે માહિતી એકત્રિત કરે છે. ખરાબ કલાકારોના અભિયાનો ઘણીવાર નવા વપરાશકર્તા ખાતા(ઓ)નો ઉપયોગ કરે છે જે કોઈપણ કડક ચકાસણી પ્રક્રિયાને આધીન નથી. ભૂતકાળની પ્રવૃત્તિને ટ્રેક કરવાથી અંતર્ગત વપરાશકર્તા વિશે આંતરદૃષ્ટિ મળી શકે છે, મોટે ભાગે એવી વિસંગતતાઓ માટે જે સંભવિત સમાધાનનો સંકેત આપી શકે છે. પ્રતિષ્ઠા મેળવવી ખૂબ મુશ્કેલ છે અને ગુમાવવી ખૂબ જ સરળ છે! ભૂતકાળની કોઈ પ્રવૃત્તિ વિનાનો વપરાશકર્તા તટસ્થ હોય છે, પરંતુ કર્મ દુષ્ટ વ્યક્તિનો પીછો કરે છે. હેક્ટિવિસ્ટ્સ, અથવા સામાન્ય વપરાશકર્તાઓ કે જેમના પ્રકાશન ઓળખપત્રો ચોરાઈ ગયા છે તેમને કાળજીપૂર્વક ટ્રેક કરવા જોઈએ.
બીજી સંદર્ભિત માહિતી એ ઘટક ટારબોલ બનાવવા માટે ઉપયોગમાં લેવાતા સ્ત્રોત ભંડાર અને ટારબોલની સામગ્રી વચ્ચેની કોઈપણ વિસંગતતા છે. અને સારી પ્રથાઓનું પણ પાલન કરવું, જેમ કે જાહેર રજિસ્ટ્રીમાં પ્રકાશિત ઘટકના સંસ્કરણો સાથે મેળ ખાતા સ્ત્રોત ભંડારમાં ટૅગ્સ અથવા રિલીઝ બનાવવા. જ્યારે કોઈ ચોક્કસ પર સ્ત્રોત ભંડાર commit પ્રકાશન સાથે ટૅગ થયેલ હોય છે, અને પછી અચાનક એક સંસ્કરણ તેને અનુસરવામાં નિષ્ફળ જાય છે, તે જ એક મજબૂત પુરાવો છે કે ઘટક દૂષિત હોઈ શકે છે: ખરાબ અભિનેતાએ ઘટક પ્રકાશિત કરવા માટે ઉપયોગમાં લેવાતા એકાઉન્ટ સાથે ચેડા કર્યા હોઈ શકે છે, પરંતુ સ્રોત કોડ રિપોઝીટરીમાં કોઈ લખવાની પરવાનગી નથી). ઘણા હુમલાઓ નિયમિતપણે આ નિયમોનો ઉપયોગ કરીને શોધી કાઢવામાં આવે છે: ઉદાહરણ તરીકે, ખાતાવહી હુમલો આ રીતે સરળતાથી શોધી શકાય છે. તેથી, સંદર્ભ વિશ્લેષણ પ્રકાશન પ્રક્રિયામાં આવી વિસંગતતાઓને ઓળખે છે.
ડિપેન્ડન્સી ફાયરવોલિંગ
એક અલગ અભિગમ એ છે કે તમારા સોફ્ટવેરમાં ઉપયોગમાં લેવાતા બધા ડિપેન્ડન્સી ગ્રાફ માટે ઘટકોની વ્યાપક વ્હાઇટલિસ્ટ હોય, જેથી કોઈપણ બિલ્ડમાં pipeline તમારી સંસ્થામાં ચલાવો ફક્ત માન્ય ઘટક સંસ્કરણો ઇન્સ્ટોલ અને ઉપયોગ કરી શકાય છે. “ફાયરવોલ"આંતરિક રજિસ્ટ્રીનો ઉપયોગ કરીને લાગુ કરવામાં આવે છે જ્યાં માન્ય ઘટક સંસ્કરણો માટે ટારબોલ્સ પીરસવામાં આવે છે (કેશ્ડ અથવા પ્રોક્સી). કૃપા કરીને નોંધ લો કે કોઈપણ વ્હાઇટલિસ્ટ કામ કરશે નહીં સિવાય કે તમારી પાસે કોઈપણ નવા સંસ્કરણને વાજબી રીતે સલામત તરીકે વર્ગીકૃત કરવાની તકનીક હોય જેથી તેને વ્હાઇટલિસ્ટમાં ઉમેરી શકાય.
કૃપા કરીને નોંધ લો કે પ્રારંભિક ચેતવણી (નવા સંસ્કરણ પ્રકાશન પછી શક્ય તેટલી વહેલી તકે શોધ) ને બિલ્ડને અસર કરતા ઘટકને અવરોધિત કરવા માટે તે માહિતીનો સક્રિય રીતે ઉપયોગ કરવાની કોઈ રીત સાથે જોડવાની જરૂર છે. pipelines અથવા વિકાસકર્તાઓના મશીનો [4]. આપણે આને "ડિપેન્ડન્સી ફાયરવોલિંગ": દૂષિત પેકેજોથી સ્વચાલિત બિલ્ડ્સને સુરક્ષિત રાખવા માટે એક ક્વોરેન્ટાઇન મિકેનિઝમ. બાહ્ય અનિષ્ટથી સંસ્થાઓને સુરક્ષિત રાખવા માટે આંતરિક પેકેજો અને છબી રજિસ્ટ્રી સારી છે, પરંતુ ક્વોરેન્ટાઇનને અસરકારક બનાવવા માટે પૂરતા મજબૂત પુરાવા જરૂરી છે.
રનટાઇમ સેન્ડબોક્સિંગ
પ્રકાશન સમયે શોધ માટેનો એક વૈકલ્પિક અભિગમ રનટાઇમ સમયે વર્તનનું વિશ્લેષણ કરવાનો છે. આ વિચાર સોફ્ટવેરમાંથી અપેક્ષિત વર્તન મેળવવાનો અને મળેલી કોઈપણ વિસંગતતાઓને શોધવા (અથવા અવરોધિત કરવાનો) છે. આ કાર્યપદ્ધતિમાં દેખરેખ અથવા અવરોધિત કરવા માટે રનટાઇમનું સાધન બનાવવાની સમસ્યા છે, અને તે એક આશાસ્પદ વિચાર છે જે દૂષિત ઘટક જીવાત સામે રક્ષણ પદ્ધતિઓના શસ્ત્રાગારમાં ઉમેરવામાં આવશે.
એક વ્યાપક વ્યૂહરચના નક્કી કરવી
ભલામણ કરાયેલ વ્યૂહરચનામાં સોફ્ટવેર ડેવલપમેન્ટ પ્રક્રિયામાં વિવિધ તકનીકોને જોડવાની જરૂર છે, આવનારા દૂષિત ઘટકોને અવરોધિત કરવા માટે સંસ્કરણ અપડેટ્સનું નિયંત્રણ લેવું. મહત્વપૂર્ણ નબળાઈઓ માટે સુધારાઓ મેળવવા માટે, અપડેટિંગ સંસ્કરણો સાથે સ્વચાલિત ચેપ ટાળવા માટે આપણે સંસ્કરણ પિનિંગને સમાયોજિત કરવું જોઈએ; સંસ્કરણ અપડેટ્સ દરમિયાન પ્રત્યક્ષ અને પરોક્ષ નિર્ભરતાઓનું ઝડપી અને કાર્યક્ષમ મૂલ્યાંકન જેથી પૂરતા પુરાવા મળે કે તેઓ માલવેરથી પ્રભાવિત નથી. જાણીતા દૂષિત ઘટકો પર આધાર રાખતા સોફ્ટવેરના બિલ્ડ્સને અવરોધિત કરવા આવશ્યક છે. અને બધાને લાગુ કરવા આવશ્યક છે.
શક્ય હોય ત્યારે વર્ઝન પિનિંગનો ઉપયોગ કરો, કારણ કે તે બિલ્ડ્સને વધુ પુનઃઉત્પાદનક્ષમ બનાવે છે. નિયંત્રિત, મેન્યુઅલી મંજૂર કરાયેલ વર્ઝન બમ્પ્સ સાથે વર્ઝન પિનિંગ, અને સહાયક ટેકનોલોજી દ્વારા સહાયિત, એ મૂલ્યાંકન કરવું જોઈએ કે અપડેટ માલવેર લાવે છે કે સોફ્ટવેર તોડે છે, અને માલવેર ચેપ ટાળવા સાથે નબળાઈઓને સુધારવા માટે અપડેટનું સમાધાન કરવું જોઈએ. ટૂલિંગ અહીં મદદ કરી શકે છે, (1) કઈ નબળાઈઓ ખરેખર મહત્વપૂર્ણ છે તેને પ્રાથમિકતા આપીને (પહોંચી શકાય તેવી અને શોષણ કરી શકાય તેવી, હુમલાખોરો દ્વારા નિશાન બનાવવાનું ઉચ્ચ જોખમ સાથે), (2) વર્તમાન ઘટક ઉપયોગો સાથે સુસંગત હોય અને સોફ્ટવેર તોડતા ન હોય તેવા લક્ષ્ય સંસ્કરણો પસંદ કરીને, (3) દૂષિત વર્તણૂક ન ધરાવતા લક્ષ્ય સંસ્કરણો પસંદ કરીને, અને (4) પ્રત્યક્ષ અને પરોક્ષ નિર્ભરતાઓ માટે સંસ્કરણ અપડેટને ત્વરિત બનાવીને, મેનિફેસ્ટ ફાઇલોમાં ફેરફારો સૂચવીને જે ઝડપથી મંજૂર થઈ શકે છે. પગલું (3) માટે શક્ય તેટલી નજીક દૂષિત ઘટકો વિશે ચોક્કસ માહિતીની જરૂર છે.
ડિપેન્ડન્સી અપડેટ કરવાની આ પ્રક્રિયા હોવી જોઈએ અમલમાં મૂક્યું અને ચકાસણી બધી જગ્યાએ. પ્રક્રિયાનું દસ્તાવેજીકરણ કરવું જોઈએ, અને તેમાં સામેલ તમામ પક્ષોને તાલીમ આપવી જોઈએ, કારણ કે ઘણીવાર વિકાસ અને સોફ્ટવેર બિલ્ડ/ડિપ્લોયમેન્ટ બાહ્યકૃત હોય છે. CI/CD pipelines ને તે મુજબ સંશોધિત કરવા જોઈએ, જેથી ઓટોમેશન દૂષિત પરોક્ષ નિર્ભરતાને બિલ્ડમાં પ્રવેશવા ન દે: guardrails જો ડિપેન્ડન્સીમાં સંભવિત માલવેરના પૂરતા પુરાવા હોય તો બિલ્ડને બ્લોક કરવું એ ભલામણ કરેલ રસ્તો છે.
જો તમારી સંસ્થા પાસે મંજૂર ઘટક સંસ્કરણો રાખવા માટે સુરક્ષા પ્રોક્સી તરીકે કાર્ય કરતી આંતરિક રજિસ્ટ્રી છે, તો તમારે વિનંતી કરેલ ઘટકને ભથ્થાની સૂચિમાં ઉમેરતા પહેલા તેની ચકાસણી કરવા માટે દૂષિત ઘટકો (અન્ય માપદંડો ઉપરાંત) પર ગુપ્ત માહિતી મેળવવી આવશ્યક છે.
સલામતી સાથે ઓપન-સોર્સ સોફ્ટવેરનો ઉપયોગ કરવો સરળ નથી, અને માલવેર પરિબળને સંપૂર્ણપણે ધ્યાનમાં લેવું જોઈએ, અને નબળાઈના સંચાલનમાં સમાન પ્રયાસો કરવા જોઈએ.
એક અંતિમ નોંધ: મૂળ સ્થાન, ઘટકના નિર્માણ સમયે જનરેટ થયેલ સોફ્ટવેર પ્રમાણીકરણના સ્વરૂપમાં, આર્ટિફેક્ટ (ઘટક ટારબોલ) ને સ્ત્રોતો અને તેને ઉત્પન્ન કરનાર બિલ્ડ પ્રક્રિયા સાથે ટ્રેસ કરવાના પ્રયાસમાં બીજો મુખ્ય ભાગ છે. નોંધ કરો કે સ્રોત સ્નેપશોટ + બિલ્ડ પર્યાવરણ અને સંકળાયેલ સોફ્ટવેર આર્ટિફેક્ટ (વિશ્વસનીય બિલ્ડ સિસ્ટમ દ્વારા સહી થયેલ) વચ્ચેનો આ જોડાણ એ હકીકતને અટકાવતું નથી કે ઘટકમાં દૂષિત વર્તન નથી, પરંતુ ખરાબ લોકો માટે માલવેર ઇન્જેક્ટ કરવાનું મુશ્કેલ બનાવે છે. અને ઓપન સોર્સ ઘટકોનો ઉપયોગ કરવા માટે પ્રોવેન્સ વેલિડેશનને સામાન્ય જરૂરિયાત બનાવવામાં ઘણો સમય લાગશે, અને ફક્ત તાજેતરમાં NPM માં ઉમેરાયેલ. વિશ્વસનીય બિલ્ડ અને ડિપ્લોય સિસ્ટમ્સને ટેમ્પર-પ્રૂફ બનાવવી, અથવા બિલ્ડમાં કોઈપણ ટેમ્પરિંગ શોધવાનું સક્ષમ બનાવવું એ આ પોસ્ટના અવકાશની બહાર એક અલગ વાર્તા છે.
વધુ વાંચન
આગામી એપિસોડ ઓપન સોર્સ દૂષિત પેકેજો: ઝાયજેની અભિગમ અમારા માટે Xygeni ખાતે અમે જે વ્યૂહરચના અનુસરીએ છીએ તે રજૂ કરીશું માલવેરની વહેલી ચેતવણી (MEW) સિસ્ટમ. પબ્લિક પેકેજ અને ઇમેજ રજિસ્ટ્રીમાં નવા પેકેજ વર્ઝન સ્કેન કરવામાં આવે છે અને સ્ટેટિક, ડાયનેમિક, ક્ષમતાઓ અને સંદર્ભ વિશ્લેષણના સંયોજનનો ઉપયોગ કરીને પુરાવા મેળવવામાં આવે છે. પુરાવા, વપરાશકર્તા પ્રતિષ્ઠા અને સોર્સ કોડ રિપોઝીટરીઝમાં ફેરફારોના ઇતિહાસ સાથે જોડાયેલા, ઉચ્ચ-જોખમ અને કદાચ દૂષિત શ્રેણીઓમાં ઘટકના સંપૂર્ણ-સ્વચાલિત વર્ગીકરણને મંજૂરી આપે છે. ખોટા હકારાત્મકતાને ઓછામાં ઓછા કરવા માટે સિસ્ટમ પેકેજોમાંથી એકત્રિત કરેલા ભૂતકાળના પુરાવાઓમાંથી શીખે છે.
જ્યારે દૂષિત સંસ્કરણને વર્ગીકૃત કરવામાં આવે છે ત્યારે સબ્સ્ક્રાઇબ કરેલી સંસ્થાઓને તેઓ જે ઘટકોનો ઉપયોગ કરી રહ્યા છે તેના માટે ચેતવણી સૂચના પ્રાપ્ત થાય છે, પ્રત્યક્ષ કે પરોક્ષ રીતે. પછી અમારા વિશ્લેષકો દ્વારા મેન્યુઅલ વિશ્લેષણ કરવામાં આવે છે, જે વર્ગીકરણની પુષ્ટિ કરે છે અથવા નકારે છે. પુષ્ટિ થયેલ માલવેર માટે, જાહેર રજિસ્ટ્રીને સૂચિત કરવામાં આવે છે જેથી તે તેનું પોતાનું વિશ્લેષણ કરી શકે અને સામાન્ય રીતે દૂષિત સંસ્કરણને દૂર કરી શકે અથવા વધારાના પગલાં લઈ શકે, જેમ કે પ્રશ્નમાં રહેલા વપરાશકર્તા એકાઉન્ટને અવરોધિત કરવા અથવા દૂર કરવા.
અમે સમજાવીશું કે અમે ઓપન સોર્સ ઇકોસિસ્ટમમાં NPM, PyPI, GitHub અને અન્ય મુખ્ય ઇન્ફ્રાસ્ટ્રક્ચર્સને કેવી રીતે મદદ કરી રહ્યા છીએ જેથી એક નવું દૂષિત ઘટક પ્રકાશિત થાય છે અને માલવેરની પુષ્ટિ ન થાય અને રજિસ્ટ્રીમાંથી દૂર ન થાય ત્યાં સુધી સક્રિય રહે છે. અને ઓપન સોર્સ ઘટકોને સંડોવતા સોફ્ટવેર સપ્લાય ચેઇન હુમલાઓ સામે વધુ સારી સુરક્ષા મેળવવા માટે સંસ્થાઓ MEW સિસ્ટમથી કેવી રીતે લાભ મેળવી શકે છે.
- [1] ગમે તે હોય, ઘટકના વપરાશકર્તાઓએ તપાસ કરવાની જરૂર છે કે ઘટક ટારબોલ ક્યાંક કેશ થયેલ છે કે નોંધાયેલ છે, ઉદાહરણ તરીકે આંતરિક રજિસ્ટ્રીમાં, જેથી રોગ નાબૂદ થાય.
- [2] પેકેજ્ડ ઘટકમાં એક મેનિફેસ્ટનો સમાવેશ થાય છે જે તેની સામગ્રી અને મેટાડેટા, સ્રોત અથવા કમ્પાઇલ કરેલ કોડ, ઇન્સ્ટોલેશન સ્ક્રિપ્ટ્સ અને વધારાની વસ્તુઓ જેમ કે ટેસ્ટ સ્યુટ્સ, પેકેજિંગ ફોર્મેટ અનુસાર અને સામાન્ય રીતે સંકુચિત સ્વરૂપમાં જાહેર કરે છે. આને "કમ્પોનન્ટ ટારબોલ" કહેવામાં આવે છે.
- [3] જો દૂષિત વ્યક્તિ રજિસ્ટ્રીમાં જ ભંગને કારણે પ્રકાશિત ઘટકમાં ફેરફાર કરી શકે છે, તો પણ વિશ્લેષણ પૂર્ણ થયા પછી સાદા-જૂના ક્રિપ્ટોગ્રાફિક ડાયજેસ્ટ ટારબોલમાં કોઈપણ ફેરફાર શોધી શકે છે.
- [4] યાદ રાખો કે કેટલાક દૂષિત ઘટકો ઇન્સ્ટોલ સમયે ચાલે છે, તેથી તે ડેવલપર નોડ્સને અસર કરી શકે છે જે અજાણતાં X ને દૂષિત ઘટક સાથે "npm install X" ચલાવે છે.




