
ماسح الثغرات الأمنية مكتوب بلغة Go يستخدم البيانات المقدمة من https://osv.dev
استخدم OSV-Scanner لاكتشاف الثغرات الأمنية الحالية التي تؤثر على تبعيات مشروعك. يوفر OSV-Scanner واجهة أمامية مدعومة رسميًا لقاعدة بيانات OSV وواجهة CLI لـ OSV-Scalibr التي تربط قائمة تبعيات المشروع بالثغرات التي تؤثر عليها.
يدعم OSV-Scanner مجموعة واسعة من أنواع المشاريع ومديري الحزم والميزات، بما في ذلك على سبيل المثال لا الحصر:
يستخدم OSV-Scanner مكتبة OSV-Scalibr القابلة للتوسع تحت الغطاء لتوفير هذه الوظيفة. إذا كانت لغة أو مدير حزم غير مدعوم حاليًا، فيُرجى تقديم طلب ميزة.
تتميز قاعدة البيانات الأساسية، OSV.dev، بعدة فوائد مقارنة بقواعد بيانات الاستشارات الأمنية والماسحات الضوئية مفتوحة المصدر:
كل ما سبق يؤدي إلى إشعارات ثغرات دقيقة وقابلة للتنفيذ، مما يقلل الوقت اللازم لحلها. تحقق من 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 OS | Go |
| Debian | Java |
| Ubuntu | Node |
| Python |
انظر الوثائق الكاملة للتفاصيل حول الدعم.
الاستخدام:
$ osv-scanner scan image my-image-name:tag

تحقق من تراخيص تبعياتك باستخدام بيانات 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 الإصلاح الموجّه، وهي ميزة تقترح ترقيات إصدارات الحزم بناءً على معايير مثل عمق التبعية، وأقل خطورة، واستراتيجية الإصلاح، والعائد على الاستثمار. ندعم حاليًا إصلاح الثغرات في الملفات التالية:
هذا متاح كأمر CLI بدون واجهة، بالإضافة إلى وضع تفاعلي.
$ osv-scanner fix \
--max-depth=3 \
--min-severity=5 \
--ignore-dev \
--strategy=in-place \
-L path/to/package-lock.json
$ osv-scanner fix \
-M path/to/package.json \
-L path/to/package-lock.json
يتواصل OSV-Scanner مع الخدمات الخارجية التالية أثناء التشغيل:
مصدر البيانات الأساسي لمعلومات الثغرات. يستعلم OSV-Scanner من واجهة برمجة التطبيقات هذه للتحقق من الحزم بحثًا عن ثغرات معروفة ولتحديد تبعيات C/C++ الموردة. تشمل البيانات المرسلة أسماء الحزم والإصدارات والأنظمة البيئية وتجزئات الملفات. استخدم وضع --offline لتعطيل طلبات الشبكة والمسح مقابل قاعدة بيانات محلية بدلاً من ذلك.
تُستخدم للحصول على معلومات الحزم الإضافية:
--licenses): يسترجع معلومات الترخيص للحزمتشمل البيانات المرسلة أسماء الحزم والإصدارات والأنظمة البيئية. لا يتم نقل أي كود مصدر.
عند استخدام السجل الأصلي لحل التبعيات (بدلاً من deps.dev)، قد يستعلم OSV-Scanner من:
| السجل | الرابط | المستخدم من أجل |
|---|---|---|
| Maven Central | repo.maven.apache.org/maven2 |
إذا كان لديك ما يبدو أنه خطأ، فيُرجى استخدام نظام تتبع المشكلات في GitHub. قبل تقديم مشكلة، يُرجى البحث في المشكلات الحالية لمعرفة ما إذا كانت مشكلتك مغطاة بالفعل.
osv-scannerانظر CONTRIBUTING.md للحصول على وثائق حول كيفية المساهمة في الكود.
| النظام البيئي | تنسيق الملف (النوع) | استراتيجيات الإصلاح المدعومة |
|---|
| npm | package-lock.json (ملف قفل) | في المكان |
| npm | package.json (manifest) | إعادة القفل |
| Maven | pom.xml (manifest) | تجاوز |
| بيانات تعريف حزمة Maven وملفات POM |
| npm Registry | registry.npmjs.org | بيانات تعريف حزمة npm |
| PyPI | pypi.org | بيانات تعريف حزمة Python |