DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

اهمیت تجزیه و تحلیل اجزای نرم افزار شخص ثالث (Software Composition Analysis - SCA) در فرآیند توسعه با انتشار گزارش های سالانه در مورد آسیب پذیری های کتابخانه های منبع باز که توسط Synopsys، Sonatype، Snyk و White Source منتشر می شود، در حال افزایش است. . بر اساس این گزارش وضعیت آسیب‌پذیری‌های امنیتی منبع باز 2020 تعداد آسیب‌پذیری‌های منبع باز شناسایی‌شده در سال 2019 تقریباً 1.5 برابر نسبت به سال قبل افزایش یافته است، در حالی که 60 تا 80 درصد پروژه‌ها از اجزای منبع باز استفاده می‌کنند. به‌طور مستقل، فرآیندهای SCA عمل جداگانه‌ای برای OWASP SAMM و BSIMM به‌عنوان شاخص بلوغ هستند و در نیمه اول سال 2020، OWASP استاندارد تأیید مؤلفه نرم‌افزاری جدید OWASP (SCVS) را منتشر کرد که بهترین روش‌ها را برای تأیید مرحله سوم ارائه می‌کند. اجزای حزب در زنجیره تامین BY.

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

یکی از گویاترین موارد اتفاق افتاد با Equifax در می 2017. مهاجمان ناشناس اطلاعاتی در مورد 143 میلیون آمریکایی از جمله نام کامل، آدرس، شماره تامین اجتماعی و گواهینامه رانندگی به دست آوردند. در 209 مورد، اسناد همچنین شامل اطلاعات کارت های بانکی قربانیان بود. این نشت در نتیجه بهره برداری از یک آسیب پذیری حیاتی در Apache Struts 000 (CVE-2-2017) رخ داد، در حالی که رفع آن در مارس 5638 منتشر شد. این شرکت دو ماه فرصت داشت تا این آپدیت را نصب کند، اما هیچ کس زحمت آن را نمی داد.

این مقاله به موضوع انتخاب ابزاری برای انجام SCA از نقطه نظر کیفیت نتایج تجزیه و تحلیل می پردازد. مقایسه عملکردی ابزارها نیز ارائه خواهد شد. فرآیند ادغام در CI/CD و قابلیت های یکپارچه سازی برای انتشارات بعدی باقی خواهد ماند. طیف وسیعی از ابزارها توسط OWASP ارائه شده است در سایت شما، اما در بررسی فعلی ما فقط به محبوب ترین ابزار منبع باز Dependency Check، پلت فرم منبع باز کمی کمتر شناخته شده Dependency Track و راه حل Enterprise Sonatype Nexus IQ اشاره می کنیم. همچنین نحوه عملکرد این راه حل ها را درک خواهیم کرد و نتایج به دست آمده را برای موارد مثبت کاذب مقایسه خواهیم کرد.

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

اصل عمل

بررسی وابستگی یک ابزار (CLI، maven، ماژول جنکینز، مورچه) است که فایل‌های پروژه را تجزیه و تحلیل می‌کند، اطلاعات مربوط به وابستگی‌ها (نام بسته، گروه، عنوان مشخصات، نسخه...) را جمع‌آوری می‌کند، یک خط CPE (Common Platform Enumeration) ایجاد می‌کند. ، URL بسته (PURL) و آسیب پذیری های CPE/PURL را از پایگاه های داده (NVD، Sonatype OSS Index، NPM Audit API...) شناسایی می کند، پس از آن یک گزارش یک بار مصرف در قالب HTML، JSON، XML می سازد...

بیایید نگاه کنیم که CPE چگونه است:

cpe:2.3:part:vendor:product:version:update:edition:language:sw_edition:target_sw:target_hw:other

  • قسمت: نشان می دهد که جزء مربوط به برنامه (a)، سیستم عامل (o)، سخت افزار (h) (الزامی) است.
  • فروشنده: نام سازنده محصول (الزامی)
  • محصول: نام محصول (الزامی)
  • نسخه: نسخه کامپوننت (مورد منسوخ شده)
  • به روز رسانی: به روز رسانی بسته
  • نسخه: نسخه قدیمی (مورد منسوخ شده)
  • زبان: زبان تعریف شده در RFC-5646
  • نسخه SW: نسخهی نرم افزار
  • SW هدف: محیط نرم افزاری که محصول در آن کار می کند
  • HW هدف: محیط سخت افزاری که محصول در آن کار می کند
  • دیگر: اطلاعات تامین کننده یا محصول

یک نمونه CPE به شکل زیر است:

cpe:2.3:a:pivotal_software:spring_framework:3.0.0:*:*:*:*:*:*:*

این خط به این معنی است که نسخه 2.3 CPE مؤلفه برنامه را از سازنده توصیف می کند pivotal_software با عنوان spring_framework نسخه 3.0.0 اگر یک آسیب پذیری را باز کنیم CVE-2014-0225 در NVD می‌توانیم به این CPE اشاره کنیم. اولین مشکلی که باید فوراً به آن توجه کنید این است که CVE در NVD، طبق CPE، یک مشکل را در چارچوب گزارش می کند و نه در یک جزء خاص. یعنی اگر توسعه‌دهندگان به‌شدت به چارچوب متصل باشند و آسیب‌پذیری شناسایی‌شده بر آن ماژول‌هایی که توسعه‌دهندگان استفاده می‌کنند تأثیری نگذارد، یک متخصص امنیتی به هر طریقی باید این CVE را جدا کند و به به‌روزرسانی فکر کند.

URL نیز توسط ابزار SCA استفاده می شود. فرمت URL بسته به شرح زیر است:

scheme:type/namespace/name@version?qualifiers#subpath

  • طرح: همیشه "pkg" وجود خواهد داشت که نشان می دهد این یک URL بسته است (الزامی)
  • نوع: "نوع" بسته یا "پروتکل" بسته مانند maven، npm، nuget، gem، pypi و غیره. (مورد مورد نیاز)
  • فضای نام برخی از پیشوندهای نام، مانند شناسه گروه Maven، مالک تصویر Docker، کاربر GitHub یا سازمان. اختیاری است و به نوع آن بستگی دارد.
  • نام: نام بسته (الزامی)
  • نسخه: نسخه بسته
  • مقدماتی: اطلاعات صلاحیت اضافی برای بسته، مانند سیستم عامل، معماری، توزیع، و غیره. اختیاری و نوع خاص.
  • مسیر فرعی: مسیر اضافی در بسته نسبت به ریشه بسته

