DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول

ترقی کے عمل میں تیسرے فریق کے سافٹ ویئر اجزاء (سافٹ ویئر کمپوزیشن اینالیسس - SCA) کے تجزیہ کی اہمیت اوپن سورس لائبریریوں کی کمزوریوں پر سالانہ رپورٹس کے اجراء کے ساتھ بڑھ رہی ہے، جو Synopsys، Sonatype، Snyk، اور White Source کے ذریعے شائع کی گئی ہیں۔ . رپورٹ کے مطابق اوپن سورس سیکیورٹی کے خطرات 2020 کی حالت 2019 میں شناخت شدہ اوپن سورس کمزوریوں کی تعداد میں پچھلے سال کے مقابلے میں تقریباً 1.5 گنا اضافہ ہوا ہے، جبکہ اوپن سورس کے اجزاء 60% سے 80% پروجیکٹس استعمال کرتے ہیں۔ آزادانہ بنیادوں پر، SCA عمل پختگی کے اشارے کے طور پر OWASP SAMM اور BSIMM کی ایک الگ مشق ہے، اور 2020 کی پہلی ششماہی میں، OWASP نے نئے OWASP سافٹ ویئر کمپوننٹ ویری فکیشن اسٹینڈرڈ (SCVS) کو جاری کیا، جو تیسرے کی تصدیق کے لیے بہترین طریقہ کار فراہم کرتا ہے۔ سپلائی چین BY میں پارٹی کے اجزاء۔

DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول

سب سے زیادہ مثالی صورتوں میں سے ایک ہوا مئی 2017 میں Equifax کے ساتھ۔ نامعلوم حملہ آوروں نے 143 ملین امریکیوں کے بارے میں معلومات حاصل کیں جن میں مکمل نام، پتے، سوشل سیکورٹی نمبر اور ڈرائیور کے لائسنس شامل ہیں۔ 209 مقدمات میں، دستاویزات میں متاثرین کے بینک کارڈز کے بارے میں معلومات بھی شامل تھیں۔ یہ لیک Apache Struts 000 (CVE-2-2017) میں ایک اہم کمزوری کے استحصال کے نتیجے میں ہوا، جبکہ درستگی مارچ 5638 میں دوبارہ جاری کی گئی۔ کمپنی کے پاس اپ ڈیٹ کو انسٹال کرنے کے لیے دو ماہ کا وقت تھا، لیکن کسی نے اس کی پرواہ نہیں کی۔

یہ مضمون تجزیہ کے نتائج کے معیار کے نقطہ نظر سے SCA کے انعقاد کے لیے ایک ٹول کے انتخاب کے مسئلے پر بحث کرے گا۔ ٹولز کا ایک فعال موازنہ بھی فراہم کیا جائے گا۔ CI/CD میں انضمام کا عمل اور انضمام کی صلاحیتوں کو بعد کی اشاعتوں کے لیے چھوڑ دیا جائے گا۔ OWASP کی طرف سے ٹولز کی ایک وسیع رینج پیش کی گئی۔ آپ کی ویب سائٹ پر، لیکن موجودہ جائزے میں ہم صرف سب سے زیادہ مقبول اوپن سورس ٹول ڈیپینڈینسی چیک، قدرے کم معروف اوپن سورس پلیٹ فارم ڈیپینڈینسی ٹریک اور انٹرپرائز سلوشن سوناٹائپ نیکسس آئی کیو کو ٹچ کریں گے۔ ہم یہ بھی سمجھیں گے کہ یہ حل کیسے کام کرتے ہیں اور غلط مثبت کے لیے حاصل کردہ نتائج کا موازنہ کریں گے۔

DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول

آپریشن کا اصول

انحصار چیک ایک افادیت (CLI, maven, jenkins module, ant) ​​ہے جو پراجیکٹ فائلوں کا تجزیہ کرتی ہے، انحصار کے بارے میں معلومات کے ٹکڑوں کو جمع کرتی ہے (پیکیج کا نام، گروپڈ، تصریح کا عنوان، ورژن...)، ایک CPE (کامن پلیٹ فارم اینومریشن) لائن بناتی ہے۔ ، پیکیج URL (PURL) اور ڈیٹا بیس (NVD, Sonatype OSS Index, NPM Audit API...) سے CPE/PURL کے لیے خطرات کی نشاندہی کرتا ہے، جس کے بعد یہ 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:2.3:a:pivotal_software:spring_framework:3.0.0:*:*:*:*:*:*:*

لائن کا مطلب ہے کہ سی پی ای ورژن 2.3 مینوفیکچرر کی جانب سے ایپلی کیشن کے جزو کی وضاحت کرتا ہے۔ pivotal_software عنوان کے ساتھ spring_framework ورژن 3.0.0 اگر ہم ایک خطرے کو کھولتے ہیں CVE-2014-0225 NVD میں، ہم اس CPE کا ذکر دیکھ سکتے ہیں۔ پہلا مسئلہ جس پر آپ کو فوری طور پر توجہ دینی چاہئے وہ یہ ہے کہ NVD میں CVE، CPE کے مطابق، فریم ورک میں ایک مسئلہ کی اطلاع دیتا ہے، نہ کہ کسی مخصوص جزو میں۔ یعنی، اگر ڈویلپرز کو فریم ورک کے ساتھ مضبوطی سے باندھ دیا گیا ہے، اور شناخت شدہ کمزوری ان ماڈیولز کو متاثر نہیں کرتی ہے جو ڈویلپرز استعمال کرتے ہیں، تو سیکیورٹی ماہر کو کسی نہ کسی طرح اس CVE کو الگ کرنا پڑے گا اور اپ ڈیٹ کرنے کے بارے میں سوچنا پڑے گا۔

