Verktøyet Microsoft Source Code Analyzer for SQL Injection er tilgjengelig for å finne sikkerhetsproblemer med SQL-innsetting i ASP-kode

Artikkeloversettelser Artikkeloversettelser
Artikkel-ID: 954476 - Vis produkter som denne artikkelen gjelder for.
Vis alt | Skjul alt

På denne siden

INNLEDNING

Denne artikkelen beskriver analyseverktøyet Microsoft Source Code Analyzer for SQL Injection. Du kan bruke dette analyseverktøyet for statisk kode for å finne sikkerhetsproblemer med SQL-innsetting i ASP-kode.

Mer informasjon

Verktøyet Microsoft Source Code Analyzer for SQL er et analyseverktøy for statisk kode som hjelper deg å finne sikkerhetsproblemer med SQL-innsetting i ASP-kode (Active Server Pages). Denne artikkelen beskriver hvordan du bruker verktøyet, advarslene som verktøyet genererer og begrensninger for verktøyet. Se Readme-filen hvis du vil ha mer informasjon.

Forutsetninger

Dette kommandolinjeverktøyet krever følgende programvare:
  • .NET Framework 3,0

Problemer med SQL-innsetting i ASP-kode

Hvis brukerangitte data fra samlingene Request.Form eller Request.Querystring i ASP-koden brukes til å konstruere dynamiske SQL-setninger uten noen datavalidering, kan en angriper sette inn SQL-kommandoer i en SQL-setning og deretter misbruke den. Dette kalles gjerne et sikkerhetsproblem av typen førstegrads SQL-innsetting (First Order SQL injection vulnerability).

Hvis brukerinndata er lagret i en database ved hjelp av én ASP-side, og brukerinndataene deretter hentes fra databasen og brukes til å konstruere dynamiske SQL-setninger i en annen ASP-side, kan en angriper sette inn SQL-kommandoer i en SQL-setning og misbruke den. Dette kalles gjerne et sikkerhetsproblem av typen andregrads SQL-innsetting (Second Order SQL injection vulnerability).

For å redusere disse sikkerhetsproblemene er det best å bruke parameteriserte SQL-spørringer. Hvis du vil ha mer informasjon om sikkerhetsproblemer med SQL-innsetting i ASP og om metoder for å redusere disse sikkerhetsproblemene, kan du gå til følgende Microsoft-webområde:
http://msdn.microsoft.com/en-us/library/cc676512.aspx
Verktøyet Microsoft Source Code Analyzer for SQL Injection hjelper deg å finne noen av disse problemene automatisk.

Bruk

Dette avsnittet beskriver hvordan du bruker verktøyet.

Syntaks

Verktøyet bruker følgende syntaks:
msscasi_asp.exe [/nologo] [/quiet] [/suppress=num;..;num] [/GlobalAsaPath=bane] [/IncludePaths=bane;..;bane] /Input=file.asp

Beskrivelse

Verktøyet analyserer ASP-kode for sikkerhetsproblemer med SQL-innsetting.

Parameterliste

Skjul denne tabellenVis denne tabellen
ParameterAlternativ Beskrivelse
/GlobalAsaPathbaneViser banen til filen Global.asa.
/IncludePathsbanerViser baner adskilt med semikolon for løsningsfiler som inkluderes ved hjelp av virtuelle baner.
/inputasp-filViser den absolutte banen til ASP-filen som må analyseres.
/suppress warnings Advarsler blir ikke rapportert.
/nologo Verktøyets logo vises ikke.
/quietAnalysefeil vises ikke. Når du bruker bryterne /nologo og /quiet, vises bare advarselsmeldingene.

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"

Gå gjennom utdataene

