Microsoft Source Code Analyzer for SQL Injection -työkalu on saatavana SQL-koodin lisäämisen heikkouksien ASP-koodista löytämistä varten

Artikkeleiden käännökset Artikkeleiden käännökset
Artikkelin tunnus: 954476 - Näytä tuotteet, joita tämä artikkeli koskee.
Laajenna kaikki | Kutista kaikki

Tällä sivulla

JOHDANTO

Tässä artikkelissa on Microsoft Source Code Analyzer for SQL Injection -työkalun kuvaus. Tämän staattisen koodin analysointityökalun avulla voit löytää ASP-koodista SQL-koodin lisäämisen heikkouksia.

Enemmän tietoa

Microsoft Source Code Analyzer for SQL Injection -työkalu on staattisen koodin analysointityökalu, jonka avulla ASP (Active Server Pages) -koodista voidaan löytää SQL-koodin lisäämisen heikkouksia. Tässä artikkelissa kuvataan työkalun käyttäminen, työkalun luomat varoitukset sekä työkalun rajoitukset. Lisätietoja on työkalun Readme-tiedostossa.

Edellytykset

Tämä komentorivityökalu edellyttää seuraavan ohjelmiston:
  • .NET Framework 3.0

ASP-koodin SQL-koodin lisäämisen ongelmat

Jos ASP-koodin Request.Form- tai Request.Querystring-kokoelmien käyttäjän antamia tietoja käytetään dynaamisten SQL-lausekkeiden muodostamiseen ilman tietojen tarkistusta, hyökkääjä voi lisätä SQL-lausekkeeseen SQL-komentoja ja käyttää sitten sitä väärin. Tätä kutsutaan yleisesti ensimmäisen kertaluvun SQL-koodin lisäämisen heikkoudeksi (englanniksi First Order SQL injection vulnerability).

Jos käyttäjän syöte tallennetaan tietokantaan yhden ASP-sivun avulla ja noudetaan sitten tietokannasta dynaamisten SQL-lausekkeiden muodostamiseen eri ASP-sivulle, hyökkääjä voi lisätä SQL-komentoja SQL-lausekkeeseen ja käyttää sitten sitä väärin. Tätä kutsutaan yleisesti toisen kertaluvun SQL-koodin lisäämisen heikkoudeksi (englanniksi Second Order SQL injection vulnerability).

On parasta käyttää parametreihin perustuvia SQL-kyselyitä, jotta näitä heikkouksia on vähemmän. Lisätietoja ASP-koodin SQL-koodin lisäämisen heikkouksista ja tavoista vähentää kyseisiä heikkouksia on seuraavassa Microsoftin WWW-sivustossa:
http://msdn.microsoft.com/en-us/library/cc676512.aspx
Microsoft Source Code Analyzer for SQL Injection -työkalu auttaa löytämään osan näistä ongelmista automaattisesti.

Käyttö

Tässä osassa on kuvaus työkalun käyttämisestä.

Syntaksi

Työkalu käyttää seuraavaa syntaksia:
msscasi_asp.exe [/nologo] [/quiet] [/suppress=luku;..;luku] [/GlobalAsaPath=polku] [/IncludePaths=polku;..;polku] /Input=tiedosto.asp

Kuvaus

Työkalu analysoi ASP-koodin ja etsii SQL-koodin lisäämisen heikkouksia.

Parametriluettelo

Kutista tämä taulukkoLaajenna tämä taulukko
Parametri Asetus Kuvaus
/GlobalAsaPathpolkuNäyttää Global.asa-tiedoston polun.
/IncludePathspolutNäyttää puolipistein erotellut polut näennäispolkujen avulla sisällytettyjen tiedostojen ratkaisemista varten.
/input.asp-tiedostoNäyttää analysoitavan ASP-tiedoston absoluuttisen polun.
/suppress warnings Varoituksia ei raportoida.
/nologo Työkalun logoa ei näytetä.
/quietJäsennysvirheitä ei näytetä. Kun käytetään valitsimia /nologo ja /quiet, näytetään vain varoitussanomat.

Esimerkkejä

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"

Tulosteen tarkasteleminen