به عنوان مثال:

pkg:golang/google.golang.org/genproto#googleapis/api/annotations
pkg:maven/org.apache.commons/[email protected]
pkg:pypi/[email protected]

آهنگ وابستگی - یک پلت فرم وب در محل که صورتحساب مواد (BOM) آماده تولید شده را می پذیرد CycloneDX и SPDX، یعنی مشخصات آماده در مورد وابستگی های موجود. این یک فایل XML است که وابستگی ها را توصیف می کند - نام، هش، آدرس بسته، ناشر، مجوز. سپس، Dependency Track BOM را تجزیه می کند، به CVE های موجود برای وابستگی های شناسایی شده از پایگاه داده آسیب پذیری (NVD، Sonatype OSS Index...) نگاه می کند، پس از آن نمودارها را می سازد، معیارها را محاسبه می کند، و به طور منظم داده ها را در مورد وضعیت آسیب پذیری اجزا به روز می کند. .

نمونه ای از اینکه یک BOM ممکن است در قالب XML چگونه باشد:

<?xml version="1.0" encoding="UTF-8"?>
<bom xmlns="http://cyclonedx.org/schema/bom/1.2" serialNumber="urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79" version="1">
  <components>
    <component type="library">
      <publisher>Apache</publisher>
      <group>org.apache.tomcat</group>
      <name>tomcat-catalina</name>
      <version>9.0.14</version>
      <hashes>
        <hash alg="MD5">3942447fac867ae5cdb3229b658f4d48</hash>
        <hash alg="SHA-1">e6b1000b94e835ffd37f4c6dcbdad43f4b48a02a</hash>
        <hash alg="SHA-256">f498a8ff2dd007e29c2074f5e4b01a9a01775c3ff3aeaf6906ea503bc5791b7b</hash>
        <hash alg="SHA-512">e8f33e424f3f4ed6db76a482fde1a5298970e442c531729119e37991884bdffab4f9426b7ee11fccd074eeda0634d71697d6f88a460dce0ac8d627a29f7d1282</hash>
      </hashes>
      <licenses>
        <license>
          <id>Apache-2.0</id>
        </license>
      </licenses>
      <purl>pkg:maven/org.apache.tomcat/[email protected]</purl>
    </component>
      <!-- More components here -->
  </components>
</bom>

BOM را می توان نه تنها به عنوان پارامترهای ورودی برای Dependency Track، بلکه برای موجودی کردن اجزای نرم افزار در زنجیره تامین، به عنوان مثال، برای ارائه نرم افزار به مشتری استفاده کرد. در سال 2014 حتی یک قانون در ایالات متحده پیشنهاد شد "قانون مدیریت زنجیره تامین و شفافیت سایبری 2014"، که بیان می کرد که هنگام خرید نرم افزار، هر حالت. مؤسسه باید برای جلوگیری از استفاده از اجزای آسیب‌پذیر درخواست BOM کند، اما این قانون هنوز لازم‌الاجرا نشده است.

با بازگشت به SCA، Dependency Track دارای ادغام های آماده با پلتفرم های اعلان مانند Slack، سیستم های مدیریت آسیب پذیری مانند Kenna Security است. همچنین شایان ذکر است که Dependency Track، در میان موارد دیگر، نسخه های قدیمی بسته ها را شناسایی می کند و اطلاعاتی در مورد مجوزها (به دلیل پشتیبانی از SPDX) ارائه می دهد.

اگر به طور خاص در مورد کیفیت SCA صحبت کنیم، یک تفاوت اساسی وجود دارد.

Dependency Track پروژه را به عنوان ورودی نمی پذیرد، بلکه BOM را می پذیرد. این بدان معناست که اگر بخواهیم پروژه را آزمایش کنیم، ابتدا باید bom.xml را تولید کنیم، برای مثال با استفاده از CycloneDX. بنابراین، Dependency Track مستقیماً به CycloneDX وابسته است. در عین حال، امکان سفارشی سازی را نیز فراهم می کند. این چیزی است که تیم OZON نوشته است ماژول CycloneDX برای مونتاژ فایل های BOM برای پروژه های Golang برای اسکن بیشتر از طریق Dependency Track.

Nexus IQ یک راه حل تجاری SCA از Sonatype است که بخشی از اکوسیستم Sonatype است که شامل Nexus Repository Manager نیز می شود. Nexus IQ می‌تواند هم آرشیو جنگ (برای پروژه‌های جاوا) را از طریق رابط وب یا API و هم BOM را به‌عنوان ورودی بپذیرد، اگر سازمان شما هنوز از CycloneDX به راه‌حل جدیدی تغییر نکند. برخلاف راه‌حل‌های منبع باز، IQ نه تنها به CP/PURL به مؤلفه شناسایی‌شده و آسیب‌پذیری مربوطه در پایگاه داده اشاره می‌کند، بلکه تحقیقات خود را نیز در نظر می‌گیرد، به عنوان مثال، نام تابع یا کلاس آسیب‌پذیر. مکانیسم‌های IQ بعداً در تجزیه و تحلیل نتایج مورد بحث قرار خواهند گرفت.

بیایید برخی از ویژگی های کاربردی را خلاصه کنیم و همچنین زبان های پشتیبانی شده را برای تجزیه و تحلیل در نظر بگیریم:

زبان
Nexus IQ
بررسی وابستگی
آهنگ وابستگی

جاوه
+
+
+

C / C ++
+
+
-

C#
+
+
-

خالص
+
+
+

ارلانگ
-
-
+

جاوا اسکریپت (NodeJS)
+
+
+

پی اچ پی
+
+
+

پــایتــون
+
+
+

یاقوت
+
+
+

پرل
-
-
-

اسکالا
+
+
+

هدف C
+
+
-

سریع
+
+
-

R
+
-
-

Go
+
+
+

کارکرد

کارکرد
Nexus IQ
بررسی وابستگی
آهنگ وابستگی

توانایی اطمینان از اینکه اجزای مورد استفاده در کد منبع از نظر خلوص مجوز بررسی می شوند
+
-
+

امکان اسکن و تجزیه و تحلیل برای آسیب پذیری ها و تمیزی مجوز برای تصاویر Docker
+ ادغام با Clair
-
-

امکان پیکربندی سیاست های امنیتی برای استفاده از کتابخانه های منبع باز
+
-
-

امکان اسکن مخازن منبع باز برای اجزای آسیب پذیر
+ RubyGems، Maven، NPM، Nuget، Pypi، Conan، Bower، Conda، Go، p2، ​​R، Yum، Helm، Docker، CocoaPods، Git LFS
-
+ Hex، RubyGems، Maven، NPM، Nuget، Pypi

وجود گروه تحقیقاتی تخصصی
+
-
-

عملیات حلقه بسته
+
+
+

استفاده از پایگاه داده شخص ثالث
+ پایگاه داده Sonatype بسته شد
+ Sonatype OSS، مشاوران عمومی NPM
+ Sonatype OSS، NPM Public Advisors، RetireJS، VulnDB، پشتیبانی از پایگاه داده آسیب پذیری خود

امکان فیلتر کردن اجزای منبع باز هنگام بارگذاری در حلقه توسعه طبق سیاست های پیکربندی شده
+
-
-

توصیه هایی برای رفع آسیب پذیری ها، در دسترس بودن پیوندها به اصلاحات
+
+- (بستگی به توضیحات در پایگاه داده های عمومی دارد)
+- (بستگی به توضیحات در پایگاه داده های عمومی دارد)

رتبه بندی آسیب پذیری های شناسایی شده بر اساس شدت
+
+
+

مدل دسترسی مبتنی بر نقش
+
-
+

پشتیبانی از CLI
+
+
+- (فقط برای CycloneDX)

نمونه برداری/مرتب سازی آسیب پذیری ها بر اساس معیارهای تعریف شده
+
-
+

داشبورد بر اساس وضعیت برنامه
+
-
+

تولید گزارش در قالب PDF
+
-
-

ایجاد گزارش در قالب JSONCSV
+
+
-

پشتیبانی از زبان روسی
-
-
-

قابلیت های یکپارچه سازی

ادغام
Nexus IQ
بررسی وابستگی
آهنگ وابستگی

ادغام LDAP/Active Directory
+
-
+

ادغام با سیستم ادغام پیوسته Bamboo
+
-
-

ادغام با سیستم ادغام مداوم TeamCity
+
-
-

ادغام با سیستم ادغام پیوسته GitLab
+
+- (به عنوان یک افزونه برای GitLab)
+

ادغام با سیستم ادغام پیوسته جنکینز
+
+
+

در دسترس بودن پلاگین ها برای IDE
+ IntelliJ، Eclipse، Visual Studio
-
-

پشتیبانی از یکپارچه سازی سفارشی از طریق وب سرویس (API) ابزار
+
-
+

بررسی وابستگی

ابتدا شروع کنید

بیایید بررسی وابستگی را روی یک برنامه کاربردی آسیب پذیر اجرا کنیم DVJA.

برای این استفاده خواهیم کرد بررسی وابستگی افزونه Maven:

mvn org.owasp:dependency-check-maven:check

در نتیجه، dependency-check-report.html در فهرست هدف ظاهر می شود.

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

بیایید فایل را باز کنیم. پس از اطلاعات خلاصه درباره تعداد کل آسیب‌پذیری‌ها، می‌توانیم اطلاعاتی درباره آسیب‌پذیری‌ها با سطح بالایی از Severity و Confidence مشاهده کنیم که بسته، CPE و تعداد CVE را نشان می‌دهد.

در مرحله بعدی اطلاعات دقیق تر، به ویژه مبنایی که بر اساس آن تصمیم گرفته شده است (شواهد)، یعنی یک BOM مشخص می آید.

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

بعد توضیحات CPE، PURL و CVE می آید. به هر حال، توصیه هایی برای اصلاح به دلیل عدم وجود آنها در پایگاه داده NVD گنجانده نشده است.

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

برای مشاهده سیستماتیک نتایج اسکن، می‌توانید Nginx را با حداقل تنظیمات پیکربندی کنید یا نقص‌های حاصل را به یک سیستم مدیریت نقص که از اتصال دهنده‌ها برای بررسی وابستگی پشتیبانی می‌کند، ارسال کنید. مثلا Defect Dojo.

آهنگ وابستگی

نصب

Dependency Track، به نوبه خود، یک پلتفرم مبتنی بر وب با نمودارهای نمایشگر است، بنابراین مشکل مبرم ذخیره عیوب در یک راه حل شخص ثالث در اینجا مطرح نمی شود.
اسکریپت های پشتیبانی شده برای نصب عبارتند از: Docker، WAR، Executable WAR.

ابتدا شروع کنید

به آدرس اینترنتی سرویس در حال اجرا می رویم. ما از طریق admin/admin وارد می شویم، لاگین و رمز عبور را تغییر می دهیم و سپس وارد داشبورد می شویم. کار بعدی که انجام خواهیم داد این است که یک پروژه برای یک برنامه آزمایشی در جاوا ایجاد کنیم صفحه اصلی/پروژه ها → ایجاد پروژه . بیایید DVJA را به عنوان مثال در نظر بگیریم.

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

از آنجایی که Dependency Track فقط می تواند BOM را به عنوان ورودی بپذیرد، این BOM باید بازیابی شود. بهره ببریم افزونه CycloneDX Maven:

mvn org.cyclonedx:cyclonedx-maven-plugin:makeAggregateBom

ما bom.xml را دریافت می کنیم و فایل را در پروژه ایجاد شده بارگذاری می کنیم DVJA → وابستگی ها → آپلود BOM.

بیایید به Administration → Analyzers برویم. ما می‌دانیم که فقط Internal Analyzer را فعال کرده‌ایم که شامل NVD می‌شود. بیایید Sonatype OSS Index را نیز وصل کنیم.

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

بنابراین، تصویر زیر را برای پروژه خود دریافت می کنیم:

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

همچنین در لیست می توانید یک آسیب پذیری قابل استفاده برای Sonatype OSS را پیدا کنید:

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

ناامیدی اصلی این بود که Dependency Track دیگر گزارش‌های Dependency Check xml را نمی‌پذیرد. آخرین نسخه های پشتیبانی شده ادغام بررسی وابستگی 1.0.0 - 4.0.2 بود، در حالی که من 5.3.2 را آزمایش کردم.

