العودة إلى التحديثات
New releaseSep 3, 2026

sbomlyze v0.5.3

Git diff لملفات SBOM—قارن مستندات CycloneDX وSPDX وSyft، واكتشف العبث، وتحكم في CI.

مشاركة

sbomlyze

git diff لملف SBOM الخاص بك. قارن بين قائمتي مواد برمجية (Software Bills of Materials) واطّلع على ما تغيّر بين عمليات البناء والإصدارات والإطلاقات.

يقارن sbomlyze تجزئات المكوّنات (component hashes)، وليس سلاسل الإصدارات فقط. عندما يستبدل مهاجم حزمة دون رفع رقم إصدارها، يكشفه sbomlyze. تفوت المولّدات (generators) وماسحات الثغرات (vulnerability scanners) هذا الأمر.

[![CI][ci-img]][ci] [![GitHub Marketplace][marketplace-img]][marketplace] [![GitHub Release][release-img]][release] [![Go Report Card][go-report-img]][go-report] [![OpenSSF Scorecard][scorecard-img]][scorecard] [![OpenSSF Best Practices][best-practices-img]][best-practices] [![License: Apache-2.0][license-img]][license] [![Downloads][download-img]][download]

SBOMlyze blocks a same-version hash change in a real pull request

اطّلع على سبب اختلاف هذه الإشارة عن فرق بيان الحزمة (manifest diff) أو فرق المكوّنات العادي في Manifest diff vs. SBOM diff vs. integrity drift.

تصنع المولّدات ملفات SBOM وتجد الماسحات ثغرات CVE. يخبرك sbomlyze بما تغيّر بين ملفَي SBOM وما إذا كان ينبغي الوثوق به. شغّله بعد المولّد الخاص بك: syft image:tag -o cyclonedx-json | sbomlyze - --compliance يحلّل ملف SBOM المُولَّد ويقيّمه دون ملف مؤقت. قارنه بخط أساس (baseline) لتصنيف الانحراف (drift) وضبط بوابة خط أنابيبك (pipeline).

البدء السريع مع GitHub Action

أضف [SBOMlyze Diff from GitHub Marketplace][marketplace] لمقارنة ملف SBOM مُودَع في المستودع أو مُولَّد بشكل منفصل مع خط أساسه في git. الـ SHA غير القابل للتغيير أدناه هو إجراء v0.5.1 المنشور:```yaml steps:

  • uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0

  • uses: rezmoss/sbomlyze@31503690611fda8ebba4ed2bd186eda000442594 # v0.5.1 with: sbom-path: build/sbom.cdx.json

يكتب الـ Action ملخّص Job بشكل افتراضي ويمكنه فرض السياسة، والإبلاغ عن
انحراف السلامة، ورفع SARIF، أو الحفاظ على تعليق واحد على طلب السحب. راجع
[مرجع الـ Action الكامل](https://github.com/rezmoss/sbomlyze/blob/main/ACTION.md) للمدخلات والمخرجات والأذونات
وإرشادات الأمان. راجع
[مستودع العرض التوضيحي المباشر](https://github.com/rezmoss/sbomlyze-action-demo)
للاطلاع على تحديث تبعية ناجح وتغيير hash محظور لنفس الإصدار، مع
تشغيلات سير عمل عامة وأدلة SARIF.

للاستخدام التجريبي الخاص بكل صيغة، استخدم مثال
[Go + SPDX](https://github.com/rezmoss/sbomlyze-go-spdx-demo)،
أو [Node + CycloneDX](https://github.com/rezmoss/sbomlyze-node-cyclonedx-demo)، أو
[container](https://github.com/rezmoss/sbomlyze-container-demo). يحتوي كل منها
على خمسة سيناريوهات مراجعة قابلة لإعادة الإنتاج. يجمع
[دليل النسخة التجريبية في 10 دقائق](https://github.com/rezmoss/sbomlyze/blob/main/BETA.md) أربعة أسئلة مركّزة حول التنشيط
وجودة الإشارات.

لا يلزم إيداع ملفات SBOM المُنشأة: يسترجع `baseline: workflow-artifact`
أحدث artifact مطابق من تشغيل ناجح على الفرع الافتراضي. يُظهر
[سير عمل Syft المرافق المثبّت](https://github.com/rezmoss/sbomlyze/blob/main/examples/workflows/syft-companion.yml)
عملية الإنشاء ونشر baseline بينما يظل SBOMlyze مسؤولاً عن المراجعة والسياسة.

## لماذا sbomlyze؟

تولّد العديد من الأدوات ملفات SBOM. لكن القليل منها يقارنها، وقليل منها يخبرك
ما إذا كان التغيير روتينياً أم إشارة حمراء في سلسلة التوريد. يسدّ sbomlyze هذه الفجوة.

| القدرة | **sbomlyze** | cyclonedx-cli | sbomqs | syft / trivy |
|---|:---:|:---:|:---:|:---:|
| **diff** بين SBOM وSBOM | ✅ | أساسي | ❌ | ❌ |
| انحراف **السلامة / التلاعب** (تغيّر hash دون تغيّر الإصدار) | ✅ | ❌ | ❌ | ❌ |
| diff رسم التبعيات + مخاطر العمق العابر | ✅ | ❌ | ❌ | ❌ |
| تقييم الامتثال **NTIA / CISA / BSI** | ✅ | ❌ | ✅ | ❌ |
| تحويل الصيغ (Syft / CycloneDX / SPDX) | ✅ | ✅ | ❌ | جزئي |
| مستكشفات **TUI + Web UI** | ✅ | ❌ | ❌ | ❌ |
| بوابة السياسة + SARIF / JUnit / Markdown / HTML / Patch | ✅ | جزئي | جزئي | جزئي |

## الميزات

- **مقارنة SBOM (diffing)**: قارن بين ملفي SBOM واطّلع على المكوّنات المضافة والمحذوفة والمتغيّرة بنظرة واحدة
- **تصنيف الانحراف**: ميّز بين انحراف الإصدار و**انحراف السلامة** (تغيّر hash دون تغيّر الإصدار، مما يشير إلى تلاعب) وانحراف البيانات الوصفية
- **تقييم الامتثال**: قيّم أي SBOM مقابل العناصر الدنيا لـ **NTIA** و**CISA 2025** و**BSI TR-03183**
- **diff رسم التبعيات**: تتبّع التبعيات العابرة وعمق سلسلة التوريد
- **دعم صيغ متعددة**: Syft، CycloneDX، SPDX (JSON)
- **تحويل الصيغ**: التحويل بين صيغ CycloneDX وSPDX وSyft
- **مطابقة هوية قوية**: أسبقية PURL → CPE → BOM-ref → namespace/name
- **وضع الإحصاءات**: تحليل ملفات SBOM فردية لمقاييس التراخيص والتبعيات والسلامة
- **وضع TUI التفاعلي**: استكشف ملفات SBOM بالتنقل عبر لوحة المفاتيح والبحث
- **وضع Web UI**: مستكشف SBOM قائم على المتصفح مع رفع بالسحب والإفلات
- **محرّك السياسات**: فرض قواعد الانحراف والتراخيص ودرجة الامتثال في خطوط أنابيب CI
- **إجراء GitHub Marketplace**: بوّب طلبات السحب على انحراف SBOM مع Job Summary وSARIF ومخرجات تعليق اختيارية
- **كشف التكرار والتعارض**: اعثر على إصدارات متعددة من الحزمة نفسها ومطابقات الهوية الملتبسة
- **صيغ مخرجات متعددة**: Text، JSON، SARIF، JUnit XML، Markdown، HTML، JSON Patch
- **تحليل متسامح**: تابع عند وجود أخطاء مع تحذيرات منظّمة

## التثبيت

### Homebrew (macOS/Linux)```bash
brew install rezmoss/sbomlyze/sbomlyze

