Awarely Monitor
AwarelyMonitor

Awarely Scan · API preview

SBOM Linux, verificare CVE și inventar actualizat.

Un singur CLI pentru SBOM-uri locale, verificări CVE la cerere și inventar sincronizat în Awarely Monitor. Tu alegi când datele părăsesc mașina.

Linux amd64 / arm64 · Apache-2.0 · Fără agent în fundal · Fără root pentru colectare

Trei moduri, scopuri explicite

1. Inventar local

CLI open source Apache-2.0. Export CycloneDX 1.6 JSON din pachete Linux instalate sau manifeste de aplicație. Fără cont, root, rețea sau execuția proiectului în timpul colectării.

Gratuit · fără cont

2. Verificare prin API

Trimite explicit inventarul și primește JSON cu potriviri CVE, versiuni, dovezi și componente neevaluate. Inventarul salvat nu se modifică și nu se trimit emailuri.

Monitor Pro · token de verificare

3. Sincronizare inventar

Actualizează doar sursa autorizată. Componentele comune se deduplică între aplicații; celelalte surse se păstrează. Inventarul devine disponibil pentru rapoarte și alertele configurate.

Monitor Pro · token de sincronizare

Distribuții și acoperire

Verificările folosesc identitatea și versiunile distribuției, inclusiv reviziile de backport. Pachetele, furnizorii sau canalele neacoperite rămân explicit neevaluate. Pentru aplicații: npm lockfile v2/v3; package.json și requirements.txt produc inventare parțiale. O potrivire CVE nu dovedește exploatabilitatea.

Ghid complet: aplicație și terminal

De la binarul verificat la un SBOM local, o verificare API sau inventarul salvat. Numele aplicațiilor, căile, identificatorii și credentialele din exemple sunt fictive. v0.5.0-alpha.1

1. Alege fluxul

ModCont / planCe se întâmplă
Fișier localFără cont; CLI Apache-2.0host/app scrie local JSON CycloneDX 1.6. Fără rețea sau evaluare CVE.
Upload în ActiveMonitor Pro sau trial Pro activVerifici SBOM-ul în browser, aplici modificările și apeși Salvează.
Verificare APIAcces Pro + token Doar verificarePrimești un raport JSON local. Nu salvează inventarul și nu trimite alerte.
Sincronizare APIAcces Pro + token Doar sincronizare sau ambeleÎnlocuiește imediat doar sursa autorizată din inventarul salvat.

Versiunea este un API preview. Același utilitar, compilat pentru amd64 sau arm64, detectează distribuțiile de mai jos. Integrarea Jenkins, containerele, imaginile AMI/VHD, Alpine și scanarea binarelor arbitrare nu sunt disponibile. Este acceptat un director cu un sistem de fișiere Linux offline; nu un fișier imagine.

Citește întâi pașii 2–3. Alege o distribuție la pasul 4, apoi upload (pasul 7), verificare (pașii 8–9) sau sincronizare (pașii 8 și 10). Pentru manifestele aplicațiilor folosește pasul 6 în locul pasului 4.

2. Pregătește mașina Linux

  1. Folosește contul tău Linux obișnuit. Awarely Scan nu necesită root sau serviciu în fundal. Ai nevoie de citire pentru baza de pachete ori proiectul ales și de scriere în directorul de rezultate.
  2. uname -m identifică x86_64 (amd64) sau aarch64 (arm64). Nu distribuim binare pentru alte arhitecturi.
  3. Pentru descărcare și verificare ai nevoie de curl, tar, sha256sum și o versiune GitHub CLI cu gh attestation verify. Pregătirea folosește rețeaua; colectarea locală host/app nu.
  4. Dacă utilitarele sunt deja instalate, sari peste comenzile de instalare. Altfel alege doar blocul distribuției tale de mai jos. Comenzile instalează utilitare și configurează depozitul oficial GitHub CLI, deci necesită administrator/sudo doar pentru această pregătire, nu pentru scanare.
  5. Rulează comenzile următoare în aceeași sesiune de terminal compatibilă Bash. Nu rula Awarely Scan cu sudo. Poți verifica arhiva pe o stație de lucru și o poți transfera securizat pe un server offline.
Terminal Linux
uname -m
cat /etc/os-release
command -v curl tar sha256sum gh
gh attestation verify --help

Debian 12/13 și Ubuntu 22.04/24.04/26.04 — apt:

