Microsoft Source Code Analyzer for SQL Injection zur Ermittlung von Sicherheitsanfälligkeiten durch SQL-Injektion in ASP-Code ist verfügbar

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 954476 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
954476 The Microsoft Source Code Analyzer for SQL Injection tool is available to find SQL injection vulnerabilities in ASP code
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Einführung

Der vorliegende Artikel behandelt den Microsoft Source Code Analyzer for SQL Injection. Mithilfe dieses Tools für statische Codeanalysen lassen sich Sicherheitsanfälligkeiten durch SQL-Injektion in ASP-Code ermitteln.

Weitere Informationen

Bei dem Programm "Microsoft Source Code Analyzer for SQL Injection" handelt es sich um ein Tool für statische Codeanalysen, mit dem Sicherheitsanfälligkeiten durch die Einschleusung von SQL-Befehlen in Active Server Pages (ASP)-Code ermittelt werden können. In diesem Artikel wird beschrieben, wie das Tool zu verwenden ist, welche Warnungen es erzeugt und welche Einschränkungen für das Tool gelten. Weitere Informationen dazu finden Sie in einer Infodatei.

Voraussetzungen

Dieses Befehlszeilenprogramm erfordert die folgende Software:
  • .NET Framework 3.0

Probleme durch SQL-Injektion in ASP-Code

Falls Benutzereingaben aus den Sammlungen Request.Form oder Request.Querystring im ASP-Code dazu verwendet werden, dynamische SQL-Anweisungen ohne Datenüberprüfung zu erstellen, können Angreifer SQL-Befehle in eine SQL-Anweisung einschleusen und anschließend ausnutzen. Dies wird als Sicherheitsanfälligkeit ersten Grades durch SQL-Injektion (First Order SQL injection vulnerability) bezeichnet.

Falls bei der Speicherung von Benutzereingaben in einer Datenbank eine ASP-Seite verwendet wird und die Benutzereingaben anschließend aus der Datenbank abgerufen werden und zur Erstellung dynamischer SQL-Anweisungen auf einer anderen ASP-Seite verwendet werden, kann ein Angreifer SQL-Befehle in eine SQL-Anweisung einschleusen und diese dann ausnutzen. Dies wird als Sicherheitsanfälligkeit zweiten Grades durch SQL-Injektion (Second Order SQL injection vulnerability) bezeichnet.

Schwachstellen dieser Art lassen sich am besten durch parametrisierte SQL-Abfragen verringern. Weitere Informationen zu Sicherheitsanfälligkeiten durch SQL-Injektion in ASP und über Methoden zur Reduzierung dieser Sicherheitsanfälligkeiten finden Sie auf der folgenden Website von Microsoft:
http://msdn.microsoft.com/de-de/library/cc676512.aspx
Einige dieser Probleme werden von dem Programm "Microsoft Source Code Analyzer for SQL Injection" automatisch gefunden.

Verwendung

In diesem Abschnitt wird beschrieben, wie das Tool zu verwenden ist.

Syntax

Das Programm verwendet die folgende Syntax:
msscasi_asp.exe [/nologo] [/quiet] [/suppress=num;..;num] [/GlobalAsaPath=path] [/IncludePaths=path;..;path] /Input=file.asp

Beschreibung

Das Programm analysiert ASP-Code in Bezug auf Sicherheitsanfälligkeiten durch SQL-Injektion.

Liste der Parameter

Tabelle minimierenTabelle vergrößern
Parameter Option Beschreibung
/GlobalAsaPathpathZeigt den Pfad der Datei "Global.asa" an.
/IncludePathspathsZeigt durch Semikolon getrennte Pfade an, um die Dateien aufzulösen, auf die über virtuelle Pfade verwiesen wird.
/inputasp fileZeigt den absoluten Pfad der zu analysierenden ASP-Datei an.
/suppress warnings Unterdrückt die Ausgabe von Warnungen.
/nologo Das Programmlogo wird nicht angezeigt.
/quietParserfehler werden nicht angezeigt. Wenn Sie die Befehlszeilenoptionen /nologo und /quiet verwenden, werden nur die Warnmeldungen angezeigt.

Beispiele

MSSCASI_ASP /input="c:\source\logon.asp"
MSSCASI_ASP /GlobalAsaPath="C:\source" /input="c:\source\webitems\display.asp"
MSSCASI_ASP /GlobalAsaPath="C:\source" /input="c:\source\webitems\display.asp" /IncludePaths="C:\virtualdirectory1;C:\virtualdirectory2"
MSSCASI_ASP /input="c:\source\webitems\display.asp" /suppress="80406;80407"

Überprüfung der Ausgabe

Das Tool generiert die folgenden Warnungen:
Tabelle minimierenTabelle vergrößern
WarnungBeschreibung
80400Eventuelle Sicherheitsanfälligkeit durch SQL-Injektion über Daten, die von dem Anforderungsobjekt ohne Überprüfung der Eingabe gelesen werden. Bei diesen Warnungen handelt es sich höchstwahrscheinlich um Fehler, die korrigiert werden müssen.
80406Eventuelle Sicherheitsanfälligkeit durch SQL-Injektion über Daten, die von dem Anforderungsobjekt gelesen werden. Dabei durchläuft die Eingabe einige unbekannte Funktionsaufrufe, die möglicherweise eine Überprüfung der Daten durchführen. Falls innerhalb des Funktionsaufrufs keine Datenüberprüfung erfolgt, handelt es sich aller Wahrscheinlichkeit nach um Fehler. Anderenfalls handelt es sich um falsche Positivmeldungen.
80403Eventuelle Sicherheitsanfälligkeit durch SQL-Injektion über Daten, die von einem Back-End-Server stammen. Falls die Daten von einem Endbenutzer über eine andere Website gesteuert werden, handelt es sich aller Wahrscheinlichkeit nach um Fehler. Falls die Daten jedoch absolut vertrauenswürdig sind, muss es sich nicht um Fehler handeln. Microsoft empfiehlt, diese Abfragen dennoch als Teil einer umfassenden Sicherheitsstrategie zu parametrisieren.
80407Eventuelle Sicherheitsanfälligkeit durch SQL-Injektion über Daten, die von einem Back-End-Server stammen und einige unbekannte Funktionsaufrufe durchlaufen. Falls die Daten von einem Endbenutzer über andere Websites gesteuert werden und für diese Daten keine Überprüfung erfolgt, handelt es sich aller Wahrscheinlichkeit nach um Fehler.
80420Eventuelle Sicherheitsanfälligkeit durch SQL-Injektion über Funktionsparameter. Diese Warnungen werden im Gültigkeitsbereich von Funktionen erzeugt. Wenn die Werte der Funktionsparameter aus vertrauenswürdigen Quellen stammen, führen sie daher zu falschen Positivmeldungen. Falls die Parameterwerte von Endbenutzern gesteuert werden, handelt es sich aller Wahrscheinlichkeit nach um Fehler. Mithilfe der Anmerkung __sql_pre_validated bei den Funktionsparametern können Sie feststellen, ob Endbenutzer Zugriff auf diesen Code haben.
80421Eventuelle Sicherheitsanfälligkeit durch SQL-Injektion über Funktionsparameter, wobei die Funktionsparameter einige unbekannte Funktionsaufrufe durchlaufen, die möglicherweise eine Überprüfung der Daten ausführen. Mithilfe der Anmerkung __sql_pre_validated bei den Funktionsparametern und __sql_validate bei der Überprüfungsfunktion können Sie feststellen, ob Endbenutzer Zugriff auf diesen Code haben.
Bei den von dem Programm erzeugten Warnungen deutet die Warnung 80400 am ehesten auf tatsächliche Fehler hin. ASP-Webentwickler müssen diese Fehler mithilfe von parametrisierten Abfragen korrigieren. Weitere Informationen zur Verwendung von parametrisierten SQL-Abfragen in ASP-Code finden Sie auf folgender Website von Microsoft:
http://msdn.microsoft.com/en-us/library/cc676512.aspx

Einschränkungen

Für das Programm gelten folgende bekannte Einschränkungen:
  • Das Tool ist nur für die Analyse von ASP-Code geeignet, der mit VBScript erstellt wurde. Serverseitigen Code, der in anderen Sprachen wie beispielsweise JScript erstellt wurde, kann das Programm derzeit nicht analysieren.
  • Zusammen mit dem Programm wurde ein neuer ASP-Parser entwickelt. Da dieser Parser jedoch möglicherweise nicht für alle ASP-Konstrukte geeignet ist, werden unter Umständen einige Parserfehler angezeigt.

Informationsquellen

Sie können das Microsoft Source Code Analyzer for SQL Injection-Tool von der folgenden Microsoft-Website herunterladen:
http://www.microsoft.com/downloads/details.aspx?FamilyId=58A7C46E-A599-4FCB-9AB4-A4334146B6BA
Weitere Informationen zu Dokumentationen zu empfohlenen Vorgehensweisen finden Sie auf folgender Microsoft-Website:
http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx
Weitere Informationen zum Schutz vor SQL-Injektionen in ASP finden Sie auf folgender Microsoft-Website:
http://msdn.microsoft.com/en-us/library/cc676512.aspx
Weitere Informationen zu SQL-Injection-Angriffen finden Sie auf folgender Microsoft-Website:
http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx
Weitere Informationen zu dem Tool finden Sie auf folgender Microsoft-Website:
http://blogs.msdn.com/sqlsecurity
Besuchen Sie die folgende Website von Microsoft, wenn Sie im MSDN SQL Security-Forum über das Tool diskutieren möchten:
http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=92&SiteID=1

Eigenschaften

Artikel-ID: 954476 - Geändert am: Donnerstag, 26. Juni 2008 - Version: 1.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ASP.NET 2.0
Keywords: 
atdownload kbexpertiseadvanced kbcode kbexpertiseinter kbinfo kbsecadvisory kbsecurity kbsecvulnerability KB954476
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com