সরাসরি পর্বে যান
পর্ব ৬৫ · ৮০-এর মধ্যে · মডিউল ১০

বাস্তব breach-এর শিক্ষা — প্রকাশিত ঘটনা থেকে প্রতিরক্ষা

Lessons from Real Breaches — Defence from Published Incidents

Taught in Bangla, this lesson shows how to read published breach reports critically: separating fact, claim and interpretation, root cause versus contributing factors, five whys and hindsight bias, ten public incidents viewed for their defensive gaps, mapping lessons to CIS Controls and MITRE ATT&CK mitigations, reading cost figures with sources, and applying the lessons to a fictional organisation.

এই পর্বে যা শিখবেন

  • একটি breach রিপোর্ট সমালোচনার চোখে পড়া: ঘটনা, দাবি আর ব্যাখ্যা আলাদা করা
  • Root cause, contributing factor আর five whys-এর ব্যবহার ও সীমা
  • দশটি প্রকাশিত ঘটনায় প্রতিরক্ষার কোথায় ফাঁক ছিল, আর কী জানা নেই
  • প্রতিটি ঘটনাকে CIS Controls, MITRE ATT&CK mitigation আর এই কোর্সের পর্বের সাথে জোড়া
  • খরচের সংখ্যা উৎসসহ পড়া, আর একটি কাল্পনিক প্রতিষ্ঠানে শিক্ষাগুলো প্রয়োগ করা

১ · অন্যের breach কেন পড়বেন, আর কীভাবে পড়বেন না

লঞ্চডুবির পরে তদন্ত কমিটি বসে। ভালো কমিটি শুধু মাঝিকে দোষ দেয় না। সে দেখে: ধারণক্ষমতার বেশি যাত্রী কেন উঠল, ফিটনেস সনদ কে দিল, ঝড়ের সংকেত কে পেল, লাইফ জ্যাকেট ছিল কি না। উদ্দেশ্য একটাই, পরের লঞ্চটি যেন না ডোবে।

Breach রিপোর্টের কাজও তাই। আপনার প্রতিষ্ঠানকে নিজের ভুলের দাম দিয়ে শিখতে হবে না, অন্যের প্রকাশিত ভুল থেকেই শেখা যায়। আগের পর্বগুলোয় আপনি control শিখেছেন। এই পর্বে দেখবেন, সেই control না থাকলে বা কাজ না করলে বাস্তবে কী ঘটেছে।

এই পর্বের সীমা: সব তথ্য প্রকাশিত রিপোর্ট, শুনানি বা নিয়ন্ত্রকের নথি থেকে নেওয়া, আর উৎস দেওয়া আছে। হামলার ধাপ পুনর্গঠন এখানে নেই; আলোচনা শুধু প্রতিরক্ষা নিয়ে। ঘটনায় জড়িত কোনো ব্যক্তির নাম নেওয়া হয়নি। কোনো সিস্টেম পরীক্ষা করতে লিখিত অনুমতি লাগে, অনুমতি ছাড়া প্রবেশ অপরাধ (পর্ব ৬; এখানকার কিছুই আইনি পরামর্শ নয়)।

একটি মডেল মনে রাখুন। James Reason তাঁর Human Error (১৯৯০) বইয়ের ধারায় যে চিত্র জনপ্রিয় হয়েছে, তার নাম Swiss cheese model. প্রতিটি প্রতিরক্ষা স্তর একটি পনিরের টুকরো, আর প্রতিটি টুকরোয় ফুটো আছে। ফুটোগুলো এক সারিতে এলেই ক্ষতি হয়। এটিই defense in depth-এর (পর্ব ৩) উল্টো পিঠ।

চারটি স্তর, এক সারিতে চারটি ফুটো

GAO-র চিহ্নিত Equifax-এর চার factor, Swiss cheese ছবিতে

Swiss cheese model: Equifax-এর চার factor খুঁজেপাওয়া Detection Segment Datagovernance হামলা ক্ষতি একটি ফুটো বন্ধ থাকলেও ক্ষতি কমতে পারত
ছবি ৬৫.১ — ছবিটি ব্যাখ্যার সহায়ক, প্রমাণ নয়। “এক ফুটো বন্ধ হলেই পুরো ঘটনা ঠেকত” দাবিটি সাবধানে করবেন।

২ · একটি রিপোর্ট ঠিকভাবে পড়ার পদ্ধতি

সব উৎসের ওজন সমান নয়। Primary source বলতে মূল নথি বোঝায়। তার ওপর ভিত্তি করে লেখা সংবাদ বা ব্লগ দ্বিতীয় স্তরের উৎস। তবে মূল নথিরও পক্ষ থাকে, তাই প্রথম প্রশ্ন: কে লিখেছেন, আর কেন?

উৎসশক্তিযে দুর্বলতা মনে রাখবেন
সরকারি নিরীক্ষা (যেমন GAO)স্বাধীন, পদ্ধতি লেখা থাকেঅনেক কথা প্রতিষ্ঠানের নিজের বক্তব্যের ওপর দাঁড়ানো
সংসদীয় কমিটির staff রিপোর্টঅভ্যন্তরীণ নথি দেখার সুযোগরাজনৈতিক উদ্দেশ্য থাকতে পারে; প্রতিষ্ঠান আপত্তি জানাতে পারে
নিয়ন্ত্রকের আদেশ (যেমন OCC)আইনি ওজনসাধারণত কম প্রযুক্তিগত বিবরণ; অনেক সময় দোষ স্বীকার ছাড়াই মীমাংসা
শপথ নিয়ে সাক্ষ্যসরাসরি দায়িত্বশীলের কথানিজের পক্ষে সাজানো হতে পারে
কোম্পানির post-incident রিপোর্টভেতরের প্রযুক্তিগত সত্যকী বাদ গেল তা বাইরে থেকে বোঝা কঠিন
নিরাপত্তা-প্রতিষ্ঠানের বিশ্লেষণগভীর প্রযুক্তিগত দক্ষতাসব তথ্য হাতে না-ও থাকতে পারে; নিজস্ব পণ্যের স্বার্থ থাকতে পারে

এবার একটি বাস্তব উদাহরণ ধাপে ধাপে দেখুন। ২০১৭ সালের Equifax breach নিয়ে দুটি বিখ্যাত নথি আছে: GAO-র GAO-18-559 (২০১৮) আর মার্কিন House কমিটির majority staff রিপোর্ট (ডিসেম্বর ২০১৮)।

পাঠকের খাতা
ধাপের প্রশ্ন
নোট
আস্থা
  1. ধাপ ১ — লেখক ও উদ্দেশ্য। GAO সরকারি নিরীক্ষা সংস্থা; তারা মূলত Equifax-এর কর্মকর্তাদের বক্তব্য ও জনসমক্ষে থাকা নথি ব্যবহার করেছে। House রিপোর্ট লিখেছেন সংখ্যাগরিষ্ঠ দলের কর্মীরা, অভ্যন্তরীণ নথি দেখে। প্রকাশিত সংবাদ অনুযায়ী Equifax এতে “গুরুতর ভুল” আছে বলে আপত্তি করেছিল, আর অন্য দলও আলাদা প্রতিবেদন দিয়েছিল।
  2. ধাপ ২ — কে বলছেন, তা দাগান। GAO-তে বারবার আছে “according to Equifax officials”. অর্থাৎ এটি স্বাধীনভাবে প্রমাণিত ঘটনা নয়, প্রতিষ্ঠানের বক্তব্য। তিন রকম দাগ দিন: ঘটনা, কারও দাবি, লেখকের ব্যাখ্যা।
  3. ধাপ ৩ — উৎস মেলান। Traffic পরীক্ষার device-এর certificate নিয়ে GAO বলে, সেটি breach-এর “about 10 months” আগে মেয়াদোত্তীর্ণ। House বলে ১৯ মাস অকেজো, আর পাদটীকায় GAO-র সাথে অমিলের কথা নিজেই লেখে। GAO মাপছে breach-এর আগের সময়, House ধরা পড়া পর্যন্ত। তবে House-এর তারিখ ধরে breach-এর আগের সময় মাপলেও প্রায় ১৫ মাস আসে, ১০ নয়। তাই “অমীমাংসিত” লিখুন।
  4. ধাপ ৪ — নিজে হিসাব করুন। House-এর দেওয়া মেয়াদোত্তীর্ণের তারিখ ৩১ জানুয়ারি ২০১৬। নবায়ন ২৯ জুলাই ২০১৭। বিয়োগ করলে প্রায় ১৮ মাস আসে, ১৯ নয়। ত্রুটি ছোট, কিন্তু শিক্ষা বড়: প্রকাশিত সংখ্যাও যাচাই করতে হয়। সিদ্ধান্ত বদলায় না, certificate দীর্ঘদিন মেয়াদোত্তীর্ণ ছিল।
  5. ধাপ ৫ — কারণ ভাগ করুন। GAO চারটি factor দেয়: identification, detection, segmentation আর data governance. House এর সাথে জবাবদিহির অভাবও যোগ করে। “Patch হয়নি” তাই পুরো গল্প নয়।
  6. ধাপ ৬ — কাজে রূপান্তর। শিক্ষাটি লিখুন পরীক্ষা করা যায় এমন বাক্যে: “প্রতিটি নিরাপত্তা device-এর certificate একটি তালিকায় আছে, মালিক আছেন, মেয়াদ শেষের ৩০ দিন আগে সতর্কতা যায়, আর পরীক্ষা করে দেখা হয়েছে যে device অকেজো হলে কেউ জানতে পারেন।”
মূল ধারণা

“এটি পড়েছি” যথেষ্ট নয়। ভালো পাঠক প্রতিটি দাবির পাশে তিনটি জিনিস লেখেন: উৎস, আস্থার মাত্রা, আর এখনো কী জানা নেই।

৩ · Root cause, contributing factor আর hindsight bias

মহল্লায় চুরি হলো। তালা ভাঙা ছিল, পাহারাদার ঘুমাচ্ছিলেন, রাস্তার বাতি নষ্ট, আর দারোয়ানের বেতন তিন মাস বাকি। কোনটি “আসল” কারণ? উত্তরটি নির্ভর করে আপনি কী বদলাতে চান তার ওপর।

  • সরাসরি কারণ: যে ব্যর্থতা ঘটনাটি সম্ভব করেছে। যেমন, internet-মুখী পোর্টালে পরিচিত ত্রুটি।
  • Contributing factor: যে শর্ত ঘটনা ঘটতে সাহায্য করেছে বা ক্ষতি বাড়িয়েছে। যেমন, segmentation না থাকা।
  • Root cause: গভীর কারণ, যা সারালে একই ধরনের ঘটনা কমে। অনেক গবেষক মনে করেন জটিল সিস্টেমে একটিমাত্র root cause থাকে না; তাই বহুবচনে ভাবা নিরাপদ।

