
Erkennung von SQL-Injektionen: Sicherheitstipps für Ihre Datenbanken
Die Erkennung von SQL-Injektionen ist der Filtration von E-Mail-Spam recht ähnlich. Die Probleme, die Entwickler solcher Systeme lösen müssen, sind ebenfalls ähnlich.
Werfen wir also einen Blick auf die von E-Mail-Servern verwendeten Spamfiltermethoden:
- Analyse des Nachrichtentextes mit verschiedenen Algorithmen (beispielsweise Bayes’sches Filtern).
- Inhaltsfiltern. Dazu gehört die Suche nach Spammerkennungszeichen wie Links, Produktangeboten, Schlüsselwörtern usw. im Nachrichtentext.
- Filtern basierend auf statistischen Informationen über Entscheidungen, die von anderen E-Mail-Server-Benutzern getroffen wurden (Nachsehen, ob sie ähnliche Nachrichten als Spam markiert haben).
- Verwendung von Informationen über die Glaubwürdigkeit des Mailservers, die von anderen Diensten erhalten wurden.
Jeder dieser Tests ist in Untertests unterteilt. Jeder Untertest bekommt eine bestimmte „Punktzahl“ zugewiesen. Wenn die eingehende Nachricht den Untertest besteht, werden ihre Punkte zu der Gesamtpunktzahl des Tests addiert. Die Punktzahl kann sowohl positiv als auch negativ sein. Wenn die Prüfung einer Nachricht abgeschlossen ist, summiert das Anti-Spam-System die Gesamtpunktzahl. Je höher die Punktzahl, desto wahrscheinlicher ist es, dass die getestete Nachricht Spam enthält.
Zum Beispiel bietet der Spam-Assassin-Spam-Filter eine anpassbare Schwelle. Wenn die Gesamtpunktzahl den Schwellenwert überschreitet, wird die Nachricht als Spam betrachtet. Normalerweise wird der Schwellenwert so konfiguriert, dass es nicht ausreicht, dass eine Nachricht einen Test besteht, um den Schwellenwert zu überschreiten (als Spam gekennzeichnet zu werden). Die Funktionsprinzipien anderer Filter ähneln denen von Spam Assassin.
Keine Spamfilter-Methode allein garantiert vollständigen Schutz vor unerwünschten Nachrichten sowie vor Fehlalarmen. Daher wird in der Praxis eine Kombination verschiedener Methoden verwendet. Die Konfiguration der Gesamtschwelle und der „Kosten“ der Untertests muss den „Misstrauensgrad“ des Filters bestimmen.
Das Filtern von SQL-Injektionen funktioniert fast genauso wie Spam-Filter. Auf der DAF-Ebene stoßen Sie in den meisten Fällen auf gültigen SQL-Code, deshalb ist es notwendig, indirekte Anzeichen zu verwenden, um festzustellen, ob die Abfrage SQL-injiziert ist.
DataSunrise kann SQL-Injektionen anhand der folgenden Anzeichen erkennen.
- Anzahl ungültiger Abfragen, die von einem bestimmten Host stammen oder von einem bestimmten Client ausgegeben werden.
- Vorhandensein konstanter Bedingungen in der Abfrage, die immer TRUE oder FALSE zurückgeben.
- Ob Kommentare im Abfragekörper vorhanden sind und ob diese Kommentare (sie) SQL-Abfrageteile enthalten.
- OR- und UNION-Blöcke im Abfragecode.
- Andere Bedingungen.
Die Fähigkeit, jedes Anzeichen allein zu erkennen, reicht nicht aus, um einen SQL-Injektionsangriff zu erkennen, aber die Fähigkeit, all diese Anzeichen in einer Abfrage zu erkennen, ermöglicht es DataSunrise, einen wesentlichen Schutz zu gewährleisten, wie im demonstrativen Beispiel von wie DataSunrise vor SQL-Injektionen schützt gezeigt wird.
Und schließlich sei erwähnt, dass ein vollständiger Schutz vor SQL-Injektionsangriffen nur durch die Verwendung eines qualitativ hochwertigen und ordnungsgemäß getesteten Anwendungsservers erreicht werden kann.