Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
sbomlyze — Git diff for SBOMs—CycloneDX, SPDX और Syft दस्तावेज़ों की तुलना करें, छेड़छाड़ का पता लगाएँ और CI को गेट करें। | Kitploit
उपकरण/GitHubGitHub/rezmoss/sbomlyze
स्थैतिक विश्लेषणभेद्यता विश्लेषणकॉन्फ़िगरेशन ऑडिटिंगDevSecOpsउपयोगिताएँ और फ्रेमवर्कसीक्रेट डिटेक्शनखतरा खुफियाआपूर्ति श्रृंखला सुरक्षा
GitHubrezmoss/sbomlyze

sbomlyze

Git diff for SBOMs—CycloneDX, SPDX और Syft दस्तावेज़ों की तुलना करें, छेड़छाड़ का पता लगाएँ और CI को गेट करें।

रिपॉजिटरी देखें
24211 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
वेबसाइट

sbomlyze

आपके SBOM के लिए git diff। दो सॉफ़्टवेयर सामग्री बिलों (SBOM) की तुलना करें और देखें कि बिल्ड, संस्करणों और रिलीज़ों के बीच क्या बदला।

sbomlyze घटक हैश की तुलना करता है, केवल संस्करण स्ट्रिंग्स की नहीं। जब कोई हमलावर बिना संस्करण बढ़ाए किसी पैकेज को बदल देता है, तो sbomlyze इसे चिह्नित करता है। जनरेटर और भेद्यता स्कैनर इसे नज़रअंदाज़ कर देते हैं।

