Utilisez cet outil de ligne de commande pour trouver les failles de sécurité dans votre code
Doté d'une large prise en charge linguistique, Graaudit vous permet d'auditer la sécurité de votre code pendant le processus de développement.
Les tests sont une partie importante du cycle de vie du développement logiciel (SDLC) et comportent plusieurs étapes. Aujourd'hui, je veux parler de la recherche de problèmes de sécurité dans le code.
Vous ne pouvez pas ignorer la sécurité lors du développement d'un logiciel. C'est pourquoi il existe un terme appelé DevSecOps, qui est fondamentalement responsable de l'identification et de la résolution des vulnérabilités de sécurité dans une application. Il existe des solutions open source pour vérifier les vulnérabilités de l'OWASP et qui en tireront des informations en créant un modèle de menace du code source.
Il existe différentes approches pour gérer les problèmes de sécurité, par exemple les tests de sécurité des applications statiques (SAST), les tests de sécurité des applications dynamiques (DAST), les tests de sécurité des applications interactifs (IAST), l'analyse de la composition logicielle, etc.
Les tests de sécurité des applications statiques s'exécutent au niveau du code et analysent les applications en découvrant les erreurs dans le code déjà écrit. Cette approche ne nécessite pas l'exécution du code, c'est pourquoi on l'appelle analyse statique.
Je me concentrerai sur l'analyse de code statique et utiliserai un outil open source pour avoir une expérience pratique.
Pourquoi utiliser un outil open source pour vérifier la sécurité du code
Il existe de nombreuses raisons de choisir des logiciels, des outils et des projets open source dans le cadre de votre développement. Cela ne coûtera rien, car vous utilisez un outil développé par une communauté de développeurs partageant les mêmes idées et souhaitant aider d'autres développeurs. Si vous avez une petite équipe ou une startup, il est bon de trouver un logiciel open source pour vérifier la sécurité de votre code. Cela vous évite d'avoir à embaucher une équipe DevSecOps distincte, ce qui réduit vos coûts.
Les bons outils open source sont toujours conçus dans un souci de flexibilité et doivent pouvoir être utilisés dans n’importe quel environnement, couvrant autant de cas que possible. Cela facilite la vie des développeurs en connectant ce logiciel à leur système existant.
Mais il peut arriver que vous ayez besoin d’une fonctionnalité qui n’est pas disponible dans l’outil que vous avez choisi. Ensuite, vous avez la possibilité de copier le code, de développer votre propre fonctionnalité par-dessus et de l'utiliser dans votre système.
Étant donné que la plupart du temps, les logiciels open source sont pilotés par une communauté, le rythme de développement a tendance à être un avantage pour les utilisateurs de cet outil car ils itèrent le projet en fonction des commentaires des utilisateurs, des problèmes ou des publications de bogues.
Utiliser Graaudit pour garantir la sécurité de votre code
Il existe différents outils d'analyse de code statique open source, mais comme vous le savez, l'outil analyse le code lui-même, et c'est pourquoi il n'existe pas d'outil générique pour tous les langages de programmation. Mais certains d’entre eux suivent les directives de l’OWASP et tentent de couvrir autant de langues que possible.
Ici, nous utiliserons Graaudit, qui est un simple outil de ligne de commande qui nous permet de trouver des failles de sécurité dans notre base de code. Il prend en charge différentes langues mais un jeu de signatures fixe.
Graaudit utilise grep, qui est un outil utilitaire sous licence GNU, et il existe des types similaires d'outils d'analyse de code statique comme Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), recherche de failles, etc. Mais l'exigence technique il a est minime et très flexible. Néanmoins, vous pourriez avoir des exigences qui ne sont pas satisfaites par Graaudit. Si tel est le cas, vous pouvez consulter cette liste pour d'autres options.
Nous pouvons installer cet outil sous un projet spécifique, ou dans l'espace de noms global, ou sous un utilisateur spécifique. Comme nous le souhaitons, il est flexible. Clonons d'abord le dépôt :
$ git clone https://github.com/wireghoul/graudit
Maintenant, nous devons créer un lien symbolique de Graaudit afin de pouvoir l'utiliser comme commande :
$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit
Ajoutez un alias à .bashrc (ou au fichier de configuration du shell que vous utilisez) :
#------ .bashrc ------
alias graudit="~/bin/graudit"
et rechargez le shell :
$ source ~/.bashrc # OR
$ exex $SHELL
Vérifions si nous avons réussi ou non à installer l'outil en exécutant ceci :
$ graudit -h
Si vous obtenez quelque chose de similaire, alors vous êtes prêt à partir.
Fig. 1 Page d'aide Graaudit
J'utilise l'un de mes projets existants pour tester l'outil. Pour exécuter l'outil, nous devons transmettre la base de données de la langue respective. Vous trouverez les bases de données sous le dossier signatures :
$ graudit -d ~/gradit/signatures/js.db
J'ai exécuté cela sur deux fichiers JavaScript de mes projets existants, et vous pouvez voir qu'il renvoie le code vulnérable dans la console :
Vous pouvez essayer de l'exécuter sur l'un de vos projets, et ils disposent d'une longue liste de bases de données incluses dans le projet lui-même pour prendre en charge différentes langues.
Avantages et inconvénients de l'audit
Graaudit prend en charge de nombreux langages, ce qui en fait un bon choix pour les utilisateurs de nombreux systèmes différents. Il est comparable à d'autres outils gratuits ou payants en raison de sa simplicité d'utilisation et de sa large prise en charge linguistique. Plus important encore, ils sont en cours de développement et la communauté prend également en charge d’autres utilisateurs.
Bien qu'il s'agisse d'un outil pratique, vous aurez peut-être du mal à identifier un code spécifique comme « vulnérable ». Peut-être que les développeurs incluront cette fonction dans les futures versions de l'outil. Mais il est toujours bon de garder un œil sur les problèmes de sécurité dans le code en utilisant des outils comme celui-ci.
Conclusion
Dans cet article, je n'ai abordé qu'un des nombreux types de tests de sécurité : les tests de sécurité des applications statiques. Il est facile de démarrer avec une analyse de code statique, mais ce n'est que le début. Vous pouvez ajouter d'autres types de tests de sécurité des applications dans votre pipeline de développement d'applications pour enrichir votre sensibilisation globale à la sécurité.