Työkalu luo seuraavat varoitukset:
Kutista tämä taulukkoLaajenna tämä taulukko
VaroitusKuvaus
80400Mahdollinen SQL-koodin lisäämisen heikkous Request-objektista ilman syötteen tarkistusta luettujen tietojen vuoksi. Nämä varoitukset ovat todennäköisesti ohjelmavirheitä, jotka on korjattava.
80406Mahdollinen SQL-koodin lisäämisen heikkous Request-objektista luettujen sellaisten tietojen vuoksi, joissa syöte välitetään joidenkin tuntemattomien, mahdollisesti tietojen tarkistuksen tekevien, funktiokutsujen kautta. Jos funktiokutsussa ei tehdä tietojen tarkistusta, nämä ovat todennäköisesti ohjelmavirheitä. Muussa tapauksessa nämä ovat aiheettomia varoituksia.
80403Mahdollinen SQL-koodin lisäämisen heikkous taustapalvelimesta tulevien tietojen vuoksi. Jos käyttäjä hallitsee tietoja jonkin muun WWW-sivuston avulla, nämä ovat todennäköisesti ohjelmavirheitä. Jos tietoihin luotetaan, nämä eivät ehkä kuitenkaan ole ohjelmavirheitä. On kuitenkin parasta käyttää parametreihin perustuvia kyselyitä osana kattavaa puolustusstrategiaa.
80407Mahdollinen SQL-koodin lisäämisen heikkous taustapalvelimesta tulevien ja tuntemattomien funktiokutsujen läpi kulkevien tietojen vuoksi. Jos käyttäjä hallitsee tietoja joidenkin muiden WWW-sivustojen avulla, eikä kyseisiä tietoja tarkisteta, nämä ovat todennäköisesti ohjelmavirheitä.
80420Mahdollinen SQL-koodin lisäämisen heikkous funktioparametrien vuoksi. Nämä varoitukset luodaan funktion toiminta-alueella. Jos funktioparametrien arvot ovat peräisin luotettavista lähteistä, nämä ovat siis aiheettomia varoituksia. Jos käyttäjät hallitsevat parametrien arvoja, nämä ovat todennäköisesti ohjelmavirheitä. Voit käyttää merkintää __sql_pre_validated funktioparametreille ja tunnistaa, pystyvätkö käyttäjät käsittelemään tätä koodia.
80421Mahdollinen SQL-koodin lisäämisen heikkous funktioparametrien vuoksi, ja funktioparametrit välitetään joidenkin tiedot mahdollisesti tarkistavien funktiokutsujen kautta. Voit käyttää merkintää __sql_pre_validated funktioparametreille sekä merkintää __sql_validate tarkistusfunktiolle ja tunnistaa, pystyvätkö käyttäjät käsittelemään tätä koodia.
Kaikista työkalun luomista varoituksista varoitus 80400 ilmaisee todellisia ohjelmavirheitä kaikkein todennäköisimmin. ASP-WWW-kehittäjien on korjattava nämä ohjelmavirheet parametreihin perustuvien kyselyiden avulla. Lisätietoja parametreihin perustuvien kyselyiden käyttämisestä ASP-koodista on seuraavassa Microsoftin WWW-sivustossa:
http://msdn.microsoft.com/en-us/library/cc676512.aspx

Rajoitukset

Työkalulla on seuraavat tunnetut rajoitukset:
  • Työkalu pystyy käsittelemään vain VBScriptillä kirjoitettua ASP-koodia. Se ei tällä hetkellä analysoi palvelinpuolen koodia, joka on kirjoitettu muilla kielillä, kuten Jscriptillä.
  • Tämän työkalun kehitysprosessin osana kehitettiin uusi ASP-jäsennin. Tämä jäsennin ei kuitenkaan käsittele kaikkia ASP-rakenteita. Tämän vuoksi saattaa ilmetä joitakin jäsennysvirheitä.

Suositukset

Voit ladata Microsoft Source Code Analyzer for SQL Injection -työkalun käymällä seuraavassa Microsoftin WWW-sivustossa:
http://www.microsoft.com/downloads/details.aspx?FamilyId=58A7C46E-A599-4FCB-9AB4-A4334146B6BA
Lisätietoja eri parhaiden käytäntöjen dokumentaatiosta on seuraavassa Microsoftin WWW-sivustossa:
http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx
Lisätietoja SQL-koodin ASP-koodiin lisäämisen estämisestä on seuraavassa Microsoftin WWW-sivustossa:
http://msdn.microsoft.com/en-us/library/cc676512.aspx
Lisätietoja SQL-koodin lisäämisen hyökkäyksistä on seuraavassa Microsoftin WWW-sivustossa:
http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx
Lisätietoja tästä työkalusta on seuraavassa Microsoftin WWW-sivustossa:
http://blogs.msdn.com/sqlsecurity
Jos haluat keskustella työkalusta MSDN SQL Security -keskusteluryhmässä, käy seuraavassa Microsoftin WWW-sivustossa:
http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=92&SiteID=1

Ominaisuudet

Artikkelin tunnus: 954476 - Viimeisin tarkistus: 27. kesäkuuta 2008 - Versio: 1.0
Artikkelin tiedot koskevat seuraavia tuotteita:
  • Microsoft ASP.NET 2.0
Hakusanat: 
atdownload kbexpertiseadvanced kbcode kbexpertiseinter kbinfo kbsecadvisory kbsecurity kbsecvulnerability KB954476

Anna palautetta

 

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