Comment utiliser un utilitaire simple pour trouver des vulnérabilités dans le code d'un programme

Graaudit prend en charge plusieurs langages de programmation et vous permet d'intégrer les tests de sécurité de la base de code directement dans le processus de développement.

Comment utiliser un utilitaire simple pour trouver des vulnérabilités dans le code d'un programme
Source: Unsplash (Markus Spiske)

Les tests constituent une partie importante du cycle de vie du développement logiciel. Il existe de nombreux types de tests, chacun résolvant son propre problème. Aujourd'hui, je veux parler de la recherche de problèmes de sécurité dans le code.

De toute évidence, dans les réalités modernes du développement de logiciels, il est important de garantir la sécurité des processus. À une certaine époque, le terme spécial DevSecOps a même été introduit. Ce terme fait référence à une série de procédures visant à identifier et éliminer les vulnérabilités d'une application. Il existe des solutions open source spécialisées pour vérifier les vulnérabilités conformément aux normes OWASP, qui décrivent les différents types et comportements des vulnérabilités dans le code source.

Il existe différentes approches pour résoudre les problèmes de sécurité, telles que 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 interactives (IAST), l'analyse de la composition logicielle, etc.

Les tests de sécurité des applications statiques identifient les erreurs dans le code déjà écrit. Cette approche ne nécessite pas l'exécution de l'application, c'est pourquoi elle est appelée analyse statique.

Je me concentrerai sur l'analyse de code statique et utiliserai un simple outil open source pour tout démontrer en pratique.

Pourquoi j'ai choisi un outil open source pour l'analyse de sécurité du code statique

Il y a plusieurs raisons à cela : premièrement, c'est gratuit parce que vous utilisez un outil développé par une communauté de personnes partageant les mêmes idées et souhaitant aider d'autres développeurs. Si vous avez une petite équipe ou une startup, vous avez une excellente opportunité d'économiser de l'argent en utilisant un logiciel open source pour tester la sécurité de votre base de code. Deuxièmement, cela vous évite d’avoir à embaucher une équipe DevSecOps distincte, ce qui réduit encore vos coûts.

Les bons outils open source sont toujours créés en tenant compte des exigences accrues de flexibilité. Ils peuvent donc être utilisés dans presque tous les environnements, couvrant un large éventail de tâches. Il est beaucoup plus facile pour les développeurs de connecter de tels outils au système qu'ils ont déjà construit tout en travaillant sur leurs projets.

Mais il peut arriver que vous ayez besoin d'une fonctionnalité qui n'est pas disponible dans l'outil que vous choisissez. Dans ce cas, vous avez la possibilité de forker son code et de développer votre propre outil basé sur celui-ci avec les fonctionnalités dont vous avez besoin.

Étant donné que dans la plupart des cas, le développement de logiciels open source est activement influencé par la communauté, la décision d'apporter des modifications est prise assez rapidement et avec précision : les développeurs du projet open source s'appuient sur les retours et suggestions des utilisateurs, sur leurs rapports de erreurs trouvées et autres problèmes.

Utilisation de Graaudit pour l'analyse de la sécurité du code

Vous pouvez utiliser divers outils open source pour l'analyse de code statique ; il n'existe pas d'outil universel pour tous les langages de programmation. Les développeurs de certains d'entre eux suivent les recommandations de l'OWASP et tentent de couvrir autant de langues que possible.

Ici, nous utiliserons Graduation, un simple utilitaire de ligne de commande qui nous permettra de trouver des vulnérabilités dans notre base de code. Il prend en charge différentes langues, mais leur ensemble est néanmoins limité. Graaudit est développé sur la base de l'utilitaire grep, qui était autrefois publié sous licence GNU.

Il existe des outils similaires pour l'analyse du code statique - Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), recherche de failles, etc. Mais Graaudit est très flexible et présente des exigences techniques minimales. Cependant, vous pouvez rencontrer des problèmes que Graaudit ne peut pas résoudre. Ensuite, vous pouvez rechercher d'autres options ici dans cette liste.

Nous pouvons intégrer cet outil dans un projet spécifique, ou le mettre à disposition d'un utilisateur sélectionné, ou l'utiliser simultanément dans tous nos projets. C'est également là que la flexibilité de Graaudit entre en jeu. Clonons donc d'abord le dépôt :

$ git clone https://github.com/wireghoul/graudit

Créons maintenant un lien symbolique pour que Graaudit puisse l'utiliser au format commande

$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit

Ajoutons un alias à .bashrc (ou au fichier de configuration que vous utilisez) :

#------ .bashrc ------
alias graudit="~/bin/graudit"

Redémarrer :

$ source ~/.bashrc # OR
$ exex $SHELL

Vérifions si l'installation a réussi :

$ graudit -h

Si vous voyez quelque chose de similaire, alors tout va bien.

Comment utiliser un utilitaire simple pour trouver des vulnérabilités dans le code d'un programme

Je vais tester un de mes projets existants. Avant d'exécuter l'outil, il faut lui transmettre une base de données correspondant au langage dans lequel mon projet est écrit. Les bases de données se trouvent dans le dossier ~/gradit/signatures :

$ graudit -d ~/gradit/signatures/js.db

J'ai donc testé deux fichiers js de mon projet et Graaudit a affiché des informations sur les vulnérabilités de mon code sur la console :

Comment utiliser un utilitaire simple pour trouver des vulnérabilités dans le code d'un programme

Comment utiliser un utilitaire simple pour trouver des vulnérabilités dans le code d'un programme

Vous pouvez essayer de tester vos projets de la même manière. Vous pouvez voir une liste de bases de données pour différents langages de programmation ici.

Avantages et inconvénients du Graaudit

Graaudit prend en charge de nombreux langages de programmation. Il convient donc à un large éventail d’utilisateurs. Il peut rivaliser de manière adéquate avec tous les analogues gratuits ou payants. Et il est très important que des améliorations soient encore apportées au projet, et que la communauté aide non seulement les développeurs, mais aussi les autres utilisateurs qui tentent de comprendre l'outil.

Il s’agit d’un outil pratique, mais jusqu’à présent, il ne permet pas toujours d’identifier exactement le problème avec un morceau de code suspect. Les développeurs continuent d'améliorer Graaudit.

Mais dans tous les cas, il est utile de prêter attention aux problèmes de sécurité potentiels dans le code lors de l’utilisation d’outils comme celui-ci.

Début…

Dans cet article, j'ai examiné une seule des nombreuses façons de détecter les vulnérabilités : les tests de sécurité des applications statiques. Effectuer une analyse de code statique est simple, mais ce n'est que le début. Pour en savoir plus sur la sécurité de votre base de code, vous devez intégrer d'autres types de tests dans votre cycle de vie de développement logiciel.

Comme la publicité

VPS fiable et le bon choix de plan tarifaire vous permettra d'être moins distrait du développement par des problèmes désagréables - tout fonctionnera sans panne et avec une disponibilité très élevée !

Comment utiliser un utilitaire simple pour trouver des vulnérabilités dans le code d'un programme

Source: habr.com

Ajouter un commentaire