Terminal Linux
sudo apt-get update
sudo apt-get install -y ca-certificates curl tar coreutils
(
set -eu
GH_KEY_FILE=$(mktemp)
curl --proto '=https' --tlsv1.2 -fL \
  https://cli.github.com/packages/githubcli-archive-keyring.gpg \
  -o "$GH_KEY_FILE"
sudo install -d -m 755 /etc/apt/keyrings
sudo install -m 644 "$GH_KEY_FILE" /etc/apt/keyrings/githubcli-archive-keyring.gpg
rm "$GH_KEY_FILE"
printf 'deb [arch=%s signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main\n' "$(dpkg --print-architecture)" \
  | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt-get update
sudo apt-get install -y gh
)

Rocky Linux 8/9/10, AlmaLinux 8/9/10 și Amazon Linux 2023 — verifică dnf --version. Pentru DNF 4 folosește acest bloc:

Terminal Linux
command -v curl >/dev/null || sudo dnf install -y curl
sudo dnf install -y ca-certificates tar coreutils 'dnf-command(config-manager)'
sudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo
sudo dnf install -y gh

Doar dacă dnf --version indică DNF 5, folosește alternativa de mai jos în locul blocului DNF 4:

Terminal Linux
command -v curl >/dev/null || sudo dnf install -y curl
sudo dnf install -y ca-certificates tar coreutils dnf5-plugins
sudo dnf config-manager addrepo --from-repofile=https://cli.github.com/packages/rpm/gh-cli.repo
sudo dnf install -y gh

Amazon Linux 2 — yum (doar inventar/sync; evaluarea CVE rămâne indisponibilă):

Terminal Linux
command -v curl >/dev/null || sudo yum install -y curl
sudo yum install -y ca-certificates tar coreutils yum-utils
sudo yum-config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo
sudo yum install -y gh

Dacă GitHub CLI solicită autentificare pentru descărcarea/verificarea atestărilor publice, rulează gh auth login și urmează pașii în browser. Este autentificare GitHub, separată de Monitor. Nu introduce tokenul Awarely în GitHub. Pentru un server offline, descarcă/verifică pe o stație de încredere și transferă securizat fișierele verificate.

Terminal Linux
gh attestation verify --help

3. Descarcă, verifică și pornește

Comenzile fixează versiunea preview publicată. Oprește-te la orice eroare de descărcare, atestare sau checksum. Lista externă include ambele arhitecturi; verificăm doar arhiva descărcată. Extragerea se face după verificare.

Terminal Linux
umask 077
SCAN_WORK=$(mktemp -d "$HOME/awarely-scan.XXXXXXXX")
SCAN_BIN="$SCAN_WORK/release/awarely-scan"
(
set -eu
cd "$SCAN_WORK"
SCAN_VERSION=v0.5.0-alpha.1
case "$(uname -m)" in
  x86_64) SCAN_ARCH=amd64 ;;
  aarch64|arm64) SCAN_ARCH=arm64 ;;
  *) echo "Unsupported architecture" >&2; exit 1 ;;
esac
SCAN_ARCHIVE="awarely-scan_${SCAN_VERSION}_linux_${SCAN_ARCH}.tar.gz"
SCAN_RELEASE="https://github.com/awarelyeu/awarely-sbom-scanner/releases/download/${SCAN_VERSION}"
curl --proto '=https' --tlsv1.2 -fL "$SCAN_RELEASE/$SCAN_ARCHIVE" -o "$SCAN_ARCHIVE"
curl --proto '=https' --tlsv1.2 -fL "$SCAN_RELEASE/SHA256SUMS" -o SHA256SUMS
gh attestation verify "$SCAN_ARCHIVE" \
  --repo awarelyeu/awarely-sbom-scanner \
  --signer-workflow awarelyeu/awarely-sbom-scanner/.github/workflows/release.yml \
  --source-ref "refs/tags/$SCAN_VERSION"
awk -v file="$SCAN_ARCHIVE" '$2 == file { print; found=1 } END { if (!found) exit 1 }' SHA256SUMS > selected-SHA256SUMS
sha256sum --check selected-SHA256SUMS
mkdir release
tar -xzf "$SCAN_ARCHIVE" -C release
(cd release && sha256sum --check SHA256SUMS)
"$SCAN_BIN" version
"$SCAN_BIN" help
printf 'Working directory: %s\n' "$SCAN_WORK"
)

Păstrează SCAN_WORK și SCAN_BIN pentru pașii următori. Fiecare cale de rezultat trebuie să fie nouă: scannerul nu suprascrie rapoarte. Folosește un director privat nou la următoarea rulare. O versiune viitoare se descarcă și se verifică explicit; nu există actualizare automată.

Dacă deschizi ulterior alt terminal, setează calea reală afișată mai sus: SCAN_WORK=/home/utilizator/awarely-scan.DIRECTORUL_TAU și SCAN_BIN="$SCAN_WORK/release/awarely-scan". Înlocuiește calea exemplu; nu crea altă sursă doar pentru că s-a schimbat sesiunea de terminal.

4. Debian

Versiuni de inventar acceptate: 12, 13; Linux amd64/arm64. Parcurge întâi pașii 2–3. Distribuția este detectată automat; nu există opțiune --distro sau instalator separat.

Terminal Linux
"$SCAN_BIN" host --name debian-13-web-01 \
  --output "$SCAN_WORK/debian-13-web-01.cdx.json"

Avizele oficiale Debian folosesc identitatea pachetului sursă și ordinea versiunilor Debian, inclusiv epoch și revizia distribuției. Build-urile terților și depozitele backports necesită evaluare separată.

Pentru utilizare exclusiv locală te oprești aici sau imporți fișierul .cdx.json la pasul 7. Pentru API, creează și protejează credentialele conform pasului 8, apoi alege o comandă de mai jos. Pentru ambele comenzi ai nevoie de permisiunea Verificare și sincronizare; Doar verificare permite numai prima. Interpretează raportul conform pasului 11.

Doar verificare (fără modificarea inventarului salvat):

Terminal Linux
"$SCAN_BIN" check --input "$SCAN_WORK/debian-13-web-01.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/debian-13-web-01.check.json"

Opțional: sync înlocuiește această sursă în inventarul salvat. Rulează doar dacă acesta este fluxul dorit și tokenul permite operația:

Terminal Linux
"$SCAN_BIN" sync --input "$SCAN_WORK/debian-13-web-01.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/debian-13-web-01.receipt.json"

4. Ubuntu

Versiuni de inventar acceptate: 22.04, 24.04, 26.04 LTS; Linux amd64/arm64. Parcurge întâi pașii 2–3. Distribuția este detectată automat; nu există opțiune --distro sau instalator separat.

Terminal Linux
"$SCAN_BIN" host --name ubuntu-24-04-web-01 \
  --output "$SCAN_WORK/ubuntu-24-04-web-01.cdx.json"

Datele oficiale Ubuntu sunt evaluate după pachetul sursă și versiunea distribuției. Unele remedieri necesită Ubuntu Pro; Awarely nu stabilește dreptul tău de acces. Evaluările neconcludente rămân pentru analiză. PPA-urile și canalele specializate sunt în afara evaluării.

Pentru utilizare exclusiv locală te oprești aici sau imporți fișierul .cdx.json la pasul 7. Pentru API, creează și protejează credentialele conform pasului 8, apoi alege o comandă de mai jos. Pentru ambele comenzi ai nevoie de permisiunea Verificare și sincronizare; Doar verificare permite numai prima. Interpretează raportul conform pasului 11.

Doar verificare (fără modificarea inventarului salvat):

Terminal Linux
"$SCAN_BIN" check --input "$SCAN_WORK/ubuntu-24-04-web-01.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/ubuntu-24-04-web-01.check.json"

Opțional: sync înlocuiește această sursă în inventarul salvat. Rulează doar dacă acesta este fluxul dorit și tokenul permite operația:

Terminal Linux
"$SCAN_BIN" sync --input "$SCAN_WORK/ubuntu-24-04-web-01.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/ubuntu-24-04-web-01.receipt.json"

4. Rocky Linux

Versiuni de inventar acceptate: 8, 9, 10; Linux amd64/arm64. Parcurge întâi pașii 2–3. Distribuția este detectată automat; nu există opțiune --distro sau instalator separat.

Terminal Linux
"$SCAN_BIN" host --name rocky-9-web-01 \
  --output "$SCAN_WORK/rocky-9-web-01.cdx.json"

