Værktøjet Microsoft Source Code Analyzer for SQL Injection, som kan bruges til at finde ASP-kode, der kan være modtagelig over for SQL-injektion, er nu tilgængeligt

Oversættelser af artikler Oversættelser af artikler
Artikel-id: 954476 - Få vist de produkter, som denne artikel refererer til.
Udvid alle | Skjul alle

På denne side

INTRODUKTION

Denne artikel indeholder en beskrivelse af værktøjet Microsoft Source Code Analyzer for SQL Injection. Du kan bruge dette værktøj til at analysere, om statisk ASP-kode kan være modtagelig over for SQL-injektion.

Yderligere Information

Microsoft Source Code Analyzer for SQL Injection er et værktøj til analyse af statisk kode, som du kan bruge til at finde ASP-kode (Active Server Pages), der kan være modtagelig over for SQL-injektion. Denne artikel indeholder en beskrivelse af, hvordan du bruger værktøjet, hvilke advarsler der vises i værktøjet, samt de begrænsninger, der er forbundet med værktøjet. Du kan finde flere oplysninger i Vigtigt-filen.

Forudsætninger

Dette kommandolinjeværktøj kræver følgende software:
  • .NET Framework 3.0

Risiko for SQL-injektion i forbindelse med ASP-kode

Hvis der oprettes dynamiske SQL-sætninger uden datagodkendelse på baggrund af data, som brugeren har angivet via samlingen Request.Form eller Request.Querystring i ASP-kode, kan en hacker indskyde SQL-kommandoer i SQL-sætningen og derefter misbruge den. Dette kaldes også First Order SQL-injektionsrisiko.

Hvis brugerinput gemmes i en database via en ASP-side, og brugerinputtet derefter hentes fra databasen og bruges til oprettelse af dynamiske SQL-sætninger på en anden ASP-side, kan en hacker indskyde SQL-kommandoer i en SQL-sætning og derefter misbruge den. Dette kaldes også Second Order SQL-injektionsrisiko.

Du kan reducere disse sikkerhedsrisici ved at anvende parametriserede SQL-forespørgsler. Du kan finde flere oplysninger om risikoen for SQL-injektion i ASP og om, hvilke metoder du kan anvende til at fjerne denne risiko, på følgende Microsoft-websted:
http://msdn.microsoft.com/en-us/library/cc676512.aspx
Microsoft Source Code Analyzer for SQL Injection er et værktøj, som du kan bruge til at finde nogle af disse sikkerhedsrisici automatisk.

Anvendelse

Dette afsnit indeholder en beskrivelse af, hvordan du bruger værktøjet.

Syntaks

Værktøjet bruger følgende syntaks:
msscasi_asp.exe [/nologo] [/quiet] [/suppress=num;..;num] [/GlobalAsaPath=path] [/IncludePaths=path;..;path] /Input=file.asp

Beskrivelse

Værktøjet analyserer ASP-kode for eventuel modtagelighed over for SQL-injektion.

Parameterliste

Skjul tabellenUdvid tabellen
Parameter Indstilling Beskrivelse
/GlobalAsaPathstiViser stien til filen Global.asa.
/IncludePathsstierViser semikolonseparerede stier til filer, som er medtaget ved hjælp af virtuelle stier.
/inputasp-filViser den absolutte sti til den ASP-fil, der skal analyseres.
/suppress warnings Der rapporteres ikke nogen advarsler.
/nologo Logoet for værktøjet vises ikke.
/quietDer vises ingen meddelelser om parserfejl. Når du bruger parametrene /nologo og /quiet, vises der udelukkende meddelelser med advarsler.

Eksempler

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"

Gennemgang af resultatet

Værktøjet opretter følgende advarsler:
Skjul tabellenUdvid tabellen
AdvarselBeskrivelse
80400Potentiel risiko for SQL-injektion via data, som læses fra Request-objektet uden nogen form for godkendelse af inputtet. Disse advarsler er efter al sandsynlighed udtryk for fejl, som skal rettes.
80406Potentiel risiko for SQL-injektion via data, som læses fra Request-objektet, hvor inputtet sendes via visse ukendte funktionskald, som muligvis udfører datagodkendelse. Hvis der ikke udføres nogen form for datagodkendelse i funktionskaldet, er der efter al sandsynlighed tale om fejl. Ellers er der tale om falske positiver.
80403Potentiel risiko for SQL-injektion via data, som kommer fra en Back-End-server. Hvis dataene er slutbrugerstyrede via et andet websted, er der efter al sandsynlighed tale om fejl. Hvis der er tale om data, der er tillid til, er der muligvis ikke tale om fejl. Det er dog fortsat en god ide at anvende parametriserede forespørgsler som led i en dybtgående forsvarsstrategi.
80407Potentiel risiko for SQL-injektion via data, som kommer fra en Back-End-server, og som sendes via visse ukendte funktionskald. Hvis dataene er slutbrugerstyrede via andre websteder, og der ikke udføres nogen datagodkendelse i forbindelse med dataene, er der efter al sandsynlighed tale om fejl.
80420Potentiel risiko for SQL-injektion via funktionsparametre. Disse advarsler oprettes på funktionsniveau. Hvis parameterværdierne i funktionerne kommer fra kilder, der er tillid til, er der derfor tale om falske positiver. Hvis parameterværdierne er slutbrugerstyrede, er der efter al sandsynlighed tale om fejl. Du kan undersøge, om slutbrugere har adgang til koden, ved at anvende annotationen __sql_pre_validated på funktionsparametrene.
80421Potentiel risiko for SQL-injektion via funktionsparametre, som sendes via ukendte funktionskald, der muligvis udfører datagodkendelse. Du kan undersøge, om slutbrugere har adgang til koden, ved at anvende annotationen __sql_pre_validated på funktionsparametrene og __sql_validate på godkendelsesfunktionen.
Af alle de advarsler, som værktøjet opretter, er der størst sandsynlighed for, at der er tale om reelle fejl i forbindelse med advarslen 80400. ASP-webudviklere skal rette disse fejl ved hjælp af parametriserede forespørgsler. Du kan finde flere oplysninger om, hvordan du anvender parametriserede SQL-forespørgsler i ASP-kode, på følgende Microsoft-websted:
http://msdn.microsoft.com/en-us/library/cc676512.aspx

Begrænsninger

Værktøjet har følgende kendte begrænsninger:
  • Værktøjet er kun i stand til at forstå ASP-kode, som er skrevet i VBScript. Det er ikke på nuværende tidspunkt i stand til at analysere eventuel kode på serversiden, som er skrevet i et andet sprog, f.eks. Jscript.
  • Som et led i udviklingen af værktøjet har vi udviklet en ny ASP-parser. Denne parser dækker dog ikke alle ASP-konstruktioner. Du får derfor muligvis vist meddelelser om parserfejl.

Referencer

Du kan hente værktøjet Microsoft Source Code Analyzer for SQL Injection på følgende Microsoft-websted:
http://www.microsoft.com/downloads/details.aspx?FamilyId=58A7C46E-A599-4FCB-9AB4-A4334146B6BA
Du kan finde flere oplysninger om forskellige bedste fremgangsmåder på følgende Microsoft-websted:
http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx
Du kan finde flere oplysninger om forebyggelse af SQL-injektioner i ASP på følgende Microsoft-websted:
http://msdn.microsoft.com/en-us/library/cc676512.aspx
Du kan finde flere oplysninger om hackerangreb med SQL-injektion på følgende Microsoft-websted:
http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx
Du kan finde flere oplysninger om værktøjet på følgende Microsoft-websted:
http://blogs.msdn.com/sqlsecurity
Du kan deltage i diskussioner om værktøjet via MSDN SQL Security-forummet, som du kan få adgang til på følgende Microsoft-websted:
http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=92&SiteID=1

Egenskaber

Artikel-id: 954476 - Seneste redigering: 27. juni 2008 - Redigering: 1.0
Oplysningerne i denne artikel gælder:
  • Microsoft ASP.NET 2.0
Nøgleord: 
atdownload kbexpertiseadvanced kbcode kbexpertiseinter kbinfo kbsecadvisory kbsecurity kbsecvulnerability KB954476

Send feedback

 

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