La bibliothèque actuelle fournit l'ensemble des services publics, chargés de travailler avec des fichiers .sarif .
Sarif - Résultats de l'analyse statique Le format d'échange , est un format standard basé sur JSON pour la sortie des outils d'analyse statique, élaboré par Microsoft.
Il existe différents outils d'analyse statique, mais généralement tous sont unis par un concept - pour détecter les vulnérabilités logicielles.
Ainsi, lors de la sortie de l'outil de travail d'analyse statique, il y aura l'ensemble des warnings ,
qui sont pointés vers les odeurs du code. Certains outils sont allés plus loin et offrent une opportunité
Pour fix automatiquement ces odeurs de code.
En conséquence, les fichiers SARIF , qui pourraient être l'un des formats possibles pour les rapports d'outils d'analyse statique, contiendront des sections correspondantes pour warnings et fixes , obtenus par ces outils, qui sont indiqués vers les vulnérabilités correspondantes dans les fichiers cibles.
Le module Fix-Patches est défini pour fonctionner avec des sections fix object à partir de fichiers formatés SARIF .
fix object représente un correctif proposé pour le problème, indiqué par l'outil.Fix-Patches , à son tour, analysera ces sections, créera une copie de fichiers cibles, qui sont présentés dans SARIF et appliquent automatiquement des correctifs à ces copies.La sortie du résultat contiendra la liste des chemins vers les copies des fichiers cibles fournis avec des correctifs appliqués.
Remarque: Si le fichier SARIF contiendra plusieurs correctifs pour la même région dans un seul fichier, seule le premier correctif sera appadé.
La bibliothèque fournit une API facile à utiliser pour les correctifs de correctifs en application, il est juste nécessaire de fournir le chemin du fichier SARIF , qui contiennent la liste des correctifs ( fix objects ) pour les fichiers cibles et la liste des chemins de main vers ces fichiers, de la manière, dans laquelle ils sont présentés dans SARIF (via des chemins absolus / relatifs).
val processedFiles : List < Path > = SarifFixAdapter (
sarifFile = sarifFilePath,
targetFiles = listOfTargetFilesPaths,
testRoot = " /path/to/test/root/directory/ " .toPath()
).process()