URL کو SCA ٹولز کے ذریعے بھی استعمال کیا جاتا ہے۔ پیکیج URL فارمیٹ مندرجہ ذیل ہے:

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

  • سکیم: ہمیشہ 'pkg' ہوگا جو اس بات کی نشاندہی کرتا ہے کہ یہ ایک پیکیج URL ہے (ضروری)
  • قسم: پیکیج کی "قسم" یا پیکج کا "پروٹوکول"، جیسے ماون، این پی ایم، نوگیٹ، جیم، پیپی، وغیرہ۔ (ضروری چیز)
  • نام کی جگہ: کچھ نام کا سابقہ، جیسے Maven گروپ ID، Docker امیج کا مالک، GitHub صارف، یا تنظیم۔ اختیاری اور قسم پر منحصر ہے۔
  • نام: پیکیج کا نام (ضروری)
  • ورژن: پیکیج ورژن
  • قابلیت: پیکیج کے لیے اضافی قابلیت کا ڈیٹا، جیسے OS، فن تعمیر، تقسیم، وغیرہ۔ اختیاری اور مخصوص قسم۔
  • ذیلی راستہ: پیکیج کی جڑ سے متعلق پیکیج میں اضافی راستہ

مثال کے طور پر:

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

انحصار ٹریک - ایک آن پریمیس ویب پلیٹ فارم جو تیار شدہ بل آف میٹریلز (BOM) کو قبول کرتا ہے۔ سائکلون ڈی ایکس и ایس پی ڈی ایکس، یعنی موجودہ انحصار کے بارے میں تیار تصریحات۔ یہ ایک XML فائل ہے جو انحصار کو بیان کرتی ہے - نام، ہیش، پیکیج یو آر ایل، پبلشر، لائسنس۔ اس کے بعد، ڈیپینڈینسی ٹریک BOM کو پارس کرتا ہے، خطرے کے ڈیٹا بیس (NVD، Sonatype OSS Index...) سے شناخت شدہ انحصار کے لیے دستیاب CVEs کو دیکھتا ہے، جس کے بعد یہ گراف بناتا ہے، میٹرکس کا حساب لگاتا ہے، اجزاء کی کمزوری کی حالت پر ڈیٹا کو باقاعدگی سے اپ ڈیٹ کرتا ہے۔ .

XML فارمیٹ میں BOM کیسا نظر آ سکتا ہے اس کی ایک مثال:

<?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 کو نہ صرف انحصاری ٹریک کے لیے ان پٹ پیرامیٹرز کے طور پر استعمال کیا جا سکتا ہے، بلکہ سپلائی چین میں سافٹ ویئر کے اجزاء کی فہرست بنانے کے لیے بھی استعمال کیا جا سکتا ہے، مثال کے طور پر، کسی صارف کو سافٹ ویئر فراہم کرنے کے لیے۔ 2014 میں، امریکہ میں بھی ایک قانون تجویز کیا گیا تھا۔ "سائبر سپلائی چین مینجمنٹ اینڈ ٹرانسپیرنسی ایکٹ 2014"، جس میں کہا گیا ہے کہ سافٹ ویئر خریدتے وقت، کوئی بھی ریاست۔ ادارے کو کمزور اجزاء کے استعمال کو روکنے کے لیے BOM سے درخواست کرنی چاہیے، لیکن یہ ایکٹ ابھی تک نافذ نہیں ہوا ہے۔

SCA پر واپسی، Dependency Track میں نوٹیفکیشن پلیٹ فارمز جیسے Slack، کینا سیکیورٹی جیسے خطرے کے انتظام کے نظام کے ساتھ ریڈی میڈ انضمام ہے۔ یہ کہنا بھی ضروری ہے کہ ڈیپینڈنسی ٹریک، دیگر چیزوں کے ساتھ، پیکجز کے پرانے ورژنز کی نشاندہی کرتا ہے اور لائسنس کے بارے میں معلومات فراہم کرتا ہے (SPDX سپورٹ کی وجہ سے)۔

اگر ہم خاص طور پر SCA کے معیار کے بارے میں بات کریں، تو ایک بنیادی فرق ہے۔

انحصار ٹریک پروجیکٹ کو ان پٹ کے طور پر قبول نہیں کرتا ہے، بلکہ BOM کو قبول کرتا ہے۔ اس کا مطلب ہے کہ اگر ہم پروجیکٹ کو جانچنا چاہتے ہیں، تو ہمیں پہلے bom.xml بنانے کی ضرورت ہے، مثال کے طور پر CycloneDX کا استعمال کرنا۔ اس طرح، انحصار کا ٹریک براہ راست CycloneDX پر منحصر ہے۔ ایک ہی وقت میں، یہ حسب ضرورت کی اجازت دیتا ہے. اوزون ٹیم نے یہی لکھا ہے۔ سائکلون ڈی ایکس ماڈیول ڈیپینڈنسی ٹریک کے ذریعے مزید اسکیننگ کے لیے گولانگ پروجیکٹس کے لیے BOM فائلوں کو جمع کرنے کے لیے۔

Nexus IQ Sonatype کا ایک تجارتی SCA حل ہے، جو Sonatype ایکو سسٹم کا حصہ ہے، جس میں Nexus Repository Manager بھی شامل ہے۔ اگر آپ کی تنظیم کے پاس CycloneDX سے نئے حل پر جانے کا وقت نہیں ہے تو Nexus IQ ویب انٹرفیس یا API اور BOM کے ذریعے جنگی آرکائیوز (جاوا پروجیکٹس کے لیے) دونوں ان پٹ ڈیٹا کو قبول کر سکتا ہے۔ اوپن سورس سلوشنز کے برعکس، IQ سے مراد نہ صرف شناخت شدہ جزو کے لیے CP/PURL اور ڈیٹا بیس میں متعلقہ کمزوری ہے، بلکہ اس کی اپنی تحقیق کو بھی مدنظر رکھا جاتا ہے، مثال کے طور پر، کمزور فنکشن یا کلاس کا نام۔ IQ کے طریقہ کار پر بعد میں نتائج کے تجزیے میں بات کی جائے گی۔

آئیے کچھ فنکشنل خصوصیات کا خلاصہ کریں، اور تجزیہ کے لیے معاون زبانوں پر بھی غور کریں:

زبان
Nexus IQ
انحصار چیک
انحصار ٹریک

اعلی درجے کا Java
+
+
+

C / C + +
+
+
-

C#
+
+
-

.Net
+
+
+

ایرلنگ
-
-
+

