System Design শেখো
শেখো / সিকিউরিটি ও প্রাইভেসি

DDoS Mitigation

10 মিনিট Module 7 · Security & Privacy
এক নজরে
  • DDoS আক্রমণে বহু দিক থেকে একসাথে বিপুল ট্রাফিক পাঠিয়ে সার্ভার অচল করা হয়।
  • আক্রমণ দুই ধরনের— volumetric (ব্যান্ডউইথ ভরাট) ও application-layer (অ্যাপ-যুক্তি ক্লান্ত করা)।
  • CDN, WAF, rate limiting, anycast ও autoscaling মিলে স্তরে স্তরে DDoS ঠেকানো হয়।

সমস্যাটা কী?

কল্পনা করো তোমার ছোট দোকানে একসাথে দশ হাজার লোক ঢুকে পড়ল, কিন্তু কেউই কিছু কিনবে না— শুধু ভিড় করে আসল ক্রেতাদের ঢুকতেই দিচ্ছে না। দোকান কার্যত বন্ধ। ইন্টারনেটে এটাই DDoS আক্রমণ— হাজার হাজার মেশিন থেকে একসাথে এত request পাঠানো হয় যে সার্ভার নাগাল ছাড়িয়ে যায় এবং আসল ইউজাররা আর সেবা পায় না।

সবচেয়ে কঠিন দিকটি হলো— এই ট্রাফিক বহু আলাদা উৎস থেকে আসে, তাই একটা-দুটো IP ব্লক করে রেহাই নেই। আবার অনেক request দেখতে বৈধ ইউজারের মতোই। তাহলে আসল আর নকল ট্রাফিক আলাদা করে সার্ভার চালু রাখব কীভাবে— এটাই DDoS mitigation-এর মূল চ্যালেঞ্জ।

মূল ধারণা

DDoS (Distributed Denial of Service) হলো এমন আক্রমণ যেখানে বহু compromised মেশিন (botnet) থেকে একযোগে বিপুল ট্রাফিক পাঠিয়ে কোনো সেবা ইউজারের জন্য অচল করে দেওয়া হয়।

সাধারণ DoS এক উৎস থেকে আসে, তাই ব্লক করা সহজ। কিন্তু DDoS "distributed"— হাজার হাজার ভিন্ন IP থেকে আসে, যেগুলো আসলে হ্যাক হওয়া কম্পিউটার, রাউটার বা IoT ডিভাইস (botnet)। তাই কোনো একক প্রতিকার যথেষ্ট নয়; স্তরে স্তরে (defense in depth) ঠেকাতে হয়।

কীভাবে কাজ করে

আক্রমণের দুই ধরন

Volumetric (Layer 3/4): লক্ষ্য সরাসরি ব্যান্ডউইথ বা নেটওয়ার্ক সম্পদ ভরিয়ে ফেলা— যেমন UDP flood, DNS amplification। এতে বিপুল পরিমাণ ডেটা পাঠানো হয়, গিগাবিট প্রতি সেকেন্ডে মাপা হয়।

Application-layer (Layer 7): কম ট্রাফিকেই অ্যাপের ব্যয়বহুল অংশ আক্রমণ— যেমন বারবার একটি ভারী search বা লগইন endpoint কল করা। request দেখতে বৈধ, তাই ধরা সবচেয়ে কঠিন।

বৈশিষ্ট্যVolumetricApplication-layer
Layer3/4 (নেটওয়ার্ক)7 (অ্যাপ)
লক্ষ্যব্যান্ডউইথঅ্যাপ/DB সম্পদ
পরিমাপGbpsrequests/sec
শনাক্ততুলনামূলক সহজকঠিন (বৈধ দেখায়)
প্রতিকারCDN, scrubbingWAF, rate limiting

শনাক্তকরণ ও পরিশোধন

আধুনিক mitigation দুই ধাপে চলে— প্রথমে অস্বাভাবিক ট্রাফিক প্যাটার্ন detect করা, তারপর সেই ট্রাফিক একটি Scrubbing center-এ পাঠিয়ে খারাপ অংশ ছেঁকে শুধু বৈধ ট্রাফিক সার্ভারে পাঠানো।

সহজ উদাহরণ

DDoS ঠেকানো অনেকটা জনপ্রিয় কনসার্টের নিরাপত্তা ব্যবস্থাপনার মতো। মূল গেটে পৌঁছানোর অনেক আগেই বহু চেকপয়েন্ট বসানো হয় (CDN/edge), নকল টিকিটধারীদের সেখানেই আটকানো হয় (WAF), একই লোক বারবার ঢুকতে চাইলে থামানো হয় (rate limiting), সন্দেহ হলে পরিচয় প্রমাণ করতে বলা হয় (CAPTCHA), আর ভিড় সামলাতে অনেক গেট একসাথে খোলা হয় (autoscaling/anycast)। সব মিলে আসল দর্শক ঠিকই ভেতরে পৌঁছায়।

