Méthodes de Détection des Injections SQL
La détection des injections SQL est quelque peu similaire au filtrage de spam d’email. Les problèmes que les développeurs de tels systèmes doivent résoudre sont également similaires.
Voyons donc les méthodes de filtrage de spam utilisées par les serveurs de messagerie :
- Analyse du texte des messages avec divers algorithmes (le filtrage bayésien par exemple).
- Filtrage de contenu. Cela inclut la recherche de signes de spam tels que des liens, des offres de produits, des mots-clés, etc. dans le texte des messages.
- Filtrage basé sur des informations statistiques concernant les décisions prises par d’autres utilisateurs du serveur de messagerie (vérification s’ils ont marqué des messages similaires comme spam).
- Utilisation d’informations sur la crédibilité du serveur de messagerie obtenues d’autres services.
Chacun de ces tests est divisé en sous-tests. Un certain “coût” (en points) est attribué à chaque sous-test. Si le message entrant passe le sous-test, ses points sont ajoutés au score global du test. Le score peut être aussi bien positif que négatif. Lorsque le test d’un message est terminé, le système anti-spam additionne le score global. Plus le score est élevé, plus la probabilité que le message testé contienne du spam est grande.
Par exemple, le filtre de spam Spam Assassin propose un seuil personnalisable. Si le score global du test dépasse le seuil, le message est considéré comme spam. En général, le seuil est configuré de telle manière qu’il ne suffit pas qu’un message passe un seul test pour dépasser la valeur du seuil (être marqué comme spam). Les principes de fonctionnement d’autres filtres sont similaires à ceux de Spam Assassin.
Aucune méthode de filtrage de spam seule ne garantit une protection complète contre les messages indésirables ainsi que contre les fausses alertes. C’est pourquoi en pratique une combinaison de diverses méthodes est utilisée. La configuration du seuil global et du “coût” des sous-tests permet de déterminer le “niveau de suspicion” du filtre.
Le filtrage des injections SQL fonctionne presque de la même manière que les filtres de spam. Au niveau DAF, dans la plupart des cas, vous rencontrez un code SQL valide, c’est pourquoi il est nécessaire d’utiliser des signes indirects pour déterminer si la requête est injectée en SQL.
DataSunrise peut détecter les injections SQL en fonction des signes suivants.
- Nombre de requêtes invalides provenant d’un hôte ou émises par un client spécifique.
- Présence de conditions constantes dans la requête qui retournent toujours VRAI ou FAUX.
- Présence de commentaires dans le corps de la requête et contenu de ces commentaires (contiennent-ils des parties de requêtes SQL).
- Blocs OR et UNION dans le code de la requête.
- Autres conditions.
La capacité de détecter chaque signe individuellement ne suffit pas pour reconnaître une attaque par injection SQL, mais la capacité de repérer tous ces signes dans une requête permet à DataSunrise d’établir une protection essentielle, comme le montre l’exemple démonstratif de comment DataSunrise protège contre les injections SQL.
Enfin, il convient de mentionner que la protection complète contre les attaques par injection SQL ne peut être obtenue qu’en utilisant un serveur d’application de qualité et correctement testé.
Suivant