Zum Inhalt springen

Snyk-Befehle

Umfassende Snyk CLI-Befehle und Arbeitsabläufe für Sicherheits-Scans über Open Source, Code, Container und Infrastructure as Code.

Installation

npm (Node.js)

# Install globally
npm install -g snyk

# Install in project
npm install --save-dev snyk

# Verify installation
snyk --version

macOS (Homebrew)

# Install via Homebrew
brew install snyk

# Update Snyk
brew upgrade snyk

# Verify installation
snyk --version

Windows (Scoop)

# Install via Scoop
scoop install snyk

# Verify installation
snyk --version

Standalone Binary

# Download standalone CLI (Linux/macOS)
curl https://static.snyk.io/cli/latest/snyk-linux -o snyk
chmod +x ./snyk
./snyk --version

# Or macOS
curl https://static.snyk.io/cli/latest/snyk-macos -o snyk
chmod +x ./snyk

Authentifizierung

Authentifizierung mit Browser

# Öffne Browser zur Authentifizierung
snyk auth

# Standard: öffnet Browser und erstellt Auth-Token
snyk auth --token <token>

API-Token-Methoden

# Authentifiziere mit explizitem Token
snyk auth --token <your-api-token>

# Setze Token über Umgebungsvariable
export SNYK_TOKEN=<your-api-token>
snyk test

# Überprüfe aktuelle Authentifizierung
snyk config get api

# Setze Organisation
snyk config set org=<org-id>

Abmelden

# Löschen Sie gespeicherte Anmeldedaten
snyk logout

# Löschen Sie alle Authentifizierungen
rm ~/.snyk

Open Source-Scanning (SCA)

Basis-Tests

# Scan des aktuellen Projekts auf Sicherheitslücken
snyk test

# Scan mit minimalem Output
snyk test --quiet

# Scan und detaillierte Informationen anzeigen
snyk test --verbose

# Scan spezifischer Datei
snyk test --file=package.json

# Scan mit allen Schweregrad-Stufen
snyk test --severity-threshold=low

Schweregrad-Filterung

# Nur kritische Sicherheitslücken anzeigen
snyk test --severity-threshold=critical

# Kritisch und hoch anzeigen
snyk test --severity-threshold=high

# Kritisch, hoch und mittel anzeigen
snyk test --severity-threshold=medium

# Alle anzeigen (kritisch, hoch, mittel, niedrig)
snyk test --severity-threshold=low

Multi-Language-Support

# Scan von npm/Node.js-Projekten
snyk test

# Scan von Python-Projekten
snyk test --file=requirements.txt

# Scan von Java (Maven)
snyk test --file=pom.xml

# Scan von Java (Gradle)
snyk test --file=build.gradle

# Scan von .NET (NuGet)
snyk test --file=packages.config

# Scan von Ruby
snyk test --file=Gemfile.lock

# Scan von PHP/Composer
snyk test --file=composer.lock

# Scan von Go
snyk test --file=go.mod

Projekte überwachen

# Erstelle Snapshot von Sicherheitslücken zur Überwachung
snyk monitor

# Überwachung mit benutzerdefiniertem Namen
snyk monitor --project-name=my-app

# Überwache spezifische Organisation
snyk monitor --org=<org-id>

# Überwachung mit Tags
snyk monitor --tags=production,critical

Code-Scanning (SAST)

Basis-Code-Scanning

# Scan Code auf Sicherheitslücken
snyk code test

# Scan mit minimalem Output
snyk code test --quiet

# Scan mit detailliertem Output
snyk code test --verbose

# Scan spezifisches Verzeichnis
snyk code test --scan-unmanaged

Code-Schweregrad-Filterung

# Nur kritische Probleme
snyk code test --severity-threshold=critical

# Kritisch und hoch
snyk code test --severity-threshold=high

# Alle Schweregrade
snyk code test --severity-threshold=low

Container-Scanning

Image-Tests

# Scan Docker-Image auf Sicherheitslücken
snyk container test <image-name>

# Test mit Tag
snyk container test myapp:latest

# Test aus Registry
snyk container test docker.io/node:16

# Test lokales Image nach ID
snyk container test --image=<image-id>

Container-Überwachung