কারণগুলো তিন স্তরে সাজালে কাজ ভাগ করা সহজ হয়: technical (কী ভেঙেছিল), process (কোন নিয়ম বা ধাপ কাজ করেনি), governance (কার দায়িত্ব ছিল, কে সম্পদ দিলেন, কে ঝুঁকি মানলেন)।

Five whys একটি সহজ হাতিয়ার: বারবার “কেন” জিজ্ঞেস করা। Toyota-র উৎপাদন ব্যবস্থায় এটি পরিচিত হয়। নিচে Equifax-এর একটি শাখা, প্রতিটি উত্তরের পাশে প্রমাণসহ।

কারণের শিকল · Equifax
কেন?
উত্তর
স্তর
প্রমাণ
  1. ১ম কেন — লক্ষণ। প্রায় ৭৬ দিন তথ্য বের হলেও alarm বাজেনি কেন? এখানে এখনো কোনো কারণ নেই, শুধু ঘটনাটি স্পষ্ট করে লেখা হলো।
  2. ২য় কেন। এনক্রিপ্ট করা traffic দেখার device কাজ করছিল না। House রিপোর্ট বলে, device-এর default setting এই অবস্থাতেও traffic যেতে দিত। অর্থাৎ ব্যর্থতা চুপচাপ ঘটেছে, TLS inspection বন্ধ হলেও কেউ জানেননি।
  3. ৩য় কেন। Device-এর certificate মেয়াদোত্তীর্ণ হয়েছিল (সময়কাল নিয়ে উৎসভেদ আছে, অংশ ২)। এটি technical স্তরের শেষ উত্তর। অনেক রিপোর্ট পড়া এখানেই থেমে যায়, কিন্তু certificate বদলালেই সমস্যা মেটে না।
  4. ৪র্থ কেন। House-এর মতে ৩০০-র বেশি certificate মেয়াদোত্তীর্ণ ছিল, যার ৭৯টি ব্যবসার জন্য গুরুত্বপূর্ণ domain পর্যবেক্ষণের। একটি নয়, এত সংখ্যা মানে এটি প্রক্রিয়ার সমস্যা।
  5. ৫ম কেন। House রিপোর্ট জবাবদিহি ও কর্তৃত্বের স্পষ্ট রেখার অভাবকে বড় কারণ বলে, IT আর Security আলাদা ও অসম্পূর্ণ তালিকা রাখত। এটি ব্যাখ্যা, আর Equifax রিপোর্টটিতে আপত্তি জানিয়েছিল। তাই “দাবি” হিসেবে দাগ দিন।
  6. এখানে থামুন। Five whys-এর দুর্বলতা হলো সে এক সরলরেখা আঁকে। বাস্তবে আরও শাখা আছে: patch-এর তালিকা, scan-এর ভুল, segmentation. “পাঁচ” নিয়ম নয়, আর প্রমাণ শেষ হলে অনুমান দিয়ে এগোনো ঠিক নয়। ব্যক্তিকে দোষ দিয়ে শিকল শেষ করবেন না (পর্ব ৫৪-এর blameless postmortem).

কোন বাক্য কোন স্তরের, তা অভ্যাসের বিষয়। নিচের ছোট simulator সাতটি বানানো বাক্যকে keyword দিয়ে ভাগ করে। উদ্দেশ্য ইচ্ছা করেই সীমিত: যন্ত্র কোথায় থেমে যায়, সেটি দেখা।

// Toy keyword classifier on made-up statements. Not an analysis tool.
const rules = [
  ['technical',  ['expired', 'firewall', 'mfa', 'bug', 'unpatched']],
  ['process',    ['list', 'policy', 'handover', 'ticket', 'checklist']],
  ['governance', ['board', 'budget', 'owner', 'accountable', 'risk accepted']],
];

function classify(text) {
  const t = text.toLowerCase();
  const scores = rules.map(([label, words]) =>
    [label, words.filter(w => t.includes(w)).length]);
  scores.sort((a, b) => b[1] - a[1]);
  if (scores[0][1] === 0) return 'unclear -> human';
  if (scores[0][1] === scores[1][1]) return 'mixed -> human';
  return scores[0][0];
}

const statements = [
  'The certificate on the inspection device expired.',
  'The warning went to an old recipient list.',
  'No single owner was accountable for certificates.',
  'The remote portal had no MFA.',
  'The board saw the risk accepted with no budget.',
  'The patch policy existed; the unpatched server stayed.',
  'The team was exhausted after a long week.',
];

const tally = {};
for (const s of statements) {
  const c = classify(s);
  tally[c] = (tally[c] || 0) + 1;
  console.log(c.padEnd(17), '|', s);
}
console.log('tally:', JSON.stringify(tally));

আউটপুট (খাতায় মিলিয়ে নিন):

technical         | The certificate on the inspection device expired.
process           | The warning went to an old recipient list.
governance        | No single owner was accountable for certificates.
technical         | The remote portal had no MFA.
governance        | The board saw the risk accepted with no budget.
mixed -> human    | The patch policy existed; the unpatched server stayed.
unclear -> human  | The team was exhausted after a long week.
tally: {"technical":2,"process":1,"governance":2,"mixed -> human":1,"unclear -> human":1}

পাঁচটি বাক্য এক শ্রেণিতে পড়েছে। ষষ্ঠটিতে patch policy আর unpatched, দুই রকম সংকেত সমান, তাই mixed. সপ্তমটিতে কোনো keyword নেই, তাই unclear, যদিও ক্লান্ত দল হয়তো সবচেয়ে গুরুত্বপূর্ণ কারণ। আরেকটি ফাঁদ: দ্বিতীয় বাক্যটি শুধু list শব্দের জন্য process হয়েছে, বুঝে নয়। কারণ-নির্ণয় মানুষের বিচার; keyword বা AI শুধু খসড়া দেয়।

Hindsight bias: পরে সবই স্পষ্ট লাগে

১৯৭৫ সালে Baruch Fischhoff দেখান, ফল জানা থাকলে মানুষ ভাবে সে আগেই সেটি অনুমান করতে পারত। একে বলে hindsight bias. House রিপোর্ট Equifax breach-কে “entirely preventable” বলেছে। পরে পড়লে কথাটি সহজ লাগে। কিন্তু ঘটনার দিন বিশ্লেষকের সামনে ছিল শত শত alert, হাজার সার্ভার আর সীমিত সময়।

Hindsight এড়াতে তিনটি প্রশ্ন করুন:

  • সেই মুহূর্তে মানুষটির হাতে কোন তথ্য ছিল, আর কোনটি ছিল না?
  • তাঁর কাজ তখনকার পরিস্থিতিতে যুক্তিসঙ্গত ছিল কি?
  • একই ব্যবস্থায় অন্য কেউ থাকলে কি একই কাজ করতেন? উত্তর “হ্যাঁ” হলে সমস্যা ব্যবস্থায়, ব্যক্তিতে নয়।

৪ · পরিচয়ের ফাঁক — Colonial Pipeline, Change Healthcare, Target

তিনটি ঘটনা, একই ধরনের দরজা: দূর থেকে ঢোকার পথে একটি মাত্র প্রমাণ, অর্থাৎ password. বাড়ির সদর দরজায় তিনটি তালা, অথচ পেছনের পুরোনো দরজায় ছিটকিনিও নেই, এমন অবস্থা।

Colonial Pipeline, ২০২১

যা প্রকাশিত: ৮ জুন ২০২১-এর মার্কিন সিনেট শুনানিতে প্রধান নির্বাহী জানান, হামলাকারীরা একটি পুরোনো VPN profile ব্যবহার করেছিল, যা ব্যবহারের কথা ছিল না, আর তাতে শুধু single-factor ছিল। ৭ মে ransomware ধরা পড়ে, আর control room-এর একজন supervisor-এর সিদ্ধান্তে পাইপলাইন বন্ধ করা হয়। শুক্রবার থেকে পরের বুধবার বিকেল পর্যন্ত বন্ধ ছিল। তিনি জানান, তদন্তকারী দল OT system-এ হামলাকারীর প্রমাণ পায়নি; এটি IT নেটওয়ার্কের ঘটনা।

শিক্ষা: অব্যবহৃত অ্যাকাউন্ট বন্ধ করা, সব দূরবর্তী প্রবেশে MFA. কিন্তু দ্বিতীয় শিক্ষাটি আরও ভাবায়: OT আক্রান্ত না হলেও ব্যবসা থেমেছে, কারণ সতর্কতা হিসেবে থামানোই নিরাপদ মনে হয়েছিল। শুনানিতে উঠে আসে, তাদের পরিকল্পনায় ransom নিয়ে নির্দিষ্ট আলোচনা ছিল না। যা জানা নেই: password কীভাবে ফাঁস হয়েছিল, শুনানিতে তা নিশ্চিত হয়নি।

Change Healthcare, ২০২৪

যা প্রকাশিত: ১ মে ২০২৪-এ মার্কিন House কমিটির শুনানির লিখিত বক্তব্যে UnitedHealth Group-এর প্রধান নির্বাহী জানান, ১২ ফেব্রুয়ারি চুরি করা credential দিয়ে একটি Citrix দূরবর্তী প্রবেশ portal-এ ঢোকা হয়, আর সেই portal-এ MFA ছিল না। নয় দিন পরে ransomware চালানো হয়। প্রতিষ্ঠানের হিসাবে আক্রান্ত প্রায় ১৯ কোটি মানুষ; পরে সংখ্যাটি প্রায় ১৯.২৭ কোটি বলে প্রকাশিত প্রতিবেদনে এসেছে।

শিক্ষা: নয় দিন মানে ভেতরে lateral movement ধরার সুযোগ ছিল। একটি প্রতিষ্ঠান বহু হাসপাতাল ও ফার্মেসির লেনদেনের মাঝখানে থাকায় তার ব্যর্থতা গোটা খাতে ছড়িয়ে পড়ে। আপনার প্রতিষ্ঠানে এমন “একক ব্যর্থতার বিন্দু” কোনটি?

