SourceAnt

Surveillance des CVE

Un paquet vulnérable est installé. Quelque chose ici l'appelle-t-il ?

Tous les scanners répondent à la première moitié. La seconde est celle qui décide si l'après-midi de quelqu'un mérite d'être consacré, et une liste de paquets installés ne peut pas y répondre. SourceAnt détient déjà un graphe de ce qui importe et appelle quoi, donc il le peut.

Deux réponses, et une seule d'entre elles est urgente

Chaque avis qui correspond à quelque chose que vous installez reçoit l'une de ces réponses, avec la raison.

reached

Quelque chose que vous avez écrit importe ou appelle ce paquet. L'avis concerne du code que vous exécutez réellement.

Les fichiers qui le nomment reviennent avec le verdict, pour que vous puissiez aller voir plutôt que nous croire sur parole.

installed

Il est déclaré, et rien dans ce dépôt ne le nomme. Cela vaut encore la peine d'être corrigé un jour. Pas la peine de réveiller qui que ce soit.

Maintenu sur la liste plutôt que masqué, car un scanner qui écarte discrètement des choses est un scanner auquel personne ne fait confiance deux fois.

Dependabot vous dit que le paquet est là. Il ne vous dit pas si quelque chose dans votre code l'atteint, et c'est la question que se pose réellement l'ingénieur d'astreinte.

Comment il le sait

Le graphe de code était déjà là

SourceAnt indexe ce qui importe et appelle quoi. Demander à cet index si quelque chose nomme un paquet transforme une liste de tout ce qui est installé en la liste plus courte de ce qui est réellement connecté.

Ce n'est pas un scanner séparé greffé par-dessus. C'est une question de plus posée à un graphe construit pour d'autres raisons, et c'est pourquoi la réponse arrive avec les fichiers derrière elle plutôt qu'avec un score.

Comment le graphe de code est construit

Où il signale trop

Un paquet dont le nom est aussi un mot courant correspondra à des choses qui n'ont rien à voir avec lui. C'est pourquoi le verdict ne voyage jamais seul. Les fichiers qui l'ont produit l'accompagnent, si bien qu'une réponse erronée vous prend dix secondes à réfuter plutôt qu'un après-midi à contester.

Le fichier de verrouillage, pas le manifeste

Un manifeste dit ce qui a été demandé. Un fichier de verrouillage dit ce qui est installé. Un avis concerne le second, donc le fichier de verrouillage l'emporte partout où les deux existent.

Écosystème Lu en premier Repli sur
npm package-lock.json package.json
PyPI poetry.lock requirements.txt, puis pyproject.toml

Un manifeste qui ne peut être analysé vous coûte un écosystème dans la réponse, pas toute la lecture. Les plages de versions sont comparées de façon volontairement prudente, car un oui erroné est une alerte que quelqu'un doit réfuter.

Ce qui est renvoyé pour chaque avis

De quoi agir sans ouvrir un autre onglet, et de quoi contester sans devoir croire quiconque sur parole.

gravité et résumé
Tels que la base d'avis les énonce, et non tels que nous les reformulons.
version installée
Lue depuis votre fichier de verrouillage, donc ce qui est réellement installé plutôt que ce qui a été demandé.
plage affectée
La plage indiquée par l'avis, afin que vous puissiez vérifier vous-même la correspondance.
première version corrigée
Où aller, lorsqu'il y a quelque part où aller.
déclaré dans
Le fichier qui l'a amené.
direct ou transitif
Quelque chose que vous avez choisi, ou quelque chose que vos choix ont entraîné. Seul l'un des deux est à vous de changer.

Fraîcheur

Périme selon un horaire, car ce n'est pas votre dépôt qui a bougé

L'essentiel de ce que SourceAnt conserve cesse d'être vrai lorsque votre code change : ces données sont donc périmées par rapport au code. Une lecture d'avis ne fonctionne pas ainsi. Elle cesse d'être vraie lorsque la base d'avis change, ce qui se produit en continu pendant que votre dépôt reste parfaitement immobile.

Une lecture est donc conservée pendant un nombre d'heures défini plutôt que jusqu'au prochain commit, et ce délai vous appartient si vous subissez plus de pression que la plupart.

Deux moitiés d'une même question

L'une demande si le code que vous installez est sûr. L'autre demande si le code que vous installez est bien le vôtre.

Inscrivez votre système au registre

Exécutez le cœur open source sur votre propre infrastructure, ou commencez sur l'espace de travail hébergé. Le graphe est portable dans les deux cas.

Tous les cas d'usage