পাঠ ৫৮ · ৬০-এর মধ্যে · মডিউল ১২
Home / Courses / Cybersecurity & Ethical Hacking / রেড টিম vs ব্লু টিম

রেড টিম বনাম ব্লু টিম এক্সারসাইজ

Red team vs blue team exercise
৯ মিনিট পড়া উচ্চ · Advanced Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • রেড টিম, ব্লু টিম ও পার্পল টিমের সংজ্ঞা এবং প্রতিটির ভূমিকা
  • কেন প্রতিটি রেড টিম এক্সারসাইজ একটি লিখিত অনুমোদন ও RoE দিয়ে শুরু হতেই হবে (L01, L02)
  • MITRE ATT&CK টেকনিক আইডি কীভাবে আক্রমণ ও ডিটেকশন উভয়ের জন্য একটি সাধারণ ভাষা হিসেবে কাজ করে
  • একটি ডিটেকশন গ্যাপ অ্যানালাইসিস রিপোর্ট কীভাবে তৈরি ও পাঠ করতে হয়

১ · রেড টিম বনাম ব্লু টিম বনাম পার্পল টিম

রেড টিমRed Teamএকটি অনুমোদিত দল যারা real-world আক্রমণকারীর কৌশল, কৌশলগত পদ্ধতি ও প্রক্রিয়া (TTPs) সিমুলেট করে, প্রায়ই স্টেলথিভাবে, প্রতিষ্ঠানের প্রতিরক্ষা ও ডিটেকশন ক্ষমতা পরীক্ষা করার জন্য। সাধারণ পেনিট্রেশন টেস্টের চেয়ে এক ধাপ এগিয়ে — এটি শুধু "কোন দুর্বলতা আছে" খুঁজে বের করে না, বরং "প্রতিষ্ঠান কি একটি real আক্রমণ ধরতে পারবে" তা পরীক্ষা করে। ঠিক এই কারণেই রেড টিম প্রায়ই স্টেলথিভাবে কাজ করে — ব্লু টিমকে আগে থেকে না জানিয়ে (যদিও ম্যানেজমেন্ট স্তরে RoE-এর মাধ্যমে সবসময় লিখিত অনুমতি থাকে, L01/L02-এর মূলনীতি অনুযায়ী)।

রেড টিম (আক্রমণ)
আক্রমণকারীর ভূমিকায় থেকে, RoE-এর মধ্যে থেকে, real আক্রমণ কৌশল সিমুলেট করে।
ব্লু টিম (প্রতিরক্ষা)
রিয়েল-টাইমে মনিটরিং, ডিটেকশন ও রেসপন্স করে — M10-এর SIEM ও IR লাইফসাইকেল ব্যবহার করে।
পার্পল টিম (সহযোগিতা)
রেড ও ব্লু একসাথে, খোলাখুলি কাজ করে — লক্ষ্য "কে জিতল" নয়, বরং সর্বোচ্চ শেখা ও ডিটেকশন উন্নত করা।

২ · MITRE ATT&CK — আক্রমণ ও ডিটেকশনের সাধারণ ভাষা

L04-এ আমরা MITRE ATT&CKMITRE ATT&CKreal-world আক্রমণকারী কৌশল (Tactics, "কেন") ও প্রযুক্তি (Techniques, "কীভাবে")-এর একটি সর্বজনস্বীকৃত নলেজ বেস — প্রতিটি টেকনিকের একটি ইউনিক আইডি থাকে (যেমন T1190)। পরিচয় করিয়েছিলাম। রেড টিম এক্সারসাইজে এটি বিশেষভাবে গুরুত্বপূর্ণ — রেড টিমের প্রতিটি অ্যাকশন একটি নির্দিষ্ট ATT&CK টেকনিক আইডি দিয়ে ট্যাগ করা হয়, এবং ব্লু টিমের প্রতিটি ডিটেকশনও সেই একই আইডি রেফারেন্স করে। এতে দুই দলের কাজ সরাসরি তুলনাযোগ্য হয়ে যায় — "ব্লু টিম কি T1078 (Valid Accounts) ব্যবহার করে প্রবেশ ডিটেক্ট করতে পেরেছিল?" এমন প্রশ্নের সুনির্দিষ্ট উত্তর পাওয়া যায়।

৩ · গ্যাপ অ্যানালাইসিস — এক্সারসাইজের আসল ডেলিভারেবল