در اینجا این است تصویریاینجا) زمانی که هنوز ممکن بود.

Nexus IQ

ابتدا شروع کنید

نصب Nexus IQ از بایگانی می آید مستندات، اما ما یک تصویر Docker برای این اهداف ساختیم.

پس از ورود به کنسول، باید یک سازمان و برنامه ایجاد کنید.

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

همانطور که می بینید، راه اندازی در مورد IQ تا حدودی پیچیده تر است، زیرا ما همچنین باید سیاست هایی ایجاد کنیم که برای "مراحل" مختلف (dev, build, stage, release) قابل اجرا باشد. این برای مسدود کردن اجزای آسیب‌پذیر در حین حرکت در خط لوله به تولید، یا مسدود کردن آنها به محض ورود به Nexus Repo هنگام دانلود توسط توسعه‌دهندگان ضروری است.

برای احساس تفاوت بین منبع باز و سازمانی، بیایید همان اسکن را از طریق Nexus IQ به همان روش انجام دهیم. پلاگین Maven، قبلاً یک برنامه آزمایشی در رابط NexusIQ ایجاد کرده بود dvja-test-and-compare:

mvn com.sonatype.clm:clm-maven-plugin:evaluate -Dclm.applicationId=dvja-test-and-compare -Dclm.serverUrl=<NEXUSIQIP> -Dclm.username=<USERNAME> -Dclm.password=<PASSWORD>

URL گزارش تولید شده را در رابط وب IQ دنبال کنید:

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

در اینجا می‌توانید همه نقض‌های خط‌مشی را که سطوح مختلف اهمیت (از اطلاعات تا امنیت بحرانی) را نشان می‌دهند، ببینید. حرف D کنار کامپوننت یعنی کامپوننت Direct Dependency و حرف T کنار کامپوننت یعنی کامپوننت Transitive Dependency یعنی گذرا.

به هر حال، گزارش گزارش وضعیت امنیت منبع باز 2020 از Snyk گزارش می دهد که بیش از 70 درصد از آسیب پذیری های منبع باز کشف شده در Node.js، جاوا و روبی در وابستگی های انتقالی هستند.

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

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

اگر به قسمت آسیب پذیری ها بروید و CVE را گسترش دهید، می توانید توضیحات این آسیب پذیری، توصیه هایی برای حذف و همچنین دلیل نقض این مؤلفه یعنی وجود کلاس را بخوانید. DiskFileitem.class.

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

بیایید فقط موارد مربوط به مؤلفه های جاوای شخص ثالث را خلاصه کنیم و اجزای js را حذف کنیم. در پرانتز تعداد آسیب‌پذیری‌هایی را که خارج از NVD پیدا شده‌اند نشان می‌دهیم.

کل Nexus IQ:

  • وابستگی های اسکن شده: 62
  • وابستگی های آسیب پذیر: 16
  • آسیب پذیری های یافت شده: 42 (8 sonatype db)

بررسی وابستگی کل:

  • وابستگی های اسکن شده: 47
  • وابستگی های آسیب پذیر: 13
  • آسیب پذیری های یافت شده: 91 (14 sonatype oss)

مسیر وابستگی کل:

  • وابستگی های اسکن شده: 59
  • وابستگی های آسیب پذیر: 10
  • آسیب پذیری های یافت شده: 51 (1 sonatype oss)

در مراحل بعدی نتایج به دست آمده را تجزیه و تحلیل خواهیم کرد و متوجه خواهیم شد که کدام یک از این آسیب پذیری ها یک نقص واقعی و کدام یک مثبت کاذب است.

سلب مسئولیت

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

مقایسه نتایج

قوانین و مقررات و شرایط:

یک مثبت کاذب برای آسیب پذیری اجزای شخص ثالث این است:

  • عدم تطابق CVE با جزء شناسایی شده
  • به عنوان مثال، اگر آسیب‌پذیری در چارچوب struts2 شناسایی شود، و ابزار به مؤلفه‌ای از چارچوب struts-tiles اشاره کند، که این آسیب‌پذیری برای آن اعمال نمی‌شود، آنگاه این یک مثبت کاذب است.
  • عدم تطابق CVE با نسخه شناسایی شده مؤلفه
  • به عنوان مثال، این آسیب‌پذیری به نسخه پایتون > 3.5 مرتبط است و ابزار نسخه 2.7 را به عنوان آسیب‌پذیر علامت‌گذاری می‌کند - این یک مثبت کاذب است، زیرا در واقع آسیب‌پذیری فقط برای شاخه محصول 3.x اعمال می‌شود.
  • CVE تکراری
  • به عنوان مثال، اگر SCA یک CVE را مشخص کند که یک RCE را فعال می کند، SCA یک CVE را برای همان مؤلفه مشخص می کند که برای محصولات Cisco تحت تأثیر آن RCE اعمال می شود. در این صورت مثبت کاذب خواهد بود.
  • به عنوان مثال، یک CVE در یک جزء Spring-Web پیدا شد، پس از آن SCA به همان CVE در سایر اجزای Spring Framework اشاره می کند، در حالی که CVE هیچ ربطی به اجزای دیگر ندارد. در این صورت مثبت کاذب خواهد بود.

هدف مطالعه پروژه منبع باز DVJA بود. این مطالعه فقط شامل اجزای جاوا (بدون js) بود.

نتایج خلاصه

بیایید مستقیماً به نتایج بررسی دستی آسیب پذیری های شناسایی شده برویم. گزارش کامل برای هر CVE را می توان در ضمیمه یافت.

نتایج خلاصه برای همه آسیب‌پذیری‌ها:

پارامتر
Nexus IQ
بررسی وابستگی
آهنگ وابستگی

مجموع آسیب‌پذیری‌ها شناسایی شد
42
91
51

آسیب پذیری های نادرست شناسایی شده (مثبت کاذب)
2 (4.76٪)
62 (68,13٪)
29 (56.86٪)

هیچ آسیب‌پذیری مرتبطی یافت نشد (منفی کاذب)
10
20
27

نتایج خلاصه بر اساس جزء:

پارامتر
Nexus IQ
بررسی وابستگی
آهنگ وابستگی

مجموع اجزای شناسایی شده
62
47
59

