এই পর্বে যা শিখবেন
- SOC-এর মডেল আর tier 1, 2, 3 সহ প্রতিটি ভূমিকার কাজ
- একটি alert-কে triage থেকে closure পর্যন্ত নেওয়া আর ভালো triage note লেখা
- Severity আর priority আলাদা করা, playbook বানানো, SOAR-এ মানুষের অনুমোদন বসানো
- 24x7 লোকবল হিসাব, handover আর burnout সামলানো
- MTTD, MTTA, MTTR ঠিকভাবে মাপা, metric-এর ফাঁদ চেনা আর ছোট প্রতিষ্ঠানের বিকল্প বেছে নেওয়া
১ · SOC আসলে কী করে
হাসপাতালের জরুরি বিভাগের কথা ভাবুন। রাত দুটোয় একসাথে পাঁচজন রোগী এলেন। নার্স আগে দেখেন কার অবস্থা সবচেয়ে খারাপ। কারও হাত কেটেছে, কারও বুকে ব্যথা। যিনি আগে এসেছেন তিনি নন, যাঁর ঝুঁকি বেশি তিনি আগে ডাক্তার পান। সব তথ্য খাতায় ওঠে। সকালে নতুন দল এসে সেই খাতা ধরেই কাজ চালায়।
SOC (Security Operations Center) ঠিক এই জরুরি বিভাগ। আগের পর্বগুলোতে আপনি IDS, endpoint নিরাপত্তা আর ATT&CK-এর কথা জেনেছেন। পর্ব ৫৫ থেকে ৫৯-এ log, SIEM, threat intelligence, hunting আর EDR এসেছে। এই পর্বের প্রশ্ন আলাদা: এসব tool থেকে আসা সংকেত নিয়ে মানুষ প্রতিদিন কীভাবে কাজ করবেন?
একটি SOC-এর কাজ চারটি: দেখা (সংকেত সংগ্রহ আর নজরদারি), বোঝা (triage আর তদন্ত), থামানো (সাড়া দেওয়া বা ঠিক দলকে জানানো) আর শেখা (rule আর প্রক্রিয়া ভালো করা)। শেষ কাজটি বাদ পড়লে একই ভুল alert প্রতিদিন ফিরে আসে।
SOC সব নিরাপত্তার কাজ করে না। Patch করা IT দলের কাজ হতে পারে। Policy লেখা governance দলের কাজ। বড় ঘটনায় CSIRT নেতৃত্ব দিতে পারে, আর সেই দল SOC-এর ভেতরে বা বাইরে থাকতে পারে। প্রতিষ্ঠানভেদে এই সীমা আলাদা, তাই কার কী দায়িত্ব সেটি আগেই লিখে রাখা দরকার। Incident response-এর পুরো পদ্ধতি পর্ব ৬১-তে আসবে।
আর একটি কথা: SOC-এ শুধু নিজের প্রতিষ্ঠানের অনুমোদিত সিস্টেমে কাজ হয়। সন্দেহজনক বাইরের ঠিকানায় পাল্টা কিছু করা কাজের অংশ নয়, আর তা অপরাধও হতে পারে। সীমাটি পর্ব ৬-এ দেখুন।
২ · SOC-এর মডেল আর ভূমিকা
SOC বানানোর একটিই ঠিক উপায় নেই। প্রতিষ্ঠানের আকার, ঝুঁকি আর বাজেট দেখে মডেল বাছতে হয়।
| মডেল | কীভাবে চলে | সুবিধা | দুর্বলতা |
|---|---|---|---|
| In-house | নিজের কর্মী, নিজের tool | প্রতিষ্ঠানকে গভীরভাবে চেনে, নিয়ন্ত্রণ নিজের | খরচ বেশি, লোক ধরে রাখা কঠিন |
| Hybrid | দিনে নিজের দল, রাতে বা প্রথম স্তরে বাইরের সেবা | খরচ আর জ্ঞানের ভারসাম্য | দুই দলের মাঝে দায়িত্বের ফাঁক |
| Outsourced | MSSP বা MDR সেবা নেওয়া | দ্রুত শুরু, 24x7 সহজ | প্রতিষ্ঠানের প্রসঙ্গ কম জানে, চুক্তির বাইরে কাজ নেই |
| Virtual | আলাদা ঘর নেই, দূর থেকে বা দরকারের সময় যুক্ত হওয়া | কম খরচ, নমনীয় | নির্দিষ্ট সময়ের বাইরে সাড়া দেরিতে আসতে পারে |
এই নামগুলোর ব্যবহার সবখানে এক নয়। একটি বিক্রেতার “virtual SOC” অন্যটির “MDR”-এর মতো হতে পারে। তাই নামের বদলে দেখুন: রাত তিনটায় কে সিদ্ধান্ত নেবেন, আর কোন কাজ করার অনুমতি তাঁর আছে?
দলের ভূমিকা
অনেক SOC-এ দল tier বা স্তরে ভাগ থাকে। ভাবুন থানার মতো: ডিউটি অফিসার অভিযোগ নেন, তদন্ত কর্মকর্তা গভীরে যান, আর জটিল মামলায় বিশেষজ্ঞ আসেন।
Tier 1 · প্রথম সারি
Queue দেখেন, triage করেন, playbook মেনে তথ্য জোড়েন, সিদ্ধান্ত লিখে বন্ধ করেন বা ওপরে পাঠান।
প্রশ্ন: এটি আসল কি?Tier 2 · তদন্ত
পুরো ঘটনা গড়ে তোলেন: কতদূর ছড়াল, কোন account জড়িত। Containment-এর প্রস্তাব দেন।
প্রশ্ন: কতটা ক্ষতি?Tier 3 · গভীর বিশ্লেষণ
জটিল ঘটনা, malware-এর আচরণ আর নতুন ধরনের হামলা বোঝেন। অন্যদের শেখান।
প্রশ্ন: আসলে কী ঘটেছে?Detection engineer
Detection engineer rule লেখেন, পরীক্ষা করেন আর tuning করেন। তাঁর ক্রেতা হলেন analyst.
প্রশ্ন: সংকেত কি ভালো?Threat hunter
Alert-এর অপেক্ষা না করে একটি ধারণা নিয়ে খোঁজেন। একে threat hunting বলে (পর্ব ৫৮)।
প্রশ্ন: কী চোখ এড়াল?SOC manager
লোকবল, shift, বাজেট, metric আর নেতৃত্বের সাথে যোগাযোগ সামলান। দলকে চাপ থেকে রক্ষা করাও তাঁর কাজ।
প্রশ্ন: দল কি টিকবে?ছোট দলে একজনই কয়েকটি ভূমিকা নেন। Tier ব্যবস্থাও সবখানে নেই। অনেক দল এখন স্তর কমিয়ে একই analyst-কে শুরু থেকে শেষ পর্যন্ত কাজ দেন। দুই পদ্ধতিরই যুক্তি আছে, যা ভাবনার প্রশ্ন ৩-এ দেখবেন।
৩ · একটি alert-এর জীবন
একটি detection rule মিললে SIEM, EDR বা XDR একটি alert বানায়। Alert শুধু একটি সন্দেহ, প্রমাণ নয়। এরপর সেটি পাঁচটি ধাপ পেরোয়।
| ধাপ | প্রশ্ন | ফল |
|---|---|---|
| Triage | এটি কী, আর কত জরুরি? | আগে দেখা হবে কি না |
| Enrichment | এই user, যন্ত্র আর IP কে? আগে কী করেছে? | প্রসঙ্গসহ alert |
| Investigation | আসল কি? কী হয়েছে? | Verdict আর প্রমাণ |
| Escalation | আমার ক্ষমতার বাইরে কি? | ঠিক মানুষের হাতে দায়িত্ব |
| Closure | কী শিখলাম, rule বদলাবে কি? | বন্ধ case আর ফিডব্যাক |
সংকেত থেকে শেখা পর্যন্ত
Alert lifecycle with a feedback loop
এবার একটি কাল্পনিক অনলাইন বাজারের একটি alert ধরে এগোন। সব নাম, সময় আর ঠিকানা বানানো। খেয়াল করুন, প্রতিটি ধাপে case-এর অবস্থা, মালিক আর সময় কীভাবে বদলায়।
- Alertrule মিলল
- Tier 1triage
- Tier 2তদন্ত
- অনুমোদনcontainment
- Closureশিক্ষা
| সময় | |
| অবস্থা | |
| মালিক | |
| Priority | |
| Verdict |
- 02:14, alert এলো। Rule বলছে: finance বিভাগের
rina@example.comaccount অচেনা জায়গা থেকে login করেছে। Priority স্বয়ংক্রিয়ভাবে P3. পরে জানা যাবে, প্রথম সন্দেহজনক login ছিল 02:02-এ। - 02:17, tier 1 হাতে নিলেন। Alert আসার ৩ মিনিট পর। এই ৩ মিনিটই এই alert-এর acknowledge সময়। প্রথম প্রশ্ন: এটি আসল, না কোনো ব্যবসায়িক ভ্রমণ?
- 02:24, enrichment. IP
203.0.113.50অফিসের পরিসরে নেই। যন্ত্রটি নতুন। User finance-এ আছেন, আর login-এ MFA পার হয়েছে। সম্পদের গুরুত্ব বেশি, তাই priority P2. - 02:31, note লিখে escalate. Tier 1 প্রমাণ আর অজানা বিষয় লিখলেন। ফোনে user জানালেন, ঘুমের মধ্যে একটি MFA অনুরোধে সায় দিয়েছেন। আলাদা পথে এই যাচাই গুরুত্বপূর্ণ। দায়িত্ব গেল tier 2-এর হাতে।
- 02:38, তদন্তে নিশ্চিত। Tier 2 নতুন একটি mail forwarding rule আর ১৪টি অস্বাভাবিক mail পড়ার রেকর্ড পেলেন। Verdict: true positive. Priority P1.
- 02:52, মানুষের অনুমোদনে containment. On-call lead অনুমোদন দিলেন: session বাতিল, password বদল, forwarding rule মোছা। Alert থেকে এই পর্যন্ত ৩৮ মিনিট। প্রমাণ আগে সংরক্ষণ করা হয়েছে।
- পরদিন, closure. শুরু 02:02, alert 02:14, তাই detect সময় ১২ মিনিট। মূল কারণ লেখা হলো। অচেনা যন্ত্রে conditional access কঠোর হলো, forwarding rule-এ নতুন detection যোগ হলো। এটাই শেখা।
ভালো triage note কেমন
একটি triage note পরের মানুষের জন্য লেখা। তিনি হতে পারেন রাতের tier 2, সকালের shift, বা ছয় মাস পরের নিরীক্ষক। অফিসের রেজিস্টার খাতার মতো, লেখা না থাকলে কাজটি প্রমাণিত নয়। নিচে দুটি উদাহরণ দেখুন।
খারাপ: Checked. Looks suspicious. Sending to T2.
ভালো:
What : Login for rina@example.com from new device, 02:02
Seen : IP 203.0.113.50 outside office range; first time on this device;
MFA passed; user is in finance
Asked: User by phone, 02:29: approved one MFA prompt while asleep
Not checked: mailbox rules, other accounts
Verdict: Suspicious, medium-high confidence
Why escalated: Possible account takeover; I cannot revoke sessions
Next : Check mailbox rules and recent reads
ভালো note-এ সত্য, অনুমান আর অজানা আলাদা থাকে। “কী দেখিনি” লাইনটি সবচেয়ে সৎ, আর সবচেয়ে কাজের। এতে পরের জন একই কাজ আবার করেন না, আবার ধরেও নেন না যে সব দেখা হয়ে গেছে।
Verdict-গুলোও আলাদা রাখুন। True positive মানে আসল ক্ষতিকর ঘটনা। False positive মানে rule ভুল করেছে। Benign positive মানে rule ঠিক ধরেছে, কিন্তু কাজটি অনুমোদিত, যেমন IT দলের নির্ধারিত পরীক্ষা। Alahmadi, Axon আর Martinovic-এর ২০২২ সালের USENIX Security গবেষণাতেও দেখা যায়, analyst-রা “false alarm” আর “benign trigger” আলাদা করে ভাবেন। দুটোর সমাধানও আলাদা: প্রথমটিতে rule ঠিক করতে হয়, দ্বিতীয়টিতে ব্যতিক্রম লিখতে হয়।
৪ · Severity, priority আর triage queue
দুটি শব্দ প্রায়ই গুলিয়ে যায়। Severity বলে ঘটনাটি সত্যি হলে কতটা গুরুতর। Priority বলে কোনটি আগে ধরা হবে। একই ধরনের alert পরীক্ষার ল্যাবের কম্পিউটারে হলে priority কম, আর payment server-এ হলে অনেক বেশি। এই হিসাবে সম্পদের গুরুত্ব, তথ্যের আস্থা আর সময়ও যুক্ত হয়।
নিচের ছকটি একটি উদাহরণ। সময়গুলো অনুমান, কোনো মান নয়। আপনার প্রতিষ্ঠান নিজের ঝুঁকি দেখে ঠিক করবে আর SLA-তে লিখবে।
| Priority | উদাহরণ | হাতে নেওয়ার লক্ষ্য | কাকে জানাবেন |
|---|---|---|---|
| P1 | নিশ্চিত ঘটনা, গুরুত্বপূর্ণ সম্পদ | ১৫ মিনিট | On-call lead, IT, নেতৃত্ব |
| P2 | জোরালো সন্দেহ, গুরুত্বপূর্ণ account | ৩০ মিনিট | Tier 2 |
| P3 | একটি যন্ত্রে সীমিত সন্দেহ | ৪ ঘণ্টা | Shift lead |
| P4 | তথ্যের জন্য, কম ঝুঁকি | পরের কর্মদিবস | কাউকে নয়, লিখে রাখুন |
এবার queue চালিয়ে দেখি। একজন analyst, ছয়টি alert আর একটি simulated clock. প্রথমে যে আগে এসেছে সে আগে, তারপর priority score দিয়ে। Score-এ অপেক্ষার সময়ও যোগ হয়, যাতে ছোট alert চিরকাল পড়ে না থাকে।
// Toy queue: one analyst, simulated clock in minutes. Not real alerts.
const alerts = [
{ id: 'A1', at: 0, name: 'failed logins, lab PC', sev: 2, asset: 1, conf: 2, work: 10 },
{ id: 'A2', at: 1, name: 'port sweep, guest Wi-Fi', sev: 1, asset: 1, conf: 2, work: 10 },
{ id: 'A3', at: 2, name: 'AV blocked file, laptop', sev: 2, asset: 2, conf: 4, work: 10 },
{ id: 'A4', at: 4, name: 'new admin, payment DB', sev: 4, asset: 4, conf: 3, work: 25 },
{ id: 'A5', at: 5, name: 'mail forward, finance', sev: 3, asset: 3, conf: 4, work: 15 },
{ id: 'A6', at: 6, name: 'old OS seen, printer', sev: 1, asset: 1, conf: 4, work: 5 },
];
// Score = severity x asset value x confidence + 1 point per 5 minutes waited
const score = (a, now) => a.sev * a.asset * a.conf + (now - a.at) / 5;
function run(label, pick) {
let now = 0, waiting = alerts.slice();
console.log(label);
while (waiting.length) {
const ready = waiting.filter(a => a.at <= now);
if (!ready.length) { now = Math.min(...waiting.map(a => a.at)); continue; }
const a = pick(ready, now);
console.log(` t=${String(now).padStart(2)} ${a.id} waited ${String(now - a.at).padStart(2)} min ${a.name}`);
now += a.work;
waiting = waiting.filter(x => x !== a);
}
}
const oldest = list => list[0];
const best = (list, now) => list.reduce((x, y) => score(y, now) > score(x, now) ? y : x);
run('First come, first served:', oldest);
run('Priority score with ageing:', best);প্রথম নিয়মে সবচেয়ে বিপজ্জনক alert এই লাইনে আছে: t=30 A4 waited 26 min new admin, payment DB. Score দিলে একই alert t=10 A4 waited 6 min-এ ধরা হয়। A1 দুই নিয়মেই আগে, কারণ t=0-তে শুধু সেটিই ছিল, আর analyst চলমান কাজ ফেলে আসেননি।
দাম দিতে হয়েছে নিচের দিকে: A2 waited 64 min. Score বিপদের আন্দাজ মাত্র। ওজনগুলো মানুষের ঠিক করা, তাই নিয়মিত যাচাই করতে হয়। কম score-এর alert-ও নমুনা ধরে দেখা উচিত, নইলে ভুল ওজন কখনো ধরা পড়বে না।
৫ · Playbook, runbook আর SOAR
রাত তিনটায় ক্লান্ত মাথায় নতুন করে ভাবা কঠিন। তাই সিদ্ধান্তের পথ আগেই শান্ত মাথায় লিখে রাখা হয়। গার্মেন্টসে আগুন লাগলে কে কোন সিঁড়ি দিয়ে নামাবেন, সেই মহড়ার মতো।
Playbook সাধারণত বড় ছবি দেখায়: এই ধরনের ঘটনায় কী কী সিদ্ধান্ত, কে নেবেন, কখন কাকে জানাবেন। Runbook সাধারণত নির্দিষ্ট কাজের ধাপ দেখায়: একটি account কীভাবে আটকাবেন। তবে অনেক প্রতিষ্ঠান শব্দ দুটি উল্টে বা এক অর্থে ব্যবহার করে। তাই দলের ভেতরে সংজ্ঞা ঠিক করে নিন।
একটি ভালো playbook-এ থাকে: কখন শুরু হবে, কী তথ্য লাগবে, প্রতিটি সিদ্ধান্তের মালিক, কোন কাজ করা যাবে আর যাবে না, কাকে জানাতে হবে, আর কখন শেষ বলা যাবে। আর থাকে শেষ মহড়ার তারিখ। Tabletop মহড়া নিয়ে বিস্তারিত পর্ব ৬৬-তে।
SOAR: যন্ত্রের হাত, মানুষের বিচার
SOAR (Security Orchestration, Automation and Response) playbook-এর ধাপগুলো বিভিন্ন tool জুড়ে চালায়। Enrichment, ticket খোলা, বার্তা পাঠানোর মতো বিরক্তিকর কাজ এতে কমে। তবে প্রশ্ন একটাই: কোন কাজ মানুষ ছাড়া চলতে পারে?
| কাজ | ফেরানো যায়? | প্রভাব | কে করবে |
|---|---|---|---|
| Enrichment, ticket খোলা | কিছু বদলায় না | নেই | যন্ত্র |
| রিপোর্ট করা একটি mail quarantine | হ্যাঁ, সহজে | এক mailbox | যন্ত্র, পরে পর্যালোচনা |
| সবার mailbox থেকে purge | আংশিক | অনেক মানুষ | মানুষের অনুমোদন |
| Account বন্ধ, সার্ভার আলাদা করা | হ্যাঁ, কিন্তু ব্যবসা থামে | বড় | মানুষের অনুমোদন |
| পুরো domain block | হ্যাঁ, কিন্তু ক্ষতি হয়ে যেতে পারে | অংশীদার আর গ্রাহক | মানুষের অনুমোদন |
এই নকশাকে বলে human in the loop. নিয়মটি সহজ: কাজটি যত সহজে ফেরানো যায় আর যত কম মানুষকে ছোঁয়, automation তত নিরাপদ। নিচের stepper-এ দেখুন একটি phishing রিপোর্ট কীভাবে এগোয়। যন্ত্র কোথায় থামে আর মানুষ কোথায় “না” বলেন, খেয়াল করুন।
| কে কাজ করছে | |
| Quarantine করা copy | |
| Password বদল | |
| Sender domain block | |
| Case |
- কর্মীর রিপোর্ট। একজন কর্মী “Report” বোতাম চাপলেন। এটাই প্রথম ভালো সংকেত, তাই শাস্তি নয়, ধন্যবাদ প্রাপ্য (পর্ব ৫৪)।
- SOAR mail পড়ল। Header, লিংক আর attachment-এর hash বের হলো। DMARC ফল pass, কারণ mail একটি আসল অংশীদারের mailbox থেকে এসেছে। মানে mailbox-টিই সম্ভবত দখল হয়েছে।
- Enrichment. লিংকের domain
login-verify.example.comকালো তালিকায় আছে। একই mail ১৪ জনের কাছে গেছে। ২ জন লিংকে ক্লিক করেছেন, ১ জন password দিয়েছেন। - স্বয়ংক্রিয় কাজ। রিপোর্ট করা ১টি copy quarantine হলো। এটি সহজে ফেরানো যায়, তাই অনুমতির অপেক্ষা নেই। এরপর SOAR থামল।
- মানুষের সিদ্ধান্ত। Analyst ১৪টি copy-র purge আর ১টি password বদল অনুমোদন দিলেন। কিন্তু SOAR-এর প্রস্তাব “sender domain block” বাতিল করলেন। Domain-টি অংশীদারের, block করলে আসল invoice-ও আটকাবে।
- SOAR কাজ শেষ করল। ১৪টি copy সরল, ১টি password বদলাল, session বাতিল হলো। অংশীদারকে আলাদা পথে জানানোর কাজ একজন মানুষ নিলেন।
- Closure. যিনি রিপোর্ট করলেন তিনি ধন্যবাদ পেলেন। ক্লিক করা ২ জনকে সহজ পরামর্শ দেওয়া হলো। Case-এ প্রতিটি কাজের সময় আর কর্তা লেখা রইল।
একই ধারণা ছোট একটি toy program-এ। এখানে কোনো আসল system নেই, সব তথ্য memory-তে। লক্ষ্য করুন, প্রতিটি কাজ audit তালিকায় উঠছে, আর অনুমোদনের ফাংশনটি আলাদা।
// SOAR-like playbook on toy data. Nothing here touches a real system.
const intel = { 'login-verify.example.com': 'bad', 'news.example.org': 'ok' };
const staff = { 'rina@example.com': { dept: 'finance', vip: false } };
let clock = 0;
const audit = [];
const log = (who, what) => audit.push(`t+${clock++}m ${who.padEnd(6)} ${what}`);
function playbook(alert, approve) {
log('soar', `enrich domain ${alert.domain}: ${intel[alert.domain] || 'unknown'}`);
log('soar', `enrich user: ${staff[alert.user].dept}`);
log('soar', `count copies in toy mailboxes: ${alert.copies}`);
if (intel[alert.domain] !== 'bad') {
log('soar', 'not known bad: send to analyst queue, take no action');
return;
}
log('soar', 'AUTO quarantine reported message (reversible, one mailbox)');
const ask = `purge ${alert.copies} copies and reset ${alert.user}?`;
const answer = approve(alert, ask);
log('human', `${ask} => ${answer}`);
if (answer === 'yes') log('soar', 'purge and reset done, ticket updated');
else log('soar', 'no change, ticket stays open with analyst');
}
const analyst = a => (a.clicked ? 'yes' : 'no');
playbook({ domain: 'news.example.org', user: 'rina@example.com',
copies: 1, clicked: false }, analyst);
playbook({ domain: 'login-verify.example.com', user: 'rina@example.com',
copies: 14, clicked: true }, analyst);
console.log(audit.join('\n'));প্রথম alert-এ domain চেনা ভালো, তাই লাইনটি হলো not known bad: send to analyst queue, take no action. “Bad নয়” মানে “নিরাপদ” নয়, শুধু যন্ত্র সিদ্ধান্ত নিতে পারেনি। দ্বিতীয়টিতে AUTO quarantine মানুষের আগে হয়, কিন্তু বড় কাজটি purge 14 copies and reset rina@example.com? => yes লাইনের পরেই হয়।
এখানে approve ফাংশনটি মানুষের জায়গায় বসানো একটি নকল। বাস্তবে এটি একজন মানুষের অপেক্ষা করবে, আর উত্তর না এলে নিরাপদ পথ বেছে নেবে।
Case management
Chat-এর বার্তা হারিয়ে যায়। তাই case management tool-এ প্রতিটি case-এর একজন মালিক, অবস্থা, প্রমাণের লিংক, সময়রেখা আর সিদ্ধান্ত থাকে। একটি ticket-এর একাধিক মালিক মানে আসলে মালিক নেই। ভালো case পরে তিনটি কাজে লাগে: handover, নিরীক্ষা আর metric. প্রমাণ সামলানোর নিয়ম পর্ব ৬৩-তে দেখবেন। Case-এ গ্রাহকের ব্যক্তিগত তথ্য শুধু দরকারমতো রাখুন, আর দেখার অধিকারও সীমিত করুন।
৬ · Shift, 24x7 হিসাব, handover আর burnout
আপনার বস বললেন, “রাতদিন একজন বসিয়ে দিন। সপ্তাহে ১৬৮ ঘণ্টা, একজন ৪০ ঘণ্টা করেন, তাই ৪.২ জন, মানে ৫ জনেই হবে।” কথাটি শুনতে ঠিক, কিন্তু মানুষের ছুটি, অসুস্থতা, প্রশিক্ষণ আর shift-এর মাঝের সময় এতে নেই। হিসাবটি ভালো করে করি। সব সংখ্যাই অনুমান, আপনার প্রতিষ্ঠানের নিয়ম আর দেশের শ্রম আইন দেখে বদলাবেন।
// 24x7 staffing arithmetic. All inputs are assumptions: change them.
const weekHours = 40, leaveDays = 30, trainingDays = 10, shrinkage = 0.10;
const shiftHours = 8, overlapHours = 0.5; // handover overlap per shift
const contract = 52 * weekHours;
const off = (leaveDays + trainingDays) * (weekHours / 5);
const onFloor = (contract - off) * (1 - shrinkage);
console.log('Hours in a week: 24 x 7 =', 24 * 7);
console.log('Naive answer: 168 / 40 =', (168 / weekHours).toFixed(1), 'people');
console.log('Contract hours per person per year:', contract);
console.log('Minus leave and training:', contract - off);
console.log('On-floor hours after shrinkage:', onFloor);
const shiftSeatYear = (shiftHours + overlapHours) * 365;
function staff(seats) { // seats = [day, evening, night]
const total = seats.reduce((s, n) => s + n * shiftSeatYear, 0);
const people = total / onFloor;
return `${seats.join('+')} seats: ${total} h/yr, ${people.toFixed(2)} => ${Math.ceil(people)} people`;
}
console.log('Hours for one seat, one shift, one year:', shiftSeatYear);
console.log(staff([1, 1, 1]));
console.log(staff([2, 2, 2]));
console.log(staff([3, 2, 2]));একজন মানুষের বছরে Contract hours per person per year: 2080 ঘণ্টা। ৪০ দিন ছুটি আর প্রশিক্ষণ বাদে থাকে 1760. মিটিং আর বিরতির জন্য ১০% বাদে On-floor hours after shrinkage: 1584.
একটি আসন তিন shift-এ চালাতে overlap-সহ ৮.৫ × ৩৬৫ × ৩ = ৯,৩০৭.৫ ঘণ্টা লাগে। তাই ফল: 1+1+1 seats: 9307.5 h/yr, 5.88 => 6 people. প্রতি shift-এ দুজন রাখলে 12 people, আর দিনে একজন বেশি রাখলে 14 people. এই সংখ্যা শুধু analyst-দের, manager বা engineer এতে নেই।
একটি আসনে ৬ জন মানে রাতে একা একজন। তিনি অসুস্থ হলে, বা একটি বড় ঘটনায় আটকে গেলে, queue দেখার কেউ নেই। তাই অনেক দল রাতে অন্তত দুজন রাখে, অথবা রাতে on-call বা বাইরের সেবা নেয়। ৬ জনের হিসাবে ছুটির পাহারা আছে, নিরাপত্তার পাহারা নেই।
Handover: দায়িত্ব বদলের মুহূর্ত
Shift handover SOC-এর সবচেয়ে দুর্বল মুহূর্তগুলোর একটি। ফ্যাক্টরিতে শিফট বদলের সময় যন্ত্র যেমন বন্ধ করা হয় না, SOC-ও থামে না। অসমাপ্ত কাজ দুই মানুষের মাঝখানে হারিয়ে যেতে পারে। নিচে একটি কাল্পনিক ভোরের handover দেখুন। প্রতিটি ধাপে note-এ একটি করে অংশ যোগ হচ্ছে।
| খোলা case | |
| সারাংশ | |
| করণীয় | |
| নজর রাখুন | |
| দায়িত্ব |
- আগে সবচেয়ে গুরুতর। খোলা case priority ধরে বলা হলো: ১টি P1, ২টি P3. প্রতিটির একজন মালিক আছে। সবচেয়ে জরুরি কথা শুরুতেই আসে, কারণ পরে মনোযোগ কমে।
- সংক্ষিপ্ত সারাংশ। রাতে ৮৬টি alert, ২টি escalate হয়েছে। সংখ্যা ছোট, কিন্তু পরের দল বুঝতে পারেন রাতটি কেমন ছিল।
- করণীয় তালিকা। P1 case-এর জন্য 09:00-তে IT দলকে ফোন করতে হবে। কে করবেন, কখন করবেন, দুটোই লেখা। “কেউ একজন দেখবেন” লিখলে কেউই দেখেন না।
- নীরবতাও খবর। Firewall log 05:20 থেকে আসছে না। মানে alert কম হওয়া ভালো খবর নাও হতে পারে। যে সংকেত আসছে না, সেটি কেউ নিজে থেকে দেখতে পাবেন না।
- Read-back আর দায়িত্ব হস্তান্তর। সকালের lead নিজের ভাষায় P1-এর অবস্থা আর করণীয় আবার বললেন। ভুল বোঝা শুধরে গেল। এবার সময় লিখে দায়িত্ব বদলাল। এর আগে রাতের দলই দায়ী।
Alert fatigue আর burnout
Alert fatigue কোনো চরিত্রের দুর্বলতা নয়, এটি নকশার সমস্যা। শহরে সারাদিন গাড়ির হর্ন বাজলে কেউ আর ফিরে তাকান না। একইভাবে একশোটি ভুল alert-এর পর একটি আসল alert-ও একই রকম লাগে। কারণটি অঙ্কেও আছে: আসল ঘটনা বিরল, তাই ভালো rule-এও বেশিরভাগ alert ভুল হতে পারে। এই base-rate fallacy পর্ব ২৩-এ বিস্তারিত আছে।
আরেকটি হিসাব দেখুন। দিনে ৪০০টি alert, প্রতিটিতে ১২ মিনিট। মোট ৪৮০০ মিনিট, মানে ৮০ ঘণ্টা কাজ। একজন প্রতিদিন ৬ ঘণ্টা মনোযোগ দিতে পারলে লাগে ৮০ ÷ ৬ ≈ ১৩.৩ জন। Alert অর্ধেক করা গেলে ৭ জনের কম লাগে। তাই tuning-এ সময় দেওয়া সবচেয়ে সস্তা নিয়োগ।
Burnout নিয়ে Sundaramurthy ও সহকর্মীদের একটি গবেষণা (SOUPS ২০১৫) SOC-এ মাঠপর্যায়ে কাজ করে দেখায় যে এটি মানুষ, প্রযুক্তি আর ব্যবস্থাপনার পরস্পর জড়ানো চক্র। একঘেয়ে কাজ, বিকাশের অভাব, স্বীকৃতির অভাব একে অন্যকে বাড়ায়। যা সাহায্য করে:
- একঘেয়ে কাজ automation-এ দেওয়া, আর analyst-কে rule ঠিক করার ক্ষমতা দেওয়া
- Shift ঘোরানোর ধরন আগেই জানানো, রাতের পর যথেষ্ট বিশ্রাম রাখা
- সপ্তাহে কিছু সময় শেখা, hunting বা tuning-এর জন্য queue-র বাইরে রাখা
- ভুল alert বন্ধ করার কাজকেও দলের কাজ হিসেবে মর্যাদা দেওয়া
৭ · Metric, আর metric-এর ফাঁদ
আগে সংজ্ঞা। এগুলো শিল্পে প্রচলিত, তবে কোনো একক মান নেই। আপনার প্রতিষ্ঠান কোথা থেকে কোথা পর্যন্ত মাপছে, লিখে রাখুন।
| Metric | কী মাপে | সাবধানতা |
|---|---|---|
| MTTD | ক্ষতিকর কাজের শুরু থেকে ধরা পড়া | শুধু ধরা পড়া ঘটনাই গোনা যায়; dwell time-এর আত্মীয় |
| MTTA | Alert থেকে হাতে নেওয়া | “হাতে নিলাম” চাপলেই কমে, কাজ না হলেও |
| MTTR | ধরা থেকে ঠেকানো বা সমাধান | R-এর অর্থ দল ভেদে আলাদা। Vulnerability management-এ এটি remediate অর্থে আসে। |
| Alert volume | দিনে কতটি alert | কম মানে ভালো, নাকি log বন্ধ? দুটোই হতে পারে |
| False positive rate | বন্ধ alert-এর কত অংশ ভুল | পরিসংখ্যানের সংজ্ঞা নয় (নিচে দেখুন) |
| Coverage | কোন কৌশল আর কোন যন্ত্র নজরে আছে | Rule থাকা মানেই কাজ করা নয়, পরীক্ষা করে দেখুন |
| Escalation rate | কত অংশ ওপরে গেল | খুব বেশি মানে tier 1 আটকে আছেন; খুব কম মানে ঝুঁকি চাপা পড়ছে |
পরিসংখ্যানে false positive rate = FP ÷ (FP + TN), অর্থাৎ নিরীহ ঘটনার কত অংশে ভুল alarm বাজল। SOC-এর দৈনন্দিন “FP rate” সাধারণত FP ÷ (মোট বন্ধ alert), যা অনেকটা precision-এর উল্টো দিকের হিসাব। দুটি এক নয়। পরীক্ষায় বা ইন্টারভিউতে কোনটি বোঝানো হচ্ছে, জিজ্ঞেস করে বা লিখে নিন।
এবার ১২টি কাল্পনিক case থেকে metric বের করি। পাঁচটি আসল ঘটনার একটি ৩ দিন লুকিয়ে ছিল। গড় আর median কী বলে দেখুন। তারপর একটি স্বয়ংক্রিয় closing script কী করে, সেটিও দেখুন।
// Toy closed cases: [verdict, detect, acknowledge, resolve, escalated]
// Times in minutes. Detect time is known only for true positives (TP).
const cases = [
['TP', 12, 3, 38, 1], ['TP', 8, 5, 45, 1], ['TP', 20, 4, 60, 1],
['TP', 15, 6, 52, 1], ['TP', 4300, 12, 900, 1],
['FP', null, 7, 12, 1], ['FP', null, 2, 9, 0], ['FP', null, 9, 15, 0],
['FP', null, 4, 10, 0], ['BP', null, 6, 20, 0], ['BP', null, 3, 14, 0],
['BP', null, 5, 11, 0],
];
const mean = xs => xs.reduce((s, x) => s + x, 0) / xs.length;
function median(xs) {
const s = [...xs].sort((a, b) => a - b), m = s.length >> 1;
return s.length % 2 ? s[m] : (s[m - 1] + s[m]) / 2;
}
const show = (name, xs) =>
console.log(`${name}: n=${xs.length} mean=${mean(xs).toFixed(1)} median=${median(xs)}`);
const tp = cases.filter(c => c[0] === 'TP');
show('MTTD (TP only)', tp.map(c => c[1]));
show('MTTA (all) ', cases.map(c => c[2]));
show('MTTR (all) ', cases.map(c => c[3]));
show('MTTR (TP only)', tp.map(c => c[3]));
const rate = (name, list) => console.log(
`${name}: ${list.filter(c => c[0] === 'FP').length} FP, ` +
`${list.filter(c => c[4]).length} escalated, of ${list.length} cases`);
rate('Rates', cases);
// Gaming: add 60 noisy alerts closed by a script in 1 minute, unread
const gamed = cases.concat(Array.from({ length: 60 }, () => ['FP', null, 0, 1, 0]));
console.log('--- after a closing script ---');
show('MTTA (all) ', gamed.map(c => c[2]));
show('MTTR (all) ', gamed.map(c => c[3]));
show('MTTR (TP only)', gamed.filter(c => c[0] === 'TP').map(c => c[3]));
rate('Rates', gamed);প্রথম লাইন: MTTD (TP only): n=5 mean=871.0 median=15. একটি ঘটনার 4300 মিনিট গড়কে টেনে তুলেছে। Median বলে সাধারণ ঘটনা কেমন, আর গড়টি জানায় একটি বড় ব্যর্থতা লুকিয়ে আছে। তাই দুটোই দেখুন, আর সবচেয়ে খারাপ ঘটনাটি আলাদা করে পড়ুন।
এবার ফাঁদ। Script চালানোর পর MTTR (all) : n=72 mean=17.3 median=1, যা আগে ছিল mean=98.8 median=17.5. Dashboard সবুজ! অথচ MTTR (TP only): n=5 mean=219.0 median=52 একটুও বদলায়নি। আসল ঘটনায় সাড়া আগের মতোই, আর ৬০টি alert কেউ পড়েননি। আগে ৬/১২ escalate হতো, এখন ৬/৭২, কাগজে আরও ভালো দেখায়।
এই ফাঁদের নাম Goodhart’s law: কোনো মাপকে লক্ষ্য বানালে সেটি আর ভালো মাপ থাকে না। MTTA-কে লক্ষ্য বানালে মানুষ পড়ার আগেই “ack” চাপেন। Alert কম করতে বললে rule বন্ধ হয়। Closure-এর সংখ্যা ধরলে কঠিন case কেউ ধরতে চান না।
বাঁচার উপায় কয়েকটি। Metric জোড়ায় দেখুন, যেমন গতি আর মান। প্রতি মাসে বন্ধ হওয়া alert-এর একটি নমুনা আরেকজন আবার পরীক্ষা করুন। TP আর সব alert-এর হিসাব আলাদা রাখুন। Detection পরীক্ষা করতে নিজের পরিবেশে অনুমোদিত নকল ঘটনা চালান। আর metric দিয়ে দলকে বোঝার চেষ্টা করুন, মানুষকে শাস্তি দিতে নয়। Coverage-এর জন্য ATT&CK মানচিত্রও কাজে লাগে, তবে রঙিন ঘর মানেই সুরক্ষা নয়। False negative, মানে যা ধরাই পড়েনি, কোনো dashboard-এ নিজে থেকে দেখা যায় না।
৮ · Maturity, ছোট প্রতিষ্ঠান আর যোগাযোগ
SOC কতটা পরিণত, কীভাবে মাপবেন
SOC-CMM একটি স্বমূল্যায়ন model, যার শুরু ২০১৬ সালে। এটি পাঁচটি ডোমেইনে প্রশ্ন করে: Business, People, Process, Technology আর Services. উদ্দেশ্য কারও সাথে প্রতিযোগিতা নয়, নিজের দুর্বল জায়গা খুঁজে পাওয়া। প্রশ্নের সংখ্যা আর স্কেল version-ভেদে বদলায়, তাই SOC-CMM-এর নিজস্ব সাইটের সর্বশেষ version দেখুন।
MITRE প্রকাশ করেছে 11 Strategies of a World-Class Cybersecurity Operations Center (Knerler, Parker, Zimmerman, ২০২২), যা ২০১৪ সালের Ten Strategies বইয়ের উত্তরসূরি। MITRE-র সাইটে বইটি বিনামূল্যে পাওয়া যায়। এর কৌশলগুলো সহজ ভাষায়:
- কী রক্ষা করছেন আর কেন, তা জানা
- SOC-কে কাজ করার ক্ষমতা দেওয়া
- প্রতিষ্ঠানের প্রয়োজন মেনে কাঠামো গড়া
- ভালো কর্মী নিয়োগ আর তাঁদের বিকাশ
- Incident response-কে অগ্রাধিকার দেওয়া
- Threat intelligence দিয়ে প্রতিপক্ষকে বোঝা
- ঠিক ডেটা বেছে সংগ্রহ করা
- Analyst-এর কাজের ধারা মেনে tool ব্যবহার
- স্পষ্ট যোগাযোগ, সহযোগিতা আর তথ্য ভাগ
- উন্নতির জন্য কর্মক্ষমতা মাপা
- ধাপে ধাপে SOC-এর কাজ বাড়ানো
লক্ষ্য করুন, তালিকার বেশিরভাগই মানুষ, ক্ষমতা আর যোগাযোগ নিয়ে। কোনো নির্দিষ্ট পণ্যের নাম এতে নেই।
ছোট প্রতিষ্ঠান কী করবে
পাঁচজনের IT দল থাকলে নিজের 24x7 SOC কল্পনা না করাই ভালো। পাড়ায় প্রতিটি বাড়ি নিজের সেনাবাহিনী রাখে না, সবাই মিলে একজন দারোয়ান রাখে। সিঁড়ির মতো এগোন:
- Cloud আর endpoint tool-এর নিজের alert চালু করে একটি মাত্র জায়গায় আনুন।
- ৫–১০টি সবচেয়ে গুরুত্বপূর্ণ alert বাছুন: admin login, MFA বদল, mail forwarding, backup মোছা।
- একটি ফোন নম্বর আর একটি on-call তালিকা রাখুন, যাতে বার্তাটি কারও কাছে পৌঁছায়।
- রাতের জন্য MDR-এর মতো সেবা বিবেচনা করুন।
- বড় ঘটনার জন্য আগেই একটি বাইরের সাহায্যের পথ ঠিক করে রাখুন।
বাইরের সেবা নিলে দায়িত্বও বাইরে চলে যায় না। চুক্তির আগে জিজ্ঞেস করুন: সেবার সময় কী, কী কী log দেখবেন, নিজে থেকে কোন কাজ করতে পারবেন, কতক্ষণে জানাবেন, আর ডেটা কোথায় থাকবে। বিস্তারিত পর্ব ৭১ (vendor ঝুঁকি) আর পর্ব ৭০ (উপাত্ত আইন)-এ আসবে।
IT আর নেতৃত্বের সাথে কথা বলা
SOC সাধারণত নিজের হাতে সার্ভার ঠিক করে না। IT দল করে। তাই সম্পর্কটি আগে থেকেই গড়তে হয়। ঘটনার রাতে প্রথম পরিচয় হলে কাজ এগোয় না। IT-কে অভিযোগের সুরে নয়, পরিষ্কার অনুরোধে বলুন: কোন যন্ত্র, কী দেখেছি, কী করতে হবে, কখনের মধ্যে, আর না করলে কী ঝুঁকি।
নেতৃত্ব জানতে চান তিনটি কথা: কী হয়েছে, ব্যবসায় কী প্রভাব, আর তাঁদের কাছ থেকে কোন সিদ্ধান্ত দরকার। TTP আর hash তাঁদের কাজে লাগে না। একটি উদাহরণ দেখুন:
রাত ২টায় finance বিভাগের একটি email account দখল হয়েছিল।
৩৮ মিনিটে তা বন্ধ করা হয়েছে। লেনদেন বা গ্রাহকের ডেটায় এখন পর্যন্ত
প্রভাবের প্রমাণ পাইনি, যাচাই চলছে। সকাল ১১টায় পরবর্তী আপডেট।
আপনার সিদ্ধান্ত দরকার: অচেনা যন্ত্রে login কঠোর করার অনুমোদন।
“এখন পর্যন্ত” আর “যাচাই চলছে” শব্দগুলো লক্ষ্য করুন। যা জানেন না, তা নিশ্চিত করে বলবেন না। পরে শোধরানো কঠিন।
৯ · বাংলাদেশে SOC ক্যারিয়ার আর ছোট প্রস্তুতি
SOC অনেকের নিরাপত্তা-ক্যারিয়ারের প্রথম দরজা, কারণ এখানে নানা ধরনের সিস্টেম একসাথে দেখা যায়। সাধারণভাবে ব্যাংক, আর্থিক সেবা, টেলিকম, বড় সফটওয়্যার প্রতিষ্ঠান, সরকারি সংস্থা আর নিরাপত্তা-সেবাদাতা প্রতিষ্ঠান এমন দক্ষতা খোঁজে। চাহিদা, পদের নাম আর শর্ত সময় ভেদে বদলায়, তাই নিজের চোখে সাম্প্রতিক বিজ্ঞপ্তি পড়ুন।
| ধাপ | কী শিখবেন | কীভাবে দেখাবেন |
|---|---|---|
| ভিত্তি | Network, Linux, Windows, HTTP, DNS, email | Computer Networks আর Operating Systems কোর্স |
| Log পড়া | Login, web, mail log; একটি query ভাষা | নিজের যন্ত্রের log থেকে সময়রেখা বানানো |
| Lab | একটি খোলা SIEM, নিজের VM, নকল ঘটনা | লেখা triage note আর playbook-এর নমুনা |
| পরিচিতি | Sigma rule, ATT&CK মানচিত্র | ছোট প্রকল্পের বিবরণ |
| লেখা আর কথা | ইংরেজিতে সংক্ষিপ্ত note, শান্ত উপস্থাপনা | এই পর্বের মতো একটি নমুনা note |
যাঁরা helpdesk, system বা network administration, অথবা সফটওয়্যারে কাজ করেন, তাঁদের অভিজ্ঞতা এখানে খুব কাজে লাগে। Certification সহায়ক হতে পারে, তবে কোনটি উপযোগী তা চাকরির বিজ্ঞপ্তি দেখে ঠিক করুন, আর ক্রয়ের আগে নিজে যাচাই করুন। কোনো certificate হাতে-কলমে দক্ষতার বিকল্প নয়।
অনুশীলন করুন শুধু নিজের lab-এ বা যেখানে লিখিত অনুমতি আছে। অন্যের network-এ “শেখার জন্য” কিছু চালানো শেখা নয়, সেটি অপরাধ হতে পারে। সংস্থার ভেতরের log বা গ্রাহকের তথ্য নিজের portfolio-তে কখনো দেবেন না। সীমাটি পর্ব ৬-এ পড়ুন। দেশে ঘটনা জানানোর সরকারি পথও সেখানে আছে।
ইন্টারভিউয়ের জন্য পরিস্থিতিভিত্তিক অনুশীলন পর্ব ৭৯-তে পাবেন।
১০ · AI-এর যুগে SOC
AI লম্বা log সংক্ষেপ করতে, query-র খসড়া বানাতে আর note-এর ভাষা ঠিক করতে ভালো সহকারী। কিন্তু সে আপনার পরিবেশ জানে না, আর ভুল বলেও আত্মবিশ্বাসী শোনায়। Verdict তাই মানুষের সই ছাড়া চূড়ান্ত নয়।
| AI-এর ভুল | কেন বিপদ | যাচাই |
|---|---|---|
| অতি-নিশ্চিত “এটি benign” রায় | আসল ঘটনা বন্ধ হয়ে যায় | প্রমাণের লাইন দেখতে চান, মূল log পড়ুন |
| বানানো CVE বা ATT&CK ID, ভুল standard | ভুল পথে তদন্ত | মূল উৎসে নম্বর মেলান |
Error দূর করতে verify=False, chmod 777 বা খোলা CORS | নিয়ন্ত্রণটিই বন্ধ | Diff পড়ুন, কারণ খুঁজুন |
| MD5 বা unsalted hash-এর পুরোনো পরামর্শ | দুর্বল নকশা | এই কোর্সের পর্ব ১৪ দেখুন |
| Query বা script-এ injection, authorization বাদ | Tool-ই ঝুঁকি হয় | Review আর নিজের lab-এ পরীক্ষা |
| Log-এর ভেতরের লেখাকে নির্দেশ ভাবা | হামলাকারীর লেখা AI-কে প্রভাবিত করে | Log-কে তথ্য হিসেবে ধরুন (পর্ব ৫১) |
| Prompt-এ পাঠানো secret আর ব্যক্তিগত তথ্য | ডেটা ফাঁস | আগে মুছুন, অনুমোদিত tool ব্যবহার করুন |
AI-কে সিদ্ধান্তদাতা নয়, পর্যালোচক বানান। নিচের prompt-এ শুধু নাম ও ঠিকানা মুছে ফেলা বা বানানো তথ্য দিন।
AI ব্যবহারের চেকলিস্ট
আরও গভীরে: NIST SP 800-61 Rev. 3 (২০২৫) incident response-কে CSF 2.0-র কাঠামোর সাথে জুড়ে দেখে। মেশিনে পড়ার মতো playbook-এর জন্য OASIS-এর CACAO standard আছে। Queue theory-র সহজ M/M/1 মডেলে গড় অপেক্ষা ≈ ρ/(1−ρ) × কাজের সময়। ১২ মিনিটের কাজে ব্যস্ততা ρ = ০.৫ হলে ১২, ০.৮ হলে ৪৮, ০.৯৫ হলে ২২৮ মিনিট, যদিও বাস্তব queue এই অনুমান ঠিক মানে না। মূল শিক্ষা: analyst-কে শতভাগ ব্যস্ত রাখলে অপেক্ষা হঠাৎ বিস্ফোরিত হয়।
পরীক্ষা ও ইন্টারভিউতে:
- Severity আর priority-র পার্থক্য? Severity ক্ষতির মাত্রা; priority কাজের ক্রম, যাতে সম্পদ আর আস্থাও যুক্ত।
- MTTD আর MTTR? প্রথমটি শুরু থেকে ধরা পড়া, দ্বিতীয়টি ধরা থেকে সাড়া বা সমাধান। সংজ্ঞা আগে বলে নিন।
- গড়ের বদলে median কেন? একটি বড় মান গড়কে টানে; median সাধারণ ঘটনা দেখায়। দুটোই দেখুন।
- Playbook আর runbook? সাধারণত প্রথমটি সিদ্ধান্তের পরিকল্পনা, দ্বিতীয়টি কাজের ধাপ; ব্যবহার প্রতিষ্ঠানভেদে আলাদা।
- একটি 24x7 আসনে কত জন? অনুমান বলে হিসাব দেখান: বছরের দরকারি ঘণ্টা ÷ একজনের কাজের ঘণ্টা, সাধারণত পাঁচ বা তার বেশি।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিয়ে নিজে কিছুক্ষণ ভাবুন, তারপর “→ উত্তর” চাপুন।
প্র ০১“Triage” শব্দটি হাসপাতাল থেকে এসেছে। জরুরি চিকিৎসার ইতিহাস SOC-কে কী শেখায়?
শব্দটি ফরাসি trier থেকে এসেছে, যার মানে বাছাই করা। নেপোলিয়নের সময়ে ফরাসি সামরিক শল্যচিকিৎসক Dominique Jean Larrey যুদ্ধক্ষেত্রে আহতদের পদমর্যাদা নয়, আঘাতের গুরুত্ব দেখে চিকিৎসা দেওয়ার ব্যবস্থার জন্য পরিচিত। মূল ভাবনাটি বৈপ্লবিক ছিল: সম্পদ সীমিত হলে আগে-পরে ঠিক করাই ন্যায্য চিকিৎসা। “যে আগে এসেছে” বা “যে ক্ষমতাবান” নিয়ম ভুল।
SOC-এ এটি প্রায় হুবহু খাটে। Analyst কম, alert বেশি। সব alert সমান মনোযোগ পাবে, এই আশা বাস্তবে সবচেয়ে বড় alert-কেও ভিড়ে হারায়। জরুরি বিভাগ আরও একটি জিনিস শেখায়: triage রোগ নির্ণয় নয়। নার্স কয়েক মিনিটে ঠিক করেন কে আগে, চূড়ান্ত রোগ পরে জানা যায়। Tier 1-ও চূড়ান্ত বিশ্লেষণ করেন না, শুধু প্রয়োজনীয় অগ্রাধিকার বের করেন।
Triage-এর আরেকটি নিয়ম হলো পুনর্মূল্যায়ন। অপেক্ষায় থাকা রোগীর অবস্থা বদলাতে পারে, তাই নার্স আবার দেখেন। SOC-এর queue-তেও পুরোনো alert নতুন তথ্য পেলে উপরে উঠতে পারে, যেমন একই user-এর আরেকটি সন্দেহজনক login এলে। এই কারণেই একবার দেওয়া priority চূড়ান্ত নয়।
হাসপাতাল আরেকটি সতর্কতাও দেয়। ২০১৩ সালে যুক্তরাষ্ট্রের Joint Commission চিকিৎসা-যন্ত্রের alarm নিয়ে একটি Sentinel Event Alert প্রকাশ করে, যেখানে alarm fatigue একটি গুরুতর রোগী-নিরাপত্তার সমস্যা হিসেবে আসে। অনবরত বাজা শব্দে কর্মীরা অসাড় হয়ে পড়েন। SOC-এর alert fatigue এর আত্মীয়। সমাধানও একই ধরনের: কম কিন্তু অর্থবহ alarm, আর যন্ত্রের পাশে কর্মীর জন্য স্পষ্ট প্রক্রিয়া।
মূল উপলব্ধি: সীমিত মানুষের ক্ষমতাকে কোথায় খরচ করবেন, সেটিই triage-এর আসল সিদ্ধান্ত। এই ব্যবস্থায় ভুল alert-ও একটি খরচ, কারণ সে কোনো আসল রোগীর সময় কেড়ে নেয়।
প্র ০২২০১৩ সালের Target breach-এ নাকি আগেই alert এসেছিল। Alert থাকলে তবুও ক্ষতি কেন হয়?
২০১৪ সালে যুক্তরাষ্ট্রের Senate Commerce Committee-র একটি staff report আর Bloomberg Businessweek-এর প্রতিবেদন এই ঘটনা নিয়ে আলোচনায় আসে। প্রকাশিত বিবরণ অনুযায়ী, একটি security tool সতর্কবার্তা দিয়েছিল, দূরবর্তী একটি নজরদারি দল সেটি প্রধান দলের কাছে পাঠিয়েছিল, কিন্তু সময়মতো কার্যকর পদক্ষেপ হয়নি। প্রতিষ্ঠানটি নিজেও পরে বলেছিল যে তারা সেই সতর্কতায় কাজ করেনি। আরও জানা যায়, tool-এর একটি স্বয়ংক্রিয় অপসারণ সুবিধা বন্ধ ছিল। এসব বিবরণ প্রকাশিত প্রতিবেদনভিত্তিক, আর আসল কারণ বাইরে থেকে পুরোপুরি জানা সম্ভব নয়।
এই ঘটনা থেকে আমরা যা শিখতে পারি, তা মূলত প্রক্রিয়ার। প্রথমত, tool ঘটনা দেখল মানেই সংগঠন দেখল, তা নয়। সমালোচকদের মতে, বড় প্রতিষ্ঠানে প্রতিদিন বহু alert আসে, আর প্রসঙ্গ ছাড়া একটি সাধারণ alert আলাদা করে চোখে পড়ে না। এখানে enrichment আর priority-র মূল্য দেখা যায়। দ্বিতীয়ত, দুই দলের মাঝখানের সীমা একটি ঝুঁকি। কে সিদ্ধান্ত নেবেন, উত্তর না এলে কী হবে, তা স্পষ্ট না থাকলে বার্তা পৌঁছেও কাজ হয় না।
তৃতীয়ত, automation বন্ধ রাখা অনেক সময় যুক্তিসঙ্গত, কারণ ভুল সিদ্ধান্তের দাম আছে। কিন্তু তখন মানুষের পথটি আরও শক্ত হওয়া দরকার। চতুর্থত, hindsight bias, মানে পরে জেনে “এটা তো স্পষ্ট ছিল” ভাবা, থেকে সাবধান: পরে একটি alert স্পষ্ট লাগে, কিন্তু ভিড়ের ভেতরে সেটি তেমন ছিল না। তাই কাউকে দোষ না দিয়ে ব্যবস্থাকে প্রশ্ন করতে হবে, যেমনটি blameless postmortem-এ হয়।
মূল উপলব্ধি: Detection-এর শেষ বিন্দু alert নয়, একটি কার্যকর সিদ্ধান্ত। আপনার ব্যবস্থায় প্রতিটি P1-এর একটি মালিক, একটি সময়সীমা আর উত্তর না এলে পরের একটি পথ থাকা দরকার।
প্র ০৩Automation tier 1-এর বেশিরভাগ কাজ করে দিলে ভবিষ্যতের tier 3 কোথা থেকে আসবেন?
১৯৮৩ সালে Lisanne Bainbridge তাঁর বিখ্যাত প্রবন্ধ “Ironies of Automation”-এ শিল্প-কারখানার নিয়ন্ত্রণ নিয়ে একটি পরিহাস দেখান। সহজ কাজ যন্ত্রকে দিলে মানুষের ভাগে থাকে শুধু কঠিন, অস্বাভাবিক পরিস্থিতি। অথচ নিয়মিত হাতে কাজ না করায় ঠিক সেই দক্ষতা মানুষের কমে যায়। প্রয়োজনের সময় তিনি কম প্রস্তুত। তিনি যন্ত্রকে নজরে রাখবেন, এই আশাও দুর্বল, কারণ দীর্ঘ সময় শুধু নজর রাখা মানুষের জন্য কঠিন।
SOC-এ এই ঝুঁকি এখন বাস্তব। পুরোনো tier ব্যবস্থায় নতুন কর্মী হাজারো সাধারণ alert দেখে “স্বাভাবিক” কেমন তা শিখতেন। একই সাথে সেই কাজ ছিল একঘেয়ে আর burnout-এর কারণ। Automation এই ব্যথা কমায়, আবার শেখার সিঁড়িটিও সরিয়ে দিতে পারে। শিল্পের নানা আলোচনায় তাই কঠোর tier ব্যবস্থা নিয়ে প্রশ্ন ওঠে। পালা করে ভিন্ন কাজ করলে শেখা আর মনোবল দুটিই ভালো হতে পারে, এই যুক্তিতে কিছু দল স্তর কমিয়ে ছোট, সব কাজ জানা দল বানায়। আবার বড় দলে স্তর থাকলে কাজ ভাগ করা আর নতুন কর্মী গড়া সহজ হয়, তাই কোনো একটি উত্তর সব জায়গায় ঠিক নয়।
সমাধান automation বন্ধ করা নয়। সম্ভাব্য নকশা হলো: নতুন কর্মীরা automation-এর কাজের নমুনা পর্যালোচনা করবেন, নিজের হাতে মাঝে মাঝে পুরো alert তদন্ত করবেন, পালা করে detection আর hunting-এ বসবেন, আর tabletop-এ অংশ নেবেন। বিমান চালকেরা autopilot থাকার পরও simulator-এ যান, একই কারণে। AI সহকারী এলে এই সমস্যা আরও বাড়ে, কারণ তার সংক্ষিপ্ত সারাংশ মানুষকে মূল log থেকে দূরে নিতে পারে।
মূল উপলব্ধি: Automation-এর হিসাবে শুধু বাঁচানো সময় নয়, হারানো দক্ষতাও ধরুন। একটি SOC-এর নকশা আসলে তার ভবিষ্যৎ বিশেষজ্ঞদের প্রশিক্ষণের নকশাও বটে।
প্র ০৪Shift handover-এর জন্য একটি আলাদা কাঠামো কেন দরকার? “মুখে বলে দিলেই হয়” না কেন?
চিকিৎসাক্ষেত্রে এই প্রশ্নের একটি ভালো প্রমাণ আছে। ২০১৪ সালে New England Journal of Medicine-এ Starmer ও সহকর্মীদের একটি গবেষণা প্রকাশিত হয়। শিশুচিকিৎসা resident-দের কয়েকটি হাসপাতালে I-PASS নামের একটি কাঠামোবদ্ধ handoff পদ্ধতি চালুর পর চিকিৎসা-ভুল প্রায় ২৩% আর প্রতিরোধযোগ্য ক্ষতিকর ঘটনা প্রায় ৩০% কমেছে বলে জানানো হয়। লক্ষণীয় হলো, এটি কোনো নতুন যন্ত্র নয়, শুধু কথা বলার নিয়ম, প্রশিক্ষণ আর একটি সহায়ক পদ্ধতি। ফলটি হাসপাতালের, SOC-এ সরাসরি একই সংখ্যা আশা করা যাবে না।
I-PASS-এর নাম থেকেই ধারাটি বোঝা যায়: অবস্থার গুরুত্ব, সারাংশ, করণীয়, পরিস্থিতি সচেতনতা আর আপৎকালীন পরিকল্পনা, আর শেষে যিনি শুনলেন তাঁর নিজের ভাষায় সারসংক্ষেপ। শেষ ধাপটিই সবচেয়ে কম চর্চিত, আর সবচেয়ে শক্তিশালী। শ্রোতা নিজের ভাষায় বললেই ভুল বোঝা ধরা পড়ে।
মানুষের মন shift-এর শেষে ক্লান্ত থাকে। বলার সময় সে যা জানে তাকে সবার জানা মনে করে। শ্রোতা তখনও পুরো প্রসঙ্গে ঢোকেননি। “Firewall log বন্ধ” এই ধরনের নেতিবাচক খবর বলতে ভুল হওয়া সবচেয়ে সহজ, কারণ এখানে দেখার মতো কিছু ঘটে না। তাই একটি লিখিত ছক প্রশ্ন করিয়ে নেয়: খোলা case কী, কী করতে হবে, কী বন্ধ আছে, আর কে দায়ী। সবচেয়ে বড় সুবিধা, লেখা note সকালের পরেও টিকে থাকে। পরে তদন্তে কেউ জানতে চাইলে দেখা যায় কে কখন কী জানতেন। তবে ছকটি যেন ছোট থাকে। লম্বা ফর্ম ক্লান্ত মানুষ ভরেন না, ভরলেও কেউ পড়েন না।
মূল উপলব্ধি: দায়িত্ব হস্তান্তর একটি নিরাপত্তা নিয়ন্ত্রণ। সময় লিখে, শ্রোতার read-back নিয়ে শেষ করলে “আমি ভেবেছিলাম আপনি দেখছেন” ধরনের ফাঁক অনেকটাই বন্ধ হয়।
প্র ০৫নেতৃত্ব বললেন, “এই বছর MTTR ৫০% কমাতে হবে।” একজন SOC manager কী উত্তর দেবেন?
অর্থনীতিবিদ Charles Goodhart ১৯৭৫ সালে মুদ্রানীতি প্রসঙ্গে একটি পর্যবেক্ষণ করেন, যা পরে সরল করে বলা হয়: কোনো মাপ লক্ষ্য হয়ে গেলে সেটি আর ভালো মাপ থাকে না। এই জনপ্রিয় রূপটি সাধারণত নৃবিজ্ঞানী Marilyn Strathern-এর ১৯৯৭ সালের লেখার সাথে যুক্ত করা হয়। ইংল্যান্ডের স্বাস্থ্যব্যবস্থায় অপেক্ষার সময়ের লক্ষ্য নিয়ে Bevan আর Hood (২০০৬) দেখান, target ভালো ফলও আনতে পারে, আবার হিসাব মেলানোর কৌশলও তৈরি করতে পারে। অর্থাৎ সংখ্যার উন্নতি মানেই সবসময় সমান আসল উন্নতি নয়। সরকারি হাসপাতালের লম্বা লাইনের কথা ভাবুন: লাইন ছোট দেখানো আর রোগী দ্রুত চিকিৎসা পাওয়া এক জিনিস নয়।
তাই manager “না” বলবেন না। তিনি প্রশ্ন বদলাবেন: “MTTR কমিয়ে আসলে আমরা কী চাই?” উত্তর সম্ভবত: আসল ঘটনায় ক্ষতির সময় কমানো। তখন সংজ্ঞা হবে সংকীর্ণ: শুধু নিশ্চিত true positive, P1 আর P2, alert থেকে containment পর্যন্ত, median আর সর্বোচ্চ মানসহ। সব alert গড়ে নিলে সংখ্যাটি noise-এর ওপর নির্ভর করবে, এই পর্বের program যেমন দেখিয়েছে।
এর সাথে মান রক্ষার একটি জোড়া metric দরকার: বন্ধ alert-এর নমুনা পর্যালোচনায় ভুল বন্ধের হার। এরপর লক্ষ্যের পেছনের বিনিয়োগ বলা দরকার: কোন playbook, কোন automation, কত জন। শেষে নেতৃত্বকে জানাতে হবে, যদি detection ভালো হয়, প্রথমে সংখ্যাটি খারাপও দেখাতে পারে। আগে না ধরা পড়া ধীর ঘটনাগুলো এবার হিসাবে আসবে। এই কথা আগে না বললে ভালো কাজ ব্যর্থতা হিসেবে দেখা যাবে। আর লক্ষ্যটি দলের হওয়া উচিত, কোনো একজন analyst-এর নয়, কারণ containment-এর সময় IT দল আর অনুমোদনের গতির ওপরও নির্ভর করে।
মূল উপলব্ধি: ভালো manager metric-এর লক্ষ্য মেনে নেন না, প্রত্যাখ্যানও করেন না। তিনি লক্ষ্যটিকে আসল ক্ষতি কমানোর ভাষায় আবার লেখেন। সংখ্যা বদলানো সহজ, ঝুঁকি বদলানো কঠিন।
অনুশীলন
প্রথমে নিজে করুন, তারপর উত্তর মেলান। সব ঘটনা আর সংখ্যা কাল্পনিক।
-
24x7 হিসাব: সপ্তাহে ৪৮ ঘণ্টা কাজ (৬ দিন, দিনে ৮ ঘণ্টা), ২৫ দিন ছুটি, ৫ দিন প্রশিক্ষণ, ১০% shrinkage. প্রতি shift ৮.৫ ঘণ্টা, দিনে ৩টি shift. একটি আসনে বছরে কত জন লাগে?
চুক্তির ঘণ্টা: ৫২ × ৪৮ = ২,৪৯৬. ছুটি আর প্রশিক্ষণ: ৩০ দিন × ৮ = ২৪০ ঘণ্টা। বাকি ২,২৫৬. Shrinkage বাদে ২,২৫৬ × ০.৯ = ২,০৩০.৪ ঘণ্টা।
দরকারি ঘণ্টা: ৮.৫ × ৩ × ৩৬৫ = ৯,৩০৭.৫. তাই ৯,৩০৭.৫ ÷ ২,০৩০.৪ ≈ ৪.৫৮, মানে ৫ জন। দীর্ঘ সপ্তাহে সংখ্যা কমে, কিন্তু ক্লান্তি বাড়ে। আইন আর চুক্তি যাচাই না করে এই অনুমান ব্যবহার করবেন না।
-
আউটপুট অনুমান করুন: Score = severity × asset × confidence + (now − at) ÷ ৫. একজন analyst t=30-এ খালি হলেন। Queue: X (at=0, base score 8, কাজ 10), Y (at=10, base score 8, কাজ 10), Z (at=25, base score 18, কাজ 10). কোন ক্রমে কাজ হবে? প্রতিটি কখন শুরু হবে?
t=30: X = ৮ + ৬ = ১৪, Y = ৮ + ৪ = ১২, Z = ১৮ + ১ = ১৯. তাই Z শুরু হয় t=30-এ।
t=40: X = ৮ + ৮ = ১৬, Y = ৮ + ৬ = ১৪. তাই X, তারপর Y শুরু হয় t=50-এ। ক্রম: Z, X, Y. একই base score-এ পুরোনোটি আগে যায়, এটাই ageing-এর কাজ।
-
Playbook সমালোচনা: একটি দলের নিয়ম: “যেকোনো malware alert এলে SOAR যন্ত্রটি network থেকে আলাদা করবে, আর প্রতি analyst-কে মাসে কম করে ৩০০টি case বন্ধ করতে হবে।” এই নকশার ঝুঁকি কোথায়, আর আপনি কীভাবে বদলাবেন?
প্রথম অংশ: false positive-এ payment server বা হাসপাতালের যন্ত্র থেমে যেতে পারে। সমাধান: সাধারণ laptop-এ স্বয়ংক্রিয় isolation চলতে পারে, যদি আস্থা বেশি হয় আর ফেরানো সহজ হয়। গুরুত্বপূর্ণ সার্ভারে মানুষের অনুমোদন লাগবে। প্রতিটি কাজ লিখে রাখা আর একটি kill switch থাকা দরকার।
দ্বিতীয় অংশ: সংখ্যার লক্ষ্য Goodhart’s law ডেকে আনে। মানুষ না পড়ে বন্ধ করবেন, আর কঠিন case এড়াবেন। বদলে নমুনা-পর্যালোচনায় মান আর দলগত metric দেখুন।
-
Timeline থেকে metric: একটি ঘটনায় ক্ষতিকর কাজ শুরু 09:00, alert 09:40, analyst হাতে নিলেন 09:52, containment 11:10. আরেকটি: শুরু 14:00, alert 14:06, হাতে 14:10, containment 14:40. প্রতিটির detect, acknowledge আর alert থেকে containment সময় বের করে গড় বলুন। পাঁচ দিন পর তৃতীয় একটি ধীর ঘটনা পাওয়া গেলে কী বদলাবে?
প্রথমটি: detect ৪০, acknowledge ১২, containment ৯০ মিনিট। দ্বিতীয়টি: ৬, ৪, ৩৪ মিনিট। গড়: detect ২৩, acknowledge ৮, containment ৬২ মিনিট।
তৃতীয় ধীর ঘটনাটি যোগ হলে গড় অনেক বাড়বে, median কম বাড়বে। শিক্ষা: MTTD শুধু যা ধরা পড়েছে তার হিসাব। আগের সুন্দর সংখ্যাটি ছিল অসম্পূর্ণ, আর এখন সেটি আরও সৎ হলো।
নিজেকে যাচাই করুন
ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।
ক্রমএকটি SOC alert-এর ধাপগুলো সঠিক ক্রমে সাজান (▲▼ চেপে সরান)
- Rule মিলে alert তৈরি হলো
- Triage: কত জরুরি তা বোঝা
- Enrichment: user আর যন্ত্রের প্রসঙ্গ জোড়া
- Investigation: প্রমাণ দেখে verdict
- Escalation: ঠিক দায়িত্বশীলের হাতে দেওয়া
- Closure: note, শিক্ষা আর rule-এর ফিডব্যাক
পাঁচটি case-এর resolve সময় (মিনিট): 10, 12, 14, 16, 600. মান দুটি কী, আর কোনটি সাধারণ case-এর ভালো ছবি দেয়?
- গড় 14 আর median 130.4; গড়টি ভালো
- গড় 130.4 আর median 14; median সাধারণ case-এর ভালো ছবি
- দুটোই 130.4
- 600 মুছে ফেলে শুধু 13 দেখানো উচিত
একই ধরনের alert এলো পরীক্ষার ল্যাবের একটি PC আর payment server-এ। কোন কথাটি ঠিক?
- একই alert, তাই priority অবশ্যই সমান
- Severity আর priority একই জিনিস
- Payment server-এর alert বেশি priority পাবে, কারণ সম্পদের গুরুত্ব বেশি
- যেটি আগে এসেছে, সবসময় সেটিই আগে দেখা উচিত
168 ÷ 40 = 4.2, তবুও একটি 24x7 আসনে সাধারণত এর চেয়ে বেশি মানুষ লাগে কেন?
- কারণ সপ্তাহে আসলে 168 ঘণ্টার বেশি থাকে
- কারণ SOAR ব্যবহারে লোক বেশি লাগে
- কারণ রাতের shift-এ বেতন আলাদা
- কারণ ছুটি, প্রশিক্ষণ, বিরতি আর handover overlap হিসাবে নেই
কোন কাজটি মানুষের অনুমোদন ছাড়া SOAR-কে দেওয়া সবচেয়ে নিরাপদ?
- Alert-এর IP আর user-এর তথ্য enrichment করে ticket-এ যোগ করা
- Production ডেটাবেস সার্ভার network থেকে আলাদা করা
- পুরো বিভাগের সব account বন্ধ করা
- একটি ব্যবসায়িক অংশীদারের পুরো domain block করা
একটি স্বয়ংক্রিয় script ৬০টি alert না পড়ে ১ মিনিটে বন্ধ করা শুরু করল। সব alert-এর MTTR গড় ৯৯ থেকে ১৭ মিনিটে নামল, কিন্তু true positive-এর MTTR একই রইল। কী বলা উচিত?
- SOC-এর সাড়া পাঁচগুণ ভালো হয়েছে
- MTTD কমে গেছে
- গড় নেমেছে noise-এর জন্য; এটি metric-এর বিভ্রম, আসল সাড়া বদলায়নি
- True positive-এর হিসাব নিশ্চয়ই ভুল, সেটি বাদ দেওয়া উচিত
বন্ধ হওয়া 100টি alert-এর 80টি false positive. SOC-এর দৈনন্দিন “FP rate” 80% বলা হলো। পরিসংখ্যানের false positive rate সম্পর্কে কোনটি ঠিক?
- এটিও নিশ্চিতভাবে 80%
- FP ÷ (FP + TN) দরকার; true negative না জানলে বলা যায় না
- এটি অবশ্যই 20%
- এটি recall-এর সমান
শব্দকোষ
লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন, অর্থ দেখাবে। এই পর্বের সব নতুন শব্দ এখানে একসাথে:
মনে রাখুন
- SOC-এর কাজ: দেখা, বোঝা, থামানো, শেখা. শেষেরটি বাদ দিলে একই ভুল ফিরে আসে।
- Alert-এর পথ: triage, enrichment, investigation, escalation, closure. ভালো note-এ সত্য, অনুমান আর অজানা আলাদা।
- Severity ক্ষতি, priority ক্রম। Playbook সিদ্ধান্ত ধরে রাখে; SOAR ফেরানো যায় এমন কাজ করে, বড় সিদ্ধান্ত মানুষের।
- একটি 24x7 আসনে সাধারণ অনুমানে প্রায় ৬ জন লাগে, আর handover-এ read-back দরকার।
- MTTD, MTTA, MTTR-এর সংজ্ঞা লিখুন, median দেখুন, TP আলাদা রাখুন। Metric-কে লক্ষ্য বানালে সেটি নষ্ট হয়।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পর্ব ৬১ · Incident response — NIST-এর ধাপ, দল আর পরিকল্পনাপরবর্তী পর্বSOC-এর হাত থেকে বড় ঘটনা কীভাবে সামলানো হয়।
- সাইবার নিরাপত্তা · কোর্স হোম৮০টি পর্বপুরো কোর্সের রোডম্যাপ।
- পর্ব ২৩ · IDS আর IPSপিছনে দেখুনPrecision, recall আর base-rate fallacy-র পূর্ণ হিসাব।
- Cloud & DevOps · Incident managementপাশের ট্র্যাকSRE দলের on-call আর incident-এর অভ্যাস।
- Cloud & DevOps · Centralized loggingপাশের ট্র্যাকLog এক জায়গায় আনার প্রকৌশল।