এই পর্বে যা শিখবেন
- CIA আর AAA-র প্রতিটি অংশ, নেটওয়ার্কের বাস্তব উদাহরণসহ
- asset, vulnerability, threat, exploit আর risk আলাদা করা, আর একটি ছোট অফিসের ঝুঁকির হিসাব হাতে ও কোডে
- আক্রমণকারীর মডেল আর স্তরভিত্তিক attack surface — আগের পর্বগুলোর আক্রমণ আর প্রতিরক্ষা এক টেবিলে
- Saltzer-Schroeder-এর নকশা-নীতি, zone আর DMZ, perimeter বনাম zero trust, আর default deny নীতির একটি simulator
- পাসওয়ার্ডের entropy, MFA আর passkey, incident response-এর ধাপ, আর আইন ও নৈতিকতার সীমা
১ · ইন্টারনেট কেন নিরাপত্তা ছাড়াই জন্মাল
পর্ব ১ থেকে ৪৫ পর্যন্ত আমরা দেখেছি packet কীভাবে এক যন্ত্র থেকে আরেক যন্ত্রে যায়। প্রায় প্রতিটি পর্বের শেষ দিকে একটি অস্বস্তিকর অংশ ছিল — “এখানে বিশ্বাসের দুর্বলতা”। Switch যে কোনো উৎস-MAC বিশ্বাস করে, ARP-এর যে কোনো উত্তর বিশ্বাস করা হয়, IP-র উৎস-ঠিকানা কেউ যাচাই করে না, BGP-তে যে কেউ যে কোনো prefix ঘোষণা করতে পারত, SMTP-তে From: যা খুশি লেখা যায়। এগুলো দুর্ঘটনা নয় — এগুলো এক ঐতিহাসিক পছন্দের ফল।
ভাবুন একটি ছোট গ্রাম, যেখানে সবাই সবাইকে চেনে — দরজায় তালা নেই, চিঠির খাম কেউ খোলে না। সেই গ্রাম রাতারাতি ঢাকার মতো কোটি মানুষের শহর হয়ে গেল, কিন্তু দরজা আর নিয়ম আগের মতোই। তালা আর পাহারাদার পরে বসাতে হবে, এমনভাবে যাতে পুরোনো বাড়ি ভেঙে না পড়ে। ইন্টারনেটের নিরাপত্তার গল্প ঠিক এটাই।
১৯৬৯ সালের ARPANET আর ১৯৮৩ সালে TCP/IP-তে বদলে যাওয়া ইন্টারনেট ব্যবহার করতেন মূলত বিশ্ববিদ্যালয় আর গবেষণাগারের পরিচিত মানুষ। ১৯৮৮ সালে David Clark ইন্টারনেট-নকশার মূল লক্ষ্যগুলো লিখে প্রকাশ করেন — কিছু অংশ নষ্ট হলেও চলা, নানা ধরনের নেটওয়ার্ক জোড়া, বিকেন্দ্রিত পরিচালনা, কম খরচ; সেই তালিকায় “আক্রমণকারী থেকে সুরক্ষা” আলাদা লক্ষ্য ছিল না বলে সাধারণত উল্লেখ করা হয়। End-to-end নীতি (পর্ব ৩) অনুযায়ী নিরাপত্তাও প্রান্তের দায়িত্ব ধরা হয়েছিল, যা তখন খুব কম প্রান্তই নিত।
১৯৮৮ — জেগে ওঠার ঘণ্টা। ১৯৮৮ সালের নভেম্বরের শুরুতে Cornell বিশ্ববিদ্যালয়ের স্নাতকোত্তর ছাত্র Robert Tappan Morris-এর লেখা একটি worm — নিজে নিজে এক যন্ত্র থেকে আরেক যন্ত্রে ছড়ায় এমন প্রোগ্রাম — ইন্টারনেটে ছাড়া হয়। এটি কাজে লাগিয়েছিল তখনকার পরিচিত দুর্বলতা: sendmail-এর একটি debug সুবিধা, finger সেবার একটি buffer overflow, আর দুর্বল পাসওয়ার্ড ও যন্ত্রে-যন্ত্রে বিশ্বাসের (rsh) ব্যবস্থা। নকশার একটি ভুলে এটি একই যন্ত্রে বারবার ঢুকে যন্ত্রগুলোকে অচল করে দেয়। প্রচলিত অনুমানে তখনকার ইন্টারনেটের কয়েক হাজার যন্ত্র আক্রান্ত হয়েছিল (সঠিক সংখ্যা নিয়ে মতভেদ আছে)। এর পরপরই Carnegie Mellon বিশ্ববিদ্যালয়ে CERT Coordination Center গঠিত হয়, আর Morris পরে যুক্তরাষ্ট্রের কম্পিউটার অপরাধ আইনে দণ্ডিত হন।
এরপরের তিন দশক কেটেছে “পরে জোড়া” নিরাপত্তায়: TLS (পর্ব ৪৮), IPsec আর VPN (পর্ব ৪৯), DNSSEC (পর্ব ৩৫), RPKI (পর্ব ২৫), SPF-DKIM-DMARC (পর্ব ৩৯), WPA3 (পর্ব ১৪)। প্রতিটি পুরোনো ব্যবস্থার সাথে মিল রেখে চলতে হয়, তাই প্রতিটির গ্রহণ ধীর আর অসম্পূর্ণ। এই মডিউলে আমরা সেই নিরাপত্তার ভিত্তি থেকে শুরু করব:
পর্ব ৪৭ · Cryptography-র ভিত্তি
symmetric আর public key encryption, hash আর digital signature — নিরাপত্তার গাণিতিক ইট।
cryptography-basics.htmlপর্ব ৪৮ · TLS আর HTTPS
handshake, certificate আর বিশ্বাসের শিকল — ওয়েবের তালা কীভাবে লাগে।
tls-https.htmlপর্ব ৪৯ · Firewall আর VPN
nftables-এ নিয়ম লেখা, IPsec আর WireGuard — এই পর্বের নীতির বাস্তব রূপ।
firewalls-vpn.htmlপর্ব ৫০ · প্রচলিত আক্রমণ আর প্রতিরক্ষা
DDoS, spoofing, MITM আর IDS — আক্রমণ চেনা আর ঠেকানো।
network-attacks-defense.htmlএই মডিউলের নিয়ম: এখানে আক্রমণ ব্যাখ্যা করা হয় শুধু ধারণা হিসেবে, যাতে আপনি প্রতিরক্ষা বুঝতে পারেন। কোনো পরীক্ষা চালাবেন শুধু নিজের যন্ত্রে, নিজের ল্যাবে, বা যে সিস্টেমের মালিকের লিখিত অনুমতি আছে সেখানে। অন্যের নেটওয়ার্ক “শুধু দেখার জন্য” scan করাও অনেক দেশে আইনত অপরাধ হতে পারে — অংশ ৯ দেখুন।
২ · CIA আর AAA — নিরাপত্তা আসলে কী রক্ষা করে
“নিরাপদ” শব্দটি অস্পষ্ট। কাজের সংজ্ঞা দেয় তিনটি লক্ষ্য, যাদের একসাথে বলে CIA triad:
Confidentiality — গোপনীয়তা
তথ্য দেখবে শুধু যার দেখার অধিকার আছে। খামের ভেতরের চিঠি ডাকপিয়ন পড়তে পারবে না।
প্রতিরক্ষা: encryption, access controlIntegrity — অখণ্ডতা
তথ্য পথে বা ভান্ডারে অননুমোদিতভাবে বদলাবে না, বদলালে ধরা পড়বে।
প্রতিরক্ষা: MAC, signature, hashAvailability — প্রাপ্যতা
দরকারের সময় সেবা চালু থাকবে। bKash-এর app ঈদের আগের রাতে বন্ধ থাকলে তথ্য নিরাপদ, কিন্তু সেবা ব্যর্থ।
প্রতিরক্ষা: redundancy, rate limiting, backupConfidentiality ভাঙে যখন কেউ খোলা Wi-Fi-তে আপনার traffic পড়ে ফেলে (eavesdropping). Integrity ভাঙে যখন ARP spoofing করে কেউ মাঝখানে বসে packet বদলায় (পর্ব ১৮), বা DNS cache-এ ভুল ঠিকানা ঢোকায় (পর্ব ৩৫)। Availability ভাঙে DDoS-এ, SYN flood-এ (পর্ব ২৯), বা একটি fiber কাটা পড়লে — নিরাপত্তা দুর্ঘটনার বিরুদ্ধেও।
AAA — কে, কী পারবে, কী করেছে
তিনটি লক্ষ্য রক্ষা করতে নেটওয়ার্ককে আগে জানতে হয় কার সাথে কথা হচ্ছে। এর জন্য আরেকটি ত্রয়ী — AAA:
| ধারণা | প্রশ্ন | নেটওয়ার্কের উদাহরণ |
|---|---|---|
| Authentication | আপনি কি সত্যিই সে, যে দাবি করছেন? | অফিসের Wi-Fi-তে 802.1X দিয়ে নিজের অ্যাকাউন্টে যাচাই; HTTPS-এ সার্ভারের certificate যাচাই; SSH key |
| Authorization | যাচাই হওয়ার পরে আপনি কী করতে পারবেন? | হিসাব বিভাগের VLAN থেকে শুধু accounting সার্ভারে যাওয়া যাবে; সাধারণ কর্মী router-এর config দেখতে পারবেন না |
| Accounting / accountability | কে কখন কী করেছেন, তার প্রমাণ কোথায়? | RADIUS accounting-এ কে কখন কোন port-এ যুক্ত হলেন; firewall আর VPN-এর log |
| Non-repudiation | পরে কি অস্বীকার করা যাবে “আমি পাঠাইনি”? | digital signature করা লেনদেন বা ইমেইল (DKIM শুধু ডোমেইন প্রমাণ করে, ব্যক্তি নয়) |
অফিসের রিসেপশনে পরিচয়পত্র দেখানো authentication; কোন তলার কোন ঘরে ঢুকতে দেওয়া হবে, সেটি authorization; খাতায় ঢোকা-বেরোনোর সময় লেখা accounting. অনেক ত্রুটির মূলে প্রথম দুটির গোলমাল — “লগইন করেছেন, তাই সব দেখতে পারবেন”। AAA-র নেটওয়ার্ক রূপ আগেই দেখেছেন: 802.1X আর RADIUS (পর্ব ১৪), HTTP-র cookie আর session (পর্ব ৩৬)।
৩ · নিরাপত্তার শব্দভান্ডার আর ঝুঁকির হিসাব
কয়েকটি শব্দ খুব নির্দিষ্ট অর্থে ব্যবহার হয়; একটি বাড়ির উদাহরণে দেখুন:
| শব্দ | মানে | বাড়ির উদাহরণ | নেটওয়ার্কের উদাহরণ |
|---|---|---|---|
| Asset | যা রক্ষা করার মতো মূল্যবান | আলমারির গয়না | গ্রাহকের database, অফিসের ইন্টারনেট সংযোগ |
| Vulnerability | দুর্বলতা — নকশা, কোড বা কনফিগারেশনের ফাঁক | পেছনের জানালার ভাঙা ছিটকিনি | patch না করা সার্ভার, ডিফল্ট পাসওয়ার্ডের router |
| Threat | সম্ভাব্য ক্ষতিকর ঘটনা | চুরি | চুরি হওয়া পাসওয়ার্ডে লগইন, ransomware |
| Threat actor | যে বা যারা ক্ষতি ঘটাতে পারে | এলাকার চোর | অপরাধী দল, অসন্তুষ্ট কর্মী, এমনকি ভুল করা প্রশাসক |
| Attack | দুর্বলতা কাজে লাগানোর আসল চেষ্টা | রাতে জানালা দিয়ে ঢোকা | phishing ইমেইল পাঠানো |
| Exploit | নির্দিষ্ট দুর্বলতা কাজে লাগানোর উপায় বা কোড | ছিটকিনি খোলার কৌশল | একটি নির্দিষ্ট বাগ ব্যবহার করা প্রোগ্রাম |
| Risk | সম্ভাবনা × ক্ষতির মাপ | “এ পাড়ায় চুরি প্রায়ই হয়, আর গয়নার দাম বেশি” | নিচের হিসাব দেখুন |
দুর্বলতা আছে কিন্তু হুমকি নেই — ঝুঁকি কম (বন্ধ ঘরের ভেতরের পুরোনো প্রিন্টার)। হুমকি আছে কিন্তু দুর্বলতা নেই — তাও ঝুঁকি কম। ঝুঁকি হয় যখন একটি মূল্যবান সম্পদ, একটি দুর্বলতা আর একটি সক্ষম হুমকি একসাথে মেলে।
Risk = likelihood × impact — একটি ঢাকার অফিসের হিসাব
সবচেয়ে প্রচলিত সহজ পদ্ধতি: প্রতিটি ঝুঁকির likelihood (ঘটার সম্ভাবনা) আর impact (ঘটলে ক্ষতি) — দুটোকেই ১ থেকে ৫-এর মাপে নম্বর দেওয়া, তারপর গুণ। ফল ১ থেকে ২৫. এই পর্বে আমরা ধরব ১৫ বা তার বেশি HIGH, ৮ থেকে ১৪ MEDIUM, ৭ বা কম LOW — এই সীমা প্রতিষ্ঠান নিজের মতো ঠিক করে, কোনো সার্বজনীন মান নেই। নিচের risk matrix-এ প্রতিটি ঘর হলো likelihood × impact:
| impact ↓ / likelihood → | ১ বিরল | ২ | ৩ মাঝে মাঝে | ৪ | ৫ প্রায় নিশ্চিত |
|---|---|---|---|---|---|
| ৫ ব্যবসা থেমে যায় | ৫ LOW | ১০ MED | ১৫ HIGH ◆ | ২০ HIGH ● | ২৫ HIGH |
| ৪ বড় ক্ষতি | ৪ LOW | ৮ MED | ১২ MED | ১৬ HIGH | ২০ HIGH |
| ৩ মাঝারি | ৩ LOW | ৬ LOW | ৯ MED | ১২ MED | ১৫ HIGH |
| ২ সামান্য | ২ LOW | ৪ LOW | ৬ LOW | ৮ MED | ১০ MED |
| ১ নগণ্য | ১ LOW | ২ LOW | ৩ LOW | ৪ LOW | ৫ LOW |
হাতে একটি হিসাব: মতিঝিলের ২০ জনের একটি হিসাবরক্ষণ অফিস। ● গ্রাহকের database-এ কর্মীর চুরি হওয়া পাসওয়ার্ডে ঢোকা — phishing ইমেইল প্রায় প্রতি সপ্তাহে আসে, তাই likelihood ৪; ডেটা ফাঁস হলে গ্রাহক আর সুনাম দুটোই যাবে, impact ৫; risk = ৪ × ৫ = ২০, HIGH. MFA চালু করলে চুরি হওয়া পাসওয়ার্ড একা কাজ করে না — likelihood নামে ২-এ; least privilege দিয়ে একজন কর্মী শুধু নিজের গ্রাহকদের দেখেন, তাই impact নামে ৪-এ। বাকি ঝুঁকি (residual risk) = ২ × ৪ = ৮, MEDIUM. ঝুঁকি কখনো শূন্য হয় না; প্রশ্ন হলো বাকিটুকু প্রতিষ্ঠান মেনে নিতে রাজি কি না। ◆ ফাইল সার্ভারে ransomware: ৩ × ৫ = ১৫.
এমন তালিকাকে বলে risk register. নিচের প্রোগ্রাম ছয়টি ঝুঁকির score হিসাব করে, বড় থেকে ছোট সাজায় (সমান হলে বেশি impact আগে), আর পরিকল্পিত control-এর পরে residual risk দেখায়। “চালান” চাপুন, তারপর কোনো control-এর পরের সংখ্যা বদলে দেখুন:
// Risk register for a small Dhaka office: risk = likelihood x impact (1-5 each)
const risks = [
// asset, threat, L, I, planned control, L after, I after
["Customer database", "Stolen staff password", 4, 5, "MFA + least privilege", 2, 4],
["File server", "Ransomware via phishing", 3, 5, "3-2-1 backup + segmentation", 2, 3],
["Office Wi-Fi", "Shared WPA2 key leaks", 4, 3, "WPA3 + guest VLAN", 2, 2],
["Website", "Unpatched CMS plugin", 3, 4, "Patch within 7 days + WAF", 2, 3],
["Accounting PC", "USB malware", 2, 4, "Disable autorun + EDR", 1, 4],
["Internet link", "Fibre cut / ISP outage", 2, 3, "Second ISP (backup link)", 1, 3],
];
const level = s => s >= 15 ? "HIGH" : s >= 8 ? "MEDIUM" : "LOW";
const rows = risks.map(([asset, threat, L, I, ctl, L2, I2]) =>
({ asset, threat, L, I, score: L * I, ctl, res: L2 * I2 }));
rows.sort((a, b) => b.score - a.score || b.I - a.I); // tie: bigger impact first
console.log("rank asset threat LxI score level -> residual");
rows.forEach((r, i) => console.log(
`${String(i + 1).padStart(3)} ${r.asset.padEnd(18)} ${r.threat.padEnd(26)} ${r.L}x${r.I} ` +
`${String(r.score).padStart(4)} ${level(r.score).padEnd(7)} -> ${String(r.res).padStart(2)} ${level(r.res)}`));
const before = rows.reduce((s, r) => s + r.score, 0), after = rows.reduce((s, r) => s + r.res, 0);
console.log(`\ntotal risk score: ${before} -> ${after} (${Math.round(100 * (before - after) / before)}% lower)`);
const order = [...rows].sort((a, b) => (b.score - b.res) - (a.score - a.res));
console.log("biggest reduction first: " + order.slice(0, 3).map(r => `${r.asset} (-${r.score - r.res})`).join(", "));
const left = rows.filter(r => r.res >= 8).map(r => r.asset);
console.log("still MEDIUM or above after controls: " + (left.length ? left.join(", ") : "none"));আসল রানের আউটপুট:
rank asset threat LxI score level -> residual
1 Customer database Stolen staff password 4x5 20 HIGH -> 8 MEDIUM
2 File server Ransomware via phishing 3x5 15 HIGH -> 6 LOW
3 Website Unpatched CMS plugin 3x4 12 MEDIUM -> 6 LOW
4 Office Wi-Fi Shared WPA2 key leaks 4x3 12 MEDIUM -> 4 LOW
5 Accounting PC USB malware 2x4 8 MEDIUM -> 4 LOW
6 Internet link Fibre cut / ISP outage 2x3 6 LOW -> 3 LOW
total risk score: 73 -> 31 (58% lower)
biggest reduction first: Customer database (-12), File server (-9), Office Wi-Fi (-8)
still MEDIUM or above after controls: Customer database
শীর্ষে গ্রাহক database (৪ × ৫ = ২০) আর ফাইল সার্ভার (৩ × ৫ = ১৫) — দুটোই HIGH, আর দুটোরই শুরু মানুষকে ঠকিয়ে (চুরি হওয়া পাসওয়ার্ড, phishing). Website আর Wi-Fi দুটোরই score ১২; ক্রমে Website আগে, কারণ তার impact ৪ বনাম ৩. মোট score ৭৩ থেকে ৩১-এ নেমেছে — (৭৩ − ৩১) ÷ ৭৩ ≈ ৫৭.৫%, গোল করে ৫৮%.
শিক্ষা দুটি। এক, সবচেয়ে বেশি কমেছে সেখানেই, যেখানে ঝুঁকি সবচেয়ে বড় ছিল — তালিকা থাকলে বাজেট আপনা থেকেই সঠিক জায়গায় যায়। দুই, MFA-র পরেও database-এর residual risk ৮, MEDIUM — একটি control যথেষ্ট নয়। আর ইন্টারনেট link-এর ঝুঁকি আক্রমণ নয়, দুর্ঘটনা — availability-র ঝুঁকিও একই তালিকায় থাকে।
CVE আর CVSS — দুর্বলতার নাম আর মাপ
পৃথিবীজুড়ে একই দুর্বলতা নিয়ে কথা বলতে একটি সাধারণ নাম দরকার। CVE (Common Vulnerabilities and Exposures) ১৯৯৯ সাল থেকে প্রকাশ্যে জানা দুর্বলতাকে একটি পরিচয় দেয়, যেমন CVE-2014-0160 (OpenSSL-এর Heartbleed) বা CVE-2021-44228 (Log4j-এর Log4Shell). তালিকাটি পরিচালনা করে MITRE নামের একটি অলাভজনক প্রতিষ্ঠান। গুরুত্বের মাপ দেয় CVSS — ০ থেকে ১০-এর score, যা হিসাব হয় দুর্বলতাটি নেটওয়ার্ক থেকে কাজে লাগানো যায় কি না, লগইন বা ব্যবহারকারীর সাহায্য লাগে কি না, আর CIA-র কোনটি কতটা ভাঙে — এসব দেখে। CVSS v3.x-এ ৯.০–১০ Critical, ৭.০–৮.৯ High, ৪.০–৬.৯ Medium, ০.১–৩.৯ Low; ২০২৩ সালে v4.0 প্রকাশিত হয়েছে, আর দুটিই এখন প্রচলিত — কোন সংস্করণের score, দেখে নিন।
সাবধান: CVSS মাপে দুর্বলতার তীব্রতা, আপনার ঝুঁকি নয়। ৯.৮ score-এর একটি বাগ এমন সেবায়, যা আপনার নেটওয়ার্কে বন্ধ, ঝুঁকি প্রায় শূন্য; আবার ৬.৫-এর বাগ ইন্টারনেটমুখী সার্ভারে, যার exploit প্রকাশ্যে ঘুরছে, অনেক জরুরি। তাই patch-এর অগ্রাধিকারে দেখা হয় — সফটওয়্যারটি কোথায় আছে, বাইরে থেকে পৌঁছানো যায় কি না, আর এটি সক্রিয়ভাবে কাজে লাগানো হচ্ছে কি না।
৪ · আক্রমণকারী কে, আর কোথায় কোথায় আঘাত করতে পারে
প্রতিরক্ষা নকশার আগে লিখে নিতে হয় আপনি কার বিরুদ্ধে লড়ছেন — এটিই threat model. কয়েকটি মৌলিক ভাগ:
- নিষ্ক্রিয় বনাম সক্রিয়। Passive আক্রমণকারী শুধু শোনে — Wi-Fi-র বাতাসে বা ISP-র তারে traffic পড়ে। কিছু বদলায় না বলে তাকে ধরা কঠিন; প্রতিরক্ষা encryption. Active আক্রমণকারী packet বদলায়, জাল packet ঢোকায়, পুরোনো packet আবার পাঠায় (replay), বা মাঝখানে বসে দুই পক্ষ সেজে কথা বলে (MITM). প্রতিরক্ষা integrity check আর authentication.
- Dolev–Yao মডেল। ১৯৮৩ সালে Danny Dolev আর Andrew Yao নিরাপত্তা-protocol বিশ্লেষণের জন্য একটি কঠোর অনুমান প্রস্তাব করেন: ধরে নিন নেটওয়ার্কটাই আক্রমণকারী। সে প্রতিটি বার্তা পড়তে, আটকাতে, বদলাতে আর নিজের বার্তা ঢোকাতে পারে — শুধু encryption ভাঙতে পারে না, যদি না চাবি জানে। TLS-এর মতো protocol এই মডেল মাথায় রেখে নকশা করা হয়; খোলা Wi-Fi-তে অনুমানটি মোটেই বাড়াবাড়ি নয়।
- বাইরের বনাম ভেতরের। Insider — কর্মী, ঠিকাদার, বা যার অ্যাকাউন্ট চুরি হয়েছে — ইতিমধ্যেই firewall-এর ভেতরে। “ভেতরের সবাই বিশ্বস্ত” ধরে নেওয়া পুরোনো নকশা এই কারণেই দুর্বল (অংশ ৬)।
স্তরে স্তরে attack surface
একটি যন্ত্র বা নেটওয়ার্কে আক্রমণকারী যত জায়গা দিয়ে ঢোকার চেষ্টা করতে পারে — খোলা port, চালু সেবা, ইন্টারফেস, ব্যবহারকারী — সব মিলিয়ে attack surface. আগের পর্বগুলোর আক্রমণ আর প্রতিরক্ষা এক টেবিলে:
| স্তর | উদাহরণ আক্রমণ (ধারণা) | CIA-র কোনটি | প্রতিরক্ষা |
|---|---|---|---|
| Physical | খোলা ঘরের switch-এ অচেনা যন্ত্র লাগানো, তার কাটা | C, I, A | তালাবদ্ধ server room, অব্যবহৃত port বন্ধ, দ্বিতীয় link |
| Data link | MAC flooding (পর্ব ১২), VLAN hopping (পর্ব ১৩), ARP spoofing আর ভুয়া DHCP (পর্ব ১৮), দুর্বল Wi-Fi নিরাপত্তা (পর্ব ১৪) | C, I | port security, native VLAN বদল, DHCP snooping, DAI, WPA3, 802.1X |
| Network | ICMP-র অপব্যবহার (পর্ব ২০), IP spoofing, BGP hijack (পর্ব ২৫) | I, A | বেছে বেছে ICMP নিয়ম, ingress filtering, RPKI |
| Transport | SYN flood (পর্ব ২৯), UDP amplification (পর্ব ২৮) | A | SYN cookie, rate limiting, খোলা UDP সেবা বন্ধ |
| Application | DNS cache poisoning (পর্ব ৩৫), CSRF (পর্ব ৩৬), জাল প্রেরকের ইমেইল (পর্ব ৩৯), path traversal (পর্ব ৪৫) | C, I | DNSSEC, SameSite cookie আর CSRF token, DMARC, ইনপুট যাচাই আর defensive কোড |
| মানুষ | phishing, ফোনে প্রতারণা | C, I | সচেতনতা, MFA, রিপোর্ট করার সহজ পথ |
Attack surface কমানোর প্রথম ধাপ — জানা, কী খোলা আছে। নিজের যন্ত্রে কোন port-এ কোন প্রোগ্রাম শুনছে, Linux-এ দেখায় ss -tuln (পর্ব ৬)। নিচের স্ক্রিপ্ট এই পাতার রানার container-এ সেটি দেখে; ss না থাকলে /proc/net/tcp আর udp সরাসরি পড়ে (ঠিকানা আর port সেখানে hex-এ লেখা — স্ক্রিপ্ট সেটি বদলে নেয়)। তারপর দুটি পরীক্ষামূলক সেবা চালু করে আবার দেখে — একটি শুধু loopback-এ, একটি সব interface-এ। এটি শুধু নিজের যন্ত্র দেখা; অন্যের যন্ত্রের port খোঁজা এই পর্বের বিষয় নয়।
echo "== 1. ss =="
command -v ss >/dev/null && ss -tuln || echo " ss নেই — নিচে /proc/net/tcp আর udp থেকে পড়ছি"
list() { # TCP sockets in LISTEN (state 0A) and bound UDP sockets (state 07), IPv4
for f in tcp udp; do
[ -r /proc/net/$f ] || continue
while read -r _ local _ st _; do
{ [ $f = tcp ] && [ "$st" = 0A ]; } || { [ $f = udp ] && [ "$st" = 07 ]; } || continue
h=${local%:*}; p=$((16#${local#*:}))
echo " $f $((16#${h:6:2})).$((16#${h:4:2})).$((16#${h:2:2})).$((16#${h:0:2})):$p"
done < <(tail -n +2 /proc/net/$f) | sort
done
echo " (end of list)"
}
echo "== 2. listening now =="; list
# two test services for 2 seconds: one on loopback only, one on every interface
if command -v python3 >/dev/null; then
python3 -c 'import socket, time
a = socket.socket(); a.bind(("127.0.0.1", 8080)); a.listen()
b = socket.socket(); b.bind(("0.0.0.0", 8081)); b.listen(); time.sleep(2)' &
elif command -v perl >/dev/null; then
perl -MIO::Socket::INET -e '
my $a = IO::Socket::INET->new(LocalAddr => "127.0.0.1:8080", Listen => 5) or die "8080: $!";
my $b = IO::Socket::INET->new(LocalAddr => "0.0.0.0:8081", Listen => 5) or die "8081: $!";
sleep 2' &
else
echo " python3 বা perl নেই — ধাপ ৩ বাদ"; exit 0
fi
sleep 1
echo "== 3. after starting two test services =="; list
command -v ss >/dev/null && ss -tln | { read -r h; echo "$h"; sort -b -k4; }
waitআসল রানের আউটপুট:
== 1. ss ==
Netid State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
== 2. listening now ==
(end of list)
== 3. after starting two test services ==
tcp 0.0.0.0:8081
tcp 127.0.0.1:8080
(end of list)
State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
LISTEN 0 5 0.0.0.0:8081 0.0.0.0:*
LISTEN 0 5 127.0.0.1:8080 0.0.0.0:*
১ আর ২: ss আছে, কিন্তু শুধু শিরোনামের লাইন ছাপল — এই container-এ কোনো প্রোগ্রাম কোনো TCP বা UDP port-এ শুনছে না। /proc/net-এর তালিকাও খালি। অর্থাৎ নেটওয়ার্ক থেকে এর attack surface প্রায় শূন্য: যেখানে কেউ শোনে না, সেখানে বাইরে থেকে ঢোকার দরজাও নেই। (এখানে python3 নেই, তাই স্ক্রিপ্ট perl দিয়ে পরীক্ষার সেবা চালিয়েছে।)
৩ — দুটি সেবা, দুই রকম ঝুঁকি: এবার দুটি LISTEN লাইন। 127.0.0.1:8080 শুধু loopback-এ — একই যন্ত্রের প্রোগ্রামই এতে পৌঁছাতে পারে, নেটওয়ার্কের অন্য কেউ নয়। 0.0.0.0:8081 মানে সব interface — যন্ত্রটির যত ঠিকানা আছে, সবগুলোতে খোলা; firewall না থাকলে LAN বা ইন্টারনেট থেকেও পৌঁছানো যাবে। নিজের সার্ভারে sudo ss -tulnp কোন প্রোগ্রাম কোন port খুলেছে তাও দেখায়; প্রতিটি 0.0.0.0 বা [::] লাইনে প্রশ্ন করুন: এটি কি সত্যিই বাইরের জন্য? না হলে loopback-এ bind করুন বা সেবাটি বন্ধ করুন।
৫ · নকশার নীতি — Saltzer-Schroeder থেকে defence in depth
১৯৭৫ সালে MIT-র Jerome Saltzer আর Michael Schroeder “The Protection of Information in Computer Systems” নামের একটি প্রবন্ধে সুরক্ষিত ব্যবস্থা নকশার কয়েকটি নীতি লেখেন। প্রায় পঞ্চাশ বছর পরেও সেগুলো নিরাপত্তা-প্রকৌশলের ভিত্তি হিসেবে পড়ানো হয় (মূল তালিকায় আটটি নীতি, পরে অনেকে আরও যোগ করেছেন)। নেটওয়ার্কের ভাষায়:
| নীতি | মানে | নেটওয়ার্কে প্রয়োগ |
|---|---|---|
| Least privilege | প্রত্যেকে শুধু ততটুকু অধিকার পাবে, যতটুকু কাজের জন্য লাগে | web সার্ভার database-এ শুধু port 5432-এ যেতে পারে, SSH-এ নয় |
| Fail-safe defaults (default deny) | স্পষ্ট অনুমতি না থাকলে নিষেধ | firewall-এর শেষ নিয়ম “বাকি সব বাদ” |
| Complete mediation | প্রতিটি প্রবেশে প্রতিবার অনুমতি যাচাই | প্রতিটি API request-এ token যাচাই, একবার লগইনের ভরসায় নয় |
| Economy of mechanism | ব্যবস্থা যত সরল, ভুল তত কম | ৫০০ লাইনের এলোমেলো firewall নিয়মের চেয়ে ২০টি পরিষ্কার নিয়ম |
| Open design | নিরাপত্তা নকশার গোপনীয়তার ওপর নির্ভর করবে না | প্রকাশ্য, পরীক্ষিত TLS ব্যবহার, নিজের বানানো গোপন encryption নয় |
| Separation of privilege / duties | বড় কাজে একাধিক চাবি বা একাধিক মানুষ | firewall-এর বড় পরিবর্তনে দ্বিতীয় জনের অনুমোদন; MFA-ও “দুই চাবি”-র নীতি |
| Least common mechanism | ভিন্ন ব্যবহারকারীর ভাগ করা ব্যবস্থা কম | অতিথি Wi-Fi আর অফিসের নেটওয়ার্ক আলাদা |
| Psychological acceptability | ব্যবহারে সহজ না হলে মানুষ এড়িয়ে যায় | passkey; প্রতি মাসে জটিল পাসওয়ার্ড বদলের নিয়ম নয় |
পরবর্তী সময়ে আরও দুটি নীতি সমান গুরুত্ব পেয়েছে: attack surface কমানো — যা লাগে না, তা বন্ধ বা মুছে ফেলা (অংশ ৪-এর পরীক্ষা); আর secure by default — পণ্য বাক্স থেকে বের করার সময়েই নিরাপদ অবস্থায় থাকবে, যেমন প্রতিটি router-এর আলাদা এলোমেলো পাসওয়ার্ড, সবার জন্য একটি admin/admin নয়। Kerckhoffs-এর নীতি (১৮৮৩) open design-এর পূর্বসূরি: একটি গোপন-লিখন ব্যবস্থা নিরাপদ থাকা উচিত এমনকি শত্রু পুরো ব্যবস্থা জানলেও — গোপন থাকবে শুধু চাবি। পর্ব ৪৭-এ এটি আবার পাবেন।
Defence in depth — একটি স্তরের ওপর ভরসা নয়
Defence in depth মানে কয়েকটি স্বাধীন প্রতিরক্ষা পরপর রাখা, যাতে একটি ব্যর্থ হলেও পরেরটি থামায়। ব্যাংকের ভল্টের কথা ভাবুন: গেটে প্রহরী, ভেতরে CCTV, ভল্টে দুই চাবির তালা, আর রাতে অ্যালার্ম। কোনোটি একা নিখুঁত নয়। নিচে একটি phishing আক্রমণ স্তর পেরিয়ে এগোনোর চেষ্টা করছে — ধাপে ধাপে দেখুন কোন স্তর ব্যর্থ, কোনটি টেকে:
- ইমেইল ফিল্টারDMARC, লিংক যাচাই
- কর্মীসচেতনতা
- MFAদ্বিতীয় প্রমাণ
- Segmentationzone নীতি
- পর্যবেক্ষণlog আর alert
- স্তর ১ — ইমেইল ফিল্টার। একটি দেখতে-প্রায়-আসল ডোমেইন থেকে ৪০টি ইমেইল এল। SPF, DKIM আর DMARC (পর্ব ৩৯) আর লিংকের সুনাম দেখে ৩৯টি আলাদা করে রাখা হলো। কিন্তু একটি পৌঁছে গেল — প্রেরক নিজের ডোমেইনের নিয়ম ঠিকঠাক সাজিয়েছিল, তাই যাচাই পাস করেছে। কোনো ফিল্টার নিখুঁত নয়।
- স্তর ২ — মানুষ। কর্মী লিংকে চাপলেন, ভুয়া পাতায় পাসওয়ার্ড লিখলেন, আর একটি সংযুক্তিও খুললেন — ল্যাপটপে ক্ষতিকর প্রোগ্রাম চলল। এই স্তর ব্যর্থ। ব্যস্ত মানুষ ভুল করবেনই; নকশাকে এর জন্য প্রস্তুত থাকতে হয়।
- স্তর ৩ — MFA. আক্রমণকারী চুরি করা পাসওয়ার্ড দিয়ে অন্য নেটওয়ার্ক থেকে VPN-এ লগইনের চেষ্টা করল। পাসওয়ার্ড ঠিক, কিন্তু কর্মীর ফোনে যাওয়া অনুমোদনের অনুরোধ তিনি অনুমোদন করলেন না। লগইন ব্যর্থ, ঘটনা log-এ লেখা হলো।
- স্তর ৪ — segmentation. ল্যাপটপের ক্ষতিকর প্রোগ্রাম অন্য যন্ত্রে ছড়ানোর চেষ্টা করল (lateral movement). Staff zone থেকে সার্ভারে SSH — নিয়ম নেই, default deny. Management zone-এ — স্পষ্ট নিষেধ R6. কিন্তু ফাইল-শেয়ার (port ৪৪৫) খোলা, কারণ কাজের জন্য লাগে (R3). Least privilege দরজা কমায়, সব দরজা বন্ধ করতে পারে না।
- স্তর ৫ — পর্যবেক্ষণ। একটি যন্ত্র থেকে এক মিনিটে ২৫টি নিষিদ্ধ সংযোগের চেষ্টা — এটি স্বাভাবিক আচরণ নয়। কেন্দ্রীয় log বিশ্লেষণ ব্যবস্থা (SIEM) সতর্কসংকেত দিল, আর নিরাপত্তা দল (SOC) কয়েক মিনিটের মধ্যে ল্যাপটপটিকে আলাদা quarantine VLAN-এ সরিয়ে দিল। Segmentation-এর DENY log-ই এখানে গোয়েন্দা।
- কেন স্তর কাজ করে। কল্পিত সংখ্যায়: ফিল্টার ১০%-এ ব্যর্থ, তার মধ্যে ২০% কর্মী ফাঁদে পড়েন, আর MFA ১%-এ এড়ানো যায় — স্তরগুলো স্বাধীন ধরলে ০.১ × ০.২ × ০.০১ = ০.০০০২, অর্থাৎ প্রায় ৫,০০০ চেষ্টায় একটি প্রথম তিন স্তর পেরোয়। বাস্তবে স্তরগুলো পুরো স্বাধীন নয়, তাই প্রতিটিকে আলাদাভাবেও শক্ত রাখতে হয়।
৬ · Segmentation, zone আর zero trust
একটি সমতল নেটওয়ার্কে (সব যন্ত্র একই subnet-এ, ভেতরে কোনো বাধা নেই) একটি যন্ত্র আক্রান্ত হলেই বাকি সবার দরজা খোলা। Network segmentation নেটওয়ার্ককে আলাদা zone-এ ভাগ করে — সাধারণত আলাদা VLAN আর subnet (পর্ব ১৩), মাঝে firewall বা router-এর ACL — আর zone থেকে zone-এ শুধু দরকারি traffic যেতে দেয়। জাহাজের ভেতরের জলরোধী কক্ষের মতো: একটি কক্ষে পানি ঢুকলেও জাহাজ ডোবে না।
Internet
│
┌─────┴─────┐
│ firewall │──────────── DMZ 172.16.0.0/24 (website, mail relay)
└─────┬─────┘
├──────── staff 10.10.0.0/16 (laptops, Wi-Fi)
├──────── servers 10.20.0.0/16 (file server, database)
└──────── mgmt 10.99.0.0/24 (switch/router admin, jump host)
guest Wi-Fi: separate VLAN, internet only
- Internet — অবিশ্বস্ত; ভেতরে শুধু DMZ-এর প্রকাশ্য সেবায় আসা যায়।
- DMZ (demilitarised zone) — বাইরের জন্য খোলা সার্ভারের আলাদা ঘর। ওয়েব সার্ভার আক্রান্ত হলেও সে শুধু নির্দিষ্ট port-এ database পর্যন্ত যেতে পারে, কর্মীদের ল্যাপটপে নয়।
- Internal — কর্মী আর সার্ভার, সম্ভব হলে আলাদা zone-এ।
- Management — router, switch আর সার্ভারের প্রশাসনিক সংযোগ; প্রবেশ শুধু একটি নির্দিষ্ট “jump host” থেকে, MFA দিয়ে।
নিচের simulator এই নকশার নিয়মগুলো ডেটা হিসেবে রাখে: ঠিকানা থেকে zone বের করে, নিয়ম ওপর থেকে নিচে মেলায়, প্রথম মেলা নিয়মই সিদ্ধান্ত (first match); কিছু না মিললে DENY. এটি আসল firewall কমান্ড নয়; nftables পর্ব ৪৯-এ।
// Zone policy checker: first matching rule wins, anything unmatched is DENIED
const zoneOf = ip =>
ip.startsWith("10.10.") ? "staff" : ip.startsWith("10.20.") ? "servers" :
ip.startsWith("10.99.") ? "mgmt" : ip.startsWith("172.16.") ? "dmz" : "internet";
const rules = [ // id, from zone, to zone, protocol/port, action
{ id: "R1", from: "internet", to: "dmz", svc: "tcp/443", act: "allow" },
{ id: "R2", from: "staff", to: "internet", svc: "tcp/443", act: "allow" },
{ id: "R3", from: "staff", to: "servers", svc: "tcp/445", act: "allow" },
{ id: "R4", from: "dmz", to: "servers", svc: "tcp/5432", act: "allow" },
{ id: "R5", from: "mgmt", to: "*", svc: "tcp/22", act: "allow" },
{ id: "R6", from: "staff", to: "mgmt", svc: "*", act: "deny" },
];
const tests = [
["203.0.113.7", "172.16.0.10", "tcp/443"], // customer opens the website
["203.0.113.7", "10.20.0.5", "tcp/445"], // internet tries the file server
["10.10.3.21", "10.20.0.5", "tcp/445"], // staff laptop opens a shared folder
["10.10.3.21", "10.20.0.8", "tcp/22"], // staff laptop tries SSH to a server
["172.16.0.10", "10.20.0.9", "tcp/5432"], // web server queries the database
["172.16.0.10", "10.10.3.21", "tcp/445"], // compromised web server -> staff laptop
["10.99.0.2", "10.20.0.8", "tcp/22"], // admin jump host -> server SSH
["10.10.3.21", "10.99.0.2", "tcp/22"], // staff laptop -> management network
];
const match = (r, f, t, s) => (r.from === "*" || r.from === f) && (r.to === "*" || r.to === t) &&
(r.svc === "*" || r.svc === s);
let allowed = 0;
for (const [src, dst, svc] of tests) {
const f = zoneOf(src), t = zoneOf(dst);
const r = rules.find(x => match(x, f, t, svc));
const verdict = r ? r.act.toUpperCase() : "DENY";
if (verdict === "ALLOW") allowed++;
console.log(`${(src + " -> " + dst + " " + svc).padEnd(38)} ${(f + ">" + t).padEnd(17)} ${verdict.padEnd(5)} ${r ? r.id : "default deny"}`);
}
console.log(`\n${allowed} of ${tests.length} allowed; everything not written as a rule was denied.`);আসল রানের আউটপুট:
203.0.113.7 -> 172.16.0.10 tcp/443 internet>dmz ALLOW R1
203.0.113.7 -> 10.20.0.5 tcp/445 internet>servers DENY default deny
10.10.3.21 -> 10.20.0.5 tcp/445 staff>servers ALLOW R3
10.10.3.21 -> 10.20.0.8 tcp/22 staff>servers DENY default deny
172.16.0.10 -> 10.20.0.9 tcp/5432 dmz>servers ALLOW R4
172.16.0.10 -> 10.10.3.21 tcp/445 dmz>staff DENY default deny
10.99.0.2 -> 10.20.0.8 tcp/22 mgmt>servers ALLOW R5
10.10.3.21 -> 10.99.0.2 tcp/22 staff>mgmt DENY R6
4 of 8 allowed; everything not written as a rule was denied.
লাইন ধরে পড়ুন। ইন্টারনেট থেকে website-এ (DMZ, ৪৪৩) — R1 মেলে, ALLOW. ইন্টারনেট থেকে সরাসরি ফাইল সার্ভারে — এমন কোনো নিয়মই লেখা নেই, তাই default deny; আমাদের কিছু আটকানোর নিয়ম লিখতে হয়নি। কর্মীর ল্যাপটপ থেকে ফাইল-শেয়ার (৪৪৫) — R3, ALLOW; কিন্তু একই ল্যাপটপ থেকে একই zone-এর সার্ভারে SSH (২২) — DENY. এটিই least privilege: কর্মীর কাজের জন্য ফাইল-শেয়ার লাগে, সার্ভারের shell লাগে না। প্রশাসক SSH করবেন mgmt zone-এর jump host থেকে (R5, ALLOW).
ষষ্ঠ লাইনটি সবচেয়ে গুরুত্বপূর্ণ: DMZ-এর web সার্ভার থেকে কর্মীর ল্যাপটপে — DENY. ধরুন web সার্ভার আক্রান্ত হলো; তখনও সে শুধু database-এ ৫৪৩২ port-এ যেতে পারে (R4). শেষ লাইনের R6 স্পষ্ট deny — default deny-তেও ফল একই হতো, কিন্তু log-এ কারণ পরিষ্কার থাকে। মোট ৮টির মধ্যে ৪টি ALLOW. rules-এ R3-এর svc বদলে "*" করে চালান — দেখবেন ল্যাপটপ থেকে সার্ভারে SSH-ও ALLOW হয়ে গেছে। একটি অলস “সব খোলা” নিয়ম পুরো নকশা নষ্ট করে।
এবার একটি সংযোগ ধরে দেখুন, simulator ভেতরে ভেতরে কী করে — 10.10.3.21 → 10.20.0.8 tcp/22:
| এখন দেখছি | |
| তুলনা | |
| ফল |
- প্রথমে zone. উৎস
10.10.3.21শুরু হয়10.10.দিয়ে — staff zone; গন্তব্য10.20.0.8— servers zone. সেবা tcp/22, অর্থাৎ SSH. আসল firewall-এ zone সাধারণত ঠিক হয় interface বা VLAN দিয়ে, এখানে সরলতার জন্য ঠিকানার শুরু দিয়ে। - R1 আর R2 — zone-ই মেলে না। R1-এর উৎস internet, আমাদের staff. R2-এর উৎস staff মেলে, কিন্তু গন্তব্য internet, আমাদের servers. দুটোই বাদ।
- R3 — প্রায় মিলে গিয়েছিল। staff থেকে servers — দুই zone-ই মেলে! কিন্তু নিয়মটি শুধু tcp/445 (ফাইল-শেয়ার)-এর জন্য, আর আমরা চাইছি tcp/22. একটি শর্ত না মিললেই নিয়ম বাদ। নিয়ম যত সুনির্দিষ্ট, ততই least privilege.
- R4 আর R5. R4 শুধু DMZ থেকে। R5-এ port ২২ মেলে, গন্তব্য
*(যে কোনো zone) — কিন্তু উৎস হতে হবে mgmt. অর্থাৎ SSH-এর অনুমতি আছে, তবে শুধু প্রশাসনিক zone থেকে। - R6 — স্পষ্ট নিষেধ, কিন্তু অন্য গন্তব্যের। R6 বলে staff থেকে mgmt-এ কিছুই নয়। আমাদের গন্তব্য servers, তাই এটিও মেলে না।
- Default deny. তালিকা শেষ, কোনো নিয়ম মেলেনি — সিদ্ধান্ত DENY, আর ঘটনাটি log-এ লেখা হলো। এটিই fail-safe default: নিয়ম লিখতে ভুলে গেলে ফল “বন্ধ”, “খোলা” নয়। Default allow হলে প্রতিটি নতুন সেবা নিজে থেকেই খোলা থাকত।
Perimeter বনাম zero trust
পুরোনো perimeter মডেল দুর্গের মতো: শক্ত দেয়াল (firewall), কিন্তু ভেতরে — VPN দিয়ে ঢুকলেও — সবাই বিশ্বস্ত। সমস্যা: আক্রান্ত ল্যাপটপ ভেতরেই থাকে; cloud আর বাসা থেকে কাজের যুগে “ভেতর-বাইর” অস্পষ্ট; আর দেয়াল পেরোলে lateral movement সহজ।
Zero trust ধারণাটি বলে — নেটওয়ার্কে অবস্থান দিয়ে বিশ্বাস নয়; প্রতিটি অনুরোধে ব্যবহারকারীর পরিচয়, যন্ত্রের অবস্থা (patch আছে কি না, প্রতিষ্ঠানের যন্ত্র কি না) আর প্রসঙ্গ যাচাই করে, শুধু নির্দিষ্ট সেবার জন্য অনুমতি। Google ২০১০-এর দশকের শুরুতে নিজের ভেতরে BeyondCorp নামে এমন একটি ব্যবস্থা চালু করে আর ২০১৪ সাল থেকে এ নিয়ে প্রবন্ধ প্রকাশ করে বলে জানা যায়; ২০২০ সালে NIST SP 800-207 zero trust architecture-এর একটি সাধারণ কাঠামো দেয়। মনে রাখুন, zero trust একটি নকশা-দর্শন, কেনার মতো একটি পণ্য নয় — আর এটি segmentation বাদ দেয় না, বরং প্রতিটি সেবার চারপাশে আরও ছোট segment বানায়।
৭ · নেটওয়ার্কে পরিচয় — 802.1X, MFA, পাসওয়ার্ড আর passkey
Segmentation-এর নিয়ম কার্যকর হয় তখনই, যখন নেটওয়ার্ক জানে কোন যন্ত্র কে। অফিসের দেয়ালের Ethernet port-এ যে কেউ ল্যাপটপ লাগালেই যদি staff VLAN-এ ঢুকে যায়, তবে zone-এর দেয়াল অর্থহীন। এখানে আসে পোর্ট-স্তরের প্রবেশ-নিয়ন্ত্রণ: 802.1X-এ switch বা Wi-Fi AP যন্ত্রটিকে প্রথমে কিছুই করতে দেয় না, শুধু যাচাইয়ের বার্তা RADIUS সার্ভারে পাঠায় (পর্ব ১৪); সফল হলে RADIUS বলে দিতে পারে কোন VLAN-এ রাখতে হবে। এর ওপরে NAC (network access control) যন্ত্রের অবস্থাও দেখতে পারে — OS হালনাগাদ কি না, নিরাপত্তা-সফটওয়্যার চালু কি না — আর অচেনা যন্ত্রকে আলাদা VLAN-এ পাঠায়, যেমন রিসেপশন অতিথিকে আলাদা কার্ড দেয়।
পাসওয়ার্ড কত শক্ত — entropy-র হিসাব
একটি এলোমেলোভাবে বানানো গোপন শব্দের শক্তি মাপা হয় entropy দিয়ে, বিটে। N রকম চিহ্ন থেকে প্রতিটি অক্ষর এলোমেলোভাবে বেছে L দৈর্ঘ্যের পাসওয়ার্ড বানালে সম্ভাব্য পাসওয়ার্ড NLটি, তাই
শব্দের তালিকা থেকে এলোমেলো শব্দ নিয়ে বানানো passphrase-এর জন্য N = তালিকার শব্দসংখ্যা, L = শব্দসংখ্যা। Diceware-এর মতো ৭,৭৭৬ শব্দের তালিকায় প্রতিটি শব্দ log₂ ৭৭৭৬ ≈ ১২.৯ বিট দেয়। অনুমানকারী গড়ে অর্ধেক সম্ভাবনা পরখ করে ঠিকটি পায়, তাই গড় সময় = ২entropy − ১ ÷ (প্রতি সেকেন্ডে অনুমান)। নিচের হিসাব তিনটি হারে: অনলাইনে (সার্ভার সীমা দিলে সেকেন্ডে ১০টির মতো), চুরি হওয়া database-এ ধীর password hash-এর বিরুদ্ধে, আর দ্রুত (অনুপযুক্ত) hash-এর বিরুদ্ধে শক্তিশালী GPU-তে। হারগুলো মোটা দাগের অনুমান, মাপা মান নয়:
// Entropy of RANDOMLY generated secrets + rough offline guessing time (average = half the space)
const secrets = [
["8 lowercase letters", 26, 8],
["8 chars, all 95 printable", 95, 8],
["12 letters+digits (62)", 62, 12],
["16 letters+digits (62)", 62, 16],
["4 random words (7776 list)", 7776, 4],
["6 random words (7776 list)", 7776, 6],
];
const rates = [["online, 10/s", 1e1], ["slow hash, 1e4/s", 1e4], ["fast hash, 1e10/s", 1e10]];
function human(sec) {
const units = [["years", 31557600], ["days", 86400], ["hours", 3600], ["min", 60], ["s", 1]];
for (const [u, n] of units) if (sec >= n) {
const v = sec / n;
return (v >= 1e6 ? v.toExponential(1) : v.toFixed(v < 10 ? 1 : 0)) + " " + u;
}
return "< 1 s";
}
console.log(("secret bits | " + rates.map(r => r[0].padEnd(18)).join(" | ")).trimEnd());
for (const [name, n, len] of secrets) {
const bits = len * Math.log2(n); // log2(n^len) = len * log2(n)
const avgGuesses = Math.pow(2, bits - 1); // on average the right guess comes halfway
const cols = rates.map(([, r]) => human(avgGuesses / r).padEnd(18));
console.log(`${name.padEnd(28)} ${bits.toFixed(1).padStart(5)} | ${cols.join(" | ")}`.trimEnd());
}
console.log("\nRough only: real attackers try likely human choices first (names, years, leaked lists),");
console.log("so a human-chosen 'P@ssw0rd2024' has far less entropy than its length suggests.");
console.log("Online guessing is stopped by rate limiting/lockout, and a stolen password alone");
console.log("is not enough when MFA is on.");আসল রানের আউটপুট:
secret bits | online, 10/s | slow hash, 1e4/s | fast hash, 1e10/s
8 lowercase letters 37.6 | 331 years | 121 days | 10 s
8 chars, all 95 printable 52.6 | 1.1e+7 years | 10511 years | 3.8 days
12 letters+digits (62) 71.5 | 5.1e+12 years | 5.1e+9 years | 5112 years
16 letters+digits (62) 95.3 | 7.6e+19 years | 7.6e+16 years | 7.6e+10 years
4 random words (7776 list) 51.7 | 5.8e+6 years | 5793 years | 2.1 days
6 random words (7776 list) 77.5 | 3.5e+14 years | 3.5e+11 years | 350270 years
Rough only: real attackers try likely human choices first (names, years, leaked lists),
so a human-chosen 'P@ssw0rd2024' has far less entropy than its length suggests.
Online guessing is stopped by rate limiting/lockout, and a stolen password alone
is not enough when MFA is on.
প্রথম লাইন হাতে মেলান: ২৬৮ ≈ ২.০৯ × ১০১১; log₂ = ৮ × ৪.৭০ = ৩৭.৬ বিট। গড়ে অর্ধেক, ≈ ১.০৪ × ১০১১ অনুমান; সেকেন্ডে ১০১০ হারে ≈ ১০ সেকেন্ড। অথচ অনলাইনে, সেকেন্ডে ১০টির সীমায়, একই পাসওয়ার্ডে লাগে প্রায় ৩৩১ বছর — অনুমানের হারই সব বদলে দেয়। তাই সার্ভারের দায়িত্ব: লগইনে rate limiting, আর পাসওয়ার্ড জমা রাখতে ইচ্ছে করে ধীর hash, যেমন bcrypt বা Argon2.
শব্দ বনাম অক্ষর: চারটি এলোমেলো শব্দ (৫১.৭ বিট) প্রায় ৮টি সম্পূর্ণ এলোমেলো চিহ্নের (৫২.৬) সমান, অথচ মনে রাখা অনেক সহজ; ছয় শব্দ (৭৭.৫) ১২টি এলোমেলো অক্ষর-সংখ্যার (৭১.৫) চেয়েও শক্ত। কিন্তু শেষ লাইনগুলো সবচেয়ে জরুরি: সূত্রটি খাটে শুধু এলোমেলোভাবে বানানো গোপন শব্দে। মানুষের বাছাই করা P@ssw0rd2024 দৈর্ঘ্যে ১২, কিন্তু অনুমানকারীরা আগে এমন নকশাই চেষ্টা করে, আর ফাঁস হওয়া তালিকায় এটি থাকতেই পারে। আর কোনো entropy-ই phishing পাতায় নিজে টাইপ করে দেওয়া পাসওয়ার্ড রক্ষা করে না।
MFA আর passkey
MFA (multi-factor authentication) দুই বা ততোধিক ভিন্ন ধরনের প্রমাণ চায়: যা আপনি জানেন (পাসওয়ার্ড), যা আপনার কাছে আছে (ফোন, hardware key), যা আপনি নিজে (আঙুলের ছাপ)। bKash-এর PIN আর ফোনের SIM — এটিও দুই ধরনের প্রমাণ। সব MFA সমান নয়: SMS OTP কিছু না-থাকার চেয়ে ভালো, কিন্তু SIM-প্রতারণা আর ভুয়া পাতায় OTP চেয়ে নেওয়ার ঝুঁকি আছে; authenticator app-এর কোড (TOTP) আরও ভালো, তবে সেটিও ভুয়া পাতায় টাইপ করানো যায়।
Passkey (FIDO2/WebAuthn মানদণ্ডের ওপর) এই সমস্যার মূলে যায়। যন্ত্রে একটি গোপন চাবি থাকে যা কখনো বাইরে যায় না, আর সার্ভার শুধু সংশ্লিষ্ট প্রকাশ্য চাবি রাখে (পর্ব ৪৭-এর public key cryptography). চাবিটি নির্দিষ্ট ওয়েবসাইটের ঠিকানার সাথে বাঁধা — ভুয়া ডোমেইনে ব্রাউজার সেটি ব্যবহারই করে না, তাই phishing-এ প্রায় অকার্যকর; আর সার্ভারে চুরি করার মতো কোনো পাসওয়ার্ড থাকে না। পাসওয়ার্ড যেখানে থাকছেই, সেখানে আধুনিক নির্দেশিকা (যেমন NIST-এর ডিজিটাল পরিচয় নির্দেশিকা) মোটামুটি বলে: দৈর্ঘ্য জটিলতার চেয়ে জরুরি, জোর করে ঘনঘন বদলানো নয়, ফাঁস-হওয়া তালিকার সাথে মিলিয়ে দেখা, আর password manager দিয়ে প্রতিটি সাইটে আলাদা পাসওয়ার্ড — যাতে এক সাইটের ফাঁস অন্য সাইটে কাজে না লাগে (credential stuffing).
৮ · নিরাপত্তা পরিচালনা — log, patch, backup আর incident response
নিরাপত্তা একবার বসিয়ে ভুলে যাওয়ার জিনিস নয়, প্রতিদিনের কাজ। চারটি অভ্যাস প্রায় প্রতিটি বড় ঘটনার পর্যালোচনায় ঘুরে ফিরে আসে:
- Log আর পর্যবেক্ষণ। Firewall-এর DENY, VPN লগইন, DHCP lease, DNS query, সার্ভারের auth log — যন্ত্রে ছড়িয়ে থাকলে কেউ দেখে না। Syslog বা অন্য উপায়ে এক জায়গায় জমা করলে, ঘড়ি মিলিয়ে রাখলে (NTP) আর কয়েকটি সতর্কসংকেতের নিয়ম লিখলে স্তর ৫-এর মতো ঘটনা মিনিটে ধরা পড়ে। Log রাখুন আক্রমণকারীর নাগালের বাইরে; IDS পর্ব ৫০-এ।
- Patch management. জানা দুর্বলতার patch সময়মতো বসানো। কোন যন্ত্রে কী সফটওয়্যার আছে তার তালিকা ছাড়া এটি অসম্ভব — যা জানেন না, তা patch করবেন কীভাবে? ইন্টারনেটমুখী আর সক্রিয়ভাবে কাজে লাগানো দুর্বলতা আগে।
- Backup — ৩-২-১ নিয়ম। অন্তত ৩টি কপি, ২ ধরনের মাধ্যমে, ১টি অন্য জায়গায় (offsite). Ransomware-এর যুগে আরও একটি শর্ত: অন্তত একটি কপি অফলাইন বা বদলানো যায় না এমন (immutable), কারণ আক্রমণকারী নেটওয়ার্কে যুক্ত backup-ও encrypt করে দেয়। আর backup থেকে ফেরত আনার অনুশীলন — যে backup কখনো পরীক্ষা হয়নি, সেটি আশা মাত্র।
- মানুষের সচেতনতা। Social engineering — মানুষকে ঠকিয়ে তথ্য বা কাজ আদায় — সম্ভবত সবচেয়ে প্রচলিত প্রবেশপথ। Phishing ইমেইল, “আমি মোবাইল ব্যাংকিং অফিস থেকে বলছি, OTP-টা বলুন” ফোনকল, বসের নামে জরুরি টাকা পাঠানোর বার্তা — একই কৌশল: তাড়া, ভয় বা লোভ। প্রতিরক্ষা: লিংকের আসল ডোমেইন দেখা, OTP বা পাসওয়ার্ড কাউকে না বলা, টাকার অনুরোধ অন্য পথে যাচাই করা, আর ভয় ছাড়া রিপোর্ট করার সহজ পথ।
বাংলাদেশের শিক্ষা। ২০১৬ সালের ফেব্রুয়ারিতে বাংলাদেশ ব্যাংকের বিদেশি রিজার্ভ থেকে আন্তর্জাতিক SWIFT বার্তাব্যবস্থার মাধ্যমে ভুয়া নির্দেশ পাঠিয়ে বিপুল অর্থ সরানোর চেষ্টা হয়; প্রকাশিত খবর অনুযায়ী প্রায় ৮ কোটি ১০ লক্ষ মার্কিন ডলার শেষ পর্যন্ত সরে যায়, যার অল্প অংশই ফেরত এসেছে। প্রকাশিত প্রতিবেদনে দুর্বল segmentation আর পর্যবেক্ষণের অভাবের কথা উঠে এসেছিল; খুঁটিনাটিতে সূত্রভেদে ভিন্নতা আছে। শিক্ষা: আর্থিক নেটওয়ার্কেও অংশ ৫-এর প্রতিটি স্তর দরকার।
Incident response — ঘটনা ঘটলে কী করবেন
Incident response হলো নিরাপত্তা-ঘটনায় সাড়া দেওয়ার পূর্বপরিকল্পিত প্রক্রিয়া। NIST-এর SP 800-61 নির্দেশিকা দীর্ঘদিন একে চার পর্বে ভাগ করেছে (প্রস্তুতি; শনাক্ত ও বিশ্লেষণ; ঠেকানো, নির্মূল ও পুনরুদ্ধার; ঘটনা-পরবর্তী শিক্ষা) — সাম্প্রতিক সংস্করণে কাঠামো বদলেছে, বর্তমানটি দেখে নিন। অনেক প্রশিক্ষণে একই কাজ ছয় ধাপে বলা হয়; একটি ছোট অফিসের ransomware ঘটনায় দেখুন:
- প্রস্তুতিprepare
- শনাক্তdetect
- ঠেকানোcontain
- নির্মূলeradicate
- পুনরুদ্ধারrecover
- শিক্ষাlessons learned
- প্রস্তুতি — ঘটনার আগেই। সবচেয়ে বড় কাজ এখানে: কাকে ফোন করবেন (IT প্রধান, ব্যবস্থাপনা, ISP, আইনজীবী, জাতীয় CERT), যন্ত্রের তালিকা আর নেটওয়ার্কের নকশা, পরীক্ষিত backup (একটি অফলাইন), আর কেন্দ্রীয় log. আগুন লাগার পরে অগ্নিনির্বাপক কেনা যায় না।
- শনাক্ত আর বিশ্লেষণ। রবিবার সকালে একজন কর্মী জানালেন ফাইলের নাম অদ্ভুত। log-এ দেখা গেল ১০ মিনিটে হাজার হাজার ফাইলের নাম বদল, আর মুক্তিপণের নোট। ঘটনা ঘোষণা করা হলো, গুরুত্ব HIGH. প্রথম মিনিট থেকেই লিখিত সময়রেখা শুরু — কে, কী, কখন করলেন।
- ঠেকানো (containment). লক্ষ্য ছড়ানো থামানো। আক্রান্ত সার্ভার আর সন্দেহজনক ল্যাপটপ নেটওয়ার্ক থেকে আলাদা (quarantine VLAN). সাধারণত বন্ধ (power off) না করে আলাদা করা হয়, কারণ মেমরিতে প্রমাণ থাকতে পারে — তবে প্রতিষ্ঠানের নির্দেশিকা মানুন। সন্দেহজনক বাইরের ঠিকানা firewall-এ বন্ধ, আক্রান্ত অ্যাকাউন্টের পাসওয়ার্ড বদল।
- নির্মূল (eradication). কারণ খোঁজা: phishing থেকে ল্যাপটপ, সেখান থেকে ফাইল-শেয়ার — অংশ ৫-এর স্টেপারের সেই খোলা পথ। আক্রান্ত যন্ত্রগুলো পরিষ্কার image থেকে নতুন করে বসানো (শুধু “ভাইরাস মোছা”য় ভরসা নয়), ঢোকার পথ বন্ধ, অচেনা অ্যাকাউন্ট সরানো।
- পুনরুদ্ধার। রবিবারের অফলাইন কপি থেকে ফাইল ফেরত, যাচাই, আর এক সপ্তাহ নিবিড় পর্যবেক্ষণ। প্রায় এক দিনের কাজ হারাল। মুক্তিপণ দেওয়া হয়নি — দিলেও ফাইল ফেরতের নিশ্চয়তা নেই, আর এটি অপরাধকে উৎসাহিত করে; সিদ্ধান্তটি ব্যবস্থাপনা আইনি পরামর্শে নেয়।
- শিক্ষা — দোষারোপ ছাড়া পর্যালোচনা। কী কাজ করেছে (অফলাইন backup, segmentation database বাঁচিয়েছে), কী সারাতে হবে (ফাইল-শেয়ারে MFA, দ্রুত সতর্কসংকেত)। পরিকল্পনা হালনাগাদ, প্রশিক্ষণ, আর আইন বা চুক্তি অনুযায়ী যেখানে জানানো দরকার, সেখানে জানানো।
৯ · আইন, নৈতিকতা আর পেশা
নিয়ম একটাই, আর এটি আলোচনাসাপেক্ষ নয়: শুধু সেই সিস্টেম পরীক্ষা করবেন, যা আপনার নিজের, অথবা যার মালিকের কাছ থেকে লিখিত অনুমতি আছে — কোন যন্ত্র, কোন সময়, কী কী পরীক্ষা, তা স্পষ্ট লেখা থাকবে। পেশাদার penetration testing ঠিক এভাবেই চুক্তি করে হয়। “শুধু দেখছিলাম” — আদালতে এই যুক্তি প্রায়ই টেকে না। শেখার জন্য নিজের ল্যাব বানান: নিজের যন্ত্রে কয়েকটি virtual machine বা container (পর্ব ৫৪)।
বাংলাদেশের আইন: দেশে তথ্যপ্রযুক্তি আর সাইবার নিরাপত্তা নিয়ে আইন আছে, যা অননুমোদিত প্রবেশ আর বিভিন্ন সাইবার অপরাধকে শাস্তিযোগ্য করে। গত কয়েক বছরে এই আইনগুলো একাধিকবার বদলেছে, তাই এখানে কোনো ধারা বা শাস্তির কথা বলা হচ্ছে না — সর্বশেষ আইন সরকারি উৎস বা আইনজীবীর কাছ থেকে জেনে নিন। অন্য দেশের সার্ভারে কিছু করলে সেই দেশের আইনও প্রযোজ্য হতে পারে।
কাকে জানাবেন: দেশে নিরাপত্তা-ঘটনায় সাড়া দেওয়ার দল (CERT বা CIRT) আছে — যেমন সরকারি পর্যায়ে BGD e-GOV CIRT, আর bdCERT নামেও একটি উদ্যোগ পরিচিত। নাম আর কাঠামো সময়ের সাথে বদলাতে পারে, তাই বর্তমান নাম আর যোগাযোগের উপায় অফিশিয়াল ওয়েবসাইট থেকে মিলিয়ে নিন।
পেশার পথ
SOC analyst
log আর alert দেখে ঘটনা শনাক্ত ও প্রাথমিক বিশ্লেষণ। নেটওয়ার্ক protocol আর Linux-এর ভালো ধারণা লাগে — এই কোর্সই তার ভিত্তি।
শুরুর পথ হিসেবে প্রচলিতNetwork security engineer
firewall, VPN, segmentation, NAC নকশা আর পরিচালনা। routing-switching-এর গভীর জ্ঞান দরকার।
মডিউল ৩–৪, ৮Incident responder, penetration tester, security architect
অভিজ্ঞতার পরের ধাপ — ঘটনা সামলানো, অনুমতি নিয়ে দুর্বলতা খোঁজা, পুরো নকশা।
কয়েক বছরের অভিজ্ঞতাপ্রচলিত সার্টিফিকেশনের কয়েকটি নাম, কোনো ক্রম বা সুপারিশ ছাড়া: CompTIA Network+ আর Security+, Cisco-র CCNA ও CyberOps, ISC2-এর CC আর CISSP (অভিজ্ঞদের জন্য), EC-Council-এর CEH, OffSec-এর OSCP, আর GIAC-এর বিভিন্ন সনদ। নাম, বিষয় আর খরচ প্রায়ই বদলায় — চাকরির বিজ্ঞাপন আর অফিশিয়াল ওয়েবসাইট দেখে সিদ্ধান্ত নিন। হাতে-কলমে দক্ষতা, নিজের ল্যাব আর লিখে রাখা প্রজেক্ট প্রায়ই সনদের চেয়ে বেশি কথা বলে।
আরও গভীরে: Threat modeling-এর জন্য প্রচলিত কাঠামো আছে — Microsoft-এর STRIDE (spoofing, tampering, repudiation, information disclosure, denial of service, elevation of privilege) প্রতিটি হুমকিকে CIA আর AAA-র একটি ভঙ্গের সাথে মেলায়, আর MITRE ATT&CK বাস্তব আক্রমণে দেখা কৌশলগুলোর একটি জ্ঞানভান্ডার, যা SOC দল শনাক্তকরণের নিয়ম লিখতে ব্যবহার করে। গবেষণায় নিরাপত্তা-protocol-এর Dolev–Yao মডেলভিত্তিক স্বয়ংক্রিয় যাচাই (যেমন ProVerif, Tamarin-এর মতো টুল) TLS 1.3-এর নকশার সময়েও ব্যবহৃত হয়েছিল।
১০ · AI-এর যুগে নেটওয়ার্ক নিরাপত্তা — সাহায্য নিন, অন্ধভাবে নয়
AI নীতির খসড়া, log-এর সারাংশ বা risk register-এর প্রথম তালিকায় ভালো সাহায্য করে, কিন্তু একটি ভুল firewall নিয়ম পুরো নকশা খুলে দেয়। প্রচলিত ভুল:
| AI-এর সাধারণ ভুল | কীভাবে ধরবেন |
|---|---|
| “সমস্যা মিটছে না? any → any allow দিন” বা পুরো port range খুলে দেওয়া | প্রতিটি নিয়মে উৎস, গন্তব্য, port সুনির্দিষ্ট কি না; শেষে default deny আছে কি না |
| ভুল subnet বা zone-এর হিসাব (যেমন /16-কে /24 ধরা) | subnet নিজে হিসাব করুন (পর্ব ১৭), অংশ ৬-এর simulator-এ নিয়ম বসিয়ে পরীক্ষা |
পুরোনো কমান্ড (netstat, ifconfig, iptables-এর পুরোনো উদাহরণ) বা এক vendor-এর config-কে সার্বজনীন বলা | ss, ip, nft; man পাতা আর vendor-এর নিজের নথি |
| বানানো CVE নম্বর, CVSS score বা RFC | NVD বা cve.org আর rfc-editor.org-এ নম্বর খুলে শিরোনাম মেলান |
| দেশের আইন বা নিয়ম সম্পর্কে পুরোনো বা বানানো তথ্য | সরকারি উৎস বা আইনজীবী; AI-এর ধারা নম্বরে ভরসা নয় |
| অন্যের নেটওয়ার্কে scan বা “পরীক্ষা”র পরামর্শ | শুধু নিজের বা লিখিত অনুমতির সিস্টেম; প্রশ্নেই সীমাটি বলে দিন |
একটি ছোট অফিসের নেটওয়ার্ক নিয়ে AI-কে প্রশ্ন করার একটি ভালো ছাঁচ — প্রসঙ্গ, সীমা আর যাচাইযোগ্য উত্তর চাওয়া:
AI-এর নিরাপত্তা-পরামর্শ মানার আগে — চেকলিস্ট
পরীক্ষা ও ইন্টারভিউতে এই বিষয়ে প্রায়ই যা জিজ্ঞেস করা হয়:
- CIA triad কী? প্রতিটির একটি নেটওয়ার্ক-আক্রমণের উদাহরণ দিন। — Confidentiality (eavesdropping), Integrity (ARP spoofing দিয়ে MITM), Availability (DDoS বা SYN flood).
- Authentication আর authorization-এর পার্থক্য? — প্রথমটি পরিচয়ের প্রমাণ (“আপনি কে”), দ্বিতীয়টি অনুমতি (“কী করতে পারবেন”); প্রথমটি সাধারণত আগে হয়।
- Vulnerability, threat আর risk-এর পার্থক্য? — দুর্বলতা হলো ফাঁক, threat হলো সম্ভাব্য ক্ষতিকর ঘটনা, risk = সম্ভাবনা × ক্ষতি — তিনটি মিললে ঝুঁকি।
- DMZ কেন রাখা হয়? — বাইরের জন্য খোলা সার্ভার আলাদা zone-এ রাখলে সেটি আক্রান্ত হলেও ভেতরের নেটওয়ার্কে সরাসরি পৌঁছানো যায় না।
- Default deny আর least privilege কেন? — অনুমতি না থাকলে নিষেধ, আর শুধু দরকারি অনুমতি; ভুলে গেলে ফল “বন্ধ”, আর আক্রান্ত হলে ক্ষতির পরিধি ছোট।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিয়ে নিজে কিছুক্ষণ ভাবুন — তারপর “→ উত্তর” চাপুন।
প্র ০১ইন্টারনেটের নকশাকারীরা কি ভুল করেছিলেন নিরাপত্তা না রেখে? “পরে জোড়া” নিরাপত্তার দাম আজ কে দেয়?
“ভুল” বলা সহজ, কিন্তু প্রেক্ষাপট দেখা দরকার। ১৯৭০-এর দশকে মূল সমস্যা ছিল একেবারে ভিন্ন নেটওয়ার্ক — টেলিফোন লাইন, রেডিও, স্যাটেলাইট — জোড়া লাগানো, আর কিছু অংশ নষ্ট হলেও চলা। ব্যবহারকারী ছিলেন পরিচিত গবেষকেরা। তখনকার কম্পিউটারে শক্তিশালী encryption ধীর আর ব্যয়বহুল ছিল, আর যুক্তরাষ্ট্রে শক্তিশালী গোপন-লিখন বহু বছর রপ্তানি-নিয়ন্ত্রণের আওতায় ছিল। ১৯৮৮ সালে David Clark-এর লেখা নকশা-দর্শনে নিরাপত্তার আলাদা জায়গা না থাকা সেই অগ্রাধিকারেরই স্বীকারোক্তি।
একই বছর Morris worm দেখাল বিশ্বাসের দাম, কিন্তু TCP/IP তখন হাজার হাজার যন্ত্রে বসে গেছে। তাই পরের তিন দশক কেটেছে স্তর জুড়ে: SSL থেকে TLS, IPsec, DNSSEC, SPF আর DKIM, RPKI, DMARC, WPA3. প্রতিটিকে পুরোনো যন্ত্রের সাথে মিল রাখতে ঐচ্ছিক রাখতে হয়েছে, আর ঐচ্ছিক নিরাপত্তা ধীরে ছড়ায় — DNSSEC বা RPKI আজও সর্বজনীন নয়।
দামটা আসে তিনভাবে। জটিলতায় — একটি ইমেইল নিরাপদে পাঠাতে এখন SPF, DKIM, DMARC, TLS, MTA-STS. অসমতায় — বড় প্রতিষ্ঠান সব স্তর বসাতে পারে, ছোট অফিস বা ছোট ISP প্রায়ই পারে না, আর দুর্বলতম অংশই আক্রমণের দরজা। আর downgrade-এর ঝুঁকিতে — পুরোনো পদ্ধতি চালু থাকলে আক্রমণকারী দুই পক্ষকে দুর্বলটিতে নামানোর চেষ্টা করে। উল্টো যুক্তিও আছে: শুরুতে কড়া নিরাপত্তা থাকলে হয়তো ইন্টারনেট এত দ্রুত ছড়াত না। নতুন protocol শিক্ষা নিয়েছে — QUIC (পর্ব ৩৩) encryption ছাড়া চলেই না।
মূল উপলব্ধি: নিরাপত্তা পরে যোগ করা যায়, কিন্তু তা ধীর, জটিল আর অসম্পূর্ণ হয়। নতুন কিছু নকশার প্রথম দিনেই প্রশ্ন করুন — কে একে অপব্যবহার করতে পারে?
প্র ০২একটি এয়ারকন্ডিশনার ঠিকাদারের অ্যাকাউন্ট দিয়ে কীভাবে লাখো গ্রাহকের কার্ডের তথ্য চুরি হতে পারে? Perimeter মডেলের সীমা কোথায়?
২০১৩ সালে যুক্তরাষ্ট্রের খুচরা বিক্রেতা Target-এ বিপুল সংখ্যক পেমেন্ট কার্ডের তথ্য চুরি হয় বলে প্রকাশিত হয়। প্রকাশিত বিশ্লেষণ অনুযায়ী আক্রমণকারীরা প্রথমে ঢুকেছিল একটি HVAC (এয়ারকন্ডিশনিং) ঠিকাদারের অ্যাকাউন্ট দিয়ে, যার সরবরাহকারী-পোর্টালে প্রবেশাধিকার ছিল; সেখান থেকে ভেতরের নেটওয়ার্ক হয়ে দোকানের বিক্রয়-যন্ত্র (POS) পর্যন্ত পৌঁছায়। কিছু প্রতিবেদনে বলা হয় নিরাপত্তা-ব্যবস্থা সতর্কসংকেত দিয়েছিল, কিন্তু সময়মতো পদক্ষেপ নেওয়া হয়নি। খুঁটিনাটিতে সূত্রভেদে পার্থক্য আছে, শিক্ষায় নয়।
শিক্ষাটি perimeter মডেলের দুর্বলতা নিয়ে। দেয়াল শক্ত ছিল, কিন্তু ভেতরে পৌঁছালে সরবরাহকারীর অংশ থেকে পেমেন্ট-যন্ত্র পর্যন্ত পথ খোলা। এই পর্বের ভাষায়: segmentation দুর্বল, least privilege নেই (এয়ারকন্ডিশনার ঠিকাদারের পেমেন্ট নেটওয়ার্কের কাছাকাছি পথ কেন লাগবে?), তৃতীয় পক্ষের অ্যাকাউন্টে কড়া যাচাই নেই, আর পর্যবেক্ষণের সতর্কসংকেতে সাড়া নেই। পেমেন্ট-কার্ড শিল্পের নিরাপত্তা-মান (PCI DSS) এজন্যই কার্ডের ডেটার অংশকে বাকি নেটওয়ার্ক থেকে আলাদা রাখার ওপর জোর দেয়।
Zero trust এর সরাসরি উত্তর: প্রশ্ন আর “আপনি কি ভেতরে?” নয়, প্রশ্ন “আপনি কে, কোন যন্ত্র থেকে, এই নির্দিষ্ট সেবা কেন চান?” ঠিকাদার শুধু বিল জমার পোর্টাল দেখবেন, MFA দিয়ে, আর সেখান থেকে অন্য কোথাও নেটওয়ার্ক-পথই থাকবে না। তবে zero trust মানে firewall বা DMZ বাদ নয় — শুধু সেগুলোকে একমাত্র দেয়াল না ভাবা।
মূল উপলব্ধি: সবচেয়ে দুর্বল প্রবেশপথ প্রায়ই প্রধান দরজা নয়, পাশের ছোট দরজা — ঠিকাদার, পুরোনো অ্যাকাউন্ট, ভুলে যাওয়া সার্ভার। ভেতরের দেয়াল আর প্রতিটি প্রবেশে যাচাই সেই দরজার ক্ষতি ছোট রাখে।
প্র ০৩২০১৭-র WannaCry-র patch তো আগেই বেরিয়েছিল — তবু এত প্রতিষ্ঠান আক্রান্ত হলো কেন? Patch সময়মতো বসানো এত কঠিন কেন?
২০১৭ সালের মে মাসে WannaCry ransomware কয়েক দিনে বহু দেশের বিপুল সংখ্যক কম্পিউটারে ছড়িয়ে পড়ে; যুক্তরাজ্যের জাতীয় স্বাস্থ্যসেবার (NHS) অনেক হাসপাতালে কাজ বিঘ্নিত হয় বলে ব্যাপকভাবে প্রকাশিত হয়। এটি ছড়াত Windows-এর ফাইল-শেয়ারিং protocol SMB (version 1)-এর একটি দুর্বলতা দিয়ে — অর্থাৎ worm, কারও লিংকে চাপার দরকার ছাড়াই। অথচ Microsoft এর patch (MS17-010) প্রায় দুই মাস আগে, মার্চে প্রকাশ করেছিল।
Patch বসেনি কেন? তালিকার অভাব — কোন যন্ত্রে কোন OS, অনেকে জানে না। পুরোনো যন্ত্র — হাসপাতালের যন্ত্রপাতি বা কারখানার নিয়ন্ত্রণ-কম্পিউটার এমন OS-এ চলে যার সমর্থন শেষ, আর প্রস্তুতকারক বদলাতে দেন না। ভয় — patch-এ জরুরি অ্যাপ ভাঙলে দায় কার? তাই পরীক্ষায় সময় লাগে। আর ২৪ ঘণ্টা চলা ব্যবস্থায় restart-এর সময় পাওয়াই কঠিন।
এই পর্বের নীতি দেখায় patch ছাড়াও কী করা যেত। Attack surface কমানো: পুরোনো SMBv1 বেশিরভাগ জায়গায় বন্ধ করা যেত। Segmentation: port ৪৪৫ শুধু দরকারি zone থেকে খোলা থাকলে worm এক zone থেকে আরেক zone-এ যেতে পারত না। পরীক্ষিত অফলাইন backup থাকলে পুনরুদ্ধার দ্রুত হতো। আজকের patch management তাই অগ্রাধিকার-ভিত্তিক: ইন্টারনেটমুখী আর সক্রিয়ভাবে কাজে লাগানো দুর্বলতা আগে; যেখানে patch অসম্ভব, সেখানে যন্ত্রটিকে আলাদা segment-এ রেখে চারপাশের দেয়াল শক্ত করা।
মূল উপলব্ধি: বেশিরভাগ বড় ঘটনা অজানা দুর্বলতা দিয়ে নয়, জানা আর সমাধান-থাকা দুর্বলতা দিয়ে ঘটে। তালিকা, অগ্রাধিকার আর segmentation patch-এর দেরির ক্ষতি কমায়।
প্র ০৪একটি পুরোনো VPN অ্যাকাউন্ট আর একটি পাসওয়ার্ড দিয়ে কীভাবে একটি দেশের জ্বালানি সরবরাহ বিঘ্নিত হতে পারে? MFA-ও কেন সবসময় যথেষ্ট নয়?
২০২১ সালের মে মাসে যুক্তরাষ্ট্রের Colonial Pipeline ransomware আক্রমণের পরে সতর্কতা হিসেবে কয়েক দিন পাইপলাইন বন্ধ রাখে, আর কয়েকটি অঙ্গরাজ্যে জ্বালানির সংকট দেখা দেয়। প্রতিষ্ঠানের প্রধান নির্বাহী পরে কংগ্রেসের শুনানিতে জানান, আক্রমণকারীরা ঢুকেছিল একটি পুরোনো VPN অ্যাকাউন্ট দিয়ে, যাতে MFA ছিল না, আর যার পাসওয়ার্ড সম্ভবত অন্য কোনো ফাঁস থেকে পাওয়া।
এখানে তিনটি নীতির ব্যর্থতা একসাথে: অব্যবহৃত অ্যাকাউন্ট চালু ছিল (attack surface), দূর-প্রবেশে শুধু পাসওয়ার্ড (MFA নেই), আর অন্য জায়গার ফাঁস হওয়া পাসওয়ার্ড কাজ করেছে (credential stuffing-এর দরজা)। কোনোটিতেই উন্নত প্রযুক্তি লাগত না — লাগত নিয়মিত অ্যাকাউন্ট-পর্যালোচনা আর একটি নীতি: “দূর-প্রবেশে MFA বাধ্যতামূলক”।
কিন্তু MFA-ও নিখুঁত নয়। ২০২২ সালে Uber-এর একটি ঘটনার প্রকাশিত বর্ণনা অনুযায়ী আক্রমণকারী একজন ঠিকাদারের পাসওয়ার্ড পেয়ে বারবার MFA push পাঠায়, আর নিজেকে IT সহায়তাকর্মী পরিচয় দিয়ে অনুমোদন চায় — শেষে অনুমোদন মেলে। একে বলে MFA fatigue. SMS OTP-ও ভুয়া পাতায় চেয়ে নেওয়া যায়। তাই প্রতিরক্ষা এখন phishing-প্রতিরোধী MFA-র দিকে: passkey বা hardware key, যা নির্দিষ্ট ডোমেইনের সাথে বাঁধা; push-এ স্ক্রিনের একটি সংখ্যা মিলিয়ে নেওয়া (number matching); আর অস্বাভাবিক সংখ্যায় MFA অনুরোধ এলে সতর্কসংকেত। প্রতিটি স্তরের নিজস্ব ব্যর্থতার ধরন আছে — তাই MFA-র পেছনেও segmentation আর পর্যবেক্ষণ লাগে।
মূল উপলব্ধি: চুরি হওয়া পরিচয় আজ সবচেয়ে প্রচলিত প্রবেশপথগুলোর একটি। অব্যবহৃত অ্যাকাউন্ট বন্ধ, দূর-প্রবেশে MFA, আর সম্ভব হলে phishing-প্রতিরোধী MFA — খরচে ছোট, ফলে বড়।
প্র ০৫“আমাদের পদ্ধতি গোপন, তাই নিরাপদ” — এই যুক্তি কেন বারবার ব্যর্থ হয়েছে? তাহলে কি কিছু গোপন রাখাই ভুল?
১৮৮৩ সালে Auguste Kerckhoffs সামরিক গোপন-লিখন নিয়ে প্রবন্ধে কয়েকটি নীতি দেন; সবচেয়ে বিখ্যাতটি: ব্যবস্থা শত্রুর হাতে পড়লেও সমস্যা হবে না — নিরাপত্তা নির্ভর করবে শুধু চাবির গোপনীয়তার ওপর। কারণ ব্যবহারিক: যন্ত্র ধরা পড়ে, নকশা ফাঁস হয়, কর্মী চাকরি বদলান। চাবি সহজে বদলানো যায়, পুরো ব্যবস্থা নয়। Claude Shannon পরে একে সংক্ষেপে বলেন — ধরে নিন শত্রু ব্যবস্থাটি জানে।
ইতিহাস বারবার এটি প্রমাণ করেছে। মোবাইল ফোনের GSM মানদণ্ডের কিছু গোপন encryption অ্যালগরিদম ১৯৯০-এর দশকের শেষে উল্টো-প্রকৌশলে (reverse engineering) প্রকাশ পায়, আর গবেষকরা দুর্বলতা দেখান। DVD-র কপি-সুরক্ষা CSS-এর গোপন অ্যালগরিদমও ১৯৯৯ সালের দিকে ভেঙে প্রকাশ্যে আসে। অন্যদিকে AES বাছাই হয়েছিল কয়েক বছরের প্রকাশ্য প্রতিযোগিতায়, আর TLS 1.3 নকশা হয়েছে প্রকাশ্যে, গবেষকদের আনুষ্ঠানিক বিশ্লেষণসহ। প্রকাশ্য নকশা হাজার চোখের পরীক্ষা পায়; গোপন নকশা পায় শুধু নির্মাতা — আর আক্রমণকারীর চোখ।
তাহলে কি কিছুই গোপন নয়? পার্থক্যটি সূক্ষ্ম। চাবি আর পাসওয়ার্ড অবশ্যই গোপন। নেটওয়ার্কের ভেতরের নকশা বা সফটওয়্যারের সংস্করণ প্রকাশ্যে বিজ্ঞাপন দেওয়ারও দরকার নেই — আক্রমণকারীর কাজ একটু কঠিন করা defence in depth-এর একটি ছোট স্তর হতে পারে। SSH-কে ২২ ছাড়া অন্য port-এ সরালে স্বয়ংক্রিয় চেষ্টার log কমে। কিন্তু সেটি একমাত্র সুরক্ষা হলে বিপদ: শক্ত key-ভিত্তিক লগইন আর rate limiting না থাকলে port বদলানো কিছুই রক্ষা করে না।
মূল উপলব্ধি: নিরাপত্তার ভিত্তি এমন হওয়া উচিত যা নকশা প্রকাশ্য হলেও টেকে — গোপন থাকবে শুধু চাবি। লুকিয়ে রাখা বাড়তি পর্দা হতে পারে, দেয়াল নয়।
অনুশীলন
ঝুঁকির হিসাব, entropy-র অঙ্ক, আউটপুট অনুমান আর নিয়ম লেখা — চারটিই করুন।
-
ঝুঁকির হিসাব (numerical): একটি কোচিং সেন্টারের চারটি ঝুঁকি (likelihood, impact; ১–৫): (ক) অতিথি Wi-Fi থেকে অফিসের PC-তে প্রবেশ (৩, ২); (খ) প্রশাসনিক ইমেইল অ্যাকাউন্ট দখল (৪, ৪); (গ) server room-এ বন্যার পানি (১, ৫); (ঘ) শিক্ষকের ল্যাপটপ চুরি, ভেতরে শিক্ষার্থীদের তথ্য (৩, ৪)। প্রতিটির score আর স্তর (১৫+ HIGH, ৮–১৪ MEDIUM, ≤৭ LOW) বের করুন, অগ্রাধিকার অনুযায়ী সাজান। ইমেইলে MFA দিলে likelihood ১-এ নামলে residual risk কত?
(খ) ৪ × ৪ = ১৬, HIGH; (ঘ) ৩ × ৪ = ১২, MEDIUM; (ক) ৩ × ২ = ৬, LOW; (গ) ১ × ৫ = ৫, LOW. ক্রম: খ → ঘ → ক → গ.
MFA-র পরে (খ): ১ × ৪ = ৪, LOW — একটি control-এ ১২ পয়েন্ট কমল, তাই এটিই প্রথম কাজ। (ঘ)-এর জন্য ল্যাপটপে পুরো ডিস্ক encryption দিলে impact কমে (চোর ডেটা পড়তে পারে না)। লক্ষ করুন (গ)-এর score কম হলেও impact সর্বোচ্চ — এমন “কম সম্ভাবনা, বিশাল ক্ষতি” ঝুঁকির জন্য অফসাইট backup সস্তা বীমা।
-
Entropy-র অঙ্ক: (ক) ছোট হাতের অক্ষর আর অঙ্ক (৩৬টি চিহ্ন) থেকে এলোমেলোভাবে বানানো ১০ অক্ষরের পাসওয়ার্ড, আর (খ) ৭,৭৭৬ শব্দের তালিকা থেকে এলোমেলো ৫টি শব্দের passphrase — প্রতিটির entropy কত বিট? সেকেন্ডে ১০১০ অনুমানের হারে গড়ে কত সময় লাগবে? (log₂ ৩৬ ≈ ৫.১৭, log₂ ৭৭৭৬ ≈ ১২.৯২)
(ক) ১০ × ৫.১৭ = ৫১.৭ বিট. মজার তথ্য: ৩৬১০ = ৬২০ = ৭৭৭৬৪, অর্থাৎ এটি ঠিক চারটি এলোমেলো শব্দের সমান! গড় অনুমান ২৫০.৭ ≈ ১.৮৩ × ১০১৫; ÷ ১০১০ ≈ ১.৮৩ × ১০৫ সেকেন্ড ≈ ২.১ দিন — অংশ ৭-এর আউটপুটের “4 random words” লাইনের সাথে মিলে যায়।
(খ) ৫ × ১২.৯২ = ৬৪.৬ বিট. গড় অনুমান ২৬৩.৬ ≈ ১.৪২ × ১০১৯; ÷ ১০১০ ≈ ১.৪২ × ১০৯ সেকেন্ড ≈ প্রায় ৪৫ বছর. প্রতিটি অতিরিক্ত শব্দ সময়কে ৭,৭৭৬ গুণ করে। মিলিয়ে নিতে অংশ ৭-এর কোডে
["10 chars (36)", 36, 10]আর["5 words", 7776, 5]যোগ করে চালান। -
আউটপুট অনুমান: অংশ ৬-এর নীতি-simulator-এ (নিয়ম R1–R6 অপরিবর্তিত) নিচের তিনটি সংযোগ যোগ করা হলো। প্রতিটির জন্য কোন লাইন ছাপা হবে — ALLOW না DENY, আর কোন নিয়মে? (১)
203.0.113.7 → 172.16.0.10 tcp/22; (২)10.10.3.21 → 198.51.100.9 tcp/443; (৩)10.99.0.2 → 172.16.0.10 tcp/22.203.0.113.7 -> 172.16.0.10 tcp/22 internet>dmz DENY default deny 10.10.3.21 -> 198.51.100.9 tcp/443 staff>internet ALLOW R2 10.99.0.2 -> 172.16.0.10 tcp/22 mgmt>dmz ALLOW R5(১) ইন্টারনেট থেকে DMZ-এ শুধু ৪৪৩ খোলা (R1); SSH-এর কোনো নিয়ম নেই — default deny. ইন্টারনেটমুখী সার্ভারের SSH বাইরে খোলা না রাখা একটি মৌলিক নিয়ম। (২)
198.51.100.9কোনো ভেতরের prefix দিয়ে শুরু হয় না, তাই zone internet; staff থেকে internet-এ ৪৪৩ — R2, ALLOW. (৩) mgmt থেকে যে কোনো zone-এ SSH — R5, ALLOW: প্রশাসক jump host থেকে web সার্ভার পরিচালনা করতে পারেন। মোট গণনা তখন ১১-র মধ্যে ৬টি ALLOW. -
নিয়ম লিখুন: অফিসে CCTV ক্যামেরা বসানো হবে নতুন zone
cctv-এ (10.30.0.0/16). ক্যামেরা শুধু servers zone-এর ভিডিও রেকর্ডারে (NVR) RTSP (tcp/554) দিয়ে ভিডিও পাঠাবে; ক্যামেরা থেকে ইন্টারনেটে কিছুই যাবে না; প্রশাসক mgmt থেকে ক্যামেরার web পাতায় (tcp/443) যেতে পারবেন। simulator-এরzoneOfআরrules-এ কী যোগ করবেন? কোনো নিয়ম কি অপ্রয়োজনীয়?// zoneOf: add before the final "internet" ip.startsWith("10.30.") ? "cctv" : // rules: add { id: "R7", from: "cctv", to: "servers", svc: "tcp/554", act: "allow" }, { id: "R8", from: "mgmt", to: "cctv", svc: "tcp/443", act: "allow" }, { id: "R9", from: "cctv", to: "*", svc: "*", act: "deny" }, // optional: explicit, for clear logs“ক্যামেরা থেকে ইন্টারনেটে কিছুই নয়” — এর জন্য আলাদা নিয়ম দরকার নেই: default deny আগেই তা করে। R9 ঐচ্ছিক, log-এর জন্য — আর সেটি R7-এর পরে বসাতে হবে; first match-এ আগে থাকলে R7 কখনো মিলত না। প্রশাসকের নিয়ম লক্ষ করুন: আমাদের R5 শুধু SSH (২২) দেয়, তাই ৪৪৩-এর জন্য R8 লাগবেই। যাচাই করতে পরীক্ষার তালিকায়
["10.30.0.5", "10.20.0.7", "tcp/554"](ALLOW R7) আর["10.30.0.5", "198.51.100.20", "tcp/443"](DENY) যোগ করে চালান। IoT ক্যামেরার firmware প্রায়ই দুর্বল — তাই আলাদা zone-এ বন্দি রাখা।
নিজেকে যাচাই করুন
ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।
ক্রমএকটি ransomware ঘটনায় incident response-এর ধাপগুলো সঠিক ক্রমে সাজান (▲▼ চেপে সরান)
- প্রস্তুতি — যোগাযোগের তালিকা, পরীক্ষিত backup, কেন্দ্রীয় log
- শনাক্ত ও বিশ্লেষণ — অস্বাভাবিক ফাইল-পরিবর্তন দেখে ঘটনা ঘোষণা
- ঠেকানো — আক্রান্ত যন্ত্রগুলো নেটওয়ার্ক থেকে আলাদা করা
- নির্মূল — ঢোকার পথ খুঁজে বন্ধ করা, যন্ত্র পরিষ্কার image থেকে বসানো
- পুনরুদ্ধার — backup থেকে ডেটা ফেরত আর নিবিড় পর্যবেক্ষণ
- শিক্ষা — দোষারোপ ছাড়া পর্যালোচনা আর পরিকল্পনা হালনাগাদ
একটি অফিসের LAN-এ কেউ ARP spoofing করে দুই যন্ত্রের মাঝখানে বসে packet-এর ভেতরের লেখা বদলে দিল। CIA triad-এর কোন লক্ষ্য সবচেয়ে সরাসরি ভাঙল?
- Availability
- Integrity
- Non-repudiation
- Authorization
একটি ঝুঁকির likelihood 4 আর impact 5 (দুটিই 1–5 মাপে)। একটি control likelihood-কে 2-এ নামায়, impact বদলায় না। Risk = likelihood × impact ধরলে residual risk কত, আর ঝুঁকি কত শতাংশ কমল?
- 20, 0%
- 8, 60%
- 5, 75%
- 10, 50%
একটি firewall-এর নিয়ম ওপর থেকে নিচে মেলানো হয় (first match), শেষে default deny. নিয়ম: R1 staff→servers tcp/445 allow; R2 staff→* * deny; R3 staff→internet tcp/443 allow. staff zone-এর একটি ল্যাপটপ ইন্টারনেটের একটি ওয়েবসাইটে tcp/443-এ যেতে চাইলে কী হবে?
- DENY, R2-তে — কারণ R2 আগে মেলে, R3 কখনো দেখা হয় না
- ALLOW, R3-এ — কারণ সবচেয়ে সুনির্দিষ্ট নিয়ম জেতে
- ALLOW, R1-এ
- DENY, default deny-তে — কোনো নিয়ম মেলেনি
৭,৭৭৬ শব্দের একটি তালিকা থেকে এলোমেলোভাবে বাছা ৪টি শব্দের passphrase-এর entropy প্রায় কত বিট? (log₂ 7776 ≈ 12.9)
- প্রায় 12.9
- প্রায় 18.8
- প্রায় 51.7
- প্রায় 7776
একটি কোম্পানির website-এর সার্ভার DMZ-এ রাখা হয়েছে, আর firewall শুধু DMZ থেকে database-এ tcp/5432 অনুমতি দেয়, অন্য কোনো ভেতরের zone-এ নয়। এই নকশার প্রধান উদ্দেশ্য কী?
- website দ্রুত লোড করা
- website-এর সার্ভার আক্রান্ত হলেও ভেতরের নেটওয়ার্কে ক্ষতি সীমিত রাখা
- ইন্টারনেট থেকে website-এ প্রবেশ বন্ধ করা
- database-এর ডেটা encrypt করা
একজন কর্মী একটি ভুয়া লগইন পাতায় নিজের পাসওয়ার্ড আর SMS-এ আসা OTP টাইপ করে দিলেন। নিচের কোন ব্যবস্থা এই ধরনের phishing-এর বিরুদ্ধে সবচেয়ে শক্ত সুরক্ষা দেয়?
- Passkey বা FIDO2 hardware key, যা নির্দিষ্ট ডোমেইনের সাথে বাঁধা
- ২০ অক্ষরের আরও লম্বা পাসওয়ার্ড
- প্রতি মাসে বাধ্যতামূলক পাসওয়ার্ড বদল
- আরেকটি SMS OTP যোগ করা
একটি নেটওয়ার্ক-নিরাপত্তা দল ঠিক করল: একটি protocol-এর নিরাপত্তা বিশ্লেষণে ধরে নেওয়া হবে আক্রমণকারী নেটওয়ার্কের প্রতিটি বার্তা পড়তে, আটকাতে, বদলাতে আর নতুন বার্তা ঢোকাতে পারে, কিন্তু চাবি না জেনে encryption ভাঙতে পারে না। এই অনুমানের প্রচলিত নাম কী?
- Kerckhoffs-এর নীতি
- Passive eavesdropper মডেল
- Dolev–Yao মডেল
- Zero trust মডেল
শব্দকোষ
লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন — অর্থ দেখাবে। এই পর্বের সব নতুন শব্দ এখানে একসাথে:
মনে রাখুন
- ইন্টারনেট বিশ্বস্ত গবেষকদের জন্য তৈরি হয়েছিল; ১৯৮৮-র Morris worm থেকে শুরু করে নিরাপত্তা স্তরে স্তরে পরে জোড়া — তাই পুরোনো protocol যাচাই ছাড়াই বিশ্বাস করে।
- লক্ষ্য CIA (গোপনীয়তা, অখণ্ডতা, প্রাপ্যতা); প্রমাণ AAA (authentication, authorization, accounting) আর প্রয়োজনে non-repudiation.
- Risk = likelihood × impact; সম্পদ, দুর্বলতা আর হুমকি মিললে ঝুঁকি। control-এর পরেও residual risk থাকে। CVSS মাপে তীব্রতা, আপনার ঝুঁকি নয়।
- নীতি: least privilege, default deny, defence in depth, open design, attack surface কমানো, secure by default. Zone আর DMZ ক্ষতির পরিধি ছোট রাখে; zero trust অবস্থান নয়, প্রতিটি অনুরোধে পরিচয় যাচাই করে।
- প্রতিদিনের কাজ: MFA (সম্ভব হলে passkey), patch, ৩-২-১ backup (একটি অফলাইন), কেন্দ্রীয় log, অনুশীলিত incident response — আর পরীক্ষা শুধু নিজের বা লিখিত অনুমতির সিস্টেমে।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পর্ব ৪৭ · Cryptography-র ভিত্তি — symmetric, public key, hash আর signatureপরবর্তী পর্বconfidentiality আর integrity-র গাণিতিক হাতিয়ার।
- কম্পিউটার নেটওয়ার্ক · কোর্স হোম৬২টি পর্বপুরো কোর্সের রোডম্যাপ — দশটি মডিউল।
- পর্ব ১৮ · DHCP আর ARPফিরে দেখুনভুয়া DHCP, ARP spoofing আর DAI — LAN-এর বিশ্বাসের দুর্বলতা।
- Operating Systems · OS নিরাপত্তাপাশের ট্র্যাকযন্ত্রের ভেতরের CIA, authentication, পাসওয়ার্ড hash আর memory-safety বাগ।
- Operating Systems · Sandboxingপাশের ট্র্যাকleast privilege-এর OS রূপ — seccomp, namespace, SELinux আর AppArmor.