مجموع اجزای آسیب پذیر
16
13
10

اجزای آسیب پذیر شناسایی نادرست (مثبت کاذب)
1
5
0

اجزای آسیب پذیر شناسایی نادرست (مثبت کاذب)
0
6
6

بیایید نمودارهای بصری بسازیم تا نسبت مثبت کاذب و منفی کاذب را به تعداد کل آسیب پذیری ها ارزیابی کنیم. کامپوننت ها به صورت افقی و آسیب پذیری های شناسایی شده در آنها به صورت عمودی علامت گذاری می شوند.

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

برای مقایسه، مطالعه مشابهی توسط تیم Sonatype انجام شد که پروژه ای از 1531 جزء را با استفاده از OWASP Dependency Check آزمایش می کرد. همانطور که می بینیم، نسبت نویز به پاسخ های صحیح با نتایج ما قابل مقایسه است.

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول
منبع: www.sonatype.com/why-precision-matters-ebook

بیایید به چند CVE از نتایج اسکن خود نگاه کنیم تا دلیل این نتایج را بفهمیم.

بیشتر

№ 1

بیایید ابتدا به نکات جالب در مورد Sonatype Nexus IQ نگاه کنیم.

Nexus IQ به مشکلی در مورد deserialization با توانایی انجام چندین بار RCE در Spring Framework اشاره می کند. CVE-2016-1000027 در Spring-web:3.0.5 اولین بار و CVE-2011-2894 در Spring-context:3.0.5 و Spring-core:3.0.5. در ابتدا، به نظر می رسد که آسیب پذیری های تکراری در چندین CVE وجود دارد. زیرا، اگر به CVE-2016-1000027 و CVE-2011-2894 در پایگاه داده NVD نگاه کنید، به نظر می رسد که همه چیز واضح است.

کامپوننت
آسیب پذیری

Spring-Web:3.0.5
CVE-2016-1000027

Spring-context:3.0.5
CVE-2011-2894

هسته فنری: 3.0.5
CVE-2011-2894

شرح CVE-2011-2894 از NVD:
DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

شرح CVE-2016-1000027 از NVD:
DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

CVE-2011-2894 خود کاملاً معروف است. در گزارش منبع سفید 2011 این CVE به عنوان یکی از رایج ترین ها شناخته شد. توضیحات برای CVE-2016-100027، در اصل، در NVD کم است، و به نظر می‌رسد که فقط برای Spring Framework 4.1.4 قابل اجرا باشد. بیایید نگاهی به مرجع و اینجا همه چیز کم و بیش روشن می شود. از جانب مقالات قابل تحمل ما درک می کنیم که علاوه بر آسیب پذیری در RemoteInvocationSerializingExporter در CVE-2011-2894، آسیب پذیری در مشاهده شده است HttpInvokerServiceExporter. این چیزی است که Nexus IQ به ما می گوید:

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

با این حال، چیزی شبیه به این در NVD وجود ندارد، به همین دلیل است که Dependency Check و Dependency Track هر کدام منفی کاذب دریافت می کنند.

همچنین از توضیحات CVE-2011-2894 می توان فهمید که آسیب پذیری واقعاً در هر دو قسمت Spring-context:3.0.5 و Spring-core:3.0.5 وجود دارد. تأیید این موضوع را می توان در مقاله ای از شخصی که این آسیب پذیری را پیدا کرده است یافت.

№ 2

کامپوننت
آسیب پذیری
نتیجه

struts2-core: 2.3.30
CVE-2016-4003
نادرست

اگر آسیب‌پذیری CVE-2016-4003 را مطالعه کنیم، متوجه می‌شویم که در نسخه 2.3.28 برطرف شده است، اما Nexus IQ آن را به ما گزارش می‌دهد. در توضیح این آسیب پذیری نکته ای وجود دارد:

DevSecOps: اصول عملکرد و مقایسه SCA. بخش اول

یعنی این آسیب پذیری فقط در رابطه با نسخه قدیمی JRE وجود دارد که تصمیم گرفتند درباره آن به ما هشدار دهند. با این وجود، ما این را مثبت کاذب می دانیم، اگرچه بدترین آن نیست.

# 3

کامپوننت
آسیب پذیری
نتیجه

xwork-core: 2.3.30
CVE-2017-9804
TRUE

xwork-core: 2.3.30
CVE-2017-7672
نادرست

اگر به توضیحات CVE-2017-9804 و CVE-2017-7672 نگاه کنیم، متوجه می شویم که مشکل این است URLValidator class، با CVE-2017-9804 ناشی از CVE-2017-7672. وجود آسیب‌پذیری دوم هیچ بار مفیدی را تحمل نمی‌کند جز اینکه شدت آن به High افزایش یافته است، بنابراین می‌توان آن را نویز غیرضروری در نظر گرفت.

به طور کلی، هیچ مثبت کاذب دیگری برای Nexus IQ یافت نشد.

№ 4

چندین چیز وجود دارد که IQ را از راه حل های دیگر متمایز می کند.

کامپوننت
آسیب پذیری
نتیجه

Spring-Web:3.0.5
CVE-2020-5398
TRUE

CVE در NVD بیان می کند که فقط برای نسخه های 5.2.x قبل از 5.2.3، 5.1.x قبل از 5.1.13، و نسخه های 5.0.x قبل از 5.0.16 اعمال می شود، با این حال، اگر به توضیحات CVE در Nexus IQ نگاه کنیم. ، سپس موارد زیر را مشاهده خواهیم کرد:
اخطار انحراف مشاوره ای: تیم تحقیقاتی امنیتی Sonatype متوجه شد که این آسیب پذیری در نسخه 3.0.2.RELEASE و نه 5.0.x همانطور که در مشاوره ذکر شده است، معرفی شده است.

به دنبال آن یک PoC برای این آسیب پذیری وجود دارد که بیان می کند در نسخه 3.0.5 وجود دارد.

منفی کاذب به بررسی وابستگی و آهنگ وابستگی ارسال می شود.

№ 5

بیایید به مثبت کاذب برای بررسی وابستگی و آهنگ وابستگی نگاه کنیم.

