Dependency-Check (بررسی وابستگیهای کتابخانهای) چیست و چه کاربردی دارد؟
میتوان گفت که در حرفه کدنویسی، امروزه ما همگی به شدت به کتابخانههای اپن سورس (منبع باز) و شخص ثالث متکی هستیم. با استفاده از این وابستگیهای کتابخانهای، از دانش سایر متخصصان این حرفه در سرتاسر جهان بهره مند میشویم. و از این خاطر که نیازی نیست خودمان همه چیز را از ابتدا بنویسم، زمان کمتری برای انجام یک پروژه صرف میکنیم. علاوه بر این مجبور نیستیم این کتابخانههای پشتیبان را خودمان نگهداری کنیم. که این موضوع نیز منجر به صرفهجویی در زمان و انرژی مصرفی ما میشود.
در حالی که استفاده از کدهای در دسترس عموم حیرتانگیز به نظر میرسد و مطمئناً مزایای زیادی برای ما به همراه خواهد داشت، بد نیست که به نکات منفی آن نیز اشاره کنیم. جلوتر از همه، یک مشکل بنیادین در استفاده از کدهای در دسترس عموم وجود دارد: آسیبپذیریهای موجود در آن کد نیز در کد ما گنجانده میشود. با انجام این کار، آسیبپذیریهای آنها را نیز به برنامه خود تزریق میکنیم.
در حالی که عموماً پروژههای اپن سورس آسیبپذیریهای خود را به خوبی مدیریت و به موقع آنها را برطرف میکنند، این آسیبپذیریها اغلب پیش از آنکه افراد به طور عمومی از شیوه رفع آنها آگاه شوند، همهگیر میشوند. به این معنی که بهرهبرداران از این آسیبپذیریها نیز به این امر واقفاند و میتوانند از آنها برای نفوذ به امنیت برنامه ما استفاده کنند. در بیشتر موارد، این آسیبپذیریها قابل چشمپوشی هستند، اما اگر خطرات شدید باشند، رسیدگی سریع به آنها ضروری است.
OWASP Dependency-Check
پروژهی امنیت برنامههای اپن وب (Open Web Application Security Project) یا اختصارا OWASP، نام سازمانی غیرمنفعتطلبانه است که بر روی بهبود امنیت نرمافزار کار میکند. (https://owasp.org/about)
Dependency-Check یکی از پروژه های آنهاست. این یک ابزار تجزیه و تحلیل ترکیب نرم افزار (SCA) است که پروژه ها را به منظور کشف آسیب پذیری های آشکار، اسکن می کند.
چه فایلها/زبانهایی را میتوان برای یافتن آسیبپذیری اسکن کرد؟
Dependency-Check میتواند انواع مختلفی از فایلها و زبانها را اسکن کند:
Node.js، Python، Ruby Gemspec، Swift، OpenSSL، Nuspec، Nexus، Jar، CocoaPods، CMake، Central، Autoconf، Assembly و Archive
Dependency-Check چگونه کار می کند؟
این ابزار با شمارش پلتفرم مشترک (Common Platform Enumeration) یا اختصارا CPE، پروژه را به منظور یافتن شواهد و استناداتی که ممکناست به شناسایی وابستگیهای کتابخانهای یا Dependency منجر شود اسکن میکند. علاوه بر این Dependency-Check از خدمات شخص ثالث مانند NPM Audit API، OSS Index، retireJS و Bundler Audit هم استفاده میکند.
هنگامی که Dependency-Check نام یک وابستگی را پیدا کرد، کاتالوگ آسیبپذیریها و شیوههای رایج مواجهه با آنها را (CVE) را در صورت وجود هرگونه آسیبپذیری بررسی میکند. برنامه CVE آسیبپذیریهای کشفشدهی امنیت سایبری را شناسایی، تعریف و فهرستبندی میکند.
در حال حاضر، 170.000 آسیب پذیری در CVE فهرست شده است. CVE همچنین امکان جستجوی دستی آسیبپذیریها را به سادگی با وارد کردن نام dependency در وبسایت زیر فراهم میکند:
Leave feedback about this