Articles taggés skipfish
Poisson frais – Skipfish et Jenkins
0Ok, 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.
Passe-moi le poison – Skipfish
1Dans un contexte professionnel, j’ai mis en place un outil d’audit de code. Skipifsh : efficace, simple et rapide.
Un rapide howto pour le tester sur une appli nécessitant une authentification apache.
wget http://skipfish.googlecode.com/files/skipfish-2.03b.tgz tar xvzf skipfish-2.03b.tgz cd skipfish-2.03b aptitude install build-essential make ./skipfish -A LOGIN:PASSWORD -MEULV -W /dev/null -o /tmp/output_skipfish https://VOTRE_URL/
Avec cette commande, il n’y aura aucune attaque de bruteforce via dictionnaire. Vous obtiendrez donc quelques information de sécurité sur le rendu de vos pages, classés par criticité. Il nous a permis de mettre en lumière un petit soucis chez nous en moins de 30 minutes : sympa
Next step : intégration propre à Jenkins (il est déjà intégré mais je dois voir comment dire à jenkins de dire « Build Failed » quand une faille de criticité moyenne ou haute découverte.