JavaScript (NodeJS)
+
+
+

پی ایچ پی
+
+
+

ازگر
+
+
+

روبی
+
+
+

پرل
-
-
-

بڑے پیمانے پر
+
+
+

مقصد سی
+
+
-

سوئفٹ
+
+
-

R
+
-
-

Go
+
+
+

فعالیت

فعالیت
Nexus IQ
انحصار چیک
انحصار ٹریک

اس بات کو یقینی بنانے کی صلاحیت کہ ماخذ کوڈ میں استعمال ہونے والے اجزاء کو لائسنس یافتہ پاکیزگی کے لیے چیک کیا جائے۔
+
-
+

ڈوکر امیجز کے لیے کمزوریوں اور لائسنس کی صفائی کے لیے اسکین اور تجزیہ کرنے کی اہلیت
+ کلیر کے ساتھ انضمام
-
-

اوپن سورس لائبریریوں کو استعمال کرنے کے لیے سیکیورٹی پالیسیاں ترتیب دینے کی اہلیت
+
-
-

کمزور اجزاء کے لیے اوپن سورس ریپوزٹریز کو اسکین کرنے کی صلاحیت
+ RubyGems، Maven، NPM، Nuget، Pypi، Conan، Bower، Conda، Go، p2، ​​R، Yum، Helm، Docker، CocoaPods، Git LFS
-
+ ہیکس، روبی جیمز، ماون، این پی ایم، نوگیٹ، پیپی

ایک خصوصی ریسرچ گروپ کی دستیابی
+
-
-

بند لوپ آپریشن
+
+
+

تھرڈ پارٹی ڈیٹا بیس کا استعمال
+ بند سوناٹائپ ڈیٹا بیس
+ سوناٹائپ OSS، NPM عوامی مشیر
+ سوناٹائپ OSS، NPM پبلک ایڈوائزرز، RetireJS، VulnDB، اس کے اپنے کمزور ڈیٹا بیس کے لیے سپورٹ

تشکیل شدہ پالیسیوں کے مطابق ڈویلپمنٹ لوپ میں لوڈ کرنے کی کوشش کرتے وقت اوپن سورس اجزاء کو فلٹر کرنے کی صلاحیت
+
-
-

کمزوریوں کو ٹھیک کرنے کے لیے سفارشات، اصلاحات کے لیے لنکس کی دستیابی
+
+- (عوامی ڈیٹا بیس میں تفصیل پر منحصر ہے)
+- (عوامی ڈیٹا بیس میں تفصیل پر منحصر ہے)

شدت کے لحاظ سے پائے جانے والے خطرات کی درجہ بندی
+
+
+

رول پر مبنی رسائی کا ماڈل
+
-
+

CLI سپورٹ
+
+
+- (صرف سائکلون ڈی ایکس کے لیے)

متعین معیار کے مطابق کمزوریوں کی نمونے/چھانٹنا
+
-
+

درخواست کی حیثیت کے لحاظ سے ڈیش بورڈ
+
-
+

پی ڈی ایف فارمیٹ میں رپورٹس تیار کرنا
+
-
-

JSONCSV فارمیٹ میں رپورٹیں تیار کرنا
+
+
-

روسی زبان کی حمایت
-
-
-

انضمام کی صلاحیتیں۔

انٹیگریشن
Nexus IQ
انحصار چیک
انحصار ٹریک

LDAP/ایکٹو ڈائریکٹری انضمام
+
-
+

مسلسل انضمام کے نظام کے ساتھ انضمام بانس
+
-
-

مسلسل انضمام کے نظام کے ساتھ انضمام TeamCity
+
-
-

مسلسل انضمام کے نظام GitLab کے ساتھ انضمام
+
+- (گٹ لیب کے پلگ ان کے طور پر)
+

مسلسل انضمام کے نظام کے ساتھ انضمام جینکنز
+
+
+

IDE کے لیے پلگ انز کی دستیابی
+ انٹیلی جے، ایکلیپس، ویژول اسٹوڈیو
-
-

ٹول کی ویب سروسز (API) کے ذریعے حسب ضرورت انضمام کے لیے معاونت
+
-
+

انحصار چیک

پہلا آغاز

آئیے جان بوجھ کر کمزور ایپلی کیشن پر انحصار چیک چلائیں۔ ڈی وی جے اے.

اس کے لیے ہم استعمال کریں گے۔ انحصار چیک ماون پلگ ان:

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

نتیجے کے طور پر، انحصار-check-report.html ہدف ڈائریکٹری میں ظاہر ہوگا۔

DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول

آئیے فائل کو کھولتے ہیں۔ خطرات کی کل تعداد کے بارے میں خلاصہ معلومات کے بعد، ہم کمزوریوں کے بارے میں معلومات کو اعلی سطح کی شدت اور اعتماد کے ساتھ دیکھ سکتے ہیں، جو پیکیج، CPE، اور CVEs کی تعداد کی نشاندہی کرتے ہیں۔

اس کے بعد مزید تفصیلی معلومات آتی ہیں، خاص طور پر وہ بنیاد جس پر فیصلہ کیا گیا تھا (ثبوت)، یعنی ایک مخصوص BOM۔

DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول

اس کے بعد CPE، PURL اور CVE کی تفصیل آتی ہے۔ ویسے، NVD ڈیٹا بیس میں ان کی عدم موجودگی کی وجہ سے اصلاح کی سفارشات شامل نہیں ہیں۔

DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول

سکین کے نتائج کو منظم طریقے سے دیکھنے کے لیے، آپ Nginx کو کم سے کم سیٹنگز کے ساتھ کنفیگر کر سکتے ہیں، یا نتیجے میں آنے والے نقائص کو ڈیفیکٹ مینجمنٹ سسٹم کو بھیج سکتے ہیں جو کنیکٹرز کو انحصار کی جانچ کے لیے سپورٹ کرتا ہے۔ مثال کے طور پر ڈیفیکٹ ڈوجو۔

انحصار ٹریک

تنصیب

