در دنیایی که سازمانها بیشتر و بیشتر از اجزای منبع باز به عنوان بلوکهای اساسی در زیرساخت اپلیکیشنهای خود استفاده میکنند، در نظر گرفتن SCAهای سنتی به عنوان مکانیزمهای حفاظتی کامل در برابر تهدیدات منبع باز دشوار است.
استفاده از کتابخانههای منبع باز باعث صرفهجویی در زمان کدنویسی و اشکالزدایی میشود و به این ترتیب زمان ارائه اپلیکیشنهای ما را کوتاه میکند. اما، از آنجایی که پایگاههای کد به طور فزایندهای از نرمافزار متنباز تشکیل میشوند، زمان آن فرا رسیده است که هنگام انتخاب یک پلتفرم SCA به کل سطح حمله – از جمله حملات به خود زنجیره تامین – دقت کنیم.
تاثیر یک وابستگی – Dependency
هنگامی که یک شرکت یک کتابخانه منبع باز به اپلیکیشنش اضافه میکند، احتمالا نه تنها کتابخانهای را که قصد داشت، بلکه بسیاری از کتابخانههای دیگر را نیز به کدها اضافه میکند. این به دلیل روشی است که کتابخانههای منبع باز ساخته میشوند: دقیقاً مانند هر اپلیکیشن دیگری روی کره زمین، آنها سرعت تحویل و توسعه را هدف قرار میدهند و به این ترتیب، به کدهایی که افراد دیگر ساختهاند – یعنی کتابخانههای منبع باز دیگر تکیه میکنند.
بستهای که اپلیکشینتان اضافه میکنید، خودش ممکن است از بسته دیگری استفاده کرده باشد، در نتیجه اپلیکیشن شما ناگریز به آن بسته دوم هم وابسته است. به بیان سادهتر، اگر برنامه شما از بسته A استفاده میکند و بسته A از بسته B استفاده میکند، برنامه شما به طور غیر مستقیم به بسته B بستگی دارد.
و اگر بسته B آسیبپذیر است، پروژه شما نیز آسیبپذیر است. این مشکل باعث به وجود آمدن دنیای SCA ها – پلتفرم های تجزیه و تحلیل ترکیب نرم افزار – شد که می تواند به شناسایی آسیبپذیریها و پیشنهاد رفع آنها کمک کند.
با این حال، SCAها تنها مشکل آسیبپذیریها را حل میکنند. در مورد حملات زنجیره تامین چطور؟
حملات در مقابل آسیبپذیری
ممکن است واضح نباشد که منظور ما از ریسک “ناشناخته” چیست. قبل از اینکه به تمایز بپردازیم، ابتدا تفاوت بین آسیب پذیری ها و حملات را در نظر می گیریم:
یک آسیبپذیری:
- یک اشتباه غیر عمدی (به غیر از حملات بسیار خاص پیچیده)
- توسط یک CVE شناسایی شده است
- در پایگاه های داده عمومی ثبت شده است
- دفاع قبل از بهره برداری امکان پذیر است
- شامل هر دو آسیبپذیری معمولی و روز صفر است
- مثال: Log4Shell یک آسیب پذیری است
حمله زنجیره تامین
- یک فعالیت مخرب عمدی
- فاقد شناسایی خاص CVE است
- توسط SCAهای استاندارد و DBهای عمومی ردیابی نشده است
- مثال : SolarWinds یک حمله زنجیره تامین است
یک ریسک ناشناخته، تقریباً طبق تعریف، حمله به زنجیره تامین است که به راحتی توسط پلتفرم SCA شما قابل شناسایی نیست.