«باگ» در دنیای فناوری به خطا یا نقصی در نرمافزار، سختافزار یا طراحی سیستم گفته میشود که باعث میشود دستگاه یا برنامه برخلاف انتظار رفتار کند. باگ همیشه یک حشره واقعی نیست و برخلاف یک روایت مشهور، این واژه نخستین بار با ورود پروانهای به کامپیوتر ساخته نشد.
داستان پروانهای که وارد کامپیوتر شد چه بود؟
در ۹ سپتامبر ۱۹۴۷، مهندسان دانشگاه هاروارد هنگام بررسی اختلال کامپیوتر الکترومکانیکی Harvard Mark II، پروانهای را پیدا کردند که میان رلههای دستگاه گیر کرده بود. آنها حشره را در دفتر ثبت وقایع چسباندند و کنار آن نوشتند: «اولین مورد واقعی پیدا شدن یک باگ.»
این اتفاق واقعی بود، اما آن پروانه نخستین باگ رایانهای جهان محسوب نمیشود و واژه Bug نیز همانجا اختراع نشد. واژه «باگ» از دههها قبل برای اشاره به نقصها و مشکلات فنی به کار میرفت؛ برای مثال، توماس ادیسون در قرن نوزدهم از این اصطلاح برای توصیف ایرادهای اختراعات استفاده کرده بود. ماجرای Mark II و روایتهای بعدی گریس هاپر فقط به مشهورشدن اصطلاحهای Bug و Debug در دنیای کامپیوتر کمک کردند.
باگ نرمافزاری چگونه ایجاد میشود؟
نرمافزار از تعداد زیادی دستور و بخش مرتبط با یکدیگر تشکیل شده است. اشتباه برنامهنویسی، طراحی ناقص، پیشبینینکردن یک وضعیت خاص یا ناسازگاری میان اجزای مختلف میتواند باعث ایجاد باگ شود.
نتیجه یک باگ ممکن است ساده باشد؛ مثلاً دکمهای کار نکند، برنامه بسته شود یا اطلاعات اشتباه نمایش داده شوند. بعضی باگها نیز جدیترند و میتوانند باعث حذف اطلاعات، اختلال کامل دستگاه یا ایجاد یک مشکل امنیتی شوند.
آیا هر باگی راه نفوذ هکرهاست؟
هر باگ لزوماً یک آسیبپذیری امنیتی نیست. ممکن است یک ایراد فقط ظاهر برنامه را به هم بریزد و امکان سوءاستفادهای در اختیار مهاجم قرار ندهد.
آسیبپذیری امنیتی ضعفی در نرمافزار یا سختافزار است که سوءاستفاده از آن میتواند محرمانگی، صحت یا دسترسپذیری اطلاعات و سیستم را تحتتأثیر قرار دهد. برای مثال، یک آسیبپذیری ممکن است به مهاجم اجازه دهد بدون مجوز وارد حساب شود، اطلاعات را بخواند، کد مخرب اجرا کند یا یک سرویس را از دسترس خارج کند.
بنابراین مسیر نفوذ همیشه به این سادگی نیست که «هر خطای برنامهنویسی یک سوراخ برای هکر است». مهاجم باید بتواند از یک نقص مشخص، در شرایط مناسب، برای ایجاد اثر امنیتی استفاده کند.
بهروزرسانی چگونه باگها را برطرف میکند؟
پس از شناسایی یک نقص، سازنده ممکن است نسخه جدید یا یک وصله امنیتی یا Patch منتشر کند. وصله بخشی از کد نرمافزار را اصلاح میکند تا مشکل عملکردی یا آسیبپذیری امنیتی برطرف شود. مؤسسه ملی استاندارد و فناوری آمریکا، مدیریت وصلهها را فرایند شناسایی، دریافت، نصب و بررسی اصلاحات نرمافزاری میداند.
نصبنکردن بهروزرسانیهای امنیتی میتواند یک راه نفوذ شناختهشده را باز نگه دارد؛ بهویژه زمانی که جزئیات آسیبپذیری منتشر شده و مهاجمان نیز نحوه سوءاستفاده از آن را میدانند.
چگونه خطر باگهای امنیتی را کاهش دهیم؟
سیستمعامل، مرورگر و برنامهها را از فروشگاه یا وبسایت رسمی بهروز کنید. قابلیت بهروزرسانی خودکار را برای نرمافزارهای مهم فعال نگه دارید و برنامههایی را که دیگر از طرف سازنده پشتیبانی نمیشوند کنار بگذارید. آژانس امنیت سایبری و زیرساخت آمریکا نیز نصب سریع بهروزرسانیها و فعالکردن بهروزرسانی خودکار را از اقدامات اصلی کاهش خطر آسیبپذیریها معرفی میکند.
باگها همیشه نتیجه حضور یک حشره در دستگاه نیستند و هر باگ نیز الزاماً امکان هک ایجاد نمیکند. بااینحال، وقتی یک نقص امنیتی شناسایی و برای آن وصله منتشر میشود، بهروزرسانی سریع نرمافزار یکی از سادهترین راههای بستن مسیر سوءاستفاده است.
منابع
موزه ملی تاریخ آمریکا وابسته به مؤسسه اسمیتسونین، موزه تاریخ کامپیوتر، پایگاه ملی آسیبپذیریهای NIST و راهنماهای CISA درباره وصلهها و بهروزرسانی نرمافزار.