[![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] [![License: Apache-2.0][license-img]][license] [![Downloads][download-img]][download]

SBOMlyze एक वास्तविक पुल रिक्वेस्ट में समान-संस्करण हैश परिवर्तन को रोकता है

यह संकेत मेनिफेस्ट या सामान्य घटक डिफ़ से क्यों अलग है, यह देखें: मेनिफेस्ट डिफ़ बनाम SBOM डिफ़ बनाम इंटीग्रिटी ड्रिफ्ट।

जनरेटर SBOM बनाते हैं और स्कैनर CVE खोजते हैं। sbomlyze आपको बताता है कि दो SBOM के बीच क्या बदला और क्या आपको उस पर भरोसा करना चाहिए। इसे अपने जनरेटर के बाद चलाएँ: syft image:tag -o cyclonedx-json | sbomlyze - --compliance बिना किसी अस्थायी फ़ाइल के उत्पन्न SBOM का विश्लेषण और मूल्यांकन करता है। ड्रिफ्ट को वर्गीकृत करने और अपनी पाइपलाइन को गेट करने के लिए इसकी तुलना बेसलाइन से करें।

GitHub Action त्वरित आरंभ

चेक-इन किए गए या अलग से जनरेट किए गए SBOM की उसकी git बेसलाइन से तुलना करने के लिए [GitHub Marketplace से SBOMlyze Diff][marketplace] जोड़ें। नीचे दिया गया अपरिवर्तनीय SHA प्रकाशित v0.5.1 Action है:```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

root@kitploit:~
यह Action डिफ़ॉल्ट रूप से एक Job Summary लिखता है और नीति लागू कर सकता है, integrity drift की रिपोर्ट कर सकता है, SARIF अपलोड कर सकता है, या एक एकल pull-request टिप्पणी बनाए रख सकता है। inputs, outputs, permissions और security guidance के लिए [संपूर्ण Action संदर्भ](https://github.com/rezmoss/sbomlyze/blob/HEAD/ACTION.md) देखें। एक सफल निर्भरता अद्यतन और एक अवरुद्ध same-version हैश परिवर्तन के लिए [लाइव प्रदर्शन रिपॉजिटरी](https://github.com/rezmoss/sbomlyze-action-demo) देखें, जिसमें सार्वजनिक workflow runs और SARIF साक्ष्य शामिल हैं।

फ़ॉर्मैट-विशिष्ट dogfood के लिए, सार्वजनिक [Go + SPDX](https://github.com/rezmoss/sbomlyze-go-spdx-demo), [Node + CycloneDX](https://github.com/rezmoss/sbomlyze-node-cyclonedx-demo), या [कंटेनर](https://github.com/rezmoss/sbomlyze-container-demo) उदाहरण का उपयोग करें। प्रत्येक में पाँच reproducible समीक्षा परिदृश्य हैं। [10-मिनट बीटा गाइड](https://github.com/rezmoss/sbomlyze/blob/HEAD/BETA.md) चार केंद्रित सक्रियण और सिग्नल गुणवत्ता प्रश्न एकत्र करता है।

जनरेट किए गए SBOM को commit करने की आवश्यकता नहीं है: `baseline: workflow-artifact` एक सफल default-branch run से सबसे हालिया मेल खाता artifact प्राप्त करता है। एक [पिन किया गया Syft सहयोगी workflow](https://github.com/rezmoss/sbomlyze/blob/HEAD/examples/workflows/syft-companion.yml) जनरेशन और baseline प्रकाशन दिखाता है जबकि SBOMlyze समीक्षा और नीति के लिए ज़िम्मेदार रहता है।

## sbomlyze क्यों?

कई उपकरण SBOM जनरेट करते हैं। कुछ उनकी तुलना करते हैं, और और भी कम आपको बताते हैं कि कोई परिवर्तन नियमित है या supply-chain का red flag। sbomlyze इस अंतर को भरता है।

| क्षमता | **sbomlyze** | cyclonedx-cli | sbomqs | syft / trivy |
|---|:---:|:---:|:---:|:---:|
| SBOM-से-SBOM **diff** | ✅ | बुनियादी | ❌ | ❌ |
| **Integrity / tamper** drift (बिना संस्करण बदले हैश बदला) | ✅ | ❌ | ❌ | ❌ |
| Dependency-graph diff + transitive गहराई जोखिम | ✅ | ❌ | ❌ | ❌ |
| **NTIA / CISA / BSI** compliance स्कोरिंग | ✅ | ❌ | ✅ | ❌ |
| प्रारूप रूपांतरण (Syft / CycloneDX / SPDX) | ✅ | ✅ | ❌ | आंशिक |
| **TUI + Web UI** एक्सप्लोरर | ✅ | ❌ | ❌ | ❌ |
| Policy gate + SARIF / JUnit / Markdown / HTML / Patch | ✅ | आंशिक | आंशिक | आंशिक |

## विशेषताएँ

- **SBOM diffing**: दो SBOM की तुलना करें और एक नज़र में जोड़े गए, हटाए गए और बदले गए घटक देखें
- **Drift वर्गीकरण**: संस्करण drift को **integrity drift** (बिना संस्करण परिवर्तन के हैश बदलना, जो tampering का संकेत है) और metadata drift से अलग करें
- **Compliance स्कोरिंग**: किसी भी SBOM को **NTIA**, **CISA 2025** और **BSI TR-03183** न्यूनतम तत्वों के विरुद्ध स्कोर करें
- **Dependency graph diff**: transitive निर्भरताओं और supply-chain गहराई को ट्रैक करें
- **बहु-प्रारूप समर्थन**: Syft, CycloneDX, SPDX (JSON)
- **प्रारूप रूपांतरण**: CycloneDX, SPDX और Syft प्रारूपों के बीच रूपांतरण करें
- **मजबूत पहचान मिलान**: PURL → CPE → BOM-ref → namespace/name वरीयता
- **सांख्यिकी मोड**: लाइसेंस, निर्भरता और integrity मेट्रिक्स के लिए एकल SBOM का विश्लेषण करें
- **इंटरैक्टिव TUI मोड**: कीबोर्ड नेविगेशन और खोज के साथ SBOM एक्सप्लोर करें
- **Web UI मोड**: drag-and-drop अपलोड के साथ ब्राउज़र-आधारित SBOM एक्सप्लोरर
- **पॉलिसी इंजन**: CI पाइपलाइनों में drift, लाइसेंस और compliance-score नियम लागू करें
- **GitHub Marketplace Action**: Job Summary, SARIF और वैकल्पिक टिप्पणी आउटपुट के साथ SBOM drift पर pull requests को गेट करें
- **डुप्लिकेट और टकराव का पता लगाना**: एक ही पैकेज के कई संस्करण और अस्पष्ट पहचान मिलान खोजें
- **एकाधिक आउटपुट प्रारूप**: Text, JSON, SARIF, JUnit XML, Markdown, HTML, JSON Patch
- **सहिष्णु पार्सिंग**: संरचित चेतावनियों के साथ त्रुटियों पर जारी रखें

## स्थापना

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

इंस्टॉलर स्क्रिप्ट

इंस्टॉलर स्क्रिप्ट आपके OS/आर्किटेक्चर के लिए सही बाइनरी डाउनलोड करती है:```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

root@kitploit:~
**इंस्टॉलर विकल्प:**

| विकल्प | विवरण |
|--------|-------------|
| `-b <dir>` | स्थापना निर्देशिका (डिफ़ॉल्ट: `./bin`) |
| `-d` | डीबग आउटपुट सक्षम करें |
| `-v <ver>` | विशिष्ट संस्करण स्थापित करें (डिफ़ॉल्ट: नवीनतम) |

इंस्टॉलर हमेशा रिलीज़ चेकसम की पुष्टि करता है। जब कोई संगत GitHub CLI स्थापित होती है, तो यह रिलीज़ की बिल्ड प्रोवेनेंस की भी पुष्टि करता है, और यदि वह सत्यापन सफल नहीं होता है, तो यह विफल होकर बंद हो जाता है (fail closed)।

### Go Install```bash
go install github.com/rezmoss/sbomlyze/cmd/sbomlyze@latest

बाइनरी रिलीज़ से

नवीनतम बाइनरी GitHub Releases से डाउनलोड करें।

v0.3.7 से शुरू करके, रिलीज़ आर्काइव GitHub artifact attestations के साथ प्रकाशित किए जाते हैं। किसी डाउनलोड को स्वतंत्र रूप से सत्यापित करें:```bash gh attestation verify ./sbomlyze_0.4.0_Linux_x86_64.tar.gz
--repo rezmoss/sbomlyze
--signer-workflow rezmoss/sbomlyze/.github/workflows/release.yml

root@kitploit:~
Bिना हस्ताक्षर वाले apt, rpm, और apk रिपॉजिटरी निर्देशों को तब तक हटा दिया गया है जब तक कि रिपॉजिटरी पैकेज-मैनेजर-मूल हस्ताक्षर सत्यापन का समर्थन नहीं करतीं।

**macOS उपयोगकर्ता:** डाउनलोड करने के बाद quarantine फ्लैग हटाएँ:```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

root@kitploit:~
## त्वरित प्रारंभ```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

# Apply policy checks
sbomlyze before.json after.json --policy policy.json

उपयोग```

sbomlyze <sbom1|-> [sbom2|-] [options] sbomlyze convert <sbom|-> --to [-o output]

Modes: Single file: sbomlyze [--json] Show statistics Interactive: sbomlyze -i Interactive explorer Convert: sbomlyze convert --to Convert SBOM format Web server: sbomlyze -web [--port 8080] Web UI explorer Two files: sbomlyze [...] Show diff

Use - in place of one SBOM path to read it from standard input.

Options: -i, --interactive Interactive TUI explorer -web, --web Start web UI server --port Web server port (default 8080) --json Output in JSON format (shortcut for --format json) --format Output format: text, json, sarif, junit, markdown, html, patch --compliance Show NTIA/CISA/BSI compliance scoring --policy Policy file for CI checks --strict Fail on parse warnings --tolerant Continue on parse warnings (default) --no-pager Disable automatic paging of output --to Target format for convert: cyclonedx (cdx), spdx, syft -o, --output Output file for convert (default: stdout) --version, -v Show version information --help, -h Show this help message

root@kitploit:~
## कमांड्स

### सांख्यिकी मोड (एकल फ़ाइल)

किसी SBOM का विश्लेषण करके घटकों, लाइसेंसों और निर्भरताओं के बारे में जानकारी प्राप्त करें।```bash
sbomlyze image.json

आउटपुट में स्कैन संदर्भ, स्वतः-पहचाने गए प्रमुख निष्कर्ष और आँकड़े शामिल हैं:``` Scan Context: Tool: syft 1.40.1 Schema: 16.0.18 Scan Scope: all-layers Source Type: image Source: alpine:latest

Key Findings: 💻 OS/Distro: Alpine Linux v3.21 📦 Dominated by apk: 71 of 71 packages (100.0%) 📂 8,542 files tracked on filesystem 🔗 Relationships: 71 containment + 64 dependency 📜 License profile: 72% permissive, 20% copyleft ⚠️ Low hash coverage: 0.0% (71 of 71 missing) 🔍 Top catalogers: apkdb-cataloger (71)

📦 SBOM Statistics

Total Components: 71

By Package Type: apk 71

Licenses: With license: 71 Without license: 0

Top Licenses: MIT 17 BSD-3-Clause 8 GPL-2.0-only 8

Integrity: With hashes: 0 Without hashes: 71

Dependencies: Components with deps: 65 Total dep relations: 176

root@kitploit:~
#### मुख्य निष्कर्ष

sbomlyze आपके SBOM के बारे में स्वचालित रूप से अंतर्दृष्टि उत्पन्न करता है। एकल-फ़ाइल विश्लेषण के लिए, इनमें शामिल हैं:

| खोज | विवरण |
|---------|-------------|
| **OS/distro पहचान** | SBOM मेटाडेटा से ऑपरेटिंग सिस्टम या डिस्ट्रो की पहचान करता है |
| **प्रमुख इकोसिस्टम** | जब एक पैकेज प्रकार हावी होता है (सभी पैकेजों का >60%) तो रिपोर्ट करता है |
| **फ़ाइलसिस्टम पदचिह्न** | फ़ाइलसिस्टम पर ट्रैक की गई फ़ाइलों की संख्या |
| **संबंध घनत्व** | कंटेनमेंट और डिपेंडेंसी-ऑफ संबंधों की गणना |
| **स्थान हॉटस्पॉट** | वे शीर्ष निर्देशिकाएँ जहाँ घटक पाए जाते हैं |
| **लाइसेंस जोखिम प्रोफ़ाइल** | अनुमेय/कॉपीलेफ्ट/अज्ञात लाइसेंस प्रतिशत का विवरण |
| **डेटा गुणवत्ता चेतावनियाँ** | जब लाइसेंस (<50%), हैश (<50%), या PURL (<80%) कवरेज कम हो तो सतर्क करता है |
| **डुप्लिकेट चेतावनियाँ** | डुप्लिकेट घटक समूहों को फ़्लैग करता है |
| **कैटलॉगर ब्रेकडाउन** | वे शीर्ष स्कैनर/कैटलॉगर जिन्होंने घटकों का पता लगाया (Syft SBOMs) |

#### कवरेज मेट्रिक्स

सांख्यिकी मोड डेटा गुणवत्ता मूल्यांकन के लिए कवरेज प्रतिशत की गणना करता है:

| मीट्रिक | विवरण |
|--------|-------------|
| **PURL कवरेज** | पैकेज URL वाले घटकों का प्रतिशत |
| **CPE कवरेज** | CPE वाले घटकों का प्रतिशत (भेद्यता स्कैनिंग तत्परता) |
| **लाइसेंस कवरेज** | कम से कम एक लाइसेंस वाले घटकों का प्रतिशत |
| **हैश कवरेज** | अखंडता हैश वाले घटकों का प्रतिशत |

#### लाइसेंस वर्गीकरण

लाइसेंस स्वचालित रूप से इस प्रकार वर्गीकृत किए जाते हैं:

| श्रेणी | उदाहरण |
|----------|----------|
| **कॉपीलेफ्ट** | GPL, LGPL, AGPL, MPL, EPL, CDDL |
| **अनुमेय** | MIT, BSD, Apache, ISC, Zlib, Unlicense |
| **सार्वजनिक डोमेन** | सार्वजनिक डोमेन समर्पण |
| **अज्ञात** | अपरिचित या अनुपलब्ध लाइसेंस |

### कन्वर्ट मोड

SBOM को CycloneDX, SPDX, और Syft JSON प्रारूपों के बीच कन्वर्ट करें। इनपुट प्रारूप स्वचालित रूप से पहचाना जाता है।```bash
# CycloneDX to SPDX
sbomlyze convert image.cdx.json --to spdx

# Syft to CycloneDX (cdx is an alias for cyclonedx)
sbomlyze convert syft-output.json --to cdx

# SPDX to Syft, writing to a file
sbomlyze convert spdx-output.json --to syft -o converted.json

समर्थित लक्ष्य प्रारूप

क्या संरक्षित किया जाता है

रूपांतरण घटक नाम, संस्करण, PURLs, CPEs, लाइसेंस, हैश, आपूर्तिकर्ता जानकारी और निर्भरता संबंधों को संरक्षित करता है। प्रारूप-विशिष्ट फ़ील्ड (जैसे Syft भाषा, foundBy, locations) को CDX में रूपांतरित करते समय CycloneDX गुणों के माध्यम से ले जाया जाता है।

डिफ़ मोड (दो फ़ाइलें)

दो SBOMs की तुलना करके देखें कि संस्करणों के बीच क्या बदला।```bash sbomlyze v1.0.json v2.0.json

root@kitploit:~
#### Diff अवलोकन

Diff की शुरुआत साथ-साथ मेटाडेटा तुलना (फ़ाइल नाम, आकार, OS जानकारी, टूल जानकारी, घटक गणना) से होती है, जिसके बाद उपलब्ध होने पर स्कैन संदर्भ विवरण दिए जाते हैं।

#### आउटपुट```
📊 Drift Summary:
  📦 Version drift:   58 components
  ⚠️  Integrity drift: 1 component (hash changed without version change!)
  📝 Metadata drift:  2 components

🔑 Key Findings:
  📈 Attack surface: +5 packages (7.0%), +120 files (3.2%)
  🚨 2 version downgrades detected: openssl 3.1.4→3.0.2, curl 8.5.0→8.4.0
  🔄 56 version upgrades (2 major, 12 minor, 42 patch) among 65 shared packages
  ⚠️  Integrity drift (1 total): 1 npm (review recommended)
  ❌ python ecosystem entirely removed (15 → 0 packages)
  ➕ New ecosystem: golang (8 packages)
  ✅ Core system packages stable: apk (71) unchanged

+ Added (2):
  + libgcrypt 1.10.3-r0
  + libgpg-error 1.49-r0

- Removed (3):
  - libapk 3.0.3-r1
  - libgcc 15.2.0-r2
  - nghttp3 1.13.1-r0

~ Changed (58):
  ~ nginx
      version: 1.29.4-r1 -> 1.27.3-r1
  ~ suspicious-pkg ⚠️  [INTEGRITY]
      hash[SHA256]: abc123 -> def456

>> Added dependencies:
  pkg:apk/alpine/libxslt: +[so:libgcrypt.so.20]

<< Removed dependencies:
  pkg:apk/alpine/libcurl: -[so:libnghttp3.so.9]

🔗 New transitive dependencies (3):
  + pkg:npm/lodash (depth 2)
    via: [pkg:npm/my-app pkg:npm/express pkg:npm/lodash]
  + pkg:npm/underscore (depth 3)
    via: [pkg:npm/my-app pkg:npm/express pkg:npm/lodash pkg:npm/underscore]

📊 New deps by depth:
  Depth 2:              1
  Depth 3+ (risky):     2 ⚠️

Diff मुख्य निष्कर्ष

डिफ़ मोड में, sbomlyze दोनों SBOM की तुलना करते हुए स्वचालित रूप से समृद्ध अंतर्दृष्टि उत्पन्न करता है:

प्रकार के अनुसार पैकेज नमूने

जोड़े और हटाए गए घटकों को पैकेज प्रकार के अनुसार नमूना सूचियों के साथ समूहीकृत किया जाता है, जिससे यह देखना आसान हो जाता है कि प्रत्येक इकोसिस्टम में क्या बदला।

अनुपालन स्कोरिंग

किसी भी SBOM को तीन प्रमुख न्यूनतम-तत्व ढाँचों के आधार पर स्कोर करें, ताकि उस प्रश्न का उत्तर दिया जा सके जो लेखा परीक्षक (auditors) और क्रय टीमें बार-बार पूछती हैं: "क्या यह SBOM पर्याप्त रूप से पूर्ण है?"```bash

Score a single SBOM

sbomlyze image.json --compliance

Score alongside a diff

sbomlyze before.json after.json --compliance

As JSON for CI

sbomlyze image.json --compliance --json

root@kitploit:~
### मूल्यांकन किए गए फ्रेमवर्क

| फ्रेमवर्क | जाँचें | उल्लेखनीय आवश्यकताएँ |
|-----------|--------|----------------------|
| **NTIA न्यूनतम तत्व** (2021) | 7 | नाम, संस्करण, आपूर्तिकर्ता, विशिष्ट ID (PURL/CPE), निर्भरता संबंध, SBOM लेखक, टाइमस्टैम्प |
| **CISA 2025 न्यूनतम तत्व** (अगस्त 2025 ड्राफ़्ट) | 10 | NTIA के अतिरिक्त सॉफ़्टवेयर निर्माता, लाइसेंस जानकारी, **कंपोनेंट हैश**, और टूल नाम जोड़ता है |
| **BSI TR-03183-2** (v2.1.0, 2025) | 9 | कंपोनेंट निर्माता का संपर्क, **SHA-512 हैश**, SPDX-प्रारूप लाइसेंस, और SBOM निर्माता का संपर्क आवश्यक है |

### स्कोर प्रस्तुति

प्रत्येक फ्रेमवर्क एक प्रतिशत (पास हुई जाँचें / कुल जाँचें) और एक समग्र स्कोर (सभी फ्रेमवर्क में औसत) रिपोर्ट करता है, स्थिति संकेतकों के साथ:

| संकेतक | स्कोर |
|-----------|-------|
| 🟢 | ≥ 90% |
| 🟡 | 70–89% |
| 🟠 | 50–69% |
| 🔴 | < 50% |

JSON आउटपुट (`--compliance --json`) में प्रति-जाँच पास/फेल विवरण के साथ पूरी रिपोर्ट शामिल होती है; HTML प्रारूप रिपोर्ट पृष्ठ में अनुपालन रिपोर्ट को एम्बेड करता है।

### CI में गेटिंग अनुपालन

[पॉलिसी इंजन](#policy-engine) के माध्यम से अनुपालन सीमाएँ लागू करें। कोई भी सीमा निर्धारित करने पर बिना `--compliance` फ़्लैग के अनुपालन मूल्यांकन ट्रिगर हो जाता है:```json
{
  "min_ntia_score": 85,
  "min_cisa_score": 70,
  "min_bsi_score": 80,
  "min_overall_compliance": 75
}

No input content was provided to translate. Please supply the actual Markdown text for chunk 33 so that I can translate it into Hindi.```bash sbomlyze image.json --policy compliance-policy.json

root@kitploit:~
## निर्भरता ग्राफ अंतर

sbomlyze साधारण कंपोनेंट सूची अंतर से आगे बढ़कर पूर्ण निर्भरता ग्राफ का विश्लेषण करता है, ट्रांज़िटिव निर्भरताओं के माध्यम से उत्पन्न आपूर्ति-श्रृंखला जोखिमों का पता लगाता है।

### विशेषताएँ

| Feature | Description |
|---------|-------------|
| **किनारा अंतर** | सीधी निर्भरताएँ जोड़ी/हटाई गईं (A, B पर निर्भर है) |
| **ट्रांज़िटिव पहुंच** | ग्राफ के माध्यम से दिखाई देने वाली नई अप्रत्यक्ष निर्भरताएँ |
| **ट्रांज़िटिव हानि ट्रैकिंग** | वे ट्रांज़िटिव निर्भरताएँ जो हटा दी गईं |
| **पथ ट्रैकिंग** | दिखाता है कि प्रत्येक नई ट्रांज़िटिव निर्भरता तक कैसे पहुँचा जाता है |
| **गहराई ट्रैकिंग** | प्रत्येक नई निर्भरता आपके कोड से कितने हॉप्स दूर है |
| **जोखिम सारांश** | गहराई 3+ वाली निर्भरताएँ उच्च जोखिम के रूप में चिह्नित |

### गहराई क्यों मायने रखती है

ग्राफ में गहराई से जोड़ी गई निर्भरताएँ:
- ऑडिट और समीक्षा करना कठिन
- अक्सर स्पष्ट अनुमोदन के बिना शामिल की जाती हैं  
- सप्लाई चेन हमलों के सामान्य वेक्टर (जैसे, event-stream घटना)

गहराई सारांश समीक्षा को प्राथमिकता देने में मदद करता है:

| Depth | Risk Level | Description |
|-------|------------|-------------|
| **1** | कम | सीधी निर्भरताएँ (आपने इन्हें चुना है) |
| **2** | मध्यम | आपकी निर्भरताओं की निर्भरताएँ |
| **3+** | उच्च ⚠️ | गहरी ट्रांज़िटिव निर्भरताएँ - ध्यान से समीक्षा करें |

### उदाहरण: गहरी ट्रांज़िटिव निर्भरताओं का पता लगाना```bash
# Before: app -> express (simple, 1 dep)
# After:  app -> express -> lodash -> underscore -> deep-lib (chain of 4)

sbomlyze before.json after.json

There is no content provided to translate. The input section is empty, so there is nothing to output.``` 🔗 New transitive dependencies (3):

  • lodash (depth 2) via: [app express lodash]
  • underscore (depth 3) via: [app express lodash underscore]
  • deep-lib (depth 4) via: [app express lodash underscore deep-lib]

📊 New deps by depth: Depth 2: 1 Depth 3+ (risky): 2 ⚠️

root@kitploit:~
### निर्भरता ग्राफ़ के लिए JSON आउटपुट```json
{
  "dependencies": {
    "added_deps": {
      "pkg:npm/express": ["pkg:npm/lodash", "pkg:npm/body-parser"]
    },
    "removed_deps": {},
    "transitive_new": [
      {
        "target": "pkg:npm/underscore",
        "via": ["pkg:npm/my-app", "pkg:npm/express", "pkg:npm/lodash", "pkg:npm/underscore"],
        "depth": 3
      }
    ],
    "transitive_lost": [],
    "depth_summary": {
      "depth_1": 0,
      "depth_2": 2,
      "depth_3_plus": 2
    }
  }
}

ड्रिफ्ट डिटेक्शन

sbomlyze घटक परिवर्तनों को तीन ड्रिफ्ट प्रकारों में वर्गीकृत करता है, जिससे आप सामान्य अपडेट्स को संभावित संदिग्ध परिवर्तनों से अलग कर सकते हैं।

ड्रिफ्ट प्रकार

अखंडता ड्रिफ्ट (सुरक्षा संकेत)

अखंडता ड्रिफ्ट तब होता है जब किसी घटक का हैश बदलता है लेकिन उसका संस्करण वही रहता है। यह संकेत दे सकता है:

  • सप्लाई चेन हमला: पैकेज को दुर्भावनापूर्ण संस्करण से बदल दिया गया
  • संस्करण बदले बिना पुनर्निर्माण: वैध लेकिन खराब अभ्यास
  • भिन्न निर्माण वातावरण: प्रतिलिपि प्रस्तुति (reproducibility) समस्याएँ```bash

Example output with integrity drift

~ suspicious-pkg ⚠️ [INTEGRITY] hash[SHA256]: abc123 -> def456

root@kitploit:~
**Recommendation**: हमेशा इंटीग्रिटी ड्रिफ्ट की जाँच करें। यह हानिरहित हो सकता है, लेकिन यह सप्लाई चेन सुरक्षा के लिए एक महत्वपूर्ण संकेत है।

### ड्रिफ्ट के लिए JSON आउटपुट

ड्रिफ्ट सारांश `diff` ऑब्जेक्ट के अंदर है:```json
{
  "diff": {
    "changed": [
      {
        "id": "pkg:npm/suspicious-pkg",
        "name": "suspicious-pkg",
        "changes": ["hash[SHA-256]: abc123 -> def456"],
        "drift": {
          "type": "integrity",
          "hash_changes": {
            "changed": {
              "SHA-256": {"before": "abc123", "after": "def456"}
            }
          }
        }
      }
    ],
    "drift_summary": {
      "version_drift": 55,
      "integrity_drift": 1,
      "metadata_drift": 2
    }
  }
}

ड्रिफ्ट सारांश निकाला जा रहा है:```bash

Get drift summary

sbomlyze before.json after.json --json | jq '.diff.drift_summary'

Check for integrity drift in CI

sbomlyze before.json after.json --json | jq -e '.diff.drift_summary.integrity_drift > 0'

root@kitploit:~
## डुप्लिकेट और टकराव का पता लगाना

### डुप्लिकेट का पता लगाना

sbomlyze किसी SBOM के भीतर समान पहचान लेकिन विभिन्न संस्करणों वाले घटकों की पहचान करता है:```
⚠️  Duplicates Found: 2
  lodash: [4.17.20, 4.17.21]
  express: [4.18.0, 4.19.2]

In diff mode, duplicate version diffing tracks:

  • नए डुप्लिकेट: नए SBOM में डुप्लिकेट हो गए घटक
  • हल किए गए डुप्लिकेट: समेकित किए गए डुप्लिकेट समूह
  • संस्करण जोड़/हटाना: मौजूदा डुप्लिकेट समूहों के भीतर संस्करण परिवर्तन

टक्कर का पता लगाना

टक्कर अस्पष्ट पहचान मिलान होते हैं जहाँ घटक समान ID साझा करते हैं लेकिन परस्पर विरोधी विशेषताएँ रखते हैं:

प्रकारविवरण
नाम बेमेलसमान पहचान ID पर मैप किए गए विभिन्न घटक नाम
हैश बेमेलकिसी घटक के समान संस्करण में अलग-अलग हैश होते हैं (संभावित छेड़छाड़)

SBOMlyze SBOM एक्सप्लोरर (TUI)```bash

sbomlyze sbom.json -i

root@kitploit:~
![interactive-sbom](https://assets.kitploit.com/production/public/readmes/12637/d28ec876b78778fce19967cad0a41a5ebd0acb43ad4dd0aeb7837ff5204b9903.gif)

### TUI कीबोर्ड शॉर्टकट

#### नेविगेशन

| कुंजी | क्रिया |
|-----|--------|
| `↑` / `k` | ऊपर जाएँ |
| `↓` / `j` | नीचे जाएँ |
| `PgUp` / `Ctrl+u` | आधा पेज ऊपर |
| `PgDn` / `Ctrl+d` | आधा पेज नीचे |
| `Home` / `g` | शीर्ष पर जाएँ |
| `End` / `G` | सबसे नीचे जाएँ |
| `Enter` | घटक विवरण देखें |
| `Esc` / `Backspace` | वापस जाएँ |
| `q` / `Ctrl+c` | बाहर निकलें |

#### खोज और फ़िल्टर

| कुंजी | क्रिया |
|-----|--------|
| `/` | सभी फ़ील्ड्स (नाम, PURL, लाइसेंस, रॉ JSON) में गहन खोज |
| `t` | पैकेज प्रकार (npm, apk, golang, pypi, आदि) द्वारा फ़िल्टर करें |
| `c` | सभी सक्रिय फ़िल्टर साफ़ करें |

#### दृश्य

| कुंजी | संदर्भ | क्रिया |
|-----|---------|--------|
| `j` | विवरण दृश्य | सिंटैक्स हाइलाइटिंग के साथ रॉ घटक JSON देखें |
| `d` | JSON दृश्य | विवरण दृश्य पर वापस स्विच करें |
| `Enter` | JSON दृश्य | घटक JSON को फ़ाइल में निर्यात करें |
| `?` | कोई भी दृश्य | सभी कीबाइंडिंग के साथ सहायता दिखाएँ |

### घटक विवरण दृश्य

विवरण दृश्य व्यापक घटक जानकारी दिखाता है:
- पैकेज जानकारी (नाम, संस्करण, PURL, नेमस्पेस, आपूर्तिकर्ता)
- दृश्य संकेतकों के साथ लाइसेंस
- अखंडता हैश
- CPEs (कॉमन प्लेटफ़ॉर्म एन्यूमरेशन)
- निर्भरता सूची
- पहचानकर्ता (ID, BOM-ref, SPDX-ID)

## वेब UI मोड

ड्रैग-एंड-ड्रॉप फ़ाइल अपलोड के साथ ब्राउज़र-आधारित SBOM एक्सप्लोरर प्रारंभ करें:```bash
# Start web server on default port 8080
sbomlyze -web

# Start on custom port
sbomlyze -web --port 3000

फिर अपने ब्राउज़र में http://localhost:8080 खोलें।

Screenshot 2026-02-06 at 17 08 13

वेब UI विशेषताएँ

प्रदर्शित आँकड़े

वेब UI व्यापक आँकड़े दिखाता है, जिनमें शामिल हैं:

  • घटक गिनती पैकेज प्रकार के अनुसार (npm, apk, pypi, आदि)
  • लाइसेंस वितरण श्रेणी विभाजन के साथ (copyleft, permissive, public domain)
  • कवरेज मेट्रिक्स विज़ुअल प्रोग्रेस बार के साथ:
    • PURL कवरेज (पैकेज URL उपस्थिति)
    • CPE कवरेज (भेद्यता स्कैनिंग तत्परता)
    • लाइसेंस कवरेज
    • हैश/अखंडता कवरेज
  • भाषा विभाजन (Syft-जनरेटेड SBOM के लिए)
  • संबंध सांख्यिकी (contains, dependency-of, evident-by)
  • डुप्लिकेट पहचान चेतावनियाँ

उपयोग के मामले

सुरक्षा समीक्षा

  • एक SBOM अपलोड करें और पूरे निर्भरता ट्री का अन्वेषण करें
  • CPE कवरेज जाँचें ताकि सुनिश्चित हो सके कि भेद्यता स्कैनिंग काम करती है
  • बिना लाइसेंस या हैश वाले घटकों की समीक्षा करें

अनुपालन ऑडिट

  • सभी घटकों में विशिष्ट लाइसेंस खोजें
  • लाइसेंस श्रेणी वितरण देखें (copyleft बनाम permissive)
  • दस्तावेज़ीकरण के लिए raw JSON निर्यात करें

विकास डिबगिंग

  • पता करें कि आपकी इमेज में कौन से पैकेज शामिल हैं
  • ट्रांज़िटिव निर्भरताएँ जाँचें
  • सत्यापित करें कि पैकेज मेटाडेटा सही है

फाइलसिस्टम ब्राउज़र

वेब UI में SBOM के भीतर फ़ाइलों का अन्वेषण करने के लिए एक पूर्ण फाइलसिस्टम ब्राउज़र शामिल है (विशेष रूप से फ़ाइल मेटाडेटा वाले Syft-जनरेटेड SBOM के लिए उपयोगी):

  • निर्देशिका ट्री नेविगेशन ब्रेडक्रम्ब ट्रेल के साथ
  • फ़ाइल खोज सबस्ट्रिंग और ग्लोब पैटर्न का समर्थन करती है (जैसे, *.so, /usr/lib/**/*.conf)
  • लेयर फ़िल्टरिंग कंटेनर इमेज SBOM के लिए (इमेज लेयर द्वारा फ़ाइलें ब्राउज़ करें)
  • घटक-से-फ़ाइल संबंध (कौन सा घटक किन फ़ाइलों का स्वामी है)
  • फ़ाइल आँकड़े प्रकार, MIME प्रकार, एक्सटेंशन और लेयर के अनुसार
  • अस्वामित्व वाली फ़ाइल पहचान (फ़ाइलें जो किसी घटक से संबद्ध नहीं हैं)

विकल्प

-i (इंटरैक्टिव मोड)

कीबोर्ड नियंत्रणों के साथ SBOM नेविगेट करने के लिए टर्मिनल-आधारित TUI एक्सप्लोरर लॉन्च करें।```bash sbomlyze image.json -i

root@kitploit:~
Features: ट्री नेविगेशन, घटक विवरण, खोज, लाइसेंस/हैश निरीक्षण।

### `-web` (वेब सर्वर मोड)

ब्राउज़र-आधारित SBOM अन्वेषण के लिए एक वेब सर्वर शुरू करें।```bash
# Default port 8080
sbomlyze -web

# Custom port
sbomlyze -web --port 3000

वेब UI ड्रैग-एंड-ड्रॉप अपलोड, इंटरैक्टिव ट्री व्यू, डीप सर्च और स्टैटिस्टिक्स डैशबोर्ड प्रदान करता है।

--compliance

SBOM को NTIA, CISA 2025 और BSI TR-03183 न्यूनतम-तत्व फ्रेमवर्क के विरुद्ध स्कोर करें। देखें कम्प्लायंस स्कोरिंग।```bash sbomlyze image.json --compliance sbomlyze image.json --compliance --json

root@kitploit:~
### `--format` / `-f`

आउटपुट प्रारूप चुनें। सात प्रारूप उपलब्ध हैं:

| प्रारूप | फ़्लैग | विवरण | सर्वोत्तम उपयोग |
|--------|------|-------------|----------|
| **text** | `--format text` (डिफ़ॉल्ट) | मानव-पठनीय टर्मिनल आउटपुट | स्थानीय निरीक्षण |
| **json** | `--json` या `--format json` | संरचित JSON | CI पाइपलाइन, स्क्रिप्टिंग |
| **sarif** | `--format sarif` | GitHub कोड स्कैनिंग के लिए SARIF 2.1.0 | GitHub एकीकरण |
| **junit** | `--format junit` | JUnit XML परीक्षण परिणाम | CI परीक्षण डैशबोर्ड |
| **markdown** | `--format markdown` | PR-टिप्पणी-तैयार Markdown रिपोर्ट | पुल रिक्वेस्ट टिप्पणियाँ |
| **html** | `--format html` | स्व-निहित HTML रिपोर्ट (इनलाइन CSS/JS) | ऑडिटर, साझा करने योग्य रिपोर्ट |
| **patch** | `--format patch` | RFC 6902 JSON पैच ऑपरेशन | प्रोग्रामेटिक पैचिंग |```bash
# SARIF output for GitHub Code Scanning
sbomlyze before.json after.json --format sarif > results.sarif

# JUnit output for CI test dashboards
sbomlyze before.json after.json --format junit > results.xml

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

# Self-contained HTML report
sbomlyze before.json after.json --format html > report.html

# JSON Patch operations
sbomlyze before.json after.json --format patch > changes.json

SARIF प्रारूप

GitHub Code Scanning के लिए उपयुक्त SARIF 2.1.0 रिपोर्ट उत्पन्न करता है। पता लगाए गए नियमों में शामिल हैं:

  • integrity-drift (error): बिना संस्करण परिवर्तन के हैश बदल गया
  • deep-dependency (warning): गहराई 3+ पर नई निर्भरता
  • new-component / removed-component (note): कंपोनेंट जोड़/हटाना
  • version-change (note): कंपोनेंट संस्करण अद्यतन
  • policy-violation (error/warning): नीति नियम उल्लंघन

JUnit प्रारूप

निम्न के लिए परीक्षण मामलों के साथ JUnit XML उत्पन्न करता है:

  • कोई इंटीग्रिटी ड्रिफ्ट नहीं
  • कोई गहरी ट्रांज़िटिव निर्भरताएँ नहीं (गहराई 3+)
  • नीति अनुपालन (प्रति उल्लंघन एक परीक्षण मामला)
  • SBOM अंतर सारांश

Markdown प्रारूप

निम्न के साथ एक Markdown रिपोर्ट उत्पन्न करता है:

  • साथ-साथ SBOM तुलना तालिका (फ़ाइल, आकार, OS, कवरेज मेट्रिक्स)
  • स्कैन संदर्भ विवरण
  • मुख्य निष्कर्ष
  • प्रकार के अनुसार समूहीकृत जोड़े/हटाए गए पैकेज (संकुचन-योग्य अनुभागों में)
  • ड्रिफ्ट सारांश, निर्भरता गहराई, और नीति उल्लंघन

HTML प्रारूप

एक एकल स्व-निहित HTML फ़ाइल (इनलाइन CSS और JavaScript, कोई बाहरी एसेट नहीं) उत्पन्न करता है, जो ऑडिटरों को ईमेल करने या रिलीज़ के साथ संलग्न करने के लिए उपयुक्त है। जब --compliance सेट होता है, तो इसमें सांख्यिकी डैशबोर्ड, निर्भरता वृक्ष, ड्रिफ्ट सारांश और एम्बेडेड अनुपालन रिपोर्ट शामिल होती है।

Patch प्रारूप

अंतर दर्शाने वाले RFC 6902 JSON Patch ऑपरेशनों (add, remove, replace) की एक सरणी उत्पन्न करता है।

--json

--format json के लिए शॉर्टहैंड। प्रोग्रामेटिक उपभोग के लिए परिणामों को JSON प्रारूप में आउटपुट करता है।```bash

Stats as JSON

sbomlyze image.json --json

Diff as JSON

sbomlyze before.json after.json --json

root@kitploit:~
**स्टैट्स JSON संरचना:**```json
{
  "stats": {
    "total_components": 71,
    "by_type": {"apk": 71},
    "by_license": {"MIT": 17, "BSD-3-Clause": 8},
    "without_license": 0,
    "with_hashes": 0,
    "without_hashes": 71,
    "total_dependencies": 176,
    "with_dependencies": 65,
    "duplicate_count": 0,
    "by_language": {"go": 45, "python": 12},
    "by_found_by": {"apk-db-cataloger": 71},
    "license_categories": {
      "copyleft": 8,
      "permissive": 55,
      "public_domain": 0,
      "unknown": 8
    },
    "with_cpes": 71,
    "without_cpes": 0,
    "with_purl": 71,
    "without_purl": 0
  },
  "warnings": []
}

--policy <file>

पॉलिसी नियम लागू करें और उल्लंघन होने पर CI विफल करें।```bash sbomlyze before.json after.json --policy policy.json

root@kitploit:~
विवरण के लिए [Policy Engine](#policy-engine) देखें।

### `--strict`

किसी भी पार्सिंग त्रुटि पर तुरंत विफल हो जाएँ।```bash
sbomlyze broken.json --strict
# Error parsing broken.json: unknown SBOM format
# exit status 1

--tolerant (डिफ़ॉल्ट)

त्रुटियों पर प्रोसेसिंग जारी रखें, चेतावनियाँ एकत्र करें।```bash sbomlyze broken.json --tolerant

📦 SBOM Statistics

==================

Total Components: 0

...

⚠️ Parse Warnings (1):

[broken.json] unknown SBOM format

root@kitploit:~
पार्स चेतावनियों में संरचित जानकारी शामिल होती है: स्रोत फ़ाइल, एक मानव-पठनीय संदेश, और वैकल्पिक रूप से वह फ़ील्ड जिसके कारण समस्या उत्पन्न हुई।

### `--no-pager`

स्वचालित आउटपुट पेजिंग अक्षम करें। आउटपुट को किसी अन्य कमांड में पाइप करते समय या गैर-इंटरैक्टिव वातावरण में चलाते समय उपयोगी।```bash
sbomlyze image.json --no-pager
sbomlyze before.json after.json --no-pager | head -20

पॉलिसी इंजन

CI/CD पाइपलाइनों में नियम लागू करने के लिए पॉलिसियाँ बनाएँ। उल्लंघन होने पर sbomlyze कोड 1 के साथ बाहर निकलता है।

पॉलिसी फ़ाइल प्रारूप```json

{ "max_added": 10, "max_removed": 5, "max_changed": 100, "deny_licenses": ["GPL-3.0", "AGPL-3.0"], "require_licenses": true, "deny_duplicates": true, "deny_integrity_drift": true, "max_depth": 3, "warn_supplier_change": true, "warn_new_transitive": true, "min_ntia_score": 85, "min_cisa_score": 70, "min_bsi_score": 80, "min_overall_compliance": 75 }

root@kitploit:~
### नीति नियम

| Rule | प्रकार | विवरण |
|------|------|-------------|
| `max_added` | int | अधिकतम नए घटकों की अनुमति (0 = असीमित) |
| `max_removed` | int | अधिकतम हटाए गए घटकों की अनुमति (0 = असीमित) |
| `max_changed` | int | अधिकतम बदले गए घटकों की अनुमति (0 = असीमित) |
| `deny_licenses` | []string | निषिद्ध लाइसेंस पहचानकर्ताओं की सूची |
| `require_licenses` | bool | सभी *जोड़े गए* घटकों के पास लाइसेंस होना आवश्यक है (केवल diff मोड में नए जोड़े गए घटकों की जाँच करता है) |
| `deny_duplicates` | bool | यदि परिणाम में डुप्लिकेट पैकेज मौजूद हों तो विफल करें |
| `deny_integrity_drift` | bool | यदि बिना संस्करण परिवर्तन के घटक हैश बदल गया हो तो विफल करें (आपूर्ति श्रृंखला जोखिम) |
| `max_depth` | int | यदि गहराई >= N पर नई ट्रांज़िटिव निर्भरताएँ हों तो विफल करें (0 = असीमित) |
| `warn_supplier_change` | bool | यदि घटक का आपूर्तिकर्ता/लेखक बदल गया हो तो चेतावनी दें (विफल नहीं करें) |
| `warn_new_transitive` | bool | किसी भी नई ट्रांज़िटिव निर्भरता पर चेतावनी दें (विफल नहीं करें) |
| `min_ntia_score` | int | यदि NTIA अनुपालन स्कोर इससे कम है तो विफल करें (0-100, 0 = अक्षम) |
| `min_cisa_score` | int | यदि CISA अनुपालन स्कोर इससे कम है तो विफल करें (0-100, 0 = अक्षम) |
| `min_bsi_score` | int | यदि BSI अनुपालन स्कोर इससे कम है तो विफल करें (0-100, 0 = अक्षम) |
| `min_overall_compliance` | int | यदि समग्र अनुपालन स्कोर इससे कम है तो विफल करें (0-100, 0 = अक्षम) |

> किसी भी `min_*_score` थ्रेशोल्ड को सेट करना स्वचालित रूप से अनुपालन मूल्यांकन ट्रिगर करता है, भले ही `--compliance` फ़्लैग न हो।

### उदाहरण: सख्त नीति```json
{
  "max_added": 5,
  "max_removed": 3,
  "max_changed": 20,
  "deny_licenses": ["GPL-3.0", "AGPL-3.0", "SSPL-1.0"],
  "require_licenses": true,
  "deny_duplicates": true,
  "deny_integrity_drift": true,
  "max_depth": 3,
  "warn_supplier_change": true,
  "warn_new_transitive": true,
  "min_overall_compliance": 80
}

नीति उल्लंघन आउटपुट```

!! Policy Violations (3): [max_added] too many components added: 10 > 5 [max_removed] too many components removed: 7 > 3 [deny_licenses] component foo has denied license: GPL-3.0

root@kitploit:~
## समर्थित SBOM प्रारूप

| प्रारूप | फ़ाइल पहचान | निकाले गए पहचानकर्ता |
|--------|----------------|----------------------|
| Syft (मूल) | JSON कुंजी `"artifacts"` + `"source"`, `"distro"`, `"descriptor"` में से एक | PURL, CPE, name |
| CycloneDX | JSON कुंजी `"bomFormat"` = `"CycloneDX"`, या `"$schema"` जिसमें `cyclonedx` हो | PURL, CPE, BOM-ref, group (namespace) |
| SPDX | JSON कुंजी `"spdxVersion"` जो `"SPDX-"` से शुरू होती है | PURL, CPE, SPDXID |

सभी प्रारूप JSON होने चाहिए। XML समर्थन वर्तमान में उपलब्ध नहीं है।

### प्रारूप रूपांतरण

sbomlyze किसी भी तीन समर्थित प्रारूपों के बीच रूपांतरण कर सकता है:```bash
sbomlyze convert input.json --to spdx          # any format → SPDX 2.3
sbomlyze convert input.json --to cyclonedx     # any format → CycloneDX 1.5
sbomlyze convert input.json --to syft          # any format → Syft JSON

विवरण के लिए कन्वर्ट मोड देखें।

क्रॉस-फॉर्मेट तुलना

sbomlyze विभिन्न प्रारूपों में SBOMs की तुलना कर सकता है:```bash

Compare Syft output with CycloneDX

sbomlyze syft-output.json cyclonedx-output.json

Compare SPDX with Syft

sbomlyze spdx-output.json syft-output.json

root@kitploit:~
**नोट:** विभिन्न SBOM प्रारूप विवरण के विभिन्न स्तर निकालते हैं। एक क्रॉस-प्रारूप अंतर ऐसे परिवर्तन दिखा सकता है जो प्रारूप अंतर (जैसे, फ़ील्ड उपलब्धता) को दर्शाते हैं, न कि वास्तविक सिस्टम परिवर्तनों को। मुख्य निष्कर्ष प्रणाली पहचान होने पर स्कैन संदर्भ बेमेल के बारे में चेतावनी देगी।

## घटक पहचान मिलान

घटकों का मिलान प्राथमिकता-आधारित पहचान प्रणाली का उपयोग करके किया जाता है:

| प्राथमिकता | पहचानकर्ता | उदाहरण | विवरण |
|----------|------------|---------|-------------|
| 1 | PURL | `pkg:npm/lodash` | पैकेज URL (संस्करण हटाया गया) |
| 2 | CPE | `cpe:vendor:product` | CPE विक्रेता:उत्पाद (संस्करण हटाया गया) |
| 3 | BOM-ref / SPDXID | `ref:component-123` | CycloneDX bom-ref या SPDX पहचानकर्ता |
| 4 | Namespace + Name | `com.example/mypackage` | नाम के साथ समूह/नेमस्पेस |
| 5 | Name | `simple-package` | केवल नाम पर फ़ॉलबैक |

## सीआई/सीडी एकीकरण

### GitHub Actions

SBOMlyze एक डिपेंडेंसी-मुक्त JavaScript Action के रूप में उपलब्ध है। यह चेक-इन किए गए या अलग से उत्पन्न हेड SBOM की तुलना पुल रिक्वेस्ट के git आधार पर मौजूद फ़ाइल से करता है, एक जॉब सारांश प्रकाशित करता है, और वैकल्पिक रूप से SARIF उत्पन्न करता है या एक PR टिप्पणी अपडेट करता है।```yaml
name: SBOM Check
on:
  pull_request:

permissions:
  contents: read

jobs:
  sbom-diff:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
        with:
          fetch-depth: 0

      - id: sbomlyze
        uses: rezmoss/sbomlyze@31503690611fda8ebba4ed2bd186eda000442594 # v0.5.1
        with:
          sbom-path: build/sbom.cdx.json
          policy: .github/sbom-policy.json
          fail-on: policy

Action कभी भी जनरेटर कमांड नहीं चलाता। हेड SBOM को एक अलग, समीक्षित चरण में बनाएँ या इसे रिपॉज़िटरी में कमिट करें। comment और sarif दोनों डिफ़ॉल्ट रूप से false होते हैं; फोर्क किए गए PRs को अभी भी पूरा Job Summary मिलता है जब comment अनुमति उपलब्ध नहीं होती। हर input/output, SHA-pinning, SARIF upload, permissions, और सुरक्षा व्यवहार के लिए Action reference देखें।

GitLab CI```yaml

sbom-diff: stage: test script: - syft . -o json > current.json - sbomlyze baseline.json current.json --policy policy.json --json > sbom-report.json - sbomlyze baseline.json current.json --format junit > sbom-junit.xml artifacts: paths: - sbom-report.json reports: junit: sbom-junit.xml when: always

root@kitploit:~
### अखंडता विचलन अलर्ट```bash
# Alert on any integrity drift (CI example)
if sbomlyze baseline.json current.json --json | jq -e '.diff.drift_summary.integrity_drift > 0' > /dev/null; then
  echo "⚠️  INTEGRITY DRIFT DETECTED - Investigate immediately!"
  exit 1
fi

गहरी निर्भरता चेतावनी```bash

Alert on new deep transitive dependencies

if sbomlyze baseline.json current.json --json | jq -e '.diff.dependencies.depth_summary.depth_3_plus > 0' > /dev/null; then echo "⚠️ New deep transitive dependencies detected - Review required!" fi

root@kitploit:~
### अनुपालन गेट```bash
# Fail the build if the SBOM doesn't meet minimum-element requirements
sbomlyze current.json --policy compliance-policy.json
# where compliance-policy.json sets min_overall_compliance / min_ntia_score / etc.

Exit Codes

CodeMeaning
0सफलता, कोई अंतर या उल्लंघन नहीं
1अंतर मिले (कोई भी जोड़े/हटाए/बदले गए घटक), नीति उल्लंघन, या त्रुटियाँ

नोट: diff मोड में, जब भी किसी भी घटक में परिवर्तन पता चलता है, exit code 1 लौटाया जाता है, भले ही कोई पॉलिसी फ़ाइल न हो। यह इसे CI में एक सरल "क्या कुछ बदला है?" गेट के रूप में उपयोगी बनाता है।

उदाहरण

Docker Images की तुलना करें```bash

Generate SBOMs

syft nginx:1.25-alpine -o json > nginx-125.json syft nginx:1.26-alpine -o json > nginx-126.json

Compare

sbomlyze nginx-125.json nginx-126.json

root@kitploit:~
### लाइसेंस ऑडिट```bash
# Check for GPL licenses in new dependencies
cat > audit-policy.json << EOF
{
  "deny_licenses": ["GPL-2.0", "GPL-3.0", "LGPL-2.1", "LGPL-3.0"],
  "require_licenses": true
}
EOF

sbomlyze old.json new.json --policy audit-policy.json

निर्भरता ड्रिफ्ट डिटेक्शन```bash

Detect any changes (strict mode for no drift)

cat > no-drift.json << EOF { "max_added": 0, "max_removed": 0, "max_changed": 0 } EOF

sbomlyze baseline.json current.json --policy no-drift.json

root@kitploit:~
### अनुपालन जांच```bash
# Score an SBOM and enforce a minimum
sbomlyze image.json --compliance

cat > compliance-policy.json << EOF
{
  "min_ntia_score": 90,
  "min_overall_compliance": 80
}
EOF

sbomlyze image.json --policy compliance-policy.json

SBOM प्रारूप परिवर्तित करें```bash

Convert a Syft SBOM to CycloneDX for tools that require it

syft alpine:latest -o json > alpine-syft.json sbomlyze convert alpine-syft.json --to cyclonedx -o alpine-cdx.json

Convert CycloneDX to SPDX for compliance workflows

sbomlyze convert vendor-sbom.cdx.json --to spdx > vendor-sbom.spdx.json

Pipe conversion output directly

sbomlyze convert input.json --to spdx | jq '.packages | length'

root@kitploit:~
### ब्राउज़र में SBOM एक्सप्लोर करें```bash
# Generate SBOM and explore in web UI
syft alpine:latest -o json > alpine.json

# Start web server
sbomlyze -web

# Then open http://localhost:8080 and drag-drop alpine.json

इंटरैक्टिव टर्मिनल अन्वेषण```bash

Explore with keyboard navigation

sbomlyze alpine.json -i

Navigate with arrow keys, search with '/', view details with Enter

root@kitploit:~
## विकास

### टेस्ट चलाएँ```bash
make test
# or
go test -v ./...

लिंट```bash

make lint # runs go vet + golangci-lint + staticcheck make vulncheck # runs govulncheck for known CVEs

root@kitploit:~
### निर्माण```bash
make build-quick
# or
go build -o sbomlyze ./cmd/sbomlyze

Make कमांड्स```bash

make all # Run test, lint, and build make test # Run all tests with race detector make lint # Run go vet, golangci-lint, and staticcheck make vulncheck # Run govulncheck for known vulnerabilities make build # Build with goreleaser (snapshot) make build-quick # Quick build for development make snapshot-test # Run snapshot tests only make update-snapshot # Update snapshot golden files make clean # Remove build artifacts

root@kitploit:~
## योगदान

योगदान का स्वागत है! अच्छे पहले मुद्दों को [`good first issue`](https://github.com/rezmoss/sbomlyze/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) लेबल दिया गया है। यदि उपलब्ध हो तो [CONTRIBUTING.md](https://github.com/rezmoss/sbomlyze/blob/HEAD/CONTRIBUTING.md) देखें, और बदलाव प्रस्तावित करने के लिए issue या चर्चा खोलने में संकोच न करें।



[ci]: https://github.com/rezmoss/sbomlyze/actions/workflows/ci.yml
[ci-img]: https://github.com/rezmoss/sbomlyze/actions/workflows/ci.yml/badge.svg
[marketplace]: https://github.com/marketplace/actions/sbomlyze-diff
[marketplace-img]: https://img.shields.io/badge/Marketplace-SBOMlyze%20Diff-blue?logo=github
[release]: https://github.com/rezmoss/sbomlyze/releases
[release-img]: https://img.shields.io/github/v/release/rezmoss/sbomlyze
[go-report]: https://goreportcard.com/report/github.com/rezmoss/sbomlyze
[go-report-img]: https://goreportcard.com/badge/github.com/rezmoss/sbomlyze
[license]: https://raw.githubusercontent.com/rezmoss/sbomlyze/main/LICENSE
[license-img]: https://img.shields.io/badge/License-Apache%202.0-blue.svg
[download]: https://github.com/rezmoss/sbomlyze/releases
[download-img]: https://img.shields.io/github/downloads/rezmoss/sbomlyze/total
[scorecard]: https://scorecard.dev/viewer/?uri=github.com/rezmoss/sbomlyze
[scorecard-img]: https://api.scorecard.dev/projects/github.com/rezmoss/sbomlyze/badge
टूल डाउनलोड करें
प्रारूप--to मानआउटपुट
CycloneDX 1.5cyclonedx या cdxमेटाडेटा, निर्भरताएँ और गुणों के साथ CycloneDX JSON
SPDX 2.3spdxपैकेज, संबंधों और बाहरी संदर्भों के साथ SPDX JSON
Syftsyftआर्टिफैक्ट्स, संबंधों, स्रोत और डिस्ट्रो जानकारी के साथ Syft JSON
निष्कर्षविवरण
स्कैन संदर्भ बेमेलचेतावनी देता है यदि SBOM के बीच स्कीमा संस्करण या स्कैन दायरा बदल गया है
आक्रमण सतह डेल्टापैकेज, फ़ाइल और संबंध गिनती में प्रतिशत के साथ परिवर्तन
लुप्त/नए इकोसिस्टमपैकेज प्रकार जो पूरी तरह से प्रकट या गायब हो गए
OS/डिस्ट्रो माइग्रेशनस्कैन के बीच ऑपरेटिंग सिस्टम में परिवर्तन का पता लगाता है
संस्करण परिवर्तन विश्लेषणअपग्रेड बनाम डाउनग्रेड की गिनती करता है, परिवर्तनों को मेजर/माइनर/पैच के रूप में वर्गीकृत करता है
संस्करण डाउनग्रेडडाउनग्रेड को घटक विवरण के साथ सुरक्षा संकेत के रूप में चिह्नित करता है
अखंडता ड्रिफ्ट संदर्भपैकेज प्रकार के अनुसार अखंडता ड्रिफ्ट का विवरण देता है, जोखिम मार्गदर्शन के साथ
प्रमुख पथ पैटर्नप्रकार और फ़ाइलसिस्टम पथ के अनुसार केंद्रित परिवर्तन
हटाने/जोड़ने के हॉटस्पॉटपरिवर्तनों से प्रभावित शीर्ष निर्देशिकाएँ
स्थिर प्रकारसमान गिनती वाले पैकेज प्रकार (अपरिवर्तित कोर)
लाइसेंस श्रेणी बदलावकॉपीलेफ्ट/परमिसिव संतुलन में परिवर्तन
कैटलॉगर अंतरालस्कैनर जिन्होंने Before में पैकेज पाए लेकिन After में कुछ नहीं
प्रकारसंकेतकविवरणगंभीरता
संस्करण📦संस्करण संख्या बदलीसामान्य
अखंडता⚠️हैश बिना संस्करण परिवर्तन के बदलाउच्च - जांच करें!
मेटाडेटा📝केवल मेटाडेटा (लाइसेंस आदि) बदलानिम्न
विशेषताविवरण
ड्रैग और ड्रॉप अपलोडकिसी भी SBOM फ़ाइल (Syft, CycloneDX, SPDX) को पेज पर ड्रॉप करें (500MB तक)
निर्भरता ट्रीविस्तार/संक्षेपण नेविगेशन के साथ इंटरैक्टिव ट्री दृश्य (5000 से अधिक घटकों के लिए पेजिनेटेड)
घटक विवरणलाइसेंस, हैश, निर्भरताएँ, आपूर्तिकर्ता जानकारी, फ़ाइल गिनती देखें
Raw JSON दृश्यप्रत्येक घटक के लिए सिंटैक्स-हाइलाइटेड JSON
गहन खोजraw JSON डेटा सहित सभी फ़ील्ड्स में खोजें
सांख्यिकी डैशबोर्डकवरेज मेट्रिक्स, लाइसेंस श्रेणियाँ, भाषा वितरण
फाइलसिस्टम ब्राउज़रनिर्देशिका नेविगेशन, खोज और लेयर फ़िल्टरिंग के साथ SBOM के भीतर फ़ाइलें ब्राउज़ करें