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

Mobile আর IoT নিরাপত্তা — app permission, firmware আর device hardening

Mobile and IoT Security — App Permissions, Firmware and Device Hardening

Taught in Bangla, this lesson covers the mobile threat model, Android and iOS sandboxing, permissions, verified boot and secure hardware, fake loan and mobile-money apps, sideloading and rooted phones, OWASP Mobile Top 10, certificate pinning trade-offs, why IoT is weak, Mirai lessons, ETSI EN 303 645 and NIST IR 8259, secure boot, signed OTA updates, isolating CCTV, OT basics, and buying and retiring devices.

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

  • Mobile threat model: কী হারাতে পারেন, কে কীভাবে ঝুঁকি তৈরি করে
  • Android আর iOS-এর sandbox, permission, verified boot, app signing আর secure hardware
  • Sideloading, নকল ঋণ ও মোবাইল-টাকার app, rooted ফোন আর প্রতিটি স্তরে রক্ষা
  • OWASP Mobile Top 10, নিরাপদ কোডিং আর certificate pinning-এর লাভ-ক্ষতি
  • IoT কেন দুর্বল, Mirai-র শিক্ষা, OWASP IoT Top 10, ETSI EN 303 645 আর NIST IR 8259
  • Secure boot, signed OTA update, CCTV আলাদা করা, OT-র সংক্ষিপ্ত ধারণা, কেনা আর বিদায়ের নিয়ম

সীমারেখা: এই পর্ব প্রতিরক্ষার জন্য। এখানে কোনো ক্ষতিকর app বানানো, protection এড়ানো বা অন্যের যন্ত্রে ঢোকার ধাপ নেই। সব কোড খেলনা ডেটায় চলে। নিজের নয় এমন camera, router বা ফোনে লিখিত অনুমতি ছাড়া পরীক্ষা অপরাধ হতে পারে। বিস্তারিত পর্ব ৬ · আইন আর নৈতিকতা-য় আছে; এই পর্ব আইনি পরামর্শ নয়।

১ · ফোন এখন মানিব্যাগ, পরিচয়পত্র আর চাবির গোছা

আগে পকেটমার মানিব্যাগ নিলে ক্ষতি হতো ভেতরের টাকাটুকু। এখন ফোনের ভেতরে থাকে মোবাইল ব্যাংকিং, OTP আসার SMS, ইমেইল, ছবি, অফিসের chat আর passkey. একটি যন্ত্রই আপনার ব্যাংকের কার্ড, পরিচয়পত্র আর বাড়ির চাবির কাজ করে।

Laptop যদি ঘরের আলমারি হয়, ফোন হলো সবসময় সাথে থাকা হাতব্যাগ। ব্যাগটি বাসে, রিকশায়, চায়ের দোকানে সঙ্গে ঘোরে। হারানোর সুযোগ বেশি, অচেনা লোকের হাতে পড়ার সুযোগও বেশি। তাই এর threat model আলাদা। শব্দটি মনে করতে দেখুন পর্ব ৪ · Threat modeling.

ঝুঁকিকী ঘটেপ্রধান রক্ষা
হারানো বা চুরি হওয়া ফোনখোলা ফোনে সবকিছুর নাগালScreen lock, device encryption, remote lock ও মুছে ফেলার ব্যবস্থা
ক্ষতিকর appঅনুমতি নিয়ে তথ্য পড়ে বা ফাঁস করেঅফিসিয়াল store, permission যাচাই, update
Overlay আর accessibility-র অপব্যবহারপর্দার ওপর নকল স্তর বসানো, পর্দার লেখা পড়াএই বিশেষ অনুমতি অস্বীকার, OS-এর সীমা
SmishingSMS-এর link থেকে নকল site বা appLink না খোলা, অফিসিয়াল app-এ নিজে ঢোকা
SIM swapনম্বর অন্য SIM-এ, OTP অন্যের কাছেPhishing-প্রতিরোধী MFA, operator-এ PIN বা লক
অনিরাপদ networkভুয়া Wi-Fi, app-এ দুর্বল TLSসঠিক certificate যাচাই, HTTPS-ই ভরসা

এর মধ্যে Overlay মানে অন্য app-এর ওপরে একটি নকল পর্দা বসানো। আর accessibility service হলো প্রতিবন্ধী ব্যবহারকারীর জন্য তৈরি সুবিধা, যা পর্দার লেখা পড়তে আর বোতাম চাপতে পারে। সুবিধাটি খুবই দরকারি, কিন্তু ভুল হাতে গেলে সেই ক্ষমতাই বিপজ্জনক। SMS OTP আর SIM swap নিয়ে পুরো আলোচনা আছে পর্ব ১৬ · MFA আর passkey-তে; SMS OTP-র ওপর ভরসা কমানোই এখানে মূল শিক্ষা।

প্রথম পাঁচ অভ্যাস

লম্বা PIN বা biometric lock, OS আর app-এর স্বয়ংক্রিয় update, শুধু অফিসিয়াল store থেকে app, অচেনা SMS-এর link না খোলা, আর Find My Device বা Find My চালু রাখা। এই পাঁচটি সাধারণ ব্যবহারকারীর বেশিরভাগ ঝুঁকি কমায়।

২ · Android আর iOS: ফোনের ভেতরের দেয়াল

আধুনিক ফোনের নকশা একটি কথা ধরে নেয়: কোনো app-কে পুরোপুরি বিশ্বাস করা যাবে না। তাই একটি অফিসের ভবনের মতো ভাগ করা হয়। প্রতিটি কোম্পানির আলাদা ফ্লোর, দারোয়ান পরিচয়পত্র দেখে ঢুকতে দেন, আর ব্যাংকের লকার থাকে আলাদা শক্ত ঘরে।

ফোনের নিরাপত্তার স্তর

Layers of trust on a modern phone, from hardware up to apps

ফোনের নিরাপত্তার স্তর: hardware থেকে app পর্যন্ত App sandbox ব্যাংকapp Chatapp অচেনাapp OS kernel + permission কে কী পাবে, এখানেই ঠিক হয় Verified / secure boot প্রতিটি ধাপ পরেরটির সই দেখে Hardware root of trust বদলানো যায় না এমন শুরুর কোড Secure hardware TEE · StrongBox · Secure Enclave Key বাইরে আসে না key ব্যবহারেরঅনুরোধ
ছবি ৩৫.১ — App-এর কাছে key থাকে না। App শুধু অনুরোধ পাঠায়, হিসাব হয় আলাদা hardware-এর ভেতরে।
স্তরAndroidiOS
App sandboxপ্রতিটি app আলাদা Linux user id-তে চলে; SELinux সীমা টানেপ্রতিটি app নিজের container-এ, kernel-এর sandbox নিয়ম মেনে চলে
Permissionকিছু install-এর সময় দেওয়া হয়; সংবেদনশীলগুলোর জন্য runtime permission (Android 6, ২০১৫ থেকে)প্রথম ব্যবহারের সময় জিজ্ঞাসা; প্রতিটি অনুরোধে কারণ লিখতে হয়
Verified bootAndroid Verified Boot; boot-এর সময় system অংশের সই ও version যাচাইSecure boot chain: Boot ROM থেকে শুরু করে প্রতিটি ধাপ পরেরটিকে যাচাই করে
App signingDeveloper-এর key-তে সই; update-এ একই key লাগেসব কোডে Apple-এর দেওয়া certificate দিয়ে সই বাধ্যতামূলক
Secure hardwareTEE, সমর্থিত ফোনে StrongBox; Android KeystoreSecure Enclave; Keychain
App-এর উৎসPlay Store ছাড়াও অন্য store বা সরাসরি ফাইল থেকে install সম্ভবমূলত App Store; কিছু অঞ্চলে নিয়ম মেনে বিকল্প পথ আছে

একটি সূক্ষ্ম কথা: Code signing বলে “এই app কে সই করেছে, আর সইয়ের পর বদলায়নি।” বলে না “এই app ভালো।” একজন প্রতারকও নিজের key দিয়ে সই করতে পারে। Android-এ সই মূলত এটি নিশ্চিত করে যে update একই প্রকাশকের কাছ থেকে এসেছে। স্বাক্ষরের ভিত্তি আছে পর্ব ১১-এ, আর boot-এর সাধারণ ধারণা আছে Operating Systems কোর্সের boot পর্বে।

Permission তালিকা নিজে পড়ুন

অনুমতি তিন স্তরে ভাবুন। Internet-এর মতো সাধারণ অনুমতি install-এর সময়ই পাওয়া যায়। Camera, SMS, contacts-এর মতো বিপজ্জনক অনুমতি চলার সময় জিজ্ঞাসা করে। আর overlay, accessibility, “অজানা app install” হলো বিশেষ অনুমতি, যা Settings-এ আলাদা করে চালু করতে হয়। প্রশ্ন একটাই: এই কাজের জন্য কি এই অনুমতি সত্যিই লাগে? নিচের খেলনা report ঠিক এই প্রশ্নটি করে। এখানে needs তালিকাটি মানুষের বিচার, Android-এর দেওয়া নয়।

// Toy permission risk report. Manifests are in-memory lists; no real app is read.
const WEIGHT = { CAMERA: 15, ACCESS_FINE_LOCATION: 15, RECORD_AUDIO: 20, READ_CONTACTS: 20,
  READ_SMS: 30, RECEIVE_SMS: 30, SYSTEM_ALERT_WINDOW: 30, BIND_ACCESSIBILITY_SERVICE: 40,
  REQUEST_INSTALL_PACKAGES: 25, INTERNET: 0 };
const COMBOS = [
  [["READ_SMS", "INTERNET"], "SMS and OTP text could leave the phone"],
  [["READ_CONTACTS", "INTERNET"], "contact list could leave the phone"],
  [["BIND_ACCESSIBILITY_SERVICE", "SYSTEM_ALERT_WINDOW"], "can read and cover the screen"],
];

