اگر از پنج توسعهدهنده بپرسید که فایروال وابستگی چیست، احتمالاً پنج پاسخ نصفه و نیمه دریافت خواهید کرد که معمولاً در مورد «مسدود کردن بستههای بد» مبهم است. در اینجا مقدمهای برای این سوال آمده است.cisنسخه الکترونیکی: این یک کنترل امنیتی است که بین یک توسعهدهنده (یا یک سیستم ساخت) و یک رجیستری بسته عمومی قرار میگیرد، بررسی هر وابستگی قبل از اینکه اجازه دانلود یا نصب به آن داده شود، و اگر مخرب، آسیبپذیر یا ناقض سیاستها باشد، آن را به طور خودکار مسدود میکند. این معنای عملی فایروال وابستگی است: نه اسکنری که مشکلات را پس از وقوع گزارش میدهد، بلکه دروازهای که مانع از رسیدن بستهی معیوب به دیسک میشود.
تشریح اصطلاح: معنی فایروال وابستگی #
این نام از آنچه در ابتدا به نظر میرسد، معنای تحتاللفظیتری دارد و بررسی آن، بیشتر ابهامات پیرامون اینکه فایروال وابستگی چیست را برطرف میکند:
وابستگی: هر بسته، کتابخانه یا ماژول خارجی که کد شما از npm دریافت میکند، PyPI, MAVEN, NuGet, سنگهای یاقوت سرخو رجیستریهای مشابه.
فایروال: از امنیت شبکه وام گرفته شده است، جایی که یک فایروال ترافیک را بررسی میکند و آنچه را که نباید عبور کند مسدود میکند. این فایروال همان منطق بررسی-سپس-مسدود کردن را به جای بستههای شبکه، برای نصب بستهها اعمال میکند.
در مجموع، معنای فایروال وابستگی سرراست است: این یک نقطهی بازرسی برای وابستگیهای کد است، همانطور که فایروال شبکه یک نقطهی بازرسی برای ترافیک شبکه است.
چگونه یک فایروال وابستگی در واقع کار میکند #
اکثر پیادهسازیهایی که فایروال وابستگی را برآورده میکنند، از یک توالی مشابه پیروی میکنند:
- استراق سمع: ابزار hooks به مرحله نصب (npm install، pip install و معادلهای آن) یا لایه پروکسی رجیستری میرود، بنابراین درخواست را قبل از دریافت بسته میبیند.
- ارزیابی: بسته و نسخه درخواستی در برابر شاخصهای مخرب شناختهشده، پایگاههای داده آسیبپذیری، سیاست مجوز و سیگنالهای رفتاری (اسکریپتهای نصب مشکوک، فعالیت غیرمعمول نگهدارنده، بستههای تازه منتشر شده بدون سابقه) بررسی میشوند.
- Decisیون: بسته به شدت مشکل و سیاستهای سازمان، نصب یا به طور عادی ادامه مییابد، برای بررسی علامتگذاری میشود، یا کاملاً مسدود میشود.
- ورود به سیستم: هر دcisثبت میشود و به تیمهای امنیتی یک ردپای حسابرسی از آنچه که تلاش شده و آنچه که متوقف شده است، میدهد.
فایروال در مقابل اسکنر: تفاوت واقعی در کجاست؟ #
یک نکتهی رایج در مورد تزریق سریع، تفاوت آن با جیلبریک است. این دو با هم همپوشانی دارند اما یکسان نیستند. جیلبریک کردن به طور خاص در مورد دور زدن یک مدل است. یکی از نکات رایج در مورد سردرگمی افراد هنگام بررسی فایروال وابستگی، تفاوت آن با ... است. standard تحلیل ترکیب نرمافزار (SCA) اسکنر. تمایز در زمانبندی است، نه توانایی. SCA اسکنر معمولاً پس از نصب وابستگیها اجرا میشود یا commitتد، به شما میگوید چه چیزهایی از قبل در کدبیس شما وجود دارد. یک فایروال وابستگی در لحظه نصب، قبل از اینکه بسته حتی به دیسک برسد، اجرا میشود. یکی از آنها یک آشکارساز دود پس از شروع آتشسوزی است؛ دیگری دری است که هرگز اجازه ورود آتش را نمیدهد. بسیاری از برنامههای امنیتی بالغ هر دو را اجرا میکنند: یک فایروال وابستگی برای پیشگیری، و SCA برای مشاهده مداوم آنچه که از قبل وجود دارد
جایی که تیمها واقعاً این را مستقر میکنند #
درک معنای انتزاعی فایروال وابستگی یک چیز است؛ دیدن اینکه کجا به یک فایروال واقعی متصل میشود چیز دیگری است. pipeline یکی دیگر است. نقاط استقرار رایج عبارتند از:
- ایستگاههای کاری توسعهدهندگان: مسدود کردن یک بسته مخرب به محض اینکه توسعهدهنده دستور نصب را به صورت محلی اجرا میکند، قبل از اینکه به مخزن مشترک برسد.
- CI/CD pipelines: اجرای خودکار همان سیاست در هر ساخت، به طوری که یک بسته مسدود شده نتواند از طریق یک کار خودکار که انسان هرگز آن را تماشا نمیکند، وارد شود.
- پروکسیهای رجیستری خصوصی: در مقابل آینه بسته داخلی یک شرکت قرار میگیرد، بنابراین هر درخواست، انسانی یا خودکار، از یک ایست بازرسی عبور میکند.
- عاملهای کدنویسی هوش مصنوعی: با توجه به اینکه عاملهای خودمختار، وابستگیها را خودشان نصب میکنند، این موضوع اهمیت فزایندهای پیدا میکند؛ یک فایروال وابستگی یکی از معدود کنترلهایی است که حتی زمانی که هیچ توسعهدهندهای حضور ندارد تا متوجه نام بسته مشکوک شود، همچنان اعمال میشود.
چرا این کنترل بیش از گذشته اهمیت دارد؟ #
چند سال پیش، این بیشتر در حد یک تئوری بود: بستههای مخرب وجود داشتند، اما آنقدر نادر بودند که بررسی دستی اکثر آنها را شناسایی میکرد. این دیگر درست نیست. ثبتهای عمومی اکنون حجم بالایی از بدافزارها را مشاهده میکنند، کمپینهای انتشار خودکار, برخی دهها نسخه از بستههای مخرب را در عرض چند دقیقه منتشر میکنند، که بهطور خاص برای پیشی گرفتن از بررسی دستی و عبور از سد توسعهدهندگانی که به یک نام آشنا اعتماد دارند، طراحی شدهاند. در آن محیط، پرسیدن اینکه فایروال وابستگی چیست، دیگر یک تمرین تعریفی نیست.cisو به یک سوال عملی تبدیل میشود که آیا یک سازمان پس از نصب اسکریپتها و چرخه حیات، کنترلی بر آن باقی میماند یا خیر. hooks از قبل بردارهای حمله شناخته شدهای هستند. فایروال وابستگی یکی از معدود مکانیسمهایی است که میتواند یک بسته مخرب روز صفر را قبل از اینکه حتی امضایی برای آن وجود داشته باشد، متوقف کند، که این مهم است زیرا اکثر دفاعهای دیگر فقط پس از شناسایی و فهرستبندی یک تهدید کار میکنند.
شیگنی تیم تحقیقاتی خودش این کمپینها را به صورت هفتگی از طریق [سایت] خود دنبال میکند. هشدار زودهنگام بدافزار سیستم، و این الگو ثابت است: مهاجمان سرعت و حجم را بهینه میکنند، نه مخفیکاری، که دقیقاً همان مشخصاتی است که یک فایروال وابستگی برای شناسایی آن در نقطه نصب ساخته شده است، نه پس از نصب.

سوالات متداول #
فایروال وابستگی یک کنترل امنیتی است که هر وابستگی نرمافزاری را در لحظه نصب بررسی میکند و در صورت مخرب، آسیبپذیر یا مغایر با سیاستها، آن را به طور خودکار مسدود میکند.
نه کاملاً. ابزارهای آنتیویروس معمولاً فایلهای موجود روی دیسک را برای یافتن امضاهای شناختهشده اسکن میکنند. یک فایروال وابستگی زودتر، در همان درخواست نصب، مداخله میکند و میتواند نشانههای رفتاری را در بستههایی که قبلاً هرگز دیده نشدهاند، نه فقط تهدیدهای شناختهشده، شناسایی کند.
نه، آنها مکمل یکدیگر هستند. یک فایروال وابستگی از همان ابتدا از نصب یک بستهی معیوب جلوگیری میکند؛ SCA ابزارها همچنان به نظارت بر آنچه در حال حاضر در پایگاه کد شما وجود دارد، برای یافتن آسیبپذیریهای تازه کشفشده در طول زمان ادامه میدهند.
بله، این یکی از مزایای اصلی آن است. از آنجا که رفتار و فرادادهها را ارزیابی میکند (نه فقط تطبیق با لیستی از بستههای مخرب از قبل شناخته شده)، یک فایروال وابستگی خوب ساخته شده میتواند یک بسته مخرب کاملاً جدید را قبل از اینکه توسط هر رجیستری، فروشنده آنتی ویروس یا پایگاه داده CVE فهرست شود، علامتگذاری کند.