این ساده لوحانه است که فکر کنیم همین که یک نرمافزاری را به صورت متنباز منتشر کردیم قرار است اشخاصی رخنهها را پیدا کرده گزارش کنند و یا حتی برطرف نمایند. این اتفاق تنها برای نرمافزارهای متن باز معروف و معتبر اتفاق میافتد. در نتیجه ممکن است نرمافزاری متن باز یک آسیبپذیری امنیتی را مدتها با خود حمل نماید و کسی برای آن اقدامی انجام ندهد. طرفداران نرمافزارهای متن بسته میگویند که «یک نگاه متخصص، بهتر از هزاران نگاه اتفاقی افراد به کد است» البته در این جمله مبالغه هم دیده میشود اما باید توجه داشت که یک نرمافزار متن باز هم نیازمند افراد متخصصی است که به بهبود پروژه تعهد داشته باشند.
با ارائه دسترسی آزاد به توسعه دهندگان، توسعه نرم افزارهای تجاری سرعت می یابد و نیاز نیست برنامه ها از ابتدا کامل ساخته شوند.
با این حال، تحقیقات نشان می دهد که 78 درصد از مجموعهکد[1]های بازرسی شده دارای حداقل یک آسیب پذیری متن باز است که 54 درصد از آنها بسیار خطرناک بوده و هکرها می توانند از آن استفاده کنند. شواهد واضحی وجود دارد که نشان می دهد استفاده از کد منبع باز خطرات امنیتی دارد. چنین خطرات اغلب به دلیل کیفیت کد منبع باز (یا فقدان آن) بوجود نمی آیند بلکه به دلیل ترکیبی از عوامل دخیل در ماهیت مدل متن باز و نحوه مدیریت نرم افزارها توسط سازمان ها است.
با توجه به ساختار جامعه و توزیع بی رویه آن ، انواع خطرات-از جمله برخی خطرات امنیت سایبری-با استفاده از نرم افزار منبع باز ایجاد می شود.
آسیب پذیری های نرم افزار منبع باز توسط خود مشارکت کنندگان و همچنین سازمان هایی مانندOpen Web Application Security Project (OWASP) و National Vulnerability Database (NVD) به اطلاع عموم می رسد. اگر شما عضو انجمن پروژه خاصی هستید، معمولا اخطار پیشرفته را قبل از اینکه به صورت عمومی در گروه هایی مانند OWASP و NVD اعلام کنند، دریافت می کنید اما هر کس دیگری که عضو از انجمن است نیز این هشدار را دریافت می کند. این بدان معناست که اگر در نگهداری از آخرین نسخه ها یا به روزرسانی اجزا کوتاهی کنید، خود را در معرض خطرات قرار می دهید، زیرا آسیب پذیری ها اغلب توسط مجرمان سایبری شناسایی و مورد سوء استفاده قرار می گیرند.
نرم افزار متن باز فاقد هرگونه ادعا یا تعهد قانونی در مورد امنیت است و تنها پشتیبانی انجمن به شما اطلاع می دهد که چگونه می توانید آن را به طور ایمن پیاده سازی کنید. توسعه دهندگان مسئولِ ایجاد نرم افزار اغلب متخصص امنیت نیستند و ممکن است بهترین شیوه پیاده سازی را ندانند.
اگرچه منابعی مانند OWASP فهرست 10 آسیب پذیری خطرناک را در اختیار عموم قرار می دهند، اما همیشه دستورالعمل اجرای ویژگی های امنیتی برای محافظت در برابر این نقص ها را ارائه نمی دهند.
اغلب نرم افزارهای متن باز شامل کتابخانه های شخص ثالث هستند یا ملزم به استفاده از آن ها هستند که به وسیله مدیریت پکیجها بدون بازرسی دریافت می شوند. ماهیت جعبه سیاه این کتابخانه ها ، شناسایی و رفع ایراد هرگونه آسیب پذیری که ممکن است تزریق شود را دشوارتر و زمان برتر می کند.
بیش از 200 نوع مجوز وجود دارد که می تواند برای نرم افزارهای متن باز اعمال شود ، از جملهApache ، GPL و MIT. بسیاری از این مجوزها با یکدیگر ناسازگار هستند ، بدین معنا که اجزای خاصی را نمی توان در کنار هم استفاده کرد ، زیرا هنگام استفاده از نرم افزار منبع باز باید تمام شرایط را رعایت کنید. هرچه از اجزای بیشتری استفاده کنید ، ردیابی و مقایسه همه شرایط مجوز دشوارتر می شود.
برخی از مجوزها شامل بندهای “copyleft”هستند که از شما می خواهند هرگونه نرم افزاری که با اجزای تحت پوشش ایجاد شده است را به صورت متن باز، به طور کامل، منتشر کنید. این امر استفاده از آن در نرم افزارهای اختصاصی را غیرممکن می کند و برای استفاده در مقاصد تجاری جذابیت کمتری دارد.
نرم افزار منبع باز هیچ گونه ضمانتی از نظر امنیت ، پشتیبانی یا محتوا ندارد. اگرچه بسیاری از پروژه ها پشتیبانی می شوند ، اما توسط داوطلبان انجام می شود و توسعه آنها بدون اطلاع قبلی متوقف می شود.
اعضای انجمن معمولاً نرم افزار را برای مسائل امنیتی ارزیابی می کنند و از طریق انجمن های فعال پشتیبانی می کنند ، اما آنها موظف به انجام این کار نیستند و هیچ گونه مسئولیتی در قبال راهنمایی های اشتباه ندارند.
از آنجا که نرم افزار متن باز با مشارکت افراد ناشناس در انجمن ها ایجاد می شود ، به سختی می توان تأیید کرد که کد ارائه شده اصلی است و از منبع شخص ثالث با حقوق مالکیت معنوی ثابت گرفته نشده است. این در عمل به این معناست که اگر از نرم افزار منبع باز استفاده کنید که مشخص شده حاوی کدی با حقوق نقض شده است ، می توانید مسئول نقض آن باشید.
تیمها اغلب برای استفاده از اجزای متن باز از فرآیندهای بازبینی نارسا یا منسوخ بهره می گیرند. تیم های توسعه دهنده ممکن است از نسخه های مختلف یک کامپوننت استفاده کنند و یا از عملکرد ناسازگار یا مجوز آنها بی اطلاع باشند.
این مسائل می تواند به دلیل عدم آگاهی از عملکرد نرم افزاری یا امنیتی، عدم ارتباط بین تیم ها یا اعضای تیم، یا عدم وجود پروتکل های پیگردی و مستندسازی کافی رخ دهد.
بر خلاف نرم افزار اختصاصی شخص ثالث، که دارای کنترل های داخلی برای جلوگیری از استفاده از نسخه های متعدد یا ناسازگار است، اجزای متن باز معمولاً برای تأیید استفاده مناسب به کاربر متکی هستند.
استفاده از اجزای منبع باز می تواند کارهای اضافی زیادی را برای تیم ها ایجاد کند و اغلب مشخص نیست که چه کسی مسئول این کار است. شما باید قطعات مورد استفاده ، نسخه آنها، محل استفاده و نحوه تعامل آنها با سایر اجزای مورد استفاده را پیگیری کنید.
علاوه بر این، نیاز به مقایسه مجوزها و نظارت بر به روزرسانی ها و افزونه ها در صورت موجود بودن، از جمله تأثیرات آنها بر عملکرد است. اگر اجزای مورد استفاده دارای عملکردهای غیر ضروری باشند ، می توانند بدون هیچ فایده ای به سیستم شما پیچیدگی اضافه کنند.
اگر توسعه دهندگان بخش هایی از کد نرم افزار منبع باز را به جای یکپارچه سازی کامل اجزا، copy-past کنند، می توانند ناخواسته خطرات را افزایش دهند. با انجام این کار، ردیابی آن کد از منظر مجوز (licensing)یا امنیت غیرممکن می شود.
توسعه دهندگان هنگام همکاری با سایر اعضای تیم، ممکن است اجزاء را از طریق ایمیل به جای یک مدیر مخزن باینری یا مکان شبکه مشترک به اعضای تیم منتقل کنند. این روش می تواند کد را در برابر دستکاری در حین انتقال آسیب پذیر کند و اجازه وارد کردن اشکالات امنیتی یا عملکردهای مخرب را می دهد.
تحقیق جدید شرکت «RiskSense» نشان میدهد که تعداد آسیبپذیریهای نرم افزارهای متن باز نسبت به سال گذشته میلادی، بیش از دو برابر شده است.
برای تهیه این گزارش که عنوان «واقعیت تاریک دنیای متن باز» را یدک میکشد، شرکت از اطلاعات ۵۴ پروژه متن باز از سال ۲۰۱۵ تا فصل اول ۲۰۲۰ استفاده کرده که نتیجه آن، کشف ۲۶۹۴ مورد آسیبپذیری یا تهدید امنیتی منحصر به فرد (CVE) بوده است.
«در حالی که اغلب مواقع امنیت کد متن باز بالاتر از نرم افزارهای تجاری درنظر گرفته میشود، تحقیق اخیر نشان میدهد که تعداد آسیبپذیریها در این نرم افزارها افزایش چشمگیری داشته و میتواند برای بسیاری از سازمانها به عنوان نقطه کور تلقی شود. از آنجایی که نرم افزارهای متن باز به صورت روزانه مورد استفاده قرار میگیرند، زمانی که آسیبپذیریها کشف میشوند، میتوانند عواقب بسیار سنگینی داشته باشند.»
بر اساس این تحقیق، تعداد آسیبپذیریها در نرم افزارهای متن باز در سال 2019 به ۹۶۸ مورد رسیده که افزایشی چشمگیری را نسبت به ۴۲۱ آسیبپذیری در سال ۲۰۱۸ تجربه کرده است. مدیرعامل این شرکت امنیتی، Srinivas Mukkamala»» اطلاعات بیشتری پیرامون این گزارش به اشتراک گذاشته است:
در تحقیق شرکت RiskSense به زمان موردنیاز برای اضافه شدن آسیبپذیریهای این نرم افزارها به «دیتابیس ملی آسیبپذیری» (NVD) نیز اشاره شده. بطور میانگین از زمان اعلام عمومی آسیبپذیری تا اضافه شدن آن به این دیتابیس، ۵۴ روز طول میکشد.
این تاخیر عواقب جدی برای کسب و کارها دارد چرا که آنها تقریبا دو ماه در معرض ریسکهای امنیتی قرار دارند. این تاخیر درباره تمام آسیبپذیریها حتی آنهایی که بسیار خطرناک درنظر گرفته میشوند نیز وجود دارد.
در میان پروژههای متن باز مورد تحلیل در این گزارش، سرور اتوماسیون «جنکینز» حاوی بیشترین CVE بوده است. این سرور با ۶۴۶ آسیبپذیری در صدر قرار گرفته و پس از آن، MySQL با تعداد ۶۲۴ آسیبپذیری حضور دارد. استفاده از برنامههای متن باز فواید زیادی دارند، با این حال گزارش جدید نشان میدهد که مدیریت آسیبپذیریها در کتابخانهها میتواند چالشهای منحصر به فردی برای کسب و کارها و توسعهدهندگان ایجاد کند.
بر اساس گزارش جدید OSSRA آسیب پذیری های منبع باز در حال افزایش است. گزارش 2021 “Open Source Security and Risk Analysis” (OSSRA)، تهیه شده توسط Synopsys Cybersecurity Research Center (CyRC)، نتایج بیش از 1500 وارسی از مجموعهکدهای تجاری را که توسط تیم خدمات حسابرسیBlack Duck® انجام شده است، بررسی می کند. این ششمین نسخه از گزارش سالانه در مورد وضعیت امنیت منبع باز و رعایت مجوز است. گزارش:
گزارش OSSRA 2021 این واقعیت را تأیید می کند که نرم افزار منبع باز پایه و اساس اکثر برنامه های کاربردی در همه صنایع را فراهم می کند. همچنین نشان می دهد که بسیاری از این صنایع در مدیریت ریسک منبع باز و رعایت مجوز تلاش می کنند. مثلا:
همه شرکت هایی که در بخش صنعت بازاریابی مورد بازرسی قرار گرفتند – که شامل بازاریابی، CRM و رسانه های اجتماعی می شود – در مجموعهکدهای خود متنباز داشتند که 95 درصد از آن مجموعهکدها نیز دارای آسیب پذیری های متن باز بودند.
استفاده گسترده از اجزای منبع باز “رها شده” در همه صنایع وجود دارد. 91 درصد هشدارهای مجموعهکدها دارای وابستگیهای منبع باز بودند که در دو سال گذشته هیچ فعالیت توسعه ای نداشتند – این بدان معناست که هیچگونه بهبود کد و هیچگونه اصلاح امنیتی صورت نگرفته است. بر خلاف نرم افزارهای تجاری، که پشتیبانی هایی دارند که بهروزرسانی کاربران را انجام میدهند، منبع باز به منظور مشارکت به انجمن متکی است. هنگامی که یک پروژه منبع باز دیگر از این مشارکت برخوردار نیست، مسائل امنیتی می تواند به یک مشکل بزرگ تبدیل شود.
وجود اجزای منبع باز قدیمی در نرم افزارهای تجاری معمول است. 85درصد از مجموعه کدها حاوی وابستگی های منبع باز بود که بیش از 4 سال بود که از رده خارج شده بوند. برخلاف پروژه های رها شده، این اجزای منبع باز قدیمی دارای انجمن های توسعه دهنده فعال هستند که به روز رسانی و افزونه های امنیتی را منتشر می کنند. اما این افزونه ها توسط مصرف کنندگان تجاری پایین دستی آنها اعمال نمی شود.
آسیب پذیری های متن باز به جای کاهش رو به افزایش است. در سال 2020 درصد مجموعه کدهای دارای آسیب پذیری به 84درصد افزایش پیدا کرده است که 9 درصد نسبت به سال 2019 بیشتر است. به طور مشابه آسیب پذیری های بسیار خطرناک از 49 درصد به 60 درصد جهش پیدا کرده است. برخی از 10 آسیب پذیری خطرناک که در مجموعه کدهای سال 2019 کشف شده بود در وارسی های سال 2020 نیز با درصد افزایش قابل توجهی تکرار شده بود.
بیش از 90 درصد از مجموعه کد های بازرسی شده دارای اجزای منبع باز با تضاد مجوز، مجوزهای سفارشی یا بدون مجوز است. 65درصد از مجموعهکدهای بازرسی شده در سال 2020 حاوی ناسازگاری های مجوز نرم افزار منبع باز بود که معمولاً شامل مجوز عمومی GNU بود. 26درصد از مجموعه کدها از منبع باز بدون مجوز یا مجوز سفارشی استفاده می کردند. هر سه موضوع غالباً باید از نظر نقض احتمالی مالکیت معنوی و سایر نگرانی های قانونی، به ویژه در زمینه ادغام و کسب مالکیت، مورد ارزیابی قرار گیرند.
چهار برنامه محبوب از راه دور متن باز VNC، در مقابل ۳۷ آسیب پذیری امنیتی، آسیب پذیر شناخه شده اند که بسیاری از آنها در ۲۰ سال گذشته شناخته نشده و بعضی از آنها ممکن است به مهاجمین از راه دور اجازه دهند تا سیستم هدف را به خطر بیندازند.
) VNCمحاسبات شبکه مجازی) یک پروتکل به اشتراک گذاری گرافیکی و متن باز در دسکتاپ گرافیکی مبتنی برRFB (Remote FrameBuffer) است که به کاربران امکان می دهد تا از راه دور کامپیوتر دیگری مشابه سرویس RDP مایکروسافت را از راه دور کنترل کنند.
اجرای سیستم VNC شامل “کامپوننت سرور” است که بر روی رایانهای که دسکتاپ خود را به اشتراک میگذارد، اجرا می شود، و یک “کامپوننت کلاینت” که روی رایانهای که اشتراک گذاری را میپذیرد، اجرا میشود.
به عبارت دیگر، VNC به شما امکان می دهد از ماوس و صفحه کلید خود برای کار بر روی یک کامپیوتر در یک یک جای دیگر استفاده کنید، انگار که جلوی آن نشسته اید.
برنامه های VNC بی شماری به صورت آزاد و تجاری و سازگار با سیستم عامل های پرکاربردی مانندLinux ،macOS ، Windows و Android وجود دارند.
با توجه به اینکه در حال حاضر بیش از ۶۰۰،۰۰۰ سرور VNC از راه دور از طریق اینترنت قابل دسترسی است و نزدیک به ۳۲٪ آنها به سیستم های اتوماسیون صنعتی متصل هستند، محققان امنیت سایبری در کسپرسکی چهار نوع گسترده متن باز VNC را که بیشتر مورد استفاده قرار گرفته است، بررسی کردهاند. از جمله:
محققان پس از تجزیه و تحلیل این نرم افزار، در مجموع ۳۷ آسیب پذیری تخریب حافظه(memory corruption) جدید را در نرم افزارهای کلاینت و سرور دریافتند: ۲۲ مورد در UltraVNC ، ۱۰ مورد در LibVNC ، ۴ مورد در TightVNC و ۱ در TurboVNC.
کسپرسکی می گوید: “همه این اشکالات به استفاده نادرست از حافظه مرتبط است. استفاده از آنها فقط منجر به نقص عملکرد و انکار سرویس میشود. در موارد جدی تر، مهاجمان می توانند به صورت غیرمجاز به اطلاعات دستگاه دسترسی پیدا کنند یا بدافزار را در سیستم قربانی اجرا کنند.
برخی از آسیب پذیری های امنیتی کشف شده همچنین می توانند منجر به حمله اجرای کد از راه دور RCE)) شوند، به این معنی که یک مهاجم می تواند از این نقص برای اجرای کد دلخواه در سیستم مورد نظر سوء استفاده کند و کنترل آن را به دست آورد.
از آنجا که برنامه سمت مشتری اطلاعات بیشتری را دریافت می کند و شامل مؤلفه های رمزگشایی داده هایی است که توسعه دهندگان معمولاً هنگام برنامه نویسی مرتکب خطا شده اند، بیشتر آسیب پذیری ها روی نسخه مشتری این نرم افزار تأثیر می گذارد.
از طرف دیگر، سمت سرور نسبتاً حاوی یک پایگاه کد کوچک است و تقریباً کارکرد پیچیدهای ندارد، که احتمال آسیب پذیری حافظه و تخریب را کاهش می دهد.
با این حال، این تیم برخی از اشکالات قابل بهره وری سمت سرور، از جمله نقص سرریز بافر پشته را در سرور TurboVNC کشف کرده اند که امکان دستیابی به اجرای کد از راه دور روی سرور را ممکن می سازد.
شرکت رایان سامانه آرکا نمایندگی انحصاری Safetica (سیفتیکا) در ایران
ما پایگاه های ارزیابی امنیتی زیر را بررسی کردیم و متاسفانه برخلاف Safetica که ارزیابیها و بازخوردهای مختلفی در مورد آن ثبت شده بود هیچ بازخوردی در مورد محصولات MyDLP و OpenDLP پیدا نکردیم؛ بنابرین در مطلبی دیگر به بررسی ویژگیهای Safetica و مقایسه با محصولات DLP شناخته شده تر می پردازیم.
• Gartner | |
• Techradar | |
• INFO-TECH RESEARCH GROUP | |
• It Central Station | |
• CyberPal | |
• G2 Crowd |
به نظر میرسد استفاده از نرمافزارهای متنباز در جای مناسب می تواند بسیار مفید باشد. نرم افزارهای متن باز را می توان در جایی که فاکتورهایی همچون امنیت و پشتیبانی دارای اهمیت کمتر و هزینه دارای اهمیت بیشتر باشد، بکار برد اما در مکانهایی همچون سازمانها نمیتوان این ریسک را انجام داد و بهتر است بیشتر روی نرم افزارهای اختصاصی تکیه کرد که دارای قابلیت اطمینان بیشتری هستند.
[1] codebase
شرکت رایان سامانه آرکا، ارائه دهنده ورژن آخر لایسنس سوفوس (v21) را بصورت کاملا تخصصی، داخلی و با قیمت استثنایی