در مطلب قبلی ضد ویروس های لینوکس چیستند و آیا اصولا به آنها احتیاج داریم؟ در مورد مفهوم ویروس در دنیای لینوکس نوشته بودم و گفته بودم که آنتی ویروس های دنیای لینوکس به خاطر بررسی ویروس های ویندوز نوشته شده اند چون در دنیای لینوکس، ویروس وجود ندارد.
اون مطلب کامنت های فراوانی داشت که مستقل از حواشی، دو نکته رو یادآوری می کردند:
لینوکس هم ویروس دارد (از جمله فهرست ۲۱ تایی ویروس های دنیای لینوکس که در صفحه بدافزارهای لینوکس در ویکیپدیا)
هیچ نرم افزاری کامل نیست و نباید در مورد هیچ نرم افزاری ( و از اون بالاتر هیچ چیزی) تعصب داشت.
هر دوی این گزاره ها از نظر من هم درست هستند. اول از دومی شروع می کنیم. لینوکس یک نرم افزار است و مثل هر نرم افزار یا ساخته دیگری، اشکال دار. گاهی این اشکال ها آنقدر بزرگ می شوند که افراد یک ویروس مبتنی بر آن می نویسند. این اتفاقی است که در مورد ویروس staog افتاد. این ویروس که اولین ویروس دنیای لینوکس بود، از چند باگ موجود در سیستم عامل استفاده می کرد و پخش می شد. نکته جذاب دنیای لینوکس این است که این ویروس هیچ وقت در جهان پخش نشد. دلیل؟ آزاد بودن نرم افزار لینوکس باعث می شود که اینجور اشکالات به سرعت حل شوند و همه کامپیوترهای متصل به اینترت جهان (که منطقا ممکن است ویروس را بگیرند) با یک آپ دیت در مقابل آن ایمن می شوند. در مورد این ویروس هیچ نیازی به ویروس کش نبود چون مثل دیگر ویروس ها با یک بروز رسانی، ماجول مشکل دار اصلاح می شد و در نتیجه گسترش ویروس متوقف.
اما گزاره اول. گزاره اول هم درست است. در دنیای لینوکس چیزی
به این فکر کنید که در یک اداره رییس زیر یک برگه کاغذ یکی از پرونده ها
بنویسد: «یک کاغذ اتفاقی از یک پرونده بیرون بیاورید و زیرش این جمله را
بنویسید و بدهید رییس امضا کند» و آن را امضا کند.
حدود بیست سی تا ویروس شناخته شده و مشهور وجود دارد. یعنی حداقل بیست یا سی بار تلاش شده ویروس لینوکسی تولید شود ولی هنوز هم می بینیم که هیچ کس نگران ویروس ها نیست. چرا؟
بگذارید قبل از جواب دادن، اول در مورد خود ویروس حرف بزنیم. اگر تعریف ما از ویروس، برنامه ای باشد که خودش را به فایل های دیگر اضافه کند و پخش شود، تقریبا هر چیزی می تواند ویروس داشته باشد. به این فکر کنید که در یک اداره رییس زیر یک برگه کاغذ یکی از پرونده ها بنویسد: «یک کاغذ اتفاقی از یک پرونده بیرون بیاورید و زیرش این جمله را بنویسید و بدهید رییس امضا کند» و آن را امضا کند. چه اتفاقی می افتد؟ با دیدن اولین برگه یک نفر این متن را زیر یک برگه دیگر می نویسد و برای امضا می دهد به رییس. حالا کافی است رییس آن را امضا کند تا ویروس به زندگی اش ادامه بدهد تا همه فایل ها را آلوده کند.
این تعریف از ویروس به هر چیزی قابل اعمال است و بسیار بسیار راحت قابل پیاده سازی. اما برداشت من از «ویروس» در آن مقاله ویروس به شکل عملی بود: خطری که هر بار کول دیسک را به کامپیوتر ویندوزی می زنیم ما را تهدید می کند. ترسی که از بازکردن هر فایل مشکوک داریم. نگرانی ای که با رفتن به سایت های مشکوک، تشدید می شود. دلهره ای که پیدا می کنیم وقتی می بینیم error های کامپیوتر در حال بیشتر و بیشتر شدن است و سرعتش در حال کمتر و کمتر شدن. در این مفهوم عملی از ویروس، تکرار می کن که لینوکس ویروس ندارد. اما چرا؟
بحث اول که در بالا هم به آن اشاره شد، آپدیت های دائمی نرم افزار است. ویندوز XP هنوز هم که هنوز است مشکل دریافت اسپم روی پورت ۹۳۵ (اگر درست بگویم) را دارد و هنوز هم که هنوز است ویروس هایی با تکنیک New Folder.exe به آن حمله می کنند ولی ویروسی مثل staog بیشتر از چند ساعت هم دوام نمی آورند و در بدترین حالت بعد از یکی دو روز که از مشاهده اولین نمونه بگذرد، سیستم اصلاح می شود. این به این معنا نیست که سیستم باگ ندارد بلکه به این معنا است که باگ ها بسیار سریع اصلا حمی شوند و افتخار بهترین هکرهای جهان هم می شود اصلاح کردن یک باگ در کرنل و نه نوشتن یک ویروس برای سوء استفاده از یک ضعف و نمایش قدرت به شرکت بزرگی مثل مایکروسافت.
نکته بعدی که به نظر من مهم تر هم هست، این است که در لینوکس چیزی به اسم «گرفتن برنامه از این و آن» نداریم. ویروس چطور به کامپیوتر ویندوزی می آید؟ از یک طرف از طریق ضعف سیستم عامل و پورت های باز و ضعف mount کردن و ضعف Internet Explorer و از طرف دیگر از طریق دیسک و کول دیسک الوده و برنامه های ویروسی و … در دنیای لینوکس من برنامه را مستقیما از نویسنده اصلی یا مستقیما از حامی توزیع مورد استفاده ام (مثلا ubuntu) دریافت و نصب می کنم. در روند نصب هیچ رابط میانی (حتی سی دی!) وجود ندارد و در نتیجه ویروس ها فرصت نمی کنند به چیزی بچسبند یا از جایی ظاهر شوند. در عین حال تمام برنامه های از طریق کدهای بخصوصی کنترل می شوند و در صورت تغییر حتی یک بیت در آن ها سیستم عاملم به من می گوید که برنامه ای که می خواهم نصب کنم، مشکوک است. با این روش اصولا ویروس ها زنده نمی مانند. ویروس برای زندگی نیاز دارد به یک چیزی بچسبد. در دنیای ویندوز حتی اگر شما برنامه را از فروشنده اصلی بخرید، آنقدر کپی غیرقانونی و برنامه اجرایی در وب وجود دارد که ویروس ها به راحتی به زندگی ادامه می دهند ولی در دنیای لینوکس عملا در اینترنت برنامه اجرایی ای وجود ندارد که به ویروس ها اجازه زنده ماندن بدهد.
فکر می کنم استالمن در جایی توضیح داده که چرا لینوکس ویروس ندارد. دلیلش بامزه است: در صورت علاقه به اجرای ویروس باید به سایت نویسنده بروید، ویروس را دانلود کنید، کمپایل کنید، به آن دسترسی اجرایی بدهید و بعد با دسترسی مدیر سیستم، اجرایش کنید تا فایل های کامپیوتر خودتان را آلوده کند. البته متاسفانه این ویروس با فرمت کامپیوتر شما از بین خواهد رفت چون احتمالا بقیه کاربران علاق های ندارند آن را کمپایل و اجرا کنند و خود به خود هم که نمی تواند به کامپیوترهای دیگر نفوذ کند.
در نهایت اضافه کنم که من نگران ویروس در کامپیوترم نیستم چون با لینوکس کار می کنم. این واقعیت دارد (: در عین حال این هم کاملا واقعیت دارد که بعضی ها توصیه می کنند که در دنیای لینوکس هم باید دائما ضد ویروس اجرا کرد. این تنوع عقیده است که دنیای لینوکس را جذاب می کند. فعلا هم که هیچ کدام از این دو عقیده ضرر نکرده است. حداقل جریان برای من این است که در یک شبکه ویندوزی، کامپیوتر من ایمن است و دوستانم بارها و بارها حافظه های جانبی شان را برای ویروس زدایی به من داده اند (:
آه اشتباه نشود! لینوکس کامل نیست. لینوکس ضعف هایی هم دارد. اتفاقا سه چهار روز است که قرار است در مورد یکیش تحقیق کنم و هنوز موفق نشده ام: bare metal backup. اگر من لینوکس را دوست دارم به خاطر کامل بودن یا حتی قوی تر بودنش نیست، به خاطر زیباتر بودنش است (: آنهم در سطح فلسفی (: برای اثبات ادعایم در مورد آگهی به نقاط ضعف لینوکس، برایتان در موردش خواهم نوشت (:
نیمه مرتبط: بدترین کرمهای کامپیوتری در طول تاریخ