તમારું Rate Limiter એ સુરક્ષા નિયંત્રણ નથી

એક બોટે મિનિટોમાં મારા API માંથી એક પાસપોર્ટનો તમામ ડેટા ખેંચી લીધો.

મારા rate limiter એ તેને રોક્યું નહીં.

મર્યાદા દર મહિને 3,000 કોલ્સની હતી. એક સંપૂર્ણ પાસપોર્ટ સ્કેન માટે માત્ર 195 કોલ્સની જરૂર પડે છે. બોટે મારી મર્યાદાની અંદર રહીને બધું જ ચોરી લીધું.

Rate limiting તમારા ઇન્ફ્રાસ્ટ્રક્ચર ખર્ચનું રક્ષણ કરે છે. તે તમારા ડેટાનું રક્ષણ કરતું નથી.

જો તમે આ બંને વિચારોને મિક્સ કરશો, તો તમારો ડેટા લીક થઈ જશે.

Rate limiters માત્ર એક જ પ્રશ્ન પૂછે છે: શું આ ક્લાયન્ટ અત્યારે મને ખૂબ વધારે ખર્ચ કરી રહ્યો છે?

Scrapers જાણીજોઈને તે મર્યાદાની નીચે રહે છે. મારો scraper પ્રતિ મિનિટ 25 રિક્વેસ્ટની ઝડપે ચાલતો હતો. તે ખૂબ જ ઓછો લોડ છે. મારા સમગ્ર ડેટાસેટને કોપી કરવા માટે તેને માત્ર 40,000 કોલ્સની જરૂર પડે. જો હેકર ઘણા બધા ફ્રી એકાઉન્ટ્સનો ઉપયોગ કરે, તો કોઈ પણ વોલ્યુમ કેપ (volume cap) તેમને પકડી શકશે નહીં.

વોલ્યુમ (volume) જોવાનું બંધ કરો. ઓળખ (identity), કવરેજ (coverage) અને પેટર્ન (pattern) પર ધ્યાન આપો.

મેં બે ભૂલો કરી. પ્રથમ, મેં સોર્સ IP લોગ નહોતો કર્યો. હેકર ફક્ત ફરીથી ફ્રીમાં સાઇન અપ કરી શકે છે.

પહેલા તમારા લોગ્સ (logs) સુધારો. તમારા ડેટાબેઝમાં IP અને દેશના કોલમ ઉમેરો. રિમોટ એડ્રેસને બદલે Cloudflare માંથી વાસ્તવિક ક્લાયન્ટ IP નો ઉપયોગ કરો. આ તમને નેટવર્ક લેયર પર હુમલાખોરોને બ્લોક કરવાની મંજૂરી આપે છે.

બીજું, તમારી મર્યાદાઓ બદલો.

માત્ર દર મહિને રિક્વેસ્ટ્સ મર્યાદિત ન કરો. એક પાસપોર્ટ દિવસમાં કેટલા અલગ-અલગ ડેસ્ટિનેશન ચેક કરી શકે તેની મર્યાદા નક્કી કરો. એક વાસ્તવિક વપરાશકર્તા થોડા જ ડેસ્ટિનેશન ચેક કરે છે. જ્યારે સ્ક્રૅપર (scraper) તે બધાને ચેક કરવાનો પ્રયાસ કરે છે.

ડેટા સ્વીપ (data sweep) ની એક ચોક્કસ સિગ્નેચર હોય છે:

  • તે ઘન (dense) હોય છે.
  • તે ક્રમિક (sequential) હોય છે.
  • તે એક સોર્સ માટે બધું જ કવર કરે છે.

તમે પ્રવૃત્તિની સ્લાઇડિંગ વિન્ડો (sliding window) જોઈને આ પેટર્ન શોધી શકો છો. જો એક પાસપોર્ટ ટૂંકા સમયમાં ઘણા બધા ડેસ્ટિનેશન પર જાય, તો તેને ફ્લેગ (flag) કરો. તે કી (key) ને થ્રોટલ (throttle) કરો અથવા તરત જ બ્લોક કરો.

હવે તમે માત્ર સંખ્યા ગણવાને બદલે વર્તણૂક (behavior) પર પ્રતિક્રિયા આપો છો.

તમારી વ્યૂહરચનાને બે કામોમાં વહેંચો:

  1. Rate Limiter: તમારા પૈસાનું રક્ષણ કરો. પ્રતિ-કી (per-key) વોલ્યુમ કેપ્સનો ઉપયોગ કરો.
  2. Extraction Defense: તમારા ડેટાનું રક્ષણ કરો. ઓળખ (identity), કવરેજ (coverage) અને કેડન્સ (cadence) નો ઉપયોગ કરો.

જો તમારી પાસે ફક્ત rate limiter હોય, તો તમારી પાસે બિલિંગ ગાર્ડરેલ (billing guardrail) છે. તમારી પાસે સુરક્ષા નથી.

સ્ત્રોત: https://dev.to/mathis_higuinen_6db9b244c/your-rate-limiter-is-not-a-security-control-4b3f