কৌশল

Rate limiting

প্রতি IP বা ক্লায়েন্ট থেকে নির্দিষ্ট সময়ে request সংখ্যা সীমিত করা। Rate Limiting application-layer আক্রমণ ও brute-force ঠেকাতে প্রথম প্রতিরক্ষা।

WAF

WAF (Web Application Firewall) HTTP ট্রাফিক পরীক্ষা করে ক্ষতিকর প্যাটার্ন (bot signature, injection, অস্বাভাবিক header) ব্লক করে। বিশেষত Layer 7 আক্রমণে কার্যকর।

CDN ও Scrubbing

CDN (Content Delivery Network, যেমন Cloudflare, Akamai) বিশ্বজুড়ে অনেক edge server-এ ট্রাফিক বণ্টন করে, ফলে বিপুল volumetric আক্রমণ একটি সার্ভারে কেন্দ্রীভূত হয় না। অনেক CDN scrubbing center-ও দেয়, যেখানে খারাপ ট্রাফিক ছেঁকে ফেলা হয়।

Anycast

Anycast-এ একই IP ঠিকানা বিশ্বজুড়ে বহু node-এ ঘোষণা করা হয়। আক্রমণ-ট্রাফিক স্বয়ংক্রিয়ভাবে নিকটতম node-এ ছড়িয়ে পড়ে, তাই কোনো একক node অভিভূত হয় না— ভার বিভক্ত হয়ে যায়।

Blackholing

চরম পরিস্থিতিতে আক্রান্ত IP-র সব ট্রাফিক "null route"-এ পাঠিয়ে ফেলে দেওয়া হয় (blackholing)। এতে আক্রমণ থামে, কিন্তু বৈধ ইউজারও সেবা পায় না— তাই এটি শেষ অবলম্বন।

Autoscaling ও CAPTCHA

আক্রমণের সময় স্বয়ংক্রিয়ভাবে সার্ভার সংখ্যা বাড়িয়ে (autoscaling) চাপ সামলানো যায়, যদিও এতে খরচ বাড়ে। আর সন্দেহজনক ট্রাফিকে CAPTCHA বসিয়ে বট ও মানুষ আলাদা করা যায়।

কখন ব্যবহার করবে / করবে না

যেকোনো public-facing সেবায় অন্তত CDN + WAF + rate limiting রাখো— এগুলো সাধারণ আক্রমণের বড় অংশ ঠেকায়। বড় আক্রমণের ঝুঁকি থাকলে dedicated DDoS protection service ব্যবহার করো।

সাবধান

শুধু autoscaling-এর উপর ভরসা করো না— আক্রমণকারী যত খুশি ট্রাফিক বাড়াতে পারে, ফলে তোমার cloud bill আকাশছোঁয়া হতে পারে (একে বলে "economic DoS" বা billing attack)। সবসময় autoscaling-এর সাথে rate limiting ও খরচের upper limit রাখো। আর blackholing শুধু চরম অবস্থায়, কারণ এতে বৈধ ইউজারও বন্ধ হয়ে যায়।

বাস্তব উদাহরণ

২০১৬ সালে Dyn (একটি বড় DNS provider)-এর উপর Mirai botnet-এর মাধ্যমে বিশাল DDoS আক্রমণ হয়, যাতে হ্যাক হওয়া লক্ষ লক্ষ IoT ডিভাইস (ক্যামেরা, রাউটার) ব্যবহার হয়েছিল— ফলে Twitter, Netflix, Reddit-সহ বহু সাইট ঘণ্টার পর ঘণ্টা ডাউন থাকে। অন্যদিকে Cloudflare নিয়মিত টেরাবিট-স্কেলের আক্রমণ শুষে নেয় তাদের বিশাল anycast নেটওয়ার্ক, edge scrubbing ও স্বয়ংক্রিয় শনাক্তকরণ দিয়ে— এটিই বহুস্তর mitigation-এর শক্তি দেখায়।

টিপস

ইন্টারভিউতে "DDoS কীভাবে ঠেকাবে?" জিজ্ঞেস করলে শুধু একটি টুল নয়, স্তরভিত্তিক উত্তর দাও: "edge-এ CDN + anycast দিয়ে volumetric শুষে নেব, WAF + rate limiting + CAPTCHA দিয়ে Layer 7 ঠেকাব, আর autoscaling-এর সাথে খরচের সীমা রাখব।" volumetric বনাম application-layer পার্থক্য স্পষ্ট করতে পারলে তুমি গভীরতা দেখালে।

মিনি কুইজ

1. DDoS আর DoS-এর প্রধান পার্থক্য কী?

2. Application-layer (Layer 7) DDoS-এর বৈশিষ্ট্য কী?

3. Anycast কীভাবে DDoS ঠেকাতে সাহায্য করে?