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