পাঠ ০২ · ৬০-এর মধ্যে · মডিউল ১
Home / Courses / Cybersecurity & Ethical Hacking / হ্যাকারের প্রকারভেদ

হ্যাকারের প্রকারভেদ ও পেনিট্রেশন টেস্টিং মেথডোলজি

Hacker types & penetration testing methodology
৮ মিনিট পড়া শুরু · Beginner Python কোডসহ সম্পূর্ণ বাংলায়

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

  • White hat, grey hat, black hat এবং script kiddie, hacktivist, nation-state actor, insider threat — এই বিভাগগুলোর সংজ্ঞা ও পার্থক্য
  • আক্রমণকারীর "kill chain" এর পাঁচটি ধাপ
  • একটি পেশাদার পেনিট্রেশন টেস্ট কীভাবে ছয়টি ধাপে সংগঠিত হয় — এবং কেন Reporting-ই মূল পার্থক্য
  • Black-box, white-box ও grey-box টেস্টিং-এর মধ্যে পার্থক্য এবং কখন কোনটি ব্যবহার করা হয়

১ · হ্যাকারের প্রকারভেদ — White Hat, Grey Hat, Black Hat

"হ্যাকার" শব্দটি নিজে ভালো বা খারাপ কিছু বোঝায় না — এটি শুধু বোঝায় কেউ সিস্টেম কীভাবে কাজ করে তা গভীরভাবে বোঝার এবং তার সীমাবদ্ধতা খুঁজে বের করার দক্ষতা রাখে। যেটি একজন হ্যাকারকে নৈতিকভাবে আলাদা করে, তা হলো তার অনুমতি ও উদ্দেশ্যAuthorization & IntentL01-এ শেখা মূল নীতি — কৌশল একই থাকতে পারে, কিন্তু লিখিত অনুমতি ও উদ্দেশ্যই বৈধতা নির্ধারণ করে। — L01-এ শেখা ঠিক সেই নীতি।

White Hat
লিখিত অনুমতি নিয়ে, বৈধভাবে দুর্বলতা খুঁজে বের করে রিপোর্ট করেন। পেশাদার পেনিটেস্টার ও বাগ বাউন্টি হান্টাররা এই শ্রেণিতে পড়েন।
Grey Hat
অনুমতি ছাড়াই দুর্বলতা খুঁজে বের করেন, কিন্তু ক্ষতি করার উদ্দেশ্য থাকে না — প্রায়ই পরে vendor-কে জানান। তবুও, অনুমতি ছাড়া অ্যাক্সেস আইনত অপরাধ (L01)।
Black Hat
ক্ষতি, চুরি বা আর্থিক লাভের উদ্দেশ্যে অনুমতি ছাড়া সিস্টেমে প্রবেশ করেন। এটিই সাধারণ অর্থে "সাইবার অপরাধী"।
থ্রেট অ্যাক্টরের প্রকারভেদ

হ্যাটের রঙের বাইরে, নিরাপত্তা পেশাজীবীরা আক্রমণকারীদের তাদের প্রেরণা ও সক্ষমতা অনুযায়ীও শ্রেণিবদ্ধ করেন —

  • Script Kiddie — নিজে টুল তৈরি না করে অন্যের তৈরি রেডিমেড আক্রমণ-টুল ব্যবহার করে, সাধারণত কম দক্ষ।
  • Hacktivist — রাজনৈতিক বা সামাজিক বার্তা দেওয়ার উদ্দেশ্যে আক্রমণ চালায় (যেমন ওয়েবসাইট বিকৃত করা)।
  • Nation-State Actor — সরকারি অর্থায়নে, উচ্চমাত্রার দক্ষতা ও সম্পদ নিয়ে দীর্ঘমেয়াদি গুপ্তচরবৃত্তি বা স্যাবোটাজ চালায়।
  • Insider Threat — প্রতিষ্ঠানের বর্তমান বা সাবেক কর্মী, যার বৈধ অ্যাক্সেস আছে কিন্তু তা অপব্যবহার করে — প্রায়ই সবচেয়ে বিপজ্জনক, কারণ ইতিমধ্যে ভেতরে অ্যাক্সেস আছে।

২ · আক্রমণকারীর Kill Chain

একজন malicious hacker সাধারণত একটি অনুমানযোগ্য ধারাবাহিকতা অনুসরণ করে, যাকে সংক্ষেপে kill chain বলা হয় (Lockheed Martin-এর Cyber Kill Chain ফ্রেমওয়ার্কের সরলীকৃত রূপ) —

  1. Reconnaissance — টার্গেট সম্পর্কে তথ্য জোগাড় করা (M3-এ বিস্তারিত)।
  2. Scanning — কোন সিস্টেম লাইভ, কোন পোর্ট খোলা তা শনাক্ত করা।
  3. Gaining Access — একটি দুর্বলতা কাজে লাগিয়ে প্রথম অ্যাক্সেস অর্জন করা।
  4. Maintaining Access — সিস্টেম রিবুট হলেও পুনরায় প্রবেশযোগ্যতা নিশ্চিত করা (persistence, M6-এ বিস্তারিত)।
  5. Covering Tracks — লগ মুছে ফেলা বা পরিবর্তন করে নিজের উপস্থিতির প্রমাণ লুকানো।

৩ · পেশাদার পেনিট্রেশন টেস্ট মেথডোলজি

একজন পেশাদার পেনিটেস্টার প্রায় একই টেকনিক্যাল ধাপ অনুসরণ করেন — কিন্তু দুটি গুরুত্বপূর্ণ পার্থক্য নিয়ে। প্রথমত, সবকিছু শুরু হয় L01-এ শেখা Pre-engagement (স্কোপ ও RoE) দিয়ে। দ্বিতীয়ত, শেষ হয় Covering Tracks-এর বদলে সম্পূর্ণ স্বচ্ছ Reporting দিয়ে — কারণ ক্লায়েন্টকে জানাতে হবে ঠিক কী কী দুর্বলতা পাওয়া গেছে যাতে তা ঠিক করা যায়।

Pre-engagement Scope + RoE Recon Recon Scanning Scanning Exploitation Exploitation Post-exploit Post-exploitation Reporting = কী নথিভুক্ত হয়
প্রতিটি ধাপ RoE-এর সীমার মধ্যে থেকে সম্পন্ন হয়, এবং attacker-এর Covering Tracks-এর বদলে শেষ হয় সম্পূর্ণ স্বচ্ছ Reporting দিয়ে।

৪ · Black-box, White-box ও Grey-box টেস্টিং

পরীক্ষা শুরুর আগে টেস্টারকে কতটা তথ্য দেওয়া হবে, তার উপর ভিত্তি করে পেনিট্রেশন টেস্টকে তিন ভাগে ভাগ করা হয় —

Black-box
টেস্টার কোনো ভেতরের তথ্য (সোর্স কোড, নেটওয়ার্ক ডায়াগ্রাম, ক্রেডেনশিয়াল) ছাড়াই শুরু করেন — বাস্তব বহিরাগত আক্রমণকারীর দৃষ্টিভঙ্গি অনুকরণ করে।
White-box
টেস্টারকে সোর্স কোড, আর্কিটেকচার ডকুমেন্টেশন ও প্রায়ই ক্রেডেনশিয়াল দেওয়া হয় — গভীরতর, দ্রুততর কভারেজ সম্ভব হয় কিন্তু বাস্তব আক্রমণের অনুকরণ কম।
Grey-box
আংশিক তথ্য দেওয়া হয় (যেমন একটি সাধারণ ইউজার অ্যাকাউন্ট, তবে সোর্স কোড নয়) — বাস্তবতা ও গভীরতার মধ্যে একটি ব্যবহারিক ভারসাম্য।

৫ · কোড সেল — মেথডোলজি ধাপগুলো ক্রমানুসারে দেখা

Python-এর dict ৩.৭ ভার্সন থেকে insertion order মনে রাখে — তাই একটি পেশাদার পেনিটেস্ট মেথডোলজিকে dict হিসেবে সংরক্ষণ করে ঠিক সঠিক ক্রমে iterate করা যায়। নিচের কোডটি সম্পূর্ণ নিরাপদ — এটি শুধু একটি in-memory dict-এর উপর কাজ করছে, কোনো বাস্তব সিস্টেমকে স্ক্যান বা টেস্ট করছে না।

Python
pentest_phases = {
    "Pre-engagement": "স্কোপ নির্ধারণ ও Rules of Engagement (RoE) স্বাক্ষর",
    "Reconnaissance": "পাবলিক সোর্স বা সরাসরি ইন্টারঅ্যাকশনের মাধ্যমে তথ্য সংগ্রহ",
    "Scanning": "লাইভ হোস্ট, খোলা পোর্ট ও চলমান সার্ভিস শনাক্তকরণ",
    "Exploitation": "শনাক্ত হওয়া দুর্বলতা কাজে লাগিয়ে অনুমোদিত অ্যাক্সেস অর্জনের চেষ্টা",
    "Post-exploitation": "অর্জিত অ্যাক্সেসের বাস্তব প্রভাব প্রদর্শন (স্কোপের মধ্যে থেকে)",
    "Reporting": "findings, ঝুঁকির মাত্রা ও প্রতিকারের সুপারিশসহ লিখিত রিপোর্ট প্রদান",
}

print("পেশাদার পেনিট্রেশন টেস্ট মেথডোলজি:\n")
for step_no, (phase, description) in enumerate(pentest_phases.items(), start=1):
    print(f"{step_no}. {phase} — {description}")

    
লক্ষ্য করুন — dict-টিতে "Covering Tracks" নেই, বরং "Reporting" আছে। এই একটি পরিবর্তনই একজন পেশাদার পেনিটেস্টারকে একজন অপরাধী আক্রমণকারী থেকে আলাদা করে দেয়, যদিও প্রথম চারটি ধাপ প্রায় অভিন্ন।
মূল কথা · Key takeaway