نص التثبيت

يقوم نص التثبيت بتنزيل الملف التنفيذي الصحيح لنظام التشغيل/البنية الخاصة بك:```bash

Install to ./bin

curl -sSfL https://raw.githubusercontent.com/rezmoss/sbomlyze/main/install.sh | sh

Install to /usr/local/bin (requires sudo)

curl -sSfL https://raw.githubusercontent.com/rezmoss/sbomlyze/main/install.sh | sudo sh -s -- -b /usr/local/bin

Install specific version

curl -sSfL https://raw.githubusercontent.com/rezmoss/sbomlyze/main/install.sh | sh -s -- -v 0.4.0

**خيارات المُثبِّت:**

| الخيار | الوصف |
|--------|-------------|
| `-b <dir>` | دليل التثبيت (الافتراضي: `./bin`) |
| `-d` | تمكين مخرجات التصحيح |
| `-v <ver>` | تثبيت إصدار محدد (الافتراضي: الأحدث) |

يتحقق المُثبِّت دائمًا من checksum الإصدار. عند تثبيت GitHub CLI متوافق،
يتحقق أيضًا من مصدر بناء الإصدار ويفشل بشكل مغلق إذا
لم تنجح عملية التحقق تلك.

### التثبيت عبر Go```bash
go install github.com/rezmoss/sbomlyze/cmd/sbomlyze@latest

من إصدار ثنائي

قم بتنزيل أحدث إصدار ثنائي من إصدارات GitHub.

بدءًا من الإصدار v0.3.7، يتم نشر أرشيفات الإصدار مع شهادات مصنوعات GitHub. تحقق من التنزيل بشكل مستقل باستخدام:```bash gh attestation verify ./sbomlyze_0.4.0_Linux_x86_64.tar.gz
--repo rezmoss/sbomlyze
--signer-workflow rezmoss/sbomlyze/.github/workflows/release.yml

تمت إزالة تعليمات مستودعات apt وrpm وapk غير الموقّعة حتى تدعم المستودعات التحقق من التوقيع الأصلي لمدير الحزم.

**مستخدمو macOS:** أزل علامة الحجر الصحي بعد التنزيل:```bash
xattr -d com.apple.quarantine ./sbomlyze
chmod +x ./sbomlyze

البناء من المصدر```bash

git clone https://github.com/rezmoss/sbomlyze.git cd sbomlyze go build -o sbomlyze ./cmd/sbomlyze

## البدء السريع```bash
# Compare two SBOMs (the headline use case)
sbomlyze before.json after.json

# Analyze a single SBOM
sbomlyze image.json

# Read an SBOM from standard input
syft image:tag -o cyclonedx-json | sbomlyze -

# Use standard input on either side of a diff
syft image:tag -o cyclonedx-json | sbomlyze baseline.json -

# Score an SBOM against NTIA / CISA / BSI minimum elements
sbomlyze image.json --compliance

# Interactive TUI explorer
sbomlyze image.json -i

# Web UI (opens browser)
sbomlyze -web

# Convert between SBOM formats
sbomlyze convert syft.json --to spdx
sbomlyze convert cdx.json --to syft -o output.json

# JSON output for CI integration
sbomlyze before.json after.json --json

# SARIF output for GitHub Code Scanning
sbomlyze before.json after.json --format sarif

# Markdown report for PR comments
sbomlyze before.json after.json --format markdown

الفئات