Ok, comme dit dans un article précédent  (Skipfish rapidos), je souhaitais intégrer skipfish à Jenkins. Finalement c’est pas compliqué, ça m’a pris 10 minutes le temps de comprendre comment étaient générées les pages skipfish et d’écrire le script qui va bien.

Côté Jenkins, créez un nouveau job (par exemple « Security »). Dans la description indiquez ceci (en changeant l’url) :

<iframe height= »800″ src= »http://jenkins.your.url/job/trunk-Security/Skipfish/? » type= »text/html » width= »900″></embed>

 

Dans la section build, nous allons exécuter deux commande (shell), une pour skipfish, l’autre pour faire planter le build si des failles sont découvertes.

Le premier doit avoir cette structure :

rm -rf /var/lib/jenkins/jobs/Security/workspace/skipfish; cd /usr/local/skipfish; skipfish -u -A YOURLOGIN:YOURPASSWORD -MEULV -W /dev/null -o /var/lib/jenkins/jobs/Security/workspace/skipfish/ https://your.software.url

Et le second celle là :

/usr/local/skipfish/test_results.sh

Le script test_results.sh doit contenir les lignes suivantes. C’est un peut crado comme script, mais vu la non complexité du truc, ça reste plus que lisible. D’ailleurs en lisant la ligne je me dis que le head -1 n’a rien à faire là. Vous pouvez remplacez « 0|1|2″ par le niveau de sécurité souhaité, je pense que se focaliser sur les niveau 3 et 4 sur une plateforme d’intégration est judicieux, mais si vous voulez ajouter le niveau 2 il faudra avoir « 0|1″ :

#!/bin/bash
exit $(grep severity /var/lib/jenkins/jobs/Security/workspace/skipfish/samples.js | awk ‘{print $3}’ | sed « s/,// » | grep -v -E « 0|1|2″ | head -1 | wc -l)

Et voilà, il ne reste plus qu’a valider et si skipfish remonte une alerte de sécurité supérieure à 2, vous serez averti : le build plantera. N’hésitez pas si je ne suis pas clair.