استراتژی های زنجیره تامین نرم افزار برای حملات سردرگمی وابستگی Parry

استراتژی های زنجیره تامین نرم افزار برای حملات سردرگمی وابستگی Parry

استراتژی‌های زنجیره تامین نرم‌افزار برای حمله وابستگی پاری به هوش داده‌های PlatoBlockchain. جستجوی عمودی Ai.

«در یک نام چیست؟ چیزی که ما گل رز را به هر نام دیگری می نامیم بوی شیرینی می دهد. وقتی شکسپیر این کلمات را نوشت (رومئو و ژولیت، پرده 2، صحنه 2) در سال 1596، او می گفت که یک نام فقط یک قرارداد است. معنای ذاتی ندارد. ژولیت رومئو را به خاطر آنچه هست دوست دارد، نه به خاطر نامش.

اما شکسپیر بدون اینکه بداند حملات سردرگمی وابستگی را نیز توصیف می کرد.

سردرگمی وابستگی زمانی است که بسته هایی که در کد خود استفاده می کنید متعلق به شما نیستند. آنها نام یکسانی دارند، اما این کد شما نیست که در حال تولید است. به همین نام، اما یک بسته بوی گل رز می دهد و بسته دیگر ... بوی بد می دهد.

گزارش های تحقیقاتی اخیر تخمین می زند که 41٪ تا 49٪ از سازمان ها در معرض خطر حملات سردرگمی وابستگی هستند. تحقیقات جدید OX Security نشان می‌دهد که وقتی سازمانی در معرض خطر حمله سردرگمی وابستگی قرار می‌گیرد، ۷۳ درصد از دارایی‌های آن آسیب‌پذیر هستند. این تحقیق بر سازمان‌های متوسط ​​و بزرگ متمرکز بود (73K+، 1K+، 80K+ کارکنان) در طیف وسیعی از بخش‌ها - امور مالی، بازی، فناوری و رسانه - و خطر را در هر بخش در سازمان‌هایی با هر اندازه‌ای پیدا کردند. این تحقیق همچنین نشان داد که تقریباً تمام برنامه های کاربردی با بیش از 1 میلیارد کاربر از وابستگی هایی استفاده می کنند که در برابر سردرگمی وابستگی آسیب پذیر هستند.

هدف این مقاله کمک به درک سردرگمی وابستگی و نحوه جلوگیری از آن است.

دوبل، دوبل

وابستگی ها (که بسته ها نیز نامیده می شوند) بلوک های سازنده نرم افزار شما هستند. به طور معمول این قطعات نرم افزار، چه توسط کل جوامع توسعه یافته باشند و چه در داخل یک شرکت، یک کار مشترک و ضروری را انجام می دهند.

مدیریت بسته ها اغلب برای نصب وابستگی ها و به روز نگه داشتن آنها استفاده می شود. آنها رجیستری های عمومی و خصوصی را برای نام بسته اسکن می کنند و در صورت مساوی بودن سایر موارد، بالاترین شماره نسخه را انتخاب می کنند. مهاجمان با قرار دادن یک بسته "ساختگی" در رجیستری عمومی با همان نام اما نسخه بالاتر از این مزیت استفاده می کنند.

هنگامی که یک مدیر بسته با دو بسته یکسان روبرو می شود، یکی در یک رجیستری عمومی و دیگری در یک رجیستری خصوصی، باعث سردرگمی می شود - از این رو به آن "سرگردانی وابستگی" می گویند. از آنجایی که دو بسته یکسان هستند، مدیر به طور خودکار بسته ای را که نسخه بالاتری دارد نصب می کند - در این مورد، بسته مخرب مهاجم.

این به ربایندگان درب پشتی نرم افزار شما را می دهد. از این نقطه، آنها می توانند نقض داده ها را اجرا کنند، سرقت مالکیت معنوی را انجام دهند، و در غیر این صورت زنجیره تامین نرم افزار اعتماد را به خطر بیاندازند. آن‌ها همچنین می‌توانند نقض انطباق را معرفی کنند که مجازات‌های نظارتی شدیدی را در پی خواهد داشت.

زحمت و دردسر

رویکردهای مختلفی برای حمله سردرگمی وابستگی وجود دارد.

  • فاصله نام. با آپلود یک کتابخانه نرم افزار مخرب در یک رجیستری عمومی - مانند فهرست بسته پایتون (PyPI) یا جاوا اسکریپت رجیستری npm - به این معنا که به همین ترتیب نامگذاری شده است در یک کتابخانه قابل اعتماد و مورد استفاده داخلی، سیستم‌هایی که چک فضای نام/URL را حذف می‌کنند یا واکشی را از یک رجیستری خصوصی اجباری نمی‌کنند، ممکن است به اشتباه کد مخرب را وارد کنند. را حادثه اخیر سردرگمی وابستگی PyTorch نمونه ای از این دست است
  • جعل DNS با استفاده از تکنیکی مانند جعل DNS، سیستم‌ها می‌توانند وابستگی‌ها را از مخازن مخرب بیرون بکشند و در عین حال آنچه را که شبیه URL/مسیرهای داخلی قانونی به نظر می‌رسد، نشان دهند.
  • اسکریپت. با تغییر اسکریپت های ساخت/نصب یا ادغام مداوم/تحویل مستمر پیکربندی‌های خط لوله (CI/CD)، سیستم‌ها را می‌توان فریب داد تا وابستگی‌های نرم‌افزاری را از یک منبع مخرب به جای یک مخزن محلی دانلود کنند.

کارها به خوبی و با دقت انجام شده است

برای محافظت در برابر سردرگمی وابستگی، این شیوه ها را اجرا کنید.

  • سیاست ها را در مدیر بسته تنظیم کنید. مدیران بسته را از اولویت بندی یک بسته عمومی بر یک بسته خصوصی منع کنید.
  • همیشه یک فایل .npmrc داشته باشید. اگر از NPM محبوب به‌عنوان مدیر بسته استفاده می‌کنید، همیشه یک فایل npmrc. که محل واکشی بسته‌ها را در محدوده سازمانی خاص مشخص می‌کند، اضافه کنید.
  • نام بسته را در یک دفتر ثبت عمومی رزرو کنید. راه دیگر برای محافظت در برابر حملات سردرگمی وابستگی، رزرو نام بسته در یک رجیستری عمومی است تا هکرها نتوانند از آن استفاده کنند و بنابراین، نتوانند مدیر بسته را برای نصب یک بسته مخرب "فریب دهند".

برای محافظت کامل در برابر حملات سردرگمی وابستگی، سازمان ها باید همیشه از آن استفاده کنند محدوده سازمان برای همه بسته های داخلی، حتی هنگام انتشار در رجیستری داخلی شما. حوزه‌های سازمانی نیز باید در ثبت عمومی NPM ثبت شوند، بنابراین از ربودن محدوده و سوء استفاده از این سردرگمی جلوگیری می‌شود.

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

یکی دیگر از دلایل رزرو نام بسته در یک رجیستری عمومی این است که اگر شخص دیگری آن را رزرو کند (به طور مخرب یا نه)، توسعه دهندگان باید نام بسته های موجود در رجیستری خصوصی را به نامی تغییر دهند که هنوز در رجیستری عمومی رزرو نشده است. این می تواند یک فرآیند طولانی و خسته کننده باشد.

توجه به این نکته مهم است که همه رجیستری های بسته به کاربران اجازه نمی دهند نام بسته ها را رزرو کنند، بنابراین مطمئن شوید که یکی را پیدا کنید که این امکان را دارد.

خروج، تعقیب شده توسط یک خرس

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

رزهای شکسپیر ممکن است خطر حملات سردرگمی وابستگی را تا صدها سال پیش‌بینی کرده باشند، اما نقل قول دیگری از بارد ممکن است برای محافظت در برابر آنها حکمت داشته باشد: بگذارید هر چشمی برای خودش مذاکره کند و به هیچ عاملی اعتماد نکنید. (هیاهوی زیادی درباره هیچ، پرده 2، صحنه 1)

تمبر زمان:

بیشتر از تاریک خواندن