એક SaaS ડેવલપરે શોધી કાઢ્યું કે તેના એકાઉન્ટના દરેક ડોમેન માટે Cloudflare નું Bot Fight Mode ચાલુ કરવાથી આખા મહિના માટે API ટ્રાફિક અટકી ગયો હતો, જેના કારણે પેઇડ ગ્રાહકો તેના ઉત્પાદનના મુખ્ય ફીચર્સનો ઉપયોગ કરવામાં અસમર્થ હતા.

જ્યારે ડેવલપરે વપરાશના મેટ્રિક્સમાં (usage metrics) અચાનક ઘટાડો જોયો ત્યારે આ સમસ્યા સામે આવી. નવા સાઇન-અપ્સ આવતા રહ્યા, પરંતુ એક્ટિવ સેશન્સ વધતા અટકી ગયા. અઠવાડિયાના કોડ રિરાઈટિંગ અને ડીબગિંગ પછી, એક સિંગલ સિક્યુરિટી ટોગલ (security toggle) આનું કારણ હોવાનું બહાર આવ્યું: Cloudflare નું Bot Fight Mode SaaS ના પોતાના AWS Lambda એન્ડપોઇન્ટને શંકાસ્પદ બોટ તરીકે લેબલ કરી રહ્યું હતું અને તેને બ્લોક કરી રહ્યું હતું.

કેવી રીતે એક સિંગલ સેટિંગે આખી સર્વિસ બગાડી નાખી

ડેવલપરનું સ્ટેક (stack) સર્વર-ટુ-સર્વર કોલ્સ પર આધારિત હતું. એક ઇન્ટરનલ Lambda ફંક્શન નિયમિતપણે SaaS ના પબ્લિક ડોમેન પર ડેટા પોસ્ટ કરતું હતું, જે આધુનિક માઇક્રો-સર્વિસ આર્કિટેક્ચરમાં સામાન્ય પેટર્ન છે. Bot Fight Mode એવા રિક્વેસ્ટ્સને પડકાર આપે છે અથવા બ્લોક કરે છે જે ઓટોમેટેડ સ્ક્રૅપર્સ (scrapers) જેવા દેખાય છે, જેથી કન્ટેન્ટ-ડ્રિવન સાઇટ્સને ડેટા હાર્વેસ્ટિંગથી બચાવી શકાય.

જ્યારે આ મોડ તમામ ઝોન્સમાં સક્ષમ કરવામાં આવ્યો, ત્યારે Cloudflare એ Lambda ના આઉટબાઉન્ડ રિક્વેસ્ટને અન્ય એક ઓટોમેટેડ ક્લાયન્ટ તરીકે ગણ્યો. રિક્વેસ્ટ ક્યારેય એપ્લિકેશન સુધી પહોંચી જ નહીં, અને બ્લોક એજ (edge) પર થયો હોવાથી, SaaS ના મોનિટરિંગ ટૂલ્સમાં કોઈ એરર દેખાઈ નહીં – ટ્રાફિક સીધો જ ગાયબ થઈ ગયો. Cloudflare Workers પર ડેવલપરનો CPU વપરાશ વધી ગયો, જેના કારણે તેને પોતાના બેકએન્ડને બદલે કોઈ બાહ્ય સ્ક્રૅપર પર શંકા ગઈ.

Cloudflare ના લોગ્સ (logs) તપાસ્યા પછી જ તેને ખબર પડી કે "Bot Fight Mode" એ Lambda ની IP રેન્જ સાથે મેચ થતી એન્ટ્રીઓને બ્લોક કરી હતી. તેણે અસરગ્રસ્ત ઝોન્સ માટે આ ફીચર બંધ કરી દીધું, અને API ટ્રાફિક ફરી શરૂ થયો, જેનાથી વપરાશના મેટ્રિક્સ ફરી સામાન્ય થઈ ગયા.

SaaS ઓપરેટર્સ માટે આ ભૂલ શા માટે મહત્વની છે

  • API-કેન્દ્રીત ઉત્પાદનોને ખુલ્લા સર્વર-ટુ-સર્વર ચેનલોની જરૂર હોય છે. Bot Fight Mode એવું માની લે છે કે મુખ્ય ટ્રાફિક HTML, ઈમેજીસ અથવા સ્ટેટિક એસેટ્સ માટેના હ્યુમન-બ્રાઉઝર રિક્વેસ્ટ્સ છે. જે SaaS પ્લેટફોર્મ્સ API, webhooks અથવા ઇન્ટરનલ કોલબેક્સ (callbacks) નો ઉપયોગ કરે છે, તેને એપ્લિકેશન લેયર સુધી કોઈ દેખીતી એરર કોડ પહોંચ્યા વિના જ થ્રોટલ (throttle) અથવા બ્લોક કરી શકાય છે.
  • ગ્લોબલ સિક્યુરિટી સેટિંગ્સ ભાગ્યે જ દરેક વર્કલોડ માટે યોગ્ય હોય છે. તમામ ડોમેન્સ પર એક જ Cloudflare કોન્ફિગરેશન લાગુ કરવાથી દરેક સાઇટને એવું માનવામાં આવે છે કે તે સમાન થ્રેટ મોડેલ (threat model) ધરાવે છે. કન્ટેન્ટ સાઇટ્સ, ફોરમ્સ અને SaaS બેક-એન્ડ્સની સિક્યુરિટી જરૂરિયાતો ખૂબ જ અલગ હોય છે.
  • સાયલન્ટ ફેલ્યોર (Silent failures) આવક ઘટાડે છે. ડેવલપરનું એલર્ટિંગ સિસ્ટમ સક્રિય થયું નહીં કારણ કે બ્લોક થયેલ રિક્વેસ્ટ ક્યારેય એપ્લિકેશન સુધી પહોંચી જ નહીં. માત્ર યુઝર-એન્ગેજમેન્ટ મેટ્રિક્સમાં ઘટાડો થવાથી જ સમસ્યાનો સંકેત મળ્યો. એજ-લેવલ (edge-level) લોગ રિવ્યુઝ વગર, આવી સમસ્યાઓ ધ્યાન બહાર રહી શકે છે.