Eratele oficiale Rocky folosesc numele pachetului binar, arhitectura, epoch/version/release RPM și fluxul de modul, când există. EPEL, furnizorii terți și pachetele absente din catalog rămân neevaluate. Remedierile publicate nu acoperă toate problemele încă neremediate.

Pentru utilizare exclusiv locală te oprești aici sau imporți fișierul .cdx.json la pasul 7. Pentru API, creează și protejează credentialele conform pasului 8, apoi alege o comandă de mai jos. Pentru ambele comenzi ai nevoie de permisiunea Verificare și sincronizare; Doar verificare permite numai prima. Interpretează raportul conform pasului 11.

Doar verificare (fără modificarea inventarului salvat):

Terminal Linux
"$SCAN_BIN" check --input "$SCAN_WORK/rocky-9-web-01.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/rocky-9-web-01.check.json"

Opțional: sync înlocuiește această sursă în inventarul salvat. Rulează doar dacă acesta este fluxul dorit și tokenul permite operația:

Terminal Linux
"$SCAN_BIN" sync --input "$SCAN_WORK/rocky-9-web-01.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/rocky-9-web-01.receipt.json"

4. AlmaLinux

Versiuni de inventar acceptate: 8, 9, 10; Linux amd64/arm64. Parcurge întâi pașii 2–3. Distribuția este detectată automat; nu există opțiune --distro sau instalator separat.

Terminal Linux
"$SCAN_BIN" host --name alma-9-web-01 \
  --output "$SCAN_WORK/alma-9-web-01.cdx.json"

Eratele oficiale AlmaLinux folosesc numele pachetului binar, arhitectura, epoch/version/release RPM și fluxul de modul. Un pachet din altă distribuție RPM nu este tratat ca AlmaLinux. EPEL și furnizorii necunoscuți rămân neevaluate.

Pentru utilizare exclusiv locală te oprești aici sau imporți fișierul .cdx.json la pasul 7. Pentru API, creează și protejează credentialele conform pasului 8, apoi alege o comandă de mai jos. Pentru ambele comenzi ai nevoie de permisiunea Verificare și sincronizare; Doar verificare permite numai prima. Interpretează raportul conform pasului 11.

Doar verificare (fără modificarea inventarului salvat):

Terminal Linux
"$SCAN_BIN" check --input "$SCAN_WORK/alma-9-web-01.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/alma-9-web-01.check.json"

Opțional: sync înlocuiește această sursă în inventarul salvat. Rulează doar dacă acesta este fluxul dorit și tokenul permite operația:

Terminal Linux
"$SCAN_BIN" sync --input "$SCAN_WORK/alma-9-web-01.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/alma-9-web-01.receipt.json"

4. Amazon Linux 2023

Versiuni de inventar acceptate: 2023; Linux amd64/arm64. Parcurge întâi pașii 2–3. Distribuția este detectată automat; nu există opțiune --distro sau instalator separat.

Terminal Linux
"$SCAN_BIN" host --name al2023-web-01 \
  --output "$SCAN_WORK/al2023-web-01.cdx.json"

Avizele oficiale ALAS pentru depozitul core sunt comparate cu versiunile RPM instalate. NVIDIA, Extras, pachetele terților și starea livepatch sunt în afara evaluării. Un depozit fixat pe un release poate necesita selectarea unui release mai nou pentru pachetul remediat.

Pentru utilizare exclusiv locală te oprești aici sau imporți fișierul .cdx.json la pasul 7. Pentru API, creează și protejează credentialele conform pasului 8, apoi alege o comandă de mai jos. Pentru ambele comenzi ai nevoie de permisiunea Verificare și sincronizare; Doar verificare permite numai prima. Interpretează raportul conform pasului 11.

Doar verificare (fără modificarea inventarului salvat):

Terminal Linux
"$SCAN_BIN" check --input "$SCAN_WORK/al2023-web-01.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/al2023-web-01.check.json"

Opțional: sync înlocuiește această sursă în inventarul salvat. Rulează doar dacă acesta este fluxul dorit și tokenul permite operația:

Terminal Linux
"$SCAN_BIN" sync --input "$SCAN_WORK/al2023-web-01.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/al2023-web-01.receipt.json"

4. Amazon Linux 2

Versiuni de inventar acceptate: 2; Linux amd64/arm64. Parcurge întâi pașii 2–3. Distribuția este detectată automat; nu există opțiune --distro sau instalator separat.

