العودة إلى التحديثات
New releaseAug 7, 2026

osv-scanner v2.5.0

ماسح الثغرات الأمنية مكتوب بلغة Go يستخدم البيانات المقدمة من https://osv.dev

مشاركة

OpenSSF Scorecard Checks codecov SLSA 3 GitHub Release

استخدم OSV-Scanner لاكتشاف الثغرات الأمنية الحالية التي تؤثر على تبعيات مشروعك. يوفر OSV-Scanner واجهة أمامية مدعومة رسميًا لقاعدة بيانات OSV وواجهة CLI لـ OSV-Scalibr التي تربط قائمة تبعيات المشروع بالثغرات التي تؤثر عليها.

يدعم OSV-Scanner مجموعة واسعة من أنواع المشاريع ومديري الحزم والميزات، بما في ذلك على سبيل المثال لا الحصر:

  • اللغات: C/C++، Dart، Elixir، Go، Java، Javascript، PHP، Python، R، Ruby، Rust.
  • مديري الحزم: npm، pip، yarn، maven، go modules، cargo، gem، composer، nuget وغيرها.
  • أنظمة التشغيل: يكتشف الثغرات في حزم أنظمة التشغيل على أنظمة Linux.
  • الحاويات: يفحص صور الحاويات بحثًا عن ثغرات في صورها الأساسية والحزم المضمنة.
  • الإصلاح الموجّه: يقدم توصيات لترقية إصدارات الحزم بناءً على معايير مثل عمق التبعية، وأقل خطورة، واستراتيجية الإصلاح، والعائد على الاستثمار.

يستخدم OSV-Scanner مكتبة OSV-Scalibr القابلة للتوسع تحت الغطاء لتوفير هذه الوظيفة. إذا كانت لغة أو مدير حزم غير مدعوم حاليًا، فيُرجى تقديم طلب ميزة.

قاعدة البيانات الأساسية

تتميز قاعدة البيانات الأساسية، OSV.dev، بعدة فوائد مقارنة بقواعد بيانات الاستشارات الأمنية والماسحات الضوئية مفتوحة المصدر:

  • تغطي معظم أنظمة اللغات المفتوحة المصدر ونظم التشغيل (بما في ذلك Git)، وهي شاملة.
  • كل استشارة تأتي من مصدر مفتوح وموثوق (مثل GitHub Security Advisories، RustSec Advisory Database، إشعارات أمان Ubuntu)
  • يمكن لأي شخص اقتراح تحسينات على الاستشارات، مما يؤدي إلى قاعدة بيانات عالية الجودة.
  • يخزن تنسيق OSV معلومات حول الإصدارات المتأثرة بشكل لا لبس فيه بتنسيق قابل للقراءة آليًا يتطابق بدقة مع قائمة حزم المطور

كل ما سبق يؤدي إلى إشعارات ثغرات دقيقة وقابلة للتنفيذ، مما يقلل الوقت اللازم لحلها. تحقق من OSV.dev لمزيد من التفاصيل!

التثبيت الأساسي

لتثبيت OSV-Scanner، يُرجى الرجوع إلى قسم التثبيت من وثائقنا. يمكن العثور على إصدارات OSV-Scanner على صفحة الإصدارات من مستودع GitHub. الطريقة الموصى بها هي تنزيل ثنائي مُجمّع مسبقًا لمنصتك. بدلاً من ذلك، يمكنك استخدام go install github.com/google/osv-scanner/v2/cmd/osv-scanner@latest لبنائه من المصدر.

الميزات الرئيسية

لمزيد من المعلومات، يُرجى قراءة وثائقنا التفصيلية لتعلم كيفية استخدام OSV-Scanner. للحصول على معلومات مفصلة حول كل ميزة، انقر على عناوينها في هذا الملف README.

يُرجى ملاحظة: هذه هي التعليمات الخاصة بأحدث إصدار تجريبي من OSV-Scanner V2. إذا كنت تستخدم V1، فاطلع على README و الوثائق الخاصة بـ V1 بدلاً من ذلك.

مسح دليل المصدر

$ osv-scanner scan source -r /path/to/your/dir

سيقوم هذا الأمر بمسح الدليل المحدد بشكل متكرر بحثًا عن أي ملفات حزم مدعومة، مثل package.json و go.mod و pom.xml وما إلى ذلك، وسيخرج أي ثغرات مكتشفة.

لدى OSV-Scanner خيار استخدام تحليل الاستدعاء لتحديد ما إذا كانت دالة ضعيفة مستخدمة بالفعل في المشروع، مما يؤدي إلى نتائج إيجابية خاطئة أقل وتنبيهات قابلة للتنفيذ.

يمكن لـ OSV-Scanner أيضًا اكتشاف كود C/C++ المورّد لفحص الثغرات الأمنية. انظر هنا للتفاصيل.

ملفات القفل المدعومة

يدعم OSV-Scanner أكثر من 11 نظامًا بيئيًا للغات وأكثر من 19 نوعًا من ملفات القفل. للتحقق مما إذا كان نظامك البيئي مغطى، يُرجى مراجعة وثائقنا التفصيلية.

مسح الحاويات

يدعم OSV-Scanner أيضًا مسحًا شاملاً وواعيًا بطبقات الحاويات لاكتشاف الثغرات في حزم أنظمة التشغيل التالية والتبعيات الخاصة باللغة.

دعم التوزيعاتدعم القطع الأثرية اللغوية
Alpine OSGo
DebianJava
UbuntuNode
Python

انظر الوثائق الكاملة للتفاصيل حول الدعم.

الاستخدام:

$ osv-scanner scan image my-image-name:tag

screencast of html output of container scanning

مسح التراخيص

تحقق من تراخيص تبعياتك باستخدام بيانات deps.dev. للحصول على ملخص:

osv-scanner --licenses path/to/repository

للتحقق من قائمة التراخيص المسموح بها (تنسيق SPDX):

osv-scanner --licenses="MIT,Apache-2.0" path/to/directory

المسح دون اتصال

امسح مشروعك مقابل قاعدة بيانات OSV محلية. لا يلزم اتصال بالشبكة بعد التنزيل الأولي لقاعدة البيانات. يمكن أيضًا تنزيل قاعدة البيانات يدويًا.

osv-scanner --offline --download-offline-databases ./path/to/your/dir

الإصلاح الموجّه (تجريبي)

[!WARNING] يمكن أن يكون الإصلاح الموجّه (أمر fix) محفوفًا بالمخاطر عند تشغيله على مشاريع غير موثوقة. قد يؤدي إلى تشغيل مدير الحزم لتنفيذ البرامج النصية أو اتباع السجلات الخارجية المحددة في المشروع. يرجى التأكد من ثقتك في الكود المصدري والقطع الأثرية قبل المتابعة.

يوفر OSV-Scanner الإصلاح الموجّه، وهي ميزة تقترح ترقيات إصدارات الحزم بناءً على معايير مثل عمق التبعية، وأقل خطورة، واستراتيجية الإصلاح، والعائد على الاستثمار. ندعم حاليًا إصلاح الثغرات في الملفات التالية:

النظام البيئيتنسيق الملف (النوع)استراتيجيات الإصلاح المدعومة
npmpackage-lock.json (ملف قفل)في المكان
npmpackage.json (manifest)إعادة القفل
Mavenpom.xml (manifest)تجاوز

هذا متاح كأمر CLI بدون واجهة، بالإضافة إلى وضع تفاعلي.

مثال (لـ npm)

$ osv-scanner fix \
    --max-depth=3 \
    --min-severity=5 \
    --ignore-dev  \
    --strategy=in-place \
    -L path/to/package-lock.json

الوضع التفاعلي (لـ npm)

$ osv-scanner fix \
    -M path/to/package.json \
    -L path/to/package-lock.json
Screenshot of the interactive relock results screen with some relaxation patches selected

مصادر البيانات والخصوصية

يتواصل OSV-Scanner مع الخدمات الخارجية التالية أثناء التشغيل:

واجهة برمجة تطبيقات OSV.dev

مصدر البيانات الأساسي لمعلومات الثغرات. يستعلم OSV-Scanner من واجهة برمجة التطبيقات هذه للتحقق من الحزم بحثًا عن ثغرات معروفة ولتحديد تبعيات C/C++ الموردة. تشمل البيانات المرسلة أسماء الحزم والإصدارات والأنظمة البيئية وتجزئات الملفات. استخدم وضع --offline لتعطيل طلبات الشبكة والمسح مقابل قاعدة بيانات محلية بدلاً من ذلك.

واجهة برمجة تطبيقات deps.dev

تُستخدم للحصول على معلومات الحزم الإضافية:

  • حل التبعيات: يحل الرسوم البيانية للتبعيات لفحص الثغرات والإصلاح
  • مسح صور الحاويات: يستعلم عن بيانات تعريف صور الحاويات لاكتشاف الثغرات
  • مسح التراخيص (علامة --licenses): يسترجع معلومات الترخيص للحزم
  • إهمال الحزم: يتحقق مما إذا كانت الحزم مهملة

تشمل البيانات المرسلة أسماء الحزم والإصدارات والأنظمة البيئية. لا يتم نقل أي كود مصدر.

سجلات الحزم

عند استخدام السجل الأصلي لحل التبعيات (بدلاً من deps.dev)، قد يستعلم OSV-Scanner من:

السجلالرابطالمستخدم من أجل
Maven Centralrepo.maven.apache.org/maven2بيانات تعريف حزمة Maven وملفات POM
npm Registryregistry.npmjs.orgبيانات تعريف حزمة npm
PyPIpypi.orgبيانات تعريف حزمة Python

المساهمة

الإبلاغ عن المشكلات

إذا كان لديك ما يبدو أنه خطأ، فيُرجى استخدام نظام تتبع المشكلات في GitHub. قبل تقديم مشكلة، يُرجى البحث في المشكلات الحالية لمعرفة ما إذا كانت مشكلتك مغطاة بالفعل.

المساهمة في كود osv-scanner

انظر CONTRIBUTING.md للحصول على وثائق حول كيفية المساهمة في الكود.

تاريخ النجوم

Star History Chart

الفئات