এই পর্বে যা শিখবেন
- Phishing-এর ধরন আর প্রতিটির প্রতিরক্ষা, ধারণার স্তরে
- যেকোনো URL-এর আসল মালিকের নাম বের করা
- নিরাপদ অভ্যাস, যেগুলো মনোযোগ কমে গেলেও কাজ করে
- প্রতিটি প্রযুক্তিগত স্তর কী থামায়, কী থামায় না
- একটি report থেকে triage, purge, block আর তদন্ত পর্যন্ত পথ
- Simulation-এর নৈতিকতা, গবেষণার ফল আর ঠিক metric
- Password দিয়ে ফেললে ঠিক কোন ক্রমে কী করবেন
১ · Phishing কী, আর কেন এটি এখনও বড় প্রবেশপথ
Phishing মানে বিশ্বস্ত কেউ সেজে মানুষকে দিয়ে এমন কিছু করানো, যা তিনি জেনে করতেন না: password দেওয়া, ফাইল খোলা, টাকা পাঠানো বা কোনো app-কে অনুমতি দেওয়া। এটি social engineering-এর সবচেয়ে পরিচিত রূপ। মনস্তত্ত্বের দিকটি পর্ব ৫২ (Social engineering প্রতিরক্ষা) দেখায়। এই পর্ব দেখাবে চেনা, report করা আর প্রযুক্তিগত বাধা।
বাজারের পকেটমার তালা ভাঙে না। সে ভিড়ের মধ্যে ধাক্কা দিয়ে আপনার মনোযোগ সরায়। Phishing-ও তাই: firewall ভাঙার বদলে ব্যস্ত একজন মানুষের এক মুহূর্তের মনোযোগ খোঁজে। প্রতিরক্ষাও তাই দুই রকম: সতর্ক থাকা, আর টাকা এমন জায়গায় রাখা, যাতে পকেট কাটলেও বড় ক্ষতি না হয়।
কেন এত বছর পরও এটি টিকে আছে? চারটি কারণ:
- খরচ কম: একটি বার্তা হাজার জনকে পাঠাতে প্রায় কিছুই লাগে না। আক্রমণকারীর দরকার একজন, রক্ষকের দরকার সবাই।
- নকশার ঐতিহ্য: Email, SMS আর ফোন শুরুতে প্রেরকের পরিচয় প্রমাণ করত না। পরিচয় যাচাই পরে জোড়া হয়েছে (পর্ব ২৬).
- আমাদের কাজই link খোলা: Invoice, শেয়ার করা ফাইল, ডেলিভারির খবর। সন্দেহ করাই যদি সারাদিনের কাজ হয়, সন্দেহ ক্লান্ত হয়।
- পরের ধাপের চাবি: একটি বৈধ login-এর পরে আক্রমণকারী “চেনা ব্যবহারকারী” হয়ে যান, যা সাধারণ alert-কে ফাঁকি দিতে পারে।
সংখ্যা নিয়ে সতর্ক থাকুন। ২০২৬ সালের Verizon DBIR-এর প্রকাশিত সারসংক্ষেপগুলো বলছে, breach-এর প্রবেশপথে vulnerability exploitation প্রায় ৩১% নিয়ে প্রথম, আর phishing প্রায় ১৬%. এই সংখ্যাগুলো মূল প্রতিবেদন নয়, প্রকাশিত সংবাদ ও সারসংক্ষেপ থেকে নেওয়া, আর শ্রেণিবিভাগ বছরে বছরে বদলায়। তাই phishing “সবসময় এক নম্বর” বলা ঠিক নয়, তবে এটি নিয়মিতই বড় প্রবেশপথ। টাকার দিকে FBI IC3-র ২০২৫ সালের বার্ষিক প্রতিবেদনে business email compromise থেকে অভিযোগ করা ক্ষতি প্রায় ৩০৫ কোটি ডলার, যা শুধু যুক্তরাষ্ট্র-কেন্দ্রিক অভিযোগের ছবি।
সীমারেখা: এই পর্ব প্রতিরক্ষার জন্য। এখানে কোনো phishing template, kit বা filter এড়ানোর কৌশল নেই। অন্য কাউকে ভুয়া বার্তা পাঠানো, এমনকি “মজা করে” বা “পরীক্ষার জন্য”, অনুমতি ছাড়া অপরাধ হতে পারে। প্রতিষ্ঠানের simulation-ও চলবে শুধু লিখিত অনুমোদনে। আইন আর অনুমতির কথা পর্ব ৬-এ আছে। পাতার সব উদাহরণ কাল্পনিক।
২ · Phishing-এর নানা রূপ
লক্ষ্য একই, চ্যানেল আর প্রস্তুতি আলাদা। ধরন চিনলে বুঝবেন কোন প্রতিরক্ষা কোনটিতে কাজ করে।
| ধরন | যা ঘটে (ধারণা) | মূল প্রতিরক্ষা |
|---|---|---|
| Mass phishing | একই বার্তা বহু মানুষের কাছে | Gateway, browser সুরক্ষা, DMARC |
| Spear phishing | একজনের কাজ জেনে বানানো বার্তা | Phishing-প্রতিরোধী MFA, অন্য পথে যাচাই |
| Whaling | শীর্ষ কর্মকর্তা বা তাঁদের সহকারী লক্ষ্য | টাকা ও অনুমোদনের দুই-ব্যক্তি নিয়ম |
| Smishing | SMS বা chat-এ link | Link না খুলে নিজে app বা সাইটে যাওয়া, carrier-এ report |
| Vishing | ফোনে IT, ব্যাংক বা অফিস সেজে কথা | ফোন কেটে জানা নম্বরে ফিরতি কল, help desk-এর পরিচয় যাচাই |
| QR phishing | QR code-এর পেছনে নকল ঠিকানা | খোলার আগে domain পড়া, ফোনেও একই সুরক্ষা, passkey |
| Consent phishing | আসল login পাতায় ক্ষতিকর app-কে অনুমতি | Admin consent, grant-এর নজরদারি (পর্ব ১৮) |
| Adversary-in-the-middle | নকল সাইট মাঝে বসে আসল সাইটে তথ্য পৌঁছে দেয় | Origin-বাঁধা MFA, conditional access, session নজরদারি |
শেষ ধরনটি আলাদা গুরুত্ব পায়, কারণ এটি হাতে টাইপ করা OTP-কেও কাজে লাগাতে পারে। শুধু password নয়, চুরি হতে পারে পুরো session. Relay-এর ধারণা পর্ব ১৬-এ দেখেছেন। নিচের ছবিটি শুধু মূল পার্থক্য দেখায়: passkey কেন এখানে কাজে লাগে।
মাঝে বসা নকল সাইট: OTP বনাম origin-বাঁধা login
A typed code can be relayed; a signature bound to the origin cannot be reused
৩ · লক্ষণ দেখা, আর “বানান ভুল খোঁজা” কেন আর চলে না
নিচে একটি পুরোপুরি কাল্পনিক বার্তার বিবরণ, নমুনা লেখা নয়, শুধু লক্ষণ চেনার জন্য। আসল বার্তা অনেক সময় এর চেয়ে বহু গুণ বিশ্বাসযোগ্য হয়।
কাল্পনিক উদাহরণ — সন্দেহজনক বার্তার বিবরণ
From: "IT Support" <notice@example-com.example>
বিষয়: আজই কিছু করার তাড়া
ভেতরে: account বন্ধের ভয়, আর একটি link-এ যেতে বলা
Link: https://example.com.example.net/verify
এখানে যা দেখার:
- প্রেরকের domain: দেখানো নাম “IT Support” যে কেউ লিখতে পারে। আসল ঠিকানাটি অফিসের
example.comনয়। - তাড়া আর ভয়: আজই করতে হবে, নইলে বন্ধ। চিন্তা করার সময় কেড়ে নেওয়াই উদ্দেশ্য।
- প্রক্রিয়ার সাথে অমিল: আপনার IT বিভাগ কি সত্যিই এভাবে যাচাই করতে বলে?
- Link-এর আসল গন্তব্য: শুরুতে
example.comথাকলেও মালিক অন্য কেউ। পরের অংশে দেখবেন কেন। - অনুরোধটি: Password, OTP, PIN, টাকা পাঠানো, gift card, ব্যাংক হিসাব বদলানো, remote access. এগুলো চাইলেই থামুন।
কেন “টাইপো ধরুন” পরামর্শটি দুর্বল হচ্ছে
বহু বছর ধরে সচেতনতা প্রশিক্ষণ শেখাত: খারাপ বাংলা বা ইংরেজি মানেই phishing. এখন LLM মিনিটে নির্ভুল, ব্যক্তিগত ভঙ্গির লেখা দিতে পারে। Heiding, Lermen, Kao, Schneier ও Vishwanath-এর (arXiv, ২০২৪) ১০১ জনের ছোট পরীক্ষায় সাধারণ নমুনা বার্তায় click ছিল প্রায় ১২%, আর মানুষ-বিশেষজ্ঞ ও সম্পূর্ণ AI-লিখিত বার্তা দুটিতেই প্রায় ৫৪%. নমুনা ছোট আর এটি নিয়ন্ত্রিত পরীক্ষা, তাই সংখ্যাটি সব জায়গায় খাটবে না। দিকটি অবশ্য পরিষ্কার: ভাষার মান আর পরিচয়ের প্রমাণ নয়।
তাই লক্ষণের ক্রম বদলান। আগে দেখুন ভাষা নয়, অনুরোধ, তারপর domain, তারপর প্রক্রিয়া। মনে রাখুন, আপসকৃত আসল account থেকেও phishing আসতে পারে। তখন domain-ও ঠিক থাকে, শুধু অনুরোধটি অস্বাভাবিক লাগে। AI-তে বানানো কণ্ঠ বা ভিডিও ফোনেও একই নীতি: পরিচিত গলা প্রমাণ নয়, অন্য পথে যাচাইই প্রমাণ।
লক্ষণ দেখে ধরা একটি সহায়ক দক্ষতা, প্রধান নিয়ন্ত্রণ নয়। প্রশ্নটি “এটি phishing কি না” না রেখে করুন: “এই কাজটি এই পথে করা কি নিয়মের মধ্যে পড়ে?”
৪ · URL পড়তে শেখা — ডান দিক থেকে মালিক খুঁজুন
দোকানের সাইনবোর্ডে যে কেউ একটি নামকরা ব্যাংকের নাম লিখতে পারেন। দোকানের আসল মালিক লেখা থাকে দলিলে। URL-এ সাইনবোর্ড হলো বাঁ দিকের subdomain, আর দলিল হলো registrable domain. আক্রমণকারী সাইনবোর্ডে যা খুশি লিখতে পারেন, দলিলে নয়।
নিয়মটি হলো: প্রথমে //-এর পর থেকে প্রথম /, ? বা # পর্যন্ত host খুঁজুন। @ থাকলে তার বাঁ দিকটি host নয়। তারপর host-এর ডান প্রান্ত থেকে public suffix (.com, .com.bd) চিনুন। ঠিক তার আগের নামসহ অংশটিই registrable domain. নিচের কাল্পনিক ঠিকানাটি ধরে এগোন। আশা করছিলেন example.com.
https://
example.com.example.net
/verify?id=7
https:// example.com.example.net /verify?id=7
https:// example.com.example.net /verify?id=7
https:// example.com.example.net /verify?id=7
https:// example.com.example.net /verify?id=7
| scheme | |
| host | |
| suffix | |
| মালিক | |
| ফল |
- ধাপ ১ — Scheme দেখুন, ভরসা নয়।
httpsমানে পথের সংযোগ encrypted. এতে সাইটটি সৎ কি না জানা যায় না, কারণ নকল সাইটও certificate নিতে পারে। - ধাপ ২ — পথ বাদ দিন।
/verify?id=7সাইটের ভেতরের পথ। এখানে যা-ই লেখা থাকুক, মালিকের পরিচয় বদলায় না। - ধাপ ৩ — Host আলাদা করুন।
//আর প্রথম/-এর মাঝের অংশexample.com.example.net.@নেই, তাই পুরোটাই host. - ধাপ ৪ — ডান প্রান্ত থেকে পড়ুন।
.netহলো public suffix. এই কারণেই বাঁ থেকে পড়লে ভুল হয়: চোখexample.comদেখেই থেমে যায়। - ধাপ ৫ — মালিক বের করুন। Suffix-এর ঠিক আগের নামসহ
example.net-ই registrable domain. বাঁ দিকেরexample.com.শুধু subdomain, যাexample.net-এর মালিক নিজেই বসিয়েছেন। - ধাপ ৬ — তুলনা করুন। আশা ছিল
example.com, পাওয়া গেলexample.net. মিলল না। Page বন্ধ করুন, নিজে ঠিকানা টাইপ করে আসল সাইটে যান, আর বার্তাটি report করুন।
চেহারায় কাছাকাছি নাম
Typosquatting-এ অক্ষর এক-আধটু বদলে একটি কাছাকাছি নাম নেওয়া হয়: l-এর বদলে 1, m-এর বদলে rn, বা মাঝে হাইফেন। আরও সূক্ষ্ম ধারণা হলো IDN homograph. Domain-এ এখন নানা ভাষার অক্ষর চলে (Internationalized Domain Name). এতে বাংলা নামের domain-ও সম্ভব, যা ভালো কথা। কিন্তু Latin a আর Cyrillic а দেখতে প্রায় এক, যদিও কম্পিউটারের কাছে আলাদা অক্ষর। DNS-এ এমন নাম যায় Punycode রূপে, xn-- দিয়ে শুরু।
ব্রাউজারগুলো নিজ নিজ নিয়মে সন্দেহজনক মিশ্র অক্ষরের নাম Punycode-এ দেখায়। নিয়ম একেক ব্রাউজারে একেক রকম, আর চোখ দিয়ে এটি নিয়মিত ধরা কঠিন। তাই এর সমাধান মানুষের চোখ নয়: password manager আর passkey অক্ষর ধরে মেলায়, চেহারা ধরে নয়।
নিচের কোডটি একই নিয়ম প্রোগ্রামে করে। এটি নিজে ভাঙাচোরা string কাটে না, ভাষার URL parser ব্যবহার করে, আর ছোট একটি কাল্পনিক suffix তালিকা দেখে। কোনো request পাঠানো হয় না।
// Toy URL reader. Reserved example names only; no request is sent.
// Real tools use the full Public Suffix List. This short list is invented.
const suffixes = ['com', 'net', 'org', 'example', 'co.example'];
const expected = 'example.com';
function registrable(host) {
const labels = host.split('.');
for (let i = 0; i < labels.length; i++) { // longest suffix first
if (suffixes.includes(labels.slice(i).join('.'))) {
return i === 0 ? '(suffix only)' : labels.slice(i - 1).join('.');
}
}
return '(unknown suffix)';
}
const urls = [
'https://www.example.com/pay',
'https://example.com.example.net/pay',
'https://example.com@example.org/pay',
'https://example-com.example/pay',
'https://examp1e.example/pay',
'https://exаmple.example/pay', // Cyrillic a inside the name
'https://pay.shop.co.example/pay',
];
for (const raw of urls) {
const host = new URL(raw).hostname; // the parser finds the real host
const reg = registrable(host);
const verdict = reg === expected ? 'MATCH' : 'DIFFERENT';
console.log(verdict.padEnd(10) + reg.padEnd(26) + 'host=' + host);
}আউটপুটের প্রথম লাইন MATCH example.com: www subdomain, মালিক ঠিক। বাকি ছয়টিই DIFFERENT. @-ওয়ালা ঠিকানায় আসল host বেরোল host=example.org, বাঁ দিকের example.com শুধু ব্যবহারকারীর নামের জায়গায় ছিল। হাইফেনওয়ালা নাম example-com.example একটি আলাদা domain. Cyrillic অক্ষরের নামটি parser বদলে দিল xn--exmple-4nf.example-এ, অর্থাৎ চোখে এক লাগলেও মেশিনে পুরো আলাদা। শেষ লাইনে suffix দুই অংশের (co.example), তাই মালিক shop.co.example; শেষ দুই অংশ নেওয়ার সরল নিয়মে এটি ভুল হতো। এজন্যই আসল কাজে Public Suffix List লাগে। .com.bd-তেও একই কথা খাটে।
৫ · নিরাপদ অভ্যাস — মনোযোগ কমলেও যা কাজ করে
প্রতিটি link পরীক্ষা করা অসম্ভব, বিশেষ করে ক্লান্ত দুপুরে বা ফোনের ছোট পর্দায়। ভালো অভ্যাস সেটি, যার জন্য আলাদা বিচার লাগে না।
- Link নয়, নিজের পথ: ব্যাংক, মোবাইল ব্যাংকিং, অফিস portal বা কোনো সরকারি সেবার বার্তা এলে link চাপবেন না। নিজের সংরক্ষিত bookmark বা অফিসিয়াল app দিয়ে ঢুকুন। সত্যি কিছু থাকলে সেখানেই দেখবেন।
- অন্য পথে যাচাই: টাকা বা হিসাব বদলের অনুরোধ এলে জানা নম্বরে ফোন করুন, বার্তার দেওয়া নম্বরে নয়। পুরোনো খাতায় লেখা নম্বরই ভরসা।
- OTP আর PIN কাউকে না: ব্যাংক, মোবাইল অপারেটর বা IT সাপোর্ট কখনো এগুলো চাওয়ার কথা নয়। চাইলে সেটিই লক্ষণ।
- Password manager ব্যবহার: এটি যাচাই করা domain ধরে পূরণ করে, চেহারা ধরে নয়।
- Passkey বা security key: যেখানে আছে, চালু করুন (পর্ব ১৬).
- QR code: খাবার দোকান বা বিলবোর্ডে চিপকানো QR-এর ওপরে আলাদা স্টিকার আছে কি না দেখুন। খোলার আগে ফোনে দেখানো domain পড়ুন।
আপনার password সংরক্ষিত আছে example.com-এর জন্য। নকল পাতা example.com.example.net হুবহু একই দেখালেও manager কোনো পূরণের প্রস্তাব দেবে না, কারণ ঠিকানা মেলে না। যেখানে সাধারণত নিজে থেকে ভরে যায়, সেখানে না ভরা নিজেই একটি সতর্কবার্তা। তখন হাতে copy করে বসাবেন না; থেমে ঠিকানা পড়ুন। সীমা হলো, মানুষ ইচ্ছে করলে হাতে পেস্ট করতে পারেন, আর কিছু আসল সাইটও অন্য domain-এ login নেয়। তাই এটি শক্ত দেয়াল নয়। আসল শক্ত দেয়াল হলো passkey-র মতো origin-বাঁধা login.
ব্যক্তিগত জীবনে: বাড়ির বয়স্ক সদস্য বা নতুন স্মার্টফোন ব্যবহারকারীদের সাথে একটি সহজ নিয়ম ঠিক করে নিন: “OTP চাইলে ফোন কেটে দিন, আর আমাকে ফোন করুন।” লজ্জার কিছু নেই। সবচেয়ে সচেতন মানুষও ক্লান্ত সময়ে ঠকতে পারেন।
৬ · প্রযুক্তিগত স্তর — প্রতিটি কী থামায়, কী থামায় না
মহল্লার নিরাপত্তায় যেমন গেট, দারোয়ান, রাতের পাহারা আর ঘরের তালা একসাথে থাকে, phishing-এও তেমনি defense in depth লাগে (পর্ব ৩). যুক্তরাজ্যের NCSC-র নির্দেশিকাও স্তরভিত্তিক প্রতিরক্ষার কথা বলে, যেখানে ব্যবহারকারীর চোখ একমাত্র ভরসা নয়। ২০২৩ সালে CISA, NSA, FBI ও MS-ISAC-এর যৌথ নির্দেশিকা phishing-এর দুটি লক্ষ্যে জোর দেয়: credential চুরি আর malware ঢোকানো।
একটি phishing বার্তার পথে সাতটি স্তর
Layers from sending domain to detection after login
| স্তর | যা থামায় | যা থামায় না | কীভাবে জানবেন |
|---|---|---|---|
| SPF, DKIM, DMARC (পর্ব ২৬) | আপনার domain-এর নামে জাল From | কাছাকাছি নামের domain, আপসকৃত আসল account | DMARC aggregate report |
| Email gateway আর sandbox | চেনা প্রেরক-খ্যাতি, ক্ষতিকর ফাইল, ছদ্মবেশের ধরন | একদম নতুন domain, নির্ভুল সামাজিক বার্তা | Quarantine log, মিস হওয়া report |
| Link rewriting | পরে খারাপ হওয়া link | SMS, ফোন, ব্যক্তিগত mail; ব্যবহারকারী আসল URL কম দেখেন | Click log: কে কখন চাপলেন |
| Browser সুরক্ষা (safe browsing, browser isolation) | তালিকাভুক্ত নকল সাইট | একেবারে নতুন সাইট | Browser policy report |
| Protective DNS | চেনা খারাপ বা খুব নতুন domain-এ যাওয়া | বৈধ সেবায় রাখা পাতা | DNS log, sinkhole hit |
| Phishing-প্রতিরোধী MFA (পর্ব ১৬) | নকল সাইটে দেওয়া credential-এর ব্যবহার, relay | Consent phishing, দুর্বল recovery, ডিভাইসে malware | IdP login log |
| Conditional access | অচেনা যন্ত্র বা ঝুঁকিপূর্ণ জায়গা থেকে login | আপনার নিজের অনুমোদিত যন্ত্রে হওয়া ভুল | Sign-in risk log |
চিঠির header থেকে প্রথম স্তরের ফল দেখা যায়। আপনার mail server Authentication-Results নামের একটি লাইন (RFC 8601) যোগ করে। এখানে দুটি বড় ফাঁদ: প্রেরকও এমন একটি লাইন আগেই লিখে পাঠাতে পারেন, তাই শুধু নিজের server-এর লাইন গণ্য; আর dmarc=pass মানে domain প্রমাণিত, উদ্দেশ্য সৎ নয়। নিচে কাল্পনিক চারটি চিঠি। mx.example.org আমাদের নিজের server.
// Toy Authentication-Results reader (format from RFC 8601). Invented data.
// Only the line stamped by OUR OWN receiving server is trusted.
const ourServer = 'mx.example.org', ourPartners = ['example.com'];
const mails = {
A: ['mx.example.org; spf=pass smtp.mailfrom=example.com; ' +
'dkim=pass header.d=example.com; dmarc=pass header.from=example.com'],
B: ['mx.example.org; spf=pass smtp.mailfrom=example.net; ' +
'dkim=none; dmarc=fail header.from=example.com'],
C: ['mx.example.org; spf=pass smtp.mailfrom=example-com.example; ' +
'dkim=pass header.d=example-com.example; ' +
'dmarc=pass header.from=example-com.example'],
D: ['relay.example.net; dmarc=pass header.from=example.com',
'mx.example.org; spf=fail smtp.mailfrom=example.net; ' +
'dkim=none; dmarc=fail header.from=example.com'],
};
function read(lines) {
const line = lines.find(l => l.split(';')[0].trim() === ourServer);
if (!line) return 'no trusted line: treat as unauthenticated';
const dmarc = /dmarc=(\w+)/.exec(line)[1];
const from = /header\.from=([\w.-]+)/.exec(line)[1];
const skipped = lines.length - 1;
let note = dmarc !== 'pass' ? 'SUSPECT: From is not proven'
: ourPartners.includes(from) ? 'OK: domain proven and known'
: 'CAUTION: proven, but unknown domain';
if (skipped) note += ' (ignored ' + skipped + ' other line)';
return 'from=' + from + ' dmarc=' + dmarc + ' -> ' + note;
}
for (const id in mails) console.log(id + ': ' + read(mails[id]));B: ... SUSPECT: From is not proven: SPF pass হলেও সেটি example.net-এর, From-এর example.com-এর নয়, তাই alignment ভেঙে DMARC fail. C: ... CAUTION: proven, but unknown domain-ই আসল শিক্ষা: কাছাকাছি নামের domain-এর মালিক নিজের জন্য সব ঠিকঠাক সাজাতে পারেন, ফল সব pass. D-তে ওপরের relay.example.net লাইনটি pass দাবি করেছে, কিন্তু কোড তা উপেক্ষা করল (ignored 1 other line) আর নিজের server-এর fail ধরল। নিজের mail-এর header পড়ার সময়ও এভাবেই পড়ুন।
আরও গভীরে: Registrable domain বের করার নিয়ম আর site-এর সীমা Public Suffix List-এর ওপর দাঁড়িয়ে (পর্ব ৩৬). মিশ্র অক্ষরের নাম চেনার কৌশলের ভিত্তি Unicode UTS #39 (Security Mechanisms), আর ব্রাউজারের নিজস্ব IDN নীতি তার ওপর গড়া। Authentication-Results-এর বিন্যাস RFC 8601-এ, আর ভেতরের DMARC এখন RFC 9989 অনুসরণ করে। WebAuthn-এর origin যাচাই ব্যবহারকারীর বিচারের ওপর নির্ভর করে না; এটিই “phishing-প্রতিরোধী” কথাটির প্রকৌশলগত অর্থ।
৭ · Report বোতাম থেকে mailbox purge
Filter যেটি পার হলো, তার প্রথম খবর সাধারণত একজন মানুষই দেন। তাই সবচেয়ে সহজ জায়গায় একটি report বোতাম রাখুন: mail app-এর ওপরেই, এক চাপে, যেখানে চিঠিটি পুরো header-সহ SOC-এ পৌঁছায়। ফোন বা SMS-এর জন্য একটি সহজ নম্বর বা chat চ্যানেল রাখুন। একজন report করলে তাঁকে দ্রুত জানান “ধন্যবাদ, দেখা হচ্ছে”। Lain ও সহকর্মীদের গবেষণায় (২০২২) ইতিবাচক সাড়া পরে আরও report বাড়িয়েছিল। ওই গবেষণায় report-এর গড় সঠিকতা ছিল প্রায় ৬৮%, তাই ভুল report-ও আসবে, আর সেজন্যই triage লাগে। ভুল report-এর জন্য কাউকে বকবেন না।
কেন দ্রুত report এত দামি: একটি হিসাব
ধরুন একটি প্রচার n জনের কাছে গেল, আর প্রত্যেকের ৫ মিনিটের মধ্যে report করার সম্ভাবনা r, একে অপরের ওপর নির্ভর না করে (সরল অনুমান)। অন্তত একজনের report পাওয়ার সম্ভাবনা:
P = 1 − (1 − r)^n
r = ২% হলে: n = ২০ তে P = ১ − ০.৯৮২০ = ১ − ০.৬৬৭৬ ≈ ৩৩.২%; n = ১০০ তে ১ − ০.১৩২৬ ≈ ৮৬.৭%. অর্থাৎ প্রত্যেকে কম report করলেও, দলে অন্তত একজন প্রায় নিশ্চিত। ৯৫% নিশ্চয়তার জন্য n ≥ ln(০.০৫) ÷ ln(০.৯৮) ≈ ১৪৮.৩, মানে ১৪৯ জন। ছোট লক্ষ্যবস্তু প্রচারে n ছোট, তাই spear phishing-এ report-এর ওপর একা ভরসা করা যায় না।
নিচে একটি কাল্পনিক প্রতিষ্ঠানে ১৮০ জনের mailbox-এ পৌঁছানো একটি বার্তার পথ দেখুন। সময় বার্তা পৌঁছানোর পর থেকে গোনা।
- Reportকর্মী
- TriageSOC
- PurgeMailbox
- BlockDomain
- ResetAccount
| সময় | |
| Report | |
| Inbox-এ বার্তা | |
| Quarantine | |
| Click | |
| অবস্থা |
- ধাপ ১ — বার্তা পৌঁছাল। Gateway ধরেনি। ১৮০টি inbox-এ বার্তা। কেউ এখনও কিছু জানে না।
- ধাপ ২ — প্রথম report (৬ মিনিট). একজন কর্মী বোতাম চাপলেন। তার আগেই ৩ জন click করে ফেলেছেন। Report-টি ঘড়ির কাঁটা থামায় না, শুধু দৌড় শুরু করে।
- ধাপ ৩ — Triage (৯ মিনিট). Triage-এ ৪টি report এক case-এ জোড়া। Registrable domain, Authentication-Results আর sandbox-এর ফল দেখে analyst নিশ্চিত করলেন। Report আসল, এটি false positive নয়।
- ধাপ ৪ — খোঁজার পরিধি (১৪ মিনিট). IOC নেওয়া হলো: প্রেরক আর URL. মুছে ফেলার আগে dry run, মানে কিছু না সরিয়ে শুধু গোনা: ঠিক ১৮০টি মিলল, ভুল কিছু নেই।
- ধাপ ৫ — Purge (১৮ মিনিট). ১৮০টি বার্তা quarantine-এ, মানে আলাদা করে রাখার জায়গায় গেল। হাতে থাকল প্রমাণ, আর ফিরিয়ে আনার পথ। এর মধ্যে click হয়েছে মোট ৭টি। Purge আগে হলে আরও কম হতো।
- ধাপ ৬ — Block (২২ মিনিট). Domain আর URL গেল gateway, protective DNS আর proxy-র block তালিকায়। যাঁরা আগেই tab খোলা রেখেছেন, তাঁরাও আর পৌঁছাবেন না।
- ধাপ ৭ — Reset (৩০ মিনিট). Proxy log আর login log-এ ৭ জনের click মিলিয়ে দেখা গেল ২ জন পাতায় তথ্য দিয়েছেন। তাঁদের password reset আর সব session বাতিল।
- ধাপ ৮ — তদন্ত (৬০ মিনিট). ওই ২ জনের account-এ নতুন inbox rule, MFA method বা অচেনা login আছে কি না দেখা। Report দাতাদের জানানো হলো ফল। শিক্ষা গেল detection-এ। পুরো কাঠামো পর্ব ৬০ (SOC পরিচালনা) আর পর্ব ৬১ (Incident response) দেখাবে।
এই পথের সবচেয়ে কঠিন ধাপটি purge, কারণ ভুল search-এ বৈধ চিঠিও মুছে যায়। নিচের সিমুলেটরে একটি কাল্পনিক in-memory mailbox আছে। একজন আসল ব্যবসায়িক সহযোগীও একই বিষয় দিয়ে চিঠি পাঠিয়েছেন।
// Toy mailbox purge. In-memory objects only; no mail server is touched.
const mail = [
{ box: 'rina', from: 'notice@example.net', subj: 'Invoice 44', url: 'example.net/v', clicked: true },
{ box: 'tuhin', from: 'notice@example.net', subj: 'Invoice 44', url: 'example.net/v', clicked: false },
{ box: 'mitu', from: 'notice@example.net', subj: 'Invoice 44', url: 'example.net/v', clicked: true },
{ box: 'sohel', from: 'notice@example.net', subj: 'Invoice 44', url: 'example.net/v', clicked: false },
{ box: 'rina', from: 'billing@example.org', subj: 'Invoice 44', url: 'example.org/i', clicked: false },
{ box: 'mitu', from: 'hr@example.com', subj: 'Leave form', url: 'example.com/l', clicked: true },
];
const quarantine = [], log = [];
const broad = m => m.subj === 'Invoice 44';
const scoped = m => m.from === 'notice@example.net' && m.url === 'example.net/v';
function dryRun(rule) { return mail.filter(rule).length; }
function purge(rule, who) {
for (const m of mail.filter(rule)) {
mail.splice(mail.indexOf(m), 1);
quarantine.push(m); // kept as evidence, can be restored
}
log.push(who + ' moved ' + quarantine.length + ' to quarantine');
}
console.log('dry run, subject only :', dryRun(broad), 'match (1 is a real invoice!)');
console.log('dry run, from + url :', dryRun(scoped), 'match');
const followUp = mail.filter(scoped).filter(m => m.clicked).map(m => m.box);
purge(scoped, 'analyst-1');
console.log('left in mailboxes :', mail.map(m => m.box + ':' + m.subj).join(', '));
console.log('quarantined :', quarantine.length);
console.log('follow up with :', followUp.join(', '));
console.log('audit log :', log[0]);শুধু বিষয় দিয়ে খুঁজলে 5 match, যার একটি আসল invoice. প্রেরক আর URL মিলিয়ে 4 match. Purge-এর পর left in mailboxes-এ বৈধ দুটি চিঠি রয়ে গেল। মোছা নয়, quarantine: ভুল হলে ফেরানো যায়, আর চিঠিটি প্রমাণও। follow up with : rina, mitu তালিকাটি purge-এর আগে তৈরি হয়েছে, কারণ পরে সেই চিঠি mailbox-এ থাকবে না। audit log বলে কে কী করেছেন। Purge বহু মানুষের mailbox-এ হাত দেয়, তাই অধিকার সীমিত রাখুন, লগ রাখুন, আর ব্যক্তিগত চিঠি পড়ার সুযোগ দেবেন না।
৮ · Phishing simulation — নৈতিকতা, গবেষণা আর ঠিক metric
Phishing simulation মানে প্রতিষ্ঠান অনুমোদিতভাবে নিজের কর্মীদের কাছে নকল phishing পাঠিয়ে দেখে, মানুষ ও প্রক্রিয়া কেমন সাড়া দিচ্ছে। এটি অগ্নি-মহড়ার মতো হতে পারে: লক্ষ্য মানুষকে লজ্জা দেওয়া নয়, দরজা আর সিঁড়ি পরীক্ষা করা। কিন্তু গবেষণা বলে, এর ফল অনেকের ধারণার চেয়ে অনেক সীমিত।
| গবেষণা | প্রেক্ষাপট | প্রকাশিত ফল | সতর্কতা |
|---|---|---|---|
| Lain, Kostiainen, Čapkun (IEEE S&P ২০২২) | একটি বড় প্রতিষ্ঠান, ১৪,৭৭৩ জন, ১৫ মাস | প্রায় ৩২% অন্তত একবার click করেন; ঐচ্ছিক embedded training সুরক্ষা বাড়ায়নি, বরং ওই দল বেশি পড়েছে; চিঠির সতর্কবার্তা কাজে লেগেছে; দলগত report টেকসই আর দ্রুত ছিল | একটি প্রতিষ্ঠান; বাধ্যতামূলক training পরীক্ষা হয়নি; ফলের কারণ নিশ্চিত নয় |
| Ho ও সহকর্মীরা (IEEE S&P ২০২৫) | একটি স্বাস্থ্যসেবা প্রতিষ্ঠান, ১৯,৫০০-এর বেশি কর্মী, ৮ মাস, randomized পরীক্ষা, ১০টি প্রচার | সাম্প্রতিক বার্ষিক training-এর সাথে কম পড়ার সম্পর্ক পাওয়া যায়নি; embedded training-এ ব্যর্থতার হার গড়ে মাত্র ১.৭% কম; ৭৫%-এর বেশি training session-এ কর্মীরা এক মিনিটেরও কম সময় দেন | এক খাতের একটি প্রতিষ্ঠান |
| Steves, Greene, Theofanos (NIST Phish Scale, ২০২০) | Simulation বার্তার কঠিনতা মাপার পদ্ধতি | Click হার একা বিভ্রান্তিকর; কম হার মানে শুধু বার্তা সহজ ছিল, এমনও হতে পারে | এটি মাপার পদ্ধতি, প্রশিক্ষণের ফলাফল নয় |
একই সাথে পুরোনো কিছু গবেষণা (যেমন Kumaraguru ও সহকর্মীদের ২০০৯ সালের কাজ) প্রশিক্ষণের ইতিবাচক ফল পেয়েছিল। ফল প্রতিষ্ঠান, পদ্ধতি আর মাপার ধরনভেদে বদলায়। তাই সৎ অবস্থান হলো: training-কে বাদ দেওয়া নয়, তবে একে প্রধান নিয়ন্ত্রণও না ভাবা। Ho ও সহকর্মীদের সুপারিশও প্রযুক্তিগত প্রতিরক্ষায় জোর দেওয়া। গবেষণার দ্বিতীয় বড় শিক্ষা: Ho-র গবেষণায় একই প্রতিষ্ঠানে বার্তাভেদে click হার ১.৮২% থেকে ৩০.৮% পর্যন্ত গেছে। অর্থাৎ বার্তা বদলালেই হার বদলায়, মানুষ নয়।
নৈতিক নিয়ম
- লিখিত অনুমোদন: পরিচালনা, HR আর আইন বিভাগের সম্মতি, স্পষ্ট পরিধি, আর কর্মীদের আগে জানানো যে এমন কর্মসূচি আছে।
- আসল password নেবেন না: Simulation-এর কোনো ফর্মে কেউ কিছু টাইপ করলে তা সংরক্ষণ নয়। “জমা দেওয়া হয়েছে” এটুকুই গণনা।
- নিষ্ঠুর লোভ নয়: বোনাস, ছাঁটাই, স্বাস্থ্য বা শোকের গল্প ব্যবহার করবেন না। এতে আস্থা ভাঙে।
- শাস্তি নয়: শাস্তির ভয়ে মানুষ click লুকাবেন, আর ঠিক সেটিই SOC-এর সবচেয়ে বড় ক্ষতি। প্রয়োজন হলে সহায়তা আর প্রক্রিয়া বদল। পর্ব ৫৪ (নিরাপত্তা সংস্কৃতি) এটি বিস্তারে দেখায়।
- তথ্য গোপন রাখা: ব্যক্তির নাম ধরে তালিকা বানিয়ে ম্যানেজারদের পাঠানো নয়, দলভিত্তিক সারাংশ দেওয়া।
কী মাপবেন
শুধু কত জন পড়লেন দেখলে আপনি মানুষকে দোষী বানাচ্ছেন। দেখুন কত দ্রুত প্রতিষ্ঠান জানল। Report rate আর প্রথম report-এর সময় সরাসরি SOC-এর সাড়ার সক্ষমতা মাপে। নিচে দুটি কাল্পনিক দফার হিসাব। আসল simulation-এ বার্তার কঠিনতা মিলিয়ে তবেই তুলনা চলে।
// Toy phishing-simulation funnel. All numbers are invented.
const runs = [
{ name: 'Run 1', delivered: 400, opened: 260, clicked: 48, submitted: 22,
reported: 36, reportMin: [41, 12, 95, 30, 66, 18, 120] },
{ name: 'Run 2', delivered: 400, opened: 255, clicked: 52, submitted: 14,
reported: 120, reportMin: [3, 9, 5, 21, 14, 7, 33, 11, 6] },
];
const pct = (a, b) => (100 * a / b).toFixed(1) + '%';
function median(xs) {
const s = [...xs].sort((a, b) => a - b), m = Math.floor(s.length / 2);
return s.length % 2 ? s[m] : (s[m - 1] + s[m]) / 2;
}
for (const r of runs) {
console.log(r.name);
console.log(' click rate ' + pct(r.clicked, r.delivered));
console.log(' submit rate ' + pct(r.submitted, r.delivered));
console.log(' report rate ' + pct(r.reported, r.delivered));
console.log(' reports/click ' + (r.reported / r.clicked).toFixed(2));
console.log(' first report ' + Math.min(...r.reportMin) + ' min');
console.log(' median report ' + median(r.reportMin) + ' min');
}শুধু click দেখলে দ্বিতীয় দফা খারাপ: click rate 12.0% থেকে 13.0%. কিন্তু report rate 9.0% থেকে 30.0%, reports/click 0.75 থেকে 2.31, প্রথম report 12 min থেকে 3 min, আর মধ্যমা 41 min থেকে 9 min. আগের হিসাবের সাথে মেলালে বোঝা যায়, দ্বিতীয় দফায় প্রতিষ্ঠান অনেক দ্রুত জানত আর ক্ষতি কম হতো। opened কোডে থাকলেও হার হিসাবে আনা হয়নি: mail app ছবি আটকে দিলে “খোলা” নির্ভরযোগ্যভাবে মাপা যায় না। আর click rate-কে লক্ষ্য-সংখ্যা (KPI) বানালে একে কমাতে সহজ বার্তা পাঠানোর লোভ জাগে।
৯ · Click করে ফেললে, বা password দিয়ে ফেললে
প্রথম কথা: আপনি একা নন, আর চুপ থাকাই সবচেয়ে বড় ভুল। প্রথম কয়েক মিনিটের জানানো পরের কয়েক সপ্তাহের কাজ বাঁচাতে পারে।
শুধু click করলে, কিছু দেননি: Page বন্ধ করুন, report করুন। ফাইল নামলে খুলবেন না। অফিসে থাকলে SOC বা IT-কে জানান, কারণ ব্রাউজার বা ডিভাইসের ঝুঁকি মাপা তাঁদের কাজ (পর্ব ৩৩).
ফাইল খুলে ফেললে: কম্পিউটার বন্ধ করবেন না। Network থেকে বিচ্ছিন্ন করুন আর সঙ্গে সঙ্গে জানান। অফিসে কী করবেন, তা playbook মেনে চলুন; মেমোরির প্রমাণ বন্ধ করলে হারাতে পারে।
Password দিয়ে ফেললে: নিচের ক্রমটি দেখুন।
| সময় (আনুমানিক) | |
| SOC বা IT জানে | |
| Password | |
| অন্য জায়গায় একই password | |
| পুরোনো session | |
| Recovery, MFA, rule | |
| টাকার পথ |
- ধাপ ১ — থামুন। Page বন্ধ করুন। বার্তাটি মুছবেন না, কারণ এটি প্রমাণ। আর নিজের ওপর রাগ করবেন না। এখন কাজ হলো সময় বাঁচানো।
- ধাপ ২ — জানান। অফিসের account হলে report বোতাম বা SOC-এর ফোনে জানান। SOC লগ দেখে আপনার account সুরক্ষায় আপনার আগেই কাজ শুরু করতে পারে।
- ধাপ ৩ — Password বদলান। নিজে ঠিকানা টাইপ করে, অন্য একটি পরিচিত নিরাপদ যন্ত্র থেকে আসল সাইটে ঢুকুন। একই password অন্য কোথাও থাকলে সেগুলোও বদলান, নইলে credential stuffing-এর ঝুঁকি থাকে।
- ধাপ ৪ — Session বাতিল করুন। Password বদলালেই আগের login সবসময় শেষ হয় না। “সব ডিভাইস থেকে sign out” করুন, বা SOC session revoke করুক। মাঝে বসা নকল সাইট session নিয়ে থাকলে এটিই আসল ধাপ।
- ধাপ ৫ — ফেরার দরজা খুঁজুন। অচেনা MFA method, recovery email বা নম্বর, mail forwarding, inbox rule আর অনুমতি পাওয়া app (পর্ব ১৮) আছে কি না দেখুন। আক্রমণকারী এগুলোই রেখে যান।
- ধাপ ৬ — টাকা বা ব্যাংকের তথ্য দিলে। কার্ডের পেছনের বা অফিসিয়াল নম্বরে ব্যাংক বা মোবাইল ব্যাংকিং সেবায় সঙ্গে সঙ্গে ফোন করুন। বার্তার নম্বরে নয়। লেনদেন আটকানোর সুযোগ সময়ের সাথে কমে।
- ধাপ ৭ — নজর রাখুন। কিছুদিন login alert আর লেনদেনের হিসাব দেখুন। ব্যক্তিগত ক্ষতি বা প্রতারণায় পুলিশ বা সংশ্লিষ্ট কর্তৃপক্ষে অভিযোগের কথা ভাবুন (আইনের কথা পর্ব ৬-এ; এটি আইনি পরামর্শ নয়)। Phishing-প্রতিরোধী login চালু করলে পরেরবার এই ঝুঁকি অনেক কমে।
SOC-এর দিক: Account-এ reset আর session revoke-এর পাশাপাশি SIEM-এ দেখুন: ওই সময়ের পরের login-এর উৎস, mail-এ নতুন rule, ফাইল শেয়ার, আর ওই account থেকে ভেতরের অন্য কর্মীদের পাঠানো চিঠি। একই লগইন থেকে পরের phishing প্রায়ই ভেতর থেকেই আসে। EDR-এ ডিভাইসটিও দেখুন। Containment আর recovery-র পুরো পথ পর্ব ৬২-তে আছে।
পরীক্ষা ও ইন্টারভিউতে:
- Spear phishing আর whaling-এর পার্থক্য? দুটিই লক্ষ্যভিত্তিক; whaling-এ লক্ষ্য শীর্ষ কর্মকর্তা।
- DMARC থাকলে phishing থামে? না। শুধু নিজের domain-এর জাল From থামে, কাছাকাছি নামের domain নয়।
- Password reset কি যথেষ্ট? না। Session, MFA method, rule, OAuth grant-ও দেখতে হয়।
- Passkey কেন phishing-প্রতিরোধী? Signature origin-এ বাঁধা, আর origin লেখেন browser, মানুষ নয়।
- Simulation-এর ভালো metric? Report rate আর report-এর সময়, বার্তার কঠিনতা মিলিয়ে; click হার একা নয়।
১০ · AI-এর যুগে phishing প্রতিরক্ষা
AI দুই দিকেই কাজ করে। আক্রমণের ভাষা আর পরিমাণ সহজ হয়েছে, তবে triage, সারাংশ আর URL ব্যাখ্যায় AI রক্ষকেরও ভালো সহকারী। Security কাজে AI সাধারণত যেসব ভুল করে:
- না-থাকা CVE, RFC বা গবেষণা বানিয়ে দেওয়া, আর পুরোনো নিয়মকে বর্তমান বলা, যেমন শুধু RFC 7489 ধরে DMARC ব্যাখ্যা।
- সমস্যা “মেটাতে” নিয়ন্ত্রণ দুর্বল করা: filter শিথিল করা,
verify=False,chmod 777, ব্রড CORS, MFA সরিয়ে দেওয়া। - পুরোনো crypto পরামর্শ (MD5, ECB, salt ছাড়া hash), আর injection বা authorization ফাঁকওয়ালা কোড।
- Triage-এ অতিরিক্ত আত্মবিশ্বাস: “এটি নিরাপদ” বলে দেওয়া, অথচ chat থেকে সে link খোলেনি বা log দেখেনি।
- Prompt-এ দেওয়া আসল চিঠি, ঠিকানা, token বা header-এর তথ্য বাইরে চলে যাওয়ার ঝুঁকি।
- চিঠির ভেতরের লেখা নির্দেশ মেনে নেওয়া: সন্দেহজনক চিঠি নিজেই prompt injection বহন করতে পারে (পর্ব ৫১).
AI-কে রক্ষার কাজে লাগান। আসল চিঠি নয়, ব্যক্তিগত তথ্য সরিয়ে শুধু গঠন দিন, আর সিদ্ধান্ত নিজে নিন:
AI-এর উত্তর হাতে পেলে — যাচাইয়ের চেকলিস্ট
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিয়ে নিজে কিছুক্ষণ ভাবুন, তারপর “→ উত্তর” চাপুন।
প্র ০১কর্মীদের প্রশিক্ষণ দিলেই কি phishing সমস্যা মিটবে? গবেষণা কী বলে?
গত কয়েক বছরের বড় গবেষণাগুলো এই বিশ্বাসে ধাক্কা দিয়েছে। Lain, Kostiainen ও Čapkun (IEEE S&P ২০২২) একটি বড় প্রতিষ্ঠানে ১৫ মাস ধরে ১৪,৭৭৩ জনকে দেখেছেন। প্রায় এক-তৃতীয়াংশ অন্তত একবার click করেন, আর ঐচ্ছিক embedded training পাওয়া দল সুরক্ষিত তো হয়ইনি, বরং বেশি পড়েছে। লেখকেরা অনুমান করেন এটি ভুল নিরাপত্তাবোধ হতে পারে, তবে কারণ নিশ্চিত নয়, আর বাধ্যতামূলক training তাঁরা পরীক্ষা করেননি। Ho ও সহকর্মীরা (২০২৫) ১৯,৫০০-এর বেশি স্বাস্থ্যকর্মীর ওপর আট মাসের randomized পরীক্ষায় বার্ষিক training-এর সাথে কম পড়ার কোনো সম্পর্ক পাননি; embedded training-এ ব্যর্থতার হার কমেছে গড়ে মাত্র ১.৭%. একই গবেষণায় ৭৫%-এর বেশি training session এক মিনিটের কম ছিল।
এর মানে এই নয় যে training অর্থহীন। পুরোনো কিছু গবেষণা ইতিবাচক ফল পেয়েছে, আর সচেতনতা ছাড়া report-ও আসে না। Report বোতাম কোথায়, OTP কেন কাউকে দেবেন না, click হলে কী করবেন—এগুলো জানা জরুরি। কিন্তু training-কে প্রধান নিয়ন্ত্রণ ভাবা বিপজ্জনক। হাজার মানুষকে বছরের পর বছর, প্রতিদিন, নিখুঁত থাকতে বলা বাস্তব প্রকৌশল নয়। যে প্রতিষ্ঠানে দিনে শতাধিক চিঠি আসে, সেখানে একটি মাত্র ভুলই আক্রমণকারীর জন্য যথেষ্ট, আর এই অসম লড়াই কোনো প্রশিক্ষণ দিয়ে সমান হয় না। নিরাপত্তা বিজ্ঞানের পুরোনো কথাও তাই: Saltzer ও Schroeder (১৯৭৫) “psychological acceptability” নীতিতে বলেছিলেন, ব্যবস্থাটি মানুষের স্বাভাবিক কাজের সাথে মিলতে হবে।
মূল উপলব্ধি: মানুষকে “দুর্বলতম কড়ি” না বলে ভুল-সহনশীল ব্যবস্থা বানান। Training মানুষকে report করতে শেখায়; ক্ষতি থামায় প্রযুক্তি আর প্রক্রিয়া।
প্র ০২Simulation-এ বাস্তবসম্মত হওয়ার নামে কি যেকোনো টোপ ব্যবহার করা যায়?
“আসল আক্রমণকারী তো দয়া করবে না”, এই যুক্তি শুনতে শক্ত লাগে, তবে পুরো ছবি বলে না। ২০২০ সালের ডিসেম্বরে GoDaddy-র কর্মীদের কাছে একটি simulation বার্তায় বড়দিনের বোনাসের প্রতিশ্রুতি দেওয়া হয়েছিল বলে সংবাদে আসে। প্রায় ৫০০ জন click করেছিলেন বলে জানা যায়, এবং পরে তাঁদের জানানো হয় তাঁরা “পরীক্ষায় ব্যর্থ”, আবার training নিতে হবে। মহামারির অর্থকষ্টের সময়ে এই বার্তা নিয়ে সমালোচনার পর প্রতিষ্ঠান ক্ষমা চায়। একই বছরে আরেক সংবাদ প্রতিষ্ঠানের অনুরূপ পরীক্ষাও সমালোচিত হয়েছিল।
ক্ষতিটা কোথায়? প্রথমত, কর্মীর সাথে প্রতিষ্ঠানের আস্থা ভাঙে। প্রতিষ্ঠান থেকে আসা আসল বোনাস বা নিরাপত্তা বার্তাও তখন সন্দেহের চোখে পড়ে। দ্বিতীয়ত, SOC মানুষের সহযোগিতার ওপর চলে; যাঁদের অপমান করা হলো, তাঁরা পরেরবার click লুকাতে পারেন। তৃতীয়ত, গবেষণায় (Ho, ২০২৫) বার্তাভেদে click হার অনেক বদলেছে, তাই আবেগী টোপে উচ্চ হার মানে কর্মীর দুর্বলতা নয়, বার্তাটি শক্ত ছিল মাত্র।
ভালো নকশা হলো অগ্নি-মহড়ার মতো: উদ্দেশ্য আগে থেকে জানানো, HR আর আইন বিভাগের সম্মতি, আবেগী বিষয় বাদ, ব্যক্তির তালিকা প্রকাশ না করা, আর পরে শেখার সহজ সুযোগ। একটি বাস্তবসম্মত কিন্তু সম্মানজনক উদাহরণ হলো সাধারণ ডেলিভারি বা ফাইল শেয়ারের ধরন। কঠিনতা মাপতে NIST Phish Scale-এর মতো পদ্ধতি কাজে লাগে, যাতে এক দফার সাথে আরেক দফার তুলনা অন্তত অর্থবহ হয়।
মূল উপলব্ধি: Simulation-এর লক্ষ্য আস্থা বাড়ানো ও report শেখানো। যে পরীক্ষা আস্থা নষ্ট করে, সে নিজের লক্ষ্যই নষ্ট করে।
প্র ০৩Phishing কেন ত্রিশ বছর পরও টিকে আছে, যখন এত প্রযুক্তি এসেছে?
Phishing শব্দটি ১৯৯০-এর দশকের মাঝামাঝি AOL ব্যবহারকারীদের password আদায়ের প্রতারণার সূত্রে পরিচিত হয়। এত বছরে filter, DMARC, safe browsing, MFA সবই এসেছে। তবু টিকে আছে, কারণ এটি কোনো একটি ত্রুটির ওপর দাঁড়িয়ে নেই। দাঁড়িয়ে আছে তিনটি স্থায়ী বিষয়ের ওপর: বিশ্বাস ছাড়া কাজ চলে না, পরিচয়ের ব্যবস্থা পুরোনো নকশায় পরে জোড়া, আর আক্রমণের খরচ রক্ষার খরচের চেয়ে অনেক কম।
আরও একটি বিষয় হলো অভিযোজন। একটি চ্যানেল শক্ত হলে আক্রমণ অন্য চ্যানেলে সরে যায়। Email filter শক্ত হওয়ায় SMS, chat, ফোন আর QR-এর গুরুত্ব বেড়েছে। ২০২৬ সালের DBIR-এর আলোচনাতেও বলা হয়েছে, ভয়েস আর টেক্সট বার্তায় সাফল্য email-এর চেয়ে ভালো বলে মনে হচ্ছে। OTP আসার পর এসেছে relay. Password ছাড়া login এলে আক্রমণ ঝুঁকছে session আর consent-এর দিকে। আবার Heiding ও সহকর্মীদের ছোট পরীক্ষা ইঙ্গিত দেয়, AI ব্যক্তিগত বার্তার খরচ বিশেষজ্ঞের স্তরে নামিয়ে আনতে পারে।
তবে উল্টো দিকেও পরিবর্তন হয়েছে। DBIR ২০২৬-এর সারসংক্ষেপে vulnerability exploitation প্রথম স্থানে উঠে এসেছে, অর্থাৎ ক্রম স্থায়ী নয়। আর origin-বাঁধা login প্রথমবারের মতো ব্যবহারকারীর ভুলকে অকেজো করতে পারে, যা আগের কোনো সচেতনতা কর্মসূচি পারেনি। সীমা এখনও আছে: recovery, পুরোনো সিস্টেম আর ফোনে টাকা চাওয়ার প্রতারণায় passkey সরাসরি কাজ করে না।
মূল উপলব্ধি: Phishing কোনো bug নয়, যা একবার patch করলেই শেষ। এটি মানুষের বিশ্বাস আর ব্যবস্থার সীমার মিলনস্থল, তাই প্রতিরক্ষাকে চিরকাল খাপ খাইয়ে যেতে হবে।
প্র ০৪Cloudflare-এর ২০২২ সালের ঘটনা থেকে কী শেখার আছে, যেখানে তিনজন কর্মী credential দিয়েও ক্ষতি হয়নি?
২০২২ সালের আগস্টে Cloudflare নিজের ব্লগে জানায়, কর্মী ও তাঁদের পরিবারের ফোনে SMS phishing আসে; অন্তত ৭৬ জন কর্মী বার্তা পান, আর তিনজন নকল পাতায় credential দেন। একই সময়ে Twilio-ও এমন ধরনের ঘটনা প্রকাশ করে। Cloudflare-এর বর্ণনা অনুযায়ী তাদের কর্মীরা TOTP নয়, FIDO2 security key ব্যবহার করতেন, আর origin binding-এর কারণে আক্রমণকারী login করতে পারেননি।
লক্ষণীয় তিনটি বিষয়। প্রথমত, নিয়ন্ত্রণটি প্রশিক্ষণ-নির্ভর ছিল না। মানুষ ভুল করেছেন, তবু ব্যবস্থা টিকেছে। এটিই ভুল-সহনশীল নকশা। দ্বিতীয়ত, ব্লগে বলা হয় ওই তিন কর্মীকে তিরস্কার করা হয়নি। প্রতিষ্ঠানের অবস্থান ছিল ভুল লুকানো নয়, জানানো। তৃতীয়ত, প্রতিক্রিয়াও স্তরে স্তরে ছিল: domain block, ওই কর্মীদের credential ও session reset, যন্ত্র পরীক্ষা, hosting ও registrar-এ অভিযোগ, log audit, আর অন্য লক্ষ্য প্রতিষ্ঠানকে সতর্ক করা। এই ক্রমটিই আপনি স্টেপারে দেখেছেন।
তবে সাবধানতাও দরকার। এটি একটি প্রতিষ্ঠানের নিজের লেখা বর্ণনা, যারা নিরাপত্তা পণ্যও বিক্রি করে। সব প্রতিষ্ঠান একদিনে hardware key দিতে পারবে না; হারানো key, পুরোনো সিস্টেম, ঠিকাদার আর recovery-র খরচ আছে। আর এমন key consent phishing বা সরাসরি টাকা পাঠানোর প্রতারণা থামায় না। তাই সিদ্ধান্ত হলো ঝুঁকি ধরে ধরে: admin, অর্থ আর remote access থেকে শুরু করে ধীরে সবার দিকে।
মূল উপলব্ধি: ভালো নিরাপত্তায় “কেউ ভুল করবে না” ধরে নেওয়া হয় না, ধরে নেওয়া হয় “ভুল হবে, তবু ক্ষতি হবে না, আর মানুষ নির্ভয়ে জানাবে।”
প্র ০৫MFA থাকার পরও account গেল, password-ও বদলানো হলো, তবু আক্রমণকারী কীভাবে থাকতে পারেন?
Login শেষে ব্রাউজার একটি session token বা cookie পায়। এরপর সার্ভার প্রতিটি অনুরোধে আর password চায় না, শুধু ওই token দেখে (পর্ব ১৭). Bearer token-এর ধর্মই হলো, যাঁর হাতে আছে তিনিই ব্যবহার করতে পারেন। Adversary-in-the-middle সাইট মাঝে বসে থাকলে OTP সহ পুরো login আসল সাইটে পৌঁছে যায়, আর আসল সাইটের দেওয়া session-ও মাঝের হাতে আসে। Microsoft ২০২২ সালের জুলাইয়ে এমন একটি বড় প্রচারের কথা প্রকাশ করে, যেখানে দশ হাজারের বেশি প্রতিষ্ঠান লক্ষ্য ছিল বলে বলা হয়, আর পরের ধাপ ছিল business email compromise.
তাই password বদলানোর পরও তিনটি পথ খোলা থাকতে পারে। প্রথমত, পুরোনো session বা refresh token: অনেক সেবায় password বদল করলেই এগুলো বাতিল হয় না, সেবাভেদে আচরণ ভিন্ন। দ্বিতীয়ত, নিজের যোগ করা MFA method, recovery ঠিকানা বা OAuth grant, যা password ছাড়াই আবার ঢোকার পথ। তৃতীয়ত, inbox rule বা forwarding, যা চুপচাপ চিঠি কপি করে বা সতর্কবার্তা লুকিয়ে রাখে।
এই কারণে প্রতিক্রিয়ার তালিকায় reset একটি ধাপ, পুরো কাজ নয়। Session revoke, authentication method পর্যালোচনা, consent grant দেখা, mail rule দেখা, আর ঘটনার পরের login log পড়া একসাথে করতে হয়। প্রতিরোধে origin-বাঁধা MFA, token-এর সীমিত আয়ু, যন্ত্রভিত্তিক conditional access আর token-কে যন্ত্রে বাঁধার নতুন উদ্যোগ (যেমন DPoP-এর ধারণা) সহায়ক, তবে সব সেবায় সবটি পাওয়া যায় না।
মূল উপলব্ধি: Authentication একবারের ঘটনা, কিন্তু access চলমান অবস্থা। ঘটনা সামলাতে password নয়, পুরো access-এর ছবিটি পরিষ্কার করতে হয়।
অনুশীলন
কাগজে হিসাব করুন, তারপর উত্তর মিলিয়ে নিন।
-
সংখ্যার হিসাব: একটি প্রচার ৫০ জনের কাছে গেছে। প্রত্যেকের ৫ মিনিটের মধ্যে report করার সম্ভাবনা ৩%, একে অপরের ওপর নির্ভর না করে। অন্তত একটি report পাওয়ার সম্ভাবনা কত? ৯৫% নিশ্চয়তার জন্য কতজন প্রাপক লাগবে?
P = ১ − ০.৯৭৫০ = ১ − ০.২১৮১ ≈ ৭৮.২%.
৯৫%-এর জন্য ০.৯৭n ≤ ০.০৫, তাই n ≥ ln(০.০৫) ÷ ln(০.৯৭) ≈ ৯৮.৩৫, অর্থাৎ ৯৯ জন. বাস্তবে report স্বাধীন ঘটনা নয়, আর কঠিন বার্তায় r কমে, তাই এটি শুধু একটি মোটামুটি ধারণা।
-
আউটপুট অনুমান করুন:
url_reader.js-এর একই suffix তালিকা আর একইexpectedধরে নিচের তিনটি URL-এর প্রতিটির registrable domain আর MATCH/DIFFERENT কী হবে? (ক)https://pay.example.com.example.org/x(খ)https://example.net@example.com/x(গ)https://a.b.shop.co.example/(ক)
example.org, DIFFERENT. বাঁ দিকের সব subdomain.(খ)
example.com, MATCH. Host আসলেexample.com;example.netশুধু@-এর আগের ব্যবহারকারী-নাম। মালিক ঠিক হলেও ঠিকানাটি নিজেই বিভ্রান্তিকর, তাই সতর্ক থাকুন।(গ)
shop.co.example, DIFFERENT. দীর্ঘতম suffixco.example, তাই তার আগের নামshop. -
নকশা সমালোচনা: একটি কাল্পনিক প্রতিষ্ঠানের নীতি: “প্রতি মাসে simulation. তিনবার click করলে শোকজ। ব্যক্তির নামসহ click তালিকা বোর্ডে যাবে। লক্ষ্য: click হার ২%-এর নিচে।” Report বোতাম নেই। নীতিটির সমস্যা কী, আর কীভাবে বদলাবেন?
- শাস্তি: মানুষ click লুকাবেন, তাই আসল ঘটনায় SOC দেরিতে জানবে। Lain-এর গবেষণায় বারবার-পড়া কর্মী পাওয়া গেছে, কিন্তু শাস্তি দিলে তাঁরা শুধরান, এমন প্রমাণ এখানে নেই।
- Metric: Click হার সহজ বার্তা পাঠিয়েই কমানো যায়। Report rate আর সময় যোগ করুন, আর কঠিনতা মিলিয়ে তুলনা করুন (NIST Phish Scale).
- গোপনীয়তা: ব্যক্তির তালিকা নয়, দলভিত্তিক সারাংশ।
- প্রযুক্তি: Report বোতাম, DMARC, phishing-প্রতিরোধী MFA আর password manager আগে। মাসে একবার simulation-এর টাকা ও সময়ের বদলে এগুলোতে বিনিয়োগ করা ভালো হতে পারে।
- অনুমোদন: HR আর আইন বিভাগের লিখিত সম্মতি আর কর্মীদের আগাম জানানো।
-
নিজের চিঠির header: শুধু নিজের mailbox-এর একটি চিঠি খুলুন (অনেক mail app-এ “Show original” ধরনের বিকল্প থাকে)।
Authentication-Resultsলাইনটি খুঁজুন। তারপর এই কাল্পনিক লাইনটি ব্যাখ্যা করুন:mx.example.org; spf=pass smtp.mailfrom=example.net; dkim=pass header.d=example.net; dmarc=fail header.from=example.comচিঠিটি পাঠিয়েছে
example.net-এর অনুমোদিত প্রেরক (SPF pass), আর সইওexample.net-এর (DKIM pass). কিন্তু পাঠকের দেখা From হলোexample.com, যার সাথে দুটির কোনোটির alignment নেই। তাই DMARC fail. অর্থাৎexample.com-এর নাম ব্যবহার প্রমাণিত নয়। এটি phishing হতে পারে, আবার ভুল করে সাজানো কোনো বৈধ সেবাও হতে পারে; পরের ধাপ URL আর অনুরোধ দেখা। সবসময় নিজের server-এর লাইনটিই ধরুন।
নিজেকে যাচাই করুন
ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।
ক্রমএকটি phishing report সামলানোর ধাপগুলো সঠিক ক্রমে সাজান (▲▼ চেপে সরান)
- কর্মীর report পাওয়া
- Triage: আসল কি না নিশ্চিত করা
- IOC ধরে dry run দেখা
- বার্তা quarantine-এ সরানো
- Domain আর URL block করা
- Click বা তথ্য দেওয়া account reset ও তদন্ত
URL: https://example.com.example.net/login. এর registrable domain কোনটি?
- example.com
- example.net
- example.com.example.net
- example.net/login
একটি চিঠির নিজের server-এর Authentication-Results-এ dmarc=pass header.from=example-com.example লেখা। এর সঠিক অর্থ কী?
- চিঠিটি নিরাপদ আর প্রেরক সৎ
- চিঠিটি নিশ্চিতভাবে example.com থেকে এসেছে
- From-এর domain প্রমাণিত, কিন্তু এটি চেনা ও সৎ কি না আলাদাভাবে দেখতে হবে
- চিঠিটি জাল বলে প্রমাণিত হয়েছে
একজন ব্যবহারকারী নকল পাতায় password আর OTP দিয়েছেন, পরে আসল সাইটে password বদলেছেন। আর কী অবশ্যই করতে হবে?
- চিঠিটি মুছে ফেলা, আর কিছু নয়
- কম্পিউটার Format করা
- কাউকে না জানিয়ে অপেক্ষা করা
- সব session বাতিল করা আর MFA method, recovery ও inbox rule যাচাই করা
SOC-এর সাড়ার ক্ষমতা বোঝাতে phishing simulation-এর কোন metric সবচেয়ে কাজের?
- Report rate আর প্রথম report-এর সময়, একই কঠিনতার বার্তায়
- শুধু click হার
- শুধু opened সংখ্যা
- কত জন কর্মীর নাম শাস্তির তালিকায় উঠল
SOC শুধু বিষয় (Subject) দিয়ে খুঁজে purge করলে প্রধান ঝুঁকি কী?
- কোনো mailbox-এই মিলবে না
- একই বিষয়ের বৈধ চিঠিও সরে যেতে পারে
- ব্রাউজার ধীর হয়ে যাবে
- Domain-এর DMARC record মুছে যাবে
Password manager নকল সাইটে নিজে থেকে password না দেওয়ার মূল কারণ কী?
- পাতার ডিজাইন খারাপ দেখে বুঝে ফেলে
- নকল সাইটে কখনো HTTPS থাকে না
- সংরক্ষিত domain আর বর্তমান ঠিকানা মেলে না
- সে DNS থেকে সাইটটি মুছে দেয়
শব্দকোষ
লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন, অর্থ দেখাবে। এই পর্বের শব্দগুলো এখানে একসাথে:
মনে রাখুন
- লক্ষণ দেখা সহায়ক, কিন্তু ভাষার মান আর প্রমাণ নয়। দেখুন অনুরোধ, domain আর প্রক্রিয়া।
- URL ডান দিক থেকে পড়ুন; suffix-এর আগের নামটিই মালিক। নিজে টাইপ করে ঢোকা সবচেয়ে সহজ অভ্যাস।
- প্রতিটি স্তরের সীমা আছে: DMARC কাছাকাছি নাম থামায় না, OTP relay থামায় না, origin-বাঁধা login সবচেয়ে শক্ত।
- এক চাপের report আর দ্রুত triage, dry run, quarantine, block, reset, তদন্ত; মোছার আগে পরিধি মিলিয়ে নিন।
- Simulation-এ শাস্তি নয়, report rate আর সময় মাপুন। ভুল হলে দ্রুত জানান; password-এর পর session আর rule-ও দেখুন।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পর্ব ৫৪ · নিরাপত্তা সংস্কৃতিপরবর্তী পর্বসচেতনতা, ভুল report আর দোষারোপহীন পরিবেশ।
- পর্ব ২৬ · DNS আর email নিরাপত্তাভিত্তিSPF, DKIM, DMARC-এর পুরো ব্যাখ্যা আর rollout.
- পর্ব ১৬ · MFA আর passkeyভিত্তিRelay, origin binding আর phishing-প্রতিরোধী login.
- পর্ব ১৮ · OAuth 2.0 আর OpenID Connectপাশের পর্বConsent phishing আর grant-এর নজরদারি।
- সাইবার নিরাপত্তা · কোর্স হোম৮০টি পর্বপুরো কোর্সের রোডম্যাপ।
- Computer Networks · Emailপাশের ট্র্যাকSMTP আর চিঠি পৌঁছানোর পথ।