# Erstelle Snapshot von Container-Sicherheitslücken
snyk container monitor <image-name>

# Überwachung mit Organisation
snyk container monitor <image-name> --org=<org-id>

# Überwache mehrere Images
snyk container monitor myapp:v1.0
snyk container monitor myapp:v1.1

Erweiterte Container-Optionen

# Zeige alle Sicherheitslücken (einschließlich nicht behobener)
snyk container test <image> --show-vulnerable-paths

# Einschließlich Base-Image-Sicherheitslücken
snyk container test <image> --detect-scan-errors

# Test ohne Upload zu Snyk
snyk container test <image> --skip-unresolved

Infrastructure as Code-Scanning (IaC)

Terraform-Scanning

# Scan von Terraform-Dateien
snyk iac test

# Scan spezifischer Datei
snyk iac test main.tf

# Scan mit Schweregrad-Filter
snyk iac test --severity-threshold=high

# Test mit Framework
snyk iac test --framework=terraform

# Erstelle menschenlesbaren Bericht
snyk iac test --report

Andere IaC-Formate

# Scan von CloudFormation
snyk iac test --framework=cloudformation template.yaml

# Scan von Kubernetes-Manifesten
snyk iac test --framework=k8s deployment.yaml

# Scan von ARM-Templates
snyk iac test --framework=arm

# Scan von Dockerfile
snyk iac test Dockerfile

# Scan von Helm-Charts
snyk iac test --framework=helm chart/

IaC-Überwachung

# Überwache IaC-Konfiguration
snyk iac describe

# Erhalte Compliance-Informationen
snyk iac describe --framework=terraform

# Zeige detaillierte Konfiguration
snyk iac describe --nested

Fix & Behebung

Auto-Fix von Sicherheitslücken

# Auto-fix von Sicherheitslücken
snyk fix

# Dry-run zur Vorschau von Änderungen
snyk fix --dry-run

# Fix für spezifischen Schweregrad
snyk fix --severity-threshold=high

# Erzwinge Überschreiben bestehender Änderungen
snyk fix --force

Dependency Protection

# Wende Snyk Protect an (fügt Sicherheits-Patches zu Abhängigkeiten hinzu)
snyk protect

# Überprüfe, ob der Schutz angewendet wurde
snyk protect --verbose

# Entferne Schutz
snyk protect --uninstall

Sicherheitslücken ignorieren

Spezifische Sicherheitslücken ignorieren

# Ignoriere eine Sicherheitslücke interaktiv
snyk ignore

# Ignoriere mit spezifischem Grund und Ablaufdatum
snyk ignore --id=<vuln-id> --reason=<reason> --expiry=<date>

# Beispiel: ignorieren für 30 Tage
snyk ignore --id=SNYK-JS-123456 --expiry=2026-04-30

# Setze permanentes Ignorieren
snyk ignore --id=SNYK-JS-123456 --permanent

Policy-Dateien

# Erstelle .snyk-Policy-Datei
snyk policy --create

# Test mit Policy
snyk test --policy-path=.snyk

# Zeige Policy
cat .snyk

# Aktualisiere Policy
snyk ignore --id=SNYK-JS-123456 --reason="False positive"

SBOM-Generierung

Software Bill of Materials

# Generiere SBOM im JSON-Format
snyk sbom

# Generiere SBOM für Docker-Image
snyk sbom --format=json <image-name>

# Ausgabe in Datei
snyk sbom > sbom.json

# Generiere SPDX-Format
snyk sbom --format=spdx

# Zeige in Tabellenformat
snyk sbom --format=table

Ausgabeformate

JSON-Ausgabe

# Test und Ausgabe als JSON
snyk test --json > results.json

# Pretty-print JSON
snyk test --json-file-output=results.json

# Code-Test als JSON
snyk code test --json

SARIF-Ausgabe

# Generiere SARIF-Format (für GitHub Code Scanning)
snyk test --sarif > results.sarif

# SARIF für Code-Scanning
snyk code test --sarif > code-results.sarif

# Container SARIF
snyk container test <image> --sarif > container.sarif

HTML-Berichte

# Generiere HTML-Bericht
snyk test --html > report.html

