
OWASP ASST (Automated Software Security Toolkit) | Un nouveau scanner de sécurité Web open source.
OWASP ASST (Automated Software Security Toolkit) | Un nouveau scanner de sécurité web open source.
Note : AWSS est l'ancien nom d'ASST

Les applications web sont devenues une partie intégrante de la vie quotidienne, mais beaucoup de ces applications sont déployées avec des vulnérabilités critiques qui peuvent être exploitées de manière fatale. À mesure que la technologie utilisée pour développer ces applications devient sophistiquée, les techniques des attaquants le deviennent aussi. Les attaquants n'ont plus besoin d'un accès physique aux victimes, ils peuvent attaquer plusieurs cibles en même temps et la possibilité d'être attrapés et traduits en justice est minime. Les scanners automatisés de vulnérabilités web ont été largement utilisés pour évaluer la sécurité des applications web. Ils peuvent améliorer l'efficacité du scan des vulnérabilités par rapport à la détection manuelle traditionnelle qui est chronophage, laborieuse et inefficace. Il existe de nombreux scanners de vulnérabilités web sur Internet, mais ils n'expliquent pas l'attaque possible ni comment se prémunir contre elle. Nous avons conçu et implémenté un nouveau scanner automatisé de vulnérabilités web appelé Automated Software Security Toolkit (ASST), qui scanne le code source d'un projet web et génère un rapport des résultats avec une explication détaillée de chaque vulnérabilité possible et comment s'en protéger. Nous avons testé les performances d'ASST et comparé ses résultats avec d'autres grands scanners de vulnérabilités open source. Nos résultats montrent qu'ASST peut identifier les vulnérabilités de sécurité des logiciels web de manière plus complète et précise.
NOTE : Il est encore en développement. Veuillez signaler toute erreur que vous rencontrez.
ASST est un outil open source de scan de code source, c'est une application en ligne de commande (CLI), développée avec JavaScript (framework Node.js). Il se concentre actuellement sur les langages de programmation PHP et MySQL, mais puisque ses fonctionnalités de base sont prêtes et disponibles pour tout le monde, les programmeurs peuvent contribuer et ajouter des plugins ou extensions pour ajouter des fonctionnalités et lui permettre de scanner d'autres langages de programmation tels que Java, C#, Python, etc., ainsi que leurs frameworks. Ainsi, son infrastructure est conçue pour être enrichie par d'autres programmeurs afin de l'améliorer et de le rendre plus novateur. À notre connaissance, ASST est le seul outil qui scanne le langage PHP conformément aux risques de sécurité des applications web du Top 10 de l'OWASP.
Lorsqu'ASST scanne un projet, il vérifie chaque fichier ligne par ligne à la recherche de vulnérabilités de sécurité. Si une vulnérabilité est détectée, il alertera dans le rapport à quelle ligne dans quel fichier une vulnérabilité a été détectée et un lien "Cliquez ici" pour expliquer l'attaque et comment s'en protéger. Les résultats d'ASST sont affichés sous forme de rapport HTML lié à des fichiers PDF pour expliquer chaque attaque et son mécanisme de protection.
ASST peut être facilement étendu pour prendre en charge d'autres langages de programmation pouvant être scannés pour des vulnérabilités. Le projet est open source, donc les programmeurs ayant une expertise en cybersécurité peuvent contribuer ou forker la boîte à outils et ajouter des fonctionnalités. D'autres langages de programmation tels que Python, C#, Java ou Node.js lui-même peuvent être ajoutés pour être scannés pour des vulnérabilités en tant que code serveur backend.
Si vous êtes un développeur expérimenté en sécurité, vous pouvez contribuer à améliorer cette version actuelle, ou contribuer à ajouter de nouveaux langages de programmation à scanner. Mais il y a des règles à suivre lors de l'amélioration :
Pour qu'ASST fonctionne à 100%, vous devrez installer :
Vidéo complète sur la façon d'exécuter ASST sur Windows : https://youtu.be/FKxDa3zYz1E
Vous pouvez télécharger XAMPP pour Windows depuis ici : https://www.apachefriends.org/download.html choisissez la version de PHP qui correspond à votre projet, si vous ne savez pas quelle version choisir, prenez simplement la première pour Windows.
Après avoir téléchargé et installé XAMPP (Suivant, Suivant, Suivant, Terminer), exécutez le panneau de contrôle XAMPP, vous pouvez taper XAMPP dans le champ de recherche du menu Démarrer, vous le verrez, exécutez-le, à côté des étiquettes Apache et MySQL, appuyez sur Démarrer (deux boutons).
Placez le dossier de votre projet dans htdocs : par défaut : "C:\xampp\htdocs\YourProjectFolderName"
Ouvrez le navigateur, tapez : localhost/phpmyadmin, créez une base de données vide, importez votre fichier project_database.sql dedans, ouvrez le dossier de votre projet et modifiez le fichier de configuration de votre projet pour vous connecter au localhost de MySQL : les configurations par défaut sont : host: "localhost" ou "127.0.0.1", username: "root", password: "" (chaîne vide), database name: "dbname_you_chose_in_phpmyadmin"
Vous devez télécharger une version spécifique de Node.js pour Windows depuis ici : https://nodejs.org/en/blog/release/v12.13.0/ sélectionnez (Windows 64-bit Installer), puis téléchargez, Suivant, Suivant, Suivant et Terminer.
Nous ne suivons pas les mises à jour de nodejs chaque mois, donc si vous souhaitez le tester par vous-même, vous pouvez télécharger la dernière version de node.js depuis ici : https://nodejs.org/en/download/ choisissez (Windows Installer (.msi)), téléchargez et exécutez-le, Suivant, Suivant, Suivant et Terminer.
Téléchargez et extrayez le projet ASST depuis cette page github, renommez le dossier en "ASST" uniquement, pas "ASST-main", déplacez le dossier ASST à côté de votre projet web pour le scanner, par défaut : "C:\xampp\htdocs\ASST"
Double-cliquez sur ASST.bat pour l'exécuter. S'il est bloqué par Windows Defender Smart Screen, autorisez-le en cliquant sur Plus d'informations puis Exécuter ou Exécuter quand même, ou vous pouvez simplement l'exécuter à l'aide de la commande CMD.
Exécutez cette commande une fois pour installer les node_modules pour ce projet :
$ cd C:\xampp\htdocs\ASST && npm install
commande CMD par défaut pour exécuter ASST :
$ node C:\xampp\htdocs\ASST\main.js
Vidéo complète sur la façon d'exécuter ASST sur Ubuntu : https://youtu.be/XrAB8_BHxfo
En utilisant un navigateur web, ouvrez ce lien : https://www.apachefriends.org/download.html et cherchez la section "XAMPP for Linux", choisissez la version de PHP qui convient à votre projet et téléchargez-la, si vous ne savez pas quelle version choisir, prenez simplement la première. Ou vous pouvez télécharger XAMPP via le terminal en utilisant la commande (outil) "wget", mais vous devrez avoir et connaître l'URL correcte de la version à télécharger.
Maintenant, travaillez dans le terminal :
$ cd Downloads
$ ls
Vous devriez voir le fichier d'installation de XAMPP que vous avez téléchargé.
$ sudo chmod +x xampp-linux-*
$ sudo ./xampp-linux-*
Attendez une seconde que l'installation s'exécute, puis suivez les instructions. Après avoir téléchargé et installé XAMPP, exécutez-le.
$ sudo /opt/lampp/lampp start
Placez le dossier de votre projet dans htdocs : par défaut : "/opt/lampp/htdocs/YourProjectFolderName"
Ouvrez le navigateur, tapez : localhost/phpmyadmin, créez une base de données vide, importez votre fichier project_database.sql dedans, ouvrez le dossier de votre projet et modifiez le fichier de configuration de votre projet pour vous connecter au localhost de MySQL : les configurations par défaut sont : host: "localhost" ou "127.0.0.1", username: "root", password: "" (chaîne vide), database name: "dbname_you_chose_in_phpmyadmin"
$ sudo apt-get install nodejs -y
$ sudo apt-get install npm -y
Vous devez définir une version spécifique de Node.js pour qu'ASST fonctionne sans aucun problème.
$ sudo npm install n -g
$ sudo n 12.13.0
Nous ne suivons pas les mises à jour de nodejs chaque mois, donc si vous souhaitez le tester par vous-même, vous pouvez ignorer les deux dernières commandes d'installation de "n" via npm.
Téléchargez et extrayez le projet ASST depuis cette page github, en utilisant un navigateur, wget ou git, renommez le dossier en "ASST" uniquement, pas "ASST-main", déplacez le dossier ASST à côté de votre projet web pour le scanner, par défaut : "/opt/lampp/htdocs/ASST"
Exécutez cette commande une fois pour installer les node_modules pour ce projet :
$ cd /opt/lampp/htdocs/ASST && sudo npm install
Pour exécuter ASST, commande par défaut :
$ sudo node /opt/lampp/htdocs/ASST/main.js
Vidéo complète sur la façon d'exécuter ASST sur MacOSX : https://youtu.be/IThRZEQVa7M
En utilisant un navigateur web, ouvrez ce lien : https://www.apachefriends.org/download.html et cherchez la section "XAMPP for OSX", choisissez la version de PHP qui convient à votre projet et téléchargez-la, si vous ne savez pas quelle version choisir, prenez simplement la première.
Ouvrez le dossier Téléchargements et double-cliquez sur le fichier xampp-osx-.dmg que vous avez téléchargé. Ensuite, installez : Suivant, Suivant, Suivant, Terminer.
Après l'installation, ouvrez le dossier Applications en utilisant le Finder et ouvrez le dossier XAMPP, cliquez sur manager-osx.app pour ouvrir le panneau de contrôle XAMPP, cliquez sur l'onglet Manage Servers puis sur le bouton Start All.
Placez le dossier de votre projet dans htdocs :
Ouvrez le navigateur, tapez : localhost/phpmyadmin, créez une base de données vide, importez votre fichier project_database.sql dedans, ouvrez le dossier de votre projet et modifiez le fichier de configuration de votre projet pour vous connecter au localhost de MySQL : les configurations par défaut sont : host: "localhost" ou "127.0.0.1", username: "root", password: "" (chaîne vide), database name: "dbname_you_chose_in_phpmyadmin"
Il existe plusieurs façons de télécharger et d'installer Node.js sur MacOSX spécifiées ici : https://nodejs.org/en/download/package-manager/#macos
Nous avons utilisé : brew (système de paquets), ouvrez le Terminal :
$ sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
$ sudo brew install node
Vous devez définir une version spécifique de Node.js pour qu'ASST fonctionne sans aucun problème.
$ sudo npm install n -g
$ sudo n 12.13.0
Nous ne suivons pas les mises à jour de nodejs chaque mois, donc si vous souhaitez le tester par vous-même, vous pouvez ignorer les deux dernières commandes d'installation de "n" via npm.
Téléchargez et extrayez le projet ASST depuis cette page github, en utilisant un navigateur ou git, renommez le dossier en "ASST" uniquement, pas "ASST-main", déplacez le dossier ASST à côté de votre projet web pour le scanner, par défaut : "/Applications/XAMPP/htdocs/ASST"
Exécutez cette commande une fois pour installer les node_modules pour ce projet :
$ cd /Applications/XAMPP/htdocs/ASST && sudo npm install
Pour exécuter ASST, commande par défaut :
$ sudo node /Applications/XAMPP/htdocs/ASST/main.js
Remerciements particuliers à :
Pour avoir rendu cette boîte à outils possible en fournissant leurs conseils et leur aide.