بین انتشار سریع نرمافزار منبع باز و سیستمعاملهای مدرن که از قبل با بستهها بارگذاری شدهاند، شرکتها در برابر حملاتی آسیبپذیر هستند که حتی از آنها اطلاعی ندارند.
منبع باز همه جا هست؛ یک مطالعه Synopsys نشان داد که ۹۶٪ از همه کدهای نرم افزار پایگاههای تحلیلشده شامل نرمافزار منبع باز است. این خبر خوب است. از قضا، این خبر بد نیز است، زیرا فراگیر بودن منبع باز باعث ایجاد خطر می شود. چندین دهه پیش، بازیکنان انحصاری ترس، عدم قطعیت و شک در مورد امنیت منبع باز منتشر میکردند، اما ممکن است بالاخره یک نکته داشته باشند. نه در سطح پروژه فردی که زمانی منتقدان به اشتباه پرونده خود را متمرکز میکردند، بلکه در زنجیره تامین، آسیبپذیریهای عظیمی مانند SolarWinds و Log4j به ما یادآوری میکنند که ما هنوز کارهای امنیتی منبع باز ضروری داریم.
اکثر شرکتها در زمینه امنیت شبکه و محیطی بسیار بالغ شدهاند، اما هنوز در درک و گردش کار در مورد منبع باز منبع باز و امنیت زنجیره تامین نرمافزار جوان هستند. هکرها توجه خود را نه تنها به سمت امنیت پروژههای منبع باز فردی، بلکه به شکافهای بین مصنوعات نرمافزاری معطوف کردهاند: وابستگیهای گذرا و سیستمهای ساختی که لمس میکنند.
ما باید این را برطرف کنیم، و راه انجام این کار مسلماً در سطح پروژه فردی نیست، بلکه در سطح توزیع.
زمان بندی همه چیز است
دان لورنک، مدیرعامل و یکی از بنیانگذاران Chainguard، در مصاحبهای گفت: «اساساً منبع باز بسیار محبوبتر شد، و نفوذ در ورودی سختتر شد، بنابراین مهاجمان درب پشتی را هدف قرار میدهند. بازیگران بد، به عبارت دیگر، نیازی به هدف قرار دادن کد شما ندارند. آنها می توانند به یکی از وابستگی هایی که شما حتی نمی دانستید دارید حمله کنند.
هزینه محبوبیت منبع باز این است که بسیاری از مکانیسم های اعتماد واقعاً در ابتدا ساخته نشدند. توزیعهای لینوکس (و سایرین) با انجام کارهای سنگین بستهبندی، ساخت و امضای متن باز، نقش مهمی در پذیرش منبع باز از لحاظ تاریخی ایفا کردهاند. توزیعهایی مانند Debian، Alpine، یا Gentoo دارای اعتبار شایسته به عنوان مقامات هستند، بنابراین کاربران مجبور نبودند کورکورانه به همه منبع باز اعتماد کنند و برخی ضمانتهای گاردریل دریافت کردند.
اما سرعت معرفی بستههای منبع باز جدید بسیار بیشتر از توانایی توزیعکنندگان برای ادامهدادن است. حتی یک رجیستری محبوب (مانند npm برای جاوا اسکریپت) بیش از ۱۰۰۰۰ بسته جدید در روز دریافت می کند. این عدم تطابق اساسی بین سرعت فناوری جدید منبع باز و سرعت نسبتاً یخبندان توزیعها منجر به خروج توسعهدهندگان از توزیعها میشود. آنها در حال نصب بستهها هستند تا جدیدترین و بهترینها را در سریعترین زمان ممکن دریافت کنند، اما تضمینهای اعتماد خود را در این فرآیند از دست میدهند.
اینطور نیست که توزیعها عمداً سرعت پیشرفت را کاهش داده باشند. بلکه باید سرعت به روز رسانی را با ثبات توزیع متعادل کنند. با این حال، با توجه به بی حوصلگی توسعه دهندگان، توزیع ها باید چگونگی سرعت بخشیدن به به روز رسانی ها را بیابند و در نتیجه با پذیرش گسترده و حفظ امنیت نرم افزار منبع باز همگام شوند.
امنیت سخت است
سیستم امتیازدهی آسیب پذیری مشترک (CVSS) و سیگنال های دیگر، مانند کارت امتیازی OpenSSF معیارهای بسیار خوبی را در مورد آسیب پذیری های خاص و شدت آنها ارائه می دهند. اما توزیعهای سیستمعامل مدرن با بستههای از پیش نصبشده بسیار زیادی عرضه میشوند که سیستمعامل متوسط با این آسیبپذیریها مواجه است. اگر چراغ چک موتور ماشین شما همیشه روشن بود، چگونه متوجه میشوید که واقعاً چه زمانی باید به مکانیک خود مراجعه کنید؟ شیوع آسیبپذیریها در توزیعهای لینوکس به قدری زیاد است که نادیده گرفتن آنها آسان شده است.
مشکل دیگر تفاوت معنایی است که زمانی رخ می دهد که توسعه دهندگان منبع باز را خارج از توزیع ها و پایگاه های داده بسته نصب می کنند. اسکنرهای امنیتی مدرن همه به این ابرداده متکی هستند، بنابراین آسیبپذیریهای امنیتی برای منبع باز که خارج از پایگاه داده توزیع یا بسته نصب میشود، شناسایی نمیشوند.
جایگزین این دردهای در حال رشد چیست؟ توزیعهای طراحی شده برای مینیمالیسم و مدولار بودن میتوانند به بهبود امنیت کلی منبع باز کمک کنند. با در نظر نگرفتن بیش از حد لازم برای انجام یک کار، توزیع ها می توانند سطح حمله را کوچک کرده و به تولید زنجیره های تامین قوی تر کمک کنند. به نظر می رسد، این شروع چیزی است که ممکن است به طور قابل توجهی امنیت منبع باز را بهبود بخشد.
تکامل گردشهای کاری و ابزارهای توسعهدهنده
ما در چند سال گذشته شاهد پیشرفت های بزرگی در ایجاد امنیت بهتر پروژه های منبع باز بوده ایم. از چارچوب SSDF که قبلا ذکر شد، تا Sigstore و SLSA، چندین پروژه مکمل زنجیرههای ابزار توسعهدهنده ایجاد کردهاند تا مشخص کنند منبع باز از کجا آمده است، آیا دستکاری شده است یا خیر، و سایر سیگنالهای اعتماد قابل اعتمادتر. این طیف از نگرانی ها اغلب به عنوان “منشأ” نامیده می شود، و این پروژه های منبع باز به شدت در رجیستری های زبان برنامه نویسی اصلی مانند npm، Maven و PyPi و همچنین خود Kubernetes از امضای نرم افزار با Sigstore پشتیبانی می کنند. چکیدههای مانند eBPF و Cilium نیز زنجیره تامین نرمافزار را به ارمغان میآورند. دید امنیتی و اجرای آن به هسته لینوکس نزدیک تر است.
به این روشها، اکوسیستم متنباز در حال سختتر کردن اصول اولیه بزرگ برای ایجاد منشأ مؤلفههای منبع باز در سراسر جریانهای کاری توسعهدهنده است.
یک فناوری بسیار جالب برای تماشا Wolfi است، یک توزیع منبع باز ایجاد و نگهداری شده توسط Chainguard، که بنیانگذاران آن Sigstore و SLSA بودند. Wolfi توزیع را به ضروریترین اجزای آن کاهش میدهد و یک آهنگ نوآوری جدید را معرفی میکند به طوری که فقط بستههای بهروزرسانی شده برای دانلود در دسترس هستند و توسعهدهندگان دیگر نیازی به دانلود نرمافزار منبع باز خارج از توزیع ندارند.
این توزیع به دنبال پاک کردن همه بستههای غیرضروری است تا وقتی امتیاز CVE یا CVSS را میبینید، بدانید که یک آسیبپذیری واقعی است و منفیهای کاذب را از دست ندهید. با کد کمتر، باگهای کمتر و آسیبپذیریهای کمتر، این توزیع باریک به Wolfi اجازه میدهد تا امتیازات CVSS دادههای سطح شدت بیشتری را به کاربران خود بدهد، به علاوه از نسخههای جدید بستههای نرمافزار منبع باز پشتیبانی میکند. Wolfi در سالگرد یک سالگی خود از ۱۳۰۰ پیکربندی بسته پشتیبانی می کند و پشتیبانی اسکنرها را از بازیکنان اصلی امنیت کانتینر مانند Docker Scout، Grype، Snyk، Trivy، Wiz، و Prisma Cloud به دست آورده است.
لورنک میگوید: «منبع باز به این معنی بود که برای همیشه یک نسخه رایگان از آن کد منبع دریافت میکنید. «نرم افزار دیگر اینطور کار نمی کند. به دلیل سرعت یافتن آسیبپذیریها، به برنامهای برای بهروزرسانی مداوم هر نرمافزار نیاز دارید. نرم افزار منقضی می شود، و این دیگر یک مشکل ثابت نیست، پویا است.”
چند سال آینده با توجه به تغییر مسئولیت امنیت منبع باز جالب خواهد بود، زیرا توزیع ها پتانسیل ارائه امنیت بیشتر را با اولویت دادن به سرعت نشان می دهند. شرکت ها باید در مورد منبع باز مورد استفاده خود بسیار دقیق تر عمل کنند و همچنین یاد بگیرند که در مورد چگونگی یافتن و رفع آسیب پذیری هایی که ممکن است قبلاً داشته باشند، زیرک تر باشند.
آیا کار خواهد کرد؟ قطعا شاید. یک چیز مسلم است: ما نمیتوانیم به الگوهای توزیعی که نیازهای امنیتی منبع باز را ارائه نکردهاند، ادامه دهیم.
پست های مرتبط
توزیع کنندگان لینوکس باید مسئولیت بیشتری را در قبال امنیت بر عهده بگیرند
توزیع کنندگان لینوکس باید مسئولیت بیشتری را در قبال امنیت بر عهده بگیرند
توزیع کنندگان لینوکس باید مسئولیت بیشتری را در قبال امنیت بر عهده بگیرند