Audit de sécurité “frugal” de code source

Abderrahmane Smimite
Mar 27 · 3 min read

Re-up, publié initialement sur cyberun #12, Juin 2020

La cyber-sécurité n’échappe pas à la vague open-source, a fortiori dans une période où la recherche d’économies s’impose. Dans le domaine de l’audit de sécurité, Bandit et ZAP sont devenus incontournables, seuls ou en complément d’outils commerciaux plus ambitieux. Nous apprécions en particulier leur capacité à être intégrés à des chaines CI/CD et leur extensibilité.

Bandit

Bandit est un outil SAST (Static Application Security Testing). Cela consiste à analyser le code source dans sa forme d’origine pour détecter des éventuelles formes de codage ou d’appel non sécurisés qui peuvent conduire à des failles (anti-patterns). Il est dédié au Python et peut compléter une analyse statique classique de type Linter pour couvrir les aspects sécuritaires. Initialement démarré par OpenStack, il a été repris par la communauté active PYCQA (Python Code Quality Authority). Son code source ouvert et gratuit permet d’étendre le jeu de « tests » au-delà des +70 existants, et couvrir éventuellement plus de vulnérabilités (ex. interdire une fonction, détecter le mode debug, etc.).

Exemple de résultats de Bandit

L’outil peut se lancer sur un répertoire de code Python. Il l’analyse en mode récursif puis renvoie les résultats par criticité sur la ligne de commande, ou dans l’un des formats supportés pour d’autres intégrations (html, csv, json, etc.). Naturellement, ll peut retourner des faux positifs. Vous pouvez les gérer de différentes manières, avec précaution : en excluant des répertoires (de test par exemple), en ignorant certains tests à l’aide de skips, ou en annotant certaines lignes de code par le commentaire « # nosec ».

Bandit est un outil simple, efficace et extensible indispensable pour la sécurité du code Python. D’autres outils open-source existent également en fonction des langages et frameworks utilisés.

Site : https://github.com/PyCQA/bandit

OWASP ZAP

Outil DAST (Dynamic Application Security Testing), qui vise à tester la sécurité d’un site web selon son comportement dynamique. Développé par la vénérable organisation OWASP, ZAP dispose d’une communauté impressionnante. Avec 85000 téléchargements par mois, c’est un des outils de sécurité open-source les plus populaires.

Son interface graphique est datée, mais simple et efficace. La documentation est très complète, et on trouve d’excellentes ressources sur Internet pour s’initier rapidement à ZAP, et l’intégrer dans de nombreux environnements (par exemple sur Azure).

Interface graphique d’OWASP ZAP

Ecrit en Java, ZAP est multiplateforme (Windows/Linux/MacOS), ne nécessite pas d’installation (si l’environnement Java est déjà installé), se lance sans aucune difficulté et s’avère très fiable.

Le mode automatique est particulièrement pratique pour obtenir rapidement des informations en première approche. C’est le mode adapté à une intégration dans une chaine CI/CD. ZAP intègre un module qui est capable de trouver automatiquement les différentes URLs d’un site. Si certaines alertes correspondent à des faux positifs, il est souvent judicieux de les prendre en compte et faire évoluer son design pour les éviter.

Pour les pentesters, le mode manuel permet de mener des attaques sophistiquées. Le lancement automatique d’un navigateur pré-configuré est particulièrement appréciable. Le mode « request editor » permet de facilement personnaliser une requête initialement faite par le navigateur. L’outil conserve la trace de toutes les connexions, ce qui est très pratique pour revenir sur ce qu’on a fait (comme git pour un développeur).

ZAP intègre un magasin d’extensions. On en trouve notamment pour l’intégration à Jenkins, pour le standard OpenAPI, pour SAML, etc. On peut également développer des extensions « maison » en Java, et même intégrer ZAP dans un programme Python ! (package python-owasp-zap).

Site : https://www.zaproxy.org/

Intuitem

Disruption through simplicity

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store