এক্সারসাইজ শেষে একটি যৌথ ডিব্রিফ হয় যেখানে রেড টিমের প্রতিটি অ্যাকশনকে ব্লু টিমের ডিটেকশনের সাথে মেলানো হয়। যেসব অ্যাকশন ডিটেক্ট হয়নি সেগুলোই আসল মূল্যবান তথ্য — এগুলো নির্দিষ্ট করে দেখায় ঠিক কোথায় মনিটরিং/অ্যালার্টিং-এ ফাঁক আছে, যা পরবর্তীতে নতুন detection rule বা SIEM correlation বানানোর ভিত্তি হয় (M10-এর L48 SIEM লজিকের সরাসরি প্র্যাকটিক্যাল প্রয়োগ)।

"কে জিতল" ভুল প্রশ্ন

একটি সফল পার্পল-টিম-স্টাইল ডিব্রিফের লক্ষ্য প্রতিযোগিতা নয়, উন্নতি। যদি ব্লু টিম ৫টির মধ্যে ২টি টেকনিক মিস করে, সেটি "ব্লু টিম হেরেছে" নয় — এটি একটি নির্দিষ্ট, অ্যাকশনেবল তালিকা যা দিয়ে পরবর্তী স্প্রিন্টে নতুন detection rule তৈরি করা যায়। এই এক্সারসাইজের সাফল্য মাপা হয় গ্যাপ কতটা কমল তা দিয়ে, একবারের স্কোর দিয়ে নয়।

৪ · কোড দিয়ে — একটি ডিটেকশন গ্যাপ অ্যানালাইসিস

নিচে একটি সরলীকৃত এক্সারসাইজ সিমুলেশন — রেড টিমের কয়েকটি ATT&CK-ট্যাগড অ্যাকশন এবং ব্লু টিম যা যা ডিটেক্ট করেছে তার একটি সেট। gap_analysis() ফাংশনটি দুটি তুলনা করে ঠিক কোন অ্যাকশনগুলো ডিটেকশন থেকে বাদ পড়েছে তা রিপোর্ট করে।

Python
# MITRE ATT&CK-স্টাইল টেকনিক আইডিসহ রেড টিমের সিমুলেটেড অ্যাকশন
red_team_actions = [
    {"technique_id": "T1595", "name": "Active Scanning", "phase": "Reconnaissance"},
    {"technique_id": "T1190", "name": "Exploit Public-Facing Application", "phase": "Initial Access"},
    {"technique_id": "T1078", "name": "Valid Accounts", "phase": "Initial Access"},
    {"technique_id": "T1053", "name": "Scheduled Task/Job", "phase": "Persistence"},
    {"technique_id": "T1041", "name": "Exfiltration Over C2 Channel", "phase": "Exfiltration"},
]

# ব্লু টিম যেসব টেকনিক আসলে ডিটেক্ট করেছে (SIEM/লগ অ্যালার্ট থেকে)
blue_team_detections = {"T1595", "T1078", "T1041"}

def gap_analysis(actions, detections):
    detected = []
    missed = []
    for action in actions:
        if action["technique_id"] in detections:
            detected.append(action)
        else:
            missed.append(action)
    return detected, missed

detected, missed = gap_analysis(red_team_actions, blue_team_detections)

print("=== ডিটেকশন গ্যাপ অ্যানালাইসিস রিপোর্ট ===")
print(f"মোট রেড টিম অ্যাকশন: {len(red_team_actions)}")
print(f"ব্লু টিম ডিটেক্ট করেছে:  {len(detected)}")
print()

print("ডিটেক্টেড:")
for a in detected:
    print(f"  [OK]  {a['technique_id']} · {a['name']} ({a['phase']})")

print()
print("মিসড (ডিটেকশন গ্যাপ):")
for a in missed:
    print(f"  [GAP] {a['technique_id']} · {a['name']} ({a['phase']})")

    
লক্ষ্য করুন — T1190 (Exploit Public-Facing Application) ও T1053 (Scheduled Task/Job) মিসড তালিকায় আছে। এর মানে এই দুটি টেকনিকের জন্য প্রতিষ্ঠানের কোনো অ্যালার্ট/লগ-করিলেশন রুল নেই — এটিই পরবর্তী স্প্রিন্টে সবচেয়ে অগ্রাধিকারপূর্ণ ডিটেকশন-ইঞ্জিনিয়ারিং কাজ হওয়া উচিত।
মূল কথা · Key takeaway

রেড টিম বনাম ব্লু টিম এক্সারসাইজ একটি প্রতিযোগিতা নয়, একটি পরিমাপযোগ্য প্রতিরক্ষা-উন্নয়ন চক্র। রেড টিমের কাজ শুধু "ভেতরে ঢোকা" নয় — এটি নির্দিষ্ট, ATT&CK-ম্যাপড গ্যাপ চিহ্নিত করে ব্লু টিমকে ঠিক কোথায় বিনিয়োগ করতে হবে তা বলে দেওয়া।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ রেড টিম প্রায়ই ব্লু টিমকে আগে থেকে না জানিয়ে কাজ শুরু করে — এটি কি L01-এর "অনুমতি ছাড়া অ্যাক্সেস অপরাধ" নীতির বিরোধী?

না — মূল পার্থক্য হলো কে অনুমতি দিয়েছে। ব্লু টিম না জানলেও, প্রতিষ্ঠানের ম্যানেজমেন্ট/সিস্টেম মালিক একটি লিখিত RoE-এর মাধ্যমে পুরো এক্সারসাইজ অনুমোদন করেছে (L01, L02)। "ব্লু টিম না জানা" শুধু বাস্তব আক্রমণকারীর আচরণ যতটা সম্ভব বাস্তবসম্মতভাবে সিমুলেট করার কৌশল — কিন্তু প্রতিষ্ঠান স্তরে অনুমোদন সবসময় বিদ্যমান থাকে।

প্র ০২ পার্পল টিমিং (openly collaborative) কোন পরিস্থিতিতে ঐতিহ্যবাহী গোপন রেড-বনাম-ব্লু এক্সারসাইজের চেয়ে ভালো হতে পারে?

যখন প্রতিষ্ঠানের ব্লু টিম এখনও পরিপক্ব নয় এবং দ্রুত detection-engineering দক্ষতা তৈরি করতে চায়, তখন খোলাখুলি পার্পল টিমিং দ্রুততর শেখা দেয় — রেড টিম সরাসরি দেখায় "আমি এখন এই টেকনিক ব্যবহার করছি," এবং ব্লু টিম তাৎক্ষণিকভাবে যাচাই করতে পারে তাদের টুলিং সেটি ধরছে কি না, প্রতিটি রাউন্ডের ফলাফলের জন্য সপ্তাহ অপেক্ষা না করেই।

প্র ০৩ উপরের কোড উদাহরণে T1078 (Valid Accounts) ডিটেক্ট হয়েছে কিন্তু T1190 (Exploit Public-Facing Application) হয়নি — বাস্তবে এমনটা কেন ঘটতে পারে?

T1078-এর মতো টেকনিক প্রায়ই লগ-করিলেশনে ধরা সহজ (যেমন অস্বাভাবিক লোকেশন থেকে সফল লগইন, L48-এর ব্রুট-ফোর্স ডিটেকশন প্যাটার্নের মতো), যেখানে T1190 (একটি পাবলিক-ফেসিং অ্যাপ্লিকেশনের দুর্বলতা এক্সপ্লয়েট) ডিটেক্ট করতে অ্যাপ্লিকেশন-লেয়ার লগিং/WAF অ্যালার্ট প্রয়োজন হয় — যদি সেই নির্দিষ্ট মনিটরিং কনফিগার করা না থাকে (L29-এর লগিং-ফেইলিওর প্যাটার্ন), টেকনিকটি সম্পূর্ণ অদৃশ্য থেকে যায়।

অনুশীলন

  1. পরীক্ষা করুন: উপরের কোড সেলে blue_team_detections সেটে "T1190" যোগ করুন এবং পুনরায় চালিয়ে দেখুন গ্যাপ রিপোর্ট কীভাবে বদলায়।

    T1190 এখন "ডিটেক্টেড" তালিকায় চলে যাবে, এবং "মিসড" তালিকায় শুধু T1053 (Scheduled Task/Job) থাকবে। এটি দেখায় কীভাবে একটি একক নতুন detection rule যোগ করলে সরাসরি গ্যাপ অ্যানালাইসিসের ফলাফল উন্নত হয় — এটিই এক্সারসাইজের কার্যকারিতা পরিমাপ করার উপায়।

  2. চিন্তা করুন: যদি ব্লু টিম এমন একটি টেকনিক "ডিটেক্ট" করে যেটি রেড টিমের অ্যাকশন লিস্টেই ছিল না, তার মানে কী হতে পারে?

    এর মানে হতে পারে (ক) ব্লু টিমের অ্যালার্ট একটি false positive (আসলে কোনো আক্রমণ ঘটেইনি), অথবা (খ) আরও গুরুত্বপূর্ণভাবে — একটি সম্পূর্ণ ভিন্ন, real (non-simulated) কার্যকলাপ একই সময়ে ঘটছিল, যা এক্সারসাইজের বাইরে তদন্ত করা দরকার। এই কারণেই একটি ভালো এক্সারসাইজ রিপোর্টে সবসময় "unmatched detections" আলাদাভাবে তালিকাভুক্ত করা হয়, শুধু মিসড অ্যাকশন নয়।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

আগের পাঠ
CTF ওয়াকথ্রু: স্যান্ডবক্সড XSS