Aller au contenu principal

Prise en main du PQC Scanner

S'applique à :
Windows 10+LinuxmacOS

Prérequis​

Prérequis

  • Système d'exploitation pris en charge (Windows 10+, Linux, macOS)
  • Accès administrateur/root pour les analyses en mode agent et le magasin de certificats Windows
  • Connectivité réseau vers les cibles à analyser (port 443/TCP pour les analyses de domaine)
  • 4 Go de RAM minimum (8 Go recommandés)
  • 5 Go d'espace disque libre

Installation​

Distribué depuis votre Cockpit, pas une release publique

Les binaires dke-scanner-agent ne sont publiés ni sur GitHub ni sur un registre Docker public. Chaque tenant Cockpit sert son propre lien de téléchargement signé, à durée de vie courte, protégé par la permission Operations.Pki.Scanner.Agent.Download.

Générer un installeur

Dans DuoKey Cockpit, allez dans Scanner Agents → Generate Installer et choisissez une plateforme (Windows x64, Linux x64/arm64, macOS x64/arm64). Cela retourne un lien de téléchargement signé et un jeton d'enregistrement à usage unique, valable 1 heure.

Télécharger le binaire

Téléchargez le binaire correspondant à votre plateforme depuis le lien. Sous Linux/macOS, rendez-le exécutable et placez-le dans votre $PATH : chmod +x dke-scanner-agent-* && sudo mv dke-scanner-agent-* /usr/local/bin/dke-scanner-agent.

S'enregistrer auprès de votre Cockpit

Exécutez enroll une fois pour enregistrer l'hôte et créer ~/.dke/agent.toml (mode 0600 sous Unix) :

dke-scanner-agent enroll --server https://cockpit.example.com --token <bundle-token>
Astuce

Passez le jeton via la variable d'environnement DKE_AGENT_ENROLL_TOKEN plutôt que --token pour l'exclure de l'historique du shell et de la liste des processus. Si votre release Cockpit a publié un hash du binaire, ajoutez --expected-sha256 <hex> : l'enregistrement refuse alors de continuer en cas de non-correspondance.

Démarrage rapide : vos premières analyses​

Modes d'analyse disponibles

filesystemAnalyser les répertoires à la recherche de certificats, magasins de clés et clés
domainAnalyser les points de terminaison TLS/SSL distants
agentInventaire cryptographique complet à l'échelle du système
sourcecodeAnalyse statique des motifs cryptographiques dans le code

1. Analyse du système de fichiers​

Analysez un répertoire à la recherche de certificats, magasins de clés et clés privées :

# Scan current directory (default: recursive, max-depth 10)
dke-scanner-agent filesystem

# Scan specific directory with output
dke-scanner-agent filesystem --path /etc/ssl/certs --output scan.json

# Scan with specific extensions and thread count
dke-scanner-agent filesystem \
--path /opt/app \
--extensions .pem,.crt,.p12,.jks \
--exclude node_modules,.git,target \
--threads 8 \
--format html \
--output report.html

# Include Windows Certificate Store scanning
dke-scanner-agent filesystem --scan-windows-certstore

2. Analyse de domaine​

Analysez les points de terminaison TLS distants et extrayez les chaînes de certificats :

# Basic domain scan
dke-scanner-agent domain --target example.com

# Custom port with timeout
dke-scanner-agent domain --target api.example.com --port 8443 --timeout 30

# With subdomain discovery (requires WhoisXML API key)
dke-scanner-agent domain \
--target example.com \
--discover-subdomains \
--subdomain-api-key $WHOISXML_API_KEY \
--max-subdomains 50

# Enable PQ key exchange detection (requires elevated privileges)
sudo dke-scanner-agent domain --target example.com --detect-pq-kex --interface eth0
Remarque

Le scanner de domaine utilise Rustls pour les connexions TLS. Par défaut, l'échange de clés TLS 1.3 est supposé être X25519. Utilisez --detect-pq-kex avec la capture de paquets pour détecter les échanges de clés X25519MLKEM768 ou Kyber768.

3. Analyse en mode agent​

Inventaire cryptographique complet à l'échelle du système :

