firmware چیست و چه اهمیتی دارد؟
در کنار دو عبارت پرکاربرد سختافزار و نرمافزار که بارها به گوشمان خورده، عبارت کمتر شناختهشده دیگری هم هست که موضوع مقاله امروز ماست. Firmware یا سفتافزار؛ پلتفرمی که سختافزار را با مجموعهای از کدها و دستورالعملهای آماده بهسمت اجرا هدایت میکند. این دستورالعملها توسط توسعهدهندگان نوشته میشوند و برای دستگاههای مختلف متفاوتاند. پرکاربردترین دستگاههای الکترونیکی که در زندگی روزمره با آنها سروکار داریم برای راهاندازی و عملکرد به این رابط نیاز دارند. اگر مشتاقید بدانید firmware چیست، وجودش چه اهمیتی دارد، چه انواعی دارد و چالشهای امنیتی مرتبط با آن چیست، تا انتهای این مقاله همراه ما باشید.
Firmware چیست؟
سفتافزار، ثابتافزار یا firmware کد برنامهای است که در حافظه غیر فرار سختافزار یعنی RAM قرار میگیرد و عملیاتی را اجرا میکند که سازنده برای مدیریت دستگاههای سختافزاری در نظر گرفته است. این برنامههای کامپیوتری کوچک دستورالعملهای لازم برای کار با سختافزار و سیستمعامل نصبشده روی دستگاه را شامل میشوند. به همین خاطر در نبود آنها، عملکرد اکثر دستگاههای الکترونیکی که روزانه استفاده میکنیم، از چراغ راهنمایی گرفته تا ماشین لباسشویی، دوربینهای نظارتی، تلویزیون و غیره با اختلال مواجه میشود؛ چرا که کنترل سختافزار دستگاه در سطح پایین تماما بهدست این رابط است.
فریمور کجا ذخیره میشود؟
گفتیم که فریمور مستقیما روی دستگاههای سختافزاری نوشته میشود و وجودش برای شروع کار آنها الزامی است. اما ببینیم محل ذخیره این برنامهها دقیقا کجاست.
سفتافزار معمولا روی حافظه فلش ROM ذخیره میشود. مخفف عبارت Read-Only Memory که وجودش برای تمام دستگاههای الکترونیکی لازم است و فقط یک بار توسط سازنده سختافزار نوشته میشود. این حافظه دادههای مهم از جمله دستورالعملهای Firmware را برای همیشه نگه میدارد؛ حتی زمانی که دستگاه خاموش است یا وقتی که برق قطع میشود.
انواع Firmware چیست؟
اما ببینیم انواع firmware چیست. به همان اندازه که دستگاههای سختافزاری متنوعاند، سفتافزارها هم در انواع مختلفی وجود دارد. در مادربرد کامپیوترها، روی هارددیسکها، درایوهای SSD، درایوهای CD/DVD/Blu-Ray، در کارتهای شبکه، روترها، اکسس پوینتها، حتی در ماوسها و صفحه کلیدهای گیمینگ سفتافزار وجود دارد. تازه اینها فقط چند مورد مربوط به کامپیوتر هستند. فراموش نکنید که سایر دستگاههای الکترونیکی مانند تلویزیون، ماشین لباسشویی، دستگاههای خودپرداز بانک یا حتی ماشین شما بدون firmware عملکردی نخواهد داشت.
مطالعه مقاله انواع سرویسهای رایانش ابری از دست ندهید.
Firmware سطح پایین
سیستم عامل سطح پایین معمولاً در تراشههای حافظه فقط خواندنی غیر فرار مانند ROM ذخیره میشود. یعنی امکان بازنویسی یا بهروزرسانی آن وجود ندارد و یکی از بخشهای ذاتی سختافزار محسوب میشود. هر دستگاهی با سیستم عامل سطح پایین، یک حافظه قابل برنامهریزی یکبار مصرف دارد.
Firmware سطح بالا
سیستم عامل سطح بالا به نرم افزار نزدیکتر است تا سختافزار؛ چون دستورالعملهای کد آن پیچیدهتر از سیستم عاملهای سطح پایین هستند و امکان بهروزرسانی کدها را فراهم میکنند. معمولاً در تراشههای فلش مموری با این نوع firmware مواجه هستیم.
Firmware زیرسیستم
Firmware زیرسیستم معمولا بخشی از یک سیستم تعبیه شده است و به دو علت، سفتافزار سطح بالا را تداعی میکند. اولا امکان بهروزرسانی آن وجود دارد، دوما دستورالعملهای آن پیچیدهتر از دستورالعملهای firmware سطح پایین است.
انواع Firmware مادربرد کامپیوتر
حال که با انواع سفت افزار آشنا شدیم، سوال مهمتر این است که روی مادربرد کامپیوتر انواع firmware چیست؟ دو نوع سفتافزاری که در مادربرد کامپیوترها با آن سروکار داریم، BIOS و EFI است. در ادامه با این دو بیشتر آشنا میشویم.
BIOS
سیستم ورودی/خروجی اولیه (BIOS) از همان روزهای اول جزء حیاتی کامپیوترها بود و هنوز هم هست. این قطعه روی یک تراشه در مادربرد رایانه قرار میگیرد و با ارسال یک مجموعه دستورالعمل، سیستم عامل دستگاه را بارگذاری میکند. حتی مسئول مراقبت از اجزای سختافزاری دستگاه و اطمینان از عملکرد صحیح آنها هنگام راه اندازی است.
زمانی که کامپیوتر روشن است، بایوس دستورالعملهایی اجرا میکند که خطاهای احتمالی راهاندازی دستگاه را بررسی میکنند. این فرایند با بررسی حافظه دسترسی تصادفی (RAM) و پردازنده شروع میشود، سپس سایر دستگاههای متصل مثل صفحه کلید و ماوس بررسی میشوند تا ایرادات آنها مشخص شود. سپس بوت حافظه فقط خواندنی دیسک فشرده و بوت هارد دیسک را چک کرده و در نهایت به برنامه بوت لودر متصل می شود که سیستم عامل کامپیوتر را بیدار و آن را در حافظه RAM بارگذاری میکند.
EFI
رابط سفتافزار توسعهپذیر (EFI) نسل جدیدی از firmware است که بهعنوان جایگزینی برای BIOS در کامپیوترهای جدید معرفی شده و دستورالعملهایی برای راهاندازی سختافزار و راهاندازی بوتلودر صادر میکند. از مزیتهایش میتوان به امنیت سایبری و صرفا اجرای نرم افزارهای قابل اعتماد اشاره کرد.
فیرمور اصلی EFI در مک استفاده میشود و فقط پردازندههای اینتل را پشتیبانی میکند. همچنین Unified EFI (UEFI) در قالب یک قطعه سفتافزار معرفی شده تا جایگزین بایوس در رایانههای ویندوز جدید باشد و از پردازندههای AMD و Intel پشتیبانی میکند. UEFI برای بارگیری و راهاندازی سیستمعامل در دستگاههایی ویندوز ۸ و بالاتر به کار میرود.
پورت چیست؟ برای اطلاعات بیشتر می توانید مقاله مورد نظر را مطالعه نمایید.
چالشهای امنیتی Firmware
و اما بپردازیم به اینکه مهمترین چالشهای امنیتی firmware چیست؟
دستگاههای سختافزاری در برابر حملات مبتنی بر Firmware آسیبپذیرند و این دست هکرها را برای تعبیه بدافزار در این رابط باز میگذارد. BIOS فوقالعاده ناامن است. چون دستگاههای مختلف کد بایوس مشابهی دارند و این باعث میشود مهاجمان متداولترین نقاط آسیبپذیری را به سرعت کشف و از آنها سوء استفاده کنند.
از طرفی دستگاهی مثل لپتاپ مملو از فیرمورهایی برای عملکرد باتری، کارت صدا، وبکم و غیره است. ممکن است تولیدکنندگان این اجزا هنگام طراحی سفتافزار مسئله امنیت را اولویت قرار ندهند. در نتیجه کاربر با اتصال یک دستگاه خارجی به لپتاپ خود، با دستان خود راه ورود بدافزار را باز میکند. بیآنکه آنتیویروسها و سایر ابزارهای امنیتی از این ماجرا بویی ببرند.
زمانی که امنیت سفتافزار زیر سوال باشد، مهاجم میتواند به جاسوسی در دستگاههای کاربران بپردازد، فعالیت آنلاین آنان را رهگیری کند، دادههایشان را بدزدد و از راه دور کنترل دستگاه آنان را به دست آورد. در بدترین حالت ممکن دستگاه از کار میافتد و دیگر راه اندازی نمیشود.
روشهای مقابله با این چالشها
برای مقابله با آسیبهای ناشی از حملات سفتافزار، شرکتها باید امنیت Firmware را در اولویت قرار دهند و از تکتک تهدیدات احتمالی آگاه باشند تا دسترسی هکرها محدود شود. در کنار بهروزرسانی مداوم سفتافزار، روشهای دیگری هست که به مقابله با این چالشها کمک میکند.
- به روز رسانی مداوم firmware: سازندگان firmware همواره بهروزرسانیهایی منتشر میکنند که جلوی آسیبپذیریهای شناختهشده را میگیرد. شرکتها باید بهروزرسانی خودکار این پلتفرم را فعال کنند و همیشه بهدنبال آخرین نسخهها باشند. بهروزرسانی منظم سیستم عامل کمک میکند تا شکافهای امنیتی در سریعترین زمان ممکن بسته شود و سخت افزار درست کار کند.
- اجتناب از دستگاههای ذخیرهسازی نامعتبر: مهاجمان معمولا از دستگاههای ذخیرهسازی خارجی مثل USB برای راهاندازی بدافزار استفاده میکنند. این رابطها مهاجم را فورا به کامپیوتر قربانی متصل میکند. از این رو توصیه میشود استفاده از USB های ناشناخته و نامعتبر را به حداقل برسانید و همواره از USB های قابل اعتماد استفاده کنید.
- محافظت در برابر سیستم عامل مخرب: یکی از بهترین روشهای دفاع در برابر حملات Firmware، خرید سخت افزار با تضمین امنیت سفتافزار بهصورت داخلی است. در حال حاضر بسیاری از فروشندگان دستگاههایی روانه بازار میکنند که برای جلوگیری از آسیب پذیریهای سیستم عامل، ابزارهایی همچون Dell’s Enhanced BIOS Verification، Intel’s Hardware Shield و Microsoft OS Protection که به صورت پیش فرض روی آنها نصب شده و بهطور مداوم بهروزرسانی میشوند.
تفاوت درایور و Firmware چیست؟
شاید بعد از آشنایی نسبی با سفتافزار بپرسید تفاوت درایور و firmware چیست؟
هم سفتافزار و هم درایورها به سختافزار دستور میدهند و عملکرد آن را کنترل میکنند. با این حال یک تفاوت مهم میان این دو وجود دارد و آن اینکه Firmware روی سختافزار نصب میشود، در حالی که درایورها روی سیستمعامل دستگاه قرار میگیرند. از طرفی سفتافزار میتواند بهتنهایی شروع به کار کند و عملیاتی که برای آن برنامهریزی شده را اجرا نماید؛ در حالی که عملکرد درایور منوط به عملکرد سیستم عامل است. آخرین تفاوت این است که سفتافزار به دستگاه میگوید چه کاری باید انجام دهد، در حالی که درایور رفتار درست با دستگاه را به سیستم عامل دیکته میکند.
تفاوت نرم افزار و Firmware چیست؟
با توجه به تمام مطالبی که اشاره کردیم، سفتافزار نرمافزاری در سطح ماشین است که دستورالعملهایی به دستگاه ارائه میکند تا طبق آنها با با سایر نرم افزارهای اجرایی همکاری کند. این برنامه کنترل سطح پایین روی سختافزار دستگاه دارد؛ به همین خاطر برخی افراد آن را «نرمافزارِ سختافزار» مینامند. مهمترین تفاوت این دو میزان خوانایی آنها برای توسعهدهنده است. نرمافزار معمولا یک کد قابل خواندن برای توسعهدهنده است؛ در حالی که Firmware از کد ماشین سطح پایین تشکیل شده و درک آن برای فرد عادی آسان نیست.
از طرفی نرم افزارها به سخت افزار زیرین مرتبط نیستند و میتوان بدون در نظر گرفتن نوع سختافزار، روی چندین پلتفرم و سیستم عامل عملیات نرم افزاری ایجاد کرد. این در مورد سفتافزارها که اکثرا برای یک تنظیمات خاص سختافزاری طراحی شدهاند، صدق نمیکند.
اهمیت بهروزرسانی Firmware
بهروزرسانی سفتافزار از جهت بهبود عملکرد، ویژگیها و امنیت دستگاه تا حد زیادی حائز اهمیت است. با همین عملیات ساده ممکن است یک مشکل جدی یا حفرهای که دستگاه را در معرض حملات قرار میدهد، برطرف شود. از طرفی با وجود پیشرفتهای سریع و گسترده در زمینه فناوری، بهروزرسانی این بخش از سیستم دستگاه را تازه نگه میدارد تا با مدلهای جدید بازار بهتر رقابت کند.
همیشه به یاد داشته باشید که نوشتن یک firmware جدید روی دستگاه کار بسیار خطرناکی است و اگر اشتباه انجام شود، میتواند به دستگاه آسیب بزند. در واقع با این کار فقط سفتافزار دستگاه را نابود کردهاید و دیگر آنطور که باید کارایی ندارد.
مطالعه مقاله تین کلاینت را پیشنهاد می دهیم.
کلام آخر
در یک کلام میتوان گفت Firmware یا سفت افزار، برنامه نرم افزاری کوچک اما اصلی و اساسی برای تمام دستگاههای محاسباتی است. تنها مسئلهای که در مورد این پلتفرمها مهم و نگرانکننده است، وجود تهدیدات امنیتی است که با تکامل بیشتر دستگاهها و اتصال آنها به اینترنت اشیاء، روزبهروز گستردهتر و خطرناکتر از قبل میشوند. به یاد داشته باشید که نقض سفتافزار بهعنوان نرم افزار پایه بسیاری از دستگاههای الکترونیکی یک خطر فوقالعاده جدی است و انتظار میرود سازندگان تجهیزات سختافزاری بازار از اهمیت این خطرات باخبر باشند و اقدامات لازم را برای اطمینان از امنیت firmware انجام دهند.
شما چه اطلاعاتی درباره firmware دارید؟ اگر نکات و دانستههای مهمتری دارید که جای آنها در متن این مقاله خالی است، منتظر شنیدن نظراتتان هستیم.
دیدگاهتان را بنویسید