انحصاری ٹریک، بدلے میں، ڈسپلے گراف کے ساتھ ایک ویب پر مبنی پلیٹ فارم ہے، لہذا تیسرے فریق کے حل میں نقائص کو ذخیرہ کرنے کا اہم مسئلہ یہاں پیدا نہیں ہوتا ہے۔
تنصیب کے لیے معاون اسکرپٹ ہیں: Docker، WAR، Executable WAR۔

پہلا آغاز

ہم چل رہی سروس کے URL پر جاتے ہیں۔ ہم ایڈمن/ایڈمن کے ذریعے لاگ ان کرتے ہیں، لاگ ان اور پاس ورڈ تبدیل کرتے ہیں، اور پھر ڈیش بورڈ پر جاتے ہیں۔ اگلی چیز جو ہم کریں گے وہ ہے جاوا میں ٹیسٹ ایپلی کیشن کے لیے ایک پروجیکٹ بنانا گھر/پروجیکٹس → پروجیکٹ بنائیں . آئیے ایک مثال کے طور پر ڈی وی جے اے کو لیں۔

DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول

چونکہ انحصار ٹریک صرف BOM کو بطور ان پٹ قبول کر سکتا ہے، اس لیے اس BOM کو بازیافت کرنا ضروری ہے۔ آئیے فائدہ اٹھاتے ہیں۔ سائکلون ڈی ایکس ماون پلگ ان:

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

ہم bom.xml حاصل کرتے ہیں اور بنائے گئے پروجیکٹ میں فائل لوڈ کرتے ہیں۔ DVJA → انحصار → BOM اپ لوڈ کریں۔.

آئیے ایڈمنسٹریشن → تجزیہ کار پر جائیں۔ ہم سمجھتے ہیں کہ ہمارے پاس صرف اندرونی تجزیہ کار فعال ہے، جس میں NVD بھی شامل ہے۔ آئیے سوناٹائپ او ایس ایس انڈیکس کو بھی جوڑیں۔

DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول

اس طرح، ہم اپنے منصوبے کے لئے مندرجہ ذیل تصویر حاصل کرتے ہیں:

DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول

نیز فہرست میں آپ سوناٹائپ OSS پر لاگو ہونے والی ایک کمزوری تلاش کر سکتے ہیں:

DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول

اہم مایوسی یہ تھی کہ انحصار ٹریک اب انحصار چیک ایکس ایم ایل رپورٹس کو قبول نہیں کرتا ہے۔ انحصار چیک انضمام کے تازہ ترین تعاون یافتہ ورژن 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 کے ذریعے اسی طرح اسکین کریں ماون پلگ ان, 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 کی پیروی کریں:

DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول

یہاں آپ پالیسی کی تمام خلاف ورزیوں کو دیکھ سکتے ہیں جو مختلف اہمیت کی سطحوں کی نشاندہی کرتے ہیں (معلومات سے لے کر سیکیورٹی کریٹیکل تک)۔ جزو کے آگے حرف D کا مطلب ہے کہ جزو براہ راست انحصار ہے، اور جزو کے آگے حرف T کا مطلب ہے کہ جزو Transitive Dependency ہے، یعنی یہ عبوری ہے۔

ویسے رپورٹ اسٹیٹ آف اوپن سورس سیکیورٹی رپورٹ 2020 Snyk سے رپورٹ کرتی ہے کہ Node.js، Java اور Ruby میں دریافت ہونے والے اوپن سورس کے 70% سے زیادہ کمزوریاں عبوری انحصار میں ہیں۔

اگر ہم Nexus IQ پالیسی کی خلاف ورزیوں میں سے کسی ایک کو کھولتے ہیں، تو ہم جزو کی تفصیل کے ساتھ ساتھ ایک ورژن گراف بھی دیکھ سکتے ہیں، جو ٹائم گراف میں موجودہ ورژن کے مقام کو ظاہر کرتا ہے، اور ساتھ ہی یہ بھی کہ کس مقام پر کمزوری ختم ہو جاتی ہے۔ کمزور ہونا. گراف پر موم بتیوں کی اونچائی اس جزو کے استعمال کی مقبولیت کو ظاہر کرتی ہے۔

DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول

اگر آپ خطرات کے سیکشن میں جاتے ہیں اور CVE کو بڑھاتے ہیں، تو آپ اس کمزوری کی تفصیل، خاتمے کے لیے سفارشات کے ساتھ ساتھ اس جزو کی خلاف ورزی کی وجہ، یعنی کلاس کی موجودگی پڑھ سکتے ہیں۔ DiskFileitem.class.

DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول

DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول

آئیے جے ایس کے اجزاء کو ہٹاتے ہوئے صرف تھرڈ پارٹی جاوا اجزاء سے متعلق ان کا خلاصہ کرتے ہیں۔ قوسین میں ہم ان کمزوریوں کی تعداد کی نشاندہی کرتے ہیں جو NVD کے باہر پائی گئیں۔

ٹوٹل Nexus IQ:

  • اسکین شدہ انحصار: 62
  • کمزور انحصار: 16
  • کمزوریاں ملیں: 42 (8 سوناٹائپ ڈی بی)

کُل انحصار چیک:

  • اسکین شدہ انحصار: 47
  • کمزور انحصار: 13
  • کمزوریاں ملیں: 91 (14 سوناٹائپ او ایس ایس)

کل انحصار ٹریک:

  • اسکین شدہ انحصار: 59
  • کمزور انحصار: 10
  • کمزوریاں ملیں: 51 (1 سوناٹائپ او ایس ایس)

اگلے مراحل میں، ہم حاصل کردہ نتائج کا تجزیہ کریں گے اور یہ معلوم کریں گے کہ ان میں سے کون سی کمزوری حقیقی خرابی ہے اور کون سی غلط مثبت ہے۔

دستبرداری

یہ جائزہ کوئی ناقابل تردید سچائی نہیں ہے۔ مصنف کا یہ مقصد نہیں تھا کہ وہ دوسروں کے پس منظر کے خلاف ایک الگ آلے کو اجاگر کرے۔ جائزے کا مقصد SCA ٹولز کے آپریشن کے طریقہ کار اور ان کے نتائج کو چیک کرنے کے طریقے دکھانا تھا۔