بررسی وابستگی از این جهت متمایز است که CVEهایی را که در کل چارچوب در NVD اعمال می‌شود، به اجزایی که این CVEها برای آنها اعمال نمی‌شود، منعکس می‌کند. این مربوط به CVE-2012-0394، CVE-2013-2115، CVE-2014-0114، CVE-2015-0899، CVE-2015-2992، CVE-2016-1181، CVE-2016-1182 بررسی های وابسته است. ” به struts-taglib:1.3.8 و struts-tiles-1.3.8. این مولفه ها هیچ ارتباطی با آنچه در CVE توضیح داده شده است - پردازش درخواست، اعتبار سنجی صفحه و غیره ندارند. این به این دلیل است که وجه اشتراک این CVE ها و مؤلفه ها فقط چارچوب است، به همین دلیل است که Dependency Check آن را یک آسیب پذیری می داند.

وضعیت مشابه با Spring-tx:3.0.5 و وضعیت مشابه با struts-core:1.3.8 است. برای struts-core، Dependency Check و Dependency Track آسیب‌پذیری‌های زیادی پیدا کرده‌اند که در واقع برای struts2-core، که اساسا یک چارچوب جداگانه است، قابل استفاده هستند. در این مورد، Nexus IQ به درستی تصویر را درک کرده و در CVE هایی که صادر کرده، نشان می دهد که struts-core به پایان عمر خود رسیده است و باید به struts2-core منتقل شود.

№ 6

در برخی شرایط، تفسیر یک خطای آشکار وابستگی و بررسی وابستگی غیرمنصفانه است. به ویژه CVE-2013-4152، CVE-2013-6429، CVE-2013-6430، CVE-2013-7315، CVE-2014-0054، CVE-2014-0225، CVE-2014-0225 بررسی وابستگی و وابستگی منسوب به Spring-core:3.0.5 در واقع متعلق به Spring-web:3.0.5 است. در همان زمان، برخی از این CVE ها توسط Nexus IQ نیز یافت شدند، با این حال، IQ به درستی آنها را به جزء دیگر شناسایی کرد. از آنجایی که این آسیب‌پذیری‌ها در Spring-core یافت نشدند، نمی‌توان ادعا کرد که اصولاً در چارچوب نیستند و ابزارهای منبع باز به درستی به این آسیب‌پذیری‌ها اشاره کرده‌اند (آنها فقط کمی از قلم افتاده‌اند).

یافته ها

همانطور که می بینیم، تعیین قابلیت اطمینان آسیب پذیری های شناسایی شده با بررسی دستی نتایج روشنی به دست نمی دهد، به همین دلیل است که مسائل بحث برانگیز ایجاد می شود. نتایج این است که راه حل Nexus IQ کمترین نرخ مثبت کاذب و بالاترین دقت را دارد.

اول از همه، این به دلیل این واقعیت است که تیم Sonatype توضیحاتی را برای هر آسیب‌پذیری CVE از NVD در پایگاه‌های داده خود گسترش داده است، آسیب‌پذیری‌های نسخه خاصی از مؤلفه‌ها را تا کلاس یا تابع نشان می‌دهد، و تحقیقات بیشتری را انجام می‌دهد (مثلاً ، بررسی آسیب پذیری ها در نسخه های نرم افزار قدیمی).

همچنین آسیب‌پذیری‌هایی که در NVD گنجانده نشده‌اند، اما با علامت SONATYPE در پایگاه داده Sonatype وجود دارند، تأثیر مهمی بر نتایج دارند. بر اساس این گزارش وضعیت آسیب‌پذیری‌های امنیتی منبع باز 2020 45 درصد از آسیب پذیری های منبع باز کشف شده به NVD گزارش نشده اند. بر اساس پایگاه داده WhiteSource، تنها 29 درصد از آسیب‌پذیری‌های منبع باز گزارش‌شده خارج از NVD در آنجا منتشر می‌شوند، به همین دلیل مهم است که به دنبال آسیب‌پذیری‌ها در منابع دیگر نیز باشید.

در نتیجه، Dependency Check نویز زیادی تولید می کند و برخی از اجزای آسیب پذیر را از دست می دهد. Dependency Track نویز کمتری تولید می‌کند و تعداد زیادی مؤلفه را شناسایی می‌کند، که از نظر بصری به چشم‌ها در رابط وب آسیب نمی‌زند.

با این حال، تمرین نشان می دهد که منبع باز باید اولین گام به سمت DevSecOps بالغ باشد. اولین چیزی که هنگام ادغام SCA در توسعه باید به آن فکر کنید، فرآیندها است، یعنی فکر کردن با مدیریت و بخش های مرتبط در مورد اینکه فرآیندهای ایده آل در سازمان شما چگونه باید باشد. ممکن است برای سازمان شما در ابتدا Dependency Check یا Dependency Track تمام نیازهای تجاری را پوشش دهد و راه حل های Enterprise به دلیل پیچیدگی روزافزون برنامه های در حال توسعه ادامه منطقی باشد.

ضمیمه A: نتایج جزء
شرح:

  • آسیب‌پذیری‌های سطح بالا و بحرانی در مؤلفه
  • متوسط ​​- آسیب پذیری های سطح بحرانی متوسط ​​در جزء
  • درست - موضوع مثبت واقعی
  • FALSE - موضوع مثبت کاذب

کامپوننت
Nexus IQ
بررسی وابستگی
آهنگ وابستگی
نتیجه

dom4j: 1.6.1
زیاد
زیاد
زیاد
TRUE

log4j-core: 2.3
زیاد
زیاد
زیاد
TRUE

log4j: 1.2.14
زیاد
زیاد
-
TRUE

مشترکات-مجموعه ها: 3.1
زیاد
زیاد
زیاد
TRUE

Commons-Fileupload:1.3.2
زیاد
زیاد
زیاد
TRUE

Commons-Beanutils:1.7.0
زیاد
زیاد
زیاد
TRUE

Commons-Codec:1:10
متوسط
-
-
TRUE

mysql-connector-java:5.1.42
زیاد
زیاد
زیاد
TRUE

Spring-expression:3.0.5
زیاد
جزء پیدا نشد

TRUE

Spring-Web:3.0.5
زیاد
جزء پیدا نشد
زیاد
TRUE

Spring-context:3.0.5
متوسط
جزء پیدا نشد
-
TRUE

هسته فنری: 3.0.5
متوسط
زیاد
زیاد
TRUE

struts2-config-browser-plugin:2.3.30
متوسط
-
-
TRUE

