Seit Ende Juni gibt es eine Hilfe für Entwickler und IT-Administratoren gegen SQL Injection in Websites vom Typ classic asp und zwar den Microsoft Source Code Analyzer for SQL Injection - June 2008 CTP (siehe auch Beitrag Totgesagte leben länger - so auch SQL-Injection).

Das Tool benötigt das Microsoft .Net 3.0 Framework und ist ein Command line-Utility. Nach Entpacken des Download-Pakets empfiehlt sich daher ein erster Blick in Readme.html. Um eine einzelne asp-Seite zu prüfen, wird diese einfach mit dem /Input-Parameter aufgerufen:

msscasi_asp.exe /Input=C:\wwwroot\myweb\login.asp

Das Ergebnis könnte dann beispielsweise so aussehen:

Microsoft (R) Source Code Analyzer for SQL Injection Version 1.3.30601.30622
Copyright (C) Microsoft Corporation.  All rights reserved.

RESULT has no type
C:\wwwroot\myweb\shopfunc.asp(600) : warning C80420: Unvalidated fun
ction parameter possibly executed. Reported by Microsoft (R) Source Code Analyzer for SQL Injection on tracked object SQL (created as THEGUID`591).

Path summary:
- {THEGUID}[THEGUID`591 : string_input] created on 'Parameter' (line 591)
- {THEGUID}[THEGUID`591 : string_input] to {SQL, THEGUID}[THEGUID`591 : string_
input] on 'Transfer' (line 599)
- {SQL, THEGUID}[THEGUID`591 : string_input] to {SQL, THEGUID}[THEGUID`591 : $e
rror] on 'Execute' (line 600): Lines: 591, 596, 599, 600

C:\wwwroot\myweb\shopfunc.asp(833) : warning C80420: Unvalidated fun
ction parameter possibly executed. Reported by Microsoft (R) Source Code Analyzer for SQL Injection on tracked object SQL (created as TABID`825).
There are other instances of this error:
Unvalidated function parameter possibly executed. Reported by Microsoft (R) Source Code Analyzer for SQL Injection on tracked object SQL (created as TABID`825).
(line 843) ...etc.

In dieser geprüften Seite werden also einige Meldungen ausgeworfen - Handlungsbedarf für den Entwickler.

Das Tool kennt sechs Fehler: 80400, 80403, 80406, 80407, 80420 or 80421, wobei 80400-Warnungen die höchste Priorität besitzen und sofort behoben werden sollten. Wenn keine Meldungen ausgegeben werden, ist die Seite in Ordnung:

msscasi_asp.exe /Input=C:\wwwroot\myweb\datefunc.asp

Microsoft (R) Source Code Analyzer for SQL Injection Version 1.3.30601.30622
Copyright (C) Microsoft Corporation.  All rights reserved.

Weitere Schritte (und wie ganze Websites geprüft werden können) finden Sie in Getting started with Microsoft Source Code Analyzer for SQL Injection. Das Tool ist somit eine einfache Hilfe für den Security-Check von ASP-Websites.

Beitrag von Toni Pohl