نتائج کا موازنہ

شرائط و ضوابط:

فریق ثالث کی کمزوریوں کے لیے غلط مثبت یہ ہے:

  • شناخت شدہ جزو سے CVE مماثل نہیں ہے۔
  • مثال کے طور پر، اگر struts2 فریم ورک میں کسی کمزوری کی نشاندہی کی جاتی ہے، اور ٹول اسٹرٹس ٹائلز کے فریم ورک کے کسی جزو کی طرف اشارہ کرتا ہے، جس پر یہ کمزوری لاگو نہیں ہوتی ہے، تو یہ غلط مثبت ہے۔
  • CVE اجزاء کے شناخت شدہ ورژن سے مماثل نہیں ہے۔
  • مثال کے طور پر، کمزوری python ورژن > 3.5 سے منسلک ہے اور ٹول ورژن 2.7 کو کمزور کے طور پر نشان زد کرتا ہے - یہ غلط مثبت ہے، کیونکہ درحقیقت خطرے کا اطلاق صرف 3.x پروڈکٹ برانچ پر ہوتا ہے۔
  • ڈپلیکیٹ CVE
  • مثال کے طور پر، اگر SCA ایک CVE کی وضاحت کرتا ہے جو RCE کو فعال کرتا ہے، تو SCA اسی جزو کے لیے ایک CVE متعین کرتا ہے جو اس RCE سے متاثرہ Cisco مصنوعات پر لاگو ہوتا ہے۔ اس صورت میں یہ غلط مثبت ہو جائے گا.
  • مثال کے طور پر، ایک CVE ایک spring-web component میں پایا گیا، جس کے بعد SCA اسپرنگ فریم ورک کے دیگر اجزاء میں اسی CVE کی طرف اشارہ کرتا ہے، جبکہ CVE کا دوسرے اجزاء سے کوئی تعلق نہیں ہے۔ اس صورت میں یہ غلط مثبت ہو جائے گا.

مطالعہ کا مقصد اوپن سورس پروجیکٹ DVJA تھا۔ مطالعہ میں صرف جاوا اجزاء شامل تھے (جے ایس کے بغیر)۔

خلاصہ نتائج

آئیے براہ راست شناخت شدہ کمزوریوں کے دستی جائزے کے نتائج کی طرف چلتے ہیں۔ ہر 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 کا موازنہ۔ حصہ اول

موازنے کے لیے، اسی طرح کا مطالعہ سوناٹائپ ٹیم نے OWASP انحصاری چیک کا استعمال کرتے ہوئے 1531 اجزاء کے پروجیکٹ کی جانچ کی تھی۔ جیسا کہ ہم دیکھ سکتے ہیں، درست جوابات کے لیے شور کا تناسب ہمارے نتائج سے موازنہ ہے۔

DevSecOps: آپریشن کے اصول اور SCA کا موازنہ۔ حصہ اول
ماخذ: www.sonatype.com/why-precision-matters-ebook

آئیے ان نتائج کی وجہ کو سمجھنے کے لیے اپنے اسکین کے نتائج سے کچھ CVEs کو دیکھتے ہیں۔

مزید

1 №

آئیے پہلے Sonatype Nexus IQ کے بارے میں کچھ دلچسپ نکات دیکھتے ہیں۔

Nexus IQ اسپرنگ فریم ورک میں RCE کو متعدد بار انجام دینے کی صلاحیت کے ساتھ ڈی سیریلائزیشن کے مسئلے کی نشاندہی کرتا ہے۔ CVE-2016-1000027 spring-web میں: 3.0.5 پہلی بار، اور CVE-2011-2894 موسم بہار کے تناظر میں: 3.0.5 اور spring-core:3.0.5 میں۔ سب سے پہلے، یہ ظاہر ہوتا ہے کہ متعدد CVEs میں کمزوری کی نقل ہے۔ کیونکہ، اگر آپ NVD ڈیٹا بیس میں CVE-2016-1000027 اور CVE-2011-2894 کو دیکھیں تو ایسا لگتا ہے کہ سب کچھ واضح ہے۔

اجزاء
کمزوری

spring-web:3.0.5
CVE-2016-1000027

موسم بہار کا سیاق و سباق: 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 میں ایسا کچھ بھی نہیں ہے، یہی وجہ ہے کہ انحصار چیک اور انحصار ٹریک ہر ایک کو غلط منفی موصول ہوتا ہے۔

نیز CVE-2011-2894 کی تفصیل سے یہ سمجھا جا سکتا ہے کہ خطرہ درحقیقت موسم بہار کے سیاق و سباق: 3.0.5 اور اسپرنگ کور: 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
سچ

xwork-core:2.3.30
CVE-2017-7672
جھوٹے

اگر ہم CVE-2017-9804 اور CVE-2017-7672 کی تفصیل دیکھیں تو ہم سمجھیں گے کہ مسئلہ URLValidator class، CVE-2017-9804 کے ساتھ جو CVE-2017-7672 سے شروع ہوا ہے۔ دوسری کمزوری کی موجودگی اس حقیقت کے علاوہ کوئی مفید بوجھ نہیں اٹھاتی کہ اس کی شدت زیادہ ہو گئی ہے، اس لیے ہم اسے غیر ضروری شور سمجھ سکتے ہیں۔

مجموعی طور پر، Nexus IQ کے لیے کوئی اور غلط مثبت نہیں پایا گیا۔

4 №

بہت سی چیزیں ہیں جو IQ کو دوسرے حلوں سے الگ کرتی ہیں۔

اجزاء
کمزوری
نتیجہ

spring-web:3.0.5
CVE-2020-5398
سچ

NVD میں CVE کہتا ہے کہ یہ صرف 5.2 سے پہلے کے ورژن 5.2.3.x، 5.1 سے پہلے کے 5.1.13.x اور 5.0 سے پہلے کے ورژن 5.0.16.x پر لاگو ہوتا ہے، تاہم، اگر ہم Nexus IQ میں CVE کی تفصیل کو دیکھیں۔ ، پھر ہم مندرجہ ذیل دیکھیں گے:
ایڈوائزری ڈیوی ایشن نوٹس: سوناٹائپ سیکیورٹی ریسرچ ٹیم نے دریافت کیا کہ یہ کمزوری ورژن 3.0.2.RELEASE میں متعارف کرائی گئی تھی نہ کہ 5.0.x جیسا کہ ایڈوائزری میں بتایا گیا ہے۔

اس کے بعد اس کمزوری کے لیے ایک PoC آتا ہے، جو کہتا ہے کہ یہ ورژن 3.0.5 میں موجود ہے۔

False Negative Dependency Check اور Dependency Track کو بھیجا جاتا ہے۔

5 №

آئیے انحصار چیک اور انحصاری ٹریک کے لیے غلط مثبت کو دیکھتے ہیں۔

انحصار کی جانچ اس میں نمایاں ہے کہ یہ ان CVEs کی عکاسی کرتا ہے جو NVD کے پورے فریم ورک پر ان اجزاء پر لاگو ہوتے ہیں جن پر یہ CVE لاگو نہیں ہوتے ہیں۔ اس کا تعلق CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182, CVE-1.3.8-1.3.8 کے آخر میں ہے ” سے سٹرٹس ٹیگلیب:XNUMX اور اسٹرٹس ٹائلز-XNUMX۔ ان اجزاء کا CVE میں بیان کردہ چیزوں سے کوئی تعلق نہیں ہے - درخواست کی کارروائی، صفحہ کی توثیق، وغیرہ۔ یہ اس حقیقت کی وجہ سے ہے کہ ان CVEs اور اجزاء میں جو چیز مشترک ہے وہ صرف فریم ورک ہے، یہی وجہ ہے کہ Dependency Check نے اسے ایک خطرہ سمجھا۔

یہی صورتحال spring-tx:3.0.5 کے ساتھ ہے، اور اسی طرح کی صورتحال struts-core:1.3.8 کے ساتھ ہے۔ struts-core کے لیے، Dependency Check اور Dependency Track نے بہت ساری کمزوریاں پائی ہیں جو دراصل struts2-core پر لاگو ہوتی ہیں، جو کہ بنیادی طور پر ایک الگ فریم ورک ہے۔ اس معاملے میں، Nexus IQ نے تصویر کو صحیح طور پر سمجھا اور اس نے جاری کردہ CVEs میں، اس بات کا اشارہ کیا کہ 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، CVE-3.0.5-3.0.5، ڈی پی پی XNUMX اور ڈی پی XNUMX کا اختتام spring-core:XNUMX سے منسوب اصل میں spring-web:XNUMX سے تعلق رکھتا ہے۔ ایک ہی وقت میں، ان میں سے کچھ CVEs Nexus IQ کے ذریعے بھی پائے گئے، تاہم، IQ نے ان کی صحیح شناخت کسی دوسرے جزو سے کی۔ چونکہ یہ کمزوریاں اسپرنگ کور میں نہیں پائی گئیں، اس لیے یہ دلیل نہیں دی جا سکتی کہ وہ اصولی طور پر فریم ورک میں نہیں ہیں اور اوپن سورس ٹولز نے بجا طور پر ان کمزوریوں کی نشاندہی کی ہے (وہ صرف تھوڑا سا بھول گئے)۔

نتائج

جیسا کہ ہم دیکھ سکتے ہیں، دستی جائزے کے ذریعے شناخت شدہ کمزوریوں کی وشوسنییتا کا تعین غیر مبہم نتائج نہیں دیتا، یہی وجہ ہے کہ متنازعہ مسائل پیدا ہوتے ہیں۔ نتائج یہ ہیں کہ Nexus IQ سلوشن میں سب سے کم غلط مثبت شرح اور سب سے زیادہ درستگی ہے۔

سب سے پہلے، یہ اس حقیقت کی وجہ سے ہے کہ سوناٹائپ ٹیم نے اپنے ڈیٹا بیس میں NVD سے ہر ایک CVE کے خطرے کی تفصیل کو بڑھایا، جو کہ کلاس یا فنکشن کے اجزاء کے کسی خاص ورژن کے لیے کمزوریوں کی نشاندہی کرتا ہے، اضافی تحقیق کرتا ہے (مثال کے طور پر پرانے سافٹ ویئر ورژن پر کمزوریوں کی جانچ کرنا)۔

نتائج پر ایک اہم اثر ان کمزوریوں سے بھی ہوتا ہے جو NVD میں شامل نہیں تھے، لیکن اس کے باوجود SONATYPE نشان کے ساتھ سوناٹائپ ڈیٹا بیس میں موجود ہیں۔ رپورٹ کے مطابق اوپن سورس سیکیورٹی کے خطرات 2020 کی حالت 45% دریافت شدہ اوپن سورس کمزوریوں کی NVD کو اطلاع نہیں دی جاتی ہے۔ وائٹ سورس ڈیٹا بیس کے مطابق، NVD کے باہر رپورٹ کردہ تمام اوپن سورس کمزوریوں میں سے صرف 29% وہیں شائع ہوتی ہیں، یہی وجہ ہے کہ دیگر ذرائع میں بھی کمزوریوں کو تلاش کرنا ضروری ہے۔

نتیجے کے طور پر، انحصار کی جانچ بہت زیادہ شور پیدا کرتی ہے، جس میں کچھ کمزور اجزاء غائب ہوتے ہیں۔ انحصاری ٹریک کم شور پیدا کرتا ہے اور بڑی تعداد میں اجزاء کا پتہ لگاتا ہے، جو ویب انٹرفیس میں آنکھوں کو بصری طور پر نقصان نہیں پہنچاتا ہے۔