Spring-tx:3.0.5
-
زیاد
-
نادرست

Strts-core: 1.3.8
زیاد
زیاد
زیاد
TRUE

xwork-core: 2.3.30
زیاد
-
-
TRUE

struts2-core: 2.3.30
زیاد
زیاد
زیاد
TRUE

struts-taglib:1.3.8
-
زیاد
-
نادرست

struts-tiles-1.3.8
-
زیاد
-
نادرست

ضمیمه B: نتایج آسیب پذیری
شرح:

  • آسیب‌پذیری‌های سطح بالا و بحرانی در مؤلفه
  • متوسط ​​- آسیب پذیری های سطح بحرانی متوسط ​​در جزء
  • درست - موضوع مثبت واقعی
  • FALSE - موضوع مثبت کاذب

کامپوننت
Nexus IQ
بررسی وابستگی
آهنگ وابستگی
شدت
نتیجه
توضیح

dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
زیاد
TRUE

CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
زیاد
TRUE

log4j-core: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
زیاد
TRUE

CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
کم
TRUE

log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
-
زیاد
TRUE

-
CVE-2020-9488
-
کم
TRUE

SONATYPE-2010-0053
-
-
زیاد
TRUE

مشترکات-مجموعه ها: 3.1
-
CVE-2015-6420
CVE-2015-6420
زیاد
نادرست
RCE تکراری (OSSINDEX)

-
CVE-2017-15708
CVE-2017-15708
زیاد
نادرست
RCE تکراری (OSSINDEX)

SONATYPE-2015-0002
RCE (OSSINDEX)
RCE (OSSINDEX)
زیاد
TRUE

Commons-Fileupload:1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
زیاد
TRUE

SONATYPE-2014-0173
-
-
متوسط
TRUE

Commons-Beanutils:1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
زیاد
TRUE

-
CVE-2019-10086
CVE-2019-10086
زیاد
نادرست
این آسیب پذیری فقط برای نسخه های 1.9.2 و بالاتر اعمال می شود

Commons-Codec:1:10
SONATYPE-2012-0050
-
-
متوسط
TRUE

mysql-connector-java:5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
زیاد
TRUE

CVE-2019-2692
CVE-2019-2692
-
متوسط
TRUE

-
CVE-2020-2875
-
متوسط
نادرست
آسیب پذیری مشابه با CVE-2019-2692، اما با توجه به این نکته "حملات ممکن است به طور قابل توجهی بر محصولات اضافی تأثیر بگذارد"

-
CVE-2017-15945
-
زیاد
نادرست
مربوط به mysql-connector-java نیست

-
CVE-2020-2933
-
کم
نادرست
تکراری از CVE-2020-2934

CVE-2020-2934
CVE-2020-2934
-
متوسط
TRUE

Spring-expression:3.0.5
CVE-2018-1270
جزء پیدا نشد
-
زیاد
TRUE

CVE-2018-1257
-
-
متوسط
TRUE

Spring-Web:3.0.5
CVE-2016-1000027
جزء پیدا نشد
-
زیاد
TRUE

CVE-2014-0225
-
CVE-2014-0225
زیاد
TRUE

CVE-2011-2730
-
-
زیاد
TRUE

-
-
CVE-2013-4152
متوسط
TRUE

CVE-2018-1272
-
-
زیاد
TRUE

CVE-2020-5398
-
-
زیاد
TRUE
یک مثال گویا به نفع IQ: "تیم تحقیقات امنیتی Sonatype متوجه شد که این آسیب‌پذیری در نسخه 3.0.2.RELEASE و نه 5.0.x همانطور که در توصیه‌نامه آمده است، معرفی شده است."

CVE-2013-6429
-
-
متوسط
TRUE

CVE-2014-0054
-
CVE-2014-0054
متوسط
TRUE

CVE-2013-6430
-
-
متوسط
TRUE

Spring-context:3.0.5
CVE-2011-2894
جزء پیدا نشد
-
متوسط
TRUE

هسته فنری: 3.0.5
-
CVE-2011-2730
CVE-2011-2730
زیاد
TRUE

CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
متوسط
TRUE

-
-
CVE-2013-4152
متوسط
نادرست
تکراری از همان آسیب پذیری در Spring-Web

-
CVE-2013-4152
-
متوسط
نادرست
آسیب پذیری مربوط به جزء فنر-وب است

-
CVE-2013-6429
CVE-2013-6429
متوسط
نادرست
آسیب پذیری مربوط به جزء فنر-وب است

-
CVE-2013-6430
-
متوسط
نادرست
آسیب پذیری مربوط به جزء فنر-وب است

-
CVE-2013-7315
CVE-2013-7315
متوسط
نادرست
SPLIT از CVE-2013-4152. + آسیب پذیری مربوط به جزء فنر-وب است

-
CVE-2014-0054
CVE-2014-0054
متوسط
نادرست
آسیب پذیری مربوط به جزء فنر-وب است

-
CVE-2014-0225
-
زیاد
نادرست
آسیب پذیری مربوط به جزء فنر-وب است

-
-
CVE-2014-0225
زیاد
نادرست
تکراری از همان آسیب پذیری در Spring-Web

-
CVE-2014-1904
CVE-2014-1904
متوسط
نادرست
این آسیب پذیری مربوط به مولفه Spring-web-mvc است

-
CVE-2014-3625
CVE-2014-3625
متوسط
نادرست
این آسیب پذیری مربوط به مولفه Spring-web-mvc است

-
CVE-2016-9878
CVE-2016-9878
زیاد
نادرست
این آسیب پذیری مربوط به مولفه Spring-web-mvc است

-
CVE-2018-1270
CVE-2018-1270
زیاد
نادرست
برای پیام های بهار بیان/بهار

-
CVE-2018-1271
CVE-2018-1271
متوسط
نادرست
این آسیب پذیری مربوط به مولفه Spring-web-mvc است

-
CVE-2018-1272
CVE-2018-1272
زیاد
TRUE

CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
متوسط
TRUE

SONATYPE-2015-0327
-
-
کم
TRUE

struts2-config-browser-plugin:2.3.30
SONATYPE-2016-0104
-
-
متوسط
TRUE

Spring-tx:3.0.5
-
CVE-2011-2730
-
زیاد
نادرست
این آسیب پذیری مختص Spring-tx نیست

