آپ کا Rate Limiter کوئی سیکیورٹی کنٹرول نہیں ہے

ایک بوٹ نے چند منٹوں میں میرے API سے ایک پاسپورٹ کا تمام ڈیٹا نکال لیا۔

میرے Rate Limiter نے اسے نہیں روکا۔

حد ماہانہ 3,000 کالز کی تھی۔ ایک مکمل پاسپورٹ اسکین کے لیے صرف 195 کالز درکار ہوتی ہیں۔ بوٹ میری حد کے اندر رہا اور سب کچھ چرا گیا۔

Rate limiting آپ کے انفراسٹرکچر کے اخراجات کی حفاظت کرتی ہے۔ یہ آپ کے ڈیٹا کی حفاظت نہیں کرتی۔

اگر آپ ان دو تصورات کو ملا دیں گے، تو آپ کا ڈیٹا لیک ہو جائے گا۔

Rate limiters صرف ایک سوال پوچھتے ہیں: کیا یہ کلائنٹ اس وقت مجھے بہت زیادہ رقم کا خرچ دے رہا ہے؟

Scrapers جان بوجھ کر اس حد کے نیچے رہتے ہیں۔ میرا scraper فی منٹ 25 requests کی رفتار سے چل رہا تھا۔ یہ ایک بہت معمولی بوجھ ہے۔ میرے پورے dataset کی کاپی کرنے کے لیے اسے صرف 40,000 calls کی ضرورت ہوگی۔ اگر کوئی ہیکر بہت سے مفت اکاؤنٹس استعمال کرتا ہے، تو کوئی بھی volume cap اسے نہیں پکڑ سکے گی۔

Volume کو دیکھنا بند کریں۔ Identity، coverage اور pattern پر نظر رکھیں۔

میں نے دو غلطیاں کیں۔ پہلی یہ کہ میں نے source IP کو log نہیں کیا۔ ایک ہیکر دوبارہ مفت میں sign up کر سکتا ہے۔

پہلے اپنے logs کو درست کریں۔ اپنے database میں IP اور country کے کالمز شامل کریں۔ Remote address کے بجائے Cloudflare سے حاصل کردہ اصل client IP استعمال کریں۔ اس سے آپ network layer پر حملہ آوروں کو بلاک کر سکتے ہیں۔

دوسری بات، اپنی limits تبدیل کریں۔

صرف ماہانہ requests کو محدود نہ کریں۔ اس بات کو محدود کریں کہ ایک پاسپورٹ ایک دن میں کتنی مختلف destinations کو چیک کر سکتا ہے۔ ایک حقیقی صارف چند destinations کو چیک کرتا ہے۔ ایک scraper ان سب کو چیک کرنے کی کوشش کرتا ہے۔

Data sweep کی ایک مخصوص نشانی ہوتی ہے:

  • یہ dense ہوتا ہے۔
  • یہ sequential ہوتا ہے۔
  • یہ ایک ہی source کے لیے ہر چیز کا احاطہ کرتا ہے۔

آپ سرگرمی کی sliding window کو دیکھ کر اس pattern کا پتہ لگا سکتے ہیں۔ اگر ایک پاسپورٹ کم وقت میں بہت زیادہ destinations تک پہنچتا ہے، تو اسے flag کریں۔ اس key کو throttle کریں یا اسے فوری طور پر بلاک کر دیں۔

اب آپ صرف نمبروں کو گننے کے بجائے behavior پر ردعمل دیتے ہیں۔

اپنی حکمت عملی کو دو کاموں میں تقسیم کریں:

  1. Rate Limiter: اپنے پیسے کی حفاظت کریں۔ Per-key volume caps استعمال کریں۔
  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