تاہم، پریکٹس سے پتہ چلتا ہے کہ اوپن سورس کو بالغ DevSecOps کی طرف پہلا قدم بننا چاہیے۔ SCA کو ترقی میں ضم کرتے وقت آپ کو سب سے پہلے جس چیز کے بارے میں سوچنا چاہیے وہ عمل ہے، یعنی، انتظامیہ اور متعلقہ محکموں کے ساتھ مل کر سوچنا کہ آپ کی تنظیم میں مثالی عمل کیسا ہونا چاہیے۔ اس سے معلوم ہو سکتا ہے کہ آپ کی تنظیم کے لیے، سب سے پہلے، انحصار کی جانچ یا انحصار کا ٹریک تمام کاروباری ضروریات کو پورا کرے گا، اور انٹرپرائز سلوشنز تیار کیے جانے والے ایپلیکیشنز کی بڑھتی ہوئی پیچیدگی کی وجہ سے ایک منطقی تسلسل ہوں گے۔

ضمیمہ A: اجزاء کے نتائج
علامات:

  • اجزاء میں اعلی - اعلی اور اہم سطح کی کمزوریاں
  • میڈیم — جزو میں درمیانے درجے کی تنقیدی سطح کی کمزوریاں
  • TRUE - حقیقی مثبت مسئلہ
  • FALSE — غلط مثبت مسئلہ

اجزاء
Nexus IQ
انحصار چیک
انحصار ٹریک
نتیجہ

dom4j: 1.6.1
ہائی
ہائی
ہائی
سچ

log4j-core: 2.3
ہائی
ہائی
ہائی
سچ

log4j: 1.2.14
ہائی
ہائی
-
سچ

Commons-collections:3.1
ہائی
ہائی
ہائی
سچ

commons-fileupload:1.3.2
ہائی
ہائی
ہائی
سچ

commons-beanutils:1.7.0
ہائی
ہائی
ہائی
سچ

commons-codec:1:10
درمیانہ
-
-
سچ

mysql-connector-java:5.1.42
ہائی
ہائی
ہائی
سچ

بہار کا اظہار: 3.0.5
ہائی
جزو نہیں ملا

سچ

spring-web:3.0.5
ہائی
جزو نہیں ملا
ہائی
سچ

موسم بہار کا سیاق و سباق: 3.0.5
درمیانہ
جزو نہیں ملا
-
سچ

اسپرنگ کور: 3.0.5
درمیانہ
ہائی
ہائی
سچ

struts2-config-browser-plugin:2.3.30
درمیانہ
-
-
سچ

spring-tx:3.0.5
-
ہائی
-
جھوٹے

سٹرٹس کور: 1.3.8
ہائی
ہائی
ہائی
سچ

xwork-core: 2.3.30
ہائی
-
-
سچ

struts2-core: 2.3.30
ہائی
ہائی
ہائی
سچ

struts-taglib:1.3.8
-
ہائی
-
جھوٹے

struts-tiles-1.3.8
-
ہائی
-
جھوٹے

ضمیمہ B: کمزوری کے نتائج
علامات:

  • اجزاء میں اعلی - اعلی اور اہم سطح کی کمزوریاں
  • میڈیم — جزو میں درمیانے درجے کی تنقیدی سطح کی کمزوریاں
  • TRUE - حقیقی مثبت مسئلہ
  • FALSE — غلط مثبت مسئلہ

اجزاء
Nexus IQ
انحصار چیک
انحصار ٹریک
شدت
نتیجہ
تبصرہ

dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
ہائی
سچ

CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
ہائی
سچ

log4j-core: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
ہائی
سچ

CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
لو
سچ

log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
-
ہائی
سچ

-
CVE-2020-9488
-
لو
سچ

SONATYPE-2010-0053
-
-
ہائی
سچ

Commons-collections: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)
ہائی
سچ

commons-fileupload:1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
ہائی
سچ

SONATYPE-2014-0173
-
-
درمیانہ
سچ

commons-beanutils:1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
ہائی
سچ

-
CVE-2019-10086
CVE-2019-10086
ہائی
جھوٹے
خطرے کا اطلاق صرف ورژن 1.9.2+ پر ہوتا ہے۔

commons-codec:1:10
SONATYPE-2012-0050
-
-
درمیانہ
سچ

mysql-connector-java:5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
ہائی
سچ

CVE-2019-2692
CVE-2019-2692
-
درمیانہ
سچ

-
CVE-2020-2875
-
درمیانہ
جھوٹے
وہی خطرہ جو CVE-2019-2692 ہے، لیکن نوٹ کے ساتھ "حملے اضافی مصنوعات کو نمایاں طور پر متاثر کر سکتے ہیں"

-
CVE-2017-15945
-
ہائی
جھوٹے
mysql-connector-java سے متعلق نہیں ہے۔

-
CVE-2020-2933
-
لو
جھوٹے
CVE-2020-2934 کا ڈپلیکیٹ

CVE-2020-2934
CVE-2020-2934
-
درمیانہ
سچ

بہار کا اظہار: 3.0.5
CVE-2018-1270
جزو نہیں ملا
-
ہائی
سچ

CVE-2018-1257
-
-
درمیانہ
سچ

spring-web:3.0.5
CVE-2016-1000027
جزو نہیں ملا
-
ہائی
سچ

CVE-2014-0225
-
CVE-2014-0225
ہائی
سچ

CVE-2011-2730
-
-
ہائی
سچ

-
-
CVE-2013-4152
درمیانہ
سچ

CVE-2018-1272
-
-
ہائی
سچ

CVE-2020-5398
-
-
ہائی
سچ
IQ کے حق میں ایک مثالی مثال: "Sonatype سیکورٹی ریسرچ ٹیم نے دریافت کیا کہ یہ کمزوری ورژن 3.0.2.RELEASE میں متعارف کرائی گئی تھی نہ کہ 5.0.x جیسا کہ ایڈوائزری میں بتایا گیا ہے۔"

CVE-2013-6429
-
-
درمیانہ
سچ

CVE-2014-0054
-
CVE-2014-0054
درمیانہ
سچ

CVE-2013-6430
-
-
درمیانہ
سچ

موسم بہار کا سیاق و سباق: 3.0.5
CVE-2011-2894
جزو نہیں ملا
-
درمیانہ
سچ

اسپرنگ کور: 3.0.5
-
CVE-2011-2730
CVE-2011-2730
ہائی
سچ

CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
درمیانہ
سچ

-
-
CVE-2013-4152
درمیانہ
جھوٹے
spring-web میں اسی خطرے کی نقل