# Öffne im Browser
snyk test --html > report.html && open report.html

Konfiguration & Einstellungen

Konfigurationsbefehl

# Zeige aktuelle Konfiguration
snyk config show

# Setze API-Endpunkt
snyk config set api=https://api.snyk.io

# Setze Organisation
snyk config set org=<org-id>

# Erhalte spezifische Einstellung
snyk config get api

# Deaktiviere Konfiguration
snyk config unset org

Umgebungsvariablen

# Setze Token über Umgebungsvariable
export SNYK_TOKEN=<your-token>

# Setze Organisation
export SNYK_ORG=<org-id>

# Setze API-Endpunkt
export SNYK_API=https://api.snyk.io

# Setze benutzerdefiniertes CA-Zertifikat
export NODE_EXTRA_CA_CERTS=/path/to/ca.crt

# Deaktiviere SSL-Verifizierung (mit Vorsicht)
export NODE_TLS_REJECT_UNAUTHORIZED=0

.snyk Policy-Datei

# .snyk file for ignoring vulnerabilities
version: v1.25.0
ignore:
  SNYK-JS-123456:
    - '*':
        reason: False positive
        expires: 2026-04-30
  SNYK-PY-789012:
    - '*':
        reason: Not applicable to our use case
        expires: 2026-06-30
patch:
  SNYK-JS-111111:
    - '*':
        patched: '2024-03-15'

Filterung & Organisation

Filterung von Sicherheitslücken

# Einschließlich nicht behobener Sicherheitslücken
snyk test --show-vulnerable-paths

# Nur behobene anzeigen
snyk test --show-vulnerable-paths=false

# Filterung nach Projekt
snyk test --project-name=<name>

# Filterung nach Tags
snyk monitor --tags=team:backend,env:prod

Organisation Kontext

# Test innerhalb spezifischer Org
snyk test --org=<org-id>

# Setze Standard-Organisation
snyk config set org=<org-id>

# Zeige Org-ID
snyk org

# Liste Organisationen auf
snyk org list

CI/CD-Integration

GitHub Actions

# .github/workflows/snyk.yml
name: Snyk Security Scan
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  snyk:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: snyk/actions/setup@master
      - env:
          SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
        run: snyk test --severity-threshold=high

      - name: Upload SARIF
        uses: github/codeql-action/upload-sarif@v2
        with:
          sarif_file: results.sarif

GitLab CI

# .gitlab-ci.yml
snyk_scan:
  image: snyk/snyk:latest
  script:
    - snyk auth --token $SNYK_TOKEN
    - snyk test --severity-threshold=high --json > results.json
  artifacts:
    reports:
      sast: results.json

Jenkins Pipeline

pipeline {
    agent any
    environment {
        SNYK_TOKEN = credentials('snyk-token')
    }
    stages {
        stage('Snyk Test') {
            steps {
                sh 'npm install -g snyk'
                sh 'snyk auth $SNYK_TOKEN'
                sh 'snyk test --severity-threshold=high --json > results.json'
            }
        }
    }
    post {
        always {
            publishHTML target: [
                reportDir: '.',
                reportFiles: 'results.json',
                reportName: 'Snyk Report'
            ]
        }
    }
}

Nützliche Befehlskombinationen

Umfassender Scan-Arbeitsablauf

# 1. Authentifiziere
snyk auth

# 2. Teste Open-Source-Abhängigkeiten
snyk test --severity-threshold=high

# 3. Scanne Code auf Sicherheitsprobleme
snyk code test --severity-threshold=high

# 4. Scanne Container
snyk container test myapp:latest

# 5. Scanne Infrastructure as Code
snyk iac test terraform/

# 6. Generiere SBOM
snyk sbom > sbom.json

# 7. Erstelle Überwachungs-Snapshot
snyk monitor --org=<org-id>

CI/CD Arbeitsablauf

# Installiere Abhängigkeiten
npm install

# Authentifiziere
snyk auth --token $SNYK_TOKEN

# Führe alle Scans mit striktem Schwellenwert aus
snyk test --severity-threshold=critical --fail-on=all
snyk code test --severity-threshold=critical
snyk container test $DOCKER_IMAGE --severity-threshold=critical

