TL; DR
૧૪ સપ્ટેમ્બર, ૨૦૨૫ ના રોજ, સંશોધકોએ ઓળખ્યું શાઈ હુલુદ, અંદર છુપાયેલો સ્વ-પ્રતિકૃતિ બનાવતો કીડો npm પેકેજો, નિયમિત નિર્ભરતા અપડેટને પૂર્ણ-સ્કેલમાં ફેરવીને સપ્લાય ચેઇન હુમલો. સૌપ્રથમ વખત જોવા મળ્યું @ctrl/ટીનીકલર ડેનિયલ ડોસ સાન્તોસ પેરેરા દ્વારા બનાવેલ પેકેજ, શાઈ-હુલુદ રહસ્યો મેળવે છે, તેમને GitHub રિપો અને વર્કફ્લો દ્વારા બહાર કાઢે છે, અને ચોરાયેલા ઓળખપત્રોનો ઉપયોગ કરીને રજિસ્ટ્રીમાં પોતાને ફરીથી પ્રકાશિત કરે છે. થોડા દિવસોમાં, ચેપગ્રસ્ત પેકેજોની સંખ્યા ડઝનથી વધીને સેંકડો થઈ ગઈ, જે પુષ્ટિ કરે છે કે શૈહુલુદ તે માત્ર બીજો ટ્રોજન નથી પણ એક કૃમિ છે જે npm ઇકોસિસ્ટમમાં આપમેળે ફેલાય છે.
અસર: કોઈપણ ડેવલપર અથવા CI રનર જે પબ્લિક npm પેકેજો ઇન્સ્ટોલ કરે છે તે જોખમમાં છે.
તાત્કાલિક ક્રિયાઓ: જાણીતા વર્ઝનને બ્લોક કરો, લોકફાઇલ-ઓન્લી ઇન્સ્ટોલ પર સ્વિચ કરો, npm અને GitHub ટોકન્સ ફેરવો, વર્કફ્લોનું ઑડિટ કરો અને ઇન્ડિકેટર્સ ઑફ કોમ્પ્રોમાઇઝ (IoCs) માટે મોનિટર કરો.
શું થયું?
આ npm પેકેજોમાં શાઈ-હુલુદ સપ્લાય ચેઇન હુમલો તાજેતરની સ્મૃતિમાં બનેલી સૌથી ભયાનક ઘટનાઓમાંની એક છે. અલગ ટ્રોજનથી વિપરીત, આ કીડો ભળી જાય છે ઓળખપત્રની ચોરી, ઓટોમેટેડ એક્સફિલ્ટ્રેશન અને સ્વ-પ્રતિકૃતિપરિણામે, ચેપનો સમય અઠવાડિયાથી ઘટીને માત્ર કલાકો સુધી ઘટી ગયો.
DevOps ટીમો માટે, પાઠ સ્પષ્ટ છે: જો દરેક ઇન્સ્ટોલ કોડ એક્ઝિક્યુટ કરી શકે છે, તો દરેક ડિપેન્ડન્સી અપડેટ સંભવિત ભંગ બિંદુ છે.
શક્ય પ્રારંભિક વેક્ટર અને લક્ષિત ઓળખપત્રો
પ્રારંભિક વિશ્લેષણ સૂચવે છે કે હુમલો સંભવતઃ આ રીતે શરૂ થયો હતો ચોરાયેલા ઓળખપત્રો. ઉદાહરણ તરીકે, npm ને સ્પૂફ કરતી ફિશિંગ ઝુંબેશો login અથવા MFA પ્રોમ્પ્ટ્સે ડેવલપર ટોકન્સ કેપ્ચર કર્યા હશે. એકવાર હુમલાખોરોએ પહેલો પગપેસારો મેળવ્યો, પછી આ કૃમિ npm પેકેજોમાં પોતાને એમ્બેડ કરીને અને વધુ રહસ્યો ચોરીને ફેલાયો:
- npm રૂપરેખાંકન ફાઇલો જેમ
.npmrc, જેમાં ઘણીવાર પ્રકાશન ટોકન્સ હોય છે. - પર્યાવરણીય ચલો અને GitHub PATs સાથે રૂપરેખાંકનો અને CI/CD રહસ્યો.
- ક્લાઉડ મેટાડેટા એન્ડપોઇન્ટ્સ (AWS, GCP, Azure) જે લેટરલ મૂવમેન્ટ માટે અલ્પજીવી ઓળખાણ આપે છે.
તેથી, ઓળખપત્રની ચોરી લોન્ચપેડ બની ગઈ. માન્ય npm ટોકન્સ અને GitHub રહસ્યો સાથે, શાઈ-હુલુદ વધારાના માનવ પ્રયત્નો વિના બહુવિધ પેકેજો અને ભંડારોમાં સ્વ-પ્રતિકૃતિ બનાવી શકે છે.
શાઈ-હુલુદ સપ્લાય ચેઇન હુમલાની કાર્યકારી અસર
શાઈ-હુલુદ આજે પણ સક્રિય છે. આ કીડો અસર સમયરેખાને ઝડપી બનાવે છે. જે ટ્રોજન સાથે અઠવાડિયા લાગતું હતું તે હવે કલાકોમાં ખુલી જાય છે. પરિણામે, ફેલાવો ઝડપી અને રોકવો મુશ્કેલ છે. તે આના દ્વારા આગળ વધે છે:
- npm પબ્લિશ ટોકન્સ અને GitHub રહસ્યોની ચોરી.
- અન્ય npm પેકેજોમાં પોતાને ફરીથી પ્રકાશિત કરી રહ્યું છે.
- ટકાઉપણું માટે દૂષિત GitHub ક્રિયાઓ વર્કફ્લો ઉમેરી રહ્યા છીએ.
કોને અસર થાય છે:
કોઈપણ ટીમ જે પબ્લિક npm પેકેજો ઇન્સ્ટોલ કરે છે તે જોખમમાં મુકાય છે. વધુમાં, કેશ્ડ npm અથવા GitHub ટોકન્સ ધરાવતા ડેવલપર્સ ઉચ્ચ જોખમનો સામનો કરે છે. બ્રોડ-સ્કોપ્ડ સિક્રેટ્સનો ઉપયોગ કરતા CI રનર્સ પણ સંવેદનશીલ હોય છે.
વ્યવસાયિક જોખમ
વ્યવસાયિક અસર ઝડપથી વધે છે. ચોરાયેલા ટોકન્સ એકાઉન્ટ ટેકઓવર, પેકેજ હાઇજેકિંગ અને ક્લાઉડ દુરુપયોગ તરફ દોરી શકે છે. વધુમાં, GitHub વર્કફ્લોમાં સતત રહેવાથી તેને સાફ કરવું મુશ્કેલ બને છે. તેથી., ટીમોએ શાઈ-હુલુદને એક ચાલુ ઘટના તરીકે ગણવી જોઈએ, બંધ ઘટના તરીકે નહીં.
npm પેકેજોમાં શાઈ-હુલુદ સપ્લાય ચેઇન એટેક કેવી રીતે કાર્ય કરે છે
હુમલાખોરના ઉદ્દેશ્યો અને હેતુ
આ ઝુંબેશ ત્રણ બાબતો માટે શ્રેષ્ઠ બનાવે છે:
- પહેલો ઉદ્દેશ્ય એ છે કે મોટા પાયે ઓળખપત્રોની ચોરી કરવી ડેવલપર લેપટોપ અને CI રનર્સ તરફથી. આમાં npm પબ્લિશ ટોકન્સ, GitHub ટોકન્સ અને ક્લાઉડ ઓળખપત્રોનો સમાવેશ થાય છે. હકીકતમાં, બહુવિધ વિશ્લેષણ વ્યવસ્થિત ગુપ્ત લણણીની પુષ્ટિ કરે છે, જેમ કે ટ્રફલહોગ ચલાવવું અને ક્લાઉડ મેટાડેટા એન્ડપોઇન્ટ્સને ક્વેરી કરવી.
- બીજો ઉદ્દેશ્ય છે કે આપમેળે પ્રચાર કરો ચેડા થયેલા જાળવણીકારોના પ્રકાશન અધિકારોનો દુરુપયોગ કરીને. પરિણામે, એક પક્કડ ઝડપથી ઘણામાં વિસ્તરે છે, કારણ કે અન્ય પેકેજોના નવા ચેપગ્રસ્ત સંસ્કરણો વધારાના માનવ પ્રયત્નો વિના દેખાય છે.
- ત્રીજો ઉદ્દેશ્ય છે કે વિશ્વસનીય રીતે ટકી રહે છે અને બહાર નીકળે છે GitHub ઈન્ફ્રાસ્ટ્રક્ચર દ્વારા. હુમલાખોરો ડબલ બેઝ64 સાથે "શાઈ-હુલુદ" નામનો પબ્લિક રેપો બનાવે છે. ડેટા.જેસન, અને વધુમાં તેઓ એક વર્કફ્લો રોપે છે જે શ્રેણીબદ્ધ કરે છે ${{ ટુજેએસઓન(રહસ્યો) }} અને તેને સ્ટેટિક વેબહૂક પર પોસ્ટ કરે છે.
સંભવિત લાભમાં રજિસ્ટ્રી અને સોર્સ કોડની લાંબા ગાળાની ઍક્સેસ, ક્લાઉડ એકાઉન્ટ્સમાં ઝડપી બાજુની હિલચાલ અને સપ્લાય ચેઇનને વધુ હથિયાર બનાવવાનો વિકલ્પ શામેલ છે. જાહેર રિપોર્ટિંગ બતાવે છે કે ખાનગી રિપોઝીટરી કંપનીઓને જાહેરમાં ફ્લિપ કરવામાં આવી છે. "-સ્થળાંતર" પ્રત્યય, જે ડેટા એક્સપોઝર અને ગતિ વધારે છે
શાઈ-હુલુદ પેલોડની અંદર: બંડલ.જેએસ npm પેકેજોમાં
શાઈ-હુલુદ એક તરીકે રજૂ કરે છે મોટું, વેબપેક-બંડલ્ડ અને ભારે મિનિફાઇડ જાવાસ્ક્રિપ્ટ ફાઇલ (બંડલ.જેએસ, લગભગ 3–3.7 MB) જે a થી અમલમાં આવે છે પોસ્ટઇન્સ્ટોલ જોડવું પેકેજ.જેસનપરિણામે, દરેક ઇન્સ્ટોલેશન આપમેળે પેલોડને ટ્રિગર કરે છે. આ ડિઝાઇન ઓળખકર્તાઓને છુપાવે છે, નિયંત્રણ પ્રવાહને સંકુચિત કરે છે અને બધા તર્કને એક જ આર્ટિફેક્ટમાં ધકેલે છે જે ઇન્સ્ટોલેશન દરમિયાન એક્ઝિક્યુટ થાય છે. વિશ્લેષકો સતત વેબપેક બંડલિંગ, અસામાન્ય ફાઇલ કદ અને ઇન્સ્ટોલ-ટાઇમ એક્ઝિક્યુશનની પુષ્ટિ કરે છે.
નમૂનાઓમાં તમને જોવા મળશે તે અસ્પષ્ટતા અને વિશ્લેષણ વિરોધી લક્ષણો:
- લઘુત્તમ મોડ્યુલ ગ્રાફ આંકડાકીય મોડ્યુલ ID, છૂટાછવાયા ટિપ્પણીઓ અને ફ્લેટન્ડ કંટ્રોલ ફ્લો સાથે. વધુમાં, આ માળખું મેન્યુઅલ સમીક્ષાને અત્યંત મુશ્કેલ બનાવે છે.
- સ્ટ્રિંગ છુપાવી રહ્યું છે base64 સ્તરો અને બાંધકામ સહાયકો દ્વારા. ઉદાહરણ તરીકે, પુનરાવર્તિત બેઝ64 એન્કોડિંગ અને ડીકોડિંગ સામાન્ય રીતે એક્સફિલ્ટ્રેશન રૂટિનની આસપાસ દેખાય છે.
- ગતિશીલ રવાનગી દ્વારા ઇવલ-સ્ટાઇલ પેટર્ન અને જનરેટ કરેલ ફંક્શન બોડી, તેથી કોડને રનટાઇમ પર વર્તન બદલવા માટે સક્ષમ બનાવે છે.
- ઓએસ ફિલ્ટરિંગ ખાસ કરીને CI રનર્સ અને ડેવલપર લેપટોપ પર Linux અને macOS એક્ઝિક્યુશનને પ્રાધાન્ય આપવું.
કાર્યાત્મક દ્રષ્ટિએ, બંડલ મોડ્યુલર છે. રાઇટઅપ્સ OS ડિસ્કવરી, ફાઇલસિસ્ટમ અને ગિટ સિક્રેટ સ્કેન, ક્લાઉડ SDK એક્સેસ, ગિટહબ API ઓપરેશન્સ અને એક પ્રોપગેશન એન્જિન માટેના મોડ્યુલોનું વર્ણન કરે છે જે જાળવણીકર્તાની માલિકીના અન્ય પેકેજોને સંપાદિત કરે છે. હકીકતમાં, સ્ટેપસિક્યોરિટી અને રિવર્સિંગલેબ્સ બંને એક ફંક્શનને હાઇલાઇટ કરે છે જે દૂષિત હૂક સાથે પેકેજોને આપમેળે અપડેટ કરે છે.
શાઈ-હુલુદમાં ઇન્સ્ટોલ-ટાઇમ એક્ઝેક્યુશન: npm પેકેજો કેવી રીતે કૃમિને ઉત્તેજિત કરે છે
હુમલો ત્યારે શરૂ થાય છે જ્યારે પોસ્ટઇન્સ્ટોલ નોડ ચલાવે છે બંડલ.જેએસ. આ બિંદુએ, સ્ક્રિપ્ટ મેમરીમાં કાર્યકારી સ્થિતિને પ્રારંભ કરે છે અને અનપેક કરે છે, જે કૃમિના સંપૂર્ણ કાર્ય માટે સ્ટેજ સેટ કરે છે.
શોધ અને લણણી
- પેલોડ process.env ને ડમ્પ કરે છે અને ઉચ્ચ-એન્ટ્રોપી રહસ્યો અને ટોકન ઉપસર્ગ માટે સ્થાનિક ફાઇલોને સ્કેન કરે છે. વધુમાં, તે TruffleHog ચલાવીને કવરેજને વિસ્તૃત કરે છે.
- તે ટૂંકા ગાળાના ઓળખપત્રો એકત્રિત કરવા માટે ક્લાઉડ મેટાડેટા એન્ડપોઇન્ટ્સની પૂછપરછ કરે છે. દાખલા તરીકે, ને બોલાવે છે
169.254.169.254AWS પર અથવાmetadata.google.internalGCP પર ઘણીવાર ચેપગ્રસ્ત યજમાનોમાં દેખાય છે. - પરિણામે, કોઈપણ ઓળખપત્ર મળે તો તે નવા npm પેકેજો પ્રકાશિત કરવા અથવા GitHub વર્કફ્લોને આગળ ધપાવવા માટે તરત જ ઉપયોગી થઈ જાય છે.
એક્સફિલ્ટરેશન
- આ કૃમિ એક નવો GitHub રેપો બનાવે છે જેનું નામ છે શાઈ હુલુદ અને ડબલ બેઝ64-એન્કોડેડ લખે છે
data.jsonપ્લેટફોર્મ વિગતો, પર્યાવરણીય ડમ્પ અને રહસ્યો સાથે. જોઈ શકાય છે તેમ, જો ડિફેન્ડર્સ જાણતા હોય કે ક્યાં જોવું તો આ ઘોંઘાટીયા વર્તનને સરળતાથી ઓળખી શકાય છે. - તે GitHub Actions વર્કફ્લો પણ પ્લાન્ટ કરે છે, ઘણીવાર નામની શાખા પર શાય-હુલુદ, જે શ્રેણીબદ્ધ કરે છે
${{ toJSON(secrets) }}અને ડેટાને સ્ટેટિક વેબહૂક પર પોસ્ટ કરે છે. વધુમાં, આ વર્કફ્લો ત્યાં સુધી ચાલુ રહે છે જ્યાં સુધી કોઈ તેને સક્રિય રીતે દૂર ન કરે.
પ્રચાર
- કોઈપણ શોધાયેલ npm ટોકન સાથે, પેલોડ ચેડા થયેલા જાળવણીકારની માલિકીના બધા પેકેજોની ગણતરી કરે છે. પછી, તે દરેક ટારબોલ મેળવે છે, bundle.js અને પોસ્ટઇન્સ્ટોલ એન્ટ્રી ઇન્જેક્ટ કરે છે, અને પેકેજને ફરીથી પ્રકાશિત કરે છે.
- પરિણામે, થોડા કલાકોમાં ડઝનબંધ ચેપગ્રસ્ત પેકેજો દેખાઈ શકે છે, જે સમગ્ર ઇકોસિસ્ટમમાં બ્લાસ્ટ ત્રિજ્યાને ગુણાકાર કરે છે.
દ્રઢતા અને સંપર્ક
આ કૃમિ દૂષિત વર્કફ્લોને જીવંત રાખે છે અને, ઘણા કિસ્સાઓમાં, ખાનગી રિપોઝીટરી સ્ટોર્સને જાહેરમાં ફેરવે છે "-સ્થળાંતર" પ્રત્યય. એકંદરે, આ ખાતરી કરે છે કે હુમલાખોર પોતાનો પગ જમાવી રાખે છે અને ડેટા લીકેજને મહત્તમ કરે છે.
કી ડિટેક્શન નોટ
આ અસામાન્ય ઉપયોગ ${{ toJSON(secrets) }} ઍક્શનમાં વર્કફ્લો દુર્લભ છે. તેથી, શિકાર દરમિયાન ટીમોએ તેને ઉચ્ચ-સિગ્નલ સૂચક તરીકે ગણવું જોઈએ.
સેનિટાઇઝ્ડ વર્કફ્લો પેટર્ન જે તમારે શોધવી જોઈએ
આ અસામાન્ય ઉપયોગ થી JSON(રહસ્યો) આ ઘટનામાં ઇન એક્શન્સ એક ઉચ્ચ-સિગ્નલ સૂચક છે.
ઉચ્ચ-સ્તરીય પ્રચાર સ્યુડો-કોડ (સલામત, વર્ણનાત્મક)
વિશ્લેષકોએ આ લૂપને સ્કેલ પર અવલોકન કર્યું, જે ચેપગ્રસ્ત પેકેજોની સંખ્યા ડઝનેકથી સેંકડો સુધીના ઝડપી ઉછાળાને સમજાવે છે.
પેકેજ ઇકોસિસ્ટમમાં આ એક કીડો કેમ છે?
વોર્મ એ માલવેર છે જે દરેક તબક્કે મેન્યુઅલ ઓપરેટર પગલાં લીધા વિના પોતાની મેળે ફેલાય છે. ઓપરેટિંગ સિસ્ટમમાં, વોર્મ્સ સામાન્ય રીતે એક મશીનથી બીજા મશીનમાં જવા માટે નેટવર્ક નબળાઈઓનો ઉપયોગ કરે છે. તેનાથી વિપરીત, શાઈ-હુલુડ npm રજિસ્ટ્રીની અંદર કાર્ય કરે છે. તેનો કાર્યક્ષમ માર્ગ ઓળખપત્રનો પુનઃઉપયોગ.
આ કૃમિ ચોરાયેલા npm પ્રકાશન ટોકન્સનો લાભ લે છે. માન્ય ઓળખપત્રો મેળવતાની સાથે જ, તે સમાન જાળવણીકર્તાની માલિકીના અન્ય પેકેજો હેઠળ ચેપગ્રસ્ત સંસ્કરણોને ફરીથી પ્રકાશિત કરે છે. ત્યારબાદ, તે પેકેજો શંકાસ્પદ વિકાસકર્તાઓ અથવા CI રનર્સ દ્વારા ઇન્સ્ટોલ કરવામાં આવે છે, અને ચક્ર પુનરાવર્તિત થાય છે.
આ કારણોસર, સુરક્ષા વિશ્લેષકો, જેમાં શામેલ છે શ્યામ વાંચન, શાઈ-હુલુદને a તરીકે વર્ગીકૃત કરો સ્વ-પ્રતિકૃતિ બનાવતો કીડો કોઈ સાદી ટ્રોજન કે ટાઇપોસ્ક્વેટિંગ ઘટના કરતાં નહીં. તફાવત મહત્વપૂર્ણ છે: ટ્રોજન સામાન્ય રીતે એક હોસ્ટ સાથે સમાધાન કરે છે, પરંતુ એક કૃમિ ઇકોસિસ્ટમ પર આપમેળે તેની અસરને વધારે છે.
"તે કેવી રીતે કાર્ય કરે છે" ચીટ-શીટ
શાઈ-હુલુદના જીવનચક્રનો સારાંશ આપવા માટે, અહીં એક ગેરફાયદા છેcisતેના મુખ્ય પગલાંઓનું વિભાજન:
- સાથેનું પેકેજ પોસ્ટઇન્સ્ટોલ સ્થાપિત થયેલ છે, અને
bundle.jsચલાવે છે. - પેલોડ પર્યાવરણ ચલોને ડમ્પ કરે છે, ફાઇલો અને ગિટ ઇતિહાસ સ્કેન કરે છે, ચલાવે છે ટ્રફલહોગ, અને ક્લાઉડ મેટાડેટા સેવાઓને ક્વેરી કરે છે. પરિણામે, કોઈપણ રહસ્ય તરત જ ઉપયોગી બને છે.
- એક્સફિલ્ટ્રેશન બે રીતે થાય છે: પ્રથમ, નામનો જાહેર રેપો બનાવીને શાઈ હુલુદ ડબલ બેઝ 64-એન્કોડેડ સાથે
data.json; બીજું, GitHub Actions વર્કફ્લો ઇન્સ્ટોલ કરીને જે પોસ્ટ કરે છે${{ toJSON(secrets) }}વેબહૂક પર. - કોઈપણ ચોરાયેલા npm ટોકનનો ઉપયોગ કરીને, કૃમિ એ જ દૂષિત હૂક સાથે ચેડા થયેલા જાળવણીકારની માલિકીના અન્ય તમામ પેકેજોને ફરીથી પ્રકાશિત કરે છે. આ રીતે, ચેપ ઝડપથી વધે છે.
- અંતે, હુમલાખોર પાસે વધુ રહસ્યો છે, વધુ પેકેજો ફેલાવવા માટે છે, અને દ્રઢતા GitHub એકાઉન્ટ્સ અને રિપોઝીટરીઝની અંદર.
વ્યવહારિક રીતે આ પ્રકારના હુમલાથી કેવી રીતે બચવું
શાઈ-હુલુદ એક ચેતવણીનો કોલ છે. ટોકન્સ ચોરીને ફરીથી પ્રકાશિત કરતો કીડો ભવિષ્યનું જોખમ નથી, તે જીવંત છે npm પેકેજો ઇકોસિસ્ટમ આજે. આ પ્રકારના સપ્લાય ચેઇન હુમલો, ટીમોને એવા નિયંત્રણોની જરૂર છે જે પ્રોગ્રામેબલ, સ્વચાલિત અને સીધા જ લાગુ કરવામાં આવે CI/CD pipelines. આ એ જ બચાવ છે જેનો તમે પહેલાથી જ અમલ કરી શકો છો ઝીગેની.
ગેટ પર ખરાબ કલાકૃતિઓ રોકો
ડેવલપર્સ અથવા CI જોબ્સ સુધી પહોંચે તે પહેલાં તમારે npm પેકેજો અને ટારબોલ્સને સ્કેન કરવા જોઈએ. ઓવરસાઇઝ્ડ bundle.js ફાઇલો, શંકાસ્પદ પોસ્ટઇન્સ્ટોલ hooks, અને અસ્પષ્ટ માર્કર્સ બધા પ્રારંભિક લાલ ધ્વજ તરીકે સેવા આપે છે. વધુમાં, કૂલ-ઓફ પીરિયડ્સ અને પિન કરેલા વર્ઝનને લાગુ કરીને pipelines તાજા, અનવેટેડ રીલીઝને આપમેળે વપરાશ થવાથી અટકાવે છે.
સખત CI/CD મૂળભૂત રીતે
Guardrails in CI/CD આવશ્યક છે. તેઓ મર્જ અથવા ઇન્સ્ટોલને નકારે છે જે નવી સ્ક્રિપ્ટો અથવા બાયનરી રજૂ કરે છે. તે જ સમયે, તેઓ વર્કફ્લોને અવરોધિત કરે છે જે રહસ્યોને શ્રેણીબદ્ધ કરે છે અથવા બાહ્ય પોસ્ટ્સનો પ્રયાસ કરે છે. ટીમોને લોકફાઇલ-ઓન્લી ઇન્સ્ટોલ્સની પણ જરૂર હોવી જોઈએ (npm ci) બધામાં pipelines જેથી ડિપેન્ડન્સી સેટ્સ પુનઃઉત્પાદનક્ષમ અને સલામત રહે.
ટોકન બ્લાસ્ટ ત્રિજ્યા ઘટાડો
રહસ્યો નિષ્ફળતાના એક બિંદુ ન બનવા જોઈએ. કોડ, રૂપરેખાંકનો અને સતત સ્કેન કરો pipeline માટે આઉટપુટ ખુલ્લા ઓળખપત્રો. ટોકન્સને ટૂંકા ગાળામાં સ્કોપ કરવા જોઈએ, ટૂંકા ગાળાના જીવનકાળ આપવા જોઈએ, અને જ્યારે એક્સપોઝર મળી આવે ત્યારે આપમેળે ફેરવવા જોઈએ. નિયમ પ્રમાણે, શંકાસ્પદ પોસ્ટઇન્સ્ટોલને એક્ઝિક્યુટ કરનારા હોસ્ટ પર ઉપયોગમાં લેવાતા કોઈપણ ટોકનને ચેડા કરાયેલ તરીકે ગણો.
કૃમિનું વર્તન વહેલું જુઓ
અસંગતતા શોધ મુખ્ય બાબત છે. ઉદાહરણ તરીકે, npm પ્રકાશન ઇવેન્ટ્સમાં અચાનક વધારો, કારણ વગર દેખાતા નવા વર્કફ્લો, અથવા વિચિત્ર એન્કોડેડ ફાઇલોથી ભરેલા તાજા જાહેર રિપો, આ બધું કૃમિ પ્રવૃત્તિનો સંકેત આપી શકે છે. તેથી, ટીમોએ ઝડપથી ચેતવણીઓ આપવી જોઈએ અને આ ચેતવણી ચિહ્નો દર્શાવતા કોઈપણ જાળવણીકર્તાઓ અથવા દોડવીરોને અલગ કરવા જોઈએ.
બિલ્ડ તોડ્યા વિના ઝડપથી સુધારો
ગતિ અને સલામતી એકસાથે હોવા જોઈએ. સ્વચાલિત pull requests ચેડા થયેલા npm પેકેજોને ચકાસાયેલ સંસ્કરણો સાથે બદલી શકે છે. વધુમાં, પહોંચક્ષમતા અને શોષણક્ષમતા વિશ્લેષણ ખાતરી કરે છે કે અપગ્રેડ ન્યૂનતમ અને સ્થિર રહે. છેલ્લે, એક્સપોઝરની પુષ્ટિ થઈ જાય પછી અસરગ્રસ્ત CI રનર્સને સ્વચ્છ છબીઓમાંથી ફરીથી બનાવો, જેથી હુમલાને વધુ ફેલાતો અટકાવી શકાય.
સમાધાનના સૂચકાંકો (IoCs)
શાઈ-હુલુદનું વિશ્લેષણ કરતી વખતે, ટીમોએ બંને પર ધ્યાન આપવું જોઈએ સ્ટેટિક આઇઓસી ફાઇલોમાં અને વર્તણૂકીય IoCs in pipelines. એકસાથે, આ સંકેતો ચેપને વહેલા શોધી કાઢવામાં અને કૃમિ વધુ ફેલાય તે પહેલાં પ્રતિક્રિયા આપવામાં મદદ કરે છે.
સ્ટેટિક આઇઓસી
નીચેના SHA-256 ડાયજેસ્ટ મેચ અવલોકન કરવામાં આવ્યા bundle.js નમૂનાઓ:
- 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
- 81d2a004a1bca6ef87a1caf7d0e0b355ad1764238e40ff6d1b1cb77ad4f595c3
- dc67467a39b70d1cd4c1f7f7a459b35058163592f4a9e8fb4dffcbba98ef210c
વધુમાં, આ પુનરાવર્તિત પેટર્ન પર નજર રાખો:
- A
bundle.jsપેકેજ રૂટ પર. "postinstall": "node bundle.js"અંદરpackage.json.- નામ આપવામાં આવેલ ભંડારો શાઈ હુલુદ.
- GitHub વર્કફ્લો જેમાં શામેલ છે
${{ toJSON(secrets) }}.
વર્તણૂકીય IoCs
ફાઇલ સિગ્નેચર ઉપરાંત, કૃમિ પ્રવૃત્તિ વર્તન દ્વારા પોતાને પ્રગટ કરે છે. ઉદાહરણ તરીકે:
- એક જ જાળવણીકારમાંથી npm પ્રકાશિત કરતી ઘટનાઓનો અચાનક વિસ્ફોટ.
- નવા વર્કફ્લો જે ડેટાને બાહ્ય અંતિમ બિંદુઓ તરફ ધકેલે છે.
- CI રનર્સ તરફથી આઉટબાઉન્ડ POST વિનંતીઓ ટ્રિગર થઈ.
- તાજેતરમાં બનાવેલા પબ્લિક રિપોઝ જેમાં એન્કોડેડ બ્લોબ્સ છે.
ઝડપી શિકાર
નિષ્કર્ષ: શાઈ-હુલુદ પાસેથી શીખ
આ શાઈ-હુલુદ સપ્લાય ચેઇન હુમલો npm પેકેજોમાં બતાવે છે કે આજની સોફ્ટવેર સપ્લાય ચેઇન કેટલી નાજુક બની ગઈ છે. આ કીડાએ દૂષિત કોડ ઉમેરવા કરતાં વધુ કર્યું. તે ટોકન્સ ચોરી લેતો, ડેટા બહાર મોકલતો અને પછી આપમેળે ફરીથી પ્રકાશિત કરતો. આ કારણે, હુમલો અઠવાડિયાને બદલે કલાકોમાં ફેલાયો.
ડેવલપર્સ અને DevOps ટીમો માટે, પાઠ સ્પષ્ટ છે:
- દરેક ઇન્સ્ટોલ કોડ ચલાવે છે. એક સામાન્ય npm પેકેજ પણ પોસ્ટઇન્સ્ટોલ વોર્મને છુપાવી શકે છે.
- દરેક ટોકનનું મૂલ્ય ઊંચું હોય છે. એકવાર ચોરી થઈ ગયા પછી, તેનો ઉપયોગ માલવેરને વધુ ફેલાવવા માટે થઈ શકે છે.
- દરેક pipeline તપાસની જરૂર છે. વગર guardrails નિર્ભરતા, કાર્યપ્રવાહ અને રહસ્યોના આધારે, એક સમાધાન ઉત્પાદનને ઝડપથી અસર કરી શકે છે.
તેથી, શાઈ-હુલુદ જેવા હુમલાઓને રોકવા માટે એવા નિયંત્રણોની જરૂર છે જે સ્વચાલિત અને લાગુ કરવામાં સરળ હોય. ટીમોએ ઇન્સ્ટોલ કરતા પહેલા npm પેકેજો સ્કેન કરવા જોઈએ, લોકફાઇલ બિલ્ડ્સનો ઉપયોગ કરવો જોઈએ, વિચિત્ર પ્રકાશન પ્રવૃત્તિ શોધવી જોઈએ અને ટોકન્સને ટૂંકા ગાળા માટે રાખવા જોઈએ. આ પગલાં હવે વૈકલ્પિક નથી. તેના બદલે, તે આધુનિકમાં સ્થિતિસ્થાપકતાનો પાયો છે. pipelines.
Xygeni ખાતે, અમે શાઈ-હુલુદ સપ્લાય ચેઇન હુમલાને સમગ્ર ઓપન સોર્સ ઇકોસિસ્ટમ માટે ચેતવણી તરીકે જોઈએ છીએ. ટકાઉ આગળ વધવાનો રસ્તો એ છે કે સપ્લાય ચેઇન સુરક્ષાને સીધી વિકાસ પ્રક્રિયામાં લાવવામાં આવે, જ્યાં કોડ, npm પેકેજો અને pipelineકનેક્ટ કરો.
નીચે શાઈ-હુલુદમાં ચેડા થયેલા npm પેકેજો અને સંસ્કરણોની સંપૂર્ણ સૂચિ છે. તમારી લોકફાઇલો, રજિસ્ટ્રી અને CI તપાસવા માટે તેનો ઉપયોગ કરો. pipelineએક્સપોઝર માટે.
ચેડા થયેલા પેકેજોની યાદી
📦 સમાધાન પામેલા npm પેકેજોનું પૂર્વાવલોકન
| પેકેજ નામ | આવૃત્તિ | તારીખ પ્રકાશિત |
|---|---|---|
| json-rules-engine-simplifyed દ્વારા વધુ માહિતી માટે કૃપા કરીને અહીં ક્લિક કરો. | 0.2.1 | 2025-09-14T17:58:51.203Z |
| એરપાયલોટ | 0.8.8 | 2025-09-14T18:35:07.600Z |
| mcp-નોલેજ-ગ્રાફ | 1.2.1 | 2025-09-14T18:35:09.494Z |
| એરચીફ | 0.3.1 | 2025-09-14T18:35:09.521Z |
| જમ્પગેટ | 0.0.2 | 2025-09-14T18:35:09.651Z |
| ટીવીઆઈ-ક્લાઈમ | 0.1.5 | 2025-09-14T18:35:10.996Z |
| @thangved/કોલબેક-વિન્ડો | 1.1.4 | 2025-09-14T20:31:38.479Z |
| @tnf-dev/api | 1.0.8 | 2025-09-14T20:31:39.547Z |
| @tnf-dev/js | 1.0.8 | 2025-09-14T20:31:41.251Z |
| @tnf-dev/mui | 1.0.8 | 2025-09-14T20:31:41.259Z |
| @tnf-ડેવ/કોર | 1.0.8 | 2025-09-14T20:31:42.728Z |
| @teselagen/પ્રતિક્રિયા-ટેબલ | 6.10.20 | 2025-09-14T20:37:08.597Z |
| @hestjs/ડેમો | 0.1.2 | 2025-09-14T20:45:52.348Z |
| @nexe/eslint-config | 0.1.1 | 2025-09-14T20:45:53.625Z |
| @hestjs/eslint-config | 0.1.2 | 2025-09-14T20:45:55.044Z |
| @nexe/config-મેનેજર | 0.1.1 | 2025-09-14T20:45:55.066Z |
| @નેક્સી/લોગર | 0.1.3 | 2025-09-14T20:45:55.170Z |
| @hestjs/લોગર | 0.1.6 | 2025-09-14T20:45:55.197Z |
| @hestjs/માન્યતા | 0.1.6 | 2025-09-14T20:45:55.595Z |
| @hestjs/કોર | 0.2.1 | 2025-09-14T20:45:55.888Z |
➡️ ચેડા થયેલા પેકેજોની સંપૂર્ણ યાદી જુઓ
| પેકેજ નામ | આવૃત્તિ | તારીખ પ્રકાશિત |
|---|---|---|
| json-rules-engine-simplifyed દ્વારા વધુ માહિતી માટે કૃપા કરીને અહીં ક્લિક કરો. | 0.2.1 | 2025-09-14T17:58:51.203Z |
| એરપાયલોટ | 0.8.8 | 2025-09-14T18:35:07.600Z |
| mcp-નોલેજ-ગ્રાફ | 1.2.1 | 2025-09-14T18:35:09.494Z |
| એરચીફ | 0.3.1 | 2025-09-14T18:35:09.521Z |
| જમ્પગેટ | 0.0.2 | 2025-09-14T18:35:09.651Z |
| ટીવીઆઈ-ક્લાઈમ | 0.1.5 | 2025-09-14T18:35:10.996Z |
| @thangved/કોલબેક-વિન્ડો | 1.1.4 | 2025-09-14T20:31:38.479Z |
| @tnf-dev/api | 1.0.8 | 2025-09-14T20:31:39.547Z |
| @tnf-dev/js | 1.0.8 | 2025-09-14T20:31:41.251Z |
| @tnf-dev/mui | 1.0.8 | 2025-09-14T20:31:41.259Z |
| @tnf-ડેવ/કોર | 1.0.8 | 2025-09-14T20:31:42.728Z |
| @teselagen/પ્રતિક્રિયા-ટેબલ | 6.10.20 | 2025-09-14T20:37:08.597Z |
| @hestjs/ડેમો | 0.1.2 | 2025-09-14T20:45:52.348Z |
| @nexe/eslint-config | 0.1.1 | 2025-09-14T20:45:53.625Z |
| @hestjs/eslint-config | 0.1.2 | 2025-09-14T20:45:55.044Z |
| @nexe/config-મેનેજર | 0.1.1 | 2025-09-14T20:45:55.066Z |
| @નેક્સી/લોગર | 0.1.3 | 2025-09-14T20:45:55.170Z |
| @hestjs/લોગર | 0.1.6 | 2025-09-14T20:45:55.197Z |
| @hestjs/માન્યતા | 0.1.6 | 2025-09-14T20:45:55.595Z |
| @hestjs/કોર | 0.2.1 | 2025-09-14T20:45:55.888Z |
| @hestjs/cqrs | 0.1.6 | 2025-09-14T20:45:55.966Z |
| @hestjs/સ્કેલર | 0.1.7 | 2025-09-14T20:45:56.386Z |
| ng2-ફાઇલ-અપલોડ | 7.0.3 | 2025-09-15T02:44:29.555Z |
| કેપેસિટર-નોટિફિકેશન હેન્ડલર | 0.0.2 | 2025-09-15T04:54:48.431Z |
| કેપેસિટર-પ્લગઇન-વોનેજ | 1.0.2 | 2025-09-15T04:54:48.501Z |
| કેપેસિટર-પ્લગઇન-હેલ્થએપ | 0.0.2 | 2025-09-15T04:54:48.704Z |
| કેપેસિટરએન્ડ્રોઇડ પરવાનગીઓ | 0.0.4 | 2025-09-15T04:54:48.753Z |
| વીઓઆઈપી-કોલકિટ | 1.0.2 | 2025-09-15T04:54:49.223Z |
| કેપેસિટર-પ્લગઇન-આઇહેલ્થ | 1.1.8 | 2025-09-15T04:55:08.113Z |
| @આર્ટ-ડબ્લ્યુએસ/કોમન | 2.0.22 | 2025-09-15T05:21:15.411Z |
| @art-ws/config-eslint | 2.0.4 | 2025-09-15T05:21:17.199Z |
| ngx-ws | 1.1.5 | 2025-09-15T05:21:17.514Z |
| @આર્ટ-ડબ્લ્યુએસ/એસએલએફ | 2.0.15 | 2025-09-15T05:21:17.524Z |
| @art-ws/http-સર્વર | 2.0.21 | 2025-09-15T05:21:17.745Z |
| pm2-gelf-json | 1.0.4 | 2025-09-15T05:21:18.413Z |
| @art-ws/di | 2.0.28 | 2025-09-15T05:21:18.488Z |
| @art-ws/di-નોડ | 2.0.13 | 2025-09-15T05:21:18.849Z |
| @art-ws/config-ts | 2.0.7 | 2025-09-15T05:21:19.408Z |
| @art-ws/db-સંદર્ભ | 2.0.21 | 2025-09-15T05:21:19.814Z |
| @આર્ટ-ડબ્લ્યુએસ/ઓપેનાપી | 0.1.9 | 2025-09-15T05:21:19.969Z |
| @art-ws/વેબ-એપ | 1.0.3 | 2025-09-15T05:21:20.383Z |
| @art-ws/ssl-માહિતી | 1.0.9 | 2025-09-15T05:21:20.927Z |