Verktøyet genererer følgende advarsler:
Skjul denne tabellenVis denne tabellen
AdvarselBeskrivelse
80400Mulig sikkerhetsproblem med SQL-innsetting gjennom data som leses fra Request-objektet uten noen validering av inndata. Disse advarslene er sannsynligvis programfeil som må rettes.
80406Mulig sikkerhetsproblem med SQL-innsetting gjennom data som leses fra Request-objektet der inndataene sendes via noen ukjente funksjonskall som kan utføre datavalidering. Hvis det ikke utføres noen datavalidering inne i funksjonskallet, er det sannsynlig at dette er programfeil. Ellers er dette såkalte falske positiver.
80403Mulig sikkerhetsproblem med SQL-innsetting gjennom data som kommer fra en bakserver. Hvis dataene kontrolleres av en sluttbruker via et annet nettsted, er dette sannsynligvis programfeil. Hvis derimot dataene er klarerte, er dette kanskje ikke programfeil. Det lønner seg likevel å parameterisere disse spørringene som en del av en dyptgående forsvarsstrategi.
80407Mulig sikkerhetsproblem med SQL-innsetting gjennom data som kommer fra en bakserver, og som sendes via noen ukjente funksjonskall. Hvis dataene kontrolleres av en sluttbruker via andre nettsteder, og hvis det ikke er utført noen datavalidering på disse dataene, er dette sannsynligvis programfeil.
80420Mulig sikkerhetsproblem med SQL-innsetting gjennom funksjonparametere. Disse advarslene genereres ved funksjonsomfanget. Hvis funksjonsparameterverdiene kommer fra klarerte kilder, er dette derfor falske positiver. Hvis parameterverdiene er kontrollert av sluttbrukere, er dette sannsynligvis programfeil. Du kan bruke kommentaren __sql_pre_validated på funksjonsparameterne for å oppdage om sluttbrukere kan åpne denne koden.
80421Mulig sikkerhetsproblem med SQL-innsetting gjennom funksjonsparametere, og funksjonsparameterne sendes via noen ukjente funksjonskall som kan utføre datavalidering. Du kan bruke kommentaren __sql_pre_validated på funksjonsparameterne og __sql_validate på valideringsfunksjonen for å oppdage om sluttbrukere kan åpne denne koden.
Av alle advarslene som verktøyet genererer, er 80400-advarselen den som mest sannsynlig indikerer faktiske programfeil. ASP-webutviklere må rette disse feilene ved hjelp av parameteriserte spørringer. Hvis du vil ha mer informasjon om hvordan du bruker parameteriserte SQL-spørringer i ASP-kode, kan du gå til gå til følgende Microsoft-webområde:
http://msdn.microsoft.com/en-us/library/cc676512.aspx

Begrensninger

Verktøyet har følgende kjente begrensninger:
  • Verktøyet forstår bare ASP-kode som er skrevet i VBScript. Det analyserer for øyeblikket ikke serversidekode som er skrevet på noe annet språk, for eksempel Jscript.
  • En ny ASP-parser ble utviklet som en del av utviklingsprosessen for dette verktøyet. Denne parseren dekker imidlertid kanskje ikke alle ASP-konstruksjoner. Derfor kan det forekomme enkelte parserfeil.

Referanser

Hvis du vil laste ned verktøyet Microsoft Source Code Analyzer for SQL Injection, kan du gå til følgende Microsoft-webområde:
http://www.microsoft.com/downloads/details.aspx?FamilyId=58A7C46E-A599-4FCB-9AB4-A4334146B6BA
Hvis du vil ha mer informasjon om diverse dokumentasjon om beste praksis, kan du gå til følgende Microsoft-webområde:
http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx
Hvis du vil ha mer informasjon om hindring av SQL-innsettinger i ASP, kan du gå til følgende Microsoft-webområde:
http://msdn.microsoft.com/en-us/library/cc676512.aspx
Hvis du vil ha mer informasjon om angrep ved SQL-innsetting, kan du gå til følgende Microsoft-webområde:
http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx
Hvis du vil ha mer informasjon om verktøyet, går du til følgende webområde for Microsoft:
http://blogs.msdn.com/sqlsecurity
Gå til følgende Microsoft-webområde hvis du vil diskutere verktøyet i MSDN-forumet for SQL-sikkerhet:
http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=92&SiteID=1

Egenskaper

Artikkel-ID: 954476 - Forrige gjennomgang: 27. juni 2008 - Gjennomgang: 1.0
Informasjonen i denne artikkelen gjelder:
  • Microsoft ASP.NET 2.0
Nøkkelord: 
atdownload kbexpertiseadvanced kbcode kbexpertiseinter kbinfo kbsecadvisory kbsecurity kbsecvulnerability KB954476

Gi tilbakemelding

 

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