# Full system scan (requires elevated privileges)
sudo dke-scanner-agent agent

# Skip process scanning for faster results
sudo dke-scanner-agent agent --no-process-scan

# Save results
sudo dke-scanner-agent agent --output system-scan.json --format json

4. Analyse du code source​

Analyse statique du code source à la recherche de motifs d'utilisation cryptographique dans 8 langages avec plus de 150 règles de détection :

# Scan local directory
dke-scanner-agent sourcecode --path /path/to/code

# Scan GitHub repository
dke-scanner-agent sourcecode \
--github-repo owner/repo \
--github-token $GITHUB_TOKEN \
--branch main

# Scan GitLab project
dke-scanner-agent sourcecode \
--gitlab-project group/project \
--gitlab-token $GITLAB_TOKEN

# Scan Azure DevOps repository
dke-scanner-agent sourcecode \
--azdo-org myorg \
--azdo-project myproject \
--azdo-repo myrepo \
--azdo-token $AZDO_TOKEN

5. Mode CI/CD​

Intégrez l'analyse dans votre pipeline CI/CD avec une sortie SARIF et des seuils d'échec selon la gravité :

# Scan with SARIF output for GitHub/GitLab security tabs
dke-scanner-agent ci --source-path . --format sarif --output results.sarif

# Fail build on high severity findings
dke-scanner-agent ci --source-path ./src --fail-on high --output ci-scan.json

# Fail only on critical
dke-scanner-agent ci --fail-on critical

Flux de travail post-analyse​

Générer un CBOM​

Exportez les constats sous forme de nomenclature cryptographique (Cryptographic Bill of Materials) CycloneDX 1.7 :

# Run scan first
dke-scanner-agent filesystem --path /app --output scan.json

# Generate CBOM
dke-scanner-agent cbom \
--input scan.json \
--app-name "Payment Gateway" \
--app-version "2.5.1" \
--output payment-gateway-cbom.json

Vérifier la conformité​

dke-scanner-agent compliance \
--scan-results scan.json \
--frameworks "NIST-800-131A,PCI-DSS-4.0,HIPAA,SOC2" \
--organization "Acme Corp" \
--format all \
--output compliance-reports/

Publier vers ServiceNow​

dke-scanner-agent servicenow \
--instance $SERVICENOW_INSTANCE \
--token $SERVICENOW_TOKEN \
--input scan.json \
--auto-incidents true

Lancer le tableau de bord web​

# Start on default port 3000
dke-scanner-agent serve

# Custom port
dke-scanner-agent serve --port 8080

Comprendre les résultats​

Niveaux de gravité du risque​

GravitéPlage de scorePrioritéAction
Critique9.0-10.0P0Action immédiate - RSA <2048, DSA, 3DES, RC4
Élevé7.0-8.9P1Sous 3 mois - RSA-2048, ECDSA, EdDSA
Moyen5.0-6.9P2Sous 6 mois - RSA-3072
Faible3.0-4.9P3Sous 12 mois - RSA-4096
Info0-2.9P4Surveiller - algorithmes PQC (ML-KEM, ML-DSA, SLH-DSA)

Structure du résultat d'analyse​

Configuration​

# Git provider tokens (for source code scanning)
export GITHUB_TOKEN="ghp_xxxxxxxxxxxx"
export GITLAB_TOKEN="glpat-xxxxxxxxxxxx"
export AZDO_TOKEN="xxxxxxxxxxxx"

# ServiceNow credentials
export SERVICENOW_INSTANCE="https://dev12345.service-now.com"
export SERVICENOW_USER="api_user"
export SERVICENOW_PASSWORD="secret"
export SERVICENOW_TOKEN="oauth-token" # Alternative to user/password

# Subdomain discovery
export WHOISXML_API_KEY="your-api-key"

# Logging verbosity
export RUST_LOG=info # debug, info, warn, error, trace

# Web dashboard authentication (optional)
export PQC_AUTH_MODE=none # none | oidc | api_key | both
export PQC_PORT=3000

Dépannage​

Astuce

Commencez par une seule analyse filesystem ou domain pour vous familiariser avec le format de sortie avant de lancer des évaluations d'infrastructure complètes.