function report(app) {
  const extra = app.perms.filter(p => !app.needs.includes(p));
  let score = extra.reduce((sum, p) => sum + WEIGHT[p], 0);
  const hits = COMBOS.filter(([set]) =>
    set.every(p => app.perms.includes(p)) && set.some(p => extra.includes(p)));
  score += hits.length * 25;
  if (app.source !== "store") score += 20;
  const level = score >= 80 ? "DO NOT INSTALL" : score >= 30 ? "REVIEW" : "OK";
  console.log(app.name + " [" + app.source + "]: score " + score + " -> " + level);
  console.log("  not needed: " + (extra.join(", ") || "none"));
  for (const [, why] of hits) console.log("  combo: " + why);
}

report({ name: "Bus Map", source: "store", needs: ["INTERNET", "ACCESS_FINE_LOCATION"],
  perms: ["INTERNET", "ACCESS_FINE_LOCATION"] });
report({ name: "Torch Lite", source: "store", needs: ["CAMERA"],
  perms: ["CAMERA", "INTERNET", "READ_CONTACTS"] });
report({ name: "Quick Loan (fake)", source: "link", needs: ["INTERNET", "CAMERA"],
  perms: ["INTERNET", "CAMERA", "READ_SMS", "READ_CONTACTS", "SYSTEM_ALERT_WINDOW",
          "BIND_ACCESSIBILITY_SERVICE"] });

Bus Map পেয়েছে score 0 -> OK, কারণ map app-এর location লাগে। Torch Lite পেয়েছে score 45 -> REVIEW: টর্চের contacts লাগে না, internet-ও নয়, আর দুটি মিলে contact list could leave the phone. তৃতীয়টির score 215 -> DO NOT INSTALL. চারটি অপ্রয়োজনীয় অনুমতির সাথে তিনটি বিপজ্জনক জোড়া আর link থেকে আসা উৎস যোগ হয়েছে। হিসাবটি মিলিয়ে দেখুন: ৩০ + ২০ + ৩০ + ৪০ = ১২০, তিন জোড়ায় ৭৫, উৎসে ২০, মোট ২১৫. একা একটি অনুমতির চেয়ে জোড়া বেশি কথা বলে। এই সংখ্যাগুলো শেখার জন্য বানানো, কোনো মানদণ্ড নয়।

৩ · নকল app, sideloading আর rooted ফোন

Sideloading মানে অফিসিয়াল store-এর বাইরে থেকে, যেমন কোনো link বা শেয়ার করা ফাইল থেকে app install করা। Android-এ এটি বৈধ সুবিধা, অনেক প্রতিষ্ঠান নিজেদের app এভাবে দেয়। ঝুঁকি হলো, store-এর যাচাই এখানে থাকে না।

বাংলাদেশের প্রেক্ষিতে দুটি ধরন মাথায় রাখুন। এক, দ্রুত ঋণের প্রলোভন দেওয়া app. দুই, মোবাইল ব্যাংকিং বা ব্যাংকের চেহারা নকল করা app. বিভিন্ন দেশে এমন প্রতারণা নিয়ে সতর্কতা প্রকাশিত হয়েছে; এখানেও একই ঝুঁকি আছে ধরে নিন। এই পর্বে কোনো নির্দিষ্ট সেবা বা কোম্পানির কথা বলা হচ্ছে না। মূল নিয়ম সরল: মোবাইল ব্যাংকিং app নেবেন শুধু অফিসিয়াল store বা সেবাদাতার অফিসিয়াল ওয়েবসাইটের link থেকে। PIN আর OTP কাউকে জানাবেন না। যে app নিয়ে সন্দেহ আছে, তাতে কখনো লিখবেন না।

নিচে একটি কাল্পনিক ঘটনায় দেখুন, নকল app-এর পথে কোন ধাপে কে থামাতে পারত। এটি ধারণার স্তরে, প্রতিরক্ষা বোঝার জন্য।

কাল্পনিক ঘটনা: “দ্রুত ঋণ” app
যা ঘটছে
যে স্তর কাজ করে
রক্ষকের কাজ
না থামলে যা হয়
  1. ধাপ ১ — প্রলোভন। এটি smishing. সবচেয়ে সস্তা প্রতিরক্ষা এখানেই: অপ্রত্যাশিত link না খোলা। লোভ আর তাড়াহুড়া হলো সতর্ক হওয়ার সংকেত।
  2. ধাপ ২ — ফাইল নামানো। Browser সাধারণত এমন ফাইল নিয়ে সতর্ক করে। আসল সেবা store-এ থাকলে ফাইল নামানোর প্রশ্নই ওঠে না।
  3. ধাপ ৩ — install-এর অনুমতি। Android-এ অচেনা উৎস থেকে install করতে সেই উৎসকে আলাদা অনুমতি দিতে হয়। এই সুইচটি বন্ধ রাখাই নিরাপদ।
  4. ধাপ ৪ — scan. Google Play Protect-এর মতো scanner পরিচিত ক্ষতিকর app ধরতে পারে। নতুন app ধরা পড়বেই, এমন নিশ্চয়তা নেই, তাই scanner শেষ ভরসা নয়।
  5. ধাপ ৫ — অনুমতি। ঋণের app কেন contacts আর SMS চায়? অনুমতি না দিলে app তথ্য পাবে না। Contacts অনুমতি পেলে হয়রানির ঝুঁকিও তৈরি হয়।
  6. ধাপ ৬ — বিশেষ অনুমতি। Android 13 থেকে Restricted settings নামের সুরক্ষা sideload করা app-এর accessibility-র মতো অনুমতি চালু করা কঠিন করে। ব্যবহারকারী নিজে বন্ধ করলে সুরক্ষা থাকে না। তাই app যদি এটি চালু করতে বলে, থামুন।
  7. ধাপ ৭ — sandbox. অন্য app-এর ফাইল সরাসরি পড়া যায় না। কিন্তু যা অনুমতি পেয়েছে, যেমন SMS, তা পড়তে পারে। Sandbox দেয়াল, কিন্তু ব্যবহারকারীর দেওয়া চাবির সামনে নয়।
  8. ধাপ ৮ — লেনদেন। এখানে server-এর দিক কাজ করে: নতুন device চেনা, অস্বাভাবিক লেনদেন আটকানো, প্রতিটি লেনদেনে নোটিশ। পুরো দায় ব্যবহারকারীর ওপর চাপানো ঠিক নকশা নয়।
  9. ধাপ ৯ — সাড়া। App মুছুন, অন্য নিরাপদ যন্ত্র থেকে password আর PIN বদলান, সেবাদাতার অফিসিয়াল helpline-এ জানান, প্রমাণ রাখুন। সন্দেহ থাকলে ফোন factory reset করুন। প্রতারণা আইনি পথেও জানানো যায়; দেখুন পর্ব ৬.

Rooted বা jailbroken ফোন

Rooting (Android) আর jailbreak (iOS) মানে নিজের ফোনে নিরাপত্তার সীমা সরিয়ে সর্বোচ্চ অধিকার নেওয়া। এতে sandbox আর verified boot-এর ভরসা দুর্বল হয়। Update বন্ধ হতে পারে, আর কোনো ক্ষতিকর app সবচেয়ে বড় ক্ষমতা পেয়ে যেতে পারে। সাধারণ ব্যবহারের ফোনে এটি এড়ানোই ভালো। সন্দেহজনক দ্বিতীয় হাতের ফোন কিনলে OS পুরোপুরি নতুন করে বসিয়ে যাচাই করুন, আর boot-এ সতর্কবার্তা আসে কি না দেখুন।

Bank app-এর দিক থেকে কী করা যায়? Server device attestation চাইতে পারে, যেমন Android-এ Play Integrity API বা iOS-এ App Attest. এগুলো hardware-সমর্থিত ঝুঁকির সংকেত দেয়। তবে কোনো client-side যাচাই নিখুঁত নয়। তাই এটি একটি সংকেত হিসেবে ব্যবহার করুন, একমাত্র প্রতিরক্ষা হিসেবে নয়।

৪ · OWASP Mobile Top 10, নিরাপদ কোডিং আর device policy

OWASP Mobile Top 10-এর বর্তমান সংস্করণ ২০২৪ সালে চূড়ান্ত হয়েছে (OWASP-এর সাইটে ঝুঁকির পাতাটি “2023-risks” ঠিকানায় আছে)। পাশাপাশি OWASP-এর MASVS মান আর MASTG পরীক্ষা-নির্দেশিকা যাচাইয়ের কাজে লাগে। নিচের তারকা-চিহ্নিত সারিগুলো এই পর্বের মূল ফোকাস।

ক্রমঝুঁকিসহজ কথায়
M1 ★Improper Credential UsageApp-এর ভেতরে hard-coded key, দুর্বল credential সামলানো
M2Inadequate Supply Chain SecurityLibrary, SDK বা build-এ অনিরাপদ অংশ
M3 ★Insecure Authentication/Authorizationদুর্বল login, অনুমতি শুধু app-এ যাচাই
M4Insufficient Input/Output ValidationDeep link, WebView বা server-এর ডেটা যাচাই না করা
M5 ★Insecure CommunicationCleartext traffic, certificate যাচাই বন্ধ
M6Inadequate Privacy Controlsদরকারের বেশি ব্যক্তিগত তথ্য সংগ্রহ বা log করা
M7Insufficient Binary ProtectionsApp উল্টে পড়া বা বদলানো সহজ হওয়া
M8Security MisconfigurationDebug চালু, অপ্রয়োজনে খোলা component
M9 ★Insecure Data StorageToken বা ব্যক্তিগত তথ্য plain ফাইলে
M10Insufficient Cryptographyপুরোনো algorithm, দুর্বল key ব্যবহার

প্রথম নিয়ম: App ব্যবহারকারীর হাতে থাকে, তাই app-এর কোড আর ফাইল আপনার নিয়ন্ত্রণের বাইরে। Client-কে কখনো পুরো বিশ্বাস করবেন না। “Premium user কি না”, “এই লেনদেনের অনুমতি আছে কি না”, এসব যাচাই হবে server-এ। ওপরের নিয়মটি পর্ব ১৯-এর নীতির মোবাইল রূপ।

