Sécurité des dépendances

Quiet Guard surveille les paquets tiers dont dépend votre application et lève un constat dès que l'un d'eux fait l'objet d'un avis de sécurité connu. Vous y accédez depuis l'onglet Vulnérabilités d'un projet, dans le panel /app.

Disponible sur tous les plans, y compris Free, l'analyse des dépendances fait partie de la fonctionnalité vulnerability_scan, présente par défaut.

Instantanés du composer.lock

Votre client rapporte les paquets installés du projet en envoyant le composer.lock analysé à /api/v1/dependencies :

json
{
  "packages": [
    { "name": "laravel/framework", "version": "11.9.0", "is_dev": false },
    { "name": "phpunit/phpunit", "version": "11.2.0", "is_dev": true }
  ]
}

Chaque paquet porte un name, une version résolue et un indicateur is_dev. Le serveur enregistre cela comme l'instantané de dépendances courant du projet, remplaçant le précédent. Le client Laravel de référence fournit une commande monitor:dependencies pour cela.

Correspondance avec les avis Packagist

Après chaque instantané enregistré, un scan en arrière-plan s'exécute :

  1. Il interroge la base des avis de sécurité Packagist pour vos paquets.
  2. Il confronte les contraintes de versions affectées de chaque avis à votre version installée à l'aide de composer/semver.
  3. Les avis correspondants deviennent des constats de vulnérabilité sur le projet.
Échoue bruyamment, jamais silencieusement. Si la récupération des avis échoue, le scan s'interrompt plutôt que de traiter « aucune donnée » comme « aucune vulnérabilité ». Un incident réseau ne doit jamais résoudre en masse vos constats.

Constats, auto-résolution et mise en sourdine

Chaque constat consigne le paquet affecté, l'avis, la gravité et la plage de versions affectées. Les constats ont un cycle de vie que le scanner maintient automatiquement :

  • Les nouveaux avis qui correspondent deviennent des constats et déclenchent une alerte vulnerability.detected.
  • Un constat est auto-résolu lorsqu'un instantané ultérieur ne lui correspond plus: généralement parce que vous avez mis à jour le paquet.
  • Les constats que vous avez ignorés le restent au fil des nouveaux scans ; le scanner ne relèvera pas sans cesse un bruit que vous avez déjà trié.

Alertes

Lorsqu'un scan produit de nouveaux constats, les canaux de notification du projet abonnés à vulnerability.detected sont prévenus, pour qu'une CVE fraîchement divulguée dans l'une de vos dépendances atteigne l'équipe sans que personne n'ait à rafraîchir un tableau de bord.

Paquets obsolètes

Au-delà des avis de sécurité, chaque instantané est aussi vérifié côté fraîcheur : la version installée de chaque paquet est comparée à sa dernière version stable sur Packagist. L'onglet Dépendances du projet liste versions installées et dernières versions avec un badge Obsolète (les checkouts dev-main / RC ne sont jamais signalés, ce sont des choix délibérés), et la vue d'ensemble du projet affiche un compteur Paquets obsolètes. La fraîcheur est en mode meilleur-effort : un raté de Packagist n'affecte jamais l'analyse de sécurité.

Et ensuite

  • Abonnez un canal à vulnerability.detected dans Alertes.
  • Planifiez monitor:dependencies dans votre application pour que les instantanés restent à jour après chaque déploiement.

Vous lisez la documentation Quiet Guard v1.0.