ઝાયજેનીએ તાજેતરમાં 2025 માં સોફ્ટવેર સપ્લાય ચેઇન હુમલાઓના લેન્ડસ્કેપમાં ચિંતાજનક પેટર્ન જોયું., બે લોકપ્રિય પેકેજ મેનેજરોમાં ઉભરી રહ્યું છે: પી.પી.પી. અને npm. અમારા ચાલુ ધમકી ગુપ્તચર પ્રયાસોના ભાગ રૂપે,ઝાયજેની માલવેર પ્રારંભિક ચેતવણી (MEW) ટૂલે અગાઉ અન્ય રજિસ્ટ્રીમાં અપલોડ કરેલા દૂષિત પેકેજના એક અલગ પરંતુ પદ્ધતિસરના સમાન ઉદાહરણને ઓળખ્યું. આ કેસ દર્શાવે છે કે કેવી રીતે ધમકી આપનારા કલાકારો ઇકોસિસ્ટમમાં હુમલાની તકનીકોનો વિકાસ અને પુનઃઉપયોગ કરી રહ્યા છે, ખાસ કરીને દૂષિત પાયથોન પેકેજો અને દૂષિત npm પેકેજો, જે ઓપન સોર્સ સપ્લાય ચેઇન્સમાં દૂષિત પેકેજો ઘૂસવાનું જોખમ વધારે છે.
ઝાયજેનીનું MEW: સમાનતાઓ શોધવી
Xygeni નું MEW ટૂલ દૂષિત પેકેજોને શોધવા અને ફ્લેગ કરવા માટે બનાવવામાં આવ્યું છે, ખાસ કરીને 2025 માં સોફ્ટવેર સપ્લાય ચેઇન હુમલાઓ સાથે જોડાયેલા પેકેજો, ઓપન-સોર્સ રજિસ્ટ્રીમાં પ્રકાશિત થતાંની સાથે જ. તે શંકાસ્પદ વર્તણૂક માટે નવા પેકેજોનું વિશ્લેષણ કરીને કાર્ય કરે છે.
આ કિસ્સામાં, તેણે બે ઓળખ્યા દૂષિત પાયથોન પેકેજો (graphalgo PyPI પર) અને દૂષિત npm પેકેજો (express-cookie-parser npm પર).
સોફ્ટવેર સપ્લાય ચેઇન હુમલાઓમાં દૂષિત પાયથોન અને npm પેકેજો (2025)
ચાલો, આપણા ચેતવણીઓને ટ્રિગર કરનારી સહિયારી લાક્ષણિકતાઓનું અન્વેષણ કરીએ:
ટાઇપોસ્ક્વેટીંગ
બંનેએ લોકપ્રિય હાલના પેકેજોનો ઢોંગ કરવાનો પ્રયાસ કર્યો.
- ગ્રાફાલ્ગો (PyPI): "ગ્રાફ અને નેટવર્ક બનાવવા અને હેરફેર કરવા માટે પાયથોન પેકેજ.” નામના વપરાશકર્તા દ્વારા અપલોડ કરાયેલ "લેરીટેક" ૧૩ જૂન, ૨૦૨૫ ના રોજ, આ પેકેજ મૂળ નોન-મેલિશિયસ ગ્રાફાલ્ગો પ્રોજેક્ટના PyPi વિકલ્પ તરીકે રજૂ થયું, જેનું નામ પાછળથી ગ્રાફડિક્ટ રાખવામાં આવ્યું.
- એક્સપ્રેસ-કૂકી-પાર્સર (npm): આ પેકેજ જાણીતા કૂકી-પાર્સર પેકેજનું અનુકરણ કરે છે, અને તેના README.md. વાંચો. આવા ઢોંગ એ હાલના વિશ્વાસનો લાભ ઉઠાવવાની એક ઉત્તમ યુક્તિ છે.
સંરક્ષણની પ્રથમ હરોળ તરીકે અસ્પષ્ટતા
બંને પેકેજોએ મૂળ ફાઇલોમાં તેમના દૂષિત કોડને અસ્પષ્ટ કરી દીધો. માટે ગ્રાફાલ્ગો, અસ્પષ્ટ કોડ અંદર મળી આવ્યો હતો /utils/load_libraries.py. કિસ્સામાં એક્સપ્રેસ-કૂકી-પાર્સર, cookie-loader.min.js અસ્પષ્ટ પેલોડ સમાવ્યો.
આ પ્રારંભિક સ્તરનો ઉપયોગ સામાન્ય રીતે કેઝ્યુઅલ નિરીક્ષણ અને સ્ટેટિક વિશ્લેષણને અવરોધવા માટે થાય છે. આ અસ્પષ્ટતા એકદમ સરળ હતી: વારંવાર ZLib કમ્પ્રેશન વત્તા Base64 એન્કોડિંગ. આ પ્રકારનું અસ્પષ્ટતા સ્પષ્ટપણે સૂચવે છે કે સોફ્ટવેર તેના વર્તનને છુપાવવાનો પ્રયાસ કરી રહ્યું છે. અન્ય પુરાવાઓ સાથે, આનાથી Xygeni MEW ને પેકેજોને સંભવિત માલવેર તરીકે વર્ગીકૃત કરવાની મંજૂરી મળી. પુષ્ટિકરણ તબક્કા દરમિયાન, અમારા સમીક્ષકોએ તરત જ એક ડિઓબ્ફસ્કેશન સ્ક્રિપ્ટ તૈયાર કરી જે સ્પષ્ટપણે દૂષિત ડ્રોપર તબક્કાને જાહેર કરે છે.
મલ્ટી-સ્ટેજ પેલોડ ડિલિવરી અને શેર્ડ ઓરિજિન પોઈન્ટ
બંને પેકેજો પ્રારંભિક "" તરીકે કાર્ય કરતા હતા.ડ્રોપર્સ"વાસ્તવિક પેલોડ માટે સ્ટેજ સેટ કરે છે. તેઓએ એક સામાન્ય બાહ્ય "બીજ” ફાઇલ URL:https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example
આ સમાન બાહ્ય સીડ ફાઇલ શેર કરેલા ખતરાના અભિનેતાનું મજબૂત સૂચક છે. રસપ્રદ વાત એ છે કે, આ સીડ ફાઇલની સામગ્રી સરળ પર્યાવરણ ચલો (દા.ત., JWT_SECRET, PORT) હોય તેવું લાગે છે, જે સંભવિત રીતે તેના વાસ્તવિક કાર્ય માટે ગેરમાર્ગે દોરનારું નિરીક્ષણ છે.
DGA સાથે ડાયનેમિક C2 રિઝોલ્યુશન
આ દૂષિત પેકેજોમાં જોવા મળતી એક અત્યાધુનિક યુક્તિ એ છે કે ડોમેન જનરેશન અલ્ગોરિધમ (DGA) નો ઉપયોગ કરીને કમાન્ડ એન્ડ કંટ્રોલ (C2) સર્વરને ગતિશીલ રીતે ઉકેલી શકાય છે. આ ટેકનિક, જે ઘણીવાર 2025 માં એડવાન્સ્ડ સોફ્ટવેર સપ્લાય ચેઇન હુમલાઓમાં જોવા મળે છે, તે સીડ ફાઇલની સામગ્રીમાંથી મેળવેલા SHA256 હેશ પર આધાર રાખે છે, જે અન્ય હાર્ડકોડેડ મૂલ્યો સાથે જોડાયેલી છે. આમ કરવાથી, C2 ઇન્ફ્રાસ્ટ્રક્ચર વારંવાર બદલાય છે, જે પરંપરાગત બ્લેકલિસ્ટિંગને ઘણું ઓછું અસરકારક બનાવે છે. આ કિસ્સામાં, npm વેરિઅન્ટે નિશ્ચિત મૂલ્યનો ઉપયોગ કર્યો હતો 496AAC7E તેના DGA લોજિકના ભાગ રૂપે.
દ્રઢતા સ્થાપિત કરવી
બંને હુમલાખોરો અસરગ્રસ્ત સિસ્ટમો પર કાયમી હાજરી સ્થાપિત કરવા માંગતા હતા. તેમની વ્યૂહરચનામાં ફાઇલ છોડી દેવાનો સમાવેશ થતો હતો, startup.py (PyPi માટે) અથવા startup.js (npm માટે), વિવિધ ઓપરેટિંગ સિસ્ટમ્સ (Windows, Linux, macOS) માં સામાન્ય Google Chrome વપરાશકર્તા ડેટા ડિરેક્ટરીઓમાં.
અમલ પછીની સફાઈ
નિશાનો ઘટાડવા માટે, બંને દૂષિત સ્ક્રિપ્ટોએ સફાઈ કામગીરી કરી. આમાં તેમની પ્રારંભિક ડ્રોપર ફાઇલોને કાઢી નાખવાનો સમાવેશ થાય છે (load_libraries.py, cookie-loader.min.js) અને કાયદેસર પેકેજ ફાઇલોમાં ફેરફાર કરવો (__init__.py, index.js) હવે કાઢી નાખેલા ઘટકોના સંદર્ભો દૂર કરવા માટે.
દૂષિત પાયથોન અને npm પેકેજોમાં સમાધાનના સૂચકાંકો
- PyPI પેકેજ: ગ્રાફાલ્ગો (લેરીટેક દ્વારા પ્રકાશિત, ૧૩ જૂન, ૨૦૨૫)
- npm પેકેજ: એક્સપ્રેસ-કૂકી-પાર્સર (ખાસ કરીને સંસ્કરણ 1.4.12)
- શેર્ડ સીડ URL ની ઍક્સેસ:
https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example
- સતત ફાઇલનામો:
startup.py(અજગર)startup.js(જાવાસ્ક્રિપ્ટ) - સામાન્ય સતત માર્ગો (OS-આધારિત): ગૂગલ ક્રોમ યુઝર ડેટા ડિરેક્ટરીઓમાં (દા.ત.,
AppData\Local\Google\Chrome\UserData\Scripts\વિન્ડોઝ પર,~/.config/google-chrome/Scripts/Linux પર, વગેરે).
2025 માં સોફ્ટવેર સપ્લાય ચેઇન હુમલાઓમાં દૂષિત પેકેજો સામે કેવી રીતે બચાવ કરવો
વિકાસકર્તાઓ માટે ભલામણ કરેલ અભિગમ
આ ઘટના 2025 માં સોફ્ટવેર સપ્લાય ચેઇન હુમલાઓના વિકસતા જોખમી લેન્ડસ્કેપમાં એક મૂલ્યવાન કેસ સ્ટડી તરીકે કામ કરે છે. તે દર્શાવે છે કે કેવી રીતે દૂષિત પાયથોન પેકેજો અને દૂષિત npm પેકેજો વિશ્વસનીય ઇકોસિસ્ટમમાં પ્રવેશી શકે છે, ઘણીવાર શોધ ટાળી શકાય છે જ્યાં સુધી ખૂબ મોડું ન થઈ જાય. એટલા માટે વહેલા શોધ, સ્માર્ટ ટૂલિંગ અને સક્રિય સિસ્ટમ સ્વચ્છતા હવે કોઈપણ સુરક્ષિત DevOps વર્કફ્લોના આવશ્યક ભાગો છે. વિકાસકર્તાઓને નીચેના ધ્યાનમાં લેવા માટે પ્રોત્સાહિત કરવામાં આવે છે:
નિર્ભરતા સમીક્ષા
જો તમારા પ્રોજેક્ટ્સમાં શામેલ હોય તો ગ્રાફાલ્ગો or એક્સપ્રેસ-કૂકી-પાર્સર, તેમને દૂર કરવાની પ્રક્રિયા આગળ વધારવી સમજદારીભર્યું રહેશે.
- PyPI માટે:
pip uninstall graphalgo - npm માટે:
npm uninstall express-cookie-parser
સિસ્ટમ સ્વચ્છતા
એક વ્યાપક સિસ્ટમ સ્કેન કરવાનું વિચારો. કોઈપણ અણધારી ઘટના માટે સામાન્ય Chrome વપરાશકર્તા ડેટા ડિરેક્ટરી પાથને મેન્યુઅલી તપાસવાની પણ સલાહ આપવામાં આવે છે. startup.py or startup.js ફાઈલો.
સક્રિય સુરક્ષા પગલાં
- નવી નિર્ભરતાઓનું મૂલ્યાંકન કરો: એકીકરણ પહેલાં નવા પેકેજોનું સંપૂર્ણ મૂલ્યાંકન કરવા માટે એક દિનચર્યા સ્થાપિત કરો, જેમાં અજાણ્યા પ્રકાશકોના પેકેજો પર ધ્યાન કેન્દ્રિત કરો.
- સુરક્ષા સાધનોને એકીકૃત કરો: અન્ય સોફ્ટવેર કમ્પોઝિશન એનાલિસિસ સાથે, ઝાયજેનીના MEW જેવા સાધનો (SCA) ઉકેલો, શંકાસ્પદ વર્તણૂકો અને નબળાઈઓને ઓળખીને સંરક્ષણનો એક મહત્વપૂર્ણ સ્તર પૂરો પાડી શકે છે.
- ઓછામાં ઓછો વિશેષાધિકાર: ઓછામાં ઓછા વિશેષાધિકારના સિદ્ધાંત સાથે વિકાસ વાતાવરણનું સંચાલન સમાધાનની સંભવિત અસરને મર્યાદિત કરવામાં મદદ કરી શકે છે.
- નેટવર્ક જાગૃતિ: અસામાન્ય કનેક્શન્સ માટે આઉટબાઉન્ડ નેટવર્ક ટ્રાફિકનું નિરીક્ષણ કરવાથી ક્યારેક DGA-જનરેટેડ C2 કોમ્યુનિકેશન્સ જાહેર થઈ શકે છે.
ના મુખ્ય ઘટકો load_libraries.py (ગ્રાફાલ્ગોમાંથી)
download_remote_content(): ઉલ્લેખિત URL માંથી ફાઇલો મેળવવાનું સંચાલન કરે છે.run_process(): બાહ્ય પાયથોન સ્ક્રિપ્ટોને અલગ રીતે ચલાવે છે, ગુપ્ત રહેવા માટે આઉટપુટને દબાવી દે છે.get_output_file_path(): સતત startup.py ફાઇલ માટે આદર્શ સિસ્ટમ સ્થાન નક્કી કરે છે.remove_self(): પ્રારંભિક દૂષિત ફાઇલો અને પેકેજ ફેરફારોની અમલ પછીની સફાઈનું આયોજન કરે છે.simple_shift_encrypt()/simple_shift_decrypt(): DGA અમલીકરણ માટે મહત્વપૂર્ણ, સંચાર ચેનલોને અસ્પષ્ટ કરવા માટે કસ્ટમ ક્રિપ્ટોગ્રાફિક કાર્યો.load_libraries(): કેન્દ્રીય કાર્ય જે પ્રારંભિક ડાઉનલોડથી લઈને અંતિમ પેલોડ એક્ઝેક્યુશન અને ક્લિનઅપ સુધીની સમગ્ર મલ્ટી-સ્ટેજ પ્રક્રિયાનું સંકલન કરે છે.
પરિણામો
MEW દ્વારા ઓળખાયેલા અન્ય સંભવિત દૂષિત પેકેજોની જેમ, ડિપેન્ડન્સી ફાયરવોલે તરત જ એવા વપરાશકર્તાઓને સુરક્ષિત કર્યા જેઓ આ દૂષિત પેકેજોને તેમની ડિપેન્ડન્સીમાં સમાવતા હતા. પુષ્ટિકરણ પછી, અમે બંને રજિસ્ટ્રી માટે સૂચના પ્રક્રિયાઓનું પાલન કર્યું, જેણે સમીક્ષા પછી બંને પેકેજોને દૂર કર્યા.