// অনিরাপদ নকশা: secret app-এর ভেতরে থাকলে যে কেউ বের করতে পারে
const val PAYMENT_API_SECRET = "example-token"
prefs.edit().putString("session", "<session-token>").apply()   // plain ফাইলে token

// নিরাপদ নকশা
// ১. Payment secret থাকবে শুধু server-এ; app নিজের session দিয়ে server-কে ডাকবে
// ২. Session token হবে স্বল্পমেয়াদি, Keystore-এর key দিয়ে encrypt করে রাখা
// ৩. Logout হলে server-এও token বাতিল

Key তৈরি করার সময় key-কে Keystore-এর ভেতরেই থাকতে বলুন। নিচের Kotlin উদাহরণে AES key তৈরি হয়, কিন্তু তার মান app কখনো দেখতে পায় না। প্রতিটি ব্যবহারে ফোনের lock-যাচাই লাগে। iOS-এ সমতুল্য কাজ Keychain করে, যেখানে WhenUnlockedThisDeviceOnly ধরনের নিয়ম দিয়ে নির্দিষ্ট করা যায় যে তথ্যটি অন্য যন্ত্রে backup হয়ে যাবে না।

val spec = KeyGenParameterSpec.Builder(
        "session_wrap_key",
        KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT)
    .setBlockModes(KeyProperties.BLOCK_MODE_GCM)
    .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
    .setKeySize(256)
    .setUserAuthenticationRequired(true)   // ব্যবহারের আগে lock-যাচাই
    .build()
val generator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore")
generator.init(spec)
generator.generateKey()                    // key বাইরে আসে না

TLS আর certificate pinning-এর লাভ-ক্ষতি

আগে সাধারণ নিয়ম: সব traffic TLS-এ, আর certificate যাচাই কখনো বন্ধ নয়। Debug-এর জন্য সব certificate মেনে নেওয়ার কোড লিখে সেটি release-এ চলে যাওয়া একটি পরিচিত ভুল। Android 9 বা নতুন version target করা app-এ cleartext traffic ডিফল্টভাবে বন্ধ থাকে, iOS-এ App Transport Security একই কাজে সাহায্য করে। TLS-এর বিস্তারিত আছে পর্ব ১২-তে।

Certificate pinning মানে app শুধু আগে থেকে ঠিক করা key বা certificate মানবে। ধরুন ব্যাংকের লকারে শুধু একজন পরিচিত কর্মকর্তার সই চলে। এতে ভুয়া certificate-এর ঝুঁকি কমে। কিন্তু সেই কর্মকর্তা বদলি হলে? লকারই খোলা যায় না। Pin বদলের পর পুরোনো app server-এর সাথে কথা বলতে পারে না, আর সবার ফোনে নতুন update পৌঁছাতে সময় লাগে।

এ কারণে Android-এর developer নির্দেশিকা সাধারণ app-এর জন্য pinning সুপারিশ করে না। একান্ত দরকার হলে একাধিক backup pin আর স্বল্প মেয়াদ রাখতে বলে। উচ্চ-ঝুঁকির app-এর বেলায় এই বিচার আলাদা হতে পারে। মনে রাখুন, pinning ব্যবহারকারীর নিজের ফোনের বিরুদ্ধে সুরক্ষা নয়; এটি মূলত network-পথের ভুয়া certificate-এর বিরুদ্ধে সুরক্ষা।

<network-security-config>
  <base-config cleartextTrafficPermitted="false" />
  <domain-config>
    <domain includeSubdomains="true">api.example.com</domain>
    <pin-set expiration="2027-06-30">
      <!-- মান দুটি নকল; আসলে public key-র SHA-256, Base64-এ -->
      <pin digest="SHA-256">example-current-key-pin=</pin>
      <pin digest="SHA-256">example-backup-key-pin=</pin>
    </pin-set>
  </domain-config>
</network-security-config>

Developer-এর ছোট চেকলিস্ট: Log-এ token নয়। সংবেদনশীল পর্দায় screenshot সীমিত করা। Release build-এ debug বন্ধ। Third-party SDK-র অনুমতি আর তথ্য-সংগ্রহ যাচাই (threat model-এ এদেরও রাখুন)। Deep link-এর ডেটা অবিশ্বস্ত input ধরুন। আরও গভীরে যেতে দেখুন Mobile App Development কোর্স, আর secret-এর সাধারণ নিয়ম Cloud & DevOps-এর secret পর্বে।

প্রতিষ্ঠানের ফোন: device policy

অফিসের ইমেইল ব্যক্তিগত ফোনে এলে ফোনটি প্রতিষ্ঠানের ঝুঁকিও হয়ে যায়। একে বলে BYOD, মানে নিজের যন্ত্র কাজে আনা। এখানে MDM বা mobile device management system ফোনে নিয়ম প্রয়োগ করে। পুরো ধারণা আছে পর্ব ২৯ · Endpoint নিরাপত্তা-য়; মোবাইলের জন্য NIST SP 800-124 Rev. 2 (২০২৩) একটি ভালো নির্দেশিকা।

  • ন্যূনতম শর্ত: Screen lock, device encryption, সমর্থিত OS version, rooted ফোন নয়।
  • আলাদা ঘর: Work profile বা managed app অফিসের ডেটা আলাদা রাখে। প্রতিষ্ঠান ব্যক্তিগত ছবি বা বার্তায় হাত দেয় না।
  • হারালে: লিখিত ধাপ থাকুক: ফোন হারালে কাকে জানাবেন, কত দ্রুত account সরানো হবে, remote wipe কে করবেন।
  • সম্মতি আর গোপনীয়তা: ব্যক্তিগত ফোনে প্রতিষ্ঠান কী দেখবে, তা লিখিতভাবে জানান। অপ্রয়োজনীয় নজরদারি এড়ান। পরে পর্ব ৭০-এ privacy আলোচনা আসবে।
  • Detection: Compliance report, নতুন device-এর login, অস্বাভাবিক স্থান থেকে access নজরে রাখুন। মোবাইল লগইনও authentication-এর সাধারণ নিয়মে পড়ে।

৫ · IoT কেন এত দুর্বল

ফোনে প্রতি মাসে update আসে। কিন্তু দোকানের কোণের CCTV camera? সেটি দশ বছর দেয়ালে ঝুলে থাকে, আর কেউ মনেও রাখে না। IoT যন্ত্রের দুর্বলতা মূলত ব্যবসার কারণে তৈরি:

Default password

কারখানা থেকে সবগুলোতে একই default password. একবার জানা গেলে সব যন্ত্রে একই দরজা খোলে।

Blast radius বড়

Update নেই

সস্তা যন্ত্রে firmware update কম, বা ব্যবহারকারী জানেনই না।

পুরোনো ত্রুটি রয়ে যায়

লম্বা আয়ু

যন্ত্র চলে ১০ বছর, সহায়তা হয়তো ২ বছর। মাঝের বছরগুলো অরক্ষিত।

Support gap

একটি হিসাব। ৬ অঙ্কের সংখ্যার default PIN-এ সম্ভাবনা 106, মানে প্রায় ১৯.৯ bit. ছোট হাতের অক্ষর আর সংখ্যা মিলিয়ে ৮ ঘরের random password-এ 368 = 2,821,109,907,456, মানে প্রায় ৪১.৪ bit, প্রায় ২৮ লাখ গুণ বড়। কিন্তু আসল পার্থক্য এখানে নয়। সবার password এক হলে ১০,০০০ যন্ত্রের জন্য খুঁজতে হয় একটিই। Unique হলে একটি ফাঁস হলে ক্ষতি একটি যন্ত্রে থামে, ১০,০০০ থেকে ১-এ নেমে আসে। আর আয়ুর হিসাব: যন্ত্র ১০ বছর, support ২ বছর হলে (১০ − ২) ÷ ১০ = ৮০% সময় যন্ত্রটি security update ছাড়া চলবে।

Mirai, ২০১৬। Mirai ক্যামেরা, router আর DVR-এর মতো যন্ত্র দখল করে botnet বানিয়েছিল। প্রকাশিত গবেষণা (Antonakakis ও সহলেখকেরা, USENIX Security ২০১৭) অনুযায়ী সংক্রমিত যন্ত্র প্রায় ৬ লাখে পৌঁছায়, আর মূল সংস্করণ নির্ভর করেছিল অল্প কিছু default credential-এর ওপর। DDoS-এর দিকটি আছে পর্ব ২৮ · DDoS প্রতিরক্ষা-য়। এখানে শিক্ষা একটাই: কোনো জটিল ত্রুটি লাগেনি, দরকার ছিল শুধু খোলা দরজা। ব্যবস্থাপনার দুর্বলতা প্রযুক্তির দুর্বলতার সমান বিপজ্জনক।

OWASP IoT Top 10-এর সর্বশেষ প্রকাশিত সংস্করণ ২০১৮ সালের। পুরোনো হলেও তালিকাটি আজও প্রাসঙ্গিক; ২০২৬ সালের অক্টোবরে প্রকল্পের পাতায় নতুন সংস্করণের ঘোষণা পাওয়া যায়নি।

ক্রমঝুঁকিকী করবেন
I1Weak, Guessable, or Hardcoded PasswordsUnique credential
I2Insecure Network Servicesঅপ্রয়োজনীয় service বন্ধ
I3Insecure Ecosystem InterfacesWeb, API, cloud, mobile অংশ শক্ত করা
I4Lack of Secure Update MechanismSigned update, anti-rollback
I5Use of Insecure or Outdated ComponentsComponent-এর হিসাব, SBOM
I6Insufficient Privacy Protectionকম তথ্য সংগ্রহ
I7Insecure Data Transfer and Storageপথে ও ভাণ্ডারে encryption
I8Lack of Device ManagementInventory, update, প্রত্যাহার
I9Insecure Default SettingsSecure by default
I10Lack of Physical HardeningDebug port বন্ধ, tamper প্রতিরোধ

