Mettre en place le plugin OWASP dependency check dans les projets SONAR
Problématique
Comment mesurer les potentielles failles de sécurité induites par les dépendances présentes dans le projet Java que je développe ?
Solution
Utilisation du plugin maven dependency check et du plugin sonar associé afin d'avoir un indicateur dans sonarqube :
Cette solution a été sur les version de composants suivants :
- Sonarqube 1.1
- Maven 3.3.9
- dependency-check-maven 3.2.1
- sonar-maven-plugin 3.2
- sonar-dependency-check-plugin 1.1.0
Mise en place dans Maven
Dans le pom du projet ajouter les plugin suivants ainsi que les propriétés :
<properties>
...
<sonar.dependencyCheck.reportPath>${dependency.check.report.dir}/dependency-check-report.xml</sonar.dependencyCheck.reportPath>
<sonar.dependencyCheck.htmlReportPath>${dependency.check.report.dir}/dependency-check-report.html</sonar.dependencyCheck.htmlReportPath>
</properties>
<build>
...
<plugins>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.2</version>
</plugin>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>3.2.1</version>
<configuration>
<format>ALL</format>
<outputDirectory>${dependency.check.report.dir}</outputDirectory>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Mise en place dans Sonarqube
1. Cloner le dépôt GIT :
git clone git@github.com:stevespringett/dependency-check-sonar-plugin.git
2. Se positionner sur le tag 1.1.0 :
git checkout 1.1.03. Builder le plugin :
mvn clean package4. Dans le répertoire {project_dir}/sonar-dependency-check-plugin/target doit se trouver le plugin :
sonar-dependency-check-plugin-1.1.0.jar5. Copier le jar dans le répertoire {sonarqube_install}/extensions/plugins/ de sonarqube
6. Redémarrer Sonarqube
Création du rapport contenant les vulnérabilités
mvn clean packageUne fois le build effectué vous trouverez dans le /target du projet les fichiers dependency-check-report.* contenant les informations sur les vulnérabilités potentiellement présentes dans le projet.
Création du rapport contenant les vulnérabilités dans sonar
Il faut que maven soit paramétré et configuré pour accéder à sonarqube.
mvn clean package sonar:sonarUne fois le build effectué vous trouverez dans sonar un nouvel onglet sur le projet contenant le rapport html de l'analyse:
Dans 'Measures' se trouvera une nouvelle 'rubrique' OWASP-Dependency-Check (provenant du rapport xml) :
Pour aller plus loin
Il est tout a fait possible d'intégrer ce process dans une usine logicielle afin de bénéficier de l'intégration continue (au sein de jenkins par exemple) .
Le plugin dependency check peut être paramétré pour terminer le build en erreur si une dépendance critique est détectée.
Il est aussi possible sur SonarQube de créer des Quality gates contenant des contraintes de sécurité ce qui permettrait de détecter rapidement les failles de sécurité et statuer sur une éventuelle mise en production (selon criticité et choix entre les différents acteurs métiers) du produit logiciel.
Commentaires
Enregistrer un commentaire