کمتر از یک روز گذشته بود که آسیب پذیری امنیتی جدید دروپال که یکی از امن‌ترین سیستم‌های مدیریت محتوای متن‌باز موجود است منتشر شد. معمولا اولین واکنش‌های بعد از این چنین رویدادهایی این است که در گروه‌ها و انجمن‌های مختلف بحث پیرامون ارتباط امنیت با متن‌باز و یا متن‌بسته بودن نرم‌افزار شکل می‌گیرد. در این میان مهم است که به چند نکته که در ادامه می‌خوانیم توجه کنیم.



صرف متن‌باز بودن نرم‌افزار موجب افزایش امنیت نمی‌شود
این ساده لوحانه است که فکر کنیم همین که یک نرم‌افزاری را به صورت متن‌باز منتشر کردیم قرار است اشخاصی باگ‌ها را پیدا کرده گزارش کنند و یا حتی برطرف نمایند. این اتفاق تنها برای نرم‌افزارهای متن باز معروف و معتبر اتفاق می‌افتد. در نتیجه ممکن است نرم‌افزاری متن باز یک آسیب‌پذیری امنیتی را مدت‌ها با خود حمل نماید و کسی برای آن اقدامی انجام ندهد. طرفداران نرم‌افزارهای متن بسته می‌گویند که «یک نگاه متخصص، بهتر از هزاران نگاه اتفاقی افراد به کد است» البته در این جمله مبالغه هم دیده می‌شود اما باید توجه داشت که یک نرم‌افزار متن باز هم نیازمند افراد متخصصی است که به بهبود پروژه تعهد داشته باشند.

صرف متن‌بسته بودن موجب افزایش امنیت نمی‌شود
نرم‌افزارهای متن بسته، در واقع کد‌های کامپایل شده هستند. ما در مطلب مهندسی معکوس APK مبتنی بر SDK اندروید باهم بررسی کردیم که چطور می‌توان یک نرم‌افزار متن بسته اندروید که به سورس آن دسترسی نداریم را مهندسی معکوس کرده و به کد آن برسیم هرچند این کد درهم ریخته باشد ولی باز یک متخصص می‌تواند آسیب‌پذیری‌های امنیتی را در آن کشف نماید. اما کشف همچنین حفره‌ای زمان‌بر تر از کشف یک حفره نرم‌افزاری در  کد متن باز است. در نتیجه ممکن است مدت بیشتری یک کد متن بسته حامل یک آسیب‌پذیری امنیتی باشد. در چنین شرایطی افرادها و سازمان‌های سودجو با استخدام افراد متخصص می‌توانند آسیب‌پذیری را کشف کرده و تا مدت بیشتری از آن سو استفاده نمایند. یک مثال معروف این است که نرم‌افزار InterBase که توسط شرکت بورلند ساخته شده بود به مدت 8 سال دارای یک در پشتی بود اما کسی آن را کشف نکرده بود تا بلاخره کشف و گزارش شد. در پشتی به آسیب‌پذیری‌هایی گفته می‌شود که توسعه دهنده عمدا در کد قرار می‌دهد تا به کامپیوترها و سرورهای افراد نفوذ کند.

نتیجه گیری
صرف متن‌باز یا متن‌بسته بودن یک نرم‌افزار موجب افزایش امنیت آن نمی‌شود، برای افزایش امنیت باید الگوهای درستی در برنامه نویسی صورت بگیرد بازهم اما ممکن است آسیب‌پذیری‌هایی بمرور زمان در آن کشف شود نکته مثبت کدهای منبع باز این است که کشف این آسیب‌پذیری‌ها زودتر اتفاق می‌افتد.

بیشتر بخوانید
جناب آقای دیوید ویلر که خودش یکی از افراد سرشناس در جنبش نرم‌افزار آزاد می‌باشد کتابی به نام «چگونه برنامه را امن بنویسیم؟» دارد که در  آن اشتباهات رایجی که امنیت نرم‌افزار را به خطر می‌اندازد مطرح کرده و نحوه مقابله با آنها را نیز گفته است. من حدود دو سال گذشته بخش‌هایی از این کتاب را مطالعه کردم و به شما هم توصیه می‌کنم این کتاب را مطالعه کنید. ایده‌های مطرح شده در اینجا از این کتاب گرفته شده است.