╚ disponibile lo strumento Microsoft Source Code Analyzer for SQL Injection per individuare le vulnerabilitÓ agli attacchi di tipo SQL injection nel codice ASP

Traduzione articoli Traduzione articoli
Identificativo articolo: 954476 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

INTRODUZIONE

In questo articolo viene descritto lo strumento di analisi Microsoft Source Code Analyzer for SQL Injection. Questo strumento di analisi statica del codice pu˛ essere utilizzato per individuare le vulnerabilitÓ che consentono attacchi di tipo SQL injection nel codice ASP.

Informazioni

Lo strumento di analisi statica del codice Microsoft Source Code Analyzer for SQL Injection facilita l'individuazione delle vulnerabilitÓ di tipo SQL injection nel codice ASP (Active Server Pages). In questo articolo viene descritto come utilizzare lo strumento, gli avvisi da esso generati e le relative limitazioni. Per ulteriori informazioni, fare riferimento al documento Readme relativo allo strumento.

Prerequisiti

Questo strumento da riga di comando richiede il prodotto software riportato di seguito:
  • .NET Framework 3.0

Problemi di tipo SQL injection nel codice ASP

Se i dati forniti dall'utente dalla raccolta Request.Form o Request.Querystring nel codice ASP vengono utilizzati per creare istruzioni SQL dinamiche senza alcuna convalida dei dati, l'autore di un attacco potrebbe introdurre comandi SQL in un'istruzione SQL e utilizzarla quindi in modo improprio. Questa vulnerabilitÓ Ŕ comunemente nota come attacco intrusivo di tipo SQL injection di primo livello.

Se l'input dell'utente viene archiviato in un database utilizzando una pagina ASP, quindi viene recuperato dal database e utilizzato per creare istruzioni SQL dinamiche in una pagina ASP diversa, l'autore di un attacco pu˛ introdurre comandi SQL in un'istruzione SQL e utilizzarla quindi in modo improprio. Questa vulnerabilitÓ Ŕ comunemente nota come attacco intrusivo di tipo SQL injection di secondo livello.

Per ridurre tali vulnerabilitÓ, Ŕ preferibile utilizzare query SQL con parametri. Per ulteriori informazioni sulle vulnerabilitÓ di tipo SQL injection in ASP e sui metodi per limitarle, visitare il seguente sito Web Microsoft (informazioni in lingua inglese):
http://msdn.microsoft.com/en-us/library/cc676512.aspx
Lo strumento Microsoft Source Code Analyzer for SQL Injection consente di individuare automaticamente alcuni di questi problemi.

Utilizzo

In questa sezione viene descritto come utilizzare lo strumento.

Sintassi

Nello strumento viene utilizzata la seguente sintassi:
msscasi_asp.exe [/nologo] [/quiet] [/suppress=num;..;num] [/GlobalAsaPath=path] [/IncludePaths=path;..;path] /Input=file.asp

Descrizione

Lo strumento consente di analizzare il codice ASP per individuare le vulnerabilitÓ di tipo SQL injection.

Elenco dei parametri

Riduci questa tabellaEspandi questa tabella
Parametro Opzione Descrizione
/GlobalAsaPathpathVisualizza il percorso del file Global.asa.
/IncludePathspathsVisualizza i percorsi separati da punto e virgola per risolvere i file inclusi mediante percorsi virtuali.
/inputfile aspVisualizza il percorso assoluto del file ASP che deve essere analizzato.
/suppress warnings Gli avvisi non vengono visualizzati.
/nologo Il logo dello strumento non viene visualizzato.
/quietGli errori di analisi non vengono visualizzati. Quando si utilizzano le opzioni /nologo e /quiet, vengono visualizzati solo i messaggi di avviso.

Esempi

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"

Revisione dell'output

Lo strumento genera i seguenti avvisi:
Riduci questa tabellaEspandi questa tabella
AvvisoDescrizione
80400Possibile vulnerabilitÓ di tipo SQL injection tramite i dati che vengono letti dall'oggetto Request senza convalida dell'input. Questi avvisi si riferiscono molto probabilmente a bug che Ŕ necessario correggere.
80406Possibile vulnerabilitÓ di tipo SQL injection tramite i dati che vengono letti dall'oggetto Request, in cui l'input viene passato attraverso chiamate di funzione sconosciute che potrebbero eseguire la convalida dei dati. Se all'interno della chiamata di funzione non viene eseguita alcuna convalida dei dati, si tratta molto probabilmente di bug. In caso contrario, si tratta di falsi positivi.
80403Possibile vulnerabilitÓ di tipo SQL injection tramite i dati provenienti da un server back-end. Se i dati sono controllati da un utente finale tramite un altro sito Web, si tratta molto probabilmente di bug. Se, tuttavia, i dati sono sicuramente attendibili, potrebbe non trattarsi di bug. ╚ comunque sempre consigliabile parametrizzare queste query nell'ambito di una strategia di difesa incisiva.
80407Possibile vulnerabilitÓ di tipo SQL injection tramite i dati provenienti da un server back-end e passati attraverso chiamate di funzione sconosciute. Se i dati sono controllati da un utente finale tramite un altro sito Web e non sono stati sottoposti a convalida, si tratta molto probabilmente di bug.
80420Possibile vulnerabilitÓ di tipo SQL injection tramite parametri di funzione. Questi avvisi vengono generati nell'ambito della funzione. Se, tuttavia, i valori dei parametri di funzione provengono da origini attendibili, si tratta di falsi positivi. Se i valori dei parametri sono controllati da utenti finali, si tratta molto probabilmente di bug. Per rilevare se utenti finali possono accedere a questo codice, Ŕ possibile utilizzare l'annotazione __sql_pre_validated sui parametri di funzione.
80421Possibile vulnerabilitÓ di tipo SQL injection tramite parametri di funzione, se questi vengono passati attraverso chiamate di funzione sconosciute che potrebbero eseguire la convalida dei dati. Per rilevare se utenti finali possono accedere a questo codice, Ŕ possibile utilizzare l'annotazione __sql_pre_validated sui parametri di funzione e __sql_validate sulla funzione di convalida.
Fra tutti gli avvisi generati dallo strumento, l'avviso 80400 Ŕ quello che pi¨ probabilmente indica la presenza di bug effettivi. Per correggere questi bug, si consiglia agli sviluppatori di Web ASP di utilizzare query con parametri. Per ulteriori informazioni sull'utilizzo di query SQL con parametri nel codice ASP, visitare il seguente sito Web Microsoft (informazioni in lingua inglese):
http://msdn.microsoft.com/en-us/library/cc676512.aspx

Limitazioni

Lo strumento presenta le seguenti limitazioni note:
  • Lo strumento riconosce solo codice ASP scritto in VBScript. Attualmente non Ŕ in grado di analizzare codice sul lato server scritto in altri linguaggi, ad esempio Jscript.
  • Nell'ambito del processo di sviluppo di questo strumento Ŕ stato sviluppato un nuovo parser ASP, che tuttavia non supporta tutti i costrutti ASP. ╚ quindi possibile che vengano visualizzati errori di analisi.

Riferimenti

Per scaricare lo strumento Microsoft Source Code Analyzer for SQL Injection, visitare il seguente sito Web Microsoft (informazioni in lingua inglese)
http://www.microsoft.com/downloads/details.aspx?FamilyId=58A7C46E-A599-4FCB-9AB4-A4334146B6BA
Per ulteriori informazioni sulla documentazione relativa a varie procedure consigliate, visitare il seguente sito Web Microsoft (informazioni in lingua inglese):
http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx
Per ulteriori informazioni sulla prevenzione di attacchi di tipo SQL injection in ASP, visitare il seguente sito Web Microsoft (informazioni in lingua inglese):
http://msdn.microsoft.com/en-us/library/cc676512.aspx
Per ulteriori informazioni sugli attacchi di tipo SQL injection, visitare il seguente sito Web Microsoft (informazioni in lingua inglese):
http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx
Per ulteriori informazioni su questo strumento, visitare il seguente sito Web Microsoft (informazioni in lingua inglese):
http://blogs.msdn.com/sqlsecurity
Per una discussione su questo strumento nel forum di MSDN relativo alla protezione di SQL Server, visitare il seguente sito Web Microsoft (informazioni in lingua inglese):
http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=92&SiteID=1

ProprietÓ

Identificativo articolo: 954476 - Ultima modifica: venerdý 27 giugno 2008 - Revisione: 1.1
Le informazioni in questo articolo si applicano a:
  • Microsoft ASP.NET 2.0
Chiavi:á
atdownload kbexpertiseadvanced kbcode kbexpertiseinter kbinfo kbsecadvisory kbsecurity kbsecvulnerability KB954476
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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