Terminal Linux
"$SCAN_BIN" host --name al2-legacy-01 \
  --output "$SCAN_WORK/al2-legacy-01.cdx.json"

Doar inventar și sincronizare: versiunea actuală nu evaluează pachetele AL2 față de avizele CVE AL2. check întoarce explicit o lipsă de acoperire de tip end-of-life/neevaluat. Zero potriviri nu înseamnă un rezultat de securitate curat. Folosește o evaluare separată și planifică migrarea.

Pentru utilizare exclusiv locală te oprești aici sau imporți fișierul .cdx.json la pasul 7. Pentru API, creează și protejează credentialele conform pasului 8, apoi alege o comandă de mai jos. Pentru ambele comenzi ai nevoie de permisiunea Verificare și sincronizare; Doar verificare permite numai prima. Interpretează raportul conform pasului 11.

Doar verificare (fără modificarea inventarului salvat):

Terminal Linux
"$SCAN_BIN" check --input "$SCAN_WORK/al2-legacy-01.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/al2-legacy-01.check.json"

Opțional: sync înlocuiește această sursă în inventarul salvat. Rulează doar dacă acesta este fluxul dorit și tokenul permite operația:

Terminal Linux
"$SCAN_BIN" sync --input "$SCAN_WORK/al2-legacy-01.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/al2-legacy-01.receipt.json"

5. Alege ce colectezi

Profilul host implicit selectează software uzual de server și dependențele instalate asociate. Nu colectează toate pachetele OS. Pentru DEB include nginx/apache2, OpenSSL, SSH, Node.js, Python, PHP, Java, baze de date și runtime-uri de containere; RPM folosește nume precum httpd. Absența unor membri opționali ai profilului implicit este acceptată.

Terminal Linux
"$SCAN_BIN" host --select 'nginx*,openssl,openssh-server' \
  --name demo-web --output "$SCAN_WORK/selected.cdx.json"

"$SCAN_BIN" host --all-packages \
  --name demo-full --output "$SCAN_WORK/all-packages.cdx.json"

"$SCAN_BIN" host --root /srv/offline-linux-root \
  --name demo-offline --output "$SCAN_WORK/offline.cdx.json"

Alege un singur mod: --select și --all-packages nu se combină. Un selector personalizat fără rezultat ori dependențele nerezolvate produc inventar parțial (exit 3). Dacă baza de pachete se schimbă, reîncearcă după terminarea managerului de pachete. Nu modifica baza RPM/dpkg și nu inventa metadate. Directorul offline trebuie să fie deja montat și lizibil; CLI-ul nu montează și nu extrage imagini.

6. Colectează o aplicație

Pe orice gazdă Linux acceptată, alege directorul proiectului cu npm-shrinkwrap.json sau package-lock.json v2/v3. Sunt citite și package.json ca fallback și requirements.txt, însă acestea sunt întotdeauna parțiale. Nu se execută npm install, pip install sau scripturi ale proiectului.

Terminal Linux
"$SCAN_BIN" app --path /srv/demo-shop --name demo-shop \
  --output "$SCAN_WORK/demo-shop.cdx.json"

Lockfile-urile includ versiunile rezolvate pentru intrările directe/tranzitive, de dezvoltare și opționale; nu dovedesc instalarea sau deployment-ul. Linkurile workspace nu sunt urmărite. requirements.txt păstrează versiunile declarate; nu urmărește include-uri, URL-uri sau rezolvarea dependențelor. Fișierele parțiale pot fi analizate/importate ori verificate, dar sync le refuză. Nu sunt acceptate lockfile-uri pnpm/yarn/poetry sau descoperirea automată a monorepo-urilor.

7. Importă SBOM-ul local în Monitor

  1. Creează un cont Monitor, acceptă termenii afișați, confirmă codul primit prin email și autentifică-te. Active necesită trial Pro activ sau abonament Pro. Colectarea locală funcționează și fără cont.
  2. Deschide Setări → Active. Alege Import din fișier și selectează .cdx.json generat. Dacă este pe server, transferă-l securizat pe stația de lucru. Nu importa fișierul cu credentiale.
  3. Alege sau creează aplicația, de exemplu demo-shop. Verifică pachetele, avertismentele de acoperire și previzualizarea modificărilor. Alege înlocuirea doar când fișierul reprezintă scopul dorit al aplicației; adăugarea păstrează intrările existente.
  4. Aplică previzualizarea, apoi apasă Salvează în Activele tale. Citirea fișierului se face în browser; Salvează transmite inventarul normalizat către Monitor. Identitățile comune sunt numărate o dată, iar asocierile cu aplicațiile se păstrează.
  5. Reîncarcă și verifică numărul de aplicații/componente. Generează verificarea completă și descarcă toate părțile PDF/CSV sau arhivele ZIP. Sursele gestionate prin API își păstrează propriile asocieri; un import manual nu înlocuiește o sursă API.
  6. Un backup Monitor restaurează organizația, nu este un import obișnuit de aplicație. Verifică separat scopul mai larg de înlocuire.