মান আর নিয়ম কী বলে

  • ETSI EN 303 645 (সর্বশেষ V3.1.3, ২০২৪): consumer IoT-র ভিত্তি মান। ১৩টি ভাগে নিয়ম আছে। প্রথমটিই “No universal default passwords”: password থাকলে তা প্রতি যন্ত্রে unique বা ব্যবহারকারীর ঠিক করা হবে। আরও আছে vulnerability report গ্রহণের প্রকাশিত নীতি আর ঘোষিত support period.
  • NIST IR 8259 (Rev. 1 চূড়ান্ত এপ্রিল ২০২৬): প্রস্তুতকারকের জন্য বাজারে আনার আগে ও পরের করণীয়। সহযোগী IR 8259A যন্ত্রের প্রযুক্তিগত ভিত্তি-সক্ষমতা বলে। এগুলো স্বেচ্ছায় মানার নির্দেশিকা।
  • আইন: UK-র PSTI শাসন (২৯ এপ্রিল ২০২৪ থেকে) দুর্বল default password নিষিদ্ধ করে আর update-এর মেয়াদ জানাতে বলে। EU-র Cyber Resilience Act (Regulation 2024/2847) ধাপে ধাপে কার্যকর হচ্ছে: reporting দায় ১১ সেপ্টেম্বর ২০২৬ থেকে, মূল দায় ১১ ডিসেম্বর ২০২৭ থেকে। এগুলো অন্য দেশের নিয়ম; বাংলাদেশে বিক্রি হওয়া যন্ত্রে নিজে থেকে প্রযোজ্য ধরে নেবেন না।

নিজের প্রতিষ্ঠানের যন্ত্রের হিসাব না থাকলে কিছুই শুরু করা যায় না। Asset inventory থেকেই শুরু। নিচের খেলনা audit একটি কাল্পনিক অফিসের তালিকা দেখে অগ্রাধিকার ঠিক করে। কোনো যন্ত্রে কোনো সংযোগ করে না।

// Toy IoT fleet audit of a fictional office. In-memory inventory, nothing is contacted.
const FLEET = [
  { id: "cam-gate",   type: "CCTV",    defaultPw: true,  fwDays: 900, exposed: true,  eol: false, zone: "office" },
  { id: "nvr-1",      type: "NVR",     defaultPw: false, fwDays: 500, exposed: true,  eol: false, zone: "office" },
  { id: "cam-store",  type: "CCTV",    defaultPw: false, fwDays: 60,  exposed: false, eol: false, zone: "iot" },
  { id: "printer-2",  type: "Printer", defaultPw: true,  fwDays: 700, exposed: false, eol: false, zone: "office" },
  { id: "tv-lobby",   type: "Smart TV",defaultPw: false, fwDays: 1500,exposed: false, eol: true,  zone: "guest" },
  { id: "door-lock",  type: "Lock",    defaultPw: false, fwDays: 2000,exposed: false, eol: true,  zone: "office" },
];

function assess(d) {
  const why = [];
  let score = 0;
  const add = (hit, pts, label) => { if (hit) { score += pts; why.push(label + " +" + pts); } };
  add(d.defaultPw, 40, "default password");
  add(d.exposed, 30, "reachable from internet");
  add(d.fwDays > 365, 15, "firmware over 1 year");
  add(d.eol, 25, "end of life");
  add(d.zone === "office", 10, "not isolated");
  // Toxic pairs: internet exposure plus an easy way in goes straight to the top.
  if (d.exposed && (d.defaultPw || d.fwDays > 365)) score = Math.max(score, 100);
  const action = score >= 80 ? "TODAY" : score >= 40 ? "THIS MONTH" : "ROUTINE";
  return { ...d, score, why, action };
}

const ranked = FLEET.map(assess).sort((a, b) => b.score - a.score);
for (const d of ranked) {
  console.log(String(d.score).padStart(3) + "  " + d.action.padEnd(11) + d.id);
  if (d.why.length) console.log("     " + d.why.join(", "));
}
const count = a => ranked.filter(d => d.action === a).length;
console.log("TODAY=" + count("TODAY") + " THIS MONTH=" + count("THIS MONTH") + " ROUTINE=" + count("ROUTINE"));

দুটি যন্ত্র TODAY. cam-gate-এর যোগফল ৪০ + ৩০ + ১৫ + ১০ = ৯৫, কিন্তু default password আর ইন্টারনেট-খোলা জোড়ায় নম্বর ১০০ করা হয়েছে। nvr-1-এর password ঠিক আছে, যোগফল মাত্র ৫৫, তবু পুরোনো firmware আর ইন্টারনেট-খোলা জোড়ায় সেও ১০০. শুধু যোগ করলে এটি printer-2-র 65-এর পেছনে পড়ে যেত, যদিও printer ইন্টারনেট থেকে দেখা যায় না। শেষ লাইন TODAY=2 THIS MONTH=3 ROUTINE=1 বলে দেয় কাজের মাপ। আর cam-store-এর 0 দেখায় আলাদা zone আর নতুন firmware-এর ফল। Audit-এর আসল কাজ ক্রম ঠিক করা, শুধু গণনা নয়।

৬ · Secure boot, signed firmware আর unique credential

পোস্ট অফিসের সিলমোহর ভাবুন। চিঠি কোথা থেকে এসেছে আর খোলা হয়েছে কি না, সিল দেখে বোঝা যায়। Secure boot ও একই কাজ করে: ক্ষুদ্র, বদলানো যায় না এমন শুরুর কোড আর তাতে থাকা root of trust পরের ধাপের সই দেখে, সে আবার পরেরটির। একে chain of trust বলে। Embedded দিকের আলোচনা পাবেন Microprocessors, Embedded Systems ও IoT কোর্সে।

নতুন firmware পৌঁছায় OTA update দিয়ে, মানে ইন্টারনেটের মাধ্যমে। এটি খুব সংবেদনশীল পথ, কারণ update হলো সব যন্ত্রে কোড চালানোর বৈধ দরজা। নিচে একটি খেলনা camera, যার চলতি version v1.3, anti-rollback counter 13.

Camera CAM-200-এর অবস্থা
Slot A
Slot B
Counter
যাচাই
  1. শুরু। Camera Slot A-তে v1.3 চালাচ্ছে। Device-এর ভেতরে প্রস্তুতকারকের public key আর counter 13 সুরক্ষিত।
  2. Manifest আনা। TLS-এ একটি manifest এলো: model, version, counter 14, ফাইলের hash আর সই। TLS পথ রক্ষা করে, কিন্তু আসল প্রমাণ হলো সই। Server দখল হলেও সই ছাড়া firmware চলবে না।
  3. সই যাচাই। Device নিজের কাছে থাকা public key দিয়ে manifest-এর সই দেখে। Digital signature-এর private key থাকে প্রস্তুতকারকের সুরক্ষিত ব্যবস্থায়, যন্ত্রে নয়।
  4. Model আর version. এই camera-র জন্যই তো? আর counter 14 কি 13-র চেয়ে বড়? সমান বা ছোট হলে anti-rollback নিয়মে বাতিল, কারণ পুরোনো বৈধ firmware-এ জানা ত্রুটি থাকতে পারে।
  5. ফাইল নামানো। চলতি Slot A-তে হাত না দিয়ে ফাঁকা Slot B-তে লেখা হয়। মাঝপথে বিদ্যুৎ গেলেও (load-shedding) camera বন্ধ হয়ে পড়ে থাকে না।
  6. Hash মেলানো। নামানো ফাইলের SHA-256 manifest-এর hash-এর সাথে মিলেছে। সই-করা manifest-এর hash, তাই এই মিলই ফাইলের প্রমাণ।
  7. Trial boot. Bootloader আবার সই দেখে B থেকে পরীক্ষামূলকভাবে চালায়। Secure boot চলবে প্রতিবার, শুধু update-এর সময় নয়।
  8. পাকা করা। Network, camera আর update পথ কাজ করছে দেখে B স্থায়ী, counter 14. ব্যর্থ হলে device নিজে A-তে ফিরত, counter 13-ই থাকত। সফল হলে A-র v1.3 আর চলবে না, তাই অনেক প্রস্তুতকারক শুধু নিরাপত্তা-সংশোধনের সময় counter বাড়ান।

এবার verifier-টি নিজে চালান। “সই” এখানে খেলনা, শুধু ধারণার জন্য। লক্ষ করুন, প্রতিটি নকল প্যাকেজ আলাদা নিয়মে আটকায়।

// Toy OTA verifier. The "signature" is a keyed FNV hash: real নয়, শুধু ধারণার জন্য.
function fnv(text) {
  let h = 0x811c9dc5;
  for (const ch of text) { h ^= ch.charCodeAt(0); h = Math.imul(h, 16777619) >>> 0; }
  return h.toString(16).padStart(8, "0");
}
const VENDOR_KEY = "example-vendor-key";     // in reality: a private key on the vendor side
const sign = (m, key) => fnv(key + "|" + m.model + "|" + m.counter + "|" + m.hash);

function release(model, counter, image, key = VENDOR_KEY) {
  const m = { model, counter, image, hash: fnv(image) };
  return { ...m, sig: sign(m, key) };
}
const device = { model: "CAM-200", counter: 13 };   // anti-rollback counter stored on device

function verify(p) {
  if (sign(p, VENDOR_KEY) !== p.sig) return "REJECT bad signature";
  if (fnv(p.image) !== p.hash) return "REJECT image hash mismatch";
  if (p.model !== device.model) return "REJECT wrong model";
  if (p.counter <= device.counter) return "REJECT rollback or replay";
  device.counter = p.counter;      // commit only after the new image boots well
  return "ACCEPT, counter now " + device.counter;
}