-
CVE-2013-4152
-
درمیانہ
جھوٹے
کمزوری کا تعلق اسپرنگ ویب جزو سے ہے۔

-
CVE-2013-6429
CVE-2013-6429
درمیانہ
جھوٹے
کمزوری کا تعلق اسپرنگ ویب جزو سے ہے۔

-
CVE-2013-6430
-
درمیانہ
جھوٹے
کمزوری کا تعلق اسپرنگ ویب جزو سے ہے۔

-
CVE-2013-7315
CVE-2013-7315
درمیانہ
جھوٹے
CVE-2013-4152 سے تقسیم۔ + کمزوری کا تعلق spring-web کے جزو سے ہے۔

-
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
ہائی
جھوٹے
spring-expression/spring-messages کے لیے

-
CVE-2018-1271
CVE-2018-1271
درمیانہ
جھوٹے
خطرے کا تعلق spring-web-mvc جزو سے ہے۔

-
CVE-2018-1272
CVE-2018-1272
ہائی
سچ

CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
درمیانہ
سچ

SONATYPE-2015-0327
-
-
لو
سچ

struts2-config-browser-plugin:2.3.30
SONATYPE-2016-0104
-
-
درمیانہ
سچ

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 کے لیے مخصوص نہیں ہے۔

سٹرٹس کور: 1.3.8
-
CVE-2011-5057 (OSSINDEX)

درمیانہ
FASLE
سٹرٹس کا خطرہ 2

-
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
ہائی
جھوٹے
سٹرٹس کا خطرہ 2

-
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
درمیانہ
جھوٹے
سٹرٹس کا خطرہ 2

-
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
ہائی
جھوٹے
سٹرٹس کا خطرہ 2

CVE-2016-1182
3VE-2016-1182
-
ہائی
سچ

-
-
CVE-2011-5057
درمیانہ
جھوٹے
سٹرٹس کا خطرہ 2

-
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
ہائی
جھوٹے
سٹرٹس کا خطرہ 2

-
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
درمیانہ
جھوٹے
سٹرٹس کا خطرہ 2

CVE-2015-0899
CVE-2015-0899
-
ہائی
سچ

-
CVE-2012-0394
CVE-2012-0394
درمیانہ
جھوٹے
سٹرٹس کا خطرہ 2

-
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
ہائی
جھوٹے
سٹرٹس کا خطرہ 2

-
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
ہائی
جھوٹے
سٹرٹس کا خطرہ 2

-
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
ہائی
FASLE
سٹرٹس کا خطرہ 2

-
CVE-2013-2115
CVE-2013-2115
ہائی
FASLE
سٹرٹس کا خطرہ 2

-
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
ہائی
FASLE
سٹرٹس کا خطرہ 2

-
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
ہائی
FASLE
سٹرٹس کا خطرہ 2

CVE-2014-0114
CVE-2014-0114
-
ہائی
سچ

-
CVE-2015-2992
CVE-2015-2992
درمیانہ
جھوٹے
سٹرٹس کا خطرہ 2

-
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
ہائی
جھوٹے
سٹرٹس کا خطرہ 2

CVE-2016-1181
CVE-2016-1181
-
ہائی
سچ

-
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
ہائی
جھوٹے
سٹرٹس کا خطرہ 2

xwork-core:2.3.30
CVE-2017-9804
-
-
ہائی
سچ

SONATYPE-2017-0173
-
-
ہائی
سچ

CVE-2017-7672
-
-
ہائی
جھوٹے
CVE-2017-9804 کا ڈپلیکیٹ

SONATYPE-2016-0127
-
-
ہائی
سچ

struts2-core:2.3.30
-
CVE-2016-6795
CVE-2016-6795
ہائی
سچ

-
CVE-2017-9787
CVE-2017-9787
ہائی
سچ

-
CVE-2017-9791
CVE-2017-9791
ہائی
سچ

-
CVE-2017-9793
-
ہائی
جھوٹے
CVE-2018-1327 کا ڈپلیکیٹ

-
CVE-2017-9804
-
ہائی
سچ

-
CVE-2017-9805
CVE-2017-9805
ہائی
سچ

CVE-2016-4003
-
-
درمیانہ
جھوٹے
Apache Struts 2.x پر 2.3.28 تک قابل اطلاق، جو کہ ورژن 2.3.30 ہے۔ تاہم، تفصیل کی بنیاد پر، CVE Struts 2 کے کسی بھی ورژن کے لیے درست ہے اگر JRE 1.7 یا اس سے کم استعمال کیا جائے۔ بظاہر انہوں نے ہمیں یہاں دوبارہ بیمہ کرنے کا فیصلہ کیا، لیکن یہ زیادہ غلط لگتا ہے۔

-
CVE-2018-1327
CVE-2018-1327
ہائی
سچ

CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
ہائی
سچ
وہی کمزوری جس کا Equifax ہیکرز نے 2017 میں فائدہ اٹھایا

CVE-2017-12611
CVE-2017-12611
-
ہائی
سچ

CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
ہائی
سچ

struts-taglib: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
-
ہائی
جھوٹے
ٹیگلیب پر لاگو نہیں ہوتا ہے۔

-
CVE-2016-1182
-
ہائی
جھوٹے
ٹیگلیب پر لاگو نہیں ہوتا ہے۔

struts-tiles-1.3.8
-
CVE-2012-0394
-
درمیانہ
جھوٹے
struts2-core کے لیے

-
CVE-2013-2115
-
ہائی
جھوٹے
struts2-core کے لیے

-
CVE-2014-0114
-
ہائی
جھوٹے
Commons-beanutils کے تحت

-
CVE-2015-0899
-
ہائی
جھوٹے
ٹائلوں پر لاگو نہیں ہوتا ہے۔

-
CVE-2015-2992
-
درمیانہ
جھوٹے
struts2-core کے لیے

-
CVE-2016-1181
-
ہائی
جھوٹے
ٹیگلیب پر لاگو نہیں ہوتا ہے۔

-
CVE-2016-1182
-
ہائی
جھوٹے
ٹیگلیب پر لاگو نہیں ہوتا ہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں