DDoS Protection

DDoS (Distributed Denial of Service) অ্যাটাক আধুনিক ইন্টারনেট ব্যবস্থায় অন্যতম বড় একটি নিরাপত্তা হুমকি। একটি সিস্টেম বা সার্ভারকে ফেক ট্রাফিক দিয়ে ওভারলোড করে সাধারণ ব্যবহারকারীদের জন্য সম্পূর্ণ অকেজো করে দেওয়াই এই অ্যাটাকের মূল লক্ষ্য।

সিস্টেম ডিজাইনে একটি স্কেলেবল এবং রিলায়েবল আর্কিটেকচার তৈরি করার জন্য DDoS প্রোটেকশন মেকানিজম রাখা অপরিহার্য। আপনার তথ্যের সাথে প্রযুক্তিগত গভীরতা (যেমন: OSI লেয়ার অ্যাটাক, WAF, Scrubbing Center) যুক্ত করে বিষয়টি নিচে গুছিয়ে লেখা হলো:

DDoS অ্যাটাকের ধরন

DDoS প্রোটেকশন ডিজাইন করার আগে বুঝতে হবে অ্যাটাক কোন লেয়ারে হচ্ছে। মূলত দুই ধরনের অ্যাটাক সবচেয়ে বেশি দেখা যায়:

  • Layer 3 & 4 (Network/Transport Layer): যেমন SYN Flood বা UDP Flood। এর লক্ষ্য থাকে সার্ভারের ব্যান্ডউইথ বা নেটওয়ার্ক ইনফ্রাস্ট্রাকচার জ্যাম করে দেওয়া।

  • Layer 7 (Application Layer): যেমন HTTP Flood। এখানে অ্যাটাকাররা সাধারণ ইউজারের মতো সার্ভারে লগইন পেজ বা সার্চ এপিআই-তে লাখ লাখ রিকোয়েস্ট পাঠায়, যাতে সার্ভারের সিপিইউ (CPU) এবং মেমরি (Memory) ক্র্যাশ করে।

DDoS প্রোটেকশনের পদ্ধতি বা আর্কিটেকচার

১. ক্লাউড-বেইজড মিটিগেশন এবং ট্রাফিক স্ক্রাবিং (Cloud-based Scrubbing) বড় আকারের অ্যাটাক ঠেকানোর জন্য নিজস্ব সার্ভারের চেয়ে Cloudflare বা AWS Shield-এর মতো ক্লাউড সার্ভিস বেশি কার্যকর। যখন কোনো অ্যাটাক শুরু হয়, তখন ট্রাফিক সরাসরি আপনার সার্ভারে না গিয়ে একটি "Scrubbing Center"-এ রিডাইরেক্ট হয়। সেখানে ফেক ট্রাফিকগুলোকে (Bad traffic) ফিল্টার করে ফেলে দেওয়া হয় এবং শুধুমাত্র বৈধ ট্রাফিক (Good traffic) মূল সার্ভারে পাঠানো হয়।

২. এনিকাস্ট নেটওয়ার্ক (Anycast Network) Anycast রাউটিং ব্যবহার করে বিশ্বের বিভিন্ন ডেটা সেন্টারে সার্ভারের আইপি (IP) ব্রডকাস্ট করা হয়। এর ফলে যখন কোনো অ্যাটাক হয়, তখন সেই ট্রাফিক একটিমাত্র সার্ভারে না গিয়ে আশেপাশের অসংখ্য সার্ভারে ছড়িয়ে (Distribute) পড়ে। ফলে অ্যাটাকের প্রভাব খুব সহজেই সামলে নেওয়া যায়।

৩. Web Application Firewall (WAF) এবং IDPS Layer 7 বা অ্যাপ্লিকেশন লেয়ারের অ্যাটাক ঠেকানোর জন্য WAF ব্যবহার করা হয়। এটি প্রতিটি HTTP রিকোয়েস্ট স্ক্যান করে এবং সন্দেহজনক প্যাটার্ন (যেমন: নির্দিষ্ট বোটনেট সিগনেচার) পেলে তা ব্লক করে দেয়। এর সাথে Intrusion Detection and Prevention Systems (IDPS) যুক্ত থাকলে এটি আগে থেকেই ম্যালিসিয়াস ট্রাফিক শনাক্ত করতে পারে।

৪. ট্রাফিক ফিল্টারিং এবং রেট লিমিটিং সার্ভার লেভেলে নির্দিষ্ট আইপি থেকে আসা রিকোয়েস্টের হার নিয়ন্ত্রণ করা। আপনার দেওয়া পাইথন উদাহরণটিকে মেমরি লিক (Memory Leak) ফিক্স করে এবং FastAPI মিডেলওয়্যার হিসেবে প্রফেশনালভাবে নিচে দেওয়া হলো:

from fastapi import FastAPI, Request, HTTPException
from collections import defaultdict
import time

app = FastAPI()

# Store request counts: {ip: {timestamp: count}}
request_tracker = defaultdict(lambda: defaultdict(int))
LIMIT_PER_SECOND = 100

@app.middleware("http")
async def ddos_protection_middleware(request: Request, call_next):
    client_ip = request.client.host
    current_time = int(time.time())
    
    # Increment request count for the current second
    request_tracker[client_ip][current_time] += 1
    
    # Cleanup old data to prevent memory leak
    old_timestamps = [ts for ts in request_tracker[client_ip] if ts < current_time - 5]
    for ts in old_timestamps:
        del request_tracker[client_ip][ts]
        
    # Check if the rate limit is exceeded
    if request_tracker[client_ip][current_time] > LIMIT_PER_SECOND:
        raise HTTPException(
            status_code=429, 
            detail="Too Many Requests. Potential DDoS detected."
        )
        
    response = await call_next(request)
    return response

DDoS প্রোটেকশনের চ্যালেঞ্জ

  • ফলস পজিটিভ (False Positives): অনেক সময় অ্যাটাকের সময় সিস্টেম অতিরিক্ত সতর্ক হয়ে সাধারণ এবং বৈধ ব্যবহারকারীদের আইপি ব্লক করে দেয়। এটি ব্যবসার জন্য ক্ষতিকর হতে পারে।

  • কস্ট বা খরচ (Cost): প্রিমিয়াম DDoS মিটিগেশন সার্ভিসগুলো (যেমন: AWS Shield Advanced) বেশ ব্যয়বহুল, যা ছোট বা মাঝারি কোম্পানিগুলোর জন্য মেইনটেইন করা কঠিন।

  • স্কেলেবিলিটি (Scalability): টেরাবাইট (Tbps) স্কেলের অ্যাটাক আসলে তা নিজস্ব অন-প্রেমিসেস (On-premises) হার্ডওয়্যার দিয়ে সামলানো প্রায় অসম্ভব। এর জন্য থার্ড-পার্টি ইনফ্রাস্ট্রাকচারের ওপর নির্ভর করতে হয়।