8. Creează și protejează un token de mașină

  1. Folosește un cont de manager al organizației cu acces Pro. Parcurge cerințele MFA afișate în aplicație. Pentru contul cu parolă, activează MFA în Setări → Confidențialitate și autentifică-te cu MFA înainte de administrarea tokenurilor.
  2. Deschide Setări → Active → Awarely Scan CLI. Este un token separat pentru mașină, nu cheia API generală CVE din Acces API.
  3. Alege Sursă nouă. Completează Nume token / sursă = demo-web-01, Aplicație = demo-shop, Mediu = staging. Alege Doar verificare, Doar sincronizare sau Verificare și sincronizare. Setează o expirare scurtă (1–90 zile; implicit 30).
  4. Apasă Creează token, apoi imediat Descarcă configurația secretă. Secretul este disponibil o singură dată și nu poate fi recuperat ulterior. Copiază securizat fișierul descărcat pe Linux, în afara proiectului, la calea de mai jos.
  5. Pentru alt server sau proiect întreținut independent creează altă sursă. Dacă folosești aceeași sursă pe servere diferite, fiecare sync înlocuiește snapshot-ul precedent. Aplicația/sursa/mediul sunt fixate de server; --name nu schimbă asocierea.

Exemplu de transfer, rulat pe stația unde ai descărcat configurația. Înlocuiește utilizatorul, gazda și directorul fictiv cu gazda ta și calea SCAN_WORK de pe ea. Dacă browserul și CLI-ul rulează pe aceeași mașină, mută direct fișierul descărcat în SCAN_WORK.

Terminal Linux
scp ./awarely-credentials.json \
  demo-user@demo-host.example.invalid:/home/demo-user/awarely-scan.REPLACE/awarely-credentials.json
Terminal Linux
chmod 600 "$SCAN_WORK/awarely-credentials.json"
ls -l "$SCAN_WORK/awarely-credentials.json"

Fișierul trebuie să fie obișnuit, deținut de utilizatorul CLI și fără permisiuni pentru grup/alții. Nu îl include în Git, nu pune tokenul în argumente, loguri sau SBOM. Păstrează adresa API din configurația furnizată de Monitor; nu o înlocui cu adresa site-ului de prezentare.

Doar ilustrație: configurația de mai jos este intenționat invalidă și nu funcționează. Adresa API și toate valorile secrete sunt fictive. Pentru operații reale folosește configurația descărcată.

JSON · demo
{
  "schemaVersion": 1,
  "apiUrl": "https://scanner-api.example.invalid",
  "token": "DUMMY_TOKEN_NOT_VALID",
  "applicationId": "DUMMY_APPLICATION_ID",
  "sourceId": "DUMMY_SOURCE_ID"
}

9. Verifică fără salvare

Folosește un token Doar verificare sau Verificare și sincronizare. Pentru un server, înlocuiește demo-shop.cdx.json cu fișierul din secțiunea distribuției.

Terminal Linux
"$SCAN_BIN" check --input "$SCAN_WORK/demo-shop.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/demo-shop.check.json"

Deschide JSON-ul rezultat într-un vizualizator local. summary conține totalurile; matches include identificatorii avizelor, indicii componentelor, versiunile, precizia și dovezile distribuției. coverage arată ce a fost evaluat și ce a rămas neevaluat. Exit 0 înseamnă cerere reușită, chiar dacă există potriviri. Nu schimbă inventarul și nu trimite email. Versiunea nu include o politică automată de eșec CI la vulnerabilități.

10. Sincronizează o sursă

Folosește Doar sincronizare sau Verificare și sincronizare. Snapshot-ul trebuie să fie complet pentru intrările selectate. sync nu execută automat și comanda check.