ડેવલપર્સ સમાન પરિસ્થિતિથી બચવા માટે શું કરી શકે છે

  1. દરેક ઝોનના ટ્રાફિક પ્રોફાઇલનું ઓડિટ કરો. Bot Fight Mode સક્ષમ કરતા પહેલા, તમારો ડોમેન કયા પ્રકારના રિક્વેસ્ટ્સની અપેક્ષા રાખે છે તેની યાદી બનાવો: હ્યુમન બ્રાઉઝર્સ, API કોલ્સ, webhook કોલબેક્સ અથવા ઇન્ટરનલ સર્વિસ કોલ્સ. જો તેમાંથી કોઈ પણ મુખ્ય કાર્યક્ષમતા માટે આવશ્યક હોય, તો તે ઝોનને "API-first" તરીકે ગણો અને બોટ-મિટીગેશન (bot-mitigation) સેટિંગ્સ ન્યૂનતમ રાખો.
  2. સ્ટેજ્ડ એન્વાયરમેન્ટમાં (staged environment) ફેરફારોનું પરીક્ષણ કરો. Cloudflare તમને સિંગલ સબડોમેન અથવા સ્ટેજિંગ ઝોન પર સેટિંગ્સ લાગુ કરવાની મંજૂરી આપે છે. ફેરફારને વૈશ્વિક સ્તરે લાગુ કરતા પહેલા ખાતરી કરો કે કાયદેસરનું ઓટોમેશન હજુ પણ કામ કરે છે.
  3. તમારા ઓબ્ઝર્વેબિલિટી સ્ટેક (observability stack) ના ભાગ રૂપે એજ-લેવલ લોગ્સનું મોનિટરિંગ કરો. Cloudflare ના ફાયરવોલ અને બોટ-મિટીગેશન લોગ્સને SIEM, Loki અથવા કોઈપણ એગ્રીગેશન સર્વિસમાં સ્ટ્રીમ કરો. સાયલન્ટ ફેલ્યોરને વહેલા પકડવા માટે બ્લોક થયેલ રિક્વેસ્ટમાં વધારો અને એપ્લિકેશન મેટ્રિક્સમાં ઘટાડા વચ્ચે સંબંધ તપાસો.
  4. સિક્યુરિટી સેટિંગ્સ રિવર્સિબલ (reversible) બનાવો. એક ડોક્યુમેન્ટેડ રોલબેક પ્લાન રાખો. જો નવો નિયમ અણધાર્યું વર્તન કરે, તો કોડ વર્કઅરાઉન્ડ્સમાં સમય રોકતા પહેલા તેને પહેલા ડિસેબલ કરો અને ફેરફારની પુષ્ટિ કરો.
  5. સાચો પ્રશ્ન પૂછો. "હું સ્ક્રૅપર્સને કેવી રીતે રોકી શકું?" તે પૂછવાને બદલે, "શું આ ટૂલ મારી સામે આવેલી ચોક્કસ સમસ્યાનું સમાધાન કરે છે?" એવું પૂછો. સ્ક્રૅપર્સને બ્લોક કરતી સિક્યુરિટી ફીચર એ SaaS માટે યોગ્ય જવાબ ન હોઈ શકે જેને ખુલ્લા API એક્સેસની જરૂર હોય.

વ્યાપક પરિપ્રેક્ષ્ય

Bot Fight Mode એવા સાઇટ્સ માટે મૂલ્યવાન છે જેમને એગ્રેસિવ ક્રોલર્સ (crawlers) થી સ્ટેટિક કન્ટેન્ટનું રક્ષણ કરવાની જરૂર છે. તેની મર્યાદા એ છે કે તે દુશ્મન સ્ક્રૅપર અને સમાન HTTP પેટર્ન અનુસરતા કાયદેસરના ઓટોમેટેડ ક્લાયન્ટ વચ્ચે તફાવત કરવામાં અસમર્થ છે.

મુખ્ય વાત (Takeaway)

જ્યારે તમે સિંગલ Cloudflare એકાઉન્ટ હેઠળ અનેક ડોમેન્સનું સંચાલન કરો છો, ત્યારે દરેકને અલગ સિક્યુરિટી ઝોન તરીકે ગણો. Bot Fight Mode ફક્ત ત્યાં જ સક્ષમ કરો જ્યાં ટ્રાફિક સંપૂર્ણપણે માનવ-સંચાલિત હોય; API-હેવી SaaS વર્કલોડ્સ માટે, સેટિંગ બંધ રાખો અથવા કસ્ટમ ફાયરવોલ નિયમો સાથે તેને ફાઇન-ટ્યુન કરો. એક ક્લિક કાયદેસરના ટ્રાફિકને એટલી જ અસરકારક રીતે શાંત કરી શકે છે જેટલી તે સ્ક્રૅપરને રોકી શકે છે.