ماسح الثغرات الأمنية مكتوب بلغة Go يستخدم البيانات المقدمة من https://osv.dev
<picture>
<source srcset="/docs/images/osv-scanner-full-logo-darkmode.svg" media="(prefers-color-scheme: dark)">
<!-- markdown-link-check-disable-next-line -->
<img src="https://raw.githubusercontent.com/google/osv-scanner/HEAD/docs/images/osv-scanner-full-logo-lightmode.svg">
</picture>
---
[](https://scorecard.dev/viewer/?uri=github.com/google/osv-scanner)
[](https://github.com/google/osv-scanner/actions/workflows/checks.yml)
[](https://codecov.io/gh/google/osv-scanner)
[](https://slsa.dev)
[](https://github.com/google/osv-scanner/releases)
استخدم OSV-Scanner لاكتشاف الثغرات الأمنية الحالية التي تؤثر على تبعيات مشروعك.
يوفر OSV-Scanner واجهة أمامية مدعومة رسميًا لقاعدة بيانات [OSV](https://osv.dev/) وواجهة CLI لـ [OSV-Scalibr](https://github.com/google/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](https://github.com/google/osv-scalibr) القابلة للتوسع تحت الغطاء لتوفير هذه الوظيفة. إذا كانت لغة أو مدير حزم غير مدعوم حاليًا، فيُرجى تقديم [طلب ميزة.](https://github.com/google/osv-scanner/issues)
#### قاعدة البيانات الأساسية
تتميز قاعدة البيانات الأساسية، [OSV.dev](https://osv.dev/)، بعدة فوائد مقارنة بقواعد بيانات الاستشارات الأمنية والماسحات الضوئية مفتوحة المصدر:
- تغطي معظم أنظمة اللغات المفتوحة المصدر ونظم التشغيل (بما في ذلك [Git](https://osv.dev/list?q=&ecosystem=GIT))، وهي شاملة.
- كل استشارة تأتي من مصدر مفتوح وموثوق (مثل [GitHub Security Advisories](https://github.com/github/advisory-database)، [RustSec Advisory Database](https://github.com/rustsec/advisory-db)، [إشعارات أمان Ubuntu](https://github.com/canonical/ubuntu-security-notices/tree/main/osv))
- يمكن لأي شخص اقتراح تحسينات على الاستشارات، مما يؤدي إلى قاعدة بيانات عالية الجودة.
- يخزن تنسيق OSV معلومات حول الإصدارات المتأثرة بشكل لا لبس فيه بتنسيق قابل للقراءة آليًا يتطابق بدقة مع قائمة حزم المطور
كل ما سبق يؤدي إلى إشعارات ثغرات دقيقة وقابلة للتنفيذ، مما يقلل الوقت اللازم لحلها. تحقق من [OSV.dev](https://osv.dev/) لمزيد من التفاصيل!
## التثبيت الأساسي
لتثبيت OSV-Scanner، يُرجى الرجوع إلى [قسم التثبيت](https://google.github.io/osv-scanner/installation) من وثائقنا. يمكن العثور على إصدارات OSV-Scanner على [صفحة الإصدارات](https://github.com/google/osv-scanner/releases) من مستودع GitHub. الطريقة الموصى بها هي تنزيل ثنائي مُجمّع مسبقًا لمنصتك. بدلاً من ذلك، يمكنك استخدام
`go install github.com/google/osv-scanner/v2/cmd/osv-scanner@latest` لبنائه من المصدر.
## الميزات الرئيسية
لمزيد من المعلومات، يُرجى قراءة [وثائقنا التفصيلية](https://google.github.io/osv-scanner) لتعلم كيفية استخدام OSV-Scanner. للحصول على معلومات مفصلة حول كل ميزة، انقر على عناوينها في هذا الملف README.
يُرجى ملاحظة: هذه هي التعليمات الخاصة بأحدث إصدار تجريبي من OSV-Scanner V2. إذا كنت تستخدم V1، فاطلع على [README](https://github.com/google/osv-scanner-v1) و [الوثائق](https://google.github.io/osv-scanner-v1/) الخاصة بـ V1 بدلاً من ذلك.
### [مسح دليل المصدر](https://google.github.io/osv-scanner/usage)
```bash
$ osv-scanner scan source -r /path/to/your/dir
```
سيقوم هذا الأمر بمسح الدليل المحدد بشكل متكرر بحثًا عن أي ملفات حزم مدعومة، مثل `package.json` و `go.mod` و `pom.xml` وما إلى ذلك، وسيخرج أي ثغرات مكتشفة.
لدى OSV-Scanner خيار استخدام تحليل الاستدعاء لتحديد ما إذا كانت دالة ضعيفة مستخدمة بالفعل في المشروع، مما يؤدي إلى نتائج إيجابية خاطئة أقل وتنبيهات قابلة للتنفيذ.
يمكن لـ OSV-Scanner أيضًا اكتشاف كود C/C++ المورّد لفحص الثغرات الأمنية. انظر [هنا](https://google.github.io/osv-scanner/usage/#cc-scanning) للتفاصيل.
#### ملفات القفل المدعومة
يدعم OSV-Scanner أكثر من 11 نظامًا بيئيًا للغات وأكثر من 19 نوعًا من ملفات القفل. للتحقق مما إذا كان نظامك البيئي مغطى، يُرجى مراجعة [وثائقنا التفصيلية](https://google.github.io/osv-scanner/supported-languages-and-lockfiles/#supported-lockfiles).
### [مسح الحاويات](https://google.github.io/osv-scanner/usage/scan-image)
يدعم OSV-Scanner أيضًا مسحًا شاملاً وواعيًا بطبقات الحاويات لاكتشاف الثغرات في حزم أنظمة التشغيل التالية والتبعيات الخاصة باللغة.
| دعم التوزيعات | دعم القطع الأثرية اللغوية |
| -------------- | -------------------------- |
| Alpine OS | Go |
| Debian | Java |
| Ubuntu | Node |
| | Python |
انظر [الوثائق الكاملة](https://google.github.io/osv-scanner/supported-languages-and-lockfiles/#supported-artifacts) للتفاصيل حول الدعم.
**الاستخدام**:
```bash
$ osv-scanner scan image my-image-name:tag
```

### [مسح التراخيص](https://google.github.io/osv-scanner/usage/license-scanning/)
تحقق من تراخيص تبعياتك باستخدام بيانات deps.dev. للحصول على ملخص:
```bash
osv-scanner --licenses path/to/repository
```
للتحقق من قائمة التراخيص المسموح بها (تنسيق SPDX):
```bash
osv-scanner --licenses="MIT,Apache-2.0" path/to/directory
```
### [المسح دون اتصال](https://google.github.io/osv-scanner/usage/offline-mode/)
امسح مشروعك مقابل قاعدة بيانات OSV محلية. لا يلزم اتصال بالشبكة بعد التنزيل الأولي لقاعدة البيانات. يمكن أيضًا تنزيل قاعدة البيانات يدويًا.
```bash
osv-scanner --offline --download-offline-databases ./path/to/your/dir
```
### [الإصلاح الموجّه](https://google.github.io/osv-scanner/experimental/guided-remediation/) (تجريبي)
> [!WARNING]
> يمكن أن يكون الإصلاح الموجّه (أمر `fix`) محفوفًا بالمخاطر عند تشغيله على مشاريع غير موثوقة. قد يؤدي إلى تشغيل مدير الحزم لتنفيذ البرامج النصية أو اتباع السجلات الخارجية المحددة في المشروع. يرجى التأكد من ثقتك في الكود المصدري والقطع الأثرية قبل المتابعة.
يوفر OSV-Scanner الإصلاح الموجّه، وهي ميزة تقترح ترقيات إصدارات الحزم بناءً على معايير مثل عمق التبعية، وأقل خطورة، واستراتيجية الإصلاح، والعائد على الاستثمار.
ندعم حاليًا إصلاح الثغرات في الملفات التالية:
| النظام البيئي | تنسيق الملف (النوع) | استراتيجيات الإصلاح المدعومة |
| :-------- | :----------------------------- | :--------------------------------------------------------------------------------------------------------------------- |
| npm | `package-lock.json` (ملف قفل) | [`في المكان`](https://google.github.io/osv-scanner/experimental/guided-remediation/#in-place-lockfile-changes) |
| npm | `package.json` (manifest) | [`إعادة القفل`](https://google.github.io/osv-scanner/experimental/guided-remediation/#relock-and-relax-direct-dependencies) |
| Maven | `pom.xml` (manifest) | [`تجاوز`](https://google.github.io/osv-scanner/experimental/guided-remediation/#override-dependency-versions) |
هذا متاح كأمر CLI بدون واجهة، بالإضافة إلى وضع تفاعلي.
#### مثال (لـ npm)
```bash
$ osv-scanner fix \
--max-depth=3 \
--min-severity=5 \
--ignore-dev \
--strategy=in-place \
-L path/to/package-lock.json
```
#### الوضع التفاعلي (لـ npm)
```bash
$ osv-scanner fix \
-M path/to/package.json \
-L path/to/package-lock.json
```
<img src="https://assets.kitploit.com/production/public/readmes/202/c3a58b2f3acf8619375afa1f7ec3ede0349494517a5812c4c09e1638c1b8cdaa.png" alt="Screenshot of the interactive relock results screen with some relaxation patches selected">
## مصادر البيانات والخصوصية
يتواصل OSV-Scanner مع الخدمات الخارجية التالية أثناء التشغيل:
### [واجهة برمجة تطبيقات OSV.dev](https://osv.dev/)
مصدر البيانات الأساسي لمعلومات الثغرات. يستعلم OSV-Scanner من واجهة برمجة التطبيقات هذه للتحقق من الحزم بحثًا عن ثغرات معروفة ولتحديد تبعيات C/C++ الموردة. تشمل البيانات المرسلة أسماء الحزم والإصدارات والأنظمة البيئية وتجزئات الملفات. استخدم وضع [`--offline`](https://google.github.io/osv-scanner/usage/offline-mode/) لتعطيل طلبات الشبكة والمسح مقابل قاعدة بيانات محلية بدلاً من ذلك.
### [واجهة برمجة تطبيقات deps.dev](https://docs.deps.dev/api/)
تُستخدم للحصول على معلومات الحزم الإضافية:
- **حل التبعيات**: يحل الرسوم البيانية للتبعيات لفحص الثغرات والإصلاح
- **مسح صور الحاويات**: يستعلم عن بيانات تعريف صور الحاويات لاكتشاف الثغرات
- **مسح التراخيص** (علامة `--licenses`): يسترجع معلومات الترخيص للحزم
- **إهمال الحزم**: يتحقق مما إذا كانت الحزم مهملة
تشمل البيانات المرسلة أسماء الحزم والإصدارات والأنظمة البيئية. لا يتم نقل أي كود مصدر.
### سجلات الحزم
عند استخدام السجل الأصلي لحل التبعيات (بدلاً من deps.dev)، قد يستعلم OSV-Scanner من:
| السجل | الرابط | المستخدم من أجل |
| ------------- | ------------------------------ | ------------------------------------ |
| Maven Central | `repo.maven.apache.org/maven2` | بيانات تعريف حزمة Maven وملفات POM |
| npm Registry | `registry.npmjs.org` | بيانات تعريف حزمة npm |
| PyPI | `pypi.org` | بيانات تعريف حزمة Python |
## المساهمة
### الإبلاغ عن المشكلات
إذا كان لديك ما يبدو أنه خطأ، فيُرجى استخدام [نظام تتبع المشكلات في GitHub](https://github.com/google/osv-scanner/issues). قبل تقديم مشكلة، يُرجى البحث في المشكلات الحالية لمعرفة ما إذا كانت مشكلتك مغطاة بالفعل.
### المساهمة في كود `osv-scanner`
انظر [CONTRIBUTING.md](https://github.com/google/osv-scanner/blob/main/CONTRIBUTING.md) للحصول على وثائق حول كيفية المساهمة في الكود.
## تاريخ النجوم
[](https://www.star-history.com/#google/osv-scanner&Date)