در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
16 جولای، یک برنامهنویس امنیتی بهنام براد اسپنگلر که برنامهای منبعباز برای امنیت تحت شبکه مینوشت و نامش را grsecurity گذارده بود. طی نامهای اعلام کرد که در هسته لینوکس 30/6/2 (آخرین هسته) یک حفره امنیتی یافته است.
نگارش کوچکی از این آسیبپذیری منتشر شد و بر اساس مرکز تهاجمهای اینترنتی SANS، کد مخرب در بخش net/tun پیادهسازی شده بود. اتفاقی که افتاد بسیار ساده بود، توسعهدهنده متغیری را با مقداری خاص که میتوانست NULL هم باشد، ایجاد کرد، تا بعدا اگر مقدار آن 0 بود، پیغام خطایی برگرداند.
اما در همین نقطه موضوع جالب میشود. کد برنامهنویس بهنظر معصوم میرسد. اما درست بعد از اینکه به دستان کامپایلر gcc سپرده میشود و در زمان بهینهسازی کد، کامپایلر متوجه میشود که متغیر قبلا تعریف شده است و عملا تکه کد if را (که در آن بررسی میشود که آیا tun مساوی NULL هست یا نه) حذف میکند. بهعبارت دیگر، کامپایلر این ایراد را به کد باینری هم منتقل میکند. بههمین دلیل، هسته بهسادگی ممکن است از آدرس صفرم حافظه، داده بخواند یا در آنجا بنویسد. مهاجم بههمین سادگی میتواند کل سیستم را در اختیار بگیرد.
ترسناک است، اینطور نیست؟! همانطور که میبینید، بهخاطر عملکرد در سطح بسیار پایین، حتی میشود SELinux را هم از پا انداخت.
البته، برای شکستن دیوارهای امنیتی یک کامپیوتر، نیاز به سطوح دسترسی بالایی دارید تا بتوانید از ابزارهای توسعهدهنده استفاده کنید. بعد از آن، باید حتما برنامهای را از کد منبع آن کامپایل کنید و کد منبع را هم خودتان بنویسید. اینجا اصلا شبیه ویندوز نیست که تنها یک اشتباه، یک کلیک اشتباهی روی آدرس اشتباهی یا باز کردن پیوست یک ایمیل، کار سیستم عاملتان را بسازد.
اما، این تنها راه آسیبپذیریتان نیست، استفاده از حفرهامنیتی PulseAudio در سیستمهای لینوکس و ویندوزی برای هر دو سیستم عامل خطرناک است. تنها راه چاره این است که هسته جدید لینوکس را نصب کنید تا خیالتان از بابت اینها راحت باشد.
هدف از نوشتن این مطلب، بررسی بحث فنی و جزئیات حفرههای امنیتی نیست. مساله این است که در منبعباز، یک مشکل امنیتی برای عام مطرح میشود و در همان ملاعام هم رفع مشکل میشود. بهعنووان مثال، فایرفاکس 5/3 یک حفره امنیتی بسیار آشکار داشت که تنها سه روز بعد از عرضه، رفع عیب شد.
اما از طرف دیگر، مایکروسافت دوشنبه گذشته باز با یک حفره امنیتی جدید روبهرو شده است، اما هنوز برای رفع آن اقدامی صورت نگرفته است. این در مقابل ویندوز و دیگربرنامههای ویندوزی که ماهها و سالها حاوی حفرههای امنیتی هستند، واقعا هیچ است. اواخر سال گذشته، مایکروسافت یک حفره امنیتی را رفع کرد که بدون اغراق، هفت سال در مرورگرش جا خوش کرده بود. یادمان نرود که کرم MyDoom که در سال 2004 راهاندازی شده بود، هفته گذشته دوباره در سیستمهای ویندوزی برای حملههای DDoS به کار گرفته شد.
حقیقت این است که تمام نرمافزارهای منبعباز، که بسیار امنتر از برادران تجاری خود هسنتد، تمام اینها را مدیون منبعباز بودناند. چرا که تنها از این طریق میتوان به سادگی ایرادات را یافت و به سرعت ان را برطرف کرد. اگر مایکروسافت واقعا نگران وضعیت امنیتی است، نباید با ارائه وصلههای امنیتی آن را رفع کند، باید کد را باز کند تا هر کس که میتواند نگاهی به داخل آن بیاندازد. هر چند که این اتفاق هرگز نخواهد افتاد و نرمافزارهای آزاد و منبعباز همچنان دلاور دنیای امنیت نرمافزاری باقی خواهند ماند.
محمدرضا قربانی
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
گزارش «جامجم» درباره دستاوردهای زبان فارسی در گفتوگو با برخی از چهرههای ادب معاصر
معاون وزیر بهداشت: