فهرست مطالب این مقاله:
ریسک نرم افزار های اوپن سورس یا متن باز همیشه بالاست و استفاده از اونها شما رو با چالشهای متعددی روبرو میکنه. دلیلش هم در درجه اول، نوع و ساختار جامعه ایه که معمولا از نرم افزاهای متن باز استفاه میکنن و در درجه دوم هم توزیع معمولا غیرقانونی این نرم افزار هاست. به همین دلیل استفاده از نرم افزار های اپن سورس میتونه خطراتی رو برای کسب و کارها به همراه داشته باشه. این ریسکها و خطرات، مشکلات امنیت سایبری رو هم شامل میشن.
آشنایی با 10 ریسک نرم افزار های متن باز یا اوپن سورس
در ادامه به چالشها و خطرات بالقوه استفاده از نرم افزار های اپن سورس اشاره میکنیم:
1. همه متوجه نقاط ضعف میشن
آسیبپذیریها و نقاط ضعف تو نرمافزارهای اپن سورس به اطلاع عموم رسونده میشن. در واقع این کار توسط خود مشارکتکنندگان و همچنین توسط سازمانهایی مثل پروژه امنیت برنامههای وب باز (OWASP) انجام میشه.
اگه عضو یه انجمن مربوط به یه پروژه خاص باشید، اغلب قبل از اینکه گروههایی مثل OWASP متوجه بشن، خود شما یه اخطار پیشرفته دریافت میکنید. اما هر کس دیگهای که عضو انجمن باشه هم این اخطار رو دریافت و مشاهده میکنه. معنی این مشکل اینه که اگه تو حفظ آخرین نسخهها یا بهروزرسانی بعضی مؤلفهها سهل انگاری کنید، خودتون رو در معرض خطر قرار میدید. این آسیبپذیریها اغلب توسط مجرمان سایبری شناسایی و مورد سوء استفاده قرار میگیرن. و این مسئله ریسک نرم افزار های اوپن سورس رو چندین برابر میکنه.
2. عدم امنیت یکی از ریسک های نرم افزار های اوپن سورس
نرم افزار های اپن سورس مانند نرم افزار CRM مایکروسافت، هیچ گونه تعهد قانونی در مورد امنیت ارائه نمیدن. همچنین معمولا پشتیبانی هم وجود نداره که به شما اطلاع بده چطور میتونید این نرم افزار ها رو به طور ایمن پیاده سازی کنید. توسعه دهندگان مسئول ایجاد نرم افزار، اغلب کارشناسان امنیتی نیستن و ممکنه نحوه اجرای بهروشهای امنیتی رو ندونند.
منابعی مثل فهرست ۱۰ آسیبپذیری برتر OWASP به شکل عمومی در دسترس هستند. اما این منابع همیشه دستورالعملهای کافی در مورد نحوه پیادهسازی ویژگیهای امنیتی برای محافظت در برابر این نقصها و ریسک نرم افزار های اوپن سورس رو ارائه نمیدند.
اغلب نرم افزار های اوپن سورس نیاز به استفاده از کتابخونههای شخص ثالث دارن. این کتابخونهها به صورت از پیش آماده شده تهیه میشن و مورد استفاده قرار میگیرن. ماهیت جعبه سیاهی این کتابخونهها، شناسایی و رفع نقاط آسیب پذیری که ممکنه با استفاده ازشون به نرم افزار تزریق بشه رو دشوارتر و وقت گیرتر میکنه.
3. مسائل مربوط به مالکیت معنوی
بیش از 200 نوع مجوز وجود داره که میتونن برای نرم افزار های اوپن سورس اعمال بشن. از جمله Apache، GPL و MIT. بسیاری از این مجوزها با همدیگه سازگار نیستن. به این معنی که برخی از مؤلفهها رو نمیشه با هم استفاده کرد چون هنگام استفاده از نرمافزار اوپن سورس باید از همه شرایط پیروی کنید. هرچقدر اجزای بیشتری رو استفاده کنید، ردیابی و مقایسه همه این مقررات مربوط به مجوزها دشوارتر میشه.
برخی از مجوزها شامل بند «کپیلفت» هستن. این بند از شما میخواد هر نرمافزاری که با استفاده از مؤلفههای تحت پوشش ایجاد شده رو به عنوان منبع باز به طور کامل منتشر کنید. این امر مالکیت خصوصی نرم افزار های اوپن سورس رو غیرممکن میکنه. به دلیل وجود این ریسک نرم افزار های اوپن سورس ، استفاده ازشون برای مقاصد تجاری جذابیت کمتری پیدا میکنه.
4. نداشتن گارانتی از ریسک های عمده نرم افزار های Open-Source
نرم افزار های اپن سورس، هیچ گونه ضمانتی در مورد امنیت، پشتیبانی یا محتواشون ارائه نمی دن. البته بعضی از پروژه ها حمایت می شن، اما این کار توسط افراد داوطلب انجام میشه و خیلی راحت و بدون اطلاع قبلی هم ممکنه حذف بشه.
این ریسک نرم افزار های متن باز ، باعث میشه اعضای داوطلب انجمن معمولاً نرمافزار رو از نظر مسائل امنیتی ارزیابی کنن و از طریق انجمنهای باز یه سری پشتیبانی ارائه بدن. اما این افراد به هیج وجه موظف به انجام این کار نیستند و هیچ مسئولیتی هم در مورد ارائه راهنماییهای نادرست متوجهشون نیست.
نرمافزار اوپن سورس یا متن باز، توسط جوامعی از مشارکتکنندگان ناشناس ایجاد میشه. به همین دلیل تأیید اینکه کد ارائهشده اصلیه و از یه منبع شخص ثالث با حقوق مالکیت معنوی ثبتشده گرفته نشده، دشواره. این در عمل به این معنیه که اگه از نرمافزار اوپن سورسی استفاده کنید که حاوی کدهایی با حقوق نقض شده باشه، مسئولتش متوجه شما خوهد بود.
5.نظارت ضعیف روی ادغام ها
اگه از تیمهای مختلف سوال بپرسید که از کدوم اجزا یا مولفههای نرم افزار اوپن سورس داره استفاده میشه، متوجه میشید که اکثرشون فرآیندهای بازبینی کافی برای جواب دادن به این سوال رو ندارن. ممکنه چندین نسخه از یه مؤلفه توسط تیمهای مختلف استفاده بشه یا اینکه توسعه دهندگان ممکنه در مورد عملکردها یا مجوزهای متناقض آگاه نباشن.
این مشکلات می تونه به دلایل مختلفی اتفاق بیفته: عدم آگاهی از نرم افزار یا عملکردهای امنیتی، عدم ارتباط بین تیم ها یا اعضای یک تیم، یا کافی نبودن یا عدم وجود پروتکل های ردیابی و مستندسازی.
نرمافزارهای اختصاصی شخص ثالث یه سری کنترل دارن که از استفاده از نسخههای متعدد یا ناسازگار جلوگیری می کنه. اما نرم افزار های اوپن سورس معمولاً برای تأیید استفاده صحیح، به کاربر متکی هستن.
6. نارسایی های عملیاتی در نرم افزار های متن باز
استفاده از مؤلفههای نرم افزار های متن باز، میتونه کارهای اضافی زیادی رو برای تیمهایی که از قبل هم دچار مشکل بودن ایجاد کنه. اغلب هم مشخص نیست که چه کسی مسئول رسیدگی به این کارهای اضافی به وجود اومدست. شما باید ردیابی کنید که چه اجزایی استفاده میشن، چه نسخهای هستن، کجا دارن استفاده میشن و اینکه چطوری می تونن با سایر اجزای مورد استفاده تعامل داشته باشن.
علاوه بر این، نیازه که روی مجوزها و بهروزرسانیها و تأثیراتی که ممکنه روی عملکرد داشته باشن هم نظارت وجود داشته باشه. اگه اجزای مورد استفاده دارای عملکردهای غیر ضروری باشن، می تونن بدون اینکه هیچ مزیتی اضافی داشته باشن، صرفا سیستم شما رو پیچیده تر کنن. این ریسک نرم افزار های اوپن سورس باعث میشه گاهی اوقات استفاده از اونها به جای بهره، بیشتر اتلاف و زیان به همراه داشته باشه.
7. شیوه های توسعه ضعیف یکی از ریسک های نرم افزار های متن باز
گاهی اوقات توسعهدهندگان بهجای ادغام اجزا به صورت کامل، بخشهایی از کد رو از نرمافزار منبع باز کپی پیست میکنن و به این ترتیب به طور ناخواسته ریسک نرم افزار های اوپن سورس رو افزایش میدن. انجام این کار ردیابی کد از منظر مجوز یا امنیت رو غیرممکن میکنه.
هنگام همکاری با سایر اعضای تیم، توسعه دهندگان ممکنه اجزاء رو از طریق ایمیل انتقال بدن. در حالی که برای انجام این کار باید از یه مدیر مخزن باینری یا لوکیشن شبکه مشترک استفاده بشه. عدم رعایت این مسئله میتونه باعث بشه کد در حین انتقال در معرض دستکاری قرار بگیره و به این ترتیب امکان درج نقصهای امنیتی یا عملکرد مخرب به راحتی به وجود میاد.
8. عدم پایداری بلند مدت
بسیاری از اشکال نرم افزار های اپن سورس، در واقع محصول کار یک گروه کوچک از مشارکت کنندگان هستن. این افراد به عنوان داوطلب و معمولا در حالی که یک شغل تمام وقت هم دارن، این کار رو انجام میدن. این شرایط میتونه منجر به فرسودگی نرم افزار منبع باز بشه. پروژه راکد میمونه چون مشارکت کنندگان نمی تونن به تعهدات شون پایدار بمونن و ادامه بدن تا پروژه به صورت کامل انجام بشه.
به خصوص اگه به یه نرم افزار اپن سورس تکیه کنید که دیگه نگهداری و پشتیبانی نمی شه، باید به دلیل این ریسک نرم افزار های متن باز ، مدام مشغول رفع آسیب پذیری ها و سایر نقص های کد باشید. بنابراین اطمینان حاصل کنید که هر چند وقت یکبار پروژه ها به روز رسانی می شن.
9. کیفیت نرم افزار های اپن سورس
هیچ ضمانتی وجود نداره که استفاده از یه نرم افزار متن باز، کیفیت محصول شما رو به خطر نندازه. دلیلش هم اینه که استانداردهای توافق شدهای برای ارزیابی کیفیت اجزاء نرم افزار های اوپن سورس وجود نداره و ماهیت مشارکتی این نرم افزار ها ارزیابی و بررسی شون رو چالش برانگیزتر هم میکنه.
10. منحنی یادگیری
برای صاحبان کسبوکار که زیاد به فناوری مسلط نیستن و در موردش آگاهی ندارن، ریسک نرمافزارهای اوپن سورس میتونه این باشه که گاهی اوقات با یک منحنی یادگیری تند و پرشیب همراه میشه. بنابراین، قبل از اینکه تصمیم به استفاده از نرم افزار اوپن سورس بگیرید، ابتدا لازمه آزمایش کنید. مثلا باید ببینید که آیا با گذروندن دورههای آموزش آنلاین میتونید به این مشکل غلبه کنید یا خیر. یا میتونید بررسی کنید که آیا کسی توی تیم تون هست که در مورد استفاده از این نرم افزار مهارت و تجریه داشته باشه یا خیر. اگه چنین شخصی رو پیدا کردید، میتونید ازش بخواید که به شما هم آموزش بده.
تدابیر امنیتی مقابله با ریسک نرم افزار های اوپن سورس
در ادامه قصد داریم در مورد تکنیکهایی صحبت کنیم که میتونید ازشون برای غلبه بر ریسکهای استفاده از نرم افزار های منبع باز استفاده کنید و امنیت برنامه خودتون رو ارتقا بدید.
اسکن خودکار آسیب پذیری در مقابل ریسک نرم افزار های اوپن سورس
یک اسکنر آسیب پذیری نرم افزار های اپن سورس به شما این امکان رو می ده که به صورت خودکار اجزای مختلف منبع باز پروژه تون رو بررسی کنید و نقاط ضعف و آسیب پذیری رو کشف کنید. این اسکنرها این کار رو با اجرای فهرستی از بررسیها انجام میدن. این بررسیها تعیین میکنن که آیا کد شما دارای آسیبپذیریهایی هست که تو پایگاههای داده عمومی، توصیههای امنیتی و سایر منابع منتشر شده باشه، یا خیر.
یک اسکنر آسیبپذیری خوب میتونه مشکلات مربوط به امنیت، مجوزها و کیفیت کد رو آشکار کنه. این مشکلات در صورت کشف و برطرف نشدن میتونن مانع از استفاده حداکثری شما از نرمافزار اپن سورس بشن. اسکن دستی کدها برای شناسایی نقاط ضعف بسیار سخت و مستعد اشتباهه. این در حالیه که با استفاده از ابزار اسکن، میتونید بهطور خودکار کدتون رو بررسی کنید و توصیههایی در مورد رفع مشکلات هم دریافت کنید.
اسکنر به شما امکان می ده پروژه خودتون رو مشاهده کنید و خطرات امنیتی ناشی از استفاده از نرم افزار اوپن سورس رو کاهش بدید. میتونید از این ابزار برای پیگیری مجوزهاتون استفاده کنید و متوجه بشید که آیا باهم سازگار هستن یا خیر؛ با خطمشیهای سازمان شما مطابقت دارن یا نه. این ابزار همچنین میتونه در جهت کاهش ریسک نرم افزار های متن باز ( اوپن سورس ) بهتون کمک کنه تا کتابخانههای منبع باز قدیمی که میتونن کیفیت پایگاه کد شما رو پایین بیارن یا خرابش کنن رو شناسایی کنید.
پذیرش فرهنگ امنیت برای کاهش ریسک نرم افزار های متن باز
تو پروژه های توسعه، بروز اشکالات اجتناب ناپذیر هستن. اما با پذیرش فرهنگ امنیت، میتونید نقاط ضعف کدتون رو زود کشف کنید و به این ترتیب امنیت پروژه تون رو حفظ کنید. اینطوری میتونید نقصها رو هر چه زودتر تو فرآیند توسعه پیدا کنید، یعنی زمانی که رسیدگی بهشون آسونتر و ارزونتره.
رعایت فرهنگ امنیت تضمین میکنه که همه افراد تو سازمان شما برای به حداقل رسوندن ریسک نرم افزار های اوپن سورس با هم مشارکت میکنن. وقتی تیمهای توسعه و امنیت با هم کار میکنن، امنیت در طول چرخه عمر پروژه تو اولویت قرار میگیره و به صورت تک بعدی بهش پرداخته نمیشه.
هر جزء منبع باز باید بر اساس تعداد commit ها (برای تعیین سطح فعالیت)، تعداد باگهای رفع شده تو هر نسخه خاص، و شدت باگهای باز برای هر نسخه خاص ارزیابی بشه. این عوامل به تعیین کیفیت اجزای منبع باز و برآورد ریسک نرم افزار های متن باز یا اوپن سورس کمک میکنن.
کلام آخر
بسیاری از شرکتها و کسب و کارها میتونن با استفاده از نرمافزارهای اپن سورس یا منبع باز سود ببرن. اما همچنین لازمه این آگاهی وجود داشته باشه که ریسک نرم افزار های اوپن سورس و استفاده از اونها معمولا بسیار بالاست. اطلاع داشتن از این خطرات ناشی از به کار گیری نرمافزارهای منبع باز یا متن باز به شما کمک میکنه برای مقابله با مشکلات مرتبط با اشتراکگذاری کدها و سایر مسائل مربوط به امنیت و مالکیت این نرم افزار ها آماده باشید و یا اینکه به اصلاح به طور کل عطای اونها رو به لقاشون ببخشید.
امیدواریم ارائه این اطلاعات در مورد ریسک نرم افزار های اوپن سورس بتونه به شما کمک کنه تا تصمیمی رو بگیرید که در دراز مدت به نفع کسب و کارتونه و پیشرفت و به گسترشش کمک میکنه.
سوالات متداول
نرم افزار Open source یا متن باز چیست؟
اپن سورس یا متن باز اصطلاحیه که در اصل به نرم افزار متن باز (OSS) اطلاق می شه. نرم افزار منبع باز دارای کدهایی هستن که برای دسترسی عمومی طراحی شدن – این معنیش اینه که هر کسی که بخواد میتونه کد رو به دلخواه ببینه، تغییر بده یا توزیع کنه.
آیا نرم افزار های اوپن سورس امن هستند؟
خیر. نرم افزار های اپن سورس یا متن باز، به دلایل مختلف داری سطح امنیت بسیار پایینی هستند.