
Détection des Injections SQL : Conseils de Sécurité pour Vos Bases de Données
La détection des injections SQL est quelque peu similaire à la filtration du spam des emails. Les problèmes que les développeurs de ces systèmes doivent résoudre sont également similaires.
Alors regardons les méthodes de filtration du spam utilisées par les serveurs de messagerie :
- Analyser le texte des messages avec divers algorithmes (par exemple, le filtrage bayésien).
- Filtrage du 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 (en vérifiant s’ils ont marqué des messages similaires comme spam).
- Utiliser les informations sur la crédibilité du serveur de messagerie reçues 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 anti-spam Spam Assassin dispose d’un seuil personnalisable. Si le score global du test dépasse le seuil, le message est considéré comme du spam. En général, le seuil est configuré de telle manière qu’il n’est pas suffisant pour qu’un message passe un seul test pour dépasser la valeur seuil (pour être marqué comme spam). Les principes de fonctionnement d’autres filtres sont similaires à ceux de Spam Assassin.
Aucune méthode de filtrage anti-spam seule ne garantit une protection totale contre les messages indésirables ni contre les fausses alertes. C’est pourquoi, en pratique, une combinaison de diverses méthodes est utilisée. Configurer le seuil global et le « coût » des sous-tests permet de déterminer le « niveau de suspicion » du filtre.
Le filtrage des injections SQL fonctionne de manière presque similaire aux filtres anti-spam. Au niveau DAF, dans la plupart des cas, vous rencontrez du code SQL valide, c’est pourquoi il est nécessaire d’utiliser des signes indirects pour déterminer si la requête est une injection SQL.
DataSunrise peut détecter les injections SQL en se basant sur les signes suivants.
- Nombre de requêtes invalides provenant d’un certain hôte ou émises par un certain client.
- 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 si ces commentaires contiennent des parties de la requête SQL.
- Blocs OR et UNION dans le code de la requête.
- Autres conditions.
La capacité de détecter chaque signe seul n’est pas suffisante 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 des injections SQL.
Enfin, il convient de mentionner qu’une 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
