
स्थिर वेब एप्लिकेशन SBOMs देखने और osv.dev के साथ ऑन-डिमांड भेद्यता स्कैनिंग करने के लिए। GitHub/GitLab Pages पर आसानी से तैनात किया जा सकता है।
सॉफ्टवेयर बिल ऑफ मटेरियल्स (SBOM) फ़ाइलों से सॉफ़्टवेयर निर्भरताओं को प्रदर्शित करने के लिए एक सरल, स्टैटिक वेब एप्लिकेशन। एक स्टैटिक साइट होने के कारण, इसे आसानी से किसी भी स्टैटिक वेब होस्टिंग सेवा, जैसे GitLab Pages, GitHub Pages, या Netlify पर होस्ट किया जा सकता है।
trivy image <image> --format=cyclonedx --output=sbom.json --scanners vulngrype <image> --output cyclonedx-json > sbom.jsonवर्तमान में, BOM व्यू JSON में CycloneDX और SPDX प्रारूपों का समर्थन करता है। इन्हें syft जैसे उपकरणों द्वारा उत्पन्न किया जा सकता है।
यह एप्लिकेशन रनटाइम पर गतिशील रूप से SBOM लोड करने के लिए डिज़ाइन किया गया है। अपने स्वयं के SBOM जोड़ने के लिए, आपको प्रोजेक्ट को पुनर्निर्माण करने की आवश्यकता नहीं है। अपनी तैनात स्टैटिक साइट की रूट डायरेक्टरी (जैसे, आपके पेज जॉब द्वारा सेवा किया गया dist या public फ़ोल्डर) में इन चरणों का पालन करें।
sboms निर्देशिका बनाएँ: यदि यह पहले से मौजूद नहीं है, तो sboms नामक एक निर्देशिका बनाएँ।
अपने SBOM जोड़ें: अपनी CycloneDX/SPDX JSON फ़ाइलों को sboms निर्देशिका में कॉपी करें।
इंडेक्स फ़ाइल अपडेट करें: sboms निर्देशिका के अंदर एक फ़ाइल बनाएँ या अपडेट करें जिसका नाम index.json हो। यह फ़ाइल एप्लिकेशन को बताती है कि कौन से SBOM उपलब्ध हैं। इसमें स्ट्रिंग्स की एक एकल JSON सरणी होनी चाहिए, जहाँ प्रत्येक स्ट्रिंग उस निर्देशिका में एक SBOM का फ़ाइल नाम है।
उदाहरण के लिए, यदि आपके पास my-app.json और another-lib.json हैं, तो index.json फ़ाइल इस तरह दिखनी चाहिए:
[
"my-app.json",
"another-lib.json"
]
एप्लिकेशन फिर index.json को लाकर SBOM चयन ड्रॉपडाउन को भरेगा और चयनित होने पर संबंधित फ़ाइल को लोड करेगा।
नीचे एक उदाहरण .gitlab-ci.yml कॉन्फ़िगरेशन है जो एक पूर्व-निर्मित रिलीज़ प्राप्त करता है, SBOM निकालता है, और तैनाती के लिए गतिशील रूप से index.json बनाता है।
stages:
- sbom
- deploy
create_sbom:
stage: sbom
image: alpine:3.23.2
before_script:
- apk add syft
script:
- mkdir sboms
- syft alpine:3.19 -o cyclonedx-json=sboms/alpine-cyclone.json
artifacts:
paths:
- sboms
pages:
stage: deploy
image: alpine:3.23.2
before_script:
- apk add curl jq
script:
- curl -L https://github.com/hristiy4n/bom-view/releases/download/v0.4.0/bom-view-v0.4.0-dist.tar.gz | tar zx
- mv dist public
- mkdir public/sboms
- cp sboms/* public/sboms
- |
find sboms -maxdepth 1 -type f -name '*.json' ! -name 'index.json' \
| sed 's|.*/||' \
| sort \
| jq -R . | jq -s . > public/sboms/index.json
needs:
- job: create_sbom
artifacts:
paths:
- public
आप इस कॉन्फ़िगरेशन का एक लाइव उदाहरण यहाँ देख सकते हैं: https://security-dashboard-a9b4f8.gitlab.io/
आपकी अंतिम तैनाती निर्देशिका की निम्नलिखित संरचना होनी चाहिए:
dist/
├── assets/
│ └── ... (CSS और JS फ़ाइलें)
├── index.html
└── sboms/
├── index.json
├── sbom1.json
├── sbom2.json
└── ...