-
CVE-2011-2894
-
زیاد
نادرست
این آسیب پذیری مختص Spring-tx نیست

-
CVE-2013-4152
-
متوسط
نادرست
این آسیب پذیری مختص Spring-tx نیست

-
CVE-2013-6429
-
متوسط
نادرست
این آسیب پذیری مختص Spring-tx نیست

-
CVE-2013-6430
-
متوسط
نادرست
این آسیب پذیری مختص Spring-tx نیست

-
CVE-2013-7315
-
متوسط
نادرست
این آسیب پذیری مختص Spring-tx نیست

-
CVE-2014-0054
-
متوسط
نادرست
این آسیب پذیری مختص Spring-tx نیست

-
CVE-2014-0225
-
زیاد
نادرست
این آسیب پذیری مختص Spring-tx نیست

-
CVE-2014-1904
-
متوسط
نادرست
این آسیب پذیری مختص Spring-tx نیست

-
CVE-2014-3625
-
متوسط
نادرست
این آسیب پذیری مختص Spring-tx نیست

-
CVE-2016-9878
-
زیاد
نادرست
این آسیب پذیری مختص Spring-tx نیست

-
CVE-2018-1270
-
زیاد
نادرست
این آسیب پذیری مختص Spring-tx نیست

-
CVE-2018-1271
-
متوسط
نادرست
این آسیب پذیری مختص Spring-tx نیست

-
CVE-2018-1272
-
متوسط
نادرست
این آسیب پذیری مختص Spring-tx نیست

Strts-core: 1.3.8
-
CVE-2011-5057 (OSSINDEX)

متوسط
FASLE
آسیب پذیری به Struts 2

-
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
زیاد
نادرست
آسیب پذیری به Struts 2

-
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
متوسط
نادرست
آسیب پذیری به Struts 2

-
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
زیاد
نادرست
آسیب پذیری به Struts 2

CVE-2016-1182
3VE-2016-1182
-
زیاد
TRUE

-
-
CVE-2011-5057
متوسط
نادرست
آسیب پذیری به Struts 2

-
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
زیاد
نادرست
آسیب پذیری به Struts 2

-
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
متوسط
نادرست
آسیب پذیری به Struts 2

CVE-2015-0899
CVE-2015-0899
-
زیاد
TRUE

-
CVE-2012-0394
CVE-2012-0394
متوسط
نادرست
آسیب پذیری به Struts 2

-
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
زیاد
نادرست
آسیب پذیری به Struts 2

-
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
زیاد
نادرست
آسیب پذیری به Struts 2

-
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
زیاد
FASLE
آسیب پذیری به Struts 2

-
CVE-2013-2115
CVE-2013-2115
زیاد
FASLE
آسیب پذیری به Struts 2

-
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
زیاد
FASLE
آسیب پذیری به Struts 2

-
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
زیاد
FASLE
آسیب پذیری به Struts 2

CVE-2014-0114
CVE-2014-0114
-
زیاد
TRUE

-
CVE-2015-2992
CVE-2015-2992
متوسط
نادرست
آسیب پذیری به Struts 2

-
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
زیاد
نادرست
آسیب پذیری به Struts 2

CVE-2016-1181
CVE-2016-1181
-
زیاد
TRUE

-
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
زیاد
نادرست
آسیب پذیری به Struts 2

xwork-core: 2.3.30
CVE-2017-9804
-
-
زیاد
TRUE

SONATYPE-2017-0173
-
-
زیاد
TRUE

CVE-2017-7672
-
-
زیاد
نادرست
تکراری از CVE-2017-9804

SONATYPE-2016-0127
-
-
زیاد
TRUE

struts2-core: 2.3.30
-
CVE-2016-6795
CVE-2016-6795
زیاد
TRUE

-
CVE-2017-9787
CVE-2017-9787
زیاد
TRUE

-
CVE-2017-9791
CVE-2017-9791
زیاد
TRUE

-
CVE-2017-9793
-
زیاد
نادرست
تکراری از CVE-2018-1327

-
CVE-2017-9804
-
زیاد
TRUE

-
CVE-2017-9805
CVE-2017-9805
زیاد
TRUE

CVE-2016-4003
-
-
متوسط
نادرست
قابل اجرا برای Apache Struts 2.x تا 2.3.28 که نسخه 2.3.30 است. با این حال، بر اساس توضیحات، CVE برای هر نسخه از Struts 2 در صورت استفاده از JRE 1.7 یا کمتر معتبر است. ظاهراً آنها تصمیم گرفتند ما را در اینجا بیمه مجدد کنند، اما بیشتر شبیه FALSE است

-
CVE-2018-1327
CVE-2018-1327
زیاد
TRUE

CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
زیاد
TRUE
همان آسیب پذیری که هکرهای Equifax در سال 2017 از آن سوء استفاده کردند

CVE-2017-12611
CVE-2017-12611
-
زیاد
TRUE

CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
زیاد
TRUE

struts-taglib:1.3.8
-
CVE-2012-0394
-
متوسط
نادرست
برای struts2-core

-
CVE-2013-2115
-
زیاد
نادرست
برای struts2-core

-
CVE-2014-0114
-
زیاد
نادرست
برای علوفه های باقلا

-
CVE-2015-0899
-
زیاد
نادرست
برای taglib اعمال نمی شود

-
CVE-2015-2992
-
متوسط
نادرست
به struts2-core اشاره دارد

-
CVE-2016-1181
-
زیاد
نادرست
برای taglib اعمال نمی شود

-
CVE-2016-1182
-
زیاد
نادرست
برای taglib اعمال نمی شود

struts-tiles-1.3.8
-
CVE-2012-0394
-
متوسط
نادرست
برای struts2-core

-
CVE-2013-2115
-
زیاد
نادرست
برای struts2-core

-
CVE-2014-0114
-
زیاد
نادرست
تحت عناوین-Beanutils

-
CVE-2015-0899
-
زیاد
نادرست
برای کاشی ها اعمال نمی شود

-
CVE-2015-2992
-
متوسط
نادرست
برای struts2-core

-
CVE-2016-1181
-
زیاد
نادرست
برای taglib اعمال نمی شود

-
CVE-2016-1182
-
زیاد
نادرست
برای taglib اعمال نمی شود

منبع: www.habr.com

اضافه کردن نظر