const good = release("CAM-200", 14, "fake-firmware-1.4");
const tampered = { ...good, image: "fake-firmware-1.4+extra" };
const stranger = release("CAM-200", 15, "fake-firmware-1.5", "example-other-key");
const old = release("CAM-200", 12, "fake-firmware-1.2");
const other = release("DVR-900", 20, "fake-firmware-9.0");
const faked = { ...old, counter: 99 };   // attacker edits the version number

for (const [name, pkg] of [["tampered", tampered], ["wrong key", stranger], ["fake counter", faked],
    ["good 1.4", good], ["replay 1.4", good], ["old 1.2", old], ["other model", other]]) {
  console.log(name.padEnd(13) + verify(pkg));
}

tampered পেয়েছে REJECT image hash mismatch: সই ঠিক, কিন্তু ফাইল বদলেছে। fake counter-এ REJECT bad signature, কারণ সই version-ও ঢাকে। সই শুধু ফাইলের ওপর হলে কেউ পুরোনো ফাইলে নতুন নম্বর লিখে দিতে পারত। good 1.4 পেল ACCEPT, counter now 14. একই প্যাকেজ আবার পাঠালে replay 1.4 আর সই-সহ পুরোনো old 1.2 দুটোই REJECT rollback or replay. বৈধ সই থাকলেও পুরোনো firmware চলবে না, এটাই anti-rollback-এর মূল শিক্ষা। আসল ব্যবস্থায় থাকে public key signature, যেমন Ed25519 বা ECDSA (পর্ব ১০); এখানকার FNV নিরাপদ নয়।

Hash আর সইয়ের পার্থক্যটি হাতে-কলমে দেখুন। নিচের Python কোড আসল SHA-256 ব্যবহার করে, তবে firmware-টি নকল bytes.

# Real SHA-256 check on a fake firmware image built in memory (no file, no network).
import hashlib
import hmac

image = b"FAKE-FW-1.4 " + bytes(range(256)) * 16
published = hashlib.sha256(image).hexdigest()   # the value the vendor would publish
print("image size :", len(image), "bytes")
print("published  :", published)

def check(name, data):
    got = hashlib.sha256(data).hexdigest()
    ok = hmac.compare_digest(got, published)
    same = sum(a == b for a, b in zip(got, published))
    print(f"{name:<12} {'PASS' if ok else 'FAIL'}  matching hex digits: {same}/64")

# 1. the untouched download
check("original", image)

# 2. one single bit flipped near the end
flipped = bytearray(image)
flipped[-1] ^= 0x01
check("1 bit flip", bytes(flipped))

# 3. a truncated download
check("truncated", image[:-100])

# 4. a small device hashes in chunks, so it needs little RAM; the result is the same
h = hashlib.sha256()
for i in range(0, len(image), 512):
    h.update(image[i:i + 512])
print("chunked same:", h.hexdigest() == published)

Image 4108 bytes. original ঠিকঠাক PASS, 64/64. মাত্র একটি bit বদলালে 1 bit flip FAIL matching hex digits: 2/64: প্রায় পুরো digest বদলে যায়। এটি avalanche effect (পর্ব ৯)। truncated-ও FAIL, তাই অসম্পূর্ণ download ধরা পড়ে। chunked same: True দেখায় ছোট যন্ত্র অল্প RAM-এ টুকরো করে hash করলেও ফল একই। কিন্তু সীমাটি মনে রাখুন: যে ফাইল বদলাতে পারে, একই server-এ থাকলে সে hash-ও বদলাতে পারে। Hash বলে “ফাইল মিলেছে”, সই বলে “কে অনুমোদন করেছে।” তাই দুটিই লাগে।

# নিজের নামানো firmware ফাইলের digest দেখুন, তারপর প্রকাশকের সই-করা মানের সাথে মেলান
sha256sum firmware-1.4.bin

Unique credential: ভালো নকশায় প্রতিটি যন্ত্র কারখানায় নিজের key বা certificate পায়, secure element-এ রাখা। সব যন্ত্রে এক গোপন key থাকলে একটি যন্ত্র খুলে key পেলেই পুরো fleet ঝুঁকিতে পড়ে। প্রথম চালুর সময় password বদল বাধ্য করাও গ্রহণযোগ্য পথ।

৭ · CCTV আর smart device আলাদা রাখুন

যন্ত্রকে আপনি পুরো শক্ত করতে পারবেন না। Firmware আপনার হাতে নেই। তাই ধরে নিন যন্ত্রটি একদিন দুর্বল হবেই, আর তার ক্ষতির পরিধি ছোট রাখুন। এটি পর্ব ২২ · Firewall আর segmentation-এর সরাসরি প্রয়োগ। ছোট অফিস বা বাসার router-এ VLAN না থাকলেও guest network দিয়ে শুরু করা যায়; দেখুন পর্ব ২৭.

এখন একটি কাল্পনিক অফিসের flat network-কে ধাপে ধাপে ভাগ করি। অফিসের কম্পিউটার 192.0.2.0/24-এ, আর camera যাবে নতুন VLAN 30-এ, 198.51.100.0/24. (ঠিকানাগুলো নথিতে ব্যবহারের জন্য সংরক্ষিত।) NVR হলো ভিডিও রেকর্ড করার যন্ত্র। পরিবর্তনগুলো শুধু নিজের network-এ করুন, কাজের সময়ের বাইরে।

কে কার কাছে পৌঁছাতে পারে
Office PC → NVR
Camera → Office PC
Internet → NVR
Camera/NVR → Internet
  1. শুরু: সব এক ঘরে। Camera, NVR, হিসাবের PC, printer সব 192.0.2.0/24-এ। একটি camera দখল হলে পুরো অফিস তার নাগালে।
  2. Inventory. প্রতিটি camera-র মডেল, IP, firmware আর মালিক লিখুন। Router-এর port forward তালিকা দেখুন। এখনও কিছু বদলায়নি।
  3. VLAN 30 তৈরি। নতুন network তৈরি হলো, কিন্তু কোনো যন্ত্র সরেনি। তাই reachability আগের মতোই।
  4. যন্ত্র সরানো। Camera আর NVR VLAN 30-এ গেল। ঠিকানা আলাদা হলেও router এখনও দুই network-এর মধ্যে সব পাঠাচ্ছে। শুধু VLAN বানালে আলাদা হয় না, firewall নিয়মও লাগে।
  5. Default deny. VLAN 30 আর অফিসের মধ্যে সব বন্ধ। এখন camera PC দেখতে পায় না। PC-ও NVR দেখতে পায় না, তাই ভিডিও দেখা সাময়িক বন্ধ।
  6. ঠিক যেটুকু দরকার। শুধু নিরাপত্তা-কর্মীর viewer PC থেকে NVR-এর HTTPS port 443 খোলা হলো। এটি least privilege.
  7. ইন্টারনেটের দরজা বন্ধ। Router-এর port forward মুছুন, UPnP বন্ধ করুন। দূর থেকে দেখতে VPN ব্যবহার করুন।
  8. বাইরে যাওয়া সীমিত। Camera-র ইন্টারনেট বন্ধ। NVR শুধু অনুমোদিত সময়-সার্ভার আর update ঠিকানায়। এতে দখল হওয়া যন্ত্র Mirai-র মতো হামলায় কম কাজে লাগে; একে egress filtering বলে।
  9. পরীক্ষা ও নজর। ভিডিও চলে কি না দেখুন, অন্য PC থেকে NVR খোলে না নিশ্চিত হোন। Firewall log নিয়মিত পড়ুন। নিয়ম বদলের কারণ লিখে রাখুন।
title: CCTV VLAN traffic outside the approved destination list
status: experimental
logsource:
  category: firewall
detection:
  selection:
    src_ip|cidr: 198.51.100.0/24
    action: allow
  approved:
    dst_ip|cidr: 203.0.113.10/32
  condition: selection and not approved
falsepositives:
  - Firmware update server address changed by the vendor
level: high

এই Sigma-ধরনের নিয়মটি ধরিয়ে দেয় camera VLAN থেকে অনুমোদিত তালিকার বাইরে কোনো সংযোগ হলে। IoT-তে এটি খুব ভালো সংকেত, কারণ যন্ত্রের আচরণ ছোট আর স্থির: একটি camera সাধারণত কয়েকটি ঠিকানার সাথেই কথা বলে। হঠাৎ নতুন গন্তব্য, অনেক বেশি outbound traffic বা অদ্ভুত DNS নাম দেখলে তদন্ত করুন। Sigma-র বিস্তারিত আসবে পর্ব ৫৬-তে।

গোপনীয়তাও নিরাপত্তা: CCTV-তে মানুষের ছবি থাকে। Recording কে দেখবে, কতদিন থাকবে, তা ঠিক করুন আর log রাখুন। ভেতরের camera ইন্টারনেটে খোলা থাকা মানে শুধু যন্ত্রের ঝুঁকি নয়, মানুষের সম্মানের ঝুঁকি।

৮ · OT আর ICS: আগে মানুষের নিরাপত্তা

OT বা operational technology হলো যে প্রযুক্তি কারখানা, বিদ্যুৎ, পানি বা গ্যাসের ভৌত যন্ত্র চালায়। তার একটি ভাগ ICS, যেখানে PLC আর SCADA কাজ করে। একটি গার্মেন্টসের বয়লার বা পানির পাম্প ভাবুন। এখানে ভুল হলে শুধু ডেটা নয়, মানুষের প্রাণ ঝুঁকিতে পড়ে।

Purdue model: স্তরে স্তরে ভাগ

A simplified Purdue model with an industrial DMZ between IT and OT

Purdue model: IT, IDMZ আর OT স্তর Level 5 · Enterprise network ইন্টারনেট-মুখী সেবা Level 4 · Business ERP, ইমেইল, অফিসের PC Level 3.5 · IDMZ: সরাসরি পথ নেই Level 3 · Site operations, historian Level 2 · তদারকি: SCADA, HMI Level 1 · নিয়ন্ত্রণ: PLC Level 0 · সেন্সর, ভালভ, মোটর
ছবি ৩৫.২ — ওপরের দিকে তথ্য, নিচের দিকে ভৌত কাজ। প্রকাশনাভেদে স্তরের নাম সামান্য আলাদা হয়।