Terminal Linux
"$SCAN_BIN" sync --input "$SCAN_WORK/demo-shop.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/demo-shop.receipt.json"
  1. Citește confirmarea JSON: status, ID sursă, ID aplicație, revizie și număr de componente ale sursei.
  2. Reîncarcă Setări → Active. Sursa este deja salvată; nu trebuie apăsat încă o dată Salvează pentru actualizarea API.
  3. Următorul sync înlocuiește sursa respectivă. Celelalte surse și asocierile importurilor manuale rămân. Aceeași identitate/versiune folosită de aplicații este numărată o singură dată; versiunile sau identitățile de distribuție diferite rămân distincte.
  4. Rulează verificarea completă din Active pentru raportul web și dovezile descărcabile. Un raport existent este un snapshot; regenerează-l după schimbarea inventarului.

11. Citește rezultatele, exporturile și alertele

  1. Confirmat pe versiune înseamnă că versiunea declarată/instalată se încadrează într-un interval comparabil al avizului. Nu dovedește exploatabilitatea în deployment-ul tău. Potrivirile la nivel de produs necesită analiză.
  2. Neevaluat înseamnă că serviciul nu a evaluat componenta. Nu înseamnă neafectat. Verifică versiunile lipsă, distribuțiile/furnizorii/canalele neacceptate, pachetele absente din catalog și avertismentul AL2.
  3. Pachetele Linux acceptate folosesc avizele oficiale fără limitare la publicarea în ultimele 12 luni. Dependențele aplicațiilor folosesc fereastra declarată de 12 luni. Identificatorii CVE/GHSA diferiți nu sunt garantat reuniți ca aliasuri.
  4. În Active, generează verificarea completă. Lista este o previzualizare; PDF și CSV includ toate potrivirile, versiunile și asocierile cu aplicațiile. Descarcă toate părțile. ZIP adaugă JSON, inventarul salvat și manifestul de verificare.
  5. Configurează separat canalele, severitățile și programul în Setări → Alerte. Colectarea locală, check, sync și rapoartele la cerere nu trimit emailuri retrospective. Inventarul salvat este folosit de alertele viitoare configurate.
  6. Un email filtrat doar Critical și un raport complet generat ulterior pot avea scopuri/momente diferite. Compară sursa, precizia pe versiune, snapshot-ul inventarului și perioada înainte de totaluri.

12. Scanează din nou după actualizare

Actualizează pachetele prin procesul obișnuit de schimbări al distribuției/aplicației. Verifică versiunea remediată a distribuției și disponibilitatea în depozit; nu o înlocui cu o presupunere despre versiunea upstream. Pe AL2023 verifică release-ul fixat. Ghidul nu îți actualizează automat serverul.

Secvența completă de mai jos necesită permisiuni Verificare și sincronizare. Păstrează doar operațiile dorite; sync schimbă sursa salvată.

Terminal Linux
"$SCAN_BIN" host --name demo-web \
  --output "$SCAN_WORK/demo-web-after.cdx.json"
"$SCAN_BIN" check --input "$SCAN_WORK/demo-web-after.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/demo-web-after.check.json"
"$SCAN_BIN" sync --input "$SCAN_WORK/demo-web-after.cdx.json" \
  --credentials "$SCAN_WORK/awarely-credentials.json" \
  --output "$SCAN_WORK/demo-web-after.receipt.json"

Păstrează tokenul aceleiași surse și același scop de colectare. Pentru aplicații repetă app cu --path inițial, în loc de host. Compară potrivirile și acoperirea neevaluată, reîncarcă Active și regenerează raportul. Inventarul nu confirmă că rulează kernelul remediat sau că serviciul a fost repornit.

13. Rotește, revocă și retrage o sursă

  1. Înainte de expirare, creează un token nou alegând sursa existentă din Active. Descarcă-l o singură dată, protejează-l, verifică operația dorită, apoi revocă tokenul vechi. Nu crea altă sursă doar pentru rotația secretului.
  2. Dacă tokenul s-a pierdut sau a fost expus, revocă-l imediat din Active și creează un înlocuitor. Revocarea oprește accesul API; nu șterge inventarul sursei.
  3. Golirea deliberată a unei surse necesită un snapshot complet și gol plus opțiunea explicită sync --allow-empty. Nu o folosi pentru a ocoli un rezultat parțial sau o eroare. Nu modifica SBOM-ul ca să pretinzi că este complet.
  4. Șterge copiile locale ale credentialelor după revocare când nu mai sunt necesare. Păstrează SBOM-urile și rapoartele conform politicii organizației. Nu există daemon de dezinstalat; poți elimina binarul/directorul descărcat când nu mai este necesar.

