HackCert
Intermediate 10 min read May 25, 2026

Firmware Reversing: রাউটার এবং আইওটি ডিভাইসের ফার্মওয়্যার রিভার্স ইঞ্জিনিয়ারিং!

রাউটার এবং IoT ডিভাইসের Firmware রিভার্স ইঞ্জিনিয়ারিং কৌশল, টুল এবং বাস্তব নিরাপত্তা গবেষণার বিশ্লেষণ।

Ahmed Rafiq Khan
Reverse Engineer
share
Firmware Reversing: রাউটার এবং আইওটি ডিভাইসের ফার্মওয়্যার রিভার্স ইঞ্জিনিয়ারিং!
Overview

আপনার বাড়ির রাউটারটি প্রতিদিন কোটি কোটি প্যাকেট প্রসেস করছে, আপনার ব্যাঙ্কিং সেশন থেকে শুরু করে ভিডিও কল—সবকিছুর মধ্য দিয়ে চলে যাচ্ছে। কিন্তু এই ডিভাইসের ভেতরে কোন সফটওয়্যার চলছে, এতে কী কী বাগ আছে, কোথায় ব্যাকডোর থাকতে পারে—এর কোনোটাই নির্মাতা আপনাকে বলবে না। Firmware Reversing হলো সেই কারিগরি শিল্প যার মাধ্যমে গবেষকরা ছোট ছোট চিপের ভেতরের গোপন কোড উন্মোচন করেন এবং বোঝেন এই Black Box গুলো আসলে কীভাবে কাজ করছে। D-Link, TP-Link, Netgear, Linksys এর প্রতিটি রাউটার, প্রতিটি IP ক্যামেরা, প্রতিটি স্মার্ট ডিভাইস—সবগুলোতেই Firmware আছে, এবং সবগুলোই সম্ভাব্য নিরাপত্তা গবেষণার বিষয়।

Firmware Reversing এর প্রাথমিক ধারণা

Firmware Reversing হলো একটি বিশেষ ধরনের রিভার্স ইঞ্জিনিয়ারিং যেখানে এমবেডেড সিস্টেমের সম্পূর্ণ সফটওয়্যার স্ট্যাক বিশ্লেষণ করা হয়। সাধারণ সফটওয়্যার রিভার্সিং এর তুলনায় এটি জটিল কারণ ফার্মওয়্যার বহু আর্কিটেকচারে আসে—MIPS, ARM, PowerPC, SuperH, RISC-V—এবং অনেক সময় কোনো অপারেটিং সিস্টেম থাকে না, কেবল কাঁচা মেশিন কোড।

লক্ষ্য বিভিন্ন হতে পারে। নিরাপত্তা গবেষকরা দুর্বলতা খুঁজে বের করতে চান যাতে নির্মাতাকে জানিয়ে প্যাচ আনা যায়। হবিইস্টরা ডিভাইসকে আনলক করে কাস্টম ফার্মওয়্যার চালাতে চান, যেমন OpenWrt বা DD-WRT। আইনি প্রয়োগকারী সংস্থা কখনো ক্ষতিকর ডিভাইস তদন্ত করেন। আক্রমণকারীরা দুর্ভাগ্যবশত একই কৌশল ব্যবহার করে শূন্য দিনের আক্রমণ তৈরি করেন।

প্রক্রিয়াটি একটি অজানা চলচ্চিত্রের প্রতিটি দৃশ্য খুঁটিয়ে দেখার মতো—প্রতিটি ফাংশন, প্রতিটি স্ট্রিং, প্রতিটি কনফিগারেশন—সব একসাথে জোড়া লাগিয়ে পুরো গল্প বুঝতে হয়। এতে ধৈর্য, কারিগরি দক্ষতা, এবং পদ্ধতিগত চিন্তাভাবনা প্রয়োজন।

Firmware সংগ্রহের কৌশল

প্রথম ধাপ হলো Firmware ইমেজ পাওয়া। সবচেয়ে সহজ পদ্ধতি হলো নির্মাতার সরকারি ওয়েবসাইট থেকে আপডেট ফাইল ডাউনলোড করা। অধিকাংশ রাউটার নির্মাতা তাদের ফার্মওয়্যার পাবলিকলি প্রকাশ করে, যদিও কিছু কোম্পানি এটি কঠোরভাবে নিয়ন্ত্রিত।

কখনো ফার্মওয়্যার শুধু ডিভাইসের আপডেট প্রক্রিয়ার মধ্যে পাওয়া যায়। সেক্ষেত্রে আপডেট সার্ভারের সাথে নেটওয়ার্ক ট্রাফিক ক্যাপচার করে ফাইল উদ্ধার করা যায়। ম্যান ইন দ্য মিডল প্রক্সি ব্যবহার করে HTTPS ট্রাফিক ইন্টারসেপ্ট এবং ফাইল সংরক্ষণ করা একটি প্রচলিত কৌশল।

যদি সফটওয়্যার পদ্ধতিতে ফার্মওয়্যার না পাওয়া যায়, তাহলে হার্ডওয়্যার পদ্ধতি প্রয়োজন। UART পোর্ট চিহ্নিত করে সিরিয়াল কনসোলে অ্যাক্সেস পাওয়া অনেক ডিভাইসে কাজ করে। U-Boot কনসোল থেকে ফ্ল্যাশ মেমোরি ডাম্প করা সম্ভব। JTAG বা SWD ইন্টারফেস থাকলে OpenOCD এর মাধ্যমে সরাসরি প্রসেসর কন্ট্রোল করে মেমোরি পড়া যায়।

সবচেয়ে নিম্নস্তরের পদ্ধতি হলো SPI Flash চিপ সরাসরি পড়া। চিপটি বোর্ড থেকে আনসোল্ডার করে একটি Programmer এ যুক্ত করা হয়, অথবা SOIC8 ক্লিপ ব্যবহার করে In Circuit পড়া হয়। CH341A একটি সাশ্রয়ী এবং জনপ্রিয় Programmer যা ১০ ডলারের কম দামে পাওয়া যায়।

Firmware Analysis এর প্রাথমিক ধাপ

Firmware ইমেজ পাওয়ার পর প্রথমে এটি অজানা একটি বাইনারি ব্লব। প্রথম কাজ হলো ফাইলটির গঠন বোঝা। Binwalk হলো এই কাজের শীর্ষ টুল। binwalk -e firmware.bin কমান্ড চালালে এটি ইমেজের ভেতরের ফাইল সিস্টেম, Compressed অংশ, এবং পরিচিত সিগনেচার চিহ্নিত করে এবং Extract করে দেয়।

অধিকাংশ IoT ডিভাইসে Linux ভিত্তিক ফার্মওয়্যার থাকে, এবং এর ফাইল সিস্টেম সাধারণত SquashFS, JFFS2, কিংবা UBI ফরম্যাটে আসে। Extract এর পর একটি সম্পূর্ণ Linux Root File System পাওয়া যায়—/etc, /usr/bin, /var, এই সব ডিরেক্টরি। strings কমান্ড ব্যবহার করে গুরুত্বপূর্ণ স্ট্রিং খুঁজে বের করা যায় যেমন পাসওয়ার্ড, API এন্ডপয়েন্ট, ডিবাগ মেসেজ।

Entropy Analysis করলে বোঝা যায় ফার্মওয়্যারের কোন অংশ Compressed বা Encrypted। উচ্চ Entropy (০.৯+) সাধারণত Compressed বা Encrypted ডেটা নির্দেশ করে, কম Entropy কাঁচা কোড। binwalk এর Entropy Plot ফিচার এতে সাহায্য করে।

ফাইল সিস্টেম পাওয়ার পর পরিচিত ফাইল যেমন /etc/passwd, /etc/shadow, /etc/init.d/ ইত্যাদি পরীক্ষা করতে হয়। অনেক রাউটারে এখনো হার্ডকোডেড পাসওয়ার্ড পাওয়া যায়—এটি কুখ্যাত নিরাপত্তা সমস্যা। ওয়েব ইন্টারফেসের CGI স্ক্রিপ্টগুলো /www বা /usr/sbin/httpd ডিরেক্টরিতে থাকে এবং প্রায়শ Command Injection দুর্বলতা ধারণ করে।

Disassembly এবং Decompilation

Binary ফাইলের প্রকৃত কোড বিশ্লেষণের জন্য Disassembler প্রয়োজন। IDA Pro দীর্ঘদিন এই ক্ষেত্রে স্বর্ণমান ছিল, যদিও এর লাইসেন্স ব্যয়বহুল। Ghidra হলো NSA এর তৈরি ফ্রি এবং ওপেন সোর্স বিকল্প যা IDA Pro এর প্রায় সমান শক্তিশালী এবং বিশেষভাবে এমবেডেড আর্কিটেকচারের জন্য সমর্থন প্রদান করে।

Binary Ninja হলো একটি আধুনিক বিকল্প যার পরিষ্কার ইন্টারফেস এবং শক্তিশালী API আছে। Radare2 এবং Cutter ওপেন সোর্স সম্প্রদায়ের জনপ্রিয় পছন্দ। যেকোনো টুল ব্যবহার করুন, প্রক্রিয়াটি একই—বাইনারি লোড করুন, আর্কিটেকচার নির্ধারণ করুন, এবং Decompiler ব্যবহার করে C-Like সিউডোকোড তৈরি করুন।

Decompilation একটি অপূর্ণ বিজ্ঞান। কম্পাইলার অপ্টিমাইজেশন, ভেরিয়েবল নাম মুছে ফেলা, এবং উচ্চ স্তরের কাঠামো হারিয়ে যাওয়ার ফলে Decompiled কোড পড়া কঠিন। তবু এটি Assembly এর চেয়ে অনেক বেশি বোধগম্য। Symbol না থাকলেও Cross Reference, String Reference, এবং কল গ্রাফ বিশ্লেষণ ফাংশনগুলোর উদ্দেশ্য বুঝতে সাহায্য করে।

লাইব্রেরি ফাংশন শনাক্ত করতে FLIRT সিগনেচার (IDA Pro) বা FunctionID (Ghidra) ব্যবহার করা হয়। Linux Firmware এ glibc, busybox, openssl এর মতো পরিচিত লাইব্রেরি প্রায়শই থাকে এবং সেগুলোর ফাংশন স্বয়ংক্রিয়ভাবে চিহ্নিত করা যায়।

দুর্বলতা শনাক্তকরণ কৌশল

Firmware এ দুর্বলতা খুঁজে পেতে কিছু সাধারণ প্যাটার্ন আছে যা গবেষকরা খোঁজেন। Buffer Overflow এর জন্য strcpy, sprintf, gets এর মতো অনিরাপদ ফাংশনের কল খুঁজতে হয়। প্রতিটি এমন কল যেখানে ইনপুটের আকার যাচাই করা হয়নি, একটি সম্ভাব্য দুর্বলতা।

Command Injection প্রায়ই system, popen, exec ফাংশনের অনিরাপদ ব্যবহার থেকে আসে। যদি একটি ব্যবহারকারী নিয়ন্ত্রিত স্ট্রিং সরাসরি system এ পাঠানো হয়, এটি সাধারণত Exploit এর সুযোগ। CGI স্ক্রিপ্টে এটি একটি সাধারণ সমস্যা।

Authentication Bypass খুঁজতে যাচাইকরণ ফাংশন বিশ্লেষণ করতে হয়। অনেক রাউটারে আবিষ্কৃত হয়েছে যে নির্দিষ্ট URL এ Authentication Header পাঠানো ছাড়াই অ্যাক্সেস পাওয়া যায়। Hardcoded Credentials, Debug Backdoor, এবং Master Password—এসব আশ্চর্যজনকভাবে এখনো প্রচলিত।

ক্রিপ্টোগ্রাফিক দুর্বলতা যেমন দুর্বল র‍্যান্ডম নম্বর জেনারেটর, ব্যবহৃত MD5 বা DES, hardcoded ক্রিপ্টোগ্রাফিক কী—এগুলো ফার্মওয়্যারে নিয়মিত পাওয়া যায়। ওপেন সোর্স লাইব্রেরির পুরনো সংস্করণ ব্যবহার করায় পরিচিত CVE গুলোর প্রতি দুর্বলতা থাকে।

রাউটার এবং IoT এর বিশেষ চ্যালেঞ্জ

রাউটার ফার্মওয়্যার বিশ্লেষণে কিছু বিশেষ সমস্যা আছে। প্রথমত, MIPS আর্কিটেকচার সবচেয়ে সাধারণ এবং অনেক রিভার্স ইঞ্জিনিয়ারদের কাছে অপরিচিত। MIPS এর ৩২ টি জেনারেল পার্পাস রেজিস্টার, Delay Slot এর ধারণা, এবং Endianness পার্থক্য—এসব শিখতে সময় লাগে।

দ্বিতীয়ত, NVRAM ব্যবহার ফার্মওয়্যারকে রানটাইম পরিবর্তিত করে। স্ট্যাটিক বিশ্লেষণে দেখা যায় না কোন কনফিগারেশন মান ব্যবহৃত হচ্ছে। nvram_get এবং nvram_set কলগুলো সাবধানে ট্রেস করতে হয়।

তৃতীয়ত, Web ইন্টারফেস প্রায়শ একটি কাস্টম httpd বা mini_httpd ব্যবহার করে যা CGI বা ASP-Like টেমপ্লেট প্রসেস করে। প্রতিটি নির্মাতার নিজস্ব Custom Code থাকে এবং সেগুলো বুঝতে গভীর বিশ্লেষণ প্রয়োজন।

চতুর্থত, IoT ডিভাইসে প্রায়শ ভিন্ন SDK ব্যবহার হয়—Realtek, MediaTek, Broadcom এর প্রতিটির নিজস্ব ফার্মওয়্যার বিকাশের পদ্ধতি আছে। Realtek SDK এর অসংখ্য দুর্বলতা আবিষ্কারের পর এক ভেন্ডরের সমস্যা শত শত ডিভাইস ব্র্যান্ডকে প্রভাবিত করেছিল।

বাস্তব আবিষ্কার এবং প্রভাব

Firmware Reversing এর মাধ্যমে অসংখ্য গুরুত্বপূর্ণ দুর্বলতা প্রকাশিত হয়েছে। D-Link এর অনেক রাউটারে Hardcoded Backdoor পাওয়া গিয়েছিল—যেমন একটি নির্দিষ্ট User Agent স্ট্রিং পাঠালে কোনো প্রমাণীকরণ ছাড়াই অ্যাডমিন অ্যাক্সেস পাওয়া যেত। এই দুর্বলতা ২০১৩ সালে প্রকাশিত হয়েছিল এবং অসংখ্য মডেলকে প্রভাবিত করেছিল।

Mirai বটনেট এর প্রাথমিক সংস্করণ আগে থেকে রিভার্স করা ফার্মওয়্যার থেকে শেখা হার্ডকোডেড পাসওয়ার্ড তালিকা ব্যবহার করত। ৬০+ ডিফল্ট ক্রেডেনশিয়াল যা বিভিন্ন IoT ক্যামেরা এবং রাউটারে পাওয়া গিয়েছিল।

Realtek এর SDK তে ২০২১ সালে পাওয়া দুর্বলতা CVE-2021-35394 প্রায় এক মিলিয়ন ডিভাইসে রিমোট কোড এক্সিকিউশনের অনুমতি দিচ্ছিল। এই আবিষ্কার একটি একক ফার্মওয়্যার রিভার্সিং প্রকল্প থেকে এসেছিল।

Cisco, Juniper এর এন্টারপ্রাইজ রাউটারেও বহু দুর্বলতা ফার্মওয়্যার বিশ্লেষণের মাধ্যমে পাওয়া গেছে। কিছু ক্ষেত্রে রাষ্ট্রীয় ফাঁস তথ্য থেকে জানা গেছে যে গোয়েন্দা সংস্থাগুলো বছরের পর বছর ধরে এই দুর্বলতা ব্যবহার করছিল।

নৈতিক বিবেচনা এবং Responsible Disclosure

ফার্মওয়্যার রিভার্সিং একটি ধূসর আইনি ক্ষেত্র। DMCA এর Section 1201 এ সফটওয়্যার নিরাপত্তা গবেষণার জন্য কিছু ছাড় আছে কিন্তু সব ক্ষেত্রে নয়। আপনার নিজের ডিভাইস বিশ্লেষণ করা সাধারণত বৈধ, কিন্তু ফার্মওয়্যার পুনর্বিতরণ বা পরিবর্তিত সংস্করণ প্রকাশ আইনি জটিলতা তৈরি করতে পারে।

পেশাদার গবেষকরা Responsible Disclosure নীতি অনুসরণ করেন। দুর্বলতা পেলে প্রথমে নির্মাতাকে জানানো, একটি প্যাচ আসার জন্য সময় দেওয়া (সাধারণত ৯০ দিন), এবং তারপর পাবলিকলি প্রকাশ করা। CERT/CC এই প্রক্রিয়ায় মধ্যস্থতাকারী হিসেবে কাজ করে।

Bug Bounty প্রোগ্রাম এখন অনেক IoT কোম্পানি প্রস্তাব করে, যেখানে গবেষকরা বৈধভাবে দুর্বলতা রিপোর্ট করে আর্থিক পুরস্কার পেতে পারেন। Trend Micro Zero Day Initiative প্রায়শই IoT দুর্বলতার জন্য পুরস্কার ঘোষণা করে।

প্রতিরোধ ও প্রতিকার

ফার্মওয়্যার রিভার্সিং এর বিরুদ্ধে নির্মাতারা বিভিন্ন কৌশল ব্যবহার করেন। Code Obfuscation Compiled কোডকে পড়তে কঠিন করে কিন্তু সম্পূর্ণ থামাতে পারে না। Anti Debugging কৌশল রানটাইম বিশ্লেষণ কঠিন করে। Firmware Encryption সবচেয়ে কার্যকর পদ্ধতি—যেখানে ফার্মওয়্যার ফাইল সিস্টেমে কোনো বিশ্লেষণযোগ্য আকারে থাকে না।

Secure Boot এবং Code Signing নিশ্চিত করে যে শুধু নির্মাতার সাইন করা ফার্মওয়্যার চলতে পারে। তবে গবেষকরা প্রায়ই Secure Boot বাইপাস করার উপায় খুঁজে বের করেন। JTAG এবং UART ইন্টারফেস ডিজেবল করা একটি প্রতিরক্ষামূলক পদক্ষেপ, যদিও এটি ডিবাগিং কঠিন করে।

ব্যবহারকারীদের জন্য পরামর্শ হলো শুধু বিশ্বস্ত নির্মাতার ডিভাইস কেনা, নিয়মিত ফার্মওয়্যার আপডেট প্রয়োগ করা, এবং End of Life ডিভাইস প্রতিস্থাপন করা। কর্পোরেট পরিবেশে IoT ডিভাইস আলাদা VLAN এ রাখা এবং ট্রাফিক পর্যবেক্ষণ করা অপরিহার্য।

ডেভেলপারদের জন্য Secure Coding অনুশীলন—অনিরাপদ ফাংশন এড়ানো, ইনপুট যাচাই, Hardcoded Secret না রাখা, Modern Cryptography ব্যবহার—এই সব মেনে চললে ফার্মওয়্যার Reversing এর সময়ও দুর্বলতা কম পাওয়া যায়। SBOM বা Software Bill of Materials বজায় রেখে কোন কোন তৃতীয় পক্ষের লাইব্রেরি ব্যবহার হচ্ছে তা ট্র্যাক করা যায় এবং Vulnerability Notification সময়মতো প্রয়োগ করা যায়।

Key Takeaways

Firmware Reversing রিভার্স ইঞ্জিনিয়ারিং এর একটি বিশেষায়িত এবং অত্যন্ত পুরস্কারজনক ক্ষেত্র যা বর্তমান এবং ভবিষ্যতের IoT নিরাপত্তায় কেন্দ্রীয় ভূমিকা পালন করছে। রাউটার, ক্যামেরা, স্মার্ট হোম ডিভাইস—এসব এখন কোটি কোটি বাড়ি এবং ব্যবসায়িক প্রতিষ্ঠানে চলছে, এবং প্রতিটির ভেতরের কোড বিশ্লেষণ ছাড়া সত্যিকার নিরাপত্তা মূল্যায়ন অসম্ভব। Binwalk, Ghidra, IDA Pro, JTAG, SPI Programmer—এই টুলগুলোর সঙ্গে MIPS এবং ARM আর্কিটেকচারের জ্ঞান, এবং পদ্ধতিগত চিন্তাভাবনা—এই সবের সমন্বয়ে একজন কার্যকর ফার্মওয়্যার গবেষক তৈরি হয়। নিরাপত্তা গবেষণার নৈতিক দিক—Responsible Disclosure, আইনি সীমা, এবং Bug Bounty—এই সব বিষয়ে সচেতন থাকা প্রতিটি গবেষকের দায়িত্ব। যত বেশি ডিভাইস ইন্টারনেটে সংযুক্ত হবে, ফার্মওয়্যার Reversing এর গুরুত্ব ততই বাড়বে—এটি কেবল একটি দক্ষতা নয়, এটি ডিজিটাল যুগের নিরাপত্তা নিশ্চিত করার একটি প্রয়োজনীয় শিল্প।

আপনার জ্ঞান যাচাই করতে প্রস্তুত? আজই HackCert-এ Firmware Reversing MCQ Quiz-টি দিন!

Related articles

back to all articles