Purdue model ১৯৯০-এর দশকের Purdue Enterprise Reference Architecture থেকে এসেছে। নিরাপত্তায় মূল চিন্তা হলো IT আর OT-র মাঝে IDMZ রাখা, যাতে অফিসের PC সরাসরি PLC-র কাছে না যায়। মডেলটি নিখুঁত নয়; cloud আর industrial IoT-র যুগে অনেক যন্ত্র সরাসরি ওপরের স্তরে কথা বলে। মডেলটি ভাগ বোঝায়, পুরো নকশা দেয় না।

  • অগ্রাধিকার ভিন্ন: NIST SP 800-82 Rev. 3 (২০২৩)-এর মতো নির্দেশিকায় OT-তে আগে safety, তারপর availability, integrity, confidentiality. IT-র চেনা CIA ক্রম এখানে উল্টে যায়।
  • Patch ধীরে: Plant বন্ধ করা ব্যয়বহুল, আর patch পরীক্ষা না করে দিলে উৎপাদন বা নিরাপত্তা ঝুঁকিতে পড়তে পারে।
  • Active scan নয়: OT যন্ত্র অস্বাভাবিক traffic-এ থেমে যেতে পারে। অনুমতি থাকলেও passive monitoring আর বিশেষজ্ঞের পরিকল্পনা ছাড়া scan করবেন না।
  • Safety system আলাদা: Safety instrumented system-কে সাধারণ নিয়ন্ত্রণ network থেকে আলাদা রাখুন। IEC 62443 এই শিল্পের প্রধান মান পরিবার।

৯ · কেনার চেকলিস্ট আর যন্ত্রের বিদায়

সবচেয়ে সস্তা নিরাপত্তা কেনার সময়েই পাওয়া যায়। দোকানে বা online-এ দাম দেখার আগে এই প্রশ্নগুলো করুন:

End-of-life: যন্ত্রের বিদায়

প্রতিটি যন্ত্রের end-of-life আছে। Support শেষ হওয়া মানে নতুন ত্রুটি আর ঠিক হবে না। তিনটি পথ: বদলানো, আলাদা করে রেখে দেওয়া, অথবা ঝুঁকি মেনে নিয়ে লিখে রাখা (legacy ক্ষেত্রে)।

  • যন্ত্র চলে গেলে: Factory reset করুন, cloud account থেকে সরান, Wi-Fi password বদলান যদি যন্ত্রে সংরক্ষিত ছিল, আর inventory থেকে মুছুন।
  • বিক্রি বা ফেলার আগে: Camera বা NVR-এর ভেতরের storage মুছুন। পুরোনো router, ফোন বা drive-এ পুরোনো password আর ছবি থাকতে পারে।
  • ফোনের ক্ষেত্রে: Account থেকে বের হন, activation lock বা factory reset protection সরান, SIM আর memory card খুলে রাখুন।

আরও গভীরে: Key তৈরি হওয়ার পর “এটি সত্যিই secure hardware-এ আছে” তা প্রমাণ করতে Android-এর key attestation Google-এর root থেকে আসা certificate chain দেয়। Firmware update-এর সাধারণ কাঠামোর জন্য IETF-এর SUIT কাজ (RFC 9019, ২০২১) দেখতে পারেন। বড় fleet-এ update একসাথে নয়, ধাপে ধাপে ছাড়া হয়, যাতে ভুল firmware সব যন্ত্র বন্ধ না করে।

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

  • Hash আর signature-এর পার্থক্য কী? Hash বদল ধরে, signature বলে কে অনুমোদন করেছে।
  • Anti-rollback কেন? পুরোনো বৈধ firmware-এর জানা ত্রুটিতে ফেরানো ঠেকাতে।
  • App-এ API secret রাখা যাবে? না। Secret server-এ, app-এ স্বল্পমেয়াদি token.
  • Pinning কখন বিপজ্জনক? Key বদলে backup pin না থাকলে পুরোনো app বন্ধ হয়ে যায়।
  • OT-র অগ্রাধিকার IT থেকে কীভাবে আলাদা? Safety আর availability আগে, confidentiality পরে।

১০ · AI-এর যুগে mobile আর IoT নিরাপত্তা

AI app-এর কোড আর firmware script দ্রুত লিখে দেয়। কিন্তু এই ক্ষেত্রে কিছু ভুল বারবার দেখা যায়, যা চোখে পড়ে না।

AI-এর ভুলকেন বিপজ্জনককীভাবে যাচাই
TLS error ঠিক করতে certificate যাচাই বন্ধ (verify=False-এর মতো) করতে বলেMITM-এর দরজা খোলেError-এর কারণ খুঁজুন, যাচাই কখনো বন্ধ নয়
API key কোডে বসিয়ে দেয়App থেকে বের করা যায়Diff পড়ুন, secret scanning চালান
সব permission দিয়ে দিতে বলেLeast privilege ভাঙেপ্রতিটি অনুমতির কারণ লিখুন
Firmware যাচাইয়ে MD5 বা শুধু checksumসই ছাড়া পরিচয় প্রমাণ হয় নাPublic key signature আর anti-rollback আছে কি না দেখুন
নকল CVE বা মানের ধারা বলেভুল সিদ্ধান্তপ্রাথমিক উৎস পড়ুন: OWASP, ETSI, NIST, প্রকাশকের নোট
পুরোনো Android বা iOS API বলেDeprecated পরামর্শবর্তমান অফিসিয়াল ডকুমেন্টেশন মেলান

AI-কে রক্ষকের সহকারী হিসেবে ব্যবহার করুন। আসল key, ফোন নম্বর, serial বা গ্রাহকের ডেটা prompt-এ দেবেন না; আগে মুছে নিন।

তুমি একজন mobile security reviewer. নিচের Android manifest-এর permission তালিকা আর নিরাপত্তা-সংক্রান্ত সেটিং দেখো (secret মুছে দেওয়া হয়েছে)। আমার app-এর কাজ: [এখানে কাজ লিখুন]। ১. প্রতিটি permission কেন দরকার বা অপ্রয়োজনীয়, সারণিতে দেখাও। ২. OWASP Mobile Top 10 (২০২৪)-এর কোন ঝুঁকি মিলছে, তার নাম বলো। অনিশ্চিত হলে "নিশ্চিত নই" লেখো। ৩. প্রতিটি পরামর্শের জন্য যে অফিসিয়াল ডকুমেন্টেশন পড়া উচিত তার নাম বলো। ৪. কোনো সুরক্ষা বন্ধ করার পরামর্শ দিও না। CVE নম্বর বানিয়ো না।

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

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

প্র ০১Sandbox এত শক্ত হলে নকল app কীভাবে ক্ষতি করে? দোষ কি ব্যবহারকারীর?

Sandbox যে হামলা ঠেকাতে তৈরি, তা হলো এক app-এর অন্য app-এর জগতে জোর করে ঢোকা। সেখানে এটি বেশ শক্ত। আধুনিক ফোনের kernel স্তরের ত্রুটি কাজে লাগানো কঠিন আর দামি। তাই প্রতারকেরা সস্তা পথ বেছে নেন: দেয়াল না ভেঙে ব্যবহারকারীকে দিয়ে দরজা খোলানো। অনুমতি দিলে app বৈধভাবেই SMS পড়ে। এটি কোনো ত্রুটি নয়, নকশামাফিক আচরণ।

Android-এর ইতিহাস এই লড়াই দেখায়। শুরুর দিকে সব অনুমতি install-এর সময় একবারে হ্যাঁ বলতে হতো, যা মানুষ না পড়েই মেনে নিত। Android 6 (২০১৫) runtime permission আনে। পরে এলো এক-বারের অনুমতি, অব্যবহৃত app-এর অনুমতি সরানো। Android 13-এ Restricted settings আসে, কারণ accessibility-র অপব্যবহার বড় হয়ে উঠছিল। প্রকাশিত প্রতিবেদন বলে Android 15-এ এই সীমা আরও বিস্তৃত হয়েছে। প্রতিটি পদক্ষেপ প্রমাণ করে, ব্যবহারকারীর সিদ্ধান্তের ওপর পুরো ভার রাখা যায় না।

Accessibility-র ক্ষেত্রে দ্বন্দ্বটি সবচেয়ে কঠিন। দৃষ্টি-প্রতিবন্ধী ব্যবহারকারীর জন্য এটি অপরিহার্য। পুরো বন্ধ করলে সবচেয়ে অসহায় মানুষের ক্ষতি। তাই সমাধান হলো উৎস দেখে কড়াকড়ি, পুরোপুরি নিষেধ নয়।

দায় শুধু ব্যবহারকারীর নয়। ঋণের জন্য মরিয়া একজন মানুষ, স্বল্প ডিজিটাল অভিজ্ঞতা, ছোট পর্দায় তাড়াহুড়া: সবই তাঁকে দুর্বল করে। সেবাদাতার উচিত অস্বাভাবিক লেনদেন আটকানো, নতুন device-এ বাড়তি যাচাই রাখা, আর SMS OTP-র ওপর পুরো ভরসা না করা। OS নির্মাতার উচিত ঝুঁকিপূর্ণ অনুমতি কঠিন করা। Store-এর উচিত নকল app দ্রুত সরানো।

মূল উপলব্ধি: ভালো নিরাপত্তা নকশা ধরে নেয় মানুষ ভুল করবে। ক্ষতি ঠেকাতে একাধিক স্তর রাখে, যাতে একটি ভুল সিদ্ধান্তে সব শেষ না হয়।

প্র ০২Certificate pinning তো নিরাপত্তা বাড়ায়, তবু Android-এর নির্দেশিকা কেন একে সুপারিশ করে না?