14. Limite și reîncercări

LimităValoare
Cerere API5.000 componente; 2 MiB JSON normalizat
Inventar organizație5.000 identități unice; 50 aplicații; 2 MiB date normalizate combinate
Surse50 per organizație
Verificare6 cereri/minut per organizație și token
Sincronizare30 cereri/minut per organizație și token; include GET
Operații simultane2 per organizație și operație
Răspuns verificare5 MiB; 2.000 identificatori de aviz; 10.000 potriviri de componente
Token1–90 zile; 100 tokenuri active
Rezultat local5.000 componente; 5 MiB

Bugetele scannerului sunt separate de cota lunară a API-ului general CVE. Alte limite ale serviciului pot întoarce 429. CLI-ul nu reîncearcă automat 429 sau conflictul de revizie 409. Respectă Retry-After și distribuie rulările în timp. Rezultatele prea mari sunt refuzate explicit, fără trunchiere. Un catalog vechi/corupt/indisponibil produce eroare, nu raport curat.

Sync citește revizia și folosește o cheie de idempotență. Reîncercările limitate la transport/503 păstrează aceeași cerere. La 409, verifică/recolectează înainte de reîncercare; nu suprascrie orbește altă actualizare. Pentru automatizare controlată există --expected-revision și --idempotency-key. Lipsa confirmării locale după o eroare de rețea/scriere nu dovedește eșecul salvării remote; verifică sursa înainte de repetare. Consultă documentația API pentru contractul complet.

15. Probleme uzuale și coduri de ieșire

SimptomAcțiune
Exit 0Operația s-a încheiat; verifică matches și coverage. Nu înseamnă fără vulnerabilități.
Exit 2Verifică argumentele, formatul, distribuția acceptată, proprietarul/permisiunile credentialelor și accesul la citire.
Exit 3S-a scris un inventar local parțial. Analizează avertismentele; poți importa/verifica pentru analiză, dar nu sincroniza.
Exit 4Alege un nume nou într-un director propriu, cu drept de scriere. Fișierele existente sunt păstrate.
Exit 5Întrerupere sau expirarea duratei. Rezolvă condițiile locale/de rețea înainte de reîncercare.
Exit 6Operația remote a eșuat. Citește statusul/codul API fără a înregistra credentialele.
HTTP 401 / 403Token expirat/revocat/invalid, permisiuni greșite sau acces schimbat. Creează tokenul corect din Active.
HTTP 409Alt sync a schimbat revizia sau cheia de idempotență a fost refolosită cu alt conținut. Verifică inventarul curent.
HTTP 413 / 422Redu scopul prea mare sau rezolvă snapshot-ul parțial/gol. Nu împărți inventarul prin suprascrieri succesive ale aceleiași surse.
HTTP 429 / 503Respectă timpul de reîncercare și verifică disponibilitatea. Nu elimina limitele și nu repeta agresiv.
Niciun pachet selectatVerifică numele reale și selectorul. --all-packages este o alternativă explicită, în limite.
Alt server a dispărutNu partaja aceeași sursă între servere independente. Atribuie fiecăruia propria sursă.

Întrebări frecvente

Am nevoie de Pro pentru a genera un SBOM?

Nu. Colectarea locală este gratuită și nu necesită cont. Upload-ul în Active, verificarea CVE prin API și sincronizarea inventarului necesită acces Pro sau trial Pro activ.

Ce înseamnă un rezultat neevaluat?

Serviciul nu a evaluat componenta respectivă. Lipsa unei potriviri nu dovedește că este neafectată. Amazon Linux 2 are inventar și sincronizare, dar nu are evaluare CVE implementată în versiunea actuală.

Pot folosi mai multe aplicații și servere?

Da. Atribuie surse distincte snapshot-urilor întreținute independent. Limita organizației este de 5.000 de componente unice și 50 de aplicații; actualizarea unei surse păstrează celelalte asocieri.

Este disponibil un plugin Jenkins?

Nu încă. Acum sunt disponibile binarul Linux, comenzile locale și operațiile API explicite. Nu oferim scanare de imagini AMI/VHD sau containere.