# Generiere Berichte
snyk test --json > sca-results.json
snyk code test --sarif > code-results.sarif
snyk container test $IMAGE --json > container.json

# Überwache für kontinuierliche Verfolgung
snyk monitor --org=$SNYK_ORG --project-name=$CI_PROJECT_NAME

Fix und Deploy Arbeitsablauf

# Teste aktuellen Status
snyk test

# Auto-fix was repariert werden kann
snyk fix

# Überprüfe Änderungen
git diff

# Test nach Fixes
snyk test

# Commit und Push
git commit -am "chore: fix security vulnerabilities"
git push

Debugging & Troubleshooting

Debug-Modus

# Detaillierter Output zum Debugging
snyk test --verbose

# Debug-Modus (sehr detaillierte Protokollierung)
snyk test --debug

# Überprüfe Authentifizierung
snyk auth --debug

# Überprüfe installierte Pakete
snyk test --print-deps

Häufige Probleme

# Cache löschen
rm -rf ~/.snyk

# Erzwinge Neuauthentifizierung
snyk logout && snyk auth

# Test ohne Upload von Ergebnissen
snyk test --skip-unresolved

# Überprüfe Snyk CLI-Version
snyk --version

# Aktualisiere auf neueste Version
npm install -g snyk@latest

Test-Zusammenfassung

# Zeige nur Zusammenfassung
snyk test --quiet

# Zähle Sicherheitslücken
snyk test --json | jq '.vulnerabilities | length'

# Erhalte höchsten Schweregrad
snyk test --json | jq '.metadata.severityHeader'

Umgebungsvariablen Referenz

VariableZweckBeispiel
SNYK_TOKENAPI-Authentifizierungs-Tokenexport SNYK_TOKEN=abc123
SNYK_ORGStandard-Organisations-IDexport SNYK_ORG=org-id
SNYK_APIBenutzerdefinierter API-Endpunktexport SNYK_API=https://custom.snyk.io
SNYK_INTEGRATION_NAMEIntegrations-Identifikator in CI/CDexport SNYK_INTEGRATION_NAME=github-actions
NODE_EXTRA_CA_CERTSBenutzerdefiniertes CA-Zertifikatexport NODE_EXTRA_CA_CERTS=/path/ca.crt
HTTP_PROXYHTTP-Proxy-Einstellungenexport HTTP_PROXY=http://proxy:8080
HTTPS_PROXYHTTPS-Proxy-Einstellungenexport HTTPS_PROXY=https://proxy:8080

Best Practices

Sicherheit

  • Authentifiziere dich immer mit einem sicheren API-Token (committe niemals Tokens)
  • Verwende --severity-threshold=critical in Production CI/CD
  • Aktualisiere Snyk CLI regelmäßig auf die neueste Version
  • Überprüfe und genehmige Auto-Fixes vor dem Mergen
  • Halte .snyk Policy-Dateien unter Versionskontrolle
  • Verwende Richtlinien auf Organisations-Ebene für Konsistenz
  • Überwache Sicherheitslücken kontinuierlich mit snyk monitor

Performance

  • Verwende --quiet Flag für CI/CD zum Reduzieren der Ausgabe
  • Cache-Abhängigkeiten zwischen Durchläufen wenn möglich
  • Führe Container-Scans nur auf spezifischen Tags durch, nicht auf allen
  • Verwende --skip-unresolved zum Überspringen von nicht behebbaren Problemen
  • Filterung nach Schweregrad um auf umsetzbare Probleme zu konzentrieren
  • Scanne nur betroffene Pfade wenn möglich

Arbeitsablauf

  • Integriere in PR-Checks um unsicheren Code vom Mergen abzuhalten
  • Verwende snyk fix um Patching zu automatisieren
  • Überprüfe snyk ignore Entscheidungen vor dem Committen
  • Verwende snyk monitor für kontinuierliche Verfolgung
  • Richte Benachrichtigungen für neue Sicherheitslücken ein
  • Dokumentiere Ausnahmen mit Gründen und Ablaufdaten
  • Regelmäßige Überprüfung ignorierter Sicherheitslücken

Ressourcen

Offizielle Dokumentation

Community & Support


Zuletzt aktualisiert: 2026-03-30