Pinning-এর লাভ পরিষ্কার। ফোনে অনেক certificate authority-র ওপর বিশ্বাস থাকে; কোনো একটি ভুল করলে ভুয়া certificate তৈরি হতে পারে। Pinning বলে, “আমি শুধু এই key চিনি।” এতে বিশ্বাসের পরিসর ছোট হয়। এটি উচ্চ-ঝুঁকির app-এর জন্য আকর্ষণীয়।

কিন্তু ঝুঁকিটি হলো নিজের availability. Server-এর key বা CA বদলালে, অথবা জরুরি অবস্থায় key বদলাতে হলে, পুরোনো pin থাকা app সংযোগ হারায়। ব্যবহারকারী update না নিলে ঠিকও হয় না। মানে আপনি নিজের হাতে নিজের সেবা বন্ধ করে দিতে পারেন। Android-এর নির্দেশিকা ঠিক এই কারণে সতর্ক করে, আর একান্ত দরকার হলে একাধিক backup pin, অন্তত একটি নিজের নিয়ন্ত্রণের key আর স্বল্প মেয়াদের কথা বলে।

Web-এর ইতিহাস এখানে শিক্ষণীয়। HTTP Public Key Pinning (HPKP) browser-এ pinning আনতে চেয়েছিল। ভুল কনফিগারেশনে সাইট দীর্ঘদিন বন্ধ হয়ে যাওয়ার ঝুঁকি দেখে Chrome-সহ browser-গুলো এটি সরিয়ে দেয়। তার বদলে Certificate Transparency জনপ্রিয় হয়, যা ভুল certificate আটকায় না কিন্তু প্রকাশ্য log-এ ধরা পড়তে সাহায্য করে (পর্ব ১১ দেখুন)।

আরেকটি ভুল ধারণা: pinning অনেকে app-এর traffic লুকানোর ব্যবস্থা ভাবেন। ফোনের মালিক নিজের যন্ত্রে সব দেখতে পারেন, তাই গোপন secret রাখার জায়গা হিসেবে এটি কাজ করে না।

বিচারের কাঠামো: আপনার threat model-এ ভুয়া certificate কতটা বাস্তব? App update কত দ্রুত ছড়ায়? Key বদলের মহড়া আছে? সাধারণ app-এ সঠিক TLS যথেষ্ট; ব্যাংকের মতো app-এ backup pin, মেয়াদ আর remote বন্ধ করার পরিকল্পনাসহ pin বিবেচ্য।

মূল উপলব্ধি: নিরাপত্তার প্রতিটি নিয়ন্ত্রণের দাম থাকে। যে control availability নষ্ট করতে পারে, তা চালুর আগে তার rollback পরিকল্পনা লাগে।

প্র ০৩Mirai-র পর default password নিষিদ্ধ হতে কয়েক বছর লাগল কেন? বাজার নিজে সমস্যা মেটায়নি কেন?

Mirai ২০১৬ সালে দেখাল সমস্যা কত বড়। অথচ সমাধান প্রযুক্তিগতভাবে সহজ: প্রতিটি যন্ত্রে আলাদা password. তবু কেন দেরি? কারণ এটি প্রযুক্তির নয়, অর্থনীতির সমস্যা।

অর্থনীতিতে একে negative externality বলে। সস্তা camera কিনে ক্রেতা টাকা বাঁচান। সেই camera দখল হয়ে অন্যের সাইটে হামলা করলে ক্ষতি হয় তৃতীয় পক্ষের, ক্রেতা হয়তো জানেনই না। প্রস্তুতকারকও দাম দেন না। দোকানে দুটি camera পাশাপাশি রাখলে কোনটি নিরাপদ, ক্রেতা দেখতে পান না। এই তথ্যের অসমতা থাকলে দাম কমই জেতে। অদৃশ্য নিরাপত্তায় খরচ করলে বাজারে পিছিয়ে পড়তে হয়।

তাই ধীরে ধীরে নিয়ম এলো। California-র SB-327 (২০২০ সাল থেকে কার্যকর) ইন্টারনেট-সংযুক্ত যন্ত্রে যুক্তিসঙ্গত নিরাপত্তা চায়, password-এর জন্য unique বা প্রথমে বদলের শর্ত দেয়। ETSI ২০১৯-এ TS 103 645 আর ২০২০-এ EN 303 645 প্রকাশ করে, এখন V3.1.3. UK-র PSTI ২৯ এপ্রিল ২০২৪ থেকে কার্যকর। EU-র Cyber Resilience Act পরের ধাপ, যা support আর vulnerability-র দায়িত্ব প্রস্তুতকারকের ওপর রাখে। NIST-ও তার IR 8259 সিরিজ হালনাগাদ করেছে।

তবু আইন সব সমাধান করে না। Default password নিষিদ্ধ হলেও পুরোনো যন্ত্র রয়ে যায়। বাজারে যাচাইহীন আমদানি পণ্যও থাকতে পারে। আর password ঠিক করলেই নতুন ত্রুটি বন্ধ হয় না; Mirai-র পরের অনেক সংস্করণ অন্য দুর্বলতাও ব্যবহার করেছে বলে প্রকাশিত গবেষণায় আছে। একটি বড় প্রতিষ্ঠান কেনার শর্তে এসব মান লিখলেও বাজারে চাপ তৈরি হয়।

মূল উপলব্ধি: ক্ষতির দাম যে দেয় না, সে নিরাপত্তায় বিনিয়োগ করে না। তাই নিরাপত্তা শুধু প্রকৌশল নয়, দায়িত্বের বণ্টনও। ক্রেতা হিসেবে আপনার প্রশ্নও সেই চাপের অংশ।

প্র ০৪Support শেষ হওয়া ৫০টি CCTV camera পুরোপুরি বদলানোর বাজেট নেই। আপনি কী করবেন?

এটি বাস্তব প্রতিষ্ঠানের খুব সাধারণ সমস্যা। “সব বদলান” সঠিক কিন্তু অকেজো উপদেশ। রক্ষকের কাজ হলো ঝুঁকি মাপা, কমানো আর যা থাকে তা স্বীকার করা।

প্রথমে তালিকা করুন: কোন camera কোথায়, কী ধরে, কে ব্যবহার করে। গেটের camera আর পরিচালকের কক্ষের camera-র গুরুত্ব আলাদা। ভেতরের camera, শব্দ রেকর্ড করা camera বা ইন্টারনেটে খোলা NVR আগে ধরুন।

তারপর compensating control, মানে সরাসরি সমাধান না থাকলে বিকল্প সুরক্ষা। আলাদা VLAN, ইন্টারনেট পুরো বন্ধ, NVR-এর সামনে firewall, শুধু একটি viewer PC থেকে access, দূর থেকে দেখা VPN-এর মাধ্যমে, unique password. Firmware যতটা সর্বশেষ পাওয়া যায় বসান, তবে শুধু অফিসিয়াল উৎস থেকে। অজানা ওয়েবসাইটের “উন্নত firmware” নয়। এগুলো করলে অনেক ঝুঁকি কমে, আর খরচ তুলনামূলক কম।

এরপর লিখিত residual risk: কী ঝুঁকি রয়ে গেল, কে মেনে নিলেন, কবে আবার দেখা হবে। মালিক স্বাক্ষর না করলে দায় অস্পষ্ট থাকে। তারপর ধাপে ধাপে বদল: প্রতি বছর ১৫টি, ঝুঁকির ক্রম অনুযায়ী, সাথে নতুন কেনার শর্ত।

একটি সূক্ষ্ম ঝুঁকিও ভাবুন। পুরোনো যন্ত্রের ভেতরের certificate বা cloud সেবা একদিন মেয়াদ শেষ হয়ে বন্ধ হতে পারে। তখন যন্ত্র চলতে পারে, কিন্তু update পথ বা remote view হঠাৎ অচল। প্রস্তুতকারক কোম্পানি বন্ধ হলেও একই বিপদ। Detection যোগ করুন: VLAN 30-এর log-এ নতুন গন্তব্য দেখলে তদন্ত।

মূল উপলব্ধি: নিরাপত্তা “নিখুঁত বা কিছুই না” নয়। ঝুঁকি কমান, ক্ষতির পরিধি ছোট রাখুন, যা বাকি রইল তা লিখুন, আর দায়িত্ব নির্দিষ্ট মানুষের হাতে রাখুন।

প্র ০৫OT network-এ IT-র নিয়ম হুবহু চালালে কী বিপদ? Air gap কি যথেষ্ট?

অফিসে একটি server এক ঘণ্টা বন্ধ থাকলে কাজ থামে। কারখানার নিয়ন্ত্রণ-ব্যবস্থায় হঠাৎ reboot হলে চুল্লি, বয়লার বা রাসায়নিক প্রক্রিয়ায় বিপদ তৈরি হতে পারে। তাই ফলাফল আলাদা। IT-র “দ্রুত patch, বারবার restart, active scan” অভ্যাস OT-তে ক্ষতিকর হতে পারে। পুরোনো PLC অপ্রত্যাশিত traffic-এ আটকে যেতে পারে। Patch-এর আগে vendor-এর অনুমোদন, পরীক্ষা আর পরিকল্পিত বন্ধের সময় লাগে।

Air gap মানে OT-কে বাইরের network থেকে পুরো আলাদা রাখা। শুনতে নিরাপদ, কিন্তু ইতিহাস অন্য কথা বলে। ২০১০ সালে প্রকাশ্যে আসা Stuxnet-এর প্রকাশিত বিশ্লেষণে দেখা যায়, বিচ্ছিন্ন পরিবেশেও পোর্টেবল মাধ্যমে পৌঁছানো সম্ভব। এছাড়া বাস্তবে “বিচ্ছিন্ন” network-এ প্রায়ই vendor-এর remote সংযোগ, report পাঠানোর পথ বা রক্ষণাবেক্ষণের laptop থাকে।

আরও কিছু প্রকাশিত ঘটনা। ২০১৫ সালে ইউক্রেনের বিদ্যুৎ বিতরণে সাইবার হামলায় বহু গ্রাহক বিদ্যুৎ হারান। ২০১৭ সালে TRITON নামে একটি malware নিয়ে প্রতিবেদন আসে, যা safety instrumented system-কে লক্ষ্য করেছিল; এখানে সরাসরি মানুষের সুরক্ষার স্তর ঝুঁকিতে পড়ে। ২০২১ সালের Colonial Pipeline ঘটনায় প্রকাশিত তথ্য অনুযায়ী ransomware IT দিকে আঘাত করে, আর কোম্পানি সতর্কতা হিসেবে pipeline চলাচল বন্ধ করে। অর্থাৎ IT-র ঘটনাও ভৌত সেবা থামাতে পারে, যদি নির্ভরতা বোঝা না থাকে।

তাহলে করণীয়? IT আর OT-র মাঝে IDMZ, যন্ত্র ও সংযোগের হিসাব, vendor access সময়-সীমিত ও নজরদারিতে, passive monitoring, পরীক্ষিত backup, আর হাতে চালানোর পরিকল্পনা। IT আর OT প্রকৌশলীরা একসাথে মহড়া দিন।

মূল উপলব্ধি: নিরাপত্তার control আগে সেই প্রক্রিয়ার ঝুঁকি বুঝবে, তারপর কাজ করবে। OT-তে প্রথম প্রশ্ন “ডেটা নিরাপদ কি?” নয়, “মানুষ আর যন্ত্র নিরাপদ কি?”

অনুশীলন

সব কাজ নিজের যন্ত্রে বা কাগজে করুন। অন্যের যন্ত্রে পরীক্ষা করবেন না।

  1. হিসাব: একটি কাল্পনিক camera মডেলের ২০,০০০ ইউনিট বিক্রি হয়েছে। (ক) ৪ অঙ্কের সংখ্যার PIN হলে সম্ভাব্য মান কত, কত bit? (খ) সব ইউনিটে একই PIN ফাঁস হলে কতটি ঝুঁকিতে, আর unique হলে একটি ফাঁসে কতটি? (গ) যন্ত্রের আয়ু ৮ বছর, support ৩ বছর হলে কত শতাংশ সময় update ছাড়া?

    (ক) 104 = ১০,০০০; log2(১০,০০০) ≈ ১৩.৩ bit. (খ) একই PIN হলে ২০,০০০টিই ঝুঁকিতে; unique হলে ১টি। (গ) (৮ − ৩) ÷ ৮ = ৬২.৫%. শেষ দুটি সংখ্যা দেখায়, দৈর্ঘ্যের চেয়ে uniqueness আর support-এর সিদ্ধান্ত কেন বড়।

  2. নকশা সমালোচনা: একটি কাল্পনিক delivery app-এর নকশা: map API key কোডে, login token plain ফাইলে, debug-এর জন্য certificate যাচাই বন্ধ, “admin” কি না app নিজে ঠিক করে। চারটি ভুল OWASP Mobile Top 10-এ মিলিয়ে ঠিক করুন।

    Key: M1. Secret server-এ রাখুন; যে key app-এ রাখতেই হয়, তা সীমিত করুন আর bundle ID-র মতো শর্তে বেঁধে দিন। Token: M9. Keystore বা Keychain-এর key দিয়ে encrypt করুন, স্বল্পমেয়াদি রাখুন। TLS: M5. যাচাই কখনো বন্ধ নয়; test-এ নিজের CA শুধু debug build-এ, Network Security Config দিয়ে। Admin: M3. Authorization server-এ, প্রতিটি অনুরোধে। M8-এর দিকেও লক্ষ রাখুন, কারণ debug সেটিং release-এ যাওয়া misconfiguration.

  3. ফল অনুমান করুন: Device-এর counter 20. সব প্যাকেজের model ঠিক। ক্রমে আসে: (১) বৈধ সই, counter 21. (২) বৈধ সই, counter 19. (৩) ভুল সই, counter 30. (৪) বৈধ সই, counter 21. (৫) বৈধ সই, counter 25 কিন্তু ফাইল বদলানো, hash মেলে না। (৬) বৈধ সই, counter 22. নিয়ম: সই, hash, তারপর counter বড় হতে হবে; সফল হলে counter হালনাগাদ। শেষে counter কত? কতটি গৃহীত?

    (১) গৃহীত, counter 21. (২) rollback, বাতিল। (৩) সই ভুল, বাতিল। (৪) 21 বড় নয়, replay হিসেবে বাতিল। (৫) hash ভুল, বাতিল। (৬) 22 > 21, গৃহীত। শেষ counter 22, গৃহীত ২টি। লক্ষ করুন, (৩) আর (৫)-এর বড় নম্বর counter বদলাতে পারেনি, কারণ যাচাই আগে হয়।

  4. নিজের ফোন audit: Settings খুলে তিনটি তালিকা দেখুন: যে app-গুলোর accessibility আছে, যেগুলো অন্য app-এর ওপরে দেখাতে পারে, আর যেগুলো অজানা app install করতে পারে। আপনার router-এ port forward বা UPnP চালু আছে কি না দেখুন।

    প্রতিটি app-এর জন্য প্রশ্ন করুন: কাজ কী, অনুমতি কেন, শেষ কবে ব্যবহার করেছি? না চিনলে অনুমতি সরান বা app মুছুন। Password manager বা screen reader-এর accessibility থাকা স্বাভাবিক হতে পারে। Accessibility-তে অচেনা নাম থাকলে সাবধান। Router-এ যে port forward চেনেন না, সেটি নোট করে বন্ধ করুন, তারপর যাচাই করুন কিছু বন্ধ হলো কি না। কাজটি একবার নয়, প্রতি কয়েক মাসে করার মতো অভ্যাস।

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

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

ক্রমনিরাপদ OTA update-এর ধাপগুলো সঠিক ক্রমে সাজান (▲▼ চেপে সরান)

  1. TLS-এ update-এর manifest আনা
  2. Device-এর public key দিয়ে manifest-এর সই যাচাই
  3. Model আর anti-rollback counter মেলানো
  4. ফাঁকা slot-এ firmware নামানো আর hash মেলানো
  5. Bootloader-এর সই যাচাই আর trial boot
  6. Health check পাস হলে slot পাকা আর counter বাড়ানো

একটি torch app contacts আর SMS পড়ার অনুমতি চাইছে। সবচেয়ে ভালো সিদ্ধান্ত কোনটি?

  • অনেক review আছে, তাই অনুমতি দেওয়া
  • অনুমতি অস্বীকার করা বা app বাদ দেওয়া
  • Sandbox আছে, তাই অনুমতি দিলেও কিছু হবে না
  • অনুমতি দিয়ে ফোন restart করা

Android app-এ code signing আসলে কী নিশ্চিত করে?

  • App-টি ক্ষতিকর নয়
  • App-এর সব data encrypt থাকে
  • কে সই করেছে আর সইয়ের পর বদলেছে কি না
  • Google-এর অনুমোদিত app

Mobile app-এ payment API-র secret রাখার সবচেয়ে ভালো নকশা কোনটি?

  • Secret শুধু server-এ, app স্বল্পমেয়াদি session দিয়ে server-কে ডাকে
  • Secret-কে obfuscate করে app-এ রাখা
  • Secret-কে Base64 করে app-এ রাখা
  • Certificate pinning চালু করে secret app-এ রাখা

একটি camera-তে counter 14. প্রস্তুতকারকের বৈধ সই-করা পুরোনো firmware আসে, যার counter 12. Anti-rollback থাকলে কী হবে?

  • সই বৈধ, তাই install হবে
  • Hash মেলে, তাই install হবে
  • Counter 12-তে নেমে আসবে
  • Rollback হিসেবে বাতিল হবে

অফিসে camera নতুন VLAN-এ সরানো হলো, কিন্তু firewall নিয়ম বদলানো হয়নি, আর router দুই VLAN-এর মধ্যে সব traffic পাঠায়। ফল কী?

  • Camera আর office PC সম্পূর্ণ আলাদা হয়ে গেছে
  • প্রায় আগের মতোই পৌঁছানো যায়; firewall নিয়ম লাগবে
  • ইন্টারনেট থেকে camera নিজে থেকেই বন্ধ হয়ে গেছে
  • Camera-র firmware আপনাআপনি update হয়েছে

Purdue model-এ IT আর OT-র মাঝের ভাগ এবং OT-তে সাধারণ অগ্রাধিকার সম্পর্কে কোনটি ঠিক?

  • মাঝে Level 0; অগ্রাধিকার confidentiality
  • মাঝে Level 5; PC সরাসরি PLC-র সাথে যুক্ত
  • মাঝে IDMZ (Level 3.5); অগ্রাধিকারে আগে safety আর availability
  • কোনো ভাগ নেই; অগ্রাধিকার দ্রুত active scan

শব্দকোষ

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

মনে রাখুন

  1. ফোনে sandbox, permission, verified boot আর secure hardware আছে, তবু ব্যবহারকারীর সম্মতিই প্রধান লক্ষ্য। Accessibility আর overlay-তে সবচেয়ে সতর্ক থাকুন।
  2. Client-কে বিশ্বাস নয়: Secret আর authorization server-এ, key Keystore বা Keychain-এ, TLS যাচাই কখনো বন্ধ নয়। Pinning-এর দাম availability.
  3. IoT-র তিন রোগ: default password, update নেই, দীর্ঘ আয়ু। Unique credential আর ঘোষিত support period চান।
  4. Secure boot + signed OTA + anti-rollback: Hash বদল ধরে, সই অনুমোদন দেখায়, counter পুরোনোতে ফেরা আটকায়।
  5. যন্ত্র আলাদা রাখুন, ইন্টারনেট থেকে সরাসরি খোলা নয়। OT-তে আগে safety; কেনার আগে আর বিদায়ের সময়ও নিরাপত্তা ভাবুন।

পরের পর্বে: System আর endpoint মডিউল শেষ। পর্ব ৩৬ থেকে web application নিরাপত্তা শুরু: browser কীভাবে সাইটগুলোকে আলাদা রাখে, same-origin policy আর CORS.

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

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