Target, ২০১৩

যা প্রকাশিত: মার্কিন সিনেট কমিটির majority staff রিপোর্ট (মার্চ ২০১৪) জনসমক্ষে থাকা তথ্য দিয়ে ঘটনাটি kill chain ধরে বিশ্লেষণ করে। রিপোর্টের মতে হামলা শুরু হয় একটি HVAC vendor-এর credential দিয়ে, সব vendor-এর জন্য two-factor ছিল না, কম সংবেদনশীল অংশ থেকে গ্রাহকের তথ্যের অংশে যাওয়া সম্ভব হয়েছিল, আর স্বয়ংক্রিয় alert-এর ওপর ব্যবস্থা নেওয়া হয়নি বলে মনে হয়।

শিক্ষা: Vendor-এর প্রবেশ শুধু তার কাজের সিস্টেমে সীমিত করা, পর্ব ২২-এর segmentation, আর alert-এর একজন দায়িত্বশীল মানুষ। সাবধানতা: রিপোর্টটি নিজেই জনসমক্ষে থাকা তথ্যের ওপর দাঁড়ানো, আর alert-এর তথ্যের বড় অংশ একটি সংবাদ প্রতিবেদন থেকে নেওয়া। তাই “apparently” শব্দটি বাদ দিয়ে পড়বেন না।

৫ · জানা ত্রুটি, অজানা সম্পদ — Equifax আর Log4Shell

আপনার গুদামে কতগুলো ফায়ার এক্সটিংগুইশার আছে না জানলে মেয়াদ শেষ হলো কি না কীভাবে বুঝবেন? Patch-এর সমস্যা প্রায়ই আসলে তালিকার সমস্যা।

Equifax, ২০১৭

GAO-র হিসাবে অন্তত ১৪.৫৫ কোটি মানুষের ব্যক্তিগত তথ্য প্রকাশ পেয়েছিল। সময়রেখাটি দেখুন। প্রতিটি বিন্দু প্রতিরক্ষার একটি সুযোগ।

Equifax ২০১৭: সময়রেখা আর হাতছাড়া সুযোগ

তারিখ: House রিপোর্ট ও GAO-18-559

Equifax ২০১৭ সময়রেখা ৭ মার্চ · Struts patch প্রকাশ ৮–৯ মার্চ · সতর্কতা, ৪৮ ঘণ্টা সীমা ১৫ মার্চ · scan ত্রুটি ধরেনি ১৩ মে · হামলাকারীর প্রবেশ ২৯ জুলাই · traffic-এ সন্দেহ ধরা পড়ে ৩০ জুলাই · portal বন্ধ সুযোগ: নিজের সফটওয়্যারের তালিকা ব্যর্থতা: প্রাপকের তালিকা পুরোনো (GAO) ব্যর্থতা: scan ভুল জায়গায় (House) patch প্রকাশের ৬৭ দিন পরে কারণ: certificate নবায়ন করা হয়েছিল ত্রুটি জানার পরে প্রায় ১৪৫ দিন
ছবি ৬৫.২ — ৪৮ ঘণ্টার নিয়ম ছিল। নিয়ম থাকা আর নিয়ম কাজ করছে কি না মাপা, দুটি আলাদা জিনিস।

GAO-র মতে সতর্কতা ছিল একটি পুরোনো প্রাপক-তালিকায়, আর পরে scan পোর্টালের ত্রুটি ধরতে পারেনি। House রিপোর্টে আছে, scan চালানো হয়েছিল ভুল directory-তে। আরও ছিল: একটি database-এ এনক্রিপ্ট না করা credential, যা দিয়ে অন্য database-এ যাওয়া গেছে (GAO), আর file integrity monitoring না থাকা (House). পুরো জীবনচক্র দেখুন পর্ব ৩২-এ।

Log4Shell, ২০২১

Log4j একটি Java logging library, আর Log4Shell (CVE-2021-44228) তার গুরুতর ত্রুটি। এটি একটি breach নয়, একটি ঘটনা-ধারা। CSRB-এর রিপোর্ট (জুলাই ২০২২) অনুযায়ী ২৪ নভেম্বর ২০২১-এ Alibaba Cloud-এর একজন engineer Apache-কে জানান, আর ১০ ডিসেম্বর তা সবার সামনে আসে। রিপোর্টের প্রধান কথাগুলো:

  • এটি একটি “endemic vulnerability”; দুর্বল সংস্করণ বহু বছর, হয়তো এক দশক বা তার বেশি, সিস্টেমে থেকে যাবে।
  • একটি মার্কিন মন্ত্রণালয় শুধু এই সাড়ায় ৩৩ হাজার ঘণ্টা ব্যয়ের কথা জানায়।
  • অবাক করা তথ্য: exploit বিশেষজ্ঞদের ধারণার চেয়ে কম হয়েছে, যদিও নির্ভরযোগ্য বৈশ্বিক উপাত্ত নেই বলে রিপোর্ট নিজেই সতর্ক করেছে।
  • স্বেচ্ছাসেবী-নির্ভর open source প্রকল্পের সম্পদ কম। সুপারিশে আছে সঠিক asset inventory আর SBOM-এর টুল উন্নত করা।

আসল প্রশ্নটি ছিল “আমাদের কোথায় Log4j আছে?” যাঁদের dependency তালিকা ছিল, তাঁরা দ্রুত উত্তর পেয়েছেন। বিস্তারিত দেখুন পর্ব ৪৮-এ।

রিপোর্টের তারিখ দিয়ে ঘটনার গতি মাপা যায়। নিচের calculator প্রকাশিত তারিখ থেকে দিন গোনে, আর রিপোর্টের নিজের সংখ্যার পাশে বসায়।

// Dates as published in the named reports. Plain subtraction of calendar days.
const day = s => Date.UTC(+s.slice(0, 4), +s.slice(5, 7) - 1, +s.slice(8, 10)) / 864e5;

// case, interval, start, end, source, figure the source itself states
const rows = [
  ['Equifax',   'patch out -> intrusion',  '2017-03-07', '2017-05-13', 'House 2018', null],
  ['Equifax',   'intrusion -> detected',   '2017-05-13', '2017-07-29', 'House 2018', 76],
  ['CapitalOne','access -> confirmed',     '2019-03-22', '2019-07-19', 'MIT 2020',   null],
  ['Colonial',  'halt -> restart',         '2021-05-07', '2021-05-12', 'Hearing',    null],
  ['Log4Shell', 'private report -> fix',   '2021-11-24', '2021-12-10', 'CSRB 2022',  null],
  ['Change',    'entry -> ransomware',     '2024-02-12', '2024-02-21', 'Hearing',    9],
  ['xz',        '5.6.0 out -> CISA alert', '2024-02-24', '2024-03-29', 'CISA',       null],
];

console.log('case       interval                  days  stated  source');
for (const [c, what, a, b, src, stated] of rows) {
  const d = day(b) - day(a);
  const note = stated === null ? '-' : String(stated);
  console.log(c.padEnd(10), what.padEnd(25), String(d).padStart(4), note.padStart(6), ' ' + src);
}

// The July 2024 outage is an interval in minutes, not days.
const min = (h, m) => h * 60 + m;
console.log('Outage     content out -> reverted   ' + (min(5, 27) - min(4, 9)) + ' minutes (vendor PIR)');

// One certificate, two published durations, checked against the House date.
const months = (a, b) => ((day(b) - day(a)) / 30.44).toFixed(1);
console.log('cert expiry 2016-01-31 -> detection:', months('2016-01-31', '2017-07-29'), 'months');
console.log('cert expiry 2016-01-31 -> intrusion:', months('2016-01-31', '2017-05-13'), 'months');

আউটপুট:

case       interval                  days  stated  source
Equifax    patch out -> intrusion      67      -  House 2018
Equifax    intrusion -> detected       77     76  House 2018
CapitalOne access -> confirmed        119      -  MIT 2020
Colonial   halt -> restart              5      -  Hearing
Log4Shell  private report -> fix       16      -  CSRB 2022
Change     entry -> ransomware          9      9  Hearing
xz         5.6.0 out -> CISA alert     34      -  CISA
Outage     content out -> reverted   78 minutes (vendor PIR)
cert expiry 2016-01-31 -> detection: 17.9 months
cert expiry 2016-01-31 -> intrusion: 15.4 months

তিনটি জিনিস খেয়াল করুন। এক, Equifax-এ বিয়োগে ৭৭ আসে, রিপোর্ট বলছে ৭৬; গণনার রীতি বা শেষ দিন ধরার পার্থক্য হতে পারে। দুই, House-এর দেওয়া তারিখ থেকে certificate-এর সময় প্রায় ১৭.৯ মাস, “১৯ মাস” নয়। তিন, xz-এর ৩৪ দিন হলো মাত্র প্রকাশ থেকে সতর্কতার সময়, ধরা পড়ার আগে ঝুঁকির পুরো সময় নয়। সংখ্যা একই সংজ্ঞায় না থাকলে তুলনা করা ঠিক নয়।

৬ · Cloud আর supply chain — Capital One, SolarWinds, xz

Capital One, ২০১৯

যা প্রকাশিত: প্রতিষ্ঠানের নিজের হিসাবে প্রায় ১০ কোটি মার্কিন আর ৬০ লাখ কানাডীয় মানুষ আক্রান্ত। Novaes Neto ও সহলেখকদের MIT গবেষণাপত্র (২০২০) প্রকাশিত নথি মিলিয়ে বলে, একটি ভুলভাবে সাজানো WAF, SSRF আর cloud metadata service-এর সাময়িক credential মিলে ক্ষতির পথ তৈরি হয়। ভুল ধরা পড়ে নিজেদের monitoring-এ নয়, responsible disclosure-এর পথে আসা বাইরের একটি বার্তায়। আগস্ট ২০২০-এ OCC ৮ কোটি ডলার জরিমানা করে; অভিযোগ ছিল, cloud-এ যাওয়ার আগে ঝুঁকি মূল্যায়ন যথেষ্ট ছিল না, network control ও data loss prevention দুর্বল, alert সামলানো অকার্যকর, আর internal audit দুর্বলতা ধরতে পারেনি।

শিক্ষা: Least privilege থাকলে একটি role-এর ক্ষতি সীমিত হয়। Metadata সুরক্ষা ও প্রতিরক্ষা দেখুন পর্ব ৪২-এ। মনে রাখুন, OCC-র সাথে মীমাংসায় প্রতিষ্ঠানটি অভিযোগ স্বীকার বা অস্বীকার করেনি। আমাদের বিচারে এটি cloud-এর নিজের ব্যর্থতা নয়, cloud ব্যবহারের নিয়ন্ত্রণের ব্যর্থতা।

SolarWinds, ২০২০

যা প্রকাশিত: প্রতিষ্ঠানের SEC filing (১৪ ডিসেম্বর ২০২০) বলে, মার্চ থেকে জুন ২০২০-এর Orion update-এ দুর্বলতাটি ছিল, আর ১৮ হাজারের কম গ্রাহক তা বসিয়ে থাকতে পারেন। GAO (২০২২) জানায়, প্রতিষ্ঠানের হিসাবে সত্যিকারের আক্রান্ত গ্রাহক ১০০-র কম। ঘটনাটি ধরা পড়ে সফটওয়্যারের নির্মাতার কাছে নয়, এক গ্রাহকের কাছে: FireEye নিজের breach তদন্ত করতে গিয়ে Orion update পর্যন্ত পৌঁছায়, আর ১২ ডিসেম্বর নির্মাতাকে জানায়। পরদিন CISA জরুরি নির্দেশ দেয়।

শিক্ষা: বিশ্বস্ত update-ও ঝুঁকি (supply chain attack). পর্যবেক্ষণ সফটওয়্যারের বেশি অধিকার থাকে, তাই তার বের হওয়া সংযোগ সীমিত করা (egress filtering) জরুরি। GAO জানায় কিছু সংস্থায় log-ই ছিল না, যা তদন্ত কঠিন করেছে (পর্ব ৫৫)।

xz, ২০২৪

যা প্রকাশিত: Linux-এ বহুল ব্যবহৃত compression library xz-এর ৫.৬.০ আর ৫.৬.১ সংস্করণে ক্ষতিকর কোড পাওয়া যায় (CVE-2024-3094, CISA সতর্কতা ২৯ মার্চ ২০২৪)। একজন engineer SSH login-এ অস্বাভাবিক CPU ব্যবহার আর memory-পরীক্ষার টুলের ত্রুটি দেখে কৌতূহলবশে অনুসন্ধান করেন, তারপর oss-security তালিকায় জানান। কোনো পরিকল্পিত control ধরেনি; ধরা পড়েছে প্রায় কাকতালীয়ভাবে।

শিক্ষা: প্রকাশিত বিশ্লেষণ অনুযায়ী ঘটনাটির মূলে ছিল সময় নিয়ে অর্জন করা maintainer-এর আস্থা, আর সহায়তাহীন, প্রায় একা একজন maintainer. OpenSSF আর OpenJS ২০২৪-এর এপ্রিলে এ ধরনের social engineering নিয়ে সতর্ক করে। Reproducible build, দুই maintainer-এর পর্যালোচনা, আর প্রকল্পে অর্থ ও লোকবল এখানে প্রাসঙ্গিক। সবচেয়ে অস্বস্তিকর প্রশ্ন: যেগুলো ধরা পড়েনি, সেগুলো কোথায়?

৭ · Payment system আর হামলা ছাড়া ব্যর্থতা — Bangladesh Bank আর জুলাই ২০২৪

Bangladesh Bank, ২০১৬

এই অংশ শুধু সুপরিচিত প্রকাশিত প্রতিবেদনের পর্যায়ে। অঙ্ক, দায় আর ঘটনাপ্রবাহ নিয়ে বিভিন্ন পক্ষের বক্তব্য ভিন্ন, আইনি প্রক্রিয়াও দীর্ঘ হয়েছে। এখানে কারও দোষ নির্ধারণ করা হচ্ছে না। আলোচনা শুধু payment system-এর সাধারণ control নিয়ে।

২০১৬ সালের ফেব্রুয়ারিতে নিউ ইয়র্ক ফেডে রাখা Bangladesh Bank-এর হিসাব থেকে SWIFT বার্তায় জাল লেনদেনের নির্দেশ যায়। BAE Systems-এর প্রকাশিত বিশ্লেষণ চেষ্টার অঙ্ক বলে প্রায় ৯৫.১ কোটি ডলার। প্রকাশিত প্রতিবেদনগুলো সাধারণত বলে, প্রায় ১০.১ কোটি ডলার সরেছিল, যার প্রায় ৮.১ কোটি ডলার ফিলিপাইনে যায়, আর অঙ্কের একাংশ পরে ফেরত এসেছে। BAE সতর্ক করে যে কারিগরি বিবরণ তখনো প্রকাশিত হয়নি, আর তাদের বিশ্লেষণ অনলাইন malware ভাণ্ডারে পাওয়া কিছু tool-এর ওপর দাঁড়ানো, যেগুলোকে তারা ঘটনার সাথে যুক্ত বলে মনে করে। দায় নিয়ে বিভিন্ন পক্ষের বক্তব্য ভিন্ন ছিল; SWIFT জানিয়েছিল, নিজের সংযোগের কম্পিউটার সুরক্ষিত রাখা গ্রাহকের দায়িত্ব।

এই ধরনের ঘটনার পরে SWIFT তার Customer Security Programme শুরু করে (অধিকাংশ উৎসে ২০১৬), আর পরে গ্রাহকদের জন্য বাধ্যতামূলক control ও বার্ষিক ঘোষণা যুক্ত হয়। যেকোনো payment system-এর জন্য সাধারণ শিক্ষা:

  • আলাদা অঞ্চল: payment terminal সাধারণ অফিস নেটওয়ার্ক থেকে আলাদা, সীমিত প্রবেশসহ।
  • দুই জোড়া চোখ: Four-eyes principle, শক্ত MFA, আর operator credential-এর আলাদা সুরক্ষা।
  • স্বাধীন মিলানো: Payment reconciliation এমন পথে হওয়া চাই, যা একই কম্পিউটারের ওপর নির্ভর করে না। ক্যাশিয়ারের খাতা আর ব্যাংকের বিবরণী আলাদা হাতে মেলানোর মতো।
  • সীমা ও সংকেত: অস্বাভাবিক অঙ্ক, নতুন প্রাপক আর অসময়ের লেনদেনে থামানোর নিয়ম, দুই প্রান্তেই।
  • ছুটির দিনের প্রস্তুতি: সাপ্তাহিক ছুটি আর ভিন্ন সময় অঞ্চলেও জরুরি যোগাযোগের নির্দিষ্ট পথ।

জুলাই ২০২৪-এর বিভ্রাট: কোনো হামলাকারী ছিল না

১৯ জুলাই ২০২৪ তারিখে নিরাপত্তা প্রতিষ্ঠান CrowdStrike-এর একটি content update Windows কম্পিউটার crash করায়। প্রতিষ্ঠানের হিসাবে update ছাড়া হয় ০৪:০৯ UTC-তে, ফেরানো হয় ০৫:২৭ UTC-তে, অর্থাৎ ৭৮ মিনিট। Microsoft-এর অনুমান প্রায় ৮৫ লাখ Windows device আক্রান্ত, যা সব Windows-এর ১ শতাংশের কম। প্রতিষ্ঠানের root cause রিপোর্ট বলে, ২১টি input field-এর বিপরীতে কোড দিচ্ছিল ২০টি, যা memory-র সীমার বাইরে পড়ে; validator-এর একটি ত্রুটিও এটি আটকায়নি, আর staged deployment ছিল না।

এটি কেন এই পর্বে? কারণ availability-ও নিরাপত্তার অংশ। আর control-গুলো একই: staged rollout, rollback, পুনরুদ্ধারের অনুশীলন। ফেরানো হয়েছিল ৭৮ মিনিটে, কিন্তু অনেক কম্পিউটার হাতে ঠিক করতে হয়েছে। অর্থাৎ ছড়ানোর গতি আর সারানোর গতি সমান নয়। হামলাকারীর জন্য যে প্রস্তুতি, দুর্ঘটনাতেও সেটিই কাজে লাগে।

৮ · কী থাকলে সাহায্য হতো — সারাংশ আর control-এর সাথে জোড়া

নিচের টেবিল এই কোর্সের লেখকের নিজের mapping, রিপোর্টের নয়। CIS Controls v8.1-এর নম্বর আর ATT&CK Enterprise mitigation-এর ID ব্যবহার করা হয়েছে। “সাহায্য হতো” মানে ঝুঁকি কমত; ঘটনা নিশ্চিত ঠেকত, এমন দাবি নয়।

ঘটনাকী থাকলে সাহায্য হতোCISATT&CKপর্ব
Equifax ২০১৭সঠিক তালিকা, patch-এর পরিমাপ, certificate-এর মালিক, segmentation, এনক্রিপ্ট করা credential১, ২, ৭, ১২, ১৩, ৩M1051, M1020, M1030, M1041১২, ২২, ৩২
Target ২০১৩Vendor-এর সীমিত প্রবেশ, two-factor, segmentation, alert-এর দায়িত্বশীল৬, ১২, ১৩, ১৫M1032, M1030, M1031১৬, ২২, ৬০
Capital One ২০১৯WAF-এর সঠিক configuration, least privilege, DLP, alert সামলানো৩, ৪, ৬, ১৩, ১৬M1054, M1018, M1057১৯, ৪২, ৫৫
SolarWinds ২০২০Build সুরক্ষা, management server-এর egress সীমা, দীর্ঘ log৮, ১৩, ১৫, ১৬M1037, M1047২২, ৪৮, ৫৫
Colonial ২০২১পুরোনো অ্যাকাউন্ট বন্ধ, VPN-এ MFA, ransomware পরিকল্পনা১, ৫, ৬, ১১, ১৭M1032, M1018, M1053১৬, ২৫, ৩৪
Log4Shell ২০২১SBOM আর software তালিকা, লিখিত vulnerability সাড়া২, ৭, ১৬M1016, M1051, M1037৩২, ৪৪, ৪৮
Bangladesh Bank ২০১৬*আলাদা payment অঞ্চল, four-eyes, স্বাধীন মিলানো৬, ৮, ১২, ১৭M1030, M1026, M1047৩, ২০, ২২
Change Healthcare ২০২৪সব দূরবর্তী portal-এ MFA, lateral movement ধরা, পুনরুদ্ধারের অনুশীলন৫, ৬, ১১, ১৭M1032, M1030, M1053১৬, ২০, ৩৪
xz ২০২৪Reproducible build, দুই পর্যালোচক, maintainer-কে সহায়তা২, ১৫, ১৬M1045, M1016৪৫, ৪৮, ৪৯
জুলাই ২০২৪ বিভ্রাটStaged rollout, input যাচাই, rollback, BCP১১, ১৬, ১৭প্রযোজ্য নয় (হামলা নয়)৪৫, ৬২

* প্রকাশিত প্রতিবেদনের ভিত্তিতে সাধারণ payment-control শিক্ষা; ব্যাংকের নিজস্ব অবস্থার মূল্যায়ন নয়।

একটি ঘটনার mapping হাতে করে দেখুন। উদাহরণ Change Healthcare-এর “portal-এ MFA ছিল না”।

প্রমাণportal-এ MFA ছিল না
CIS 6, 5access আর account
M1032Multi-factor Authentication
পর্ব ১৬ · ২৫ · ২০কোথায় শিখবেন
পরীক্ষা১০০% দূরবর্তী পথে MFA
সীমাsession চুরি, ভেতরের চলাচল
  1. প্রমাণ দিয়ে শুরু। শুনানির লিখিত বক্তব্য: portal-এ MFA ছিল না। অনুমান নয়, এটি দায়িত্বশীলের নিজের স্বীকারোক্তি। Mapping শুরু হয় এমন নির্দিষ্ট বাক্য থেকে, “দুর্বল নিরাপত্তা” থেকে নয়।
  2. CIS Control বাছাই। CIS Control ৬ (Access Control Management)-এ দূরবর্তী প্রবেশে MFA-র safeguard আছে; Control ৫ (Account Management) অ্যাকাউন্টের হিসাব রাখে। সব অ্যাকাউন্ট নয়, ঠিক কোন safeguard মেলে সেটি দেখুন।
  3. ATT&CK mitigation. M1032 Multi-factor Authentication. এটি External Remote Services আর Valid Accounts ধরনের কৌশলের বিরুদ্ধে প্রযোজ্য। ATT&CK মানচিত্রের ব্যবহার দেখুন পর্ব ৫-এ।
  4. কোর্সের পর্ব। পর্ব ১৬ (phishing-প্রতিরোধী MFA), পর্ব ২৫ (দূরবর্তী প্রবেশ), পর্ব ২০ (অধিকার সীমিত)।
  5. পরীক্ষাযোগ্য শিক্ষা। লিখুন: “সব দূরবর্তী প্রবেশের পথ তালিকাভুক্ত, প্রতি প্রান্তিকে যাচাই, লক্ষ্য ১০০% MFA, ব্যতিক্রমের মালিক ও মেয়াদ আছে।” তালিকায় যে পথ নেই, সেটিই ঝুঁকি, যেমন Colonial-এর পুরোনো VPN.
  6. Control-এর সীমা লিখুন। MFA session চুরি পুরো ঠেকায় না, আর ভেতরে ঢোকার পরের চলাচলও থামায় না। তাই পরের স্তর: segmentation, detection, backup. কোনো একটি control-কে সমাধান ভাববেন না।

দশটি ঘটনা পাশাপাশি রাখলে কোন control পরিবার বারবার আসে? নিচের matrix-এ ২ মানে কোনো উল্লেখিত রিপোর্ট ফাঁকটির কথা বলেছে, ১ মানে দুর্বল প্রমাণে আমাদের ব্যাখ্যা।

// 2 = a cited report names the gap; 1 = our reading, weaker evidence.
const cases = {
  Equifax:    { INV: 2, VUL: 2, SEG: 2, DET: 2, DAT: 2 },
  Target:     { TPR: 2, IAM: 2, SEG: 2, DET: 2 },
  CapitalOne: { CFG: 2, IAM: 1, DET: 2, DAT: 2 },
  SolarWinds: { TPR: 2, SDL: 2, DET: 2 },
  Colonial:   { INV: 2, IAM: 2, REC: 2 },
  Log4Shell:  { INV: 2, VUL: 2, SDL: 1, TPR: 1 },
  BangBank:   { IAM: 1, SEG: 1, DET: 1, REC: 1 },
  Change:     { IAM: 2, SEG: 1, REC: 2 },
  xz:         { TPR: 2, SDL: 2 },
  Outage2024: { SDL: 2, TPR: 1, REC: 2 },
};
const names = { INV: 'inventory', VUL: 'patching', IAM: 'identity/MFA',
  SEG: 'segmentation', DET: 'detection', TPR: 'third party', SDL: 'secure release',
  CFG: 'configuration', REC: 'recovery/IR', DAT: 'data protection' };

const total = {};
for (const row of Object.values(cases))
  for (const [f, w] of Object.entries(row)) {
    total[f] = total[f] || { n: 0, weight: 0, strong: 0 };
    total[f].n += 1;
    total[f].weight += w;
    if (w === 2) total[f].strong += 1;
  }

const ranked = Object.entries(total).sort((a, b) =>
  b[1].weight - a[1].weight || b[1].strong - a[1].strong);
console.log('rank family           cases strong weight');
ranked.forEach(([f, t], i) => console.log(
  String(i + 1).padStart(3), ' ' + names[f].padEnd(16),
  String(t.n).padStart(4), String(t.strong).padStart(6), String(t.weight).padStart(6)));
const n = Object.keys(cases).length;
console.log('cases:', n, '| non-malicious:', 1, '| families:', ranked.length);

আউটপুট:

rank family           cases strong weight
  1  detection           5      4      9
  2  third party         5      3      8
  3  identity/MFA        5      3      8
  4  secure release      4      3      7
  5  recovery/IR         4      3      7
  6  inventory           3      3      6
  7  segmentation        4      2      6
  8  patching            2      2      4
  9  data protection     2      2      4
 10  configuration       1      1      2
cases: 10 | non-malicious: 1 | families: 10

Detection সবার ওপরে (ওজন ৯), তারপর third party আর identity/MFA (দুটিই ৮, ক্রম সমান হলে আগে লেখা আগে আসে)। Patching অনেক নিচে, যদিও আলোচনায় সেটিই সবচেয়ে বেশি শোনা যায়। ফলটি নিয়ে সাবধান: এখানে মাত্র ১০টি ঘটনা, বাছাই করেছেন একজন মানুষ, আর ওজনও বিচারভিত্তিক। প্রকাশিত ঘটনা মানেই বড় ও ধরা পড়া ঘটনা, এটি selection bias. Matrix আলোচনা শুরু করার হাতিয়ার, পরিসংখ্যান নয়।

৯ · খরচের হিসাব আর নিজের প্রতিষ্ঠানে প্রয়োগ

“একটি breach-এ এত টাকা ক্ষতি” শুনলেই জিজ্ঞেস করুন: কে বলেছেন, কী গোনা হয়েছে, কখন? নিচের সংখ্যাগুলো একে অন্যের সাথে তুলনীয় নয়।

ঘটনাসংখ্যাকে বলেছেনএটি আসলে কী
Equifaxকমপক্ষে ৫৭.৫ কোটি, সর্বোচ্চ ৭০ কোটি ডলারFTC, ২০১৯মীমাংসা; মোট ক্ষতি নয়
Target২০.২ কোটি ডলারকোম্পানি, ২০১৭-র সংবাদেকোম্পানির জানানো মোট; রাজ্যগুলোর সাথে মীমাংসা ১.৮৫ কোটি
Capital One৮ কোটি ডলারOCC, ২০২০শুধু জরিমানা
Colonial৭৫ bitcoin, প্রায় ৪৪ লাখ ডলারসিনেট শুনানি, ২০২১মুক্তিপণ; পরে প্রায় ২৩ লাখ ডলার উদ্ধার (মার্কিন বিচার বিভাগ)
Change Healthcareপ্রায় ২৮৭ কোটি ডলারকোম্পানির ২০২৪-এর অনুমান, সংবাদে২০২৪ সালের আর্থিক প্রভাবের অনুমান; পরে সংখ্যাটি বেড়েছে বলে সংবাদে এসেছে
জুলাই ২০২৪ বিভ্রাট৫৪০ কোটি ডলার পর্যন্তParametrix (বিমা মডেল)Microsoft বাদে Fortune 500-এর সরাসরি ক্ষতির মডেলভিত্তিক অনুমান
Log4Shell৩৩ হাজার ঘণ্টাCSRB, ২০২২একটি মন্ত্রণালয়ের নিজের জানানো সময়

ঝুঁকির হিসাব কীভাবে করবেন, তা পরে পর্ব ৬৮-তে আসবে। এখানে মূল কথা: জরিমানা, মীমাংসা, মুক্তিপণ, মোট আর্থিক প্রভাব, মডেলের অনুমান পাঁচটি আলাদা জিনিস।

এবার শিক্ষাগুলো একটি কাল্পনিক অনলাইন বাজারে প্রয়োগ করি। ওজনগুলো উপরের matrix থেকে নেওয়া। উত্তর: ১ মানে করা ও পরীক্ষিত, ০.৫ মানে আংশিক, ০ মানে নেই।

// Fictional online market. Answers: 1 = done and tested, 0.5 = partial, 0 = no.
// Weight = family weight from the case-control matrix (course example only).
const checks = [
  ['MFA on every remote entry, vendors too',  'identity',      8, 1],
  ['One list of exposed services, with owner','inventory',     6, 0.5],
  ['Alerts reach a person who must respond',  'detection',     9, 0.5],
  ['Vendor access limited and reviewed',      'third party',   8, 0],
  ['Payment zone separated from office LAN',  'segmentation',  6, 1],
  ['Restore practised from offline backup',   'recovery',      7, 0],
  ['Updates released in stages with rollback','release',       7, 0.5],
  ['Critical patch deadline measured',        'patching',      4, 0.5],
  ['Secrets and personal data encrypted',     'data',          4, 1],
  ['Config reviewed after every change',      'configuration', 2, 0.5],
];

let got = 0, max = 0;
const gaps = [];
for (const [text, family, w, ans] of checks) {
  got += w * ans;
  max += w;
  if (ans < 1) gaps.push({ text, lost: w * (1 - ans) });
}

console.log(`score: ${got} / ${max} = ${(100 * got / max).toFixed(1)}%`);
gaps.sort((a, b) => b.lost - a.lost);
console.log('fix first:');
gaps.slice(0, 4).forEach((g, i) =>
  console.log(` ${i + 1}. ${g.text} (loses ${g.lost})`));

// A score is not safety: one missing control can still be the way in.
const hardGaps = checks.filter(c => c[3] === 0).map(c => c[1]);
console.log('never tested at all:', hardGaps.join(', '));

আউটপুট:

score: 32 / 61 = 52.5%
fix first:
 1. Vendor access limited and reviewed (loses 8)
 2. Restore practised from offline backup (loses 7)
 3. Alerts reach a person who must respond (loses 4.5)
 4. Updates released in stages with rollback (loses 3.5)
never tested at all: third party, recovery

মোট ৬১-র মধ্যে ৩২, অর্থাৎ ৫২.৫%. Vendor প্রবেশ আর পুনরুদ্ধার অনুশীলনে কোনো কাজ হয়নি, তাই সেগুলো সবার আগে। “Loses” দেখায় পূর্ণ করলে কতটা নম্বর বাড়ে। Alert-এর গুরুত্ব বেশি হলেও আংশিক কাজ আছে বলে সেটি তৃতীয়। সাবধান: নম্বর উঁচু মানেই নিরাপদ নয়। ৯০% পেয়েও বাকি একটি ফুটো দিয়েই Colonial-এর মতো ঘটনা ঘটতে পারে, তাই শেষ লাইনে শূন্য পাওয়া বিষয়গুলো আলাদা করে দেখানো হয়েছে।

আরও গভীরে: Fischhoff (১৯৭৫) hindsight bias-এর মূল গবেষণা। Reason-এর Human Error (১৯৯০) সক্রিয় ব্যর্থতা আর সুপ্ত শর্ত আলাদা করে। নিরাপত্তা-প্রকৌশলের গবেষকদের অনেকে এক root cause-এর ধারণার সমালোচনা করেন, কারণ তাঁদের মতে জটিল ব্যবস্থার ব্যর্থতা একাধিক শর্তের মিলন। NIST SP 800-61 Rev. 3 (২০২৫) ঘটনা থেকে শেখাকে উন্নতির নিয়মিত অংশ হিসেবে দেখে।

পরীক্ষা ও ইন্টারভিউতে:

  • Root cause আর contributing factor-এর পার্থক্য? প্রথমটি গভীর কারণ, দ্বিতীয়টি যে শর্ত ঘটনায় সাহায্য করেছে বা ক্ষতি বাড়িয়েছে।
  • Hindsight bias কী? ফল জানার পরে ঘটনাকে আগে থেকেই স্পষ্ট ভাবা।
  • Log4Shell-এর সময় প্রথম প্রশ্ন কী হওয়া উচিত? “আমাদের কোথায় এটি আছে?” এর উত্তর দেয় SBOM আর asset inventory.
  • Colonial আর Change Healthcare-এর মিল? দূরবর্তী প্রবেশের পথে MFA ছিল না।
  • একটি ঘটনা বিশ্লেষণের কাঠামো বলুন। উৎস যাচাই, সময়রেখা, কারণের স্তর, control-এর mapping, পরীক্ষাযোগ্য কাজ।

১০ · AI-এর যুগে রিপোর্ট পড়া

AI একটি ৯৬ পৃষ্ঠার রিপোর্ট কয়েক সেকেন্ডে সংক্ষেপ করতে পারে। ঠিক এখানেই বিপদ। সে সবচেয়ে চেনা গল্পটি লেখে, সূক্ষ্ম অমিলগুলো মুছে দেয়, আর এমনভাবে বলে যেন সব নিশ্চিত।

AI-এর ভুলকীভাবে ধরবেন
CVE নম্বর, রিপোর্টের নাম বা উদ্ধৃতি বানিয়ে দেওয়াCVE আর উদ্ধৃতি মূল নথিতে খুঁজুন
“১০ মাস” বনাম “১৯ মাস”-এর মতো অমিল একটি সংখ্যায় চেপে দেওয়াএকাধিক উৎস নিজে মেলান
দাবিকে ঘটনা বানানো; “apparently”, “according to” মুছে ফেলামূল বাক্য দেখুন, আস্থার মাত্রা লিখুন
ব্যক্তিকে দোষী করে সহজ গল্প বলাব্যবস্থার প্রশ্ন আবার করুন
পুরোনো পরামর্শ বা control-এর সংস্করণ দেওয়া; সমাধান হিসেবে যাচাই বন্ধ করা (verify=False)CIS ও ATT&CK-এর বর্তমান পাতা দেখুন
Incident-এর নাজুক log, secret বা ব্যক্তিগত তথ্য prompt-এ ঢোকানোএসব কখনো পেস্ট করবেন না; কাল্পনিক উদাহরণ দিন

AI-কে সিদ্ধান্তদাতা নয়, পড়ার সঙ্গী হিসেবে ব্যবহার করুন। রিপোর্টের জনসমক্ষে থাকা অংশটুকু দিয়ে দাবি আলাদা করতে বলুন:

তুমি একজন সতর্ক incident reviewer. নিচে একটি প্রকাশিত breach রিপোর্টের অংশ দিলাম। [এখানে রিপোর্টের জনসমক্ষে থাকা অংশ পেস্ট করুন] ১. প্রতিটি দাবিকে তিন ভাগে ভাগ করো: যাচাই করা ঘটনা, কারও বক্তব্য, লেখকের ব্যাখ্যা। মূল বাক্য হুবহু উদ্ধৃত করো। ২. শুধু এই লেখায় যা আছে তাই ব্যবহার করো। বাইরের তথ্য বা CVE নম্বর যোগ করবে না। না জানলে "লেখায় নেই" লিখবে। ৩. প্রতিরক্ষার কোন ফাঁকগুলো বলা হয়েছে, আর কী অজানা রয়ে গেছে, তা আলাদা করে দেখাও। ৪. কোথাও hindsight bias থাকতে পারে কি না চিহ্নিত করো। ৫. কোনো ব্যক্তির নাম উল্লেখ করবে না, আর হামলার ধাপ পুনর্গঠন করবে না।

AI-এর সারাংশ ব্যবহারের আগে চেকলিস্ট

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

প্রতিটি প্রশ্ন নিয়ে নিজে কিছুক্ষণ ভাবুন, তারপর “→ উত্তর” চাপুন।

প্র ০১Equifax breach-কে “entirely preventable” বলা কি ন্যায্য?

দুই দিক থেকেই ভাবা দরকার। House কমিটির রিপোর্ট এই শব্দটি ব্যবহার করেছে, আর তার যুক্তি শক্ত। প্যাচ প্রকাশিত ছিল, প্রতিষ্ঠানের নিজের ৪৮ ঘণ্টার নিয়ম ছিল, সতর্কতা এসেছিল, ৩০০-র বেশি certificate মেয়াদোত্তীর্ণ ছিল। এগুলো কোনো অজানা জাদু নয়, পরিচিত স্বাস্থ্যবিধি।

কিন্তু “preventable” শব্দের ভেতরে একটি লুকানো দাবি আছে: তখনকার মানুষদের কাছে আজকের মতোই স্পষ্ট ছিল সেটি কোনটি গুরুত্বপূর্ণ। বাস্তবে একটি বড় প্রতিষ্ঠানে একই মাসে অসংখ্য critical সতর্কতা আসে। প্রতিটি পোর্টাল আর প্রতিটি certificate সমান গুরুত্ব পায় না। Fischhoff-এর ১৯৭৫-এর গবেষণা দেখায়, ফল জানার পরে আমরা নিজের পূর্বাভাসের ক্ষমতা বাড়িয়ে দেখি।

তাহলে ভালো অবস্থান কী? দুটি প্রশ্ন আলাদা করা। “প্রতিষ্ঠান হিসেবে কি পরিচিত ও যুক্তিসঙ্গত control ছিল?” এর উত্তরে সমালোচনা ন্যায্য, আর এতে জবাবদিহিও জরুরি। “একজন মানুষ কি সেদিন ঠিক কাজটি বুঝতে পারতেন?” এর উত্তর জানতে হলে তাঁর সামনে কী ছিল তা দেখতে হবে। আরও মনে রাখবেন, এটি একটি রাজনৈতিক কমিটির staff রিপোর্ট, আর প্রতিষ্ঠান এর কিছু অংশে আপত্তি তুলেছিল।

একটি ব্যবহারিক পরীক্ষা হলো নিজের প্রতিষ্ঠানে একই প্রশ্ন করা। আজ কোন সতর্কতাটি উপেক্ষিত হচ্ছে, যা পরের বছর কোনো রিপোর্টে “স্পষ্ট” বলে লেখা হবে? আপনার সব নিরাপত্তা device কি এই মুহূর্তে কাজ করছে, আর সেটি আপনি কীভাবে জানেন? উত্তর দিতে না পারলে অন্যের ব্যর্থতাকে “সহজ” বলার আগে একটু থামুন। সমালোচনার মান এমন হওয়া উচিত, যা নিজের ওপরও প্রয়োগ করা যায়।

মূল উপলব্ধি: জবাবদিহি থাকবে প্রতিষ্ঠান ও ব্যবস্থার ওপর, কিন্তু “সহজেই ঠেকানো যেত” বলার আগে তখনকার তথ্য, চাপ আর সম্পদ বিচার করতে হবে।

প্র ০২নিরীক্ষা ও সনদ থাকলেও বড় ঘটনা ঘটে কেন? Compliance আর নিরাপত্তার সম্পর্ক কী?

Novaes Neto ও সহলেখকদের Capital One গবেষণার পরবর্তী সংস্করণের শিরোনামই প্রশ্নটি তোলে: compliance-এর শর্ত কেন ঘটনাটি ঠেকাতে পারেনি? OCC-র অভিযোগেও আছে, internal audit অনেক দুর্বলতা চিহ্নিত ও জানাতে পারেনি। অর্থাৎ পাহারাদারের ওপর আরেকজন পাহারাদার থাকলেও ফাঁক থাকতে পারে।