"হ্যাকার" মানেই আক্রমণকারী নয় — শ্রেণিবিভাগ নির্ভর করে অনুমতি ও উদ্দেশ্যের উপর। একইভাবে, একটি পেনিট্রেশন টেস্টের টেকনিক্যাল ধাপগুলো একজন আক্রমণকারীর kill chain-এর সাথে প্রায় হুবহু মিলে যায় — পার্থক্যটা ধাপে নয়, বরং শুরুতে (Pre-engagement) ও শেষে (Reporting) কী থাকে তাতে।

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

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

প্র ০১ একজন Grey Hat হ্যাকার যদি কোনো ক্ষতি না করেই একটি দুর্বলতা খুঁজে পরে vendor-কে জানিয়ে দেন, তাহলেও কেন তার কাজ আইনত ঝুঁকিপূর্ণ (L01-এর সাথে সংযোগ করুন)?

L01-এ শেখা মূল নীতি অনুযায়ী, বেশিরভাগ আইন অননুমোদিত অ্যাক্সেসকেই অপরাধ হিসেবে সংজ্ঞায়িত করে — ক্ষতি হয়েছে কি না তার উপর নির্ভর করে না। Grey Hat হ্যাকারের কোনো লিখিত অনুমতি নেই, তাই তার সদুদ্দেশ্য থাকা সত্ত্বেও তিনি টেকনিক্যালি একই আইন লঙ্ঘন করছেন যা একজন Black Hat হ্যাকার লঙ্ঘন করে। "ভালো উদ্দেশ্য" আইনি সুরক্ষা দেয় না।

প্র ০২ কেন Reporting একটি পেশাদার পেনিট্রেশন টেস্টের একটি বাধ্যতামূলক ধাপ, অথচ একজন আক্রমণকারী ঠিক তার বিপরীত কাজ (Covering Tracks) করে?

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

প্র ০৩ একটি ব্যাংকিং অ্যাপ্লিকেশনের জন্য black-box টেস্টের বদলে white-box টেস্ট কেন বেশি কার্যকর দুর্বলতা খুঁজে বের করতে পারে?

White-box টেস্টে টেস্টার সোর্স কোড ও আর্কিটেকচার দেখতে পান, তাই তিনি এমন লজিক-ভিত্তিক দুর্বলতাও খুঁজে পেতে পারেন যা বাইরে থেকে দৃশ্যমান নয় (যেমন একটি নির্দিষ্ট ফাংশনে অ্যাক্সেস-চেক ভুলবশত বাদ পড়ে গেছে)। Black-box টেস্টে টেস্টারকে সেই একই দুর্বলতা খুঁজে পেতে অনেক বেশি সময় ও অনুমান লাগতে পারে, অথবা একেবারেই মিস হয়ে যেতে পারে।

অনুশীলন

  1. চিন্তা করুন: একজন সাবেক কর্মী, যিনি চাকরি ছাড়ার পরেও তার পুরনো VPN ক্রেডেনশিয়াল ব্যবহার করে কোম্পানির সার্ভারে প্রবেশ করে ডেটা কপি করেন — তাকে কোন থ্রেট অ্যাক্টর ক্যাটাগরিতে ফেলবেন এবং কেন?

    এটি একটি ক্লাসিক Insider Threat উদাহরণ — যদিও তিনি এখন আর কর্মী নন, তার কাছে এখনো বৈধ (কিন্তু বাতিল হওয়া উচিত ছিল) ক্রেডেনশিয়াল আছে। এই কারণেই বাস্তব প্রতিষ্ঠানগুলোতে অফবোর্ডিং প্রক্রিয়ায় অ্যাক্সেস তাৎক্ষণিকভাবে বাতিল করা একটি গুরুত্বপূর্ণ নিরাপত্তা নিয়ন্ত্রণ।

  2. পরীক্ষা করুন: উপরের কোড সেলে pentest_phases dict-এ শেষে একটি নতুন এন্ট্রি "Remediation Verification": "প্যাচ প্রয়োগের পর দুর্বলতা সত্যিই বন্ধ হয়েছে কি না পুনরায় পরীক্ষা" যোগ করুন এবং Run চেপে দেখুন আউটপুটে এটি কীভাবে সাত নম্বর ধাপ হিসেবে যুক্ত হয়।

    যেহেতু Python dict সংযোজনের ক্রম মনে রাখে, নতুন এন্ট্রিটি স্বয়ংক্রিয়ভাবে তালিকার শেষে "৭." নম্বর হিসেবে যুক্ত হবে — কোনো ম্যানুয়াল ইনডেক্সিং ছাড়াই। এটিই দেখায় বাস্তব জীবনে ভালনারেবিলিটি ম্যানেজমেন্ট (L15-এ বিস্তারিত) কেন একটি চক্র, শুধু একটি লিনিয়ার প্রক্রিয়া নয়।

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

পাঠ ০১
সাইবারসিকিউরিটি ও এথিক্যাল হ্যাকিং পরিচিতি