কারণ কয়েকটি। এক, নিরীক্ষা একটি মুহূর্তের ছবি, অথচ configuration প্রতিদিন বদলায়। দুই, নিরীক্ষা সাধারণত নমুনা দেখে, আর হামলাকারী খোঁজে সেই একটি জায়গা, যা নমুনায় আসেনি। তিন, নিয়মের ভাষা ধীরে বদলায়, প্রযুক্তি দ্রুত। চার, “আছে” আর “কাজ করছে” আলাদা: Equifax-এ traffic দেখার device ছিল, ৪৮ ঘণ্টার নিয়মও ছিল, কিন্তু কাজ হয়নি।

তার মানে কি compliance অর্থহীন? না। SWIFT-এর Customer Security Programme দেখায়, বাধ্যতামূলক ন্যূনতম মান গোটা খাতের ভিত্তি উঁচু করতে পারে। ঝুঁকি হয় তখন, যখন নিরীক্ষায় পাস করাই লক্ষ্য হয়ে যায়। নিরীক্ষার ভাষায়ও control-এর নকশা আর তার কার্যকারিতা আলাদা দুটি প্রশ্ন।

ব্যবহারিক সমাধান: প্রতিটি control-এর জন্য একটি জীবন্ত প্রমাণ রাখা। Device অকেজো হলে সতর্কতা আসে কি না, মাঝে মাঝে পরীক্ষা করা। Backup শুধু নেওয়া নয়, ফিরিয়ে দেখা।

একটি উদাহরণ ভাবুন। একটি কাল্পনিক অনলাইন বাজার বছরে একবার নিরীক্ষায় পাস করে। নিরীক্ষার পরের সপ্তাহে একজন কর্মী জরুরি কাজে একটি storage খোলা রেখে দিলেন। সনদটি তখনও বৈধ, কিন্তু নিরাপত্তা আর আগের মতো নেই। নিরীক্ষক ভুল করেননি, সনদও জাল নয়; ঝুঁকিটি এসেছে সনদের সময়ের পরে। তাই ধারাবাহিক configuration পর্যবেক্ষণ নিরীক্ষার বিকল্প নয়, পরিপূরক।

মূল উপলব্ধি: Compliance হলো মেঝে, ছাদ নয়। প্রশ্ন “নিয়ম আছে কি?” নয়, “আজ এটি কাজ করছে, আর আমি কীভাবে জানি?”

প্র ০৩Colonial Pipeline-এ OT আক্রান্ত হওয়ার প্রমাণ না থাকলেও পাইপলাইন বন্ধ করা কি ঠিক ছিল?

শুনানিতে প্রধান নির্বাহী জানান, তদন্তকারী দল OT system-এ হামলাকারীর প্রমাণ পায়নি। তবুও পাইপলাইন শুক্রবার থেকে পরের বুধবার বিকেল পর্যন্ত বন্ধ ছিল, আর তিনি control room-এর supervisor-এর দ্রুত সিদ্ধান্তের প্রশংসা করেন।

সেই মুহূর্তের তথ্য ভাবুন। সকালে ransomware ধরা পড়েছে। হামলাকারী কোথায় পর্যন্ত গেছে কেউ জানে না। পাইপলাইন একটি ভৌত ব্যবস্থা, ভুল হলে শুধু ফাইল নয়, মানুষ ও পরিবেশ ঝুঁকিতে পড়ে। ভবিষ্যৎ জ্ঞান ছাড়া বিচার করলে সতর্কতা অযৌক্তিক নয়। “প্রমাণ পরে পাওয়া যায়নি” বলে তখনকার সিদ্ধান্ত ভুল ছিল, এমন ভাবা hindsight bias.

আবার ব্যবসার দাম ছিল বিশাল, আর জ্বালানি সরবরাহে অঞ্চলজুড়ে প্রভাব পড়েছিল। তাই শেখার প্রশ্ন হওয়া উচিত: IT আর OT কতটা আলাদা? IT পড়ে গেলে OT নিরাপদে চলতে পারে কি? এই সিদ্ধান্ত কে, কোন তথ্যে নেবেন, তা কি আগে লেখা ও অনুশীলিত ছিল? শুনানিতে উঠে আসে, পরিকল্পনায় ransom নিয়ে নির্দিষ্ট আলোচনা ছিল না।

Ransom দেওয়া নিয়েও প্রধান নির্বাহী নিজের সিদ্ধান্তের কথা বলেন; মার্কিন বিচার বিভাগ পরে একটি অংশ উদ্ধারের কথা জানায়। আইনি ও নৈতিক প্রশ্ন এখানে জটিল, আর দেশভেদে আলাদা। পর্ব ৩৪ এবং পর্ব ৬-এ এর আলোচনা দেখুন।

মনে রাখুন, ব্যবসা থামানোর সিদ্ধান্ত containment-এরও একটি রূপ (পর্ব ৬২-তে বিস্তারিত দেখেছেন)। এর দাম আগে থেকে জানা থাকা চাই: প্রতি ঘণ্টা বন্ধ থাকলে কী ক্ষতি, কে চালু করার অনুমতি দেবেন, আর কোন প্রমাণ পেলে আবার চালু করা নিরাপদ বলে ধরা হবে। এগুলো সংকটের মুহূর্তে প্রথমবার ভাবলে সিদ্ধান্ত হয় ধীর হবে, নয়তো চাপের কাছে হার মানবে।

মূল উপলব্ধি: সংকটে সবচেয়ে ভালো সিদ্ধান্ত হলো আগেই লেখা ও মহড়া দেওয়া সিদ্ধান্ত। পর্ব ৬৬-এর tabletop exercise এজন্যই।

প্র ০৪xz ধরা পড়েছিল প্রায় কাকতালীয়ভাবে। এ থেকে আমাদের নিরাপত্তা সম্পর্কে কী বোঝা যায়?

একজন engineer লক্ষ করেন SSH login-এ অস্বাভাবিক CPU খরচ হচ্ছে, আর একটি memory-পরীক্ষার টুল ত্রুটি দেখাচ্ছে। তিনি চাইলে উপেক্ষা করতে পারতেন। করেননি, আর তাঁর কৌতূহল এক বৈশ্বিক ঝুঁকি আগেভাগে সামনে এনেছে। কথাটি অনুপ্রেরণার, কিন্তু একই সাথে অস্বস্তিকর। নিরাপত্তা তো ভাগ্যের ওপর চলতে পারে না।

এখানে একটি পরিসংখ্যানগত ফাঁদ আছে, selection bias. আমরা শুধু ধরা পড়া ঘটনা দেখি। “xz ধরা পড়েছে, তাই open source-এর চোখ যথেষ্ট” বলা ঠিক নয়, কারণ না-ধরা পড়াগুলো গোনা যায় না। আবার “open source অনিরাপদ” বলাও ভুল: বন্ধ কোডে হলে এই অনুসন্ধান অনেক কঠিন হতো। SolarWinds-এর ক্ষতিকর কোডও বন্ধ-উৎস পণ্যের ভেতরে ছিল।

গঠনগত সমস্যাটি CSRB-ও Log4j রিপোর্টে তুলেছে: বিশ্বের সফটওয়্যার স্বেচ্ছাসেবীদের অল্প সম্পদের ওপর দাঁড়িয়ে। OpenSSF আর OpenJS-এর ২০২৪-এর সতর্কতা বলে, সহায়তা পাওয়া maintainer-ই বড় প্রতিরক্ষা, যদিও পরামর্শগুলো দৃঢ় হামলাকারীকে পুরো ঠেকাবে না।

আপনার প্রতিষ্ঠান কী করতে পারে? গুরুত্বপূর্ণ dependency চিহ্নিত করা, তার maintainer-সংখ্যা ও স্বাস্থ্য দেখা, প্রকল্পকে অর্থ বা সময় দেওয়া, reproducible build, আর “অদ্ভুত লাগছে” বলার সংস্কৃতি।

আরেকটি শিক্ষা detection নিয়ে। Engineer-এর হাতে ছিল অস্বাভাবিক আচরণের একটি ছোট সংকেত, কোনো পরিচিত signature নয়। স্বাভাবিক অবস্থা জানা থাকলেই “অস্বাভাবিক” চোখে পড়ে। আপনার সিস্টেমে login-এ সাধারণত কতটা সময় বা CPU লাগে, তা জানা থাকলে এমন ছোট পরিবর্তনও প্রশ্ন তোলে। এই চিন্তাই পর্ব ৫৮-এর threat hunting-এর ভিত্তি।

মূল উপলব্ধি: যা ধরা পড়েনি তা দিয়ে নিজের নিরাপত্তা মাপা যায় না। কৌতূহলী মানুষকে সময় ও সম্মান দিন, কিন্তু তাঁর ওপর ভরসা করে ব্যবস্থা বানাবেন না।

প্র ০৫জুলাই ২০২৪-এর বিভ্রাটে নিরাপত্তা সফটওয়্যারই ক্ষতি করল। তাহলে কি নিরাপত্তার টুলও ঝুঁকি?

হ্যাঁ, আর এটি নতুন কথা নয়। যে টুল সবকিছু দেখতে পারে, সবকিছু থামাতে পারে, তার ব্যর্থতার প্রভাবও বিশাল। Endpoint নিরাপত্তা সফটওয়্যারকে গভীর স্তরে চলতে হয়, নইলে হামলা দেখা যায় না। আর দ্রুত নতুন হুমকির জন্য তাকে দ্রুত content update পেতে হয়। অর্থাৎ দুটি ভালো উদ্দেশ্য, গভীর প্রবেশ আর দ্রুত হালনাগাদ, একসাথে বড় ঝুঁকি তৈরি করে।

প্রতিষ্ঠানের রিপোর্ট অনুযায়ী ত্রুটিটি memory-র সীমার বাইরে পড়া, যা পর্ব ৪৭-এর বিষয়, আর পরিবর্তন ধাপে ধাপে ছড়ানো হয়নি। Staged rollout থাকলে প্রথম ছোট দলেই সমস্যা ধরা পড়ত, এমন দাবি যৌক্তিক। তবে নিরাপত্তা-প্রকৌশলে এর একটি দাম আছে: হুমকি দ্রুত ছড়ালে ধীর rollout-ও ঝুঁকি। তাই প্রতিষ্ঠানটি canary group আর গ্রাহকের নিয়ন্ত্রণ যোগ করার পরিকল্পনা জানায়।

একটি ঘটনা দিয়ে “EDR বাদ দিন” বলা ভুল সিদ্ধান্ত হবে। টুলটি যে ঝুঁকি কমায়, সেটিও হিসাবে রাখতে হবে। ভালো প্রশ্ন হলো: আমার সব কম্পিউটারে একই vendor-এর একই update একই মুহূর্তে পৌঁছায় কি? Update-এর গতি কি আমি ঠিক করতে পারি? সব কম্পিউটার একসাথে বন্ধ হলে কোন কাজ হাতে চলবে? BitLocker-এর recovery key কি অন্য কোথাও আছে?

আরেকটি শিক্ষা: হামলা হোক বা দুর্ঘটনা, প্রস্তুতি প্রায় একই। ব্যবসা চালিয়ে যাওয়ার পরিকল্পনা শুধু হ্যাকারের জন্য নয়।

সবশেষে, vendor বাছাইয়ের সময় তার update নীতি আর ব্যর্থতার পরে ফেরার ব্যবস্থা নিয়েও প্রশ্ন করুন; এই বিষয়টি পর্ব ৭১-এ আবার আসবে।

মূল উপলব্ধি: নিরাপত্তা control-ও একটি পরিবর্তনশীল সিস্টেম। অন্য যেকোনো গুরুত্বপূর্ণ সিস্টেমের মতো তারও পরীক্ষা, ধাপে ধাপে প্রকাশ আর ব্যর্থতার পরিকল্পনা লাগে।

অনুশীলন

এগুলোয় কোনো সিস্টেমে হাত দিতে হবে না। শুধু রিপোর্ট, হিসাব আর নিজের চিন্তা।

  1. তারিখের হিসাব: House রিপোর্টের পাদটীকায় Mandiant-এর বরাতে আছে, Equifax ৮ মার্চ থেকে ৩০ জুলাই ২০১৭ পর্যন্ত ঝুঁকিতে ছিল, আর মূল লেখায় সংখ্যাটি ১৪৫ দিন। হাতে দিন গুনুন। মিল আছে কি? পার্থক্য হলে কেন হতে পারে?

    ৮ মার্চ থেকে ৩১ মার্চ ২৩ দিন, এপ্রিল ৩০, মে ৩১, জুন ৩০, জুলাইয়ের ৩০: মোট ২৩ + ৩০ + ৩১ + ৩০ + ৩০ = ১৪৪ দিন. দুই প্রান্তের দিন গুনলে ১৪৫ হয়। অর্থাৎ অমিলটি সম্ভবত গণনার রীতিতে, ত্রুটিতে নয়। শিক্ষা: সময় তুলনার আগে ঠিক করুন, শুরুর আর শেষের দিন গোনা হচ্ছে কি না।

  2. Output অনুমান করুন: অংশ ৯-এর scorer-এ Vendor access limited and reviewed সারির উত্তর 0 থেকে 1 করা হলো। না চালিয়ে বলুন: score কত হবে, fix first তালিকার প্রথম লাইন কী হবে, আর শেষ লাইনে কী থাকবে?

    Vendor সারির ওজন ৮, তাই মোট ৩২ + ৮ = ৪০. স্কোর ৪০ / ৬১ = ৬৫.৬%. প্রথম লাইন হবে Restore practised from offline backup (loses 7). শেষ লাইনে থাকবে শুধু recovery. চার নম্বরে নতুন আসবে One list of exposed services, with owner (loses 3). Code বদলে চালালে এই ফলই পাবেন।

  3. সমালোচনা করুন: একটি কাল্পনিক অনলাইন বাজারের রিপোর্টে লেখা: “Root cause: admin-এর অসাবধানতা। ব্যবস্থা: তাঁকে সতর্ক করা হয়েছে। আর হবে না।” এই রিপোর্টে কী কী সমস্যা? কীভাবে নতুন করে লিখবেন?

    সমস্যা: ব্যক্তিকে দোষ দিয়ে থামা হয়েছে, “কেন সম্ভব হলো” প্রশ্ন নেই। সময়রেখা ও প্রমাণ নেই। Contributing factor নেই। “আর হবে না” পরীক্ষাযোগ্য নয়। ফলে কর্মীরা ভবিষ্যতে ভুল লুকাবেন (পর্ব ৫৪)।

    নতুন কাঠামো: সময়রেখা; একা admin কেন এই কাজ করতে পারতেন (four-eyes নেই); ভুল কেন আগে ধরা পড়ল না (সতর্কতা নেই); ব্যবস্থা: মালিক ও তারিখসহ দুই ব্যক্তির অনুমোদন, সতর্কতা যোগ, আর পরীক্ষা করে প্রমাণ।

  4. নিজে mapping করুন: “Log4Shell: প্রতিষ্ঠান জানত না কোন সিস্টেমে library-টি আছে” বাক্যটি নিন। অংশ ৮-এর ধাপে এটিকে CIS Control, ATT&CK mitigation, পর্ব, একটি পরীক্ষা আর একটি সীমায় জুড়ুন।

    CIS: Control ২ (software তালিকা), ৭ (vulnerability ব্যবস্থাপনা)। ATT&CK: M1016 Vulnerability Scanning, M1051 Update Software. পর্ব: ৩২, ৪৮। পরীক্ষা: “একটি নামের library কোন কোন সেবায় আছে, তা ১ ঘণ্টায় বলা যায়” মহড়া করা, পরোক্ষ dependency-সহ। সীমা: SBOM পুরোনো বা অসম্পূর্ণ হতে পারে, আর vendor-এর পণ্যের ভেতরে কী আছে তা নির্ভর করে তাদের তথ্যের ওপর। CSRB নিজেও SBOM-এর টুল এখনো অপূর্ণ বলে উল্লেখ করেছে।

নিজেকে যাচাই করুন

ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।

ক্রমএকটি breach রিপোর্ট সমালোচনার চোখে পড়ার ধাপগুলো সঠিক ক্রমে সাজান (▲▼ চেপে সরান)

  1. লেখক ও উদ্দেশ্য চিহ্নিত করা
  2. ঘটনা, দাবি আর ব্যাখ্যা দাগানো
  3. অন্য উৎসের সাথে মিলিয়ে তারিখ ও সংখ্যা হিসাব করা
  4. কারণকে root cause ও contributing factor-এ ভাগ করা
  5. Control-এর সাথে জুড়ে পরীক্ষাযোগ্য কাজ লেখা

একটি তদন্ত রিপোর্ট বলছে একটি certificate ১০ মাস মেয়াদোত্তীর্ণ ছিল, আরেকটি বলছে ১৯ মাস। পাঠক হিসেবে সবচেয়ে ভালো কাজ কোনটি?

  • বড় সংখ্যাটি নেওয়া, কারণ সেটি বেশি সাবধানী
  • দুটি উৎস উল্লেখ করা, তারিখ ও প্রমাণ মেলানো, আর অমিল লিখে রাখা
  • দুই সংখ্যার গড় নেওয়া
  • দুটি রিপোর্টই বাদ দেওয়া

একটি ঘটনায় হামলাকারী এক database থেকে অন্য database-এ যেতে পেরেছিল, কারণ সেগুলো আলাদা করা ছিল না। এই “আলাদা না থাকা” সাধারণত কী হিসেবে গণ্য?

  • একজন কর্মীর ব্যক্তিগত ব্যর্থতা
  • Hindsight bias
  • Contributing factor, যা ক্ষতি বাড়িয়েছে
  • প্রথম প্রবেশের একমাত্র কারণ

Hindsight bias-এর সবচেয়ে ভালো বর্ণনা কোনটি?

  • ফল জানার পরে মনে হওয়া যে ঘটনাটি আগেই স্পষ্ট ছিল
  • শুধু প্রকাশিত ঘটনা দেখে সিদ্ধান্ত নেওয়া
  • পুরোনো log মুছে ফেলার প্রবণতা
  • নতুন প্রযুক্তির ওপর অতিরিক্ত আস্থা

Colonial Pipeline (২০২১) আর Change Healthcare (২০২৪)-এর প্রকাশিত সাক্ষ্যে কোন মিলটি দেখা যায়?

  • ক্ষতিকর সফটওয়্যার update
  • Cloud metadata service-এর ভুল ব্যবহার
  • SWIFT বার্তার জালিয়াতি
  • দূরবর্তী প্রবেশের পথে MFA ছিল না

একটি জনপ্রিয় library-তে গুরুতর ত্রুটি প্রকাশিত হলো। প্রথম ঘণ্টায় কোন জিনিসটি সবচেয়ে বেশি কাজে দেবে?

  • সংবাদ পোর্টাল নিয়মিত দেখা
  • SBOM আর সঠিক software তালিকা
  • কর্মীদের password পরিবর্তন
  • সব server বন্ধ করে দেওয়া

একটি নিরাপত্তা সফটওয়্যারের update-এ ত্রুটি থেকে লাখো কম্পিউটার বন্ধ হয়ে গেল, কোনো হামলাকারী ছিল না। কোন control এমন ঘটনার বিস্তার সবচেয়ে সরাসরি কমায়?

  • MFA
  • Web Application Firewall
  • ধাপে ধাপে প্রকাশ (staged rollout)
  • SIEM rule বাড়ানো

শব্দকোষ

লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন, অর্থ দেখাবে। এই পর্বের সব নতুন শব্দ এখানে একসাথে:

মনে রাখুন

  1. Breach রিপোর্ট পড়ার লক্ষ্য প্রতিরক্ষা শেখা, দোষী খোঁজা বা হামলা পুনর্গঠন নয়।
  2. প্রতিটি দাবির পাশে উৎস, আস্থা আর অজানা লিখুন; সংখ্যা নিজে হিসাব করুন।
  3. কারণ প্রায় সবসময় একাধিক স্তরে: technical, process, governance. Hindsight bias থেকে সাবধান।
  4. বারবার ফেরে: detection, third party, identity/MFA, আর “আমাদের কী আছে তা না জানা”।
  5. প্রতিটি শিক্ষা হোক একটি control, মালিক আর পরীক্ষা। খরচের সংখ্যা পড়ুন উৎস ও সংজ্ঞাসহ।

পরের পর্বে: অন্যের ঘটনা থেকে শিখলেন। এবার নিজের দল নিয়ে মহড়া: tabletop exercise-এ কীভাবে একটি ঘটনা টেবিলে বসে অনুশীলন করা হয়, যোগাযোগ চলে, আর শিক্ষা লেখা হয়।

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

এই পর্বটি শেয়ার করুন:
